Verify Account Number
In a nutshell
The account validation APIs allow merchants to confirm the authenticity of a customer’s account number before sending money to the customer.
Introduction
Before sending money to a customer, you need to ensure the customer’s account details are correct. This is to ensure you aren’t sending money to the wrong person. In order to achieve this, we provide the following APIs:
Name | Availability | Description |
---|---|---|
Resolve Account Number | Nigeria, Ghana | Used for the confirmation of personal bank accounts |
Account Validation | South Africa | Used for the validation of personal and business bank accounts |
Account number verification allows you to:
- Confirm a customer’s bank details before creating a transfer recipient
- Automate your KYC process
Resolve Account Number
Gentle reminder
This feature is available to business in Nigeria and Ghana.
The Resolve Account NumberAPI takes the customer’s account number and bank code and returns the account details of the customer.
To resolve an account number, make a GET
request to the /bank/resolve
endpoint:
1curl https://api.paystack.co/bank/resolve?account_number=0001234567&bank_code=0582-H "Authorization: Bearer YOUR_SECRET_KEY"3-X GET
1{2 "status": true,3 "message": "Account number resolved",4 "data": {5 "account_number": "0001234567",6 "account_name": "Doe Jane Loren",7 "bank_id": 98 }9}
Pricing
This endpoint is free for use.
Account Validation
Gentle Reminder
This feature is only available to businesses in South Africa.
The Validate AccountAPI allows merchant validate both personal and business accounts. It checks if the provided customer’s
details are correct and returns the status of the check. To validate an account, make a POST
request to the /bank/validate
endpoint:
1curl https://api.paystack.co/bank/validate2-H "Authorization: Bearer YOUR_SECRET_KEY"3-H "Content-Type: application/json"4-d '{5 "bank_code": "632005",6 "country_code": "ZA",7 "account_number": "0123456789",8 "account_name": "Ann Bron",9 "account_type": "personal",10 "document_type": "identityNumber",11 "document_number": "1234567890123"12 }'13-X POST
1{2 "status": true,3 "message": "Personal Account Verification attempted",4 "data": {5 "verified": true,6 "verificationMessage": "Account is verified successfully"7 }8}
The /bank/validate
endpoint can be used for both personal and business account validation by using the following request parameters:
Name | Type | Description |
---|---|---|
account_name | String | Customer's first and last name registered with their bank |
account_number | String | Customer’s account number |
account_type | String | This can take one of: [personal , business ] |
bank_code | String | The bank code of the customer’s bank. You can fetch the bank codes by using our List BankAPI. |
country_code | String | The two digit ISO code of the customer’s bank |
document_type | String | Customer’s mode of identity. This could be one of: [identityNumber , passportNumber , businessRegistrationNumber ] |
document_number | String | Customer’s mode of identity number |
When validating a personal account number, the customer can either provide their passport or identity number. You can specify the mode of
identity by passing either identityNumber
or passportNumber
as the document_type
parameter.
For business account validation the document_type
should be businessRegistrationNumber
.
Pricing
This endpoint costs ZAR 3 for every successful request.