Verify Customer Identity
This guide provides a technical walkthrough on programmatically verifying a customer account using the Busha API.
What You’ll Achieve:
-
Update customer profile with KYC/KYB documents.
-
Successfully verify your customer identity.
PrerequisitesCopied!
Before you begin, ensure you have:
-
A Busha Business Account and Secret API Key (from the Quick Start Tutorial).
-
An understanding of API Environments (Sandbox vs. Production) and their base URLs (from the Make Your First Request Guide).
-
A business customer account with KYC/KYB documents submitted.
Step 1: Submit Customer KYC/KYB DocumentsCopied!
Skip this step if verification documents were attached when creating the customer.
The core requirement for verifying a customer is the completed upload of identification documents.
Files uploaded for KYC must be in Base64 format and have a file size less than 4MB.
Individual customer
For individual customers, the KYC documents required, depending on your country, are:
Country |
Documents Required |
---|---|
Nigeria |
|
Kenya |
|
To update an individual customer with their verification documents:
-
Open your terminal or command prompt.
-
Use the
PUT
request below to the/v1/customers/{customer_id}
endpoint. -
Replace
{customer_id}
with the customer ID. -
Replace
YOUR_BASE_URL
with your chosen environment’s URL and{YOUR_SECRET_KEY}
with your actual key. -
Replace the values in the
identifying_information
anddocuments
array with the customer documents.
$ curl -i -X PUT https://YOUR_BASE_URL/v1/customers/{customer_id} \
-H 'Authorization: Bearer {YOUR_SECRET_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"identifying_information": [
{
"type": "passport",
"number": "AB12345",
"country": "NG",
"expiry_date": "2030-01-01",
"image_front": "{{base64 string}}",
"image_back": "{{base64 string}}"
}
],
"documents": [
{
"purposes": [
"selfie_video"
],
"file": "{{base64 string}}"
}
]
}'
Business customer
For business customers, the KYB documents required are:
-
Certificate of Incorporation
-
Corporate registry extract
-
Memorandum of Association articles (memart)
-
Corporate structure chart
-
Board resolution
-
Anti-money laundering policy
-
Regulatory licenses
-
Proof of wealth
-
Proof of address
To update a business customer with their verification documents:
-
Open your terminal or command prompt.
-
Use the
PUT
request below to the/v1/customers/{customer_id}
endpoint. -
Replace
{customer_id}
with the customer ID. -
Replace
YOUR_BASE_URL
with your chosen environment’s URL and{YOUR_SECRET_KEY}
with your actual key. -
Replace the values in the
documents
array with the customer documents.
$ curl -i -X PUT https://YOUR_BASE_URL/v1/customers/{customer_id} \
-H 'Authorization: Bearer {YOUR_SECRET_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"documents": [
{
"purposes": [
"certificate_of_incorporation"
],
"file": "{{base64 string}}"
}
]
}'
Step 2: Verify the CustomerCopied!
To verify the identity and the information provided by the customer:
-
Open your terminal or command prompt.
-
Use the
POST
request below to the/v1/customers/{customer_id}/verify
endpoint. -
Replace
{customer_id}
with the customer ID. -
Replace
YOUR_BASE_URL
with your chosen environment’s URL and{YOUR_SECRET_KEY}
with your actual key.
$ curl -i -X POST "https://YOUR_BASE_URL/v1/customers/{customer_id}/verify" \
-H 'Authorization: Bearer {YOUR_SECRET_KEY}'
Expected Response
A successful response will be returned if the information provided by the customer is valid.
{"status":"success","message":"Customer verified successfully"}
An error message will be returned if the information provided by the customer is invalid.
For example, the missing_section
error is returned for a business customer with incomplete sections:
{
"error": {
"name": "missing_section",
"message": "Owners section must be completed before final submission"
}
}
TroubleshootingCopied!
-
400 Bad Request
/422 Unprocessable Entity
: Review your request body to ensure all required fields are present and correctly formatted for the specifiedtype
(individual or business). -
401 Unauthorized
: Verify that your Secret API Key is correct and included in the header.
What’s Next?Copied!
Now that you can programmatically verify customers, you can proceed to perform transactions on their behalf:
-
How to Initiate Transactions on Behalf of a Customer: Understand how to use the
customer_id
to perform operations for your customers.