OptionalbaseOptionalclassOptionalinitialInitial iframe height in px. Auto-resizes on throttle.resize events.
OptionallogoOptional logo URL override (https).
OptionalonOptionalonOptionalonOptionalonOptionalonParent origin where this embed is mounted (e.g. https://shop.example.com).
Must be in the merchant's allowed_origins list, set via
throttle embed-config set --origins ... or PUT /api/v1/embed-config.
Required.
OptionalprimaryOptional brand color override (#rrggbb).
OptionalrecurringSubscription intent. Type-level hint — when set, this signals to readers of your code that the embed seeds a subscription on success. The authoritative data lives on the session itself; this prop is purely declarative. See RecurringIntent for field semantics.
OptionalrouteWhich hosted page the iframe loads: 'c' (the original embed) or 's'
(the unified embed). Defaults to 'c', so existing integrations do not
move. Set it to match the route you pass to buildCheckoutEmbedUrl in
@usethrottle/checkout-sdk/server — the component builds its own URL and
does not see the one you built server-side. Card-vault (add-a-card)
sessions are only served by 'c'.
Throttle checkout session id (cs_*). Required.
OptionalstyleOptionalsubmitDisable the submit affordance inside the iframe. Use this to gate payment behind parent-side form validity (e.g., a shipping address form rendered above the embed must be filled in first).
The buyer can still see and interact with the card form fields. Only
the path from "buyer submits" → "throttle captures" is blocked.
Default false for backward compatibility.
Base URL of the deployed checkout-web app. Defaults to https://checkout.usethrottle.dev.