Create a customer
Enrolls a customer in your loyalty program. The phone number is the customer identity within your company: any parseable format is accepted and canonicalized to E.164, and a duplicate phone is rejected with 409 API_CUSTOMERS.ALREADY_EXISTS — this is a deliberate create that never silently returns an existing customer. Optionally pass externalId to link the customer to your own system (unique per company). Newly created customers receive their enrollment email automatically.
Authentication
Bearer authentication of the form Bearer <token>, where token is your auth token.
Headers
Optional but recommended. When present, a retry with the same key and payload replays the stored response for 24h instead of re-executing; the same key with a different payload is rejected with 409 IDEMPOTENCY.PAYLOAD_MISMATCH.
Request
Contact email. Not an identity key — two customers may share an email.
Phone number in any parseable format; stored canonicalized to E.164. This is THE customer identity within your company — creating with an already-registered phone returns 409.
Your own identifier for this customer (CRM id, member number, …). Unique within your company; a conflicting value returns 409.
Birthday as an ISO date (YYYY-MM-DD).
Postal address, free-form.
Response
The customer as stored (phone canonicalized to E.164).
Perkss customer id (UUID). Use it for every customer-scoped call.
Your own identifier for this customer — unique per company when set; null when never supplied.
E.164. Phone is the customer identity within your company — inputs in any parseable format are canonicalized to this form.