Customer Management
Customers let you reuse customer identity across checkout and reserved account flows.
Create Customer
const customer = await client.customerService.create({
email: 'customer@example.com',
first_name: 'Ada',
last_name: 'Lovelace',
phone: '08012345678',
metadata: { internal_customer_id: 'cust_10045' }
});Required fields: email, first_name, last_name, and phone.
Optional fields: address, bvn, nin, dob, rc_number, company_name, incorporation_date, and metadata.
Current successful response shape:
{
"success": true,
"message": "Customer created",
"data": {
"email": "customer@example.com",
"domain": "test",
"customer_code": "CUS_...",
"id": 7,
"created_at": "2025-01-29T16:56:49.000000Z",
"updated_at": "2025-01-29T16:56:49.000000Z"
}
}If the customer already exists for the same business and domain, the API returns the existing customer instead of creating a duplicate.
List Customers
const customers = await client.customerService.retrieveAll({ page: 1, limit: 20 });Supported query fields: page and limit.
Retrieve Customer
const customer = await client.customerService.retrieveOne('CUS_...');The route accepts either customer code or email:
GET /api/v1/customer/{email_or_code}Update Customer
await client.customerService.update('CUS_...', {
phone: '08012345678',
address: '10 Example Street'
});Supported update fields: first_name, last_name, phone, nin, bvn, dob, and address.
Data Protection
Do not log BVN, NIN, or full customer payloads. Store only the identifiers needed for reconciliation, such as customer_code and your internal customer ID.
Last updated on