Key Processes
Monnify Direct Debit comprises three main processes:
Mandate Management Workflow
To create and manage a mandate, here is the workflow of every possible status a Monnify Mandate can be through its life cycle.
Mandate Status | Description |
---|
PENDING | Mandate creation is in progress. |
PENDING AUTHORIZATION | Mandate is awaiting customer authorization |
PENDING ACTIVATION | Mandate has been authorized by the customer and awaiting activation by the customers financial intuition. |
ACTIVATED | Mandate has been activated and can now be debited. |
AUTHORIZATION EXPIRED | Mandate authorization expired because the customer didn’t authorize it within the available timeframe. |
EXPIRED | Mandate has reached its expiration time. |
CANCELLED | Mandate was canceled by the merchant. |
SUSPENDED | Mandate was suspended by the customer’s financial intuition. |
Ways To Use
One of these four ways to use will be suitable for your business depending on your requirement.
- Open Flexible:Enable merchants to debit varying amounts from a customer's account based on the actual consumption of services or products without a predetermined end date.
A utility company provides electricity vending. The bill varies depending on the amount of electricity to be consumed. The company can set up an open flexible mandate to debit varying amounts from the customer’s account each time based on their demand, with no predetermined end date. - Open Fixed: Enable merchants to debit fixed amounts from a customer's account based on the actual consumption of services or products without a predetermined end date.
A streaming platform offers a monthly subscription fee to their customers. The platform can use an open fixed mandate to debit fee from the customer's account every month, continuing indefinitely until the customer cancels the subscription. - Closed Flexible: Enable merchants to debit varying amounts from a customer's account based on the actual consumption of services or products with a predetermined end date.
A car dealer offers an instalment payment plan for purchasing a car. Customers can choose to pay off the total amount at their own pace, but all payments must be completed within 12 months. The store can use a closed flexible mandate to debit varying amounts from the customer’s account based on the payments they make, ensuring the total amount is paid before the end date. - Closed Fixed: Enable merchants to debit fixed amounts from a customer's account based on the actual consumption of services or products with a predetermined end date.
An insurance company offers a one-year health insurance plan with monthly premiums of N10000. The company can use a closed fixed mandate to debit N10000 from the customer’s account each month for 12 months. After 12 months, the mandate expires.
API Integration Workflow
The process of setting up a direct debit involves three key steps: the creation of a mandate by the merchant, its authorization by the customer, and the actual debiting of funds as per the mandate's terms.
1. Creating a Mandate:- The merchant requests to set up a direct debit using the customer's account details.
- The Mandate Creation request is successful, and the mandate status will be "Pending"
- Once Monnify creates mandate, the status will be changed to “Pending Authorization”
2. Authorizing a Mandate:- The customer authorizes the mandate. Authorization instructions can be received through:
- An authorization email sent directly by Monnify to the customer's email address.
- An authorization link returned from the status API response, which the merchant can present to their customer this link lasts for 30 days.
3. Debiting a Mandate:- Once authorized successfully, the mandate status will be ‘Activated’ and merchants can use the Debit APIs to debit the account linked to the mandate as per the agreed terms.
- The APIs accommodate different use cases, whether fixed or flexible debits, open or closed mandates based on set up.
Mandate APIs
- Create Mandate: This endpoint helps to create mandate on the customer's bank account, see Create Mandate API for more information.
- Get Mandate Status: This endpoint helps to check the status of on an existing andate, check Get Mandate Status API for more information.
- Debit Mandate: This endpoint is called to debit desired amount on the customer's bank account after a mandate has been created on his account.
- Get Debit Status: This endpoint helps to check the debit status on a mandate
- Update Mandate: This endpoint helps cancel/invalidate a mandate initiated on a customer's account
Sample Error Messages
Error Message | Meaning | Action |
---|
Mandate start date cannot be in the past | This means that the mandate start date was set to a time earlier than the current time | Adjust the date to a time that is not in the past |
Unable to validate account information | This usually means that account name validation of the supplied account number and bank code wasn't successful | Confirm that account number and the bank code are correct |
Unable to find bank against customerAccountBankCode | This means that the bank code supplied does not exist on Monnify | Reconfirm that the bankCode is for a CBN approved bank |
Mandate with provided mandate reference already exist. | This implies that the mandateReference has been previously used by you | Retry with a unique mandateReference |