Create recurring payment
Initiate payment based on an existing ACTIVE mandate.
Authorization
Bearer Bearer token using a JWT.
In: header
Path Parameters
Identifier of the mandate.
uuidHeader Parameters
Version of the API used. Currently, version 1 is the only version.
Value in
- 1
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
curl -X POST "https://example.com/mandates/497f6eca-6276-4993-bfeb-53cbbbba6f08/payments" \ -H "X-Volt-Api-Version: 1" \ -H "Content-Type: application/json" \ -d '{ "currency": "AUD", "amount": 1 }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "currency": "AUD", "amount": 10000, "paymentReference": "T1Qwerty", "internalReference": "H35X48Y4FWOD6G3S", "paymentSystem": "NPP_PAY_TO_AU", "nppPayToAU": { "type": "OTHER", "validityPeriod": 30, "additionalDescription": null, "accountIdentifiers": { "payId": "john@doe.com", "payIdType": "EMAIL" }, "ultimateBeneficiary": null }, "payer": { "reference": "JDOE-101", "firstName": null, "lastName": null, "organisationName": null, "email": null, "accountIdentifiers": { "payId": "john@doe.com", "payIdType": "EMAIL" } }, "sender": { "name": "John Doe", "accountIdentifiers": { "payId": "john@doe.com", "payIdType": "EMAIL" } }, "beneficiary": { "name": "Jane Doe", "accountIdentifiers": { "payId": "jane@doe.com", "payIdType": "EMAIL" } }, "device": { "ip": "192.168.0.1", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0", "fingerprint": "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" }, "status": "AUTHORISED_BY_USER", "transferType": null, "displayInfo": null, "mandateId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "createdAt": "2026-03-15T15:52:01+00:00", "updatedAt": "2026-03-15T15:52:01+00:00", "paymentInitiationFlow": { "status": "PROCESSING" }}{ "code": "BAD_REQUEST", "message": "string"}{ "code": "UNAUTHORISED", "message": "string"}{ "code": "ACCESS_DENIED", "message": "string"}{ "code": "RESOURCE_NOT_FOUND", "message": "string"}{ "code": "CONFLICT", "message": "string"}{ "code": "INTERNAL_SERVER_ERROR", "message": "string"}Recall amendment request DELETE
Recall pending (`NEW` or `AWAITING_APPROVAL`) amendment.
Mandate status change notification Webhook
Sent to the notification URL provided during mandate creation. | Type | Description | |-------|-------------| | `mandate_requested` | Mandate has been proposed to the payer | | `mandate_authorised` | Payer authorised the mandate | | `mandate_declined` | Payer declined the mandate | | `mandate_authorisation_abandoned` | Mandate authorisation timed out | | `mandate_suspended` | Mandate was suspended | | `mandate_released` | Suspended mandate released back to `ACTIVE` | | `mandate_cancelled` | `ACTIVE` or `SUSPENDED` mandate was cancelled | | `mandate_expired` | Mandate reached end of validity | | `mandate_consumed` | `ONE_OFF` mandate was consumed | | `mandate_failed` | Mandate processing failed |