Create a Mandate

Last updated Novemeber 28th, 2025

post api.withmono.com/v3/payments/mandates
v1.0

This 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.

callout-icon

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

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

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

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.

Body- Variable Mandate
Body- Fixed Mandate
Headers

Request

12345678910111213141516171819202122
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:

Did this page help you?