Mandate status change notification
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 |
Content-Type*stringContent type.
"application/json"User-Agent*stringUser agent.
"Volt/2.0"X-Volt-Timed*integerTimestamp of notification generation.
X-Volt-Signed*stringNotification signature.
X-Volt-Type*stringType of mandate notification.
"mandate_requested""mandate_authorised""mandate_declined""mandate_authorisation_abandoned""mandate_suspended""mandate_released""mandate_cancelled""mandate_expired""mandate_consumed""mandate_failed"application/json- body
PayTo mandate details.
id*stringMandate identifier.
uuidcurrency*"AUD"Payment currency. ISO 4217 format (3 uppercase letters).
"AUD"system*"PAY_TO""PAY_TO"mode*ModeEnumMandate usage mode.
"ONE_OFF""RECURRING"purpose*"OTHER"Purpose of the mandate.
"OTHER"mandateReference*stringMandate reference provided by the partner (or generated by Volt).
internalReference*string|nullpayer*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.
OK
application/json- 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" }}{ "Content-Type": "application/json", "User-Agent": "Volt/2.0", "X-Volt-Timed": 0, "X-Volt-Signed": "string", "X-Volt-Type": "mandate_requested"}Create recurring payment POST
Initiate payment based on an existing `ACTIVE` mandate.
Amendment status change notification Webhook
Sent to the notification URL provided during mandate creation. | Type | Description | |-------|-------------| | `mandate_amendment_requested` | Amendment request submitted to the provider | | `mandate_amended` | Amendment approved and applied. `BILATERAL`: payer approved. `UNILATERAL`: auto-approved | | `mandate_amendment_declined` | Payer declined the amendment | | `mandate_amendment_request_abandoned` | Amendment request timed out | | `mandate_amendment_failed` | Amendment processing failed |