Create Checkout Session

Creates a checkout session. For hosted integrations this may generate a hosted checkout payment link. For direct integrations, the payment link may be omitted.

Request

This endpoint expects an object.
merchantIdstringRequiredformat: "uuid"
The merchant identifier.
merchantReferencestringRequired
Your reference for the checkout session.
amountintegerRequired1-1000000000000

Amount in minor units, denominated in currency (the initiation currency).

currencyenumRequired

Currency of the session (ISO 4217). Without a rateLockId this is the collection currency the payer pays in. With a rateLockId it must equal the lock’s base currency (the currency you price in, e.g. USD); the payer is then charged the equivalent in the lock’s quote currency at the lock’s all-in rate.

integrationTypeenumRequired
Type of integration.
payerDetailsobjectRequired
collectionCurrencyenumOptional

Optional. The collection currency — the currency the payer is actually charged in. Defaults to the primary currency for payerDetails.location when omitted. When collectionCurrency differs from currency, Adaptive Currency Conversion applies: priced by the supplied rateLockId, or by its default per-session quote minted at session creation.

redirectUrlstringOptional
Optional URL to redirect after payment.
rateLockIdstringOptional

Optional rate lock to apply to this session. When set, the session currency must equal the lock’s base currency, the session’s collection currency must equal the lock’s quote currency, and the payer is charged the equivalent in the lock’s quote currency at the lock’s all-in rate. The lock is verified at session creation and again when a payment is initiated; a lock that is unknown, expired, or cancelled is rejected with 422. If omitted and collectionCurrency differs from currency, the conversion falls back to Adaptive Currency Conversion’s default per-session rate.

paymentAttributesmap from strings to stringsOptional
Optional session attributes to pass through the payment lifecycle.
expiresInSecondsintegerOptional30-604800

Optional session lifetime in seconds (30 seconds to 7 days). The payment confirmation window expires this long after creation; defaults to the standard session lifetime when omitted.

Response

Session created successfully.
sessionIdstring
Unique identifier for the session.
payerIdstringOptionalformat: "uuid"

Persistent identifier for the payer (customer). CrissCross assigns one when the session is created, or returns the existing payerId if you supplied one in payerDetails.payerId. Store it against your customer record to recognise this customer on future sessions. See the Payer ID guide.

signaturestringOptional
Signature used for hosted checkout verification.

Errors

400
Bad Request Error
401
Unauthorized Error
422
Unprocessable Entity Error