Skip to main content
POST
/
checkout-sessions
Create a checkout session
curl --request POST \
  --url https://mainnet.anyspend.com/checkout-sessions \
  --header 'Content-Type: application/json' \
  --data '
{
  "success_url": "https://merchant.com/success?session_id={SESSION_ID}",
  "cancel_url": "https://merchant.com/cancel",
  "metadata": {
    "sku": "widget-1",
    "customer_id": "cust-123"
  },
  "client_reference_id": "<string>",
  "expires_in": 1800
}
'
{
  "success": true,
  "message": "Checkout session created",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "open",
    "success_url": "<string>",
    "cancel_url": "<string>",
    "metadata": {},
    "expires_at": "2023-11-07T05:31:56Z",
    "created_at": "2023-11-07T05:31:56Z"
  },
  "statusCode": 200
}

Body

application/json

Request body for creating a checkout session

success_url
string<uri>

URL to redirect to on successful payment. Supports {SESSION_ID} and {ORDER_ID} template variables.

Example:

"https://merchant.com/success?session_id={SESSION_ID}"

cancel_url
string<uri>

URL to redirect to on cancellation. Supports {SESSION_ID} and {ORDER_ID} template variables.

Example:

"https://merchant.com/cancel"

metadata
object

Arbitrary key-value metadata returned unchanged on retrieval

Example:
{
"sku": "widget-1",
"customer_id": "cust-123"
}
client_reference_id
string

Optional merchant-side reference ID

Maximum string length: 255
expires_in
number
default:1800

Session TTL in seconds (min 300, max 86400, default 1800)

Required range: 300 <= x <= 86400
Example:

1800

Response

Checkout session created successfully

success
boolean
required
Example:

true

message
string
required
Example:

"Checkout session created"

data
object
required

Response from creating a checkout session. No order_id, checkout_url, or deposit_address — those come after order creation.

statusCode
number
required
Example:

200