Skip to main content
Creates a checkout session and returns the session object, including the hosted url you redirect the customer to.

Authentication

Authorize the request with your Checkout API secret key as a Bearer token.
Your sk_live_ key is server-side only. Never expose it in client-side code. This endpoint must be called from your backend.
The Checkout API key is separate from the main Meru api-key. See Overview.

Headers

string
Safely retry a creation request. Sending the same key again returns the original checkout session instead of creating a new one.

Body

All fields are optional unless noted.
number
Amount in fiat. Required for crypto-exchanges; optional for qr-bolivia (the QR form can capture it from the customer).
string
default:"USD"
ISO currency code for amountFiat.
string
Force a payment method: crypto-exchanges or qr-bolivia. Omit to let the customer choose among the methods your account has enabled.
string
default:"USDC"
Stablecoin to receive for crypto payments: USDC or USDT.
string
Description shown to the customer on the checkout page.
string
Your order identifier. Echoed back on the session object.
string
URL to redirect the customer to after a confirmed payment.
string
URL to redirect/return the customer to on cancel.
object
Arbitrary key/value pairs. Echoed back when you read the session.

Response

Returns 201 Created with the session object.
string
The session identifier. Store it with your order.
string
The hosted checkout URL. Redirect the customer here.
string
Your order identifier, echoed back.
string
The description shown on the checkout.
string
The fiat amount as a string, or null if not set.
string
ISO currency code for amountFiat.
string
The selected method (mesh for crypto exchanges, qr_bolivia), or null when the customer still has to choose.
string[]
Methods offered for this session, for example ["mesh", "qr_bolivia"].
string
The session status. Starts at created. See Payment status for the full lifecycle.
string
Settlement chain for crypto payments. null until known.
string
Stablecoin received (USDC/USDT). null until known.
string
On-chain transaction hash for crypto payments. null until settled.
string
The redirect URL on success, or null.
string
The redirect URL on cancel, or null.
object
The metadata you sent, or null.
object
QR payment details. null until a QR is generated (QR Bolivia). See the qr object.
object
Customer details captured on the checkout page.
string
ISO-8601 timestamp when the session was created.
string
ISO-8601 timestamp when the session expires.
string
ISO-8601 timestamp when payment succeeded, or null.

Examples

Idempotency

Idempotency lets you retry POST /v1/checkouts safely after network errors or timeouts without creating duplicate checkouts. Send a unique Idempotency-Key header per logical request. A stable value works best — for example, your order id, or a UUID you generate once and persist with the request. If a request repeats the same key, the API returns the original checkout session (same id, same url) and does not create another. Concurrent retries are safe. Keys are scoped to your account (your secret key), so different accounts can reuse the same key value without colliding. Idempotency applies to POST /v1/checkouts only — the authenticated, key-based create. It is not used on the public/keyless checkout endpoints.
Reusing a key with a different request body still returns the original session — the key identifies the request, not its contents. Use a fresh key for a genuinely new checkout.