> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a checkout configuration

> Creates a reusable checkout configuration for an existing or inline plan.



## OpenAPI

````yaml /openapi/api-v1-native.yml post /checkout_configurations
openapi: 3.1.0
info:
  title: Whop API
  description: >-
    Hand-written V1 endpoints. Merged into the GraphqlRestProxy-generated schema
    at build time.
  version: v1
servers:
  - url: https://{defaultHost}
    variables:
      defaultHost:
        default: api.whop.com/api/v1
security: []
paths:
  /checkout_configurations:
    parameters:
      - $ref: '#/components/parameters/ApiVersionDate'
    post:
      tags:
        - Checkout Configurations
      summary: Create a checkout configuration
      description: >-
        Creates a reusable checkout configuration for an existing or inline
        plan.
      operationId: createCheckoutConfiguration
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                company_id:
                  type: string
                  description: Account ID, prefixed `biz_`.
                plan_id:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Existing plan ID, prefixed `plan_`. Mutually exclusive with
                    `plan`.
                plan:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Plan attributes used to create or find a plan for this
                    checkout configuration. Mutually exclusive with `plan_id`.
                  properties:
                    company_id:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Account ID for the inline plan, prefixed `biz_`.
                        Defaults to the account resolved from the request.
                    product_id:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Product ID the inline plan should belong to, prefixed
                        `prod_`.
                    currency:
                      type:
                        - string
                        - 'null'
                      description: Three-letter ISO currency code for the plan's prices.
                    initial_price:
                      type:
                        - number
                        - 'null'
                      description: Initial purchase price in the plan currency.
                    renewal_price:
                      type:
                        - number
                        - 'null'
                      description: Recurring price charged each billing period.
                    plan_type:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Billing model for the plan: `renewal` (recurring) or
                        `one_time` (single payment).
                    billing_period:
                      type:
                        - integer
                        - 'null'
                      description: >-
                        Recurring billing interval in days, such as 30 for
                        monthly or 365 for annual.
                    expiration_days:
                      type:
                        - integer
                        - 'null'
                      description: Access duration in days for expiration-based plans.
                    trial_period_days:
                      type:
                        - integer
                        - 'null'
                      description: Free trial days before the first renewal charge.
                    release_method:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Sales method for the plan, such as `buy_now` or
                        `waitlist`.
                    title:
                      type:
                        - string
                        - 'null'
                      description: Plan display name shown to customers.
                    description:
                      type:
                        - string
                        - 'null'
                      description: Customer-visible plan description.
                    visibility:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Whether the plan is visible to customers or hidden from
                        public view.
                    stock:
                      type:
                        - integer
                        - 'null'
                      description: Units available for purchase.
                    unlimited_stock:
                      type:
                        - boolean
                        - 'null'
                      description: Whether the plan has unlimited stock.
                    override_tax_type:
                      type:
                        - string
                        - 'null'
                      description: Tax classification override for this plan.
                    metadata:
                      type:
                        - object
                        - 'null'
                      description: Custom key-value metadata stored on the plan.
                    force_create_new_plan:
                      type:
                        - boolean
                        - 'null'
                      description: >-
                        Whether to create a new plan instead of reusing a
                        matching one.
                    payment_method_configuration:
                      type:
                        - object
                        - 'null'
                      description: >-
                        Payment method overrides for the inline plan. `null`
                        uses platform defaults.
                      properties:
                        enabled:
                          type: array
                          items:
                            type: string
                          description: Payment methods explicitly enabled for this plan.
                        disabled:
                          type: array
                          items:
                            type: string
                          description: Payment methods explicitly disabled for this plan.
                        include_platform_defaults:
                          type: boolean
                          description: >-
                            Whether platform default payment methods are
                            included.
                mode:
                  type: string
                  enum:
                    - payment
                    - setup
                  description: >-
                    Checkout mode: `payment` collects payment for a plan now;
                    `setup` saves payment details without charging. Defaults to
                    `payment`.
                currency:
                  type:
                    - string
                    - 'null'
                  description: Currency used for setup-mode payment method availability.
                affiliate_code:
                  type:
                    - string
                    - 'null'
                  description: Affiliate code to apply to the checkout.
                metadata:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Custom key-value metadata copied to payments and
                    memberships.
                redirect_url:
                  type:
                    - string
                    - 'null'
                  description: URL customers are sent to after checkout.
                three_ds_level:
                  type:
                    - string
                    - 'null'
                  description: 3D Secure behavior for this checkout.
                payment_method_configuration:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Payment method overrides for this checkout. `null` uses the
                    plan or platform defaults.
                  properties:
                    enabled:
                      type: array
                      items:
                        type: string
                      description: Payment methods explicitly enabled for checkout.
                    disabled:
                      type: array
                      items:
                        type: string
                      description: Payment methods explicitly disabled for checkout.
                    include_platform_defaults:
                      type: boolean
                      description: Whether platform default payment methods are included.
              example:
                company_id: biz_xxxxxxxxxxxxxx
                plan_id: plan_xxxxxxxxxxxxx
      responses:
        '200':
          description: checkout configuration created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Checkout configuration ID, prefixed `ch_`.
                  created_at:
                    type: string
                    description: >-
                      When the checkout configuration was created, as an ISO
                      8601 timestamp.
                  updated_at:
                    type: string
                    description: >-
                      When the checkout configuration was last updated, as an
                      ISO 8601 timestamp.
                  company_id:
                    type: string
                    description: Account ID, prefixed `biz_`.
                  mode:
                    type: string
                    enum:
                      - payment
                      - setup
                    description: >-
                      Checkout mode: `payment` collects payment now; `setup`
                      saves payment details for later.
                  currency:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Currency used for setup-mode payment method availability;
                      defaults to `usd` when omitted.
                  plan:
                    type:
                      - object
                      - 'null'
                    description: Plan used for payment checkout. `null` in setup mode.
                    properties:
                      id:
                        type: string
                        description: Plan ID, prefixed `plan_`.
                      visibility:
                        type: string
                        description: >-
                          Whether the plan is visible to customers or hidden
                          from public view.
                      plan_type:
                        type: string
                        description: >-
                          Billing model for the plan: `renewal` (recurring) or
                          `one_time` (single payment).
                      release_method:
                        type: string
                        description: >-
                          Sales method for the plan, such as `buy_now` or
                          `waitlist`.
                      currency:
                        type: string
                        description: Three-letter ISO currency code for the plan's prices.
                      billing_period:
                        type:
                          - integer
                          - 'null'
                        description: >-
                          Recurring billing interval in days, such as 30 for
                          monthly or 365 for annual. `null` for one-time plans.
                      expiration_days:
                        type:
                          - integer
                          - 'null'
                        description: Access duration in days for expiration-based plans.
                      initial_price:
                        type: number
                        description: Initial purchase price in the plan currency.
                      renewal_price:
                        type: number
                        description: Recurring price charged each billing period.
                      trial_period_days:
                        type:
                          - integer
                          - 'null'
                        description: Free trial days before the first renewal charge.
                      three_ds_level:
                        type:
                          - string
                          - 'null'
                        description: >-
                          3D Secure behavior for this plan, or `null` to use the
                          account default.
                      adaptive_pricing_enabled:
                        type: boolean
                        description: >-
                          Whether this plan accepts local currency payments via
                          adaptive pricing.
                    required:
                      - id
                      - visibility
                      - plan_type
                      - release_method
                      - currency
                      - billing_period
                      - expiration_days
                      - initial_price
                      - renewal_price
                      - trial_period_days
                      - three_ds_level
                      - adaptive_pricing_enabled
                  affiliate_code:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Affiliate code applied at checkout, or `null` when none is
                      set.
                  metadata:
                    type:
                      - object
                      - 'null'
                    description: >-
                      Custom key-value metadata copied to payments and
                      memberships. `null` without the
                      `checkout_configuration:basic:read` scope.
                  redirect_url:
                    type:
                      - string
                      - 'null'
                    description: >-
                      URL customers are sent to after checkout, or `null` when
                      no redirect is configured.
                  purchase_url:
                    type:
                      - string
                      - 'null'
                    description: Checkout URL you can send to customers.
                  three_ds_level:
                    type:
                      - string
                      - 'null'
                    description: >-
                      3D Secure behavior for this checkout, or `null` to use the
                      account default.
                  payment_method_configuration:
                    type:
                      - object
                      - 'null'
                    description: >-
                      Payment method overrides for this checkout. `null` when it
                      uses the plan or platform defaults.
                    properties:
                      enabled:
                        type: array
                        items:
                          type: string
                        description: Payment methods explicitly enabled for checkout.
                      disabled:
                        type: array
                        items:
                          type: string
                        description: Payment methods explicitly disabled for checkout.
                      include_platform_defaults:
                        type: boolean
                        description: Whether platform default payment methods are included.
                required:
                  - id
                  - created_at
                  - updated_at
                  - company_id
                  - mode
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: missing or invalid authentication
      security:
        - bearerAuth: []
components:
  parameters:
    ApiVersionDate:
      name: Api-Version-Date
      in: header
      required: false
      schema:
        type: string
        example: 2026-07-08-1
      description: Pins the request to a dated API version.
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
  schemas:
    V1ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Human-readable error message.
          required:
            - type
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: auth-scheme
      description: >-
        An account API key, account scoped JWT, app API key, or user OAuth
        token.

````