POST /v1/payment/sale. Both start on your backend with your merchant API key.
Let the buyer choose
Send the create-sale request with bothpaymentMethod and paymentMethodInput omitted. Include any required buyer details under customer. With hosted checkout enabled, a successful response includes paymentPageUrl. Redirect the buyer to that URL unchanged. The buyer chooses from the eligible methods and provides any missing method fields.
Select the connection on your server
Use thecr_… credential configuration ID for the method, provider, merchant and mode you intend to use. Store it in server-side configuration. Values such as card, apple and revolut describe a type or provider and cannot identify your merchant’s connection.
For a Revolut hosted card sale, use the following JSON body with your sandbox merchant and connection IDs. The connector accepts an empty input object. Replace the example URLs with your own public HTTPS endpoints. Send a fresh Idempotency-Key for this sale and keep it when retrying the same request.
status and transaction.status. For an accepted sale needing buyer action, follow paymentPageUrl when present, or url for a provider redirect. If the sale is already pending with no redirect, retain the transaction ID and read its status. Only mark the order paid after your backend verifies the successful transaction. Transaction status · Webhooks
If the method is missing
Test one sale with a fixed connection and another with buyer selection. For each, verify the expected method opens, the return page displays the order’s current status, and a signed test webhook arrives at your test endpoint. Testing in sandbox