Skip to main content
GET /v1/customers/find resolves a customer of your organization using a single search term. Use it to identify the customer who is checking out, and to load their cards and coupons before running a transaction.
The q term is matched in three ways:
1

Phone

Case-insensitive substring match on data.phone.
2

Email

Exact match on data.email.
3

Barcode

Exact match. Only attempted when q is purely numeric.
The first matching customer is returned, with loyalty balances (collectables), wallet cards (cards), and active coupons (coupons).

Request headers

string
required
Your active Bearer token: Bearer <accessToken>.

Query parameters

string
required
Search term: phone, email, or card barcode.

Response fields (200 OK)

string
Unique identifier of the customer. Use it on the coupon and transaction endpoints.
object
Customer profile fields (fullname, phone, email, …). The set of keys depends on the organization’s customer form configuration.
object
Loyalty balances, keyed by collectable key.
array
The customer’s wallet cards. A single entry for a barcode search; possibly several for email/phone.
array
The customer’s active coupons. Same shape as items in GET /v1/customers/:id/coupons.
object
Free-form metadata attached to the customer. Optional.
object
Customer consent flags. Optional.
string | null
Customer-level barcode, when one is assigned.
string | null
External identifier from your own system, if assigned.
number
Status code of the customer record.
string
ISO 8601 creation timestamp. Omitted when not available.
string
Identifier of the actor that created the customer record. Omitted when not available.
string
ISO 8601 timestamp of the most recent update. Omitted when not available.
Save the returned id (customer id) and the cards[].id (customerpass id). You will need both on the coupon and transaction endpoints.
Last modified on August 6, 2026