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

# Create Checkout

Use this endpoint to create a new checkout session for a customer.

We support these checkout types:

* A deposit checkout is used to deposit money into a customer's balance.
* A purchase checkout is used to purchase a product or service, such as credits, sweepstakes coins, or digital goods.
* A subscription checkout is used to create a recurring deposit checkout with subscription billing metadata.
* A withdrawal checkout is used to withdraw money from a customer's balance.

<a href="https://drive.google.com/file/d/1QJHS4QqnpExpCuNpHBd-6eDpo4lTD9KQ/view" target="_blank">View the Soap Experiences PDF →</a>

### Receive Payments

<CardGroup cols={2}>
  <Card title="Draft King's Style Deposit" icon="keyboard" href="/api-reference/api-v1/checkouts/draftkings-deposit">
    Input form where the customer enters a custom deposit amount.
  </Card>

  <Card title="Preset Amount Deposit" icon="money-bill" href="/api-reference/api-v1/checkouts/preset-deposit">
    Deposit a fixed amount (e.g. \$100) into the customer's balance.
  </Card>

  <Card title="Subscription Checkout" icon="calendar-days" href="/api-reference/api-v1/checkouts/subscription-checkout">
    Create a recurring deposit checkout with subscription billing metadata.
  </Card>

  <Card title="Digital Goods Purchase" icon="coins" href="/api-reference/api-v1/checkouts/sweeps-purchase">
    Purchase virtual currency, in-game tokens, sweepstakes coins, and other digital goods.
  </Card>

  <Card title="Ecomm Purchase" icon="cart-shopping" href="/api-reference/api-v1/checkouts/ecomm-purchase">
    Purchase physical goods such as nutraceuticals, peptides, supplements, and more.
  </Card>
</CardGroup>

### Send Payments

<CardGroup cols={2}>
  <Card title="Balance Withdrawal" icon="wallet" href="/api-reference/api-v1/checkouts/balance-withdrawal">
    Input form where the customer withdraws up to their available balance.
  </Card>

  <Card title="Preset Amount Withdrawal" icon="money-check-dollar" href="/api-reference/api-v1/checkouts/preset-withdrawal">
    Withdraw a fixed amount (e.g. \$100) from the customer's balance.
  </Card>
</CardGroup>

## Common Parameters

| Parameter              | Required                                         | Description                                                                                                                                                                                                         |
| ---------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `customer_id`          | Yes                                              | Soap customer ID for the customer starting the checkout.                                                                                                                                                            |
| `type`                 | Yes                                              | Checkout direction. Use `"deposit"` for deposits, purchases, and subscriptions. Use `"withdrawal"` for withdrawals.                                                                                                 |
| `line_items`           | Required for purchase and subscription checkouts | Products included in the checkout. Supports existing product references and inline dynamic products.                                                                                                                |
| `subscription_data`    | Required for subscription checkouts              | Billing cadence for a recurring subscription checkout. Includes `interval` and `interval_count`.                                                                                                                    |
| `fixed_amount_cents`   | Required for preset amount flows                 | Fixed amount in cents for preset deposits or preset withdrawals. Must be at least `1`.                                                                                                                              |
| `balance_amount_cents` | Required for balance withdrawal flows            | Customer balance in cents. The customer can withdraw up to this amount. Must be at least `1`.                                                                                                                       |
| `experience`           | No                                               | Checkout presentation. Use `"web"`, `"webview"`, or `"iframe"`. Set `"iframe"` when embedding the checkout in an iframe — required for in-frame Apple Pay. See [Embedded Checkout](/get_started/embedded-checkout). |
| `return_url`           | No                                               | URL where Soap redirects the customer after checkout completion. When the checkout is embedded in an iframe, this redirect happens **inside the frame**.                                                            |

## Line Items and Dynamic Pricing

Use `line_items` for purchase and subscription checkout flows where Soap should show purchased products and compute the checkout total from product quantities. Line items are not used for balance amount, fixed amount, or withdrawal-only flows.

Each line item can be either:

* An existing product reference with `product_id` and `quantity`.
* An inline dynamic product with `name`, `price_cents`, and `quantity`, plus optional `sku`, `url`, and `dedup`.

When `dedup` is `true`, include a stable `sku`. Soap reuses a matching product for the same business when both `sku` and `price_cents` match. If `dedup` is absent or `false`, Soap creates a new active product from the inline line item.

### Line Item Parameters

| Parameter                  | Required                        | Description                                                                                                                                     |
| -------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `line_items[].product_id`  | Yes for existing products       | Soap product ID for an existing product. Use this shape with `quantity` when the product is already in Soap.                                    |
| `line_items[].name`        | Yes for inline products         | Product name to create and display in checkout.                                                                                                 |
| `line_items[].price_cents` | Yes for inline products         | Unit price in cents for the inline product. Must be at least `1`.                                                                               |
| `line_items[].quantity`    | Yes                             | Number of units to purchase. Must be at least `1`.                                                                                              |
| `line_items[].sku`         | Required when `dedup` is `true` | Stable merchant SKU used with `price_cents` to find an existing product for this business.                                                      |
| `line_items[].url`         | No                              | Product image URL shown in checkout where supported.                                                                                            |
| `line_items[].dedup`       | No                              | When `true`, Soap looks for an existing product for the same business by `sku` and `price_cents` before creating a new product. Requires `sku`. |

### Dynamic Purchase Example

```json theme={null}
{
  "customer_id": "cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870",
  "type": "deposit",
  "line_items": [
    {
      "name": "Gold Coins Pack",
      "price_cents": 999,
      "quantity": 1,
      "sku": "gold-coins-1000",
      "url": "https://example.com/products/gold-coins.png",
      "dedup": true
    }
  ],
  "experience": "web",
  "return_url": "https://myapp.com/store"
}
```

## Subscription Checkouts

Create a subscription checkout by sending `subscription_data` on `POST /api/v1/checkouts`. Subscription checkouts are deposit-only and require `line_items`.

Subscription checkouts use the same line item formats as purchase checkouts: either existing products by `product_id` or inline dynamic products with `name`, `price_cents`, and `quantity`.

The `subscription_data.interval` value can be `day`, `week`, `month`, or `year`. For quarterly billing, use `interval: "month"` and `interval_count: 3`.

### Subscription Parameters

| Parameter                          | Required | Description                                                                                                 |
| ---------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `subscription_data.interval`       | Yes      | Billing interval. Must be `day`, `week`, `month`, or `year`.                                                |
| `subscription_data.interval_count` | Yes      | Number of intervals between charges. Use `interval: "month"` and `interval_count: 3` for quarterly billing. |

```json theme={null}
{
  "customer_id": "cus_aaN5GMMF8CFpsYMuEnN9DPFMtGQaVDQZ",
  "type": "deposit",
  "line_items": [
    {
      "name": "Premium Monthly Plan",
      "price_cents": 2999,
      "quantity": 1,
      "sku": "PREMIUM-MONTHLY",
      "url": "https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=800&q=80",
      "dedup": true
    }
  ],
  "subscription_data": {
    "interval": "month",
    "interval_count": 1
  }
}
```

<RequestExample>
  ```bash Curl theme={null}
  curl -X POST 'https://api-sandbox.paywithsoap.com/api/v1/checkouts' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: YOUR_API_KEY' \
  --data '{
      "customer_id": "cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870",
      "type": "deposit"
  }'
  ```

  ```ruby Ruby theme={null}
  require 'net/http'
  require 'uri'
  require 'json'

  uri = URI.parse('https://api-sandbox.paywithsoap.com/api/v1/checkouts')
  request = Net::HTTP::Post.new(uri)
  request.content_type = 'application/json'
  request['Authorization'] = 'YOUR_API_KEY'
  request.body = {
    customer_id: 'cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870',
    type: 'deposit'
  }.to_json

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  puts response.body
  ```

  ```javascript JavaScript theme={null}
  const fetch = require('node-fetch');

  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      customer_id: 'cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870',
      type: 'deposit'
    })
  };

  fetch('https://api-sandbox.paywithsoap.com/api/v1/checkouts', options)
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
  ```

  ```python Python theme={null}
  import requests
  import json

  url = "https://api-sandbox.paywithsoap.com/api/v1/checkouts"
  headers = {
      "Content-Type": "application/json",
      "Authorization": "YOUR_API_KEY"
  }
  data = {
      "customer_id": "cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870",
      "type": "deposit"
  }

  response = requests.post(url, headers=headers, json=data)
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
      "url": "https://wallet-sandbox.paywithsoap.com?clientSecret=HMC3VTosbzJd7cLsoP3geC5QmSz8jqF6",
      "id": "chk_HBq6ExeoRDMPFCCabR8n1h7S1towds7K",
      "client_secret": "HMC3VTosbzJd7cLsoP3geC5QmSz8jqF6",
      "line_items": [],
      "line_items_total_amount_cents": null,
      "balance_amount_cents": null,
      "type": "deposit",
      "experience": null,
      "subscription": null
  }
  ```
</ResponseExample>

<Note>
  Redirect the customer to `url`, or embed it in an `<iframe allow="payment">` to render checkout in context. See [Embedded Checkout](/get_started/embedded-checkout).
</Note>


## OpenAPI

````yaml POST /api/v1/checkouts
openapi: 3.1.0
info:
  title: Soap API
  description: >-
    API documentation for Soap - AI-native payments infrastructure for complex,
    compliance-heavy payment flows
  license:
    name: MIT
  version: 1.4.0
servers:
  - url: https://api-sandbox.paywithsoap.com
security:
  - bearerAuth: []
paths:
  /api/v1/checkouts:
    post:
      tags:
        - Checkouts
      summary: Creates a checkout
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - title: Deposit
                  description: Standard sports-book styles deposit.
                  type: object
                  properties:
                    customer_id:
                      type: string
                      description: Unique identifier for the customer
                      example: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                    type:
                      type: string
                      enum:
                        - deposit
                      description: Type of transaction - deposit
                      example: deposit
                    experience:
                      type: string
                      enum:
                        - web
                        - webview
                        - iframe
                      description: >-
                        The experience type for the checkout flow. Use "iframe"
                        when embedding the checkout in an iframe.
                    return_url:
                      type: string
                      description: >-
                        URL to redirect the customer after completion (if you
                        are opening a new tab or window for your customer you do
                        not need this)
                      example: https://myapp.com/game/:id
                  required:
                    - customer_id
                    - type
                - title: Fixed Deposit
                  description: >-
                    Customer can deposit a fixed amount, best used if you are
                    pre-setting deposit amounts
                  type: object
                  properties:
                    customer_id:
                      type: string
                      description: Unique identifier for the customer
                      example: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                    type:
                      type: string
                      enum:
                        - deposit
                      description: Type of transaction - deposit
                      example: deposit
                    fixed_amount_cents:
                      type: integer
                      description: Fixed amount in cents to deposit
                      example: 5000
                    experience:
                      type: string
                      enum:
                        - web
                        - webview
                        - iframe
                      description: >-
                        The experience type for the checkout flow. Use "iframe"
                        when embedding the checkout in an iframe.
                    return_url:
                      type: string
                      description: >-
                        URL to redirect the customer after completion (if you
                        are opening a new tab or window for your customer you do
                        not need this)
                      example: https://myapp.com/game/:id
                  required:
                    - customer_id
                    - type
                    - fixed_amount_cents
                - title: Purchase
                  description: >-
                    For buying any sort of in-game currency or other product.
                    Supports existing Soap products and inline dynamic pricing.
                  type: object
                  properties:
                    customer_id:
                      type: string
                      description: Unique identifier for the customer
                      example: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                    type:
                      type: string
                      enum:
                        - deposit
                      description: Type of transaction - deposit with line items
                      example: deposit
                    line_items:
                      type: array
                      description: >-
                        Products included in the purchase checkout. Use
                        product_id for existing products, or name and
                        price_cents for inline dynamic pricing.
                      minItems: 1
                      items:
                        oneOf:
                          - title: Existing Product Line Item
                            type: object
                            properties:
                              product_id:
                                type: string
                                description: Unique identifier of an existing Soap product
                              quantity:
                                type: integer
                                description: Number of units of the product to purchase
                                minimum: 1
                            required:
                              - product_id
                              - quantity
                          - title: Inline Dynamic Product Line Item
                            type: object
                            properties:
                              name:
                                type: string
                                description: Product name to create and display in checkout
                              price_cents:
                                type: integer
                                description: Unit price in cents for this checkout
                                minimum: 1
                              quantity:
                                type: integer
                                description: Number of units of the product to purchase
                                minimum: 1
                              sku:
                                type: string
                                description: >-
                                  Stable merchant SKU used with price_cents for
                                  product deduplication
                              url:
                                type: string
                                description: Product image URL
                              dedup:
                                type: boolean
                                description: >-
                                  When true, Soap reuses a matching product for
                                  the same business by sku and price_cents.
                                  Requires sku.
                            required:
                              - name
                              - price_cents
                              - quantity
                    experience:
                      type: string
                      enum:
                        - web
                        - webview
                        - iframe
                      description: >-
                        The experience type for the checkout flow. Use "iframe"
                        when embedding the checkout in an iframe.
                    return_url:
                      type: string
                      description: >-
                        URL to redirect the customer after completion (if you
                        are opening a new tab or window for your customer you do
                        not need this)
                      example: https://myapp.com/game/:id
                  required:
                    - customer_id
                    - type
                    - line_items
                - title: Subscription Checkout
                  description: >-
                    Creates a recurring deposit checkout. This request mode
                    supports dynamic inline line-item pricing.
                  type: object
                  properties:
                    customer_id:
                      type: string
                      description: Unique identifier for the customer
                      example: cus_aaN5GMMF8CFpsYMuEnN9DPFMtGQaVDQZ
                    type:
                      type: string
                      enum:
                        - deposit
                      description: Subscription checkouts are deposit-only
                      example: deposit
                    line_items:
                      type: array
                      description: >-
                        Products included in the subscription checkout. Use
                        product_id for existing products, or name and
                        price_cents for inline dynamic pricing.
                      minItems: 1
                      items:
                        oneOf:
                          - title: Existing Product Line Item
                            type: object
                            properties:
                              product_id:
                                type: string
                                description: Unique identifier of an existing product
                              quantity:
                                type: integer
                                description: Number of units of the product
                                minimum: 1
                            required:
                              - product_id
                              - quantity
                          - title: Inline Dynamic Product Line Item
                            type: object
                            properties:
                              name:
                                type: string
                                description: Product name to display in checkout
                              price_cents:
                                type: integer
                                description: Unit price in cents for this checkout
                                minimum: 1
                              quantity:
                                type: integer
                                description: Number of units of the product
                                minimum: 1
                              sku:
                                type: string
                                description: >-
                                  Stable merchant SKU used with price_cents for
                                  product deduplication
                              url:
                                type: string
                                description: Product image URL
                              dedup:
                                type: boolean
                                description: >-
                                  When true, Soap reuses a matching product for
                                  the same business by sku and price_cents.
                                  Requires sku.
                            required:
                              - name
                              - price_cents
                              - quantity
                    subscription_data:
                      type: object
                      description: Recurring billing cadence for the subscription checkout
                      properties:
                        interval:
                          type: string
                          enum:
                            - day
                            - week
                            - month
                            - year
                          description: Base billing interval
                        interval_count:
                          type: integer
                          description: >-
                            Number of intervals between renewals. Use
                            interval=month and interval_count=3 for quarterly
                            billing.
                          minimum: 1
                      required:
                        - interval
                        - interval_count
                    experience:
                      type: string
                      enum:
                        - web
                        - webview
                        - iframe
                      description: >-
                        The experience type for the checkout flow. Use "iframe"
                        when embedding the checkout in an iframe.
                    return_url:
                      type: string
                      description: >-
                        URL to redirect the customer after completion (if you
                        are opening a new tab or window for your customer you do
                        not need this)
                      example: https://myapp.com/game/:id
                  required:
                    - customer_id
                    - type
                    - line_items
                    - subscription_data
                - title: Withdrawal
                  description: >-
                    Customer has ability to pick withdrawal amount, up to their
                    balance.
                  type: object
                  properties:
                    customer_id:
                      type: string
                      description: Unique identifier for the customer
                      example: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                    type:
                      type: string
                      enum:
                        - withdrawal
                      description: Type of transaction - withdrawal
                      example: withdrawal
                    balance_amount_cents:
                      type: integer
                      description: Amount in cents to withdraw from the balance
                      example: 10000
                    experience:
                      type: string
                      enum:
                        - web
                        - webview
                        - iframe
                      description: >-
                        The experience type for the checkout flow. Use "iframe"
                        when embedding the checkout in an iframe.
                    return_url:
                      type: string
                      description: >-
                        URL to redirect the customer after completion (if you
                        are opening a new tab or window for your customer you do
                        not need this)
                      example: https://myapp.com/game/:id
                  required:
                    - customer_id
                    - type
                    - balance_amount_cents
                - title: Fixed Withdrawal
                  description: >-
                    Customer can withdraw a fixed amount, best used if you are
                    pre approving withdrawals and placing balance on hold
                  type: object
                  properties:
                    customer_id:
                      type: string
                      description: Unique identifier for the customer
                      example: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                    type:
                      type: string
                      enum:
                        - withdrawal
                      description: Type of transaction - withdrawal
                      example: withdrawal
                    fixed_amount_cents:
                      type: integer
                      description: Fixed amount in cents to withdraw
                      example: 5000
                    experience:
                      type: string
                      enum:
                        - web
                        - webview
                        - iframe
                      description: >-
                        The experience type for the checkout flow. Use "iframe"
                        when embedding the checkout in an iframe.
                    return_url:
                      type: string
                      description: >-
                        URL to redirect the customer after completion (if you
                        are opening a new tab or window for your customer you do
                        not need this)
                      example: https://myapp.com/game/:id
                  required:
                    - customer_id
                    - type
                    - fixed_amount_cents
            examples:
              deposit:
                summary: Example deposit request
                value:
                  customer_id: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                  type: deposit
              purchase:
                summary: Example purchase request with an existing product
                value:
                  customer_id: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                  type: deposit
                  line_items:
                    - product_id: pr_vi57KegYgcRqcGHqip8q6UZiqtrwMT871
                      quantity: 1
              dynamic_purchase:
                summary: Example purchase request with dynamic inline pricing
                value:
                  customer_id: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                  type: deposit
                  line_items:
                    - name: Gold Coins Pack
                      price_cents: 999
                      quantity: 1
                      sku: gold-coins-1000
                      url: https://example.com/products/gold-coins.png
                      dedup: true
                  experience: web
                  return_url: https://myapp.com/store
              subscription:
                summary: Example subscription checkout request
                value:
                  customer_id: cus_aaN5GMMF8CFpsYMuEnN9DPFMtGQaVDQZ
                  type: deposit
                  line_items:
                    - name: Tirzepatide GLP-2 - 10mg (Wholesale)
                      price_cents: 3999
                      quantity: 2
                      sku: GLP-2
                      url: >-
                        https://www.constellationhealth.app/images/constellation/glp2-10.png
                      dedup: true
                  subscription_data:
                    interval: month
                    interval_count: 1
              withdrawal:
                summary: Example withdrawal request
                value:
                  customer_id: cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870
                  type: withdrawal
                  balance_amount_cents: 10000
      responses:
        '200':
          description: >-
            Use the url field in the response. In web, you can redirect or open
            a new tab. In native, you can use a WebView.
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    description: The url of the checkout experience
                  id:
                    type: string
                    description: Unique identifier for the checkout
                  client_secret:
                    type: string
                    description: Secret used for client-side checkout processing
                  line_items:
                    type: array
                    description: >-
                      Line items contained in the checkout (non-empty only for
                      purchases)
                    items:
                      type: object
                      properties:
                        product_id:
                          type: string
                          description: Unique identifier for the product
                        quantity:
                          type: integer
                          description: Quantity of the product
                        total_amount_cents:
                          type: integer
                          description: Total amount in cents for this line item
                        product_name:
                          type: string
                          description: Name of the product
                        product_url:
                          type: string
                          description: URL to the product image
                        product_price_cents:
                          type: integer
                          description: Price of the product in cents
                        sku:
                          type: string
                          nullable: true
                          description: Merchant SKU for the product, when present
                  line_items_total_amount_cents:
                    type: integer
                    nullable: true
                    description: Total amount in cents for all line items
                  balance_amount_cents:
                    type: integer
                    nullable: true
                    description: Amount in cents withdrawn from or to be added to balance
                  type:
                    type: string
                    enum:
                      - deposit
                      - withdrawal
                    description: Type of checkout transaction
                  experience:
                    type: string
                    enum:
                      - web
                      - webview
                      - iframe
                    description: >-
                      The experience type for the checkout flow. Use "iframe"
                      when embedding the checkout in an iframe.
                  subscription:
                    type: object
                    nullable: true
                    description: >-
                      Subscription metadata returned only for subscription
                      checkouts
                    properties:
                      id:
                        type: string
                        description: Unique identifier for the subscription
                      interval:
                        type: string
                        enum:
                          - day
                          - week
                          - month
                          - year
                        description: Base billing interval
                      interval_count:
                        type: integer
                        description: Number of intervals between renewals
                      line_items:
                        type: array
                        description: Line items attached to the subscription
                        items:
                          type: object
                          properties:
                            product_id:
                              type: string
                              description: Unique identifier for the product
                            sku:
                              type: string
                              nullable: true
                              description: Merchant SKU for the product, when present
                            product_name:
                              type: string
                              description: Name of the product
                            product_url:
                              type: string
                              description: URL to the product image
                            quantity:
                              type: integer
                              description: Quantity billed each interval
                            price_cents:
                              type: integer
                              description: >-
                                Unit price in cents snapshotted when the
                                subscription was created
                            total_amount_cents:
                              type: integer
                              description: >-
                                Total amount in cents for this subscription line
                                item
                      line_items_total_amount_cents:
                        type: integer
                        description: Total amount in cents for all subscription line items
              examples:
                deposit:
                  summary: Example deposit response
                  value:
                    url: >-
                      https://wallet-sandbox.paywithsoap.com?clientSecret=WHhtxLbP5FzDeUZLT8Qwp4Mfdqffij6m
                    id: chk_HyN2U3WUSamMTMGJTGMVLKirBF4cCa7a
                    client_secret: WHhtxLbP5FzDeUZLT8Qwp4Mfdqffij6m
                    line_items: []
                    line_items_total_amount_cents: null
                    balance_amount_cents: null
                    type: deposit
                    experience: web
                purchase:
                  summary: Example purchase response
                  value:
                    url: >-
                      https://wallet-sandbox.paywithsoap.com?clientSecret=aMtuBri6SjHUhaS5nfK3TjhF3ix7mVCS
                    id: chk_krg8FxbUbcKV2jhjCW3jzJxQxecyxM5K
                    client_secret: aMtuBri6SjHUhaS5nfK3TjhF3ix7mVCS
                    line_items:
                      - product_id: pr_vi57KegYgcRqcGHqip8q6UZiqtrwMT871
                        quantity: 1
                        total_amount_cents: 1000
                        product_name: Test Product
                        product_url: >-
                          https://image.deadspin.com/tr:w-1100/109456202409/clubspoker-promo-daily-coins-us.jpg.webp
                        product_price_cents: 1000
                        sku: gold-coins-1000
                    line_items_total_amount_cents: 1000
                    balance_amount_cents: null
                    type: deposit
                    experience: webview
                subscription:
                  summary: Example subscription checkout response
                  value:
                    url: >-
                      https://wallet-sandbox.paywithsoap.com?clientSecret=R7qE5tR1M3ZPp4Sk9Wq2aC8bN6yHjL0x
                    id: chk_VcYBRPpgm3nCRUrGbyGJNAA8n66cWgJk
                    client_secret: R7qE5tR1M3ZPp4Sk9Wq2aC8bN6yHjL0x
                    line_items:
                      - product_id: pr_Hc4R6TMvNYftzF2wRNrWXjv6AXTEJNZb
                        quantity: 2
                        total_amount_cents: 7998
                        product_name: Tirzepatide GLP-2 - 10mg (Wholesale)
                        product_url: >-
                          https://www.constellationhealth.app/images/constellation/glp2-10.png
                        product_price_cents: 3999
                        sku: GLP-2
                    line_items_total_amount_cents: 7998
                    type: deposit
                    experience: web
                    subscription:
                      id: sub_Svnq9AgXj7UmrbMxG6LHwKgz4kQTPF8h
                      interval: month
                      interval_count: 1
                      line_items:
                        - product_id: pr_Hc4R6TMvNYftzF2wRNrWXjv6AXTEJNZb
                          sku: GLP-2
                          product_name: Tirzepatide GLP-2 - 10mg (Wholesale)
                          product_url: >-
                            https://www.constellationhealth.app/images/constellation/glp2-10.png
                          quantity: 2
                          price_cents: 3999
                          total_amount_cents: 7998
                      line_items_total_amount_cents: 7998
                withdrawal:
                  summary: Example withdrawal response
                  value:
                    url: >-
                      https://wallet-sandbox.paywithsoap.com?clientSecret=SDdeAyio3BGF9pxxnb7QACGB8CgJkspg
                    id: chk_paJ68pi2YVrRmPDewpFLrSBoUju4Cg9k
                    client_secret: SDdeAyio3BGF9pxxnb7QACGB8CgJkspg
                    line_items: []
                    line_items_total_amount_cents: null
                    balance_amount_cents: 10000
                    type: withdrawal
                    experience: web
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: Unauthorized - Invalid or missing API key
        '422':
          description: invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication using your API key

````