Wallet Creation
The Monnify Wallet Creation API facilitates the process of creating wallets for customers. This API provides the necessary functionality to generate wallets, allowing businesses to effortlessly create wallets for their customers through integration with the Monnify platform.
This endpoint is protected with a Basic Authentication. To access this endpoint, include the Authorization header in your HTTP requests. The header should start with the word "Basic" followed by a space and a base64-encoded string representing your apiKey and clientSecret as "apiKey:clientSecret".
Endpoint URL: {{base_url}}/api/v1/disbursements/wallet
HTTP Method: POST
The {{base_url}} for test is https://sandbox.monnify.com
but when you go live, it changes to the live url
The API would require the following information: customer's wallet reference number, wallet name, customer name, BVN details, and customer email address. Once these details are sent through the endpoint, the API will return a Moniepoint account number along with the wallet details. The associated account name will match the customer name provided in the request.
You might also want to specify how disbursement fees should be handled; if it should be borne by the new wallet or any of the existing wallets. You can do this using the feeBearer and feeSourceAccountNumber parameter
See sample request and responses below:
Create Wallet Request
{
"walletReference":"ref1684248425966",
"walletName":"Staging Wallet - ref1684248425966",
"customerName": "John Doe",
"bvnDetails": {
"bvn": "22222222226",
"bvnDateOfBirth": "1993-10-03"
},
"customerEmail": "test@tester.com",
"feeBearer":"CUSTOM",
"feeSourceAccountNumber":"8016472829"
}
Create Wallet Response
{
"requestSuccessful": true,
"responseMessage": "success",
"responseCode": "0",
"responseBody": {
"walletName": "Staging Wallet - ref1684248425966",
"walletReference": "ref1684248425966",
"customerName": "Test01-John Doe",
"customerEmail": "test@tester.com",
"feeBearer": "CUSTOM",
"feeSourceAccountNumber": "8016472829",
"bvnDetails": {
"bvn": "22222222226",
"bvnDateOfBirth": "1993-10-03"
},
"accountNumber": "8048865560",
"accountName": "Test01-John Doe",
"topUpAccountDetails": {
"accountNumber": "0437959204",
"accountName": "Test01-John Doe",
"bankCode": "50515",
"bankName": "Moniepoint MFB"
}
}
}
Â
Debiting The Wallet
To debit the generated Monnify wallet, you simply make a POST request to the initiate transfer API.
The sourceAccountNumber in your request parameter becomes the internal accountNumber (that is the internal wallet id) of the generated wallet.
Â
Field Reference
(M) indicates fields that are mandatory in the request body. (m) Indicates fields that are mandatory only if the parent object is not empty.
Field | Description |
---|---|
walletReference (M) | A uniquely generated reference that identifies the wallet |
walletName (M) | A descriptive name for the generated wallet |
customerName (M) | This is name of the customer whom the wallet is assigned to. |
bvn (M) | The valid bvn of the customer |
bvnDateOfBirth (M) | The date of birth linked to the bvn in the format yyyy-mm-dd |
customerEmail (M) | Email address of the customer. |
accountNumber | The internal wallet account id for disbursement purpose. |
feeBearer | This specifies who bears the fees for every disbursement done through the wallet. This can either be SELF or CUSTOM and if not specified, the default SELF is used. |
feeSourceAccountNumber | When feeBearer is set to Custom, you will need to specify the wallet account number of the wallet that will bear the disbursement fee. |
topUpAccountDetails | An object containing the top up details of the customer. |
topUpAccountDetails.accountNumber | The customer’s top up account number. |
topUpAccountDetails.bankCode | The top up bank code. |
topUpAccountDetails.bankName | The top up bank name. |
topUpAccountDetails.accountName | The top up account name that displays during name enquiry. |
Â