Find-or-create customer + enrolment (no transaction)
Same identifier resolution + create-on-miss as
/marketplace/accrue, but without posting a transaction.
Used by checkout-time signup flows (Shopify customers/create,
Toast guest-create) where the partner wants the customer on
the loyalty programme but doesn’t have a purchase to credit
yet. Idempotent on (customer, card) — repeating the call
returns the same enrolment at HTTP 200.
This endpoint changes live customer data and therefore rejects test credentials with 403.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Replay-safe request key. Repeated requests with the same value within 24h return the original response unchanged.
255Body
Customer identifier block. At least ONE field must be present. Resolution order is fixed: card_serial → external_ref → email → phone. First match wins.
Fields used when create_customer_if_missing is true and no existing customer matches the identifier.
Free-text marketing source ("shopify_checkout", "toast_guest_create"). Surfaced on the CUSTOMER_ENROLLED webhook payload.
60Related topics
Find-or-create customer + post transaction in one callAuthentication and scopesBuild a POS integrationCreate or upsert a customerTest mode
