Customers
Store customer profiles that can be linked to orders, invoices, and Stripe customers. Customer records support loyalty tracking, purchase history, and personalised receipts.
List customers
bash
GET /v1/slate/customers| Name | Type | Required | Description |
|---|---|---|---|
| q | string | No | Search by name or email (partial match). |
| page | integer | No | Page number. |
| per_page | integer | No | Results per page. Max 100. |
json
{
"data": [
{
"id": "cus_01hxyz",
"tenant_id": "ten_01hxyz",
"name": "Jane Smith",
"email": "[email protected]",
"phone": "+61400000000",
"stripe_customer_id": "cus_Qxxx",
"notes": "Prefers oat milk",
"created_at": "2025-05-01T00:00:00Z"
}
]
}Create a customer
bash
POST /v1/slate/customers| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Full name of the customer. |
| string | No | Email address. Used for receipts and invoice delivery. | |
| phone | string | No | Phone number in E.164 format. |
| notes | string | No | Internal notes visible to staff only. |
| create_stripe_customer | boolean | No | If true, creates a matching Stripe Customer and saves the ID. Defaults to false. |
bash
curl -X POST https://api.hldgroup.org/v1/slate/customers \
-H "x-internal-secret: <key>" \
-H "x-tenant-id: ten_01hxyz" \
-H "x-user-id: usr_01hxyz" \
-H "x-platform-role: tenant-system-admin" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Smith",
"email": "[email protected]",
"phone": "+61400000000",
"create_stripe_customer": true
}'Get a customer
bash
GET /v1/slate/customers/:idUpdate a customer
bash
PATCH /v1/slate/customers/:idAll fields are optional. Send only what you want to change.
Note:When you attach a customer to a PaymentIntent (
POST /v1/slate/payments), Stripe stores their payment method for future use. This enables one-click checkout for returning customers.