Authentication & Conventions
JWT auth, phone format, idempotency keys, centre codes, and status-code semantics
Four ground rules shape every interaction with the platform. They exist to keep customer balances safe even when tills crash, networks drop, or buttons get double-tapped.
1. Only Your Systems Talk to Ours
All loyalty operations run from your backend systems to ours, over an authenticated channel your developers set up once. Nothing loyalty-related ever runs from a customer's phone or browser — so credentials and balances stay out of reach. The one deliberate exception is the public referral form, which carries its own static token rather than a user's login — see Public Referral Forms.
2. Phone Numbers Are Exact
A customer's phone number — including the country code — is their identity. The platform never reformats numbers, because tenants operate across countries with different conventions. Whatever format you register a customer with is the format you use everywhere after.
3. Repeats Are Always Harmless
Every operation that moves points carries a reference of yours — the bill number, the redemption number, the refund number, an operation code for a bonus or penalty. The platform uses it to recognize repeats:
- Sending the same redemption again returns the original answer — no second code is sent, nothing is recalculated.
- Confirming the same transaction again is acknowledged and ignored — points never move twice.
- Submitting the same refund, bonus, penalty or adjustment again is acknowledged and ignored — it never doubles.
What this means operationally
4. Say Which Centre — When Centres Are Separated
If your tenant ring-fences points to the centre that issued them, every call that touches a customer's points names the centre it comes from, using the code from your centre list. Without separation the field is simply omitted. See Centres & Store Separation.
For developers
Last updated on