post
https://pay.rezolve.com/api/v1/checkout
Creates a new checkout payment. Returns a provider-rendered payment UI and a payment_id to track the payment's lifecycle.
Supports two request modes:
- Mode A: Standard checkout using merchant credentials (X-Merchant-Id, X-Merchant-Api-Key headers required)
- Mode B: Widget-token checkout where amount/currency/order_id/merchant are resolved from the token record (merchant headers optional)
Mode A fields:
| Field | Type | Required | Description |
|---|---|---|---|
| currency | string | Yes | 3-letter ISO currency code (e.g., gbp) |
| amount | number | Yes | Amount in minor units (e.g., 4999 for £49.99) |
| customer_email | string | Yes | Forwarded to the payment provider |
Mode B fields:
| Field | Type | Required | Description |
|---|---|---|---|
| widget_token | string | Yes | Single-use token from POST /api/v1/checkout/init. Used for checkout authentication. |
| customer_email | string | No | The shopper, forwarded to the provider. Omit for guest checkout with a new card. Required when saved_payment_method_id is sent. |
| amount | number | No | Optional, but if sent it must match the token amount exactly |
| currency | string | No | Optional, but if sent it must match the token currency exactly |
| save_card | boolean | No | Default false. Stores the new card against customer_email for future use. Has no effect for a guest, and is ignored on the saved-card and pay-by-bank rails. |
| saved_payment_method_id | string | No | Charges a stored card directly. The method must belong to the customer_email + merchant + provider combination. |
| payment_method_type | string | No | "card" (default) or "pay_by_bank". Pay-by-bank is accepted only for an eligible merchant. Ineligible requests return 400. |
| return_url | string | Conditional | Required when payment_method_type is "pay_by_bank". The merchant-owned URL the shopper returns to after approving; the provider appends its own query parameters. Absolute http/https, and outside local development https only. |
Note: saved_payment_method_id, payment_method_type: "pay_by_bank", alternative_payment_method_id and the advanced-flow payment_method are mutually exclusive; combining them returns 400. Rail validation runs before the widget token is consumed, so a rejected request leaves the token usable.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…

