Skip to main content
POST
Start a payment attempt

Path Parameters

id
string
required

The checkout to read — an order id or an invoice id. Base58 short id, 21–22 characters (never 0, O, I or l), e.g. 7Kq2mVn8pRt3XwYz5Bd4L — the value that appears in checkout and invoice links, and the one this API takes as a path id.

Pattern: ^[1-9A-HJ-NP-Za-km-z]{21,22}$
Example:

"7Kq2mVn8pRt3XwYz5Bd4L"

Body

application/json
paymentMethod
enum<string>
required

The token the buyer wants to pay with. Must be one of the store's enabledPaymentMethods. The token and chain the buyer pays with, named <asset>_<chain>; a bare sol, eth, matic or bnb is that chain's native coin. So usdc_base is USDC on Base and eth is ether on Ethereum mainnet. The matic key is Polygon's native coin, now called POL — the key keeps its original name and does not change.

Available options:
sol,
usdc_solana,
eth_base,
usdc_base,
usdt_base,
eth,
usdc_ethereum,
usdt_ethereum,
matic,
usdc_polygon,
usdt_polygon,
bnb,
usdt_bnb
Example:

"usdc_base"

Response

The checkout, with the new activeAttempt.

The hosted checkout payload for an order.

type
string
required

Marks this payload as an order checkout.

Allowed value: "order"
id
string
required

The order's id. Base58 short id, 21–22 characters (never 0, O, I or l), e.g. 7Kq2mVn8pRt3XwYz5Bd4L — the value that appears in checkout and invoice links, and the one this API takes as a path id.

Example:

"7Kq2mVn8pRt3XwYz5Bd4L"

storeId
string<uuid>
required

The selling store's id. Formatted as a UUID, e.g. 3f1a9c2e-7b04-4d8e-9a6f-2c5b1e0d7a83.

Example:

"3f1a9c2e-7b04-4d8e-9a6f-2c5b1e0d7a83"

status
enum<string>
required

Where the order is in its lifecycle. pending — created, waiting for the buyer to pay. completed — paid in full; any digital delivery has been released. partial — funds arrived but fell short of the locked quote. expired — the payment window closed without full payment, and any reserved stock went back to the pool.

Available options:
pending,
completed,
partial,
expired
Example:

"pending"

priceAmount
string
required

Total the buyer owes. Decimal string in the resource's fiat currency, e.g. "49.99" — a string, never a JSON number, so no precision is lost in transit.

Example:

"49.99"

priceCurrency
enum<string>
required

The fiat currency every amount on this resource is priced in. Crypto is quoted against it at payment time.

Available options:
usd,
eur
Example:

"usd"

successUrl
string | null
required

Where to send the buyer once the order is paid. Null when the merchant set none.

Example:

"https://example.com/thanks"

cancelUrl
string | null
required

Where to send the buyer if they back out. Null when the merchant set none.

Example:

"https://example.com/cart"

expiresAt
string<date-time>
required

When the order stops accepting payment. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.

Example:

"2026-07-29T14:30:00.000Z"

completedAt
string<date-time> | null
required

When the order was paid in full. Null until it is. UTC timestamp in ISO 8601, e.g. 2026-07-29T14:30:00.000Z.

Example:

"2026-07-29T14:30:00.000Z"

items
object[]
required

The products being bought.

hasCustomerEmail
boolean
required

Whether a receipt email is on file. The address itself is never returned to the page.

Example:

false

store
object
required

The store the buyer is paying.

activeAttempt
object | null
required

The live payment attempt — the locked quote, the deposit address and the confirmation progress. Null before the buyer picks a token and once the quote lapses.