1
Create the mandate
POST /mandates with the settlement account and the maximum amount per debit. The response is pending and tells the signatory exactly what to do:Request
Response
2
The signatory activates it
The signatory makes the token payment named in
activation from the mandated account. The bank confirms, the mandate becomes active, activation becomes null, and you receive mandate.activated.activated_at is the moment the bank token becomes usable, typically about a minute after approval. A debit requested before it returns 409 mandate_not_yet_active with activated_at in details; retry then.3
Fund by direct debit
POST /wallets/NGN/fund with "method": "flutterwave_direct_debit". Amounts above limit_amount are refused (400 mandate_limit_exceeded). The request settles from the bank’s confirmation like any other funding request and fires wallet.funded; the wallet is credited with the requested amount, never with any fee the bank adds on top.4
Revoke when done
POST /mandates/{id}/revoke ends it; the token is deleted at the bank partner and no further debit is possible (409 mandate_required). A revoked mandate stays revoked even if a late approval arrives from the bank.Rules
- One pending or active mandate per settlement account (
409 mandate_exists). - A
failedmandate carries the bank partner’s reason infailure_reasonand does not block a new attempt. - The settlement account needs a
bank_code; add it when you register the account. - Sandbox mandates are active immediately and debits settle through the sandbox endpoint.