---
title: "Create a new checkout session"
method: POST
path: "/api/v1/checkout/sessions"
tags: ["Checkout Sessions"]
---

# Create a new checkout session

`POST /api/v1/checkout/sessions`

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.

## Request body

- CreateSessionDto
  - `mode` 'payment' | 'subscription'
  - `clientReferenceId` string — 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` boolean — Whether to collect the customer's name. Default: false
  - `emailCollection` boolean — Whether to collect the customer's email address. Default: false
  - `phoneNumberCollection` boolean — Whether to collect the customer's phone number Default: false
  - `shippingAddressCollection` boolean — Whether to collect the customer's shipping address. Default: false
  - `billingAddressCollection` boolean — Whether to collect the customer's billing address. Default: false
  - `expiresAt` string, date-time — The time at which the session will expire. Default: 1 Hour
  - `customFields` CheckoutSessionCustomFieldDto
    - `fields` CheckoutSessionCustomFieldsDto[]
      - `key` string, required
      - `type` 'text' | 'numeric' | 'dropdown', required
      - `label` CustomFieldLabelDto, required
        - `type` 'custom'
        - `custom` string, required
      - `optional` boolean, required
      - `text` InputFieldDto
        - `maximumLength` number
        - `minimumLength` number
        - `value` string, required
      - `numeric` InputFieldDto
        - `maximumLength` number
        - `minimumLength` number
        - `value` string, required
      - `dropdown` DropdownFieldDto
        - `options` DropdownFieldOptionsDto[]
          - `label` string, required
          - `value` string, required
        - `value` string, required
  - `afterCompletion` 'redirect' | 'hosted_confirmation'
  - `afterCompletionConfirmMsg` string — The message to show after successful payment. Only applicable when `afterCompletion` is set to `hosted_confirmation`
  - `customerId` string — The ID of the customer if you want to associate the session with a customer
  - `metadata` object — A set of key-value pairs that you can attach to a Checkout Session object
  - `submitType` 'pay' | 'book' | 'donate'
  - `customerCreation` 'if_required' | 'always'
  - `customerUpdate` CheckoutSessionCustomerUpdateDto
    - `address` 'auto' | 'never'
    - `name` 'auto' | 'never'
    - `shipping` 'auto' | 'never'
  - `allowPromotionCodes` boolean — Enables user redeemable promotion codes.
  - `successUrl` string, required — The URL to redirect the customer to after payment is completed. Only applicable when `afterCompletion` is set to `redirect`
  - `cancelUrl` string — The URL to redirect the customer to if they decide to cancel payment
  - `customerData` CreateCheckoutSessionCustomerDto
    - `name` string
    - `email` string
    - `phone` string
    - `organizationName` string — The organization name
    - `address` AddressDetailDto
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
    - `taxIds` CreateTaxIdsDto
      - `object` string
      - `data` CreateTaxIdDto[]
        - `name` string
        - `value` string
        - `country` string
  - `lineItems` CreateCheckoutSessionPriceItemsDto, required
    - `data` CreateCheckoutSessionLineItemDto[], required — The line items to be used in checkout session
      - `priceId` string, uuid — The id of the price to use in checkout session
      - `priceData` PriceDataDto
        - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu', required
        - `interval` 'day' | 'week' | 'month' | 'year'
        - `intervalCount` number — It is used to determine the frequency at which the subscription is billed. Only required for subscriptions
        - `unitAmount` integer, required — The unit amount in 8 decimals, represented as a whole integer
        - `productId` string, uuid — The id of the product for which this price is associated
        - `productData` ProductDataDto
          - `name` string, required — The name of the product. Displayed on the checkout page
          - `description` string — The description of the product. Displayed on the checkout page
          - `images` string[] — The url of product images. Displayed on the checkout page
          - `unitLabel` string — The label of the unit of the product. Displayed on the checkout page
          - `url` string — The url of the product
          - `metadata` object — The metadata of the product
          - `visibility` string
        - `type` 'one_time' | 'recurring' | 'streaming'
      - `quantity` number — The quantity of the line item
      - `periodStart` string, date-time
      - `periodEnd` string, date-time
      - `taxRateIds` string[]
  - `paymentSetting` CreateCheckoutSessionPaymentSettingDto
    - `preferredChainId` number — The preferred chain's id
    - `allowSwap` boolean — Whether the user can swap the payment currency
    - `allowFiatPayment` boolean — Whether to allow payment with fiat currency. If set to true, the payment will be made in fiat currency. This is experimental field and supposed to change. Default: false
    - `allowedChains` CreateCheckoutSessionAllowedChainsDto[] — 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.
      - `chainId` number, required
      - `blacklistCurrencies` CryptoCurrency[] — The list of currencies to disable for the payment. Note: This field is only used for checkout session API atm.
      - `withdrawalAddress` string — 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` CheckoutSessionSplitWithdrawalAddressDto[] — The list of withdrawal addresses to split the payment. If provided, the sum of all split percentages should be 100.
        - `splitPercentage` number, required
        - `address` string, required — The withdrawal address for the split percentage
  - `taxRateIds` string[]
  - `defaultPromotionCode` string — 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.

## Response `200`

- CheckoutSessionDto
  - `id` string, required
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `organizationId` string, required — Organization id of the checkout session
  - `mode` 'payment' | 'subscription'
  - `paymentLinkId` string, uuid — The payment link id used to create this checkout session
  - `subscriptionId` string, uuid — The subscription created from this checkout session
  - `invoiceId` string, uuid — The invoice created from this checkout session
  - `amountTotal` integer, required — A non-zero amount filled in with 8 decimal places. For example, 1 USDC is 100000000.
  - `amountSubtotal` integer, required — 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.
  - `amountGasFee` integer — Amount fee is extra amount on top of amountSubtotal. If charged from end user.
  - `amountFee` integer — Amount fee is extra amount on top of amountSubtotal. If charged from end user.
  - `amountNet` integer
  - `amountDetails` CheckoutSessionAmountDetailDto
    - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
    - `amountTotal` integer, required — The total amount of the payment after discounts and taxes
    - `amountSubtotal` integer, required — The total amount of the payment before discounts and taxes
    - `amountDiscount` integer, required — The total amount of the payment discount
    - `amountTax` integer, required — The total amount of the payment tax
    - `amountFee` integer, required — The total amount of the payment application fee
    - `amountGasFee` integer — The total amount of the transaction gas fee. If null then we are not able to calculate gasFee
    - `feePercentage` number — The fee percentage to apply
    - `applyFee` boolean, required — The flag to apply fee
    - `applyGasFee` boolean, required — The flag to apply gas fee
    - `discountAmounts` DiscountAmountDetailDto[], required — The list of discount amounts
      - `amount` integer, required — The amount of the discount
      - `couponId` string, required — The coupon id of the discount
  - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu', required
  - `paymentMethodTypes` PaymentMethodType[] — A list of the types of payment methods (e.g. wallet) this Checkout Session is allowed to accept.
  - `paymentSetting` CheckoutSessionPaymentSettingDto
    - `paymentMethodTypes` PaymentMethodType[] — A list of the types of payment methods
    - `allowedChains` PaymentSettingChainDto[] — The list of chains allowed for the payment. If not provided, all chains supported by the organization are enabled.
      - `chainId` number, required
      - `blacklistCurrencies` CryptoCurrency[] — The list of currencies to disable for the payment. Note: This field is only used for checkout session API atm.
      - `withdrawalAddress` string — 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` CheckoutSessionSplitWithdrawalAddressDto[] — The list of withdrawal addresses to split the payment. If provided, the sum of all split percentages should be 100.
        - `splitPercentage` number, required
        - `address` string, required — The withdrawal address for the split percentage
    - `preferredChainId` number — The preferred chain's id
    - `allowSwap` boolean — Whether the user can swap the payment currency
    - `allowFiatPayment` boolean — Whether to allow payment with fiat currency. If set to true, the payment will be made in fiat currency. This is experimental field and supposed to change. Default: false
  - `status` 'open' | 'complete' | 'incomplete' | 'expired', required
  - `paymentStatus` 'unpaid' | 'paid', required
  - `expiresAt` string, date-time — The time at which the session will expire. Default: 1 Hour
  - `customerId` string — The ID of the customer if you want to associate the session with a customer
  - `customer` CustomerDto
    - `name` string — The name
    - `email` string — The email
    - `phone` string — The phone
    - `organizationName` string — The organization name
    - `address` AddressDetailDto
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
    - `id` string, uuid, required — Customer's id
    - `createdAt` string, date-time — Customer's created at
    - `updatedAt` string, date-time — Customer's updated at
    - `customerReferenceId` string — Customer's reference id
    - `shipping` FullAddressDetailDto
      - `name` string — The name
      - `email` string — The email
      - `phone` string — The phone
      - `organizationName` string — The organization name
      - `address` AddressDetailDto
        - `line1` string
        - `line2` string
        - `city` string
        - `state` string
        - `postalCode` string
        - `country` string
    - `taxIds` TaxIdsDto
      - `object` string
      - `data` TaxIdDto[]
        - `id` string, required
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
        - `name` string
        - `value` string
        - `country` string
        - `customerId` string, uuid, required
    - `visibility` string
    - `metadata` object — Customer's metadata
    - `customerNumber` string, required — Customer number assigned by the system
  - `customerDetails` CheckoutSessionCustomerDto
    - `name` string
    - `email` string
    - `phone` string
    - `organizationName` string — The organization name
    - `address` AddressDetailDto
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
    - `taxIds` TaxIdsDto
      - `object` string
      - `data` TaxIdDto[]
        - `id` string, required
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
        - `name` string
        - `value` string
        - `country` string
        - `customerId` string, uuid, required
  - `clientReferenceId` string — 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` 'if_required' | 'always'
  - `customerUpdate` CheckoutSessionCustomerUpdateDto
    - `address` 'auto' | 'never'
    - `name` 'auto' | 'never'
    - `shipping` 'auto' | 'never'
  - `url` string, required — The URL to redirect the customer to complete payment
  - `successUrl` string — The URL to redirect the customer to after payment is completed. Only applicable when `afterCompletion` is set to `redirect`
  - `cancelUrl` string — The URL to redirect the customer to if they decide to cancel payment
  - `submitType` 'pay' | 'book' | 'donate'
  - `metadata` object — A set of key-value pairs that you can attach to a Checkout Session object
  - `nameCollection` boolean — Whether to collect the customer's name. Default: false
  - `emailCollection` boolean — Whether to collect the customer's email address. Default: false
  - `phoneNumberCollection` boolean — Whether to collect the customer's phone number Default: false
  - `shippingAddressCollection` boolean — Whether to collect the customer's shipping address. Default: false
  - `billingAddressCollection` boolean — Whether to collect the customer's billing address. Default: false
  - `customFields` CheckoutSessionCustomFieldDto
    - `fields` CheckoutSessionCustomFieldsDto[]
      - `key` string, required
      - `type` 'text' | 'numeric' | 'dropdown', required
      - `label` CustomFieldLabelDto, required
        - `type` 'custom'
        - `custom` string, required
      - `optional` boolean, required
      - `text` InputFieldDto
        - `maximumLength` number
        - `minimumLength` number
        - `value` string, required
      - `numeric` InputFieldDto
        - `maximumLength` number
        - `minimumLength` number
        - `value` string, required
      - `dropdown` DropdownFieldDto
        - `options` DropdownFieldOptionsDto[]
          - `label` string, required
          - `value` string, required
        - `value` string, required
  - `afterCompletion` 'redirect' | 'hosted_confirmation'
  - `afterCompletionConfirmMsg` string — The message to show after successful payment. Only applicable when `afterCompletion` is set to `hosted_confirmation`
  - `shippingDetails` FullAddressDetailDto
    - `name` string — The name
    - `email` string — The email
    - `phone` string — The phone
    - `organizationName` string — The organization name
    - `address` AddressDetailDto
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
  - `billingDetails` FullAddressDetailDto
    - `name` string — The name
    - `email` string — The email
    - `phone` string — The phone
    - `organizationName` string — The organization name
    - `address` AddressDetailDto
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
  - `lineItems` CheckoutSessionPriceItemsDto, required
    - `object` string
    - `data` CheckoutSessionPriceItemDto[]
      - `description` string
      - `quantity` number
      - `price` PublicPriceDto, required
        - `id` string, required
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
        - `billingScheme` 'per_unit'
        - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu', required
        - `productId` string, uuid, required — Product's id
        - `interval` 'day' | 'week' | 'month' | 'year'
        - `intervalCount` number — It is used to determine the frequency at which the subscription is billed. Only required for subscriptions
        - `isActive` boolean — Whether the price is currently active
        - `usageType` 'licensed'
        - `type` 'one_time' | 'recurring' | 'streaming', required
        - `unitAmount` integer — 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` string
        - `customUnitMax` integer — The maximum amount that can be billed per unit for this price. Only if unit amount is not provided
        - `customUnitMin` integer — The minimum amount that can be billed per unit for this price. Only if unit amount is not provided
        - `customPreset` integer — The default amount to fill in the amount field for this price on checkout. Only if unit amount is not provided
        - `customUnitAmountSuggestions` string[] — Amount suggestions for this price. Only if unit amount is not provided
        - `product` PublicProductDto, required
          - `id` string, required
          - `createdAt` string, date-time
          - `updatedAt` string, date-time
          - `name` string, required — The name of the product. Displayed on the checkout page
          - `description` string — The description of the product. Displayed on the checkout page
          - `isActive` boolean — Whether the product is currently active
          - `images` string[] — The url of product images. Displayed on the checkout page
          - `publicImages` string[] — Product images with absolute public url
          - `unitLabel` string — The label of the unit of the product. Displayed on the checkout page
          - `url` string — The url of the product
          - `defaultPriceId` string, uuid — Product's default price id
          - `metadata` object — The metadata of the product
          - `visibility` string
        - `metadata` object — 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` string
      - `taxRates` LineTaxRateDto[]
        - `id` string, required
        - `name` string, required — The name of the tax rate.
        - `description` string — The description of the tax rate.
        - `country` string — The country of the tax rate.
        - `percentage` number, required — Percent that will be added to subtotal as a tax.
        - `type` 'exclusive' | 'inclusive', required
        - `isDefault` boolean, required
      - `amountTotal` integer
      - `amountSubtotal` integer
      - `amountTax` integer
      - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr'
  - `addresses` CheckoutSessionAddressDto[], required — The list of payment addresses associated with the session. It is the list of the addresses that will be used to pay the amount.
    - `id` string, required
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `checkoutSessionId` string, required
    - `asset` CheckoutSessionAssetDto, required
      - `id` string, required
      - `name` string, required
      - `address` string, required
      - `chainId` number, required
      - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
      - `symbol` string, required
      - `decimals` number, required
      - `coingeckoId` string
      - `isPublic` boolean, required
      - `superToken` SuperTokenDto
        - `address` string, required — SuperToken's address
        - `decimals` number, required
        - `symbol` string, required — SuperToken's symbol
      - `chain` ChainSlimDto, required
        - `id` number, required — Chain id
        - `name` string, required — Chain name
        - `icon` string, required — Chain icon
        - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
        - `blockExplorerTransactionUrl` string, required — Chain block explorer transaction url
        - `blockExplorerName` string, required — Chain block explorer name
        - `type` 'evm' | 'solana' | 'tron' | 'stripe' | 'binance_pay', required
        - `isBeta` boolean, required — Is beta asset
    - `paymentAddress` string, required
    - `gas` integer — 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` integer — 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
  - `paymentIntent` PaymentIntentDto, required
    - `id` string, required
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `organizationId` string, uuid, required
    - `amount` integer
    - `amountReceived` integer
    - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr'
    - `status` 'requires_payment_method' | 'requires_confirmation' | 'requires_action' | 'processing' | 'requires_capture' | 'canceled' | 'succeeded', required
    - `paymentMethodId` string, uuid, required
    - `description` string
    - `paymentMethod` PaymentMethodDto
      - `id` string, required
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `assetId` string, uuid, required
      - `asset` AssetDto, required
        - `id` string, required — Asset id
        - `name` string, required — Asset name
        - `chainId` number, required — Asset chain id
        - `address` string, required — Asset address on chain
        - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
        - `symbol` string, required — Asset symbol
        - `decimals` number, required — Asset decimals in which it is represented on chain
        - `coingeckoId` string — Asset coingecko id
        - `superToken` SuperTokenDto
          - `address` string, required — SuperToken's address
          - `decimals` number, required
          - `symbol` string, required — SuperToken's symbol
        - `isEIP5827Supported` boolean, required — Is EIP5827 supported
      - `type` 'superfluid' | 'wallet' | 'allowance_based_recurring' | 'stripe' | 'binance_pay', required
      - `accountAddress` string
      - `billingDetails` FullAddressDetailDto
        - `name` string — The name
        - `email` string — The email
        - `phone` string — The phone
        - `organizationName` string — The organization name
        - `address` AddressDetailDto
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string
      - `customerId` string, uuid
      - `options` object
    - `paymentMethodTypes` PaymentMethodType[]
    - `transferAccountAddress` string
    - `transactions` TransactionDto[], required
      - `type` 'incoming' | 'outgoing' | 'event' | 'transfer', required
      - `transactionRelayId` string — Transaction relay id
      - `transactionHash` string — Transaction hash
      - `nonce` number — Transaction nonce
      - `gasLimit` number — Transaction gas limit used in payment
      - `validUntil` string — Transaction valid until
      - `fromAddress` string, required — Transaction from address
      - `toAddress` string, required — Transaction to address
      - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
      - `createdAt` string, date-time — Transaction created at
      - `amount` integer — Transaction amount in 8 decimals
      - `amountRaw` string, required — Transaction amount raw received from alchemy
      - `assetId` string, required — Transaction asset id
      - `asset` CheckoutSessionAssetDto, required
        - `id` string, required
        - `name` string, required
        - `address` string, required
        - `chainId` number, required
        - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
        - `symbol` string, required
        - `decimals` number, required
        - `coingeckoId` string
        - `isPublic` boolean, required
        - `superToken` SuperTokenDto
          - `address` string, required — SuperToken's address
          - `decimals` number, required
          - `symbol` string, required — SuperToken's symbol
        - `chain` ChainSlimDto, required
          - `id` number, required — Chain id
          - `name` string, required — Chain name
          - `icon` string, required — Chain icon
          - `currency` 'usdc' | 'usdt' | 'pyusd' | 'eurc' | 'brett' | 'dai' | 'btc' | 'eth' | 'matic' | 'bnb' | 'sol' | 'busd' | 'trx' | 'food' | 'bonk' | 'wif' | 'goat' | 'spx' | 'truf' | 'pengu' | 'usd' | 'inr', required
          - `blockExplorerTransactionUrl` string, required — Chain block explorer transaction url
          - `blockExplorerName` string, required — Chain block explorer name
          - `type` 'evm' | 'solana' | 'tron' | 'stripe' | 'binance_pay', required
          - `isBeta` boolean, required — Is beta asset
      - `transactionUrl` string — Transaction url
    - `paymentReceipt` PaymentReceiptDto
      - `id` string, required
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `organizationId` string, uuid, required
      - `paymentIntentId` string, uuid, required
      - `name` string
      - `receiptNumber` string, required
      - `uri` string
    - `canceledAt` string, date-time
    - `cancellationReason` string
    - `stripe` StripeDataDto
      - `paymentIntentId` string
      - `receiptUrl` string
      - `cardLast4` string
      - `displayName` string
    - `isMarkRefunded` boolean, nullable
    - `markRefundedAt` string, date-time, nullable
    - `markRefundedComment` string, nullable
  - `isMarkRefunded` boolean — Whether to mark the payment as refunded
  - `allowPromotionCodes` boolean — Enables user redeemable promotion codes.
  - `discounts` CheckoutSessionDiscountDto[], required — The list of discounts applied to the session
    - `amount` integer, required — The amount of the discount
    - `couponId` string, required — The coupon id of the discount
    - `coupon` CheckoutSessionCouponDto, required
      - `name` string, required — Name of the coupon displayed to customers on for instance invoices or receipts.
      - `percentOff` number — Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon.
      - `amountOff` integer — Fixed amount that will be taken off the subtotal of any invoices for this customer for the duration of the coupon.
      - `currency` string — Name of the currency displayed to customers on for instance invoices or receipts.
      - `code` string, required — The coupon code
  - `defaultPromotionCode` string — The default promotion code to apply to the session
  - `isManualPayment` boolean, required

## Other responses

- `401`
- `500`

---

[API](https://skmtc.net/copperx/apis/copperx-api-2.md) · [All operations](https://skmtc.net/copperx/apis/copperx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/copperx/copperx-api-2/versions/c0bfbc37fb98/schema)
