Skip to main content
This guide provides a technical walkthrough on programmatically verifying a customer account using the Busha API.
What You’ll Achieve:
  1. Update customer profile with KYC/KYB documents.
  2. Successfully verify your customer identity.
  3. Monitor verification status changes.

Prerequisites

Before you begin, ensure you have:

Verifying Customer Identity (KYC/KYB)

1

Submit Customer KYC/KYB Documents

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/KYB must be in Base64 format and have a file size less than 4MB.
Individual customerFor individual customers, you must provide ONE of the following combinations in the identifying_information array:Option 1: Passport + Selfie
Option 2: National ID + Selfie
CountryDocuments Required
Nigeria
  • NIN number and selfie image
  • National passport and selfie image
  • Driver’s license and selfie image
Kenya
  • National ID and selfie image
To update an individual customer with their verification documents:
  1. Open your terminal or command prompt.
  2. Use the PUT request below to the /v1/customers/{customer_id} endpoint.
  3. Replace {customer_id} with the customer ID.
  4. Replace YOUR_BASE_URL with your chosen environment’s URL and {YOUR_SECRET_KEY} with your actual key.
  5. Replace the values in the identifying_information array with the customer documents.
Example with Passport + Selfie:
Example with National ID + Selfie:
Business customerFor business customers, the KYB documents and sections required are:Documents:
  • 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
Required Sections:
  • Business Owners - Directors and beneficial owners information
  • Business Transaction - Expected transaction patterns and volumes
  • Business Registration - Legal and regulatory details
To update a business customer with complete KYB information:
  1. Open your terminal or command prompt.
  2. Use the PUT request below to the /v1/customers/{customer_id} endpoint.
  3. Replace {customer_id} with the customer ID.
  4. Replace YOUR_BASE_URL with your chosen environment’s URL and {YOUR_SECRET_KEY} with your actual key.
  5. 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:
  1. Open your terminal or command prompt.
  2. Use the POST request below to the /v1/customers/{customer_id}/verify endpoint.
  3. Replace {customer_id} with the customer ID.
  4. Replace YOUR_BASE_URL with your chosen environment’s URL and {YOUR_SECRET_KEY} with your actual key.
Expected ResponseA successful response indicates the verification request has been submitted:
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 verified
  • in_review - Verification documents submitted and under review
  • active - Customer verified and can perform transactions
  • rejected - Verification failed (check rejection reason)
Example Response:
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:
  • customer.verification.in_review - Verification submitted
  • customer.verification.active - Verification approved
  • customer.verification.rejected - Verification failed
  • customer.verification.inactive - Verification reverted
Example Webhook Payload:
Learn how to set up webhooks in the Webhooks Guide.

Common Verification Errors

Individual Customers:
Solution: Ensure the identifying_information array includes a selfie object with type: "selfie" and image_front containing a base64 encoded selfie image. Business Customers:
Solution: Add the business_owners array with at least one owner/director.
Solution: Add the 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_section errors: For business customers, ensure all three sections (owners, transaction, registration) are complete before verification.
  • profile_kyc_verification errors: For individual customers, ensure all required documents (ID images and selfie image) are uploaded in the identifying_information array.

What’s Next?

Now that you can programmatically verify customers, you can proceed to perform transactions on their behalf: