Create a Mandate
Last updated Novemeber 28th, 2025
post api.withmono.com/v3/payments/mandatesThis resource allows you to create your own mandate authorisation experience. When you use this resource to setup a mandate, you have no need for the initiate a mandate endpoint.

A more detailed guide on using this resource can be found here.
Regarding the readiness for debiting the account:
Signed Mandate: Upon bank approval, signed mandate accounts are immediately available for debiting and balance inquiries.
E-mandate: With an e-mandate setup, a waiting period of 1 hour max should be observed following approval before debiting and balance inquiries can be conducted.

Debit Types & Amount
Variable: The amount represents the total funds a business plans to collect from a customer over the mandate period. Individual debit amounts can vary within this total limit.
Fixed: The amount specifies the exact amount to be debited per transaction. The total debit is automatically calculated based on this fixed amount. Once set during mandate authorization, this amount cannot be modified.

Fee Bearer
The fee bearer is the entity that will be charged for the transaction. This feature is only available for e-mandates (fixed and variable).
business: The fee will be charged to the business (default)customer: The fee will be charged to the customer

Mandate verification options
Mandates default to transfer_verification, which follows the ₦50 transfer flow when verification_method is omitted. Include the optional verification_method field and set it to selfie_verification to trigger Biometric Verification. This runs BVN validation and a Face Match, returns a verification link (mono_url), and approves the mandate automatically when the customer completes the selfie + liveness checks.
Request
curl --request POST \
--url https://api.withmono.com/v3/payments/mandates \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'mono-sec-key: string' \
--data '
{
"debit_type": "variable",
"customer": "string",
"mandate_type": "string",
"amount": "integer",
"reference": "string",
"account_number": "string",
"bank_code": "string",
"fee_bearer": "string",
"description": "string",
"start_date": "string",
"end_date": "string",
"verification_method": "string",
"meta": {}
}
'
Response
Choose an option from the drop down or click one of these buttons to see an example:
