Verify Customer Identity

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.

PrerequisitesCopied!

Before you begin, ensure you have:

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

  • NIN slip and selfie video

  • National passport and selfie video

  • Driver’s license and selfie video

Kenya

  • National ID and selfie video

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 and 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 '{
  "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:

  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 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:

  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.

$ 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 specified type (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: