Mandates APIbetaMandate management

Create mandate

POST
/mandates

Authorization

Bearer
headerAuthorizationBearer <JWT>

Bearer token using a JWT.

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-Volt-Initiation-Channel*"hosted"

Channel used for setup/processing flow.

Value in"hosted"
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

PayTo mandate creation request body.

currency*"AUD"

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

Value in"AUD"
system*"PAY_TO"

Mandate system.

Value in"PAY_TO"
mode*ModeEnum

Mandate usage mode.

Value in"ONE_OFF""RECURRING"
purpose*"OTHER"

Purpose of the mandate.

Value in"OTHER"
internalReference?string

Your internal identifier for this mandate.

Match^[a-zA-Z0-9!@#$%^&*()_+=\[\]{};:?|\-]*$
Lengthlength <= 100
mandateReference?string

Unique reference for the mandate from the partner's system. Reference must contain only alphanumeric characters.

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

Match^[a-zA-Z0-9]{1,18}$
Lengthlength <= 18
payer*

Payer (debtor) details.

validity?

Mandate validity period.

payTo*

PayTo-specific configuration.

device?

Payer"s device information.

communication*

Partner communication settings.

Response Body

Created - Mandate request created.

application/json
  1. response

PayTo mandate details.

id*string

Mandate identifier.

Formatuuid
currency*"AUD"

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

Value in"AUD"
system*"PAY_TO"
Value in"PAY_TO"
mode*ModeEnum

Mandate usage mode.

Value in"ONE_OFF""RECURRING"
purpose*"OTHER"

Purpose of the mandate.

Value in"OTHER"
mandateReference*string

Mandate reference provided by the partner (or generated by Volt).

internalReference*string|null
payer*

Payer (debtor) details.

beneficiary?

Beneficiary (creditor) details.

validity?

Mandate validity period. Dates are always returned in RFC3339 format (YYYY-MM-DDThh:mm:ss±hh:mm).

payTo?

PayTo-specific configuration.

status?

Mandate status.

mandateSetupFlow?

Mandate setup flow. Drives the authorisation process.

curl -X POST 'https://gateway.sandbox.volt.io/mandates' \  -H 'Idempotency-Key: string' \  -H 'X-Volt-Initiation-Channel: hosted' \  -H 'X-Volt-Api-Version: 1' \  -H 'Content-Type: application/json' \  -d '{  "currency": "AUD",  "system": "PAY_TO",  "mode": "RECURRING",  "purpose": "OTHER",  "internalReference": "H35X48Y4FWOD6G3S",  "mandateReference": "T1Qwerty",  "payer": {    "reference": "JDOE-101"  },  "validity": {    "from": "2026-03-01 00:00:00"  },  "payTo": {    "accountIdentifiers": {      "accountName": "John Doe",      "payId": "john@doe.com",      "payIdType": "EMAIL"    },    "limits": {      "periodic": {        "period": "MONTH",        "maxPaymentsCount": 3      },      "payment": {        "maxAmount": 70000      }    },    "description": "Coffee subscription #123123"  },  "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"  },  "communication": {    "notifications": {      "url": "https://example.com/notifications"    },    "return": {      "urls": {        "unified": {          "url": "https://example.com/process"        }      }    }  }}'
Example Response
{  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",  "currency": "AUD",  "system": "PAY_TO",  "mode": "RECURRING",  "purpose": "OTHER",  "mandateReference": "T1Qwerty",  "internalReference": "H35X48Y4FWOD6G3S",  "payer": {    "reference": "JDOE-101",    "firstName": null,    "lastName": null,    "email": null,    "accountIdentifiers": {      "accountName": "John Doe",      "payId": "john@doe.com",      "payIdType": "EMAIL"    }  },  "beneficiary": {    "name": "Jane Doe"  },  "validity": {    "from": "2026-03-01 00:00:00",    "to": null  },  "payTo": {    "accountIdentifiers": {      "accountName": "John Doe",      "payId": "john@doe.com",      "payIdType": "EMAIL"    },    "limits": {      "periodic": {        "period": "MONTH",        "maxPaymentsCount": 3      },      "payment": {        "maxAmount": 70000      }    },    "description": "Coffee subscription #123123"  },  "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": {    "status": "AWAITING_AUTHORISATION",    "details": null  },  "mandateSetupFlow": {    "status": "PROCESSING"  }}