API Docs
API referencePayment requests

Create a payment request

POST/api/v2/payment-requests

Creates a payment request in status draft. Nothing reaches the payer, and no invoice is issued, before finalize. andThen runs finalize, and then send, in the same request and fails with their codes. A currency your team cannot receive bank transfers in fails with CURRENCY_NOT_RECEIVABLE. Needs payment-requests:write.

Header Parameters

idempotency-key?maxLength(255)

Client-chosen key, 1 to 255 characters (a UUID is recommended). The same key on the same endpoint within 24 hours replays the stored response with Idempotent-Replayed: true.

Length1 <= length <= 255

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

application/json

application/json

application/json

curl -X POST "https://example.com/api/v2/payment-requests" \  -H "Content-Type: application/json" \  -d '{    "description": "string",    "amount": "100.00",    "currency": "USD",    "payer": {      "type": "counterparty",      "counterpartyId": "counterparty_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e"    }  }'
{  "object": "payment_request",  "id": "payment_request_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e",  "customId": "campaign-42",  "description": "string",  "amount": "100.00",  "currency": "USD",  "amountDue": "100.00",  "amountRemaining": "100.00",  "payer": {    "type": "email",    "email": "jane@example.com"  },  "status": "draft",  "tags": [    "string"  ],  "paymentUrl": "string",  "invoice": {    "number": "string",    "url": "string",    "issuedAt": "string",    "vatRate": "19.00",    "vatAmount": "100.00",    "creditNote": {      "number": "string",      "url": "string",      "issuedAt": "string"    }  },  "settlements": [    {      "type": "bank_transfer",      "transactionId": "transaction_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e_out",      "status": "pending",      "amount": "100.00",      "createdAt": "2026-09-24T10:00:00.000Z"    }  ],  "sentAt": "2026-09-24T10:00:00.000Z",  "firstViewedAt": "2026-09-24T10:00:00.000Z",  "transferAnnouncedAt": "2026-09-24T10:00:00.000Z",  "paidAt": "2026-09-24T10:00:00.000Z",  "cancelledAt": "2026-09-24T10:00:00.000Z",  "createdAt": "2026-09-24T10:00:00.000Z",  "updatedAt": "2026-09-24T10:00:00.000Z"}