Mandates APIbetaRecurring payments

Create recurring payment

POST
/mandates/{id}/payments

Initiate payment based on an existing ACTIVE mandate.

Authorization

Bearer
headerAuthorizationBearer <JWT>

Bearer token using a JWT.

Path Parameters

id*string

Identifier of the mandate.

Formatuuid

Header Parameters

Idempotency-Key*string

It helps preventing duplicates in your POST requests. It is recommend using a UUID for the key, however you may use any other unique identifier you choose.

Lengthlength <= 64
X-JWS-Signature*string

A detached-payload JWS (RFC 7515 compact serialization, RS256 only) computed over the raw request body, proving the request was authorised by the customer. See Signing requests for the signing procedure.

X-Volt-Api-Version*1

Version of the API used. Currently, version 1 is the only version.

Value in1

Request Body

application/json
  1. body
currency*string

Payment currency. ISO 4217 format (3 uppercase letters).

Value in"AUD""GBP"
amount*integer

Payment amount in minor units (e.g. cents).

Range0 < value
paymentReference?string

Unique payment reference provided by the partner. Used for reconciliation.

Reference must contain only alphanumeric characters.

If value is not provided, it will be generated by Volt.

Lengthlength <= 18
internalReference?string

Your internal identifier for this transaction.

Lengthlength <= 100
communication?

Partner communication settings.

Response Body

Created - Payment request created.

application/json
  1. response

PayTo recurring payment details.

id?string

Payment identifier.

Formatuuid
currency?string

Payment currency. ISO 4217 format (3 uppercase letters).

amount?integer

Payment amount in minor units (e.g. cents).

paymentReference?string

Payment reference provided by the partner (or generated by Volt). Used for reconciliation, visible on the bank statement.

Lengthlength <= 18
internalReference?string

Your internal identifier for this transaction.

paymentSystem?"NPP_PAY_TO_AU"

Payment system used for the transfer.

Value in"NPP_PAY_TO_AU"
nppPayToAU?

NPP (New Payments Platform) transfer details. Present when paymentSystem is NPP_PAY_TO_AU.

payer?

Payer details.

sender?|

Source account (sender) details.

beneficiary?

Target account (beneficiary) details.

device?

Device used for payment creation.

status?string

Payment status.

Value in"NEW_PAYMENT""APPROVED_BY_RISK""REFUSED_BY_RISK""BANK_REDIRECT""ADDITIONAL_AUTHORIZATION_REQUIRED""AUTHORISED_BY_USER""ERROR_AT_BANK""REFUSED_BY_BANK""DELAYED_AT_BANK""COMPLETED""NOT_RECEIVED""RECEIVED""FAILED""CANCELLED_BY_USER""ABANDONED_BY_USER""AWAITING_CHECKOUT_AUTHORISATION""ACCOUNT_SELECTION""REQUIRED_REDEEM""PAYOUT_INITIATED""SETTLED""UNKNOWN""PROVIDER_COMMUNICATION_ERROR"
transferType?|

Payment rail used for the transfer.

displayInfo?array<>

Key-value pairs for display on checkout.

createdAt?string

Payment creation timestamp.

Formatdate-time
updatedAt?|

Last update timestamp.

Formatdate-time
mandateId?|

Identifier of the mandate used to initiate this payment. Present only for mandate-based (recurring) payments, null otherwise.

Formatuuid
paymentInitiationFlow?

Payment initiation flow. Drives the authorisation process.

Example Request
curl -X POST 'https://gateway.sandbox.volt.io/mandates/497f6eca-6276-4993-bfeb-53cbbbba6f08/payments' \  -H 'Idempotency-Key: string' \  -H 'X-JWS-Signature: string' \  -H 'X-Volt-Api-Version: 1' \  -H 'Content-Type: application/json' \  -d '{  "currency": "AUD",  "amount": 1}'
Example Response
{  "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"  }}