---
agentTools:
  projectIndex: https://copperx.readme.io/llms.txt
---

# Create a new checkout session

Checkout Sessions allow you to create one-off payments in a fixed or variable amount or start subscriptions for your customers. You should create a new Checkout Session for each payment attempt. Once you create a Checkout Session on your server, you need to redirect user to the Checkout Session URL to complete the payment flow.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/api/v1/checkout/sessions": {
      "post": {
        "operationId": "SessionsController_create",
        "summary": "Create a new checkout session",
        "description": "Checkout Sessions allow you to create one-off payments in a fixed or variable amount or start subscriptions for your customers. You should create a new Checkout Session for each payment attempt. Once you create a Checkout Session on your server, you need to redirect user to the Checkout Session URL to complete the payment flow.",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSessionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionDto"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDto"
                }
              }
            }
          }
        },
        "tags": [
          "Checkout Sessions"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    }
  },
  "info": {
    "title": "Copperx API",
    "description": "Copperx APIs allows you to access to manage payments, transactions and more in a simple way. Our APIs are easy to use and provide an intuitive APIs for developers to create powerful applications.",
    "version": "v0.0.0",
    "contact": {
      "name": "Copperx",
      "url": "https://t.me/+bVxXaalfhF8wMDFl",
      "email": "support@copperx.io"
    }
  },
  "servers": [
    {
      "url": "https://api.copperx.dev",
      "description": "Test"
    },
    {
      "url": "https://api.copperx.io",
      "description": "Production"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http"
      }
    },
    "schemas": {
      "ErrorDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "object"
          },
          "statusCode": {
            "type": "number"
          },
          "error": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "statusCode",
          "error"
        ]
      },
      "PaymentMethodType": {
        "type": "string",
        "enum": [
          "superfluid",
          "wallet",
          "allowance_based_recurring",
          "stripe",
          "binance_pay"
        ]
      },
      "CryptoCurrency": {
        "type": "string",
        "enum": [
          "usdc",
          "usdt",
          "pyusd",
          "eurc",
          "brett",
          "dai",
          "btc",
          "eth",
          "matic",
          "bnb",
          "sol",
          "busd",
          "trx",
          "food",
          "bonk",
          "wif",
          "goat",
          "spx",
          "truf",
          "pengu"
        ]
      },
      "CheckoutSessionSplitWithdrawalAddressDto": {
        "type": "object",
        "properties": {
          "splitPercentage": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "example": 1
          },
          "address": {
            "type": "string",
            "description": "The withdrawal address for the split percentage"
          }
        },
        "required": [
          "splitPercentage",
          "address"
        ]
      },
      "PaymentSettingChainDto": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "number",
            "example": 1
          },
          "blacklistCurrencies": {
            "type": "array",
            "description": "The list of currencies to disable for the payment. Note: This field is only used for checkout session API atm.",
            "example": [
              "usdc"
            ],
            "items": {
              "$ref": "#/components/schemas/CryptoCurrency"
            }
          },
          "withdrawalAddress": {
            "type": "string",
            "description": "This is optional, default withdrawal address configured in dashboard under settings > payment methods is used. The custom withdrawal address to use for this chain instead of stored default withdrawal address."
          },
          "withdrawalAddresses": {
            "description": "The list of withdrawal addresses to split the payment. If provided, the sum of all split percentages should be 100.",
            "minItems": 2,
            "maxItems": 4,
            "example": [
              {
                "splitPercentage": 20,
                "address": "0x898bf05dfec6a2cfbfda2877ff759d62beed7fe7"
              },
              {
                "splitPercentage": 80,
                "address": "0xa7d770a5c4276a4d85caba7bea9a1fcbd3672db7"
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckoutSessionSplitWithdrawalAddressDto"
            }
          }
        },
        "required": [
          "chainId"
        ]
      },
      "AddressDetailDto": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string"
          },
          "line2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "country": {
            "type": "string"
          }
        }
      },
      "CheckoutSessionMode": {
        "type": "string",
        "enum": [
          "payment",
          "subscription"
        ]
      },
      "CustomFieldType": {
        "type": "string",
        "enum": [
          "text",
          "numeric",
          "dropdown"
        ]
      },
      "CustomFieldLabelType": {
        "type": "string",
        "enum": [
          "custom"
        ]
      },
      "CustomFieldLabelDto": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CustomFieldLabelType"
          },
          "custom": {
            "type": "string"
          }
        },
        "required": [
          "custom"
        ]
      },
      "InputFieldDto": {
        "type": "object",
        "properties": {
          "maximumLength": {
            "type": "number",
            "example": 1
          },
          "minimumLength": {
            "type": "number",
            "example": 1
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value"
        ]
      },
      "DropdownFieldOptionsDto": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "value"
        ]
      },
      "DropdownFieldDto": {
        "type": "object",
        "properties": {
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DropdownFieldOptionsDto"
            }
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value"
        ]
      },
      "CheckoutSessionCustomFieldsDto": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/CustomFieldType"
          },
          "label": {
            "$ref": "#/components/schemas/CustomFieldLabelDto"
          },
          "optional": {
            "type": "boolean",
            "default": false
          },
          "text": {
            "$ref": "#/components/schemas/InputFieldDto"
          },
          "numeric": {
            "$ref": "#/components/schemas/InputFieldDto"
          },
          "dropdown": {
            "$ref": "#/components/schemas/DropdownFieldDto"
          }
        },
        "required": [
          "key",
          "type",
          "label",
          "optional"
        ]
      },
      "CheckoutSessionCustomFieldDto": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckoutSessionCustomFieldsDto"
            }
          }
        }
      },
      "AfterCompletionLink": {
        "type": "string",
        "enum": [
          "redirect",
          "hosted_confirmation"
        ]
      },
      "SubmitType": {
        "type": "string",
        "enum": [
          "pay",
          "book",
          "donate"
        ]
      },
      "CustomerCreation": {
        "type": "string",
        "enum": [
          "if_required",
          "always"
        ]
      },
      "CustomerUpdateMode": {
        "type": "string",
        "enum": [
          "auto",
          "never"
        ]
      },
      "CheckoutSessionCustomerUpdateDto": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/CustomerUpdateMode"
          },
          "name": {
            "$ref": "#/components/schemas/CustomerUpdateMode"
          },
          "shipping": {
            "$ref": "#/components/schemas/CustomerUpdateMode"
          }
        }
      },
      "CreateTaxIdDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "country": {
            "type": "string"
          }
        }
      },
      "CreateTaxIdsDto": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateTaxIdDto"
            }
          }
        }
      },
      "CreateCheckoutSessionCustomerDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "organizationName": {
            "type": "string",
            "description": "The organization name"
          },
          "address": {
            "$ref": "#/components/schemas/AddressDetailDto"
          },
          "taxIds": {
            "$ref": "#/components/schemas/CreateTaxIdsDto"
          }
        }
      },
      "Interval": {
        "type": "string",
        "enum": [
          "day",
          "week",
          "month",
          "year"
        ]
      },
      "EntityVisibility": {
        "type": "string",
        "enum": [
          10,
          20
        ]
      },
      "ProductDataDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the product. Displayed on the checkout page"
          },
          "description": {
            "type": "string",
            "description": "The description of the product. Displayed on the checkout page"
          },
          "images": {
            "maxItems": 8,
            "description": "The url of product images. Displayed on the checkout page",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitLabel": {
            "type": "string",
            "description": "The label of the unit of the product. Displayed on the checkout page"
          },
          "url": {
            "type": "string",
            "description": "The url of the product"
          },
          "metadata": {
            "type": "object",
            "description": "The metadata of the product"
          },
          "visibility": {
            "description": "The visibility of the product",
            "$ref": "#/components/schemas/EntityVisibility"
          }
        },
        "required": [
          "name"
        ]
      },
      "PriceType": {
        "type": "string",
        "enum": [
          "one_time",
          "recurring",
          "streaming"
        ]
      },
      "PriceDataDto": {
        "type": "object",
        "properties": {
          "currency": {
            "description": "The currency symbol",
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "interval": {
            "description": "The interval at which to bill for this price. Only required for subscriptions",
            "$ref": "#/components/schemas/Interval"
          },
          "intervalCount": {
            "type": "number",
            "example": 1,
            "description": "It is used to determine the frequency at which the subscription is billed. Only required for subscriptions"
          },
          "unitAmount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The unit amount in 8 decimals, represented as a whole integer"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "The id of the product for which this price is associated"
          },
          "productData": {
            "description": "The product data to be created to link with this price",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductDataDto"
              }
            ]
          },
          "type": {
            "description": "The type of the price",
            "$ref": "#/components/schemas/PriceType"
          }
        },
        "required": [
          "currency",
          "unitAmount"
        ]
      },
      "CreateCheckoutSessionLineItemDto": {
        "type": "object",
        "properties": {
          "priceId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "The id of the price to use in checkout session"
          },
          "priceData": {
            "description": "The price data to be created to use in checkout session",
            "allOf": [
              {
                "$ref": "#/components/schemas/PriceDataDto"
              }
            ]
          },
          "quantity": {
            "type": "number",
            "example": 1,
            "default": 1,
            "description": "The quantity of the line item"
          },
          "periodStart": {
            "format": "date-time",
            "type": "string"
          },
          "periodEnd": {
            "format": "date-time",
            "type": "string"
          },
          "taxRateIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CreateCheckoutSessionPriceItemsDto": {
        "type": "object",
        "properties": {
          "data": {
            "minItems": 1,
            "maxItems": 1,
            "description": "The line items to be used in checkout session",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateCheckoutSessionLineItemDto"
            }
          }
        },
        "required": [
          "data"
        ]
      },
      "CreateCheckoutSessionAllowedChainsDto": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "number",
            "example": 1
          },
          "blacklistCurrencies": {
            "type": "array",
            "description": "The list of currencies to disable for the payment. Note: This field is only used for checkout session API atm.",
            "example": [
              "usdc"
            ],
            "items": {
              "$ref": "#/components/schemas/CryptoCurrency"
            }
          },
          "withdrawalAddress": {
            "type": "string",
            "description": "This is optional, default withdrawal address configured in dashboard under settings > payment methods is used. The custom withdrawal address to use for this chain instead of stored default withdrawal address."
          },
          "withdrawalAddresses": {
            "description": "The list of withdrawal addresses to split the payment. If provided, the sum of all split percentages should be 100.",
            "minItems": 2,
            "maxItems": 4,
            "example": [
              {
                "splitPercentage": 20,
                "address": "0x898bf05dfec6a2cfbfda2877ff759d62beed7fe7"
              },
              {
                "splitPercentage": 80,
                "address": "0xa7d770a5c4276a4d85caba7bea9a1fcbd3672db7"
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckoutSessionSplitWithdrawalAddressDto"
            }
          }
        },
        "required": [
          "chainId"
        ]
      },
      "CreateCheckoutSessionPaymentSettingDto": {
        "type": "object",
        "properties": {
          "preferredChainId": {
            "type": "number",
            "example": 1,
            "description": "The preferred chain's id"
          },
          "allowSwap": {
            "type": "boolean",
            "description": "Whether the user can swap the payment currency",
            "default": false
          },
          "allowFiatPayment": {
            "type": "boolean",
            "description": "Whether to allow payment with fiat currency. If set to true, the payment will be made in fiat currency.\n      This is experimental field and supposed to change. Default: false",
            "default": false
          },
          "allowedChains": {
            "description": "The list of chains allowed for the payment. If not provided, all chains supported by the organization are enabled.You need to provider custom withdrawal address for all allowed chains or none of them.",
            "example": [
              {
                "chainId": 137
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateCheckoutSessionAllowedChainsDto"
            }
          }
        }
      },
      "CreateSessionDto": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode of the Checkout Session.",
            "example": "payment",
            "$ref": "#/components/schemas/CheckoutSessionMode"
          },
          "clientReferenceId": {
            "type": "string",
            "description": "Unique ID string used to identify the session in your backend. This can be your payment ID, cart ID, or similar used to link this Checkout Session with your internal system."
          },
          "nameCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's name. Default: false"
          },
          "emailCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's email address. Default: false"
          },
          "phoneNumberCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's phone number Default: false"
          },
          "shippingAddressCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's shipping address. Default: false"
          },
          "billingAddressCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's billing address. Default: false"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string",
            "description": "The time at which the session will expire. Default: 1 Hour"
          },
          "customFields": {
            "$ref": "#/components/schemas/CheckoutSessionCustomFieldDto"
          },
          "afterCompletion": {
            "description": "The action to take after the payment is completed. You can choose to redirect user to your application or use the default payment confirmation page provided by Copperx",
            "$ref": "#/components/schemas/AfterCompletionLink"
          },
          "afterCompletionConfirmMsg": {
            "type": "string",
            "description": "The message to show after successful payment. Only applicable when `afterCompletion` is set to `hosted_confirmation`"
          },
          "customerId": {
            "type": "string",
            "description": "The ID of the customer if you want to associate the session with a customer"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs that you can attach to a Checkout Session object"
          },
          "submitType": {
            "default": "pay",
            "description": "The type of submit button to display on the Checkout page",
            "$ref": "#/components/schemas/SubmitType"
          },
          "customerCreation": {
            "description": "Whether to create a customer for the session. If required, a customer will be created for subsequent payments",
            "$ref": "#/components/schemas/CustomerCreation"
          },
          "customerUpdate": {
            "description": "The customer update settings to use for this checkout to update existing customer details",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionCustomerUpdateDto"
              }
            ]
          },
          "allowPromotionCodes": {
            "type": "boolean",
            "description": "Enables user redeemable promotion codes."
          },
          "successUrl": {
            "type": "string",
            "description": "The URL to redirect the customer to after payment is completed. Only applicable when `afterCompletion` is set to `redirect`"
          },
          "cancelUrl": {
            "type": "string",
            "description": "The URL to redirect the customer to if they decide to cancel payment"
          },
          "customerData": {
            "description": "The checkout sessions's customer data to be prefilled",
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCheckoutSessionCustomerDto"
              }
            ]
          },
          "lineItems": {
            "description": "The line items to be used in checkout session. Line items are the individual prices that the customer will be charged for",
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCheckoutSessionPriceItemsDto"
              }
            ]
          },
          "paymentSetting": {
            "description": "The payment method settings to use for this checkout's payment",
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCheckoutSessionPaymentSettingDto"
              }
            ]
          },
          "taxRateIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "defaultPromotionCode": {
            "type": "string",
            "description": "The default promotion code to auto apply to this checkout session, when checkout session is created.If promotion code is invalid or expired still checkout session is created without applying promotion code.You need to check whether promotion code applied or not at your end when get create checkout session response."
          }
        },
        "required": [
          "successUrl",
          "lineItems"
        ]
      },
      "Currency": {
        "type": "string",
        "enum": [
          "usdc",
          "usdt",
          "pyusd",
          "eurc",
          "brett",
          "dai",
          "btc",
          "eth",
          "matic",
          "bnb",
          "sol",
          "busd",
          "trx",
          "food",
          "bonk",
          "wif",
          "goat",
          "spx",
          "truf",
          "pengu",
          "usd",
          "inr"
        ]
      },
      "DiscountAmountDetailDto": {
        "type": "object",
        "properties": {
          "amount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The amount of the discount"
          },
          "couponId": {
            "type": "string",
            "description": "The coupon id of the discount"
          }
        },
        "required": [
          "amount",
          "couponId"
        ]
      },
      "CheckoutSessionAmountDetailDto": {
        "type": "object",
        "properties": {
          "currency": {
            "description": "The currency of the payment",
            "$ref": "#/components/schemas/Currency"
          },
          "amountTotal": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The total amount of the payment after discounts and taxes"
          },
          "amountSubtotal": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The total amount of the payment before discounts and taxes"
          },
          "amountDiscount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The total amount of the payment discount"
          },
          "amountTax": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The total amount of the payment tax"
          },
          "amountFee": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The total amount of the payment application fee"
          },
          "amountGasFee": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The total amount of the transaction gas fee. If null then we are not able to calculate gasFee"
          },
          "feePercentage": {
            "type": "number",
            "example": 1,
            "description": "The fee percentage to apply"
          },
          "applyFee": {
            "type": "boolean",
            "description": "The flag to apply fee"
          },
          "applyGasFee": {
            "type": "boolean",
            "description": "The flag to apply gas fee"
          },
          "discountAmounts": {
            "description": "The list of discount amounts",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountAmountDetailDto"
            }
          }
        },
        "required": [
          "currency",
          "amountTotal",
          "amountSubtotal",
          "amountDiscount",
          "amountTax",
          "amountFee",
          "applyFee",
          "applyGasFee",
          "discountAmounts"
        ]
      },
      "CheckoutSessionPaymentSettingDto": {
        "type": "object",
        "properties": {
          "paymentMethodTypes": {
            "type": "array",
            "description": "A list of the types of payment methods",
            "example": "wallet",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            }
          },
          "allowedChains": {
            "description": "The list of chains allowed for the payment. If not provided, all chains supported by the organization are enabled.",
            "example": [
              {
                "chainId": 137
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentSettingChainDto"
            }
          },
          "preferredChainId": {
            "type": "number",
            "example": 1,
            "description": "The preferred chain's id"
          },
          "allowSwap": {
            "type": "boolean",
            "description": "Whether the user can swap the payment currency",
            "default": false
          },
          "allowFiatPayment": {
            "type": "boolean",
            "description": "Whether to allow payment with fiat currency. If set to true, the payment will be made in fiat currency.\n      This is experimental field and supposed to change. Default: false"
          }
        }
      },
      "CheckoutSessionStatus": {
        "type": "string",
        "enum": [
          "open",
          "complete",
          "incomplete",
          "expired"
        ]
      },
      "PaymentStatus": {
        "type": "string",
        "enum": [
          "unpaid",
          "paid"
        ]
      },
      "FullAddressDetailDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name"
          },
          "email": {
            "type": "string",
            "description": "The email"
          },
          "phone": {
            "type": "string",
            "description": "The phone"
          },
          "organizationName": {
            "type": "string",
            "description": "The organization name"
          },
          "address": {
            "description": "The address",
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetailDto"
              }
            ]
          }
        }
      },
      "TaxIdDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          }
        },
        "required": [
          "id",
          "customerId"
        ]
      },
      "TaxIdsDto": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxIdDto"
            }
          }
        }
      },
      "CustomerDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name"
          },
          "email": {
            "type": "string",
            "description": "The email"
          },
          "phone": {
            "type": "string",
            "description": "The phone"
          },
          "organizationName": {
            "type": "string",
            "description": "The organization name"
          },
          "address": {
            "description": "The address",
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetailDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "Customer's id"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Customer's created at"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Customer's updated at"
          },
          "customerReferenceId": {
            "type": "string",
            "description": "Customer's reference id"
          },
          "shipping": {
            "description": "Customer's shipping address",
            "allOf": [
              {
                "$ref": "#/components/schemas/FullAddressDetailDto"
              }
            ]
          },
          "taxIds": {
            "$ref": "#/components/schemas/TaxIdsDto"
          },
          "visibility": {
            "description": "Customer's visibility. If Dashboard then displayed on dashboard UI. If API then only returned in API response only.",
            "$ref": "#/components/schemas/EntityVisibility"
          },
          "metadata": {
            "type": "object",
            "description": "Customer's metadata"
          },
          "customerNumber": {
            "type": "string",
            "description": "Customer number assigned by the system"
          }
        },
        "required": [
          "id",
          "customerNumber"
        ]
      },
      "CheckoutSessionCustomerDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "organizationName": {
            "type": "string",
            "description": "The organization name"
          },
          "address": {
            "$ref": "#/components/schemas/AddressDetailDto"
          },
          "taxIds": {
            "$ref": "#/components/schemas/TaxIdsDto"
          }
        }
      },
      "BillingScheme": {
        "type": "string",
        "enum": [
          "per_unit"
        ]
      },
      "RecurringUsageType": {
        "type": "string",
        "enum": [
          "licensed"
        ]
      },
      "PublicProductDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the product. Displayed on the checkout page"
          },
          "description": {
            "type": "string",
            "description": "The description of the product. Displayed on the checkout page"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the product is currently active"
          },
          "images": {
            "maxItems": 8,
            "description": "The url of product images. Displayed on the checkout page",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "publicImages": {
            "description": "Product images with absolute public url",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitLabel": {
            "type": "string",
            "description": "The label of the unit of the product. Displayed on the checkout page"
          },
          "url": {
            "type": "string",
            "description": "The url of the product"
          },
          "defaultPriceId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "Product's default price id"
          },
          "metadata": {
            "type": "object",
            "description": "The metadata of the product"
          },
          "visibility": {
            "description": "The visibility of the product",
            "$ref": "#/components/schemas/EntityVisibility"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "PublicPriceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "billingScheme": {
            "description": "The billing scheme to use for this price",
            "$ref": "#/components/schemas/BillingScheme"
          },
          "currency": {
            "description": "The currency symbol",
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "Product's id"
          },
          "interval": {
            "description": "The interval at which to bill for this price. Only required for subscriptions",
            "$ref": "#/components/schemas/Interval"
          },
          "intervalCount": {
            "type": "number",
            "example": 1,
            "description": "It is used to determine the frequency at which the subscription is billed. Only required for subscriptions"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the price is currently active"
          },
          "usageType": {
            "description": "The usage type of the price.",
            "$ref": "#/components/schemas/RecurringUsageType"
          },
          "type": {
            "description": "The type of the price",
            "$ref": "#/components/schemas/PriceType"
          },
          "unitAmount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The unit amount in 8 decimals, represented as a whole integer. If not provided, the unit amount will be calculated from unit_amount_decimal."
          },
          "unitAmountDecimal": {
            "type": "string"
          },
          "customUnitMax": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The maximum amount that can be billed per unit for this price. Only if unit amount is not provided"
          },
          "customUnitMin": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The minimum amount that can be billed per unit for this price. Only if unit amount is not provided"
          },
          "customPreset": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The default amount to fill in the amount field for this price on checkout. Only if unit amount is not provided"
          },
          "customUnitAmountSuggestions": {
            "description": "Amount suggestions for this price. Only if unit amount is not provided",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "product": {
            "description": "The product this price belongs to",
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicProductDto"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object in a structured format."
          },
          "visibility": {
            "description": "The visibility of the price. If dashboard, the price is visible in the dashboard",
            "$ref": "#/components/schemas/EntityVisibility"
          }
        },
        "required": [
          "id",
          "currency",
          "productId",
          "type",
          "product"
        ]
      },
      "TaxRateType": {
        "type": "string",
        "enum": [
          "exclusive",
          "inclusive"
        ]
      },
      "LineTaxRateDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the tax rate."
          },
          "description": {
            "type": "string",
            "description": "The description of the tax rate."
          },
          "country": {
            "type": "string",
            "description": "The country of the tax rate."
          },
          "percentage": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "example": 1,
            "description": "Percent that will be added to subtotal as a tax."
          },
          "type": {
            "description": "The type of the tax rate.",
            "$ref": "#/components/schemas/TaxRateType"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "percentage",
          "type",
          "isDefault"
        ]
      },
      "CheckoutSessionPriceItemDto": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "example": 1
          },
          "price": {
            "$ref": "#/components/schemas/PublicPriceDto"
          },
          "taxRates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineTaxRateDto"
            }
          },
          "amountTotal": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807"
          },
          "amountSubtotal": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807"
          },
          "amountTax": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "required": [
          "price"
        ]
      },
      "CheckoutSessionPriceItemsDto": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckoutSessionPriceItemDto"
            }
          }
        }
      },
      "SuperTokenDto": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "SuperToken's address"
          },
          "decimals": {
            "type": "number",
            "example": 1
          },
          "symbol": {
            "type": "string",
            "description": "SuperToken's symbol"
          }
        },
        "required": [
          "address",
          "decimals",
          "symbol"
        ]
      },
      "ChainType": {
        "type": "string",
        "enum": [
          "evm",
          "solana",
          "tron",
          "stripe",
          "binance_pay"
        ]
      },
      "ChainSlimDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1,
            "description": "Chain id"
          },
          "name": {
            "type": "string",
            "description": "Chain name"
          },
          "icon": {
            "type": "string",
            "description": "Chain icon"
          },
          "currency": {
            "description": "Chain currency symbol",
            "$ref": "#/components/schemas/Currency"
          },
          "blockExplorerTransactionUrl": {
            "type": "string",
            "description": "Chain block explorer transaction url"
          },
          "blockExplorerName": {
            "type": "string",
            "description": "Chain block explorer name"
          },
          "type": {
            "description": "Chain type",
            "$ref": "#/components/schemas/ChainType"
          },
          "isBeta": {
            "type": "boolean",
            "description": "Is beta asset"
          }
        },
        "required": [
          "id",
          "name",
          "icon",
          "currency",
          "blockExplorerTransactionUrl",
          "blockExplorerName",
          "type",
          "isBeta"
        ]
      },
      "CheckoutSessionAssetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "chainId": {
            "type": "number",
            "example": 1
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "symbol": {
            "type": "string"
          },
          "decimals": {
            "type": "number",
            "example": 1
          },
          "coingeckoId": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          },
          "superToken": {
            "$ref": "#/components/schemas/SuperTokenDto"
          },
          "chain": {
            "$ref": "#/components/schemas/ChainSlimDto"
          }
        },
        "required": [
          "id",
          "name",
          "address",
          "chainId",
          "currency",
          "symbol",
          "decimals",
          "isPublic",
          "chain"
        ]
      },
      "CheckoutSessionAddressDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "checkoutSessionId": {
            "type": "string"
          },
          "asset": {
            "$ref": "#/components/schemas/CheckoutSessionAssetDto"
          },
          "paymentAddress": {
            "type": "string"
          },
          "gas": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "This approx estimated gas required to withdraw amount from the payment address. It is in gas unit, and need to multiply by gas price to get the total gas fee in native token"
          },
          "gasAmount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "This the approx estimated total amount a user should pay in checkout session currency as transaction fees. This is equivalent to gas * gasPrice. This amount is in 8 (currency decimals)This can be null if gas fee is inclusive of subtotal and not additionally charged"
          }
        },
        "required": [
          "id",
          "checkoutSessionId",
          "asset",
          "paymentAddress"
        ]
      },
      "PaymentIntentStatus": {
        "type": "string",
        "enum": [
          "requires_payment_method",
          "requires_confirmation",
          "requires_action",
          "processing",
          "requires_capture",
          "canceled",
          "succeeded"
        ]
      },
      "AssetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Asset id"
          },
          "name": {
            "type": "string",
            "description": "Asset name"
          },
          "chainId": {
            "type": "number",
            "example": 1,
            "description": "Asset chain id"
          },
          "address": {
            "type": "string",
            "description": "Asset address on chain"
          },
          "currency": {
            "description": "Asset currency symbol",
            "$ref": "#/components/schemas/Currency"
          },
          "symbol": {
            "type": "string",
            "description": "Asset symbol"
          },
          "decimals": {
            "type": "number",
            "example": 1,
            "description": "Asset decimals in which it is represented on chain"
          },
          "coingeckoId": {
            "type": "string",
            "description": "Asset coingecko id"
          },
          "superToken": {
            "description": "SuperToken data",
            "allOf": [
              {
                "$ref": "#/components/schemas/SuperTokenDto"
              }
            ]
          },
          "isEIP5827Supported": {
            "type": "boolean",
            "description": "Is EIP5827 supported"
          }
        },
        "required": [
          "id",
          "name",
          "chainId",
          "address",
          "currency",
          "symbol",
          "decimals",
          "isEIP5827Supported"
        ]
      },
      "PaymentMethodDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "assetId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          },
          "asset": {
            "$ref": "#/components/schemas/AssetDto"
          },
          "type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "accountAddress": {
            "type": "string"
          },
          "billingDetails": {
            "$ref": "#/components/schemas/FullAddressDetailDto"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          },
          "options": {
            "type": "object"
          }
        },
        "required": [
          "id",
          "assetId",
          "asset",
          "type"
        ]
      },
      "TransactionType": {
        "type": "string",
        "enum": [
          "incoming",
          "outgoing",
          "event",
          "transfer"
        ]
      },
      "TransactionDto": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Transaction type",
            "$ref": "#/components/schemas/TransactionType"
          },
          "transactionRelayId": {
            "type": "string",
            "description": "Transaction relay id"
          },
          "transactionHash": {
            "type": "string",
            "description": "Transaction hash"
          },
          "nonce": {
            "type": "number",
            "example": 1,
            "description": "Transaction nonce"
          },
          "gasLimit": {
            "type": "number",
            "example": 1,
            "description": "Transaction gas limit used in payment"
          },
          "validUntil": {
            "type": "string",
            "description": "Transaction valid until"
          },
          "fromAddress": {
            "type": "string",
            "description": "Transaction from address"
          },
          "toAddress": {
            "type": "string",
            "description": "Transaction to address"
          },
          "currency": {
            "description": "Transaction currency",
            "$ref": "#/components/schemas/Currency"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Transaction created at"
          },
          "amount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "Transaction amount in 8 decimals"
          },
          "amountRaw": {
            "type": "string",
            "description": "Transaction amount raw received from alchemy"
          },
          "assetId": {
            "type": "string",
            "description": "Transaction asset id"
          },
          "asset": {
            "$ref": "#/components/schemas/CheckoutSessionAssetDto"
          },
          "transactionUrl": {
            "type": "string",
            "description": "Transaction url"
          }
        },
        "required": [
          "type",
          "fromAddress",
          "toAddress",
          "currency",
          "amountRaw",
          "assetId",
          "asset"
        ]
      },
      "PaymentReceiptDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          },
          "paymentIntentId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          },
          "name": {
            "type": "string"
          },
          "receiptNumber": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "organizationId",
          "paymentIntentId",
          "receiptNumber"
        ]
      },
      "StripeDataDto": {
        "type": "object",
        "properties": {
          "paymentIntentId": {
            "type": "string"
          },
          "receiptUrl": {
            "type": "string"
          },
          "cardLast4": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          }
        }
      },
      "PaymentIntentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          },
          "amount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807"
          },
          "amountReceived": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "status": {
            "$ref": "#/components/schemas/PaymentIntentStatus"
          },
          "paymentMethodId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0"
          },
          "description": {
            "type": "string"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/PaymentMethodDto"
          },
          "paymentMethodTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            }
          },
          "transferAccountAddress": {
            "type": "string"
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionDto"
            }
          },
          "paymentReceipt": {
            "$ref": "#/components/schemas/PaymentReceiptDto"
          },
          "canceledAt": {
            "format": "date-time",
            "type": "string"
          },
          "cancellationReason": {
            "type": "string"
          },
          "stripe": {
            "$ref": "#/components/schemas/StripeDataDto"
          },
          "isMarkRefunded": {
            "type": "boolean",
            "nullable": true
          },
          "markRefundedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "markRefundedComment": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "organizationId",
          "status",
          "paymentMethodId",
          "transactions"
        ]
      },
      "CheckoutSessionCouponDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the coupon displayed to customers on for instance invoices or receipts."
          },
          "percentOff": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "example": 1,
            "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon."
          },
          "amountOff": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "Fixed amount that will be taken off the subtotal of any invoices for this customer for the duration of the coupon.",
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "description": "Name of the currency displayed to customers on for instance invoices or receipts."
          },
          "code": {
            "type": "string",
            "description": "The coupon code"
          }
        },
        "required": [
          "name",
          "code"
        ]
      },
      "CheckoutSessionDiscountDto": {
        "type": "object",
        "properties": {
          "amount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The amount of the discount"
          },
          "couponId": {
            "type": "string",
            "description": "The coupon id of the discount"
          },
          "coupon": {
            "description": "The coupon of the discount",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionCouponDto"
              }
            ]
          }
        },
        "required": [
          "amount",
          "couponId",
          "coupon"
        ]
      },
      "CheckoutSessionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization id of the checkout session"
          },
          "mode": {
            "description": "The mode of the Checkout Session.",
            "example": "payment",
            "$ref": "#/components/schemas/CheckoutSessionMode"
          },
          "paymentLinkId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "The payment link id used to create this checkout session"
          },
          "subscriptionId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "The subscription created from this checkout session"
          },
          "invoiceId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "The invoice created from this checkout session"
          },
          "amountTotal": {
            "format": "int64",
            "type": "integer",
            "example": 100000000,
            "description": "A non-zero amount filled in with 8 decimal places. For example, 1 USDC is 100000000.",
            "minimum": 0
          },
          "amountSubtotal": {
            "format": "int64",
            "type": "integer",
            "example": 100000000,
            "description": "Amount subtotal is total of all line items excluding tax, shipping, application fee and discount. A non-zero amount filled in with 8 decimal places. For example, 1 USDC is 100000000.",
            "minimum": 0
          },
          "amountGasFee": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "Amount fee is extra amount on top of amountSubtotal. If charged from end user."
          },
          "amountFee": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "Amount fee is extra amount on top of amountSubtotal. If charged from end user."
          },
          "amountNet": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807"
          },
          "amountDetails": {
            "description": "The amount details of the payment",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionAmountDetailDto"
              }
            ]
          },
          "currency": {
            "description": "Currency of the amount",
            "example": "usdc",
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "paymentMethodTypes": {
            "type": "array",
            "description": "A list of the types of payment methods (e.g. wallet) this Checkout Session is allowed to accept.",
            "example": "wallet",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            }
          },
          "paymentSetting": {
            "description": "The payment method settings to use for this checkout's payment",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionPaymentSettingDto"
              }
            ]
          },
          "status": {
            "description": "The status of the session",
            "$ref": "#/components/schemas/CheckoutSessionStatus"
          },
          "paymentStatus": {
            "description": "The status of the payment",
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string",
            "description": "The time at which the session will expire. Default: 1 Hour"
          },
          "customerId": {
            "type": "string",
            "description": "The ID of the customer if you want to associate the session with a customer"
          },
          "customer": {
            "description": "The customer detail from saved customer's information. This is only available when customer id is provided or customer is stored",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDto"
              }
            ]
          },
          "customerDetails": {
            "description": "The checkout sessions's customer detail",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionCustomerDto"
              }
            ]
          },
          "clientReferenceId": {
            "type": "string",
            "description": "Unique ID string used to identify the session in your backend. This can be your payment ID, cart ID, or similar used to link this Checkout Session with your internal system."
          },
          "customerCreation": {
            "description": "Whether to create a customer for the session. If required, a customer will be created for subsequent payments",
            "$ref": "#/components/schemas/CustomerCreation"
          },
          "customerUpdate": {
            "description": "The customer update settings to use for this checkout to update existing customer details",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionCustomerUpdateDto"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "The URL to redirect the customer to complete payment"
          },
          "successUrl": {
            "type": "string",
            "description": "The URL to redirect the customer to after payment is completed. Only applicable when `afterCompletion` is set to `redirect`"
          },
          "cancelUrl": {
            "type": "string",
            "description": "The URL to redirect the customer to if they decide to cancel payment"
          },
          "submitType": {
            "default": "pay",
            "description": "The type of submit button to display on the Checkout page",
            "$ref": "#/components/schemas/SubmitType"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs that you can attach to a Checkout Session object"
          },
          "nameCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's name. Default: false"
          },
          "emailCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's email address. Default: false"
          },
          "phoneNumberCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's phone number Default: false"
          },
          "shippingAddressCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's shipping address. Default: false"
          },
          "billingAddressCollection": {
            "type": "boolean",
            "description": "Whether to collect the customer's billing address. Default: false"
          },
          "customFields": {
            "$ref": "#/components/schemas/CheckoutSessionCustomFieldDto"
          },
          "afterCompletion": {
            "description": "The action to take after the payment is completed. You can choose to redirect user to your application or use the default payment confirmation page provided by Copperx",
            "$ref": "#/components/schemas/AfterCompletionLink"
          },
          "afterCompletionConfirmMsg": {
            "type": "string",
            "description": "The message to show after successful payment. Only applicable when `afterCompletion` is set to `hosted_confirmation`"
          },
          "shippingDetails": {
            "description": "The shipping address to use for this checkout",
            "allOf": [
              {
                "$ref": "#/components/schemas/FullAddressDetailDto"
              }
            ]
          },
          "billingDetails": {
            "description": "The billing address to use for this checkout",
            "allOf": [
              {
                "$ref": "#/components/schemas/FullAddressDetailDto"
              }
            ]
          },
          "lineItems": {
            "description": "The list of line items to display on the session",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSessionPriceItemsDto"
              }
            ]
          },
          "addresses": {
            "description": "The list of payment addresses associated with the session. It is the list of the addresses that will be used to pay the amount.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckoutSessionAddressDto"
            }
          },
          "paymentIntent": {
            "description": "The payment intent associated with the session. Payment intent is created when the session is created.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentIntentDto"
              }
            ]
          },
          "isMarkRefunded": {
            "type": "boolean",
            "description": "Whether to mark the payment as refunded"
          },
          "allowPromotionCodes": {
            "type": "boolean",
            "description": "Enables user redeemable promotion codes."
          },
          "discounts": {
            "description": "The list of discounts applied to the session",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckoutSessionDiscountDto"
            }
          },
          "defaultPromotionCode": {
            "type": "string",
            "description": "The default promotion code to apply to the session"
          },
          "isManualPayment": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "organizationId",
          "amountTotal",
          "amountSubtotal",
          "currency",
          "status",
          "paymentStatus",
          "url",
          "lineItems",
          "addresses",
          "paymentIntent",
          "discounts",
          "isManualPayment"
        ]
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "_id": {
    "buffer": {
      "0": 99,
      "1": 181,
      "2": 177,
      "3": 27,
      "4": 23,
      "5": 171,
      "6": 139,
      "7": 0,
      "8": 127,
      "9": 93,
      "10": 212,
      "11": 76
    }
  }
}
```