@usethrottle/checkout-react
    Preparing search index...

    Interface ThrottleEmbedProps

    interface ThrottleEmbedProps {
        baseUrl?: string;
        className?: string;
        initialHeight?: number;
        logo?: string;
        onCanceled?: () => void;
        onFailed?: (evt: { code: string; message: string }) => void;
        onProcessing?: () => void;
        onReady?: () => void;
        onSucceeded?: (
            evt: {
                currency?: string;
                lineItems?: ThrottleCompletedLineItem[];
                orderId: string;
                paymentId: string;
                subscriptionId?: string;
                total?: number;
            },
        ) => void;
        parentOrigin: string;
        primary?: string;
        recurring?: RecurringIntent;
        sessionId: string;
        style?: CSSProperties;
        submitDisabled?: boolean;
    }
    Index
    baseUrl?: string

    Base URL of the deployed checkout-web app. Defaults to https://checkout.usethrottle.dev.

    className?: string
    initialHeight?: number

    Initial iframe height in px. Auto-resizes on throttle.resize events.

    logo?: string

    Optional logo URL override (https).

    onCanceled?: () => void
    onFailed?: (evt: { code: string; message: string }) => void
    onProcessing?: () => void
    onReady?: () => void
    onSucceeded?: (
        evt: {
            currency?: string;
            lineItems?: ThrottleCompletedLineItem[];
            orderId: string;
            paymentId: string;
            subscriptionId?: string;
            total?: number;
        },
    ) => void
    parentOrigin: string

    Parent 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.

    primary?: string

    Optional brand color override (#rrggbb).

    recurring?: RecurringIntent

    Subscription 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.

    sessionId: string

    Throttle checkout session id (cs_*). Required.

    style?: CSSProperties
    submitDisabled?: boolean

    Disable 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.