Create an Individual Customer
This guide provides a technical walkthrough on programmatically creating an individual customer account within your Busha Business account using the Busha API. By automating customer creation, you can streamline your onboarding processes and prepare to perform transactions on behalf of your customers.
What You’ll Achieve:
-
Understand the basic structure for creating a customer.
-
Learn how to structure API requests for individual customer types.
-
Successfully create and retrieve customer accounts programmatically.
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).
Step 1: Understand Customer Creation ParametersCopied!
The essential parameters for creating an individual customer type are:
Parameter |
Type |
Description |
---|---|---|
|
|
The individual customer's email address. |
|
|
A flag indicating whether the individual has accepted your platform's (or Busha's) terms and conditions. |
|
|
The type of customer. Must be |
|
|
The ISO 3166-1 alpha-2 country code representing the individual's primary country of residence. |
|
|
The individual's phone number, including the international country code (e.g., |
|
|
The individual's date of birth, typically required for identity verification. Format likely |
|
|
The individual customer's first name. |
|
|
The individual customer's middle name. |
|
|
The individual customer's last name. |
|
|
The individual's physical address details. See the |
|
|
An array of objects describing the individual's identification documents (e.g., passport, national ID). |
|
|
An array of objects referencing uploaded documents for various purposes (e.g., proof of address). |
For the address
field in the customer creation object, the fields required are:
Parameter |
Type |
Description |
---|---|---|
|
|
The city component of the address. |
|
|
The state or region component of the address. |
|
|
The county or district component of the address (may be optional or region-specific). |
|
|
The ISO 3166-1 alpha-2 country code of the address. |
|
|
The first line of the street address. |
|
|
The second line of the street address (e.g., apartment, suite number, or building name). |
|
|
The province component of the address (may be optional or region-specific). |
|
|
The postal or ZIP code of the address. |
Know Your Customer (KYC)
Optionally, you can choose to upload your customer’s KYC documents at the point of creation in the identifying_information
and documents
array field in the original request body.
Files uploaded for KYC must be in Base64 format and have a file size less than 4MB.
The identifying_information
array expects the object(s) in this format:
"identifying_information": [
{
"type": "national-id",
"number": "ENTER NIN HERE",
"country": "NG",
"image_front": "",
"image_back": ""
}
],
For individual customers, the KYC documents required, depending on your country, are:
Country |
Documents Required |
---|---|
Nigeria |
|
Kenya |
|
The document array expects the object(s) in this format:
"documents": [
{
"purposes": [
"selfie_video"
],
"file": "{{base64 video data uri here}}"
}
]
For a full list of acceptable documents, please refer to the Customer API Reference.
Step 2: Create a Customer (Without KYC Documents)Copied!
Individual customers refer to persons who engage with your services.
To create an individual customer:
-
Open your terminal or command prompt.
-
Use the
POST
request below to the/v1/customers
endpoint. -
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 \
-H 'Authorization: Bearer {YOUR_SECRET_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"email": "trybusha@busha.so",
"has_accepted_terms": true,
"type": "individual",
"country_id": "NG",
"phone": "+234 8012345678",
"birth_date": "24-12-2000",
"address": {
"city": "Lekki",
"state": "Lagos",
"county": "Mombasa",
"country_id": "NG",
"address_line_1": "RT Lawal",
"address_line_2": "",
"province": "province",
"postal_code": "12345"
},
"first_name": "Busha",
"middle_name": "Crypto",
"last_name": "Mascot"
}'
Expected Response:
A successful response will return a Customer object, providing the customer ID (CUS_IL2Qf2pEoNADZ
), the customer type (individual
) as set in the request body and the status
of the customer.
The default status of a customer is inactive
until the user completes their Know-Your-Customer (KYC) process.
{
"status": "success",
"message": "Created customer successfully",
"data": {
"address": {
"address_line_1": "RT Lawal",
"address_line_2": "",
"city": "Lekki",
"country_id": "NG",
"county": "Mombasa",
"postal_code": "12345",
"province": "province",
"state": "Lagos"
},
"business_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
"country_id": "NG",
"created_at": "2025-06-25T22:08:08.978994644Z",
"deposit": true,
"display_currency": "NGN",
"email": "trybusha@busha.so",
"first_name": "Busha",
"has_accepted_terms_of_service": true,
"id": "CUS_IL2Qf2pEoNADZ",
"last_name": "Mascot",
"middle_name": "Crypto",
"payout": true,
"phone": "+234 8012345678",
"status": "inactive",
"type": "individual",
"updated_at": "2025-06-25T22:08:08.978994644Z"
}
}
Step 3: Create a Customer (With KYC Documents)Copied!
You can add a customer’s KYC documents at the point of creation. Let’s create a customer with supporting KYC documents.
To create a customer with supporting KYC documents:
-
Open your terminal or command prompt.
-
Use the
POST
request below to the/v1/customers
endpoint. -
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 \
-H 'Authorization: Bearer {YOUR_SECRET_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"first_name": "Toni",
"last_name": "Busha",
"email": "hello@busha.co",
"has_accepted_terms": true,
"type": "individual",
"country_id": "NG",
"phone": "+234 8094678128",
"birth_date": "24-12-2000",
"address": {
"city": "Lekki",
"state": "Lagos",
"county": "Mombasa",
"country_id": "NG",
"address_line_1": "RT Lawal",
"address_line_2": "",
"province": "province",
"postal_code": "12345"
},
"identifying_information": [
{
"type": "national-id",
"number": "ENTER NIN HERE",
"country": "NG",
"image_front": "",
"image_back": ""
}
],
"documents": [
{
"purposes": [
"selfie_video"
],
"file": "{{base64 video data uri here}}"
}
]
}'
Expected Response:
A successful response will return a Customer object, providing the customer ID CUS_IJIpmM0RqueY6
), the customer type (individual
) as set in the request body and the status
of the customer.
The default status of a customer is inactive
until the documents uploaded are verified.
{
"status": "success",
"message": "Created customer successfully",
"data": {
"address": {
"address_line_1": "RT Lawal",
"address_line_2": "",
"city": "Lekki",
"country_id": "NG",
"county": "Mombasa",
"postal_code": "12345",
"province": "province",
"state": "Lagos"
},
"business_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
"country_id": "NG",
"created_at": "2025-06-26T13:38:18.351095748Z",
"deposit": true,
"display_currency": "NGN",
"email": "hello@busha.co",
"first_name": "Toni",
"has_accepted_terms_of_service": true,
"id": "CUS_IJIpmM0RqueY6",
"last_name": "Busha",
"payout": true,
"phone": "+234 8094678128",
"status": "inactive",
"type": "individual",
"updated_at": "2025-06-26T13:38:18.351095748Z"
}
}
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 create individual customers, you can proceed to create a business customer, manage, 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 how to conduct and verify the identity of your customer to allow them full access to Busha’s operations.
-
How to Initiate Transactions on Behalf of a Customer: Understand how to use the
customer_id
to perform operations for your customers.