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).
Creating an Individual Customer Account
Understand Customer Creation Parameters
The essential parameters for creating an individual customer type are:
For the
Know Your Customer (KYC)Optionally, you can choose to upload your customer’s KYC documents at the point of creation in the The For individual customers, the KYC documents required, depending on your country, are:
The document array expects the object(s) in this format:For a full list of acceptable documents, please refer to the Compliance Guide.
| Parameter | Type | Description |
|---|---|---|
email | string | The individual customer’s email address. |
has_accepted_terms | boolean | A flag indicating whether the individual has accepted your platform’s (or Busha’s) terms and conditions. |
type | string | The type of customer. Must be individual for this customer
type. |
country_id | string | The ISO 3166-1 alpha-2 country code representing the individual’s primary country of residence. |
phone | string | The individual’s phone number, including the international country code (e.g., +234 8012345678). |
birth_date | string | The individual’s date of birth, typically required for identity verification. Format: DD-MM-YYYY. |
first_name | string | The individual customer’s first name. |
middle_name | string | The individual customer’s middle name (optional). |
last_name | string | The individual customer’s last name. |
address | object | The individual’s physical address details. See the Address Object Parameters table below for nested fields. |
identifying_information | array | An array of objects describing the individual’s identification documents (e.g., passport, national ID). |
documents | array | An array of objects referencing uploaded documents for various purposes (e.g., selfie video for verification). |
address field in the customer creation object, the fields required are:| Parameter | Type | Description |
|---|---|---|
city | string | The city component of the address. |
state | string | The state or region component of the address. |
county | string | The county or district component of the address (optional). |
country_id | string | The ISO 3166-1 alpha-2 country code of the address. |
address_line_1 | string | The first line of the street address. |
address_line_2 | string | The second line of the street address (optional). |
province | string | The province component of the address (optional). |
postal_code | string | The postal or ZIP code of the address. |
identifying_information and documents array fields.Files uploaded for KYC must be in Base64 format and have a file size less than
4MB.
identifying_information array expects the object(s) in this format:| Country | Documents Required |
|---|---|
| Nigeria |
|
| Kenya |
|
Create a Customer (Without KYC Documents)
Individual customers refer to persons who engage with your services. Start with basic information and add KYC documents later.To create an individual customer without KYC documents:Expected Response:A successful response will return a Customer object with
- Open your terminal or command prompt.
- Use the
POSTrequest below to the/v1/customersendpoint. - Replace
YOUR_BASE_URLwith your chosen environment’s URL and{YOUR_SECRET_KEY}with your actual key.
status: "inactive" until KYC is completed.The default status of a customer is
inactive until they complete their Know-Your-Customer (KYC) process.Create a Customer (With KYC Documents)
Create a verified customer by including KYC documents at creation.To create a customer with supporting KYC documents:Expected Response:
- Open your terminal or command prompt.
- Use the
POSTrequest below to the/v1/customersendpoint. - Replace
YOUR_BASE_URLwith your chosen environment’s URL and{YOUR_SECRET_KEY}with your actual key.
The status remains
inactive until the documents are verified. Call the verify endpoint to submit for verification.Verify the Customer
After creating a customer with KYC documents, verify them to activate their account.To verify a customer:Expected Response:A successful verification will return:Common Errors:
- Open your terminal or command prompt.
- Use the
POSTrequest below to the/v1/customers/{customer_id}/verifyendpoint. - Replace
{customer_id}with the customer ID from the previous response. - Replace
YOUR_BASE_URLwith your chosen environment’s URL and{YOUR_SECRET_KEY}with your actual key.
After verification, check the customer status. It will change from
inactive to in_review or active.profile_kyc_verification: KYC documents are missing or incomplete (e.g., no selfie video)
PUT /v1/customers/{customer_id}, then retry verification.Complete Example: Create and Verify Customer
Here’s a complete workflow to create and verify an individual customer: Step 1: Create customer with KYC documents"status": "in_review" or "status": "active"
Customer Status Flow:
inactive- Default status after creationin_review- After calling verify endpoint with valid documentsactive- After verification approval (automatic in sandbox, manual review in production)
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.
- Email validation error: Use real email domains like
@gmail.cominstead of generic domains like@example.com. profile_kyc_verificationerror during verification: Ensure all required documents (ID images and selfie video) are uploaded before calling verify.
What’s Next?
Now that you can programmatically create and verify individual customers, you can proceed to manage them and perform transactions on their behalf:- How to Create a Business Customer: Learn how to create a business customer in your Busha business account.
- How to Verify Customer’s Identity (KYC/KYB): Learn more about the verification process and required documents.
- 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 customer verification webhook events.