Customers
Customers represent the buyers you identify and reuse across Commerce flows. A customer record gives you a stable customer ID for orders, saved payment methods, receipts, and your own internal reconciliation.
Create supports idempotency: a successful response can be replayed with the same idempotency key and request body for 24 hours. Lookup and page do not opt in to idempotent replay.
The customer object
A customer object stores the profile data Commerce knows about a buyer. Optional fields are omitted when they have no value.
Properties
Create customer
Create a reusable customer record. Use this when you want a stable customer ID before you create orders, save payment methods, or attach your own customer reference.
Required attributes
Optional attributes
Response shape
- The response returns a top-level
customerobject. - The created customer includes
id,name, andcreated_at. - Billing and shipping addresses are accepted and returned when provided.
- Optional fields are returned only when they have values.
Request
curl https://api.zebo.dev/customers/create \
-H "Authorization: Bearer $COMMERCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Mensah",
"title": "Ms.",
"reference": "user_123456",
"email_address": "[email protected]",
"phone_number": "+233242057831",
"custom_data": {
"loyalty_tier": "gold",
"account_manager": "am_789"
}
}'
{
"customer": {
"id": "cu_a1b2c3d4e5",
"name": "Jane Mensah",
"title": "Ms.",
"email_address": "[email protected]",
"phone_number": "+233242057831",
"reference": "user_123456",
"custom_data": {
"loyalty_tier": "gold",
"account_manager": "am_789"
},
"guest": false,
"billing_address": {
"name": "Jane Mensah",
"phone_number": "+233242057831",
"line1": "23 Adenta High Street",
"line2": "East Legon Hills",
"city": "Accra",
"region": "Greater Accra",
"post_code": "GA-422-1134",
"country": "GH"
},
"created_at": "2025-11-23T14:30:00Z",
"updated_at": null
}
}
Lookup customer
Fetch one customer by ID. Use this when you need the full customer object before creating an order, showing account details, or reconciling customer activity in your own system.
Required attributes
Response shape
- The response returns a top-level
customerobject. - The object can include billing and shipping addresses when they exist on the customer record.
- Optional fields are omitted when they are not set.
Request
curl https://api.zebo.dev/customers/lookup \
-H "Authorization: Bearer $COMMERCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cu_a1b2c3d4e5"
}'
{
"customer": {
"id": "cu_a1b2c3d4e5",
"name": "Jane Mensah",
"title": "Ms.",
"email_address": "[email protected]",
"phone_number": "+233242057831",
"reference": "user_123456",
"guest": false,
"billing_address": {
"name": "Jane Mensah",
"phone_number": "+233242057831",
"line1": "23 Adenta High Street",
"line2": "East Legon Hills",
"city": "Accra",
"region": "Greater Accra",
"post_code": "GA-422-1134",
"country": "GH"
},
"shipping_address": {
"name": "Jane Mensah",
"phone_number": "+233242057831",
"line1": "23 Adenta High Street",
"line2": "East Legon Hills",
"city": "Accra",
"region": "Greater Accra",
"post_code": "GA-422-1134",
"country": "GH"
},
"custom_data": {
"loyalty_tier": "gold",
"account_manager": "am_789"
},
"created_at": "2025-11-23T14:30:00Z",
"updated_at": "2025-11-24T08:00:00Z"
}
}
Page through customers
List customers for the authenticated application. Results are sorted by created_at in descending order, so page 1 contains the newest customer records.
Request attributes
Response shape
- The top-level
pageobject includesnumber,size, andcustomers. - Each entry in
customersis a full customer object. - Optional customer fields appear only when they are set.
Request
curl https://api.zebo.dev/customers/page \
-H "Authorization: Bearer $COMMERCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"page_number": 1,
"page_size": 50
}'
{
"page": {
"number": 1,
"size": 2,
"customers": [
{
"id": "cu_a1b2c3d4e5",
"name": "Jane Mensah",
"email_address": "[email protected]",
"phone_number": "+233242057831",
"reference": "user_123456",
"guest": false,
"billing_address": {
"name": "Jane Mensah",
"phone_number": "+233242057831",
"line1": "23 Adenta High Street",
"line2": "East Legon Hills",
"city": "Accra",
"region": "Greater Accra",
"post_code": "GA-422-1134",
"country": "GH"
},
"custom_data": {
"loyalty_tier": "gold"
},
"created_at": "2025-11-23T14:30:00Z"
},
{
"id": "cu_f6g7h8i9j0",
"name": "Kojo Asante",
"title": "Mr.",
"phone_number": "+233201234567",
"guest": true,
"created_at": "2025-11-22T09:15:00Z",
"updated_at": "2025-11-24T11:05:00Z"
}
]
}
}