> ## 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 checkout configuration

> Creates a new checkout configuration

Required permissions:
 - `checkout_configuration:create`
 - `plan:create`
 - `access_pass:create`
 - `access_pass:update`
 - `checkout_configuration:basic:read`



## OpenAPI

````yaml /openapi/api-v1-stable.json post /checkout_configurations
openapi: 3.1.0
info:
  description: >-
    The Whop REST API. Please see
    https://docs.whop.com/developer/api/getting-started for more details.
  termsOfService: https://whop.com/tos-developer-api/
  title: Whop API
  version: 1.0.0
  x-api-version-date: 2026-07-08-1
servers:
  - description: Production Whop API
    url: https://api.whop.com/api/v1
  - description: Sandbox Whop API
    url: https://sandbox-api.whop.com/api/v1
security: []
tags:
  - description: Products
    name: Products
  - description: Payments
    name: Payments
  - description: Refunds
    name: Refunds
  - description: Disputes
    name: Disputes
  - description: Dispute alerts
    name: Dispute alerts
  - description: Resolution center cases
    name: Resolution center cases
  - description: Checkout configurations
    name: Checkout configurations
  - description: Setup intents
    name: Setup intents
  - description: Payment methods
    name: Payment methods
  - description: Invoices
    name: Invoices
  - description: Promo codes
    name: Promo codes
  - description: Card transactions
    name: Card transactions
  - description: Ledger accounts
    name: Ledger accounts
  - description: Withdrawals
    name: Withdrawals
  - description: Payout methods
    name: Payout methods
  - description: Verifications
    name: Verifications
  - description: Identity profiles
    name: Identity profiles
  - description: Payout accounts
    name: Payout accounts
  - description: Topups
    name: Topups
  - description: Companies
    name: Companies
  - description: Authorized users
    name: Authorized users
  - description: Fee markups
    name: Fee markups
  - description: Members
    name: Members
  - description: Memberships
    name: Memberships
  - description: Leads
    name: Leads
  - description: Entries
    name: Entries
  - description: Shipments
    name: Shipments
  - description: Reviews
    name: Reviews
  - description: Company token transactions
    name: Company token transactions
  - description: Affiliates
    name: Affiliates
  - description: Experiences
    name: Experiences
  - description: Forums
    name: Forums
  - description: Forum posts
    name: Forum posts
  - description: Chat channels
    name: Chat channels
  - description: Support channels
    name: Support channels
  - description: Messages
    name: Messages
  - description: Reactions
    name: Reactions
  - description: Dm members
    name: Dm members
  - description: Dm channels
    name: Dm channels
  - description: Notifications
    name: Notifications
  - description: Courses
    name: Courses
  - description: Course chapters
    name: Course chapters
  - description: Course lessons
    name: Course lessons
  - description: Course students
    name: Course students
  - description: Course lesson interactions
    name: Course lesson interactions
  - description: Apps
    name: Apps
  - description: Webhooks
    name: Webhooks
  - description: App builds
    name: App builds
  - description: Access tokens
    name: Access tokens
  - description: Account links
    name: Account links
  - description: Files
    name: Files
  - description: Ai chats
    name: Ai chats
  - description: Bounties
    name: Bounties
  - description: Stats
    name: Stats
  - description: Conversions
    name: Conversions
  - description: Ad reports
    name: Ad reports
paths:
  /checkout_configurations:
    post:
      tags:
        - Checkout configurations
      summary: Create checkout configuration
      description: |-
        Creates a new checkout configuration

        Required permissions:
         - `checkout_configuration:create`
         - `plan:create`
         - `access_pass:create`
         - `access_pass:update`
         - `checkout_configuration:basic:read`
      operationId: createCheckoutConfiguration
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              description: Parameters for CreateCheckoutSession
              oneOf:
                - description: Autogenerated input type of CreateCheckoutSession
                  properties:
                    affiliate_code:
                      description: >-
                        An affiliate tracking code to attribute the checkout to
                        a specific affiliate.
                      type:
                        - string
                        - 'null'
                    checkout_styling:
                      description: >-
                        Checkout styling overrides for this session. Overrides
                        plan and company defaults.
                      properties:
                        background_color:
                          description: >-
                            A hex color code for the checkout page background,
                            applied to the order summary panel (e.g. #F4F4F5).
                          type:
                            - string
                            - 'null'
                        border_style:
                          description: The border style for buttons and inputs.
                          oneOf:
                            - $ref: '#/components/schemas/CheckoutShapes'
                            - type: 'null'
                        button_color:
                          description: >-
                            A hex color code for the button color (e.g.
                            #FF5733).
                          type:
                            - string
                            - 'null'
                        font_family:
                          description: The font family for the checkout page.
                          oneOf:
                            - $ref: '#/components/schemas/CheckoutFonts'
                            - type: 'null'
                      required: []
                      type:
                        - object
                        - 'null'
                    currency:
                      description: >-
                        The currency for the checkout when in setup mode.
                        Controls which currency-specific payment methods are
                        available. Defaults to USD when in setup mode.
                      oneOf:
                        - $ref: '#/components/schemas/Currencies'
                        - type: 'null'
                    metadata:
                      additionalProperties: true
                      description: >-
                        Custom key-value metadata to attach to the checkout
                        configuration.
                      type:
                        - object
                        - 'null'
                    mode:
                      const: payment
                      type: string
                    payment_method_configuration:
                      description: >-
                        The explicit payment method configuration for the
                        checkout session. Only applies to setup mode. If not
                        provided, the platform or company defaults will apply.
                      properties:
                        disabled:
                          description: >-
                            An array of payment method identifiers that are
                            explicitly disabled. Only applies if the
                            include_platform_defaults is true.
                          items:
                            $ref: '#/components/schemas/PaymentMethodTypes'
                          type: array
                        enabled:
                          description: >-
                            An array of payment method identifiers that are
                            explicitly enabled. This means these payment methods
                            will be shown on checkout. Example use case is to
                            only enable a specific payment method like cashapp,
                            or extending the platform defaults with additional
                            methods.
                          items:
                            $ref: '#/components/schemas/PaymentMethodTypes'
                          type: array
                        include_platform_defaults:
                          description: >-
                            Whether Whop's platform default payment method
                            enablement settings are included in this
                            configuration. The full list of default payment
                            methods can be found in the documentation at
                            docs.whop.com/payments.
                          type:
                            - boolean
                            - 'null'
                      required:
                        - disabled
                        - enabled
                      type:
                        - object
                        - 'null'
                    plan:
                      description: >-
                        The plan attributes to create a new plan inline for this
                        checkout configuration.
                      properties:
                        adaptive_pricing_enabled:
                          description: >-
                            Whether this plan accepts local currency payments
                            via adaptive pricing.
                          type:
                            - boolean
                            - 'null'
                        application_fee_amount:
                          description: >-
                            The application fee amount collected by the platform
                            from this connected account. Provided as a number in
                            dollars (e.g., 5.00 for $5.00). Must be less than
                            the total payment amount. Only valid for connected
                            accounts with a parent company.
                          example: 6.9
                          type:
                            - number
                            - 'null'
                        billing_period:
                          description: >-
                            The interval in days at which the plan charges
                            (renewal plans). For example, 30 for monthly
                            billing.
                          example: 42
                          type:
                            - integer
                            - 'null'
                        company_id:
                          description: The company the plan should be created for.
                          example: biz_xxxxxxxxxxxxxx
                          type: string
                        currency:
                          $ref: '#/components/schemas/Currencies'
                          description: The respective currency identifier for the plan.
                        custom_fields:
                          description: An array of custom field objects.
                          items:
                            properties:
                              field_type:
                                $ref: '#/components/schemas/CustomFieldTypes'
                                description: The type of the custom field.
                              id:
                                description: The ID of the custom field (if being updated)
                                type:
                                  - string
                                  - 'null'
                              name:
                                description: The name of the custom field.
                                type: string
                              order:
                                description: The order of the field.
                                example: 42
                                type:
                                  - integer
                                  - 'null'
                              placeholder:
                                description: The placeholder value of the field.
                                type:
                                  - string
                                  - 'null'
                              required:
                                description: Whether or not the field is required.
                                type:
                                  - boolean
                                  - 'null'
                            required:
                              - field_type
                              - name
                            type: object
                          type:
                            - array
                            - 'null'
                        description:
                          description: The description of the plan.
                          type:
                            - string
                            - 'null'
                        expiration_days:
                          description: >-
                            The number of days until the membership expires (for
                            expiration-based plans). For example, 365 for a
                            one-year access pass.
                          example: 42
                          type:
                            - integer
                            - 'null'
                        force_create_new_plan:
                          description: >-
                            Whether to force the creation of a new plan even if
                            one with the same attributes already exists.
                          type:
                            - boolean
                            - 'null'
                        image:
                          description: >-
                            An image for the plan. This will be visible on the
                            product page to customers.
                          properties:
                            id:
                              description: The ID of an existing file object.
                              type: string
                          required:
                            - id
                          title: FileInputWithId
                          type:
                            - object
                            - 'null'
                        initial_price:
                          description: >-
                            An additional amount charged upon first purchase.
                            Provided as a number in dollars (e.g., 10.00 for
                            $10.00).
                          example: 6.9
                          type:
                            - number
                            - 'null'
                        internal_notes:
                          description: >-
                            A personal description or notes section for the
                            business.
                          type:
                            - string
                            - 'null'
                        override_tax_type:
                          description: >-
                            An override for tax to specify for this specific
                            plan.
                          oneOf:
                            - $ref: '#/components/schemas/TaxTypes'
                            - type: 'null'
                        payment_method_configuration:
                          description: >-
                            The explicit payment method configuration for the
                            plan. If not provided, the platform or company's
                            defaults will apply.
                          properties:
                            disabled:
                              description: >-
                                An array of payment method identifiers that are
                                explicitly disabled. Only applies if the
                                include_platform_defaults is true.
                              items:
                                $ref: '#/components/schemas/PaymentMethodTypes'
                              type: array
                            enabled:
                              description: >-
                                An array of payment method identifiers that are
                                explicitly enabled. This means these payment
                                methods will be shown on checkout. Example use
                                case is to only enable a specific payment method
                                like cashapp, or extending the platform defaults
                                with additional methods.
                              items:
                                $ref: '#/components/schemas/PaymentMethodTypes'
                              type: array
                            include_platform_defaults:
                              description: >-
                                Whether Whop's platform default payment method
                                enablement settings are included in this
                                configuration. The full list of default payment
                                methods can be found in the documentation at
                                docs.whop.com/payments.
                              type:
                                - boolean
                                - 'null'
                          required:
                            - disabled
                            - enabled
                          type:
                            - object
                            - 'null'
                        plan_type:
                          description: >-
                            Indicates if the plan is a one time payment or
                            recurring.
                          oneOf:
                            - $ref: '#/components/schemas/PlanTypes'
                            - type: 'null'
                        product:
                          description: >-
                            Pass this object to create a new product for this
                            plan. We will use the product external identifier to
                            find or create an existing product.
                          properties:
                            collect_shipping_address:
                              description: >-
                                Whether or not to collect shipping information
                                at checkout from the customer.
                              type:
                                - boolean
                                - 'null'
                            custom_statement_descriptor:
                              description: >-
                                The custom statement descriptor for the product
                                i.e. WHOP*SPORTS, must be between 5 and 22
                                characters, contain at least one letter, and not
                                contain any of the following characters: <, >,
                                \, ', "
                              type:
                                - string
                                - 'null'
                            description:
                              description: A written description of the product.
                              type:
                                - string
                                - 'null'
                            external_identifier:
                              description: >-
                                A unique ID used to find or create a product.
                                When provided during creation, we will look for
                                an existing product with this external
                                identifier — if found, it will be updated;
                                otherwise, a new product will be created.
                              type: string
                            global_affiliate_percentage:
                              description: >-
                                The percentage of the revenue that goes to the
                                global affiliate program.
                              example: 6.9
                              type:
                                - number
                                - 'null'
                            global_affiliate_status:
                              description: >-
                                The status of the global affiliate program for
                                this product.
                              oneOf:
                                - $ref: '#/components/schemas/GlobalAffiliateStatuses'
                                - type: 'null'
                            headline:
                              description: The headline of the product.
                              type:
                                - string
                                - 'null'
                            product_tax_code_id:
                              description: >-
                                The ID of the product tax code to apply to this
                                product.
                              example: ptc_xxxxxxxxxxxxxx
                              type:
                                - string
                                - 'null'
                            redirect_purchase_url:
                              description: >-
                                The URL to redirect the customer to after a
                                purchase.
                              type:
                                - string
                                - 'null'
                            route:
                              description: The route of the product.
                              type:
                                - string
                                - 'null'
                            title:
                              description: The title of the product.
                              type: string
                            visibility:
                              description: >-
                                This product will/will not be displayed publicly
                                - default hidden.
                              oneOf:
                                - $ref: '#/components/schemas/Visibility'
                                - type: 'null'
                          required:
                            - external_identifier
                            - title
                          type:
                            - object
                            - 'null'
                        product_id:
                          description: >-
                            The product the plan is related to. Either this or
                            product is required.
                          example: prod_xxxxxxxxxxxxx
                          type:
                            - string
                            - 'null'
                        release_method:
                          description: >-
                            This is the release method the business uses to sell
                            this plan.
                          oneOf:
                            - $ref: '#/components/schemas/ReleaseMethod'
                            - type: 'null'
                        renewal_price:
                          description: >-
                            The amount the customer is charged every billing
                            period. Provided as a number in dollars (e.g., 9.99
                            for $9.99/period).
                          example: 6.9
                          type:
                            - number
                            - 'null'
                        split_pay_required_payments:
                          description: >-
                            The number of payments required before pausing the
                            subscription.
                          example: 42
                          type:
                            - integer
                            - 'null'
                        stock:
                          description: >-
                            The number of units available for purchase. If not
                            provided, stock is unlimited.
                          example: 42
                          type:
                            - integer
                            - 'null'
                        title:
                          description: >-
                            The title of the plan. This will be visible on the
                            product page to customers.
                          type:
                            - string
                            - 'null'
                        trial_period_days:
                          description: >-
                            The number of free trial days added before a renewal
                            plan.
                          example: 42
                          type:
                            - integer
                            - 'null'
                        visibility:
                          description: Shows or hides the plan from public/business view.
                          oneOf:
                            - $ref: '#/components/schemas/Visibility'
                            - type: 'null'
                      required:
                        - company_id
                        - currency
                      type: object
                    redirect_url:
                      description: >-
                        The URL to redirect the user to after checkout is
                        completed.
                      type:
                        - string
                        - 'null'
                  required:
                    - plan
                  title: CreateCheckoutSessionInputModePaymentWithPlan
                  type: object
                - description: Autogenerated input type of CreateCheckoutSession
                  properties:
                    affiliate_code:
                      description: >-
                        An affiliate tracking code to attribute the checkout to
                        a specific affiliate.
                      type:
                        - string
                        - 'null'
                    checkout_styling:
                      description: >-
                        Checkout styling overrides for this session. Overrides
                        plan and company defaults.
                      properties:
                        background_color:
                          description: >-
                            A hex color code for the checkout page background,
                            applied to the order summary panel (e.g. #F4F4F5).
                          type:
                            - string
                            - 'null'
                        border_style:
                          description: The border style for buttons and inputs.
                          oneOf:
                            - $ref: '#/components/schemas/CheckoutShapes'
                            - type: 'null'
                        button_color:
                          description: >-
                            A hex color code for the button color (e.g.
                            #FF5733).
                          type:
                            - string
                            - 'null'
                        font_family:
                          description: The font family for the checkout page.
                          oneOf:
                            - $ref: '#/components/schemas/CheckoutFonts'
                            - type: 'null'
                      required: []
                      type:
                        - object
                        - 'null'
                    currency:
                      description: >-
                        The currency for the checkout when in setup mode.
                        Controls which currency-specific payment methods are
                        available. Defaults to USD when in setup mode.
                      oneOf:
                        - $ref: '#/components/schemas/Currencies'
                        - type: 'null'
                    metadata:
                      additionalProperties: true
                      description: >-
                        Custom key-value metadata to attach to the checkout
                        configuration.
                      type:
                        - object
                        - 'null'
                    mode:
                      const: payment
                      type: string
                    payment_method_configuration:
                      description: >-
                        The explicit payment method configuration for the
                        checkout session. Only applies to setup mode. If not
                        provided, the platform or company defaults will apply.
                      properties:
                        disabled:
                          description: >-
                            An array of payment method identifiers that are
                            explicitly disabled. Only applies if the
                            include_platform_defaults is true.
                          items:
                            $ref: '#/components/schemas/PaymentMethodTypes'
                          type: array
                        enabled:
                          description: >-
                            An array of payment method identifiers that are
                            explicitly enabled. This means these payment methods
                            will be shown on checkout. Example use case is to
                            only enable a specific payment method like cashapp,
                            or extending the platform defaults with additional
                            methods.
                          items:
                            $ref: '#/components/schemas/PaymentMethodTypes'
                          type: array
                        include_platform_defaults:
                          description: >-
                            Whether Whop's platform default payment method
                            enablement settings are included in this
                            configuration. The full list of default payment
                            methods can be found in the documentation at
                            docs.whop.com/payments.
                          type:
                            - boolean
                            - 'null'
                      required:
                        - disabled
                        - enabled
                      type:
                        - object
                        - 'null'
                    plan_id:
                      description: >-
                        The unique identifier of an existing plan to use for
                        this checkout configuration.
                      example: plan_xxxxxxxxxxxxx
                      type: string
                    redirect_url:
                      description: >-
                        The URL to redirect the user to after checkout is
                        completed.
                      type:
                        - string
                        - 'null'
                  required:
                    - plan_id
                  title: CreateCheckoutSessionInputModePaymentWithPlanId
                  type: object
                - description: Autogenerated input type of CreateCheckoutSession
                  properties:
                    checkout_styling:
                      description: >-
                        Checkout styling overrides for this session. Overrides
                        plan and company defaults.
                      properties:
                        background_color:
                          description: >-
                            A hex color code for the checkout page background,
                            applied to the order summary panel (e.g. #F4F4F5).
                          type:
                            - string
                            - 'null'
                        border_style:
                          description: The border style for buttons and inputs.
                          oneOf:
                            - $ref: '#/components/schemas/CheckoutShapes'
                            - type: 'null'
                        button_color:
                          description: >-
                            A hex color code for the button color (e.g.
                            #FF5733).
                          type:
                            - string
                            - 'null'
                        font_family:
                          description: The font family for the checkout page.
                          oneOf:
                            - $ref: '#/components/schemas/CheckoutFonts'
                            - type: 'null'
                      required: []
                      type:
                        - object
                        - 'null'
                    company_id:
                      description: >-
                        The unique identifier of the company to create the
                        checkout configuration for. Only required in setup mode.
                      example: biz_xxxxxxxxxxxxxx
                      type: string
                    currency:
                      description: >-
                        The currency for the checkout when in setup mode.
                        Controls which currency-specific payment methods are
                        available. Defaults to USD when in setup mode.
                      oneOf:
                        - $ref: '#/components/schemas/Currencies'
                        - type: 'null'
                    metadata:
                      additionalProperties: true
                      description: >-
                        Custom key-value metadata to attach to the checkout
                        configuration.
                      type:
                        - object
                        - 'null'
                    mode:
                      const: setup
                      type: string
                    payment_method_configuration:
                      description: >-
                        The explicit payment method configuration for the
                        checkout session. Only applies to setup mode. If not
                        provided, the platform or company defaults will apply.
                      properties:
                        disabled:
                          description: >-
                            An array of payment method identifiers that are
                            explicitly disabled. Only applies if the
                            include_platform_defaults is true.
                          items:
                            $ref: '#/components/schemas/PaymentMethodTypes'
                          type: array
                        enabled:
                          description: >-
                            An array of payment method identifiers that are
                            explicitly enabled. This means these payment methods
                            will be shown on checkout. Example use case is to
                            only enable a specific payment method like cashapp,
                            or extending the platform defaults with additional
                            methods.
                          items:
                            $ref: '#/components/schemas/PaymentMethodTypes'
                          type: array
                        include_platform_defaults:
                          description: >-
                            Whether Whop's platform default payment method
                            enablement settings are included in this
                            configuration. The full list of default payment
                            methods can be found in the documentation at
                            docs.whop.com/payments.
                          type:
                            - boolean
                            - 'null'
                      required:
                        - disabled
                        - enabled
                      type:
                        - object
                        - 'null'
                    redirect_url:
                      description: >-
                        The URL to redirect the user to after checkout is
                        completed.
                      type:
                        - string
                        - 'null'
                    three_ds_level:
                      description: >-
                        The 3D Secure behavior to apply when collecting a
                        payment method. Only applies to setup mode; in payment
                        mode the plan's 3D Secure behavior is used.
                      oneOf:
                        - $ref: '#/components/schemas/PlanThreeDsLevels'
                        - type: 'null'
                  required:
                    - mode
                    - company_id
                  title: CreateCheckoutSessionInputModeSetup
                  type: object
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutConfiguration'
          description: A successful response
        '400':
          content:
            application/json:
              example:
                error:
                  code: parameter_missing
                  message: 'Missing required parameter: amount.'
                  param: amount
                  type: invalid_request_error
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Bad request
        '401':
          content:
            application/json:
              example:
                error:
                  message: Invalid or missing API key
                  type: unauthorized
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                error:
                  message: You do not have permission to access this resource
                  type: forbidden
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                error:
                  message: Resource not found
                  type: not_found
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Not found
        '422':
          content:
            application/json:
              example:
                error: null
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Verification required
        '429':
          content:
            application/json:
              example:
                error: null
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Too many requests
        '500':
          content:
            application/json:
              example:
                error:
                  message: An unexpected error occurred
                  type: internal_server_error
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Internal server error
      security:
        - bearerAuth:
            - checkout_configuration:create
            - plan:create
            - access_pass:create
            - access_pass:update
            - checkout_configuration:basic:read
components:
  schemas:
    CheckoutShapes:
      description: The different border-radius styles available for checkout pages.
      enum:
        - rounded
        - pill
        - rectangular
      type: string
    CheckoutFonts:
      description: The different font families available for checkout pages.
      enum:
        - system
        - roboto
        - open_sans
      type: string
    Currencies:
      description: The available currencies on the platform
      enum:
        - usd
        - sgd
        - inr
        - aud
        - brl
        - cad
        - dkk
        - eur
        - nok
        - gbp
        - sek
        - chf
        - hkd
        - huf
        - jpy
        - mxn
        - myr
        - pln
        - czk
        - nzd
        - aed
        - eth
        - ape
        - cop
        - ron
        - thb
        - bgn
        - idr
        - dop
        - php
        - try
        - krw
        - twd
        - vnd
        - pkr
        - clp
        - uyu
        - ars
        - zar
        - dzd
        - tnd
        - mad
        - kes
        - kwd
        - jod
        - all
        - xcd
        - amd
        - bsd
        - bhd
        - bob
        - bam
        - khr
        - crc
        - xof
        - egp
        - etb
        - gmd
        - ghs
        - gtq
        - gyd
        - ils
        - jmd
        - mop
        - mga
        - mur
        - mdl
        - mnt
        - nad
        - ngn
        - mkd
        - omr
        - pyg
        - pen
        - qar
        - rwf
        - sar
        - rsd
        - lkr
        - tzs
        - ttd
        - uzs
        - rub
        - btc
        - cny
        - usdt
        - kzt
        - awg
        - whop_usd
        - xau
      type: string
    PaymentMethodTypes:
      description: The different types of payment methods that can be used.
      enum:
        - acss_debit
        - affirm
        - afterpay_clearpay
        - alipay
        - alma
        - amazon_pay
        - apple
        - apple_pay
        - au_bank_transfer
        - au_becs_debit
        - bacs_debit
        - bancolombia
        - bancontact
        - billie
        - bizum
        - blik
        - boleto
        - bre_b
        - ca_bank_transfer
        - capchase_pay
        - card
        - card_installments_three
        - card_installments_six
        - card_installments_twelve
        - cashapp
        - claritypay
        - coinbase
        - crypto
        - custom
        - customer_balance
        - demo_pay
        - efecty
        - eps
        - eu_bank_transfer
        - fpx
        - gb_bank_transfer
        - giropay
        - google_pay
        - gopay
        - grabpay
        - id_bank_transfer
        - ideal
        - interac
        - kakao_pay
        - klarna
        - klarna_pay_now
        - konbini
        - kr_card
        - kr_market
        - kriya
        - kueski
        - link
        - mb_way
        - m_pesa
        - mercado_pago
        - mobilepay
        - mondu
        - multibanco
        - naver_pay
        - nequi
        - netbanking
        - ng_bank
        - ng_bank_transfer
        - ng_card
        - ng_market
        - ng_ussd
        - ng_wallet
        - nz_bank_account
        - oxxo
        - p24
        - pago_efectivo
        - pse
        - pay_by_bank
        - payco
        - paynow
        - paypal
        - paypay
        - payto
        - pix
        - platform_balance
        - promptpay
        - qris
        - rechnung
        - revolut_pay
        - samsung_pay
        - satispay
        - scalapay
        - sencillito
        - sepa_debit
        - sequra
        - servipag
        - sezzle
        - shop_pay
        - shopeepay
        - sofort
        - south_korea_market
        - spei
        - splitit
        - sunbit
        - swish
        - tamara
        - twint
        - upi
        - us_bank_account
        - us_bank_transfer
        - venmo
        - vipps
        - webpay
        - wechat_pay
        - yape
        - zip
        - coinflow
        - unknown
      type: string
    CustomFieldTypes:
      const: text
      description: The type of the custom field.
      type: string
    TaxTypes:
      description: >-
        Whether or not the tax is included in a plan's price (or if it hasn't
        been set up)
      enum:
        - inclusive
        - exclusive
        - unspecified
      type: string
    PlanTypes:
      description: The type of plan that can be attached to a product
      enum:
        - renewal
        - one_time
      type: string
    GlobalAffiliateStatuses:
      description: The different statuses of the global affiliate program for a product.
      enum:
        - enabled
        - disabled
      type: string
    Visibility:
      description: Visibility of a resource
      enum:
        - visible
        - hidden
        - archived
        - quick_link
      type: string
    ReleaseMethod:
      description: The methods of how a plan can be released.
      enum:
        - buy_now
        - waitlist
      type: string
    PlanThreeDsLevels:
      description: The 3D Secure behavior for a plan.
      enum:
        - mandate_challenge
        - frictionless
      type: string
    CheckoutConfiguration:
      description: >-
        A checkout configuration is a reusable configuration for a checkout,
        including the plan, affiliate, and custom metadata. Payments and
        memberships created from a checkout session inherit its metadata.
      properties:
        affiliate_code:
          description: The affiliate code to use for the checkout configuration
          type:
            - string
            - 'null'
        company_id:
          description: The ID of the company to use for the checkout configuration
          type: string
        currency:
          description: >-
            The currency to use for the configuration when in 'setup' mode. This
            is used to target which currency specific payment methods are
            available. If not provided, it will default to 'usd' when in setup
            mode.
          oneOf:
            - $ref: '#/components/schemas/Currencies'
            - type: 'null'
        id:
          description: The unique identifier for the checkout session.
          example: ch_xxxxxxxxxxxxxxx
          type: string
        metadata:
          additionalProperties: true
          description: The metadata to use for the checkout configuration
          type:
            - object
            - 'null'
        mode:
          $ref: '#/components/schemas/CheckoutModes'
          description: The mode of the checkout session.
        payment_method_configuration:
          description: >-
            The explicit payment method configuration for the session, if any.
            This currently only works in 'setup' mode. Use the plan's
            payment_method_configuration for payment method.
          properties:
            disabled:
              description: >-
                An array of payment method identifiers that are explicitly
                disabled. Only applies if the include_platform_defaults is true.
              items:
                $ref: '#/components/schemas/PaymentMethodTypes'
              type: array
            enabled:
              description: >-
                An array of payment method identifiers that are explicitly
                enabled. This means these payment methods will be shown on
                checkout. Example use case is to only enable a specific payment
                method like cashapp, or extending the platform defaults with
                additional methods.
              items:
                $ref: '#/components/schemas/PaymentMethodTypes'
              type: array
            include_platform_defaults:
              description: >-
                Whether Whop's platform default payment method enablement
                settings are included in this configuration. The full list of
                default payment methods can be found in the documentation at
                docs.whop.com/payments.
              type: boolean
          required:
            - enabled
            - disabled
            - include_platform_defaults
          type:
            - object
            - 'null'
        plan:
          description: The plan to use for the checkout configuration
          properties:
            adaptive_pricing_enabled:
              description: >-
                Whether the creator has turned on adaptive pricing for this
                plan. Raw setting — does not check processor compatibility or
                feature flags.
              type: boolean
            billing_period:
              description: >-
                Number of days between recurring charges, such as 30 for monthly
                or 365 for annual. `null` for one-time plans.
              example: 42
              type:
                - integer
                - 'null'
            currency:
              $ref: '#/components/schemas/Currencies'
              description: >-
                The currency used for all prices on this plan (e.g., 'usd',
                'eur'). All monetary amounts on the plan are denominated in this
                currency.
            expiration_days:
              description: >-
                Access duration in days for expiration-based plans, such as 365
                for a one-year pass.
              example: 42
              type:
                - integer
                - 'null'
            id:
              description: The unique identifier for the plan.
              example: plan_xxxxxxxxxxxxx
              type: string
            initial_price:
              description: >-
                The initial purchase price in the plan's base_currency (e.g.,
                49.99 for $49.99). For one-time plans, this is the full price.
                For renewal plans, this is charged on top of the first
                renewal_price.
              example: 6.9
              type: number
            plan_type:
              $ref: '#/components/schemas/PlanTypes'
              description: >-
                The billing model for this plan: 'renewal' for recurring
                subscriptions or 'one_time' for single payments.
            release_method:
              $ref: '#/components/schemas/ReleaseMethod'
              description: >-
                Sales method for this plan: `buy_now` for immediate purchase or
                `waitlist` for waitlist-based access.
            renewal_price:
              description: >-
                The recurring price charged every billing_period in the plan's
                base_currency (e.g., 9.99 for $9.99/period). Zero for one-time
                plans.
              example: 6.9
              type: number
            three_ds_level:
              description: >-
                The 3D Secure behavior for this plan. Null means the plan
                inherits the account default.
              oneOf:
                - $ref: '#/components/schemas/PlanThreeDsLevels'
                - type: 'null'
            trial_period_days:
              description: >-
                Free trial days before first renewal charge. `null` if no trial
                is configured or the user has already used a trial for this
                plan.
              example: 42
              type:
                - integer
                - 'null'
            visibility:
              $ref: '#/components/schemas/Visibility'
              description: >-
                Controls whether the plan is visible to customers. When set to
                'hidden', the plan is only accessible via direct link.
          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
          type:
            - object
            - 'null'
        purchase_url:
          description: >-
            A URL you can send to customers to complete a checkout. It looks
            like `/checkout/plan_xxxx?session={id}`
          type: string
        redirect_url:
          description: >-
            The URL to redirect the user to after the checkout configuration is
            created
          type:
            - string
            - 'null'
      required:
        - id
        - company_id
        - mode
        - currency
        - plan
        - affiliate_code
        - metadata
        - redirect_url
        - purchase_url
        - payment_method_configuration
      type: object
    CheckoutModes:
      description: The different modes a checkout can be set to.
      enum:
        - payment
        - setup
      type: string
  securitySchemes:
    bearerAuth:
      bearerFormat: auth-scheme
      description: >-
        A company API key, company scoped JWT, app API key, or user OAuth token.
        You must prepend your key/token with the word 'Bearer', which will look
        like `Bearer ***************************`
      scheme: bearer
      type: http

````