Endpoint
Description
This endpoint provisions a customer in the system. The customer record is required to associate wallets, transactions, and payment methods. After creation, the customer typically starts in apending_kyc status until verification is completed.
Request Body
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
first_name | string | Yes | Customer’s first name |
last_name | string | Yes | Customer’s last name |
email | string | Yes | Customer’s email address |
phone | string | Yes | Customer’s phone number (with country code) |
type | string | Yes | Customer type: individual or business |
billing_address | object | Yes | Customer’s billing address |
Billing Address Fields
| Field | Type | Required | Description |
|---|---|---|---|
line1 | string | Yes | Street address line 1 |
line2 | string | No | Street address line 2 |
city | string | Yes | City |
state | string | Yes | State or region |
zip_code | string | Yes | Postal code |
country | string | Yes | ISO 2-letter country code |
Response
Success Response (201 Created)
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique customer identifier |
status | string | Customer status (pending_kyc, active, etc.) |
created_at | string | Timestamp when the customer was created |
Example cURL Request
Common Errors
| Status Code | Description |
|---|---|
400 | Invalid request or missing required fields |
401 | Unauthorized |
409 | Customer already exists |
422 | Invalid field values |
Notes & Best Practices
- Ensure all mandatory fields are provided and formatted correctly.
- The
statusstarts aspending_kycif verification is required. - Store the returned
idas it is needed to create wallets and associate transactions. - Validate emails and phone numbers to prevent errors in subsequent wallet creation.
Typical Flow
- Create a customer via
POST /customers. - Verify customer if required (KYC).
- Create a wallet for the customer using
POST /wallets. - Add payment methods and perform transactions as needed.