Update a payment request
/api/v2/payment-requests/{id}Allowed while status is draft. A body with only tags is allowed in every status. An omitted field is unchanged; payer is replaced as a whole. Needs payment-requests:write.
Path Parameters
The payment request id (payment_request_…) or your customId.
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 PATCH "https://example.com/api/v2/payment-requests/payment_request_0e4ba886-0bfe-4b6a-ae2e-d6d9d135dd1e" \ -H "Content-Type: application/json" \ -d '{}'{ "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"}Get a payment request GET
`{id}` is the payment request id or your `customId`. Needs `payment-requests:read`.
Delete a payment request DELETE
Allowed while `status` is `draft`. A finalized request is cancelled instead. A deleted request is gone from the API: every endpoint answers 404 `PAYMENT_REQUEST_NOT_FOUND` for it, and lists do not include it. Its `customId` is free again. Needs `payment-requests:write`.