This feature allows you to generate a virtual account for your customers. The account number generated is dedicated to a customer and every payment to that virtual account is associated with the customer for which the account was reserved.
These accounts are very useful for merchants whose;
"Content-Type":"application/json","Authorization":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
{"accountReference": "abc123","accountName": "Test Reserved Account","currencyCode": "NGN","contractCode": "8389328412","bvn": "21212121212","customerName": "John Doe","getAllAvailableBanks": true}
{"requestSuccessful": true,"responseMessage": "success","responseCode": "0","responseBody": {"contractCode": "8389328412","accountReference": "abc1234","accountName": "Tes","currencyCode": "NGN","customerName": "John Doe","accounts": [{"bankCode": "232","bankName": "Sterling bank","accountNumber": "8952095784","accountName": "Tes"},{"bankCode": "035","bankName": "Wema bank","accountNumber": "7206930470","accountName": "Tes"},{"bankCode": "50515","bankName": "Moniepoint Microfinance Bank","accountNumber": "6254727989","accountName": "Tes"},{"bankCode": "058","bankName": "GTBank","accountNumber": "0784829227","accountName": "Tes"}],"collectionChannel": "RESERVED_ACCOUNT","reservationReference": "NWA7DMJ0W2UDK1KN5SLF","reservedAccountType": "GENERAL","status": "ACTIVE","createdOn": "2023-04-14 12:04:39.034","incomeSplitConfig": [],"bvn": "21212121212","restrictPaymentSource": false}}
Monnify invoice reserved account allows you to reserve an account for your customers to whom you send invoices to regularly. This account can be attached to invoices being generated for a customer so that the same account number is received for every invoice peculiar to that customer.
These accounts are slightly different from regular customer reserved accounts as customers cannot pay into these accounts until they are attached to an invoice.
See Reserve an Account API for details on how to implement one.
To create reserved account via the Monnify dashboard, kindly navigate to the reserved account section, click on the “create new” button and populate the fields shown in the image below;
You can establish a limit on a customer's account using the Transaction Limit APIs. This means that on a customer's account, you can specify the maximum amount per transaction, the maximum number of transactions per day, and the total amount per day.
To do so, you will need to create a Limit Profile and use the Limit Profile code to assign customers to the limit profile.
In managing Transaction Limits, you can do the following
Merchants are able to restrict source accounts that can fund a reserved account using either BVNs or Account Name or Account Number. This is mandatory if the restrictPaymentSource request parameter is set to true.
This feature is useful for merchants in a regulated business category, where only the authorized user(s) of a reserved account should fund the reserved account, to allow more payment sources, only BVNs will be used to allow more payment sources other than the default customerBvn already on a reserve account.
The rule application is as follows:
{"restrictPaymentSource": true,"allowedPaymentSources": {"bvns": ["21212121212","20202020202"]}
{"requestSuccessful": true,"responseMessage": "success","responseCode": "0","responseBody": {"restrictPaymentSource": true,"allowedPaymentSources": {"bvns": ["21212121212","20202020202"],"bankAccounts": [{"accountNumber": "0068687503","bankCode": "232"},{"accountNumber": "2048714015","bankCode": "057"}],"accountNames": ["DAMILARE OGUNNAIKE SAMUEL"]}}}
The API below provides an entry point for merchants to link customers BVN and/or NIN to their respective static reserved account.
The API accepts either the customer’s BVN or NIN or both, subject to the following merchant requirements:
{"requestSuccessful": true,"responseMessage": "success","responseCode": "0","responseBody": {{"accountReference":"ab3ed-ashdg-s23bdj","accountName": "OMEH CHIZITEREM","customerName": "OMEH CHIZITEREM","bvn":"22222222226","nin":"1047495939309"}}
Error Message | Meaning | Action |
---|---|---|
You can not reserve two accounts with the same reference. | The accountReference parameter in the request payload has already been used by you. | Retry with a unique accountReference |
Invalid contract code supplied. | The contractCode in the request parameter is not correct or it doesn’t belong to the merchant. | Navigate to the "Settings > Contract Setup", section of your Monnify dashboard to get your contact code |
Is invalid. Must be 11 digits | This most times implies that the BVN provided is invalid | If BVN/NIN is supplied, confirm that it has the required length |
Unknown currency code supplied. | The currency code supplied is not valid or supported | Reconfirm the currency code supplied |
We do not support virtual accounts from banks with code XXX. | This implies that we do not create virtual account for some of the bank codes passed in the preferredBanks array | Retry with any of the supported bank codes |
Unknown sub account code XXXXXXX. | The happen when using the incomeSplitConfig and the sub account doesn’t belong to the merchant. | KIndly confirm from the SubAccount section of your Monnify dashboard if the subAccount being used exists there |