Mandate Webhook

For general webhook mechanics (response requirements, security, IP whitelisting, troubleshooting), see Webhooks - Async Updates. This page covers the webhook events fired for Mandate (direct debit ).

For general webhook mechanics (response requirements, security, IP whitelisting, troubleshooting),

see Webhooks - Async Updates or Webhook Security

Event: MandateStatusChanged

Fired on any status transition of a mandate.

Payload fields

user, mandateId, flow, context, psuId, psuCorporateId, accountNumber (BBAN), previousStatus, currentStatus, validUntil, lastActionDate.

{
  "timestamp": "2021-03-04T12:26:32.212913+00:00",
  "event": "MandateStatusChanged",
  "payload": {
    "user": "user-00112233",
    "mandateId": "7fh64-fjue749-fn378hr004",
    "psuId": "222222222",
    "psuCorporateId": "519999999",
    "accountNumber": "10-123-1234567",
    "context": "tx-20250113001",
    "previousStatus": "received",
    "currentStatus": "valid",
    "validUntil": "null",
    "lastActionDate": "2025-03-04T12:26:32.212913+00:00"
  }
}

Event: MandateDataChanged

Same payload as MandateStatusChanged, plus data and updatedData. Fired when the mandate's underlying data (amount, frequency, etc.) changes.


Event: MandateAboutToExpire

Fired up to 30 days before a mandate's validUntil.

Payload: user, mandateId, flow, context, currentStatus, validUntil, lastActionDate, data.


Mandate statuses

StatusMeaning
receivedRequest received by the bank
validActive — can be charged
rejectedRejected
partiallyAuthorizedPartially approved — needs further approval (joint account holders / bank)
expiredReached validUntil
suspendedSuspended (by bank or user)
terminatedByTppTerminated by you (the client)
revokedByPsuRevoked by the end user
revokedByAspspRevoked by the bank

Testing (Mock Bank)

  1. Create a Mandate link without a debtor account in the JWT.
  2. Choose MockBank on the Feezback screens.
  3. Enter a 5-digit account number: 12345.
  4. Use one of these test IDs (psuId) to trigger a specific outcome:
Test IDResult
200200202Mandate valid
669029530Valid with a 15-second delay
222822538Rejected
200200301partiallyAuthorized
200200707partiallyAuthorized → valid after 5 minutes

Did this page help you?