The Monnify Verification APIs allow you to confirm the accuracy of your customers' identity and account details before performing any financial transaction. This helps you reduce failed transfers, prevent fraud, and meet KYC compliance requirements. This guide covers all four verification services and how to use each one.
The Name Enquiry API is free and available on both the Sandbox and Live environments. All other verification APIs (BVN and Account Name Validation, BVN Information Verification, and NIN Verification) are available on the Live environment only. Requests to these APIs will fail if your Monnify wallet balance is below the cost of the service being requested.
The Name Enquiry service lets you look up and confirm the name tied to a bank account number before initiating a transfer. Make a GET request to the Validate Bank Account API with the account number and bank code.
1curl --request GET \
2--url 'https://sandbox.monnify.com/api/v1/disbursements/account/validate?accountNumber=0123456789&bankCode=058' \
3--header 'Authorization: Bearer {access_token}'1{
2"requestSuccessful": true,
3"responseMessage": "success",
4"responseCode": "0",
5"responseBody": {
6 "accountNumber": "0123456789",
7 "accountName": "John Doe",
8 "bankCode": "058",
9 "bankName": "GTBank"
10}
11}This service lets you verify that the BVN information supplied by your customers matches what is registered on their BVN record. Make a POST request to the BVN and Account Name Match API with the customer's BVN, bank code, and account number.
1curl --request POST \
2--url https://sandbox.monnify.com/api/v1/vas/bvn-account-match \
3--header 'Authorization: Bearer {access_token}' \
4--header 'Content-Type: application/json' \
5--data '{
6 "bvn": "12345678901",
7 "bankCode": "058",
8 "accountNumber": "0123456789",
9 "name": "John Doe"
10}'1{
2"requestSuccessful": true,
3"responseMessage": "success",
4"responseCode": "0",
5"responseBody": {
6 "bvn": "12345678901",
7 "accountNumber": "0123456789",
8 "bankCode": "058",
9 "accountName": "John Doe",
10 "bvnAccountNameMatch": true
11}
12}This service allows you to verify that the Bank Verification Number (BVN) and account number provided by your customers match the BVN and account number linked to the account. Make a POST request to the BVN Details Match API with the customer's BVN and account details.
This service costs ₦10 per successful request. Ensure you account for this in your integration design, particularly if you are running high-volume verifications.
1curl --request POST \
2--url https://sandbox.monnify.com/api/v1/vas/bvn-details-match \
3--header 'Authorization: Bearer {access_token}' \
4--header 'Content-Type: application/json' \
5--data '{
6 "bvn": "12345678901",
7 "name": "John Doe",
8 "dateOfBirth": "01-Jan-1990",
9 "mobileNo": "08012345678"
10}'1{
2"requestSuccessful": true,
3"responseMessage": "success",
4"responseCode": "0",
5"responseBody": {
6 "bvn": "12345678901",
7 "name": "John Doe",
8 "dateOfBirth": "01-Jan-1990",
9 "mobileNo": "08012345678",
10 "bvnInformationMatch": true
11}
12}This service allows you to verify the National Identification Number (NIN) supplied by your customers. Make a POST request to the NIN Verification API with the customer's NIN.
This service costs ₦60 per successful request. Ensure you account for this in your integration design, particularly if you are running high-volume verifications.
1curl --request POST \
2--url https://sandbox.monnify.com/api/v1/vas/nin-verification \
3--header 'Authorization: Bearer {access_token}' \
4--header 'Content-Type: application/json' \
5--data '{
6 "nin": "98765432101",
7 "name": "John Doe",
8 "dateOfBirth": "01-Jan-1990"
9}'1{
2"requestSuccessful": true,
3"responseMessage": "success",
4"responseCode": "0",
5"responseBody": {
6 "nin": "98765432101",
7 "firstName": "John",
8 "lastName": "Doe",
9 "dateOfBirth": "01-Jan-1990",
10 "gender": "Male",
11 "phoneNumber": "08012345678",
12 "ninInformationMatch": true
13}
14}| Field | Type | Description |
|---|---|---|
requestSuccessful | Boolean | Indicates whether the API request was received and processed successfully. |
responseCode | String | 0 means success. Any other value indicates a failure — check responseMessage for details. |
bvnAccountNameMatch | Boolean | Returned by the BVN and Account Name Validation service. true means the name matches the BVN record; false means it does not. |
bvnInformationMatch | Boolean | Returned by the BVN Information Verification service. true means the supplied details match the BVN record. |
ninInformationMatch | Boolean | Returned by the NIN Verification service. true means the supplied details match the NIN record. |
| Error | Meaning | Recommended Action |
|---|---|---|
| Invalid account number | The account number supplied could not be found at the specified bank. | Ask the customer to confirm their account number and bank. |
| Invalid bank code | The bank code is not recognized on Monnify. | Use the Get Banks API to confirm the correct bank code. |
| Account number could not be validated | Name enquiry failed — the destination bank may be temporarily unavailable. | Retry after a short delay. If the issue persists, contact [email protected]. |
| Invalid BVN | The BVN supplied is not a valid 11-digit BVN. | Ask the customer to confirm their BVN. |
| Invalid NIN | The NIN supplied is not a valid 11-digit NIN. | Ask the customer to confirm their NIN. |
| Service unavailable | The verification service or the upstream identity provider is temporarily unavailable. | Retry after a short delay. Contact [email protected] if the issue persists. |
How would you rate your experience?