Skip to main content
POST
TypeScript

Authorizations

Authorization
string
header
required

An Account API key, an App API key, an account access token, an account-scoped user token, or a user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.

Headers

Idempotency-Key
string

A unique key that makes this request safe to retry. See Idempotent requests.

Maximum string length: 255
Example:

"d9105228-4a08-46b1-8b91-42fed586d383"

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-09-25"

Body

application/json
account_id
string

Account ID, prefixed biz_.

Example:

"biz_xxxxxxxxxxxxxx"

affiliate_code
string | null

Affiliate code to apply to the checkout.

Example:

"tanyacole"

currency
string | null

Currency used for setup-mode payment method availability.

Example:

"usd"

metadata
object | null

Custom key-value metadata copied to payments and memberships.

Example:
mode
enum<string>

Controls whether checkout charges the buyer immediately or saves payment details for later. Defaults to payment.

Available options:
payment,
setup
Example:

"payment"

payment_method_configuration
object | null

Payment method overrides for this checkout. null uses the plan or platform defaults.

plan
object | null

Plan attributes used to create or find a plan for this checkout configuration. Mutually exclusive with plan_id.

plan_id
string | null

Existing plan ID, prefixed plan_. Mutually exclusive with plan.

Example:

"plan_xxxxxxxxxxxxxx"

redirect_url
string | null

URL customers are sent to after checkout.

Example:

"https://shinetime.example/thanks"

three_ds_level
enum<string> | null

3D Secure behavior for supported on-session card payments. mandate_challenge requires a 3DS challenge before payment processing; mandate_if_required mandates a challenge only when the payment processor requires it; frictionless_if_required uses the regular frictionless 3DS flow. Payments of $1,000 or more use mandate_if_required unless mandate_challenge is selected. Risk and authentication recovery requirements can override the preference. Applies in setup mode; null uses frictionless 3DS. Payment mode uses the plan policy.

Available options:
mandate_challenge,
mandate_if_required,
frictionless_if_required,
null
Example:

"frictionless_if_required"

Response

checkout configuration created for an existing plan

account_id
string
required

Account ID, prefixed biz_.

Example:

"biz_xxxxxxxxxxxxxx"

created_at
string
required

When the checkout configuration was created, as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"

id
string
required

Checkout configuration ID, prefixed ch_.

Example:

"ch_xxxxxxxxxxxxxx"

mode
enum<string>
required

Controls whether checkout charges the buyer immediately or saves payment details for later.

Available options:
payment,
setup
Example:

"setup"

updated_at
string
required

When the checkout configuration was last updated, as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"

affiliate_code
string | null

Affiliate code applied at checkout, or null when none is set.

Example:

"tanyacole"

currency
string | null

Currency used for setup-mode payment method availability; defaults to usd when omitted.

Example:

"usd"

effective_payment_method_configuration
object | null

The configuration governing a checkout mounted from this configuration, resolved through every layer (its own overrides, the plan's, and the account's) — the shape a session's payment_method_configuration carries. Apply it over the payment method types catalogue for the offerable set. null means platform defaults; payment_method_configuration stays this configuration's own editable override.

metadata
object | null

Custom key-value metadata copied to payments and memberships. null without the checkout_configuration:basic:read scope.

Example:
payment_method_configuration
object | null

Payment method overrides for this checkout. null when it uses the plan or platform defaults.

plan
object | null

Plan used for payment checkout. null in setup mode.

purchase_url
string | null

Checkout URL you can send to customers.

Example:

"https://whop.com/checkout/ch_xxxxxxxxxxxxxx/"

redirect_url
string | null

URL customers are sent to after checkout, or null when no redirect is configured.

Example:

"https://shinetime.example/thanks"

three_ds_level
enum<string> | null

3D Secure behavior for supported on-session card payments. mandate_challenge requires a 3DS challenge before payment processing; mandate_if_required mandates a challenge only when the payment processor requires it; frictionless_if_required uses the regular frictionless 3DS flow. Payments of $1,000 or more use mandate_if_required unless mandate_challenge is selected. Risk and authentication recovery requirements can override the preference. Applies in setup mode; null uses frictionless 3DS. Payment mode uses the plan policy.

Available options:
mandate_challenge,
mandate_if_required,
frictionless_if_required,
null
Example:

"mandate_challenge"