Verify Account Number

In A Nutshell
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:

NameAvailabilityDescription
Resolve Account NumberNigeria, GhanaUsed for the confirmation of personal bank accounts
Account ValidationSouth AfricaUsed 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:

Show Response
1curl https://api.paystack.co/bank/resolve?account_number=0001234567&bank_code=058
2-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": 9
8 }
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:

Show Response
1curl https://api.paystack.co/bank/validate
2-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:

NameTypeDescription
account_nameStringCustomer's first and last name registered with their bank
account_numberStringCustomer’s account number
account_typeStringThis can take one of: [personal, business]
bank_codeStringThe bank code of the customer’s bank. You can fetch the bank codes by using our List BankAPI.
country_codeStringThe two digit ISO code of the customer’s bank
document_typeStringCustomer’s mode of identity. This could be one of: [identityNumber, passportNumber, businessRegistrationNumber]
document_numberStringCustomer’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.