Prerequisites
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 customer account created (see Create Individual Customer or Create Business Customer).
Verifying Customer Identity (KYC/KYB)
1
Submit Customer KYC/KYB Documents
The core requirement for verifying a customer is the completed upload of identification documents.Individual customerFor individual customers, you must provide ONE of the following combinations in the Option 2: National ID + Selfie
To update an individual customer with their verification documents:Example with National ID + Selfie:Business customerFor business customers, the KYB documents and sections required are:Documents:
Files uploaded for KYC/KYB must be in Base64 format and have a file size less than 4MB.
identifying_information array:Option 1: Passport + Selfie| Country | Documents Required |
|---|---|
| Nigeria |
|
| Kenya |
|
- Open your terminal or command prompt.
- Use the
PUTrequest below to the/v1/customers/{customer_id}endpoint. - Replace
{customer_id}with the customer ID. - Replace
YOUR_BASE_URLwith your chosen environment’s URL and{YOUR_SECRET_KEY}with your actual key. - Replace the values in the
identifying_informationarray with the customer documents.
Verifying Individual Customers with a KYC Link
As an alternative, you can generate a hosted verification link and let the customer complete their own KYC directly.1
Generate the link
Call the KYC link endpoint for the customer:Response:
2
Share the link with your customer
Send the returned
url to your customer. They complete identity verification directly through this hosted flow.3
Check verification status
Once your customer submits their information, their status updates the same way as document-based verification, moving from
inactive to in_review, then to active or rejected.This is only available for individual customers, not business customers.
- 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
- Business Owners - Directors and beneficial owners information
- Business Transaction - Expected transaction patterns and volumes
- Business Registration - Legal and regulatory details
- Open your terminal or command prompt.
- Use the
PUTrequest below to the/v1/customers/{customer_id}endpoint. - Replace
{customer_id}with the customer ID. - Replace
YOUR_BASE_URLwith your chosen environment’s URL and{YOUR_SECRET_KEY}with your actual key. - Include all required sections and documents.
2
Verify the Customer
After uploading all required documents and information, call the verify endpoint to submit the customer for verification.To verify the customer:Expected ResponseA successful response indicates the verification request has been submitted:
- Open your terminal or command prompt.
- Use the
POSTrequest below to the/v1/customers/{customer_id}/verifyendpoint. - Replace
{customer_id}with the customer ID. - Replace
YOUR_BASE_URLwith your chosen environment’s URL and{YOUR_SECRET_KEY}with your actual key.
After calling the verify endpoint, the customer status will change from
inactive to in_review. You’ll receive webhook notifications as the verification progresses.3
Check Verification Status
Monitor the customer’s verification status by retrieving their details:Customer Status Values:
inactive- Customer created but not yet verifiedin_review- Verification documents submitted and under reviewactive- Customer verified and can perform transactionsrejected- Verification failed (check rejection reason)
4
Monitor Verification via Webhooks (Recommended)
Set up webhooks to receive real-time notifications about verification status changes. See Webhook Events for available customer verification events:Learn how to set up webhooks in the Webhooks Guide.
customer.verification.in_review- Verification submittedcustomer.verification.active- Verification approvedcustomer.verification.rejected- Verification failedcustomer.verification.inactive- Verification reverted
Common Verification Errors
Individual Customers:identifying_information array includes a selfie object with type: "selfie" and image_front containing a base64 encoded selfie image.
Business Customers:
business_owners array with at least one owner/director.
business_transaction object with transaction details.
Troubleshooting
400 Bad Request / 422 Unprocessable Entity: Review your request body to ensure all required fields are present and correctly formatted.401 Unauthorized: Verify that your Secret API Key is correct and included in the header.missing_sectionerrors: For business customers, ensure all three sections (owners, transaction, registration) are complete before verification.profile_kyc_verificationerrors: For individual customers, ensure all required documents (ID images and selfie image) are uploaded in theidentifying_informationarray.
What’s Next?
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_idto perform operations for your customers. - Webhook Events: Learn about all customer verification webhook events.
- Monitor Verification Status: Track customer verification progress.