Create a payment
Creates a payment. For a card without a PAN in the request, a one-time client_secret is returned; the hosted-fields SDK collects the card client-side and submits it against that secret (the card never touches the API, SAQ A-EP). Sending payment_method.card_data charges the card server-to-server (SAQ D) — device.ip is then required for risk scoring. wallet/APM payments return a redirect_url the client follows; pay_by_bank returns the hosted form url where the payer picks their bank. capture_mode automatic (default) authorizes and captures; manual authorizes only.
Authorization
ApiKey Merchant API key for authentication
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/payments" \ -H "Content-Type: application/json" \ -d '{ "amount": 1000, "currency": "EUR", "reference": "order_12345", "capture_mode": "automatic", "payment_method": { "type": "card" }, "customer": { "reference": "cus_9f8e7d", "email": "buyer@example.com", "billing_address": { "line1": "1 rue de Rivoli", "city": "Paris", "postal_code": "75001", "country": "FR" } }, "metadata": { "orderId": "12345" } }'{ "id": "pr_a1b2c3d4e5f6", "amount": 1000, "currency": "EUR", "status": "pending", "capture_mode": "automatic", "authorized_amount": 0, "captured_amount": 0, "refunded_amount": 0, "disputed_amount": 0, "used_method_family": null, "used_method_type": null, "reference": "order_12345", "customer": { "reference": "cus_9f8e7d", "email": "buyer@example.com" }, "metadata": { "orderId": "12345" }, "client_secret": "pr_a1b2c3d4e5f6_secret_9f8e7d6c5b4a3210", "redirect_url": null, "created_at": "2026-07-17T10:00:00.000Z", "updated_at": "2026-07-17T10:00:00.000Z"}