Validate Customer

Learn how to validate identification details for your customers

Availability
This is only required you if you're using the Dedicated NUBAN feature and your business falls under any of these categories - Betting, Financial services, and General Services .

Introduction

The customer validation endpoint is used to verify identification details provided by your customers. You can validate a customer by sending a POST request to the Validate CustomerAPI endpoint. There are two types of customer validation available;

Bank Account Validation

What's new
Bank account validation requires that you provide the customer's BVN and a bank account connected to that BVN. With these extra data points, you're guaranteed higher success rates on customer validation attempts.
Show Response
1curl https://api.paystack.co/customer/{customer_code}/identification
2-H "Authorization: Bearer YOUR_SECRET_KEY"
3-H "Content-Type: application/json"
4-d '{
5 "country": "NG",
6 "type": "bank_account",
7 "account_number": "0123456789",
8 "bvn": "200123456677",
9 "bank_code": "007",
10 "first_name": "Asta",
11 "last_name": "Lavista"
12}'
13-X POST
1{
2 "status": true,
3 "message": "Customer Identification in progress"
4 }

Testing

Customers can only be validated with live keys. However, for testing purposes during your integration, you can make make use of this credential with your test key:

1{
2 "country": "NG",
3 "type": "bank_account",
4 "account_number": "0111111111",
5 "bvn": "222222222221",
6 "bank_code": "007",
7 "first_name": "Uchenna",
8 "last_name": "Okoro"
9}
10

BVN Validation

Deprecation Notice
We're deprecating support for the BVN type of Customer Validation at the end of September 2021. We advise that you implement the Bank Account validation for existing and new customers.
Show Response
1curl https://api.paystack.co/customer/{customer_code}/identification
2-H "Authorization: Bearer YOUR_SECRET_KEY"
3-H "Content-Type: application/json"
4-d '{
5 "country": "NG",
6 "type": "bvn",
7 "value": "200123456677",
8 "first_name": "Asta",
9 "last_name": "Lavista"
10}'
11-X POST
1{
2 "status": true,
3 "message": "Customer Identification in progress"
4 }

Testing

Customers can only be validated with live keys. However, for testing purposes during your integration, you can make make use of this credential with your test key:

1{
2 "country": "NG",
3 "type": "bvn",
4 "value": "22222222298",
5 "first_name": "Uchenna",
6 "last_name": "Okoro"
7}
8
Failed Validation
If you make use of any other BVN with your test key, the validation will fail.

Listen for verification status

The verification of the details provided happens asynchronously, and we will send a customeridentification.success or customeridentification.failed event to your webhook URL when the verification is complete.

Prerequisite
You need a basic knowledge of webhooks before proceeding with this section.
1{
2 "event": "customeridentification.success",
3 "data": {
4 "customer_id": "9387490384",
5 "customer_code": "CUS_xnxdt6s1zg1f4nx",
6 "email": "[email protected]",
7 "identification": {
8 "country": "NG",
9 "type": "bank_account",
10 "bvn": "200*****677",
11 "account_number": "012****789",
12 "bank_code": "007"
13 }
A validated customer's name cannot be updated
When a customer is validated successfully, the customer's first_name and last_name are automatically updated to correspond with the name on their BVN. Once this is set, you'll no longer be able to update the customer's name using the Update CustomerAPI and the customer's name can only be updated by a re-validation.

Reasons to validate a customer

  1. Local regulations require that customer information is validated before creating account numbers on their behalf.
  2. It allows us name the bank account using the name registered to the provided BVN.