Skip to main content
Creates a bare customer — no card, barcode, or loyalty balances are created. To attach the customer to a campaign, use POST /v1/customers/register.
Auth: Authorization: Bearer <accessToken> — an organization-scoped token from Authentication. Missing or invalid token returns 401; an organization without an active subscription returns invalid_subscription (403).
Payload schema:

Body

Uniqueness checks ignore deleted customers. When email or phone hits an existing customer, look the customer up with GET /v1/customers/find and pass their id to POST /v1/customers/register as customer.id.

Example

Response

Returns 201 with the bare customer — cards is always empty and collectables is not present.
Notes:
  • Optional fields that have no value are omitted from the response — you will not receive null. Exception: opaqueId is null when not assigned.
  • data.phone is always returned in its normalized (E.164) form — the raw format you sent is not stored.
  • A bare customer cannot take part in transactions (they have no card). Register them into a campaign first — the card, barcode, and loyalty balances are created at that step.
Last modified on September 29, 2026