L
LoyaltyDocs

OTP Validation

The single-use one-time code — on WhatsApp or SMS — that authorizes a redemption

With the one-time code switched on, no points leave a customer's balance without their say-so: a six-digit code, tied to that one redemption, used exactly once.

The Customer's Experience

  1. The till starts the redemption — the code arrives on the customer's WhatsApp or as an SMS within moments.
  2. The customer reads it out; the till enters it (validate the code). In the app, the Redeem dialog asks for the code between locking the points and confirming.
  3. The till confirms, and the points are spent.

What You Control — Settings → OTP

Setting

Your options

Default

Ask for a one-time code

On — every redemption, including ones started at the counter, needs the code / off — redemptions confirm directly

Off

How the code is sent

WhatsApp — carried by one of your approved templates / SMS — sent through a gateway your operator has approved

WhatsApp

Message that carries the code

Which approved WhatsApp template the code is sent in. Pick one, or every redemption is refused

—

Gateway that sends the code

Which SMS gateway sends it. Add gateway registers one with its API key, sender id, DLT template id and the message text with {otp} where the code goes — copied exactly as registered with your operator

—

Code valid for

Minutes before the member has to ask for a new one

10

If the Code Does Not Arrive

The till requests a fresh one (resend code) — Resend in the app. Older codes stop working the moment a new one is sent — only the latest counts, so a stale message in the customer's chat cannot confuse the counter. If the code could not be sent at all when the redemption started, the hold is released immediately and the till can simply start again.

Why This Is Safe

  • A code works once. Entering it a second time is rejected.
  • A code belongs to one redemption — it cannot approve a different purchase, customer, or centre.
  • One approval authorizes one deduction. Used, it is finished; if the redemption is cancelled or fails, the approval dies with it.
  • The amount was fixed when the redemption started — nothing entered at the counter can change it.
  • Everything lives inside the redemption's time window — approval does not extend the deadline.

For developers

Delivery channel, template, SMS provider and validity are written with [update OTP settings](https://prod.freecustomer.in/api/v2/docs#tag/loyalty/PATCH/api/v2/loyalty/configuration/otp); set the channel and its matching template or provider in the same request.

Was this page helpful?

Last updated on

On this page