> For the complete documentation index, see [llms.txt](https://docs.omnichat.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.omnichat.ai/en/features/marketing-automation/coupons-add-on-module/coupon-anti-theft-and-abuse-prevention-mechanism-otp.md).

# Coupon Anti-theft & Abuse Prevention Mechanism (OTP)

To prevent coupons from being stolen or abused, you can decide whether to enable the identity verification mechanism for each coupon.

## Feature Overview

### Why is identity verification needed?

In the past, customers could see the redemption code directly upon opening the coupon link. If the link was forwarded, screenshotted, or leaked, anyone who obtained the link could redeem it directly.\
​\
If you are distributing third-party serial numbers such as LINE Points or convenience store gift vouchers, the risk is even higher because you cannot verify the actual redeemer through your own POS system.

### What happens after enabling it?

Once "Identity Verification" is enabled, customers **will not** see the redemption code directly when opening the coupon. They must complete verification first:

1. The system sends an OTP verification code to the LINE or WhatsApp chat of "the customer who originally received this coupon."
2. The customer enters the OTP verification code, and the redemption code will only be displayed after successful verification.

Therefore, even if the link is forwarded to someone else, that person will not receive the OTP verification code and cannot see the redemption code.

### OTP verification codes are "NOT" sent via SMS

When mentioning OTP, people usually think of "SMS sent to a mobile number."&#x20;

The OTP verification code for this feature is not sent via SMS, but is delivered to the LINE/WhatsApp chat where the customer originally claimed the coupon.

{% hint style="info" %}
**Example**\
Customer Amy received a coupon in her WhatsApp chat with the brand "ABC Shop".\
When Amy opens the coupon to request an OTP verification code, the code will be sent to Amy's WhatsApp chat with "ABC Shop"—not to her mobile SMS, nor to chats with other brand accounts.
{% endhint %}

{% hint style="info" %}
We recommend reminding customers when sending coupons: "When viewing the coupon, please return to this chat to check your OTP verification code," to reduce instances where customers cannot find their code.
{% endhint %}

### Which coupons require verification?

After you enable "Identity Verification," a coupon must meet ALL of the following conditions simultaneously for verification to be required when opened by a customer:

| Condition                            | Description                                                                    |
| ------------------------------------ | ------------------------------------------------------------------------------ |
| ✅ Distributed to a specific customer | This coupon has been sent to a specific customer                               |
| ✅ Not yet redeemed                   | The coupon has not been used according to system records                       |
| ✅ Within the validity period         | Currently still within the redeemable period                                   |
| ✅ From designated channels           | The customer received the coupon via LINE, or your designated WhatsApp channel |

If any of the above conditions are not met, the original rule of "open to view directly" will apply.\
For example:

* Coupons received via Facebook Messenger or Instagram
* Coupons received via un-designated WhatsApp channels
* Redeemed or expired coupons

## Admin Dashboard Setup Steps

### Step 1: Enable Identity Verification

1. Go to the edit page of the coupon
2. Locate the "Identity Verification Settings" section
3. Turn on "Enable Identity Verification"

<figure><img src="https://2848678129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3u2I1osIy6mEi07X1z46%2Fuploads%2F0MLBnPejUfrJUmbPvo2b%2Fimage.png?alt=media&amp;token=c150a047-1731-42b2-8d75-8d88c1ee384e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Once enabled, LINE channels will automatically apply verification without additional configuration.

The language of the OTP verification code message will follow "Settings" > Language (Customer Side).
{% endhint %}

### Step 2: Designate WhatsApp channels (Required only if using WhatsApp)

If you also want WhatsApp customers to require verification, please add the WhatsApp channels to apply verification to:

1. Add WhatsApp channels in "Identity Verification Settings"
2. Select "OTP Code Message Language" for each channel
3. Multiple WhatsApp channels can be added, and each channel can be set with its own language

**Selectable languages for WhatsApp OTP verification codes:**&#x20;

* English
* Traditional Chinese
* Simplified Chinese
* French
* German

{% hint style="info" %}
**Language Reminder**

WhatsApp OTP verification code messages will strictly use the language selected here and will not switch according to the customer-side language setting.\
For example: Channel language is set to English, while customer-side language is set to Traditional Chinese → OTP verification code message is sent in English, while other system messages remain in Traditional Chinese.
{% endhint %}

<figure><img src="https://2848678129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3u2I1osIy6mEi07X1z46%2Fuploads%2FuzNHYrxBoeZ2jQpKweOg%2Fimage.png?alt=media&amp;token=2f7f2bb5-5883-46f6-b621-c7f2afcac7fa" alt=""><figcaption></figcaption></figure>

### Step 3: Publish or Save the Coupon

If the following prompt appears on the screen:\
"The verification code template for this language has not been created or approved. Please wait at least 2 hours after publishing the coupon before sending it."

This means this WhatsApp channel is using this language for the first time. The system will automatically create an OTP verification code message template upon publishing/saving and submit it to WhatsApp for review.

Please wait at least 2 hours after publishing before starting coupon distribution to ensure customers can receive OTP verification codes smoothly.\
Once a template is created for the same channel and language, it can be shared by other coupons without showing this prompt again.

<figure><img src="https://2848678129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3u2I1osIy6mEi07X1z46%2Fuploads%2F2MYXFy6t5PFFlbuLJ0zl%2Fimage.png?alt=media&amp;token=b5055377-e38a-49f6-b0de-3652aca9c294" alt=""><figcaption></figcaption></figure>

#### About Automatically Created WhatsApp Templates

* Templates will appear on the "WhatsApp Message Templates" page in the admin dashboard, categorized under "System Notifications"
* The message content received by customers will look roughly like this (taking English as an example):\
  "Your reference number is 123456, which corresponds to your recent asset query."\
  The "reference number" here is the OTP verification code.
* ⚠️ Do not edit, disable, or delete this template; otherwise, WhatsApp OTP verification codes cannot be sent normally, preventing customers from viewing their coupons.

#### Why doesn't the text directly say "Verification Code"?

WhatsApp (Meta) originally provided **"Authentication Templates"** specifically for sending verification codes. However, per Meta's current restrictions, such templates **cannot be sent to WhatsApp users identified by BSUID** (BSUID is a unique ID used by WhatsApp to identify users who "have not provided a mobile phone number," such as customers using WhatsApp usernames).\
To ensure all WhatsApp customers can receive OTP verification codes, the system sends them using **"Utility Templates"** instead. The current copy has been tested and confirmed to pass Meta's review, which is why the wording uses "reference number" instead of explicitly saying "verification code."

{% hint style="danger" %}
Do not modify the copy of this template on the "WhatsApp Message Templates" page\
Modifications require resubmission for review. If the new copy fails Meta's review or is deemed non-compliant, OTP verification codes may fail to send, leaving customers unable to view their coupons.
{% endhint %}

#### Billing Information

OTP verification codes are sent as messages to the customer's LINE or WhatsApp chat and will incur message fees according to each platform's pricing structure.

## Customer Experience Flow

### Normal Flow

1. **Open Coupon**\
   Customers can open the coupon from the coupon message or the coupon wallet in their membership card. At this point, coupon information is visible, but the redemption code, barcode, copy serial code button, and redeem button are hidden.
2. **Click to Send OTP Verification Code**\
   The customer clicks the button on the coupon page to request an OTP verification code.
3. **Receive OTP Verification Code**\
   The OTP verification code is sent to the LINE/WhatsApp chat where the customer originally received the coupon (not SMS). For example, if claimed in "ABC Shop" WhatsApp, the code will be received in the WhatsApp chat with "ABC Shop".
4. **Enter OTP Verification Code**\
   The customer returns to the coupon page and enters the OTP verification code.
5. **View Redemption Code**\
   Upon successful verification, the full coupon content and redemption code become visible.

<div><figure><img src="https://2848678129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3u2I1osIy6mEi07X1z46%2Fuploads%2F3kQhBnDOXBJrXNjCjPS7%2Fimage.png?alt=media&amp;token=694fc31c-c440-4f1c-80e3-3b5f982e9df3" alt="" width="188"><figcaption><p>Click to Send OTP Verification Code</p></figcaption></figure> <figure><img src="https://2848678129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3u2I1osIy6mEi07X1z46%2Fuploads%2FnkGT9rFsivdIq1UsDI7j%2Fimage.png?alt=media&amp;token=046a2f9e-c129-4609-b6d6-e34c780e6085" alt="" width="188"><figcaption><p>Enter OTP Verification Code</p></figcaption></figure> <figure><img src="https://2848678129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3u2I1osIy6mEi07X1z46%2Fuploads%2Fxtf1iiLFCoykIvGDX2Wp%2Fimage.png?alt=media&amp;token=2f01f3c3-61b1-4064-9317-5c55c9ceaa52" alt="" width="188"><figcaption><p>View Redemption Code</p></figcaption></figure></div>

### If the link is forwarded to someone else

When someone else opens the link, they will also see the screen requiring verification. However, **the OTP verification code will only be sent to the original customer who received the coupon**, making it impossible for others to obtain the redemption code.\
Even if a link has been verified previously, forwarding it will still require the new recipient to re-verify.

### Combined with "Countdown" Coupons

If a coupon is set to "start countdown upon clicking confirm":&#x20;

* Countdown has not started: Complete verification first → View coupon content → Click confirm → Start countdown
* Countdown has ended: Complete verification first → Display countdown ended

## OTP Verification Code Usage Rules

| term              | Rules                                                                                                |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| Validity Period   | Each OTP verification code is valid for **10 minutes**                                               |
| Re-requesting     | Upon requesting a new code, the previous OTP verification code expires immediately                   |
| Usage Count       | Each OTP verification code expires immediately after one successful verification                     |
| Incorrect Entries | Each OTP verification code allows a maximum of 5 attempts; exceeding this requires re-requesting     |
| Resend Interval   | Must wait 60 seconds after each request before requesting again (a countdown will display on screen) |
| Hourly Limit      | Maximum of 20 requests per hour for the same coupon by the same customer                             |
| Every Open        | Re-opening the coupon each time requires re-verification                                             |

{% hint style="info" %}
The "60-second interval" and "hourly limit" are calculated per coupon per customer, **accumulated across all devices used.**
{% endhint %}

### Multi-device Usage

1. Customers can complete verification on any device simply by entering the correct OTP verification code
2. Verification status across devices is independent: successful verification on Phone A will not make Phone B verified; verifying on Phone B will not log Phone A out

## Impact on Data Reports: Definition of "Opened"

After enabling identity verification, the definition of "Opened" changes:

| Coupon Type                        | When Is It Counted as Opened?                                                     |
| ---------------------------------- | --------------------------------------------------------------------------------- |
| Coupons requiring verification     | Counted as opened only when the customer successfully verifies for the first time |
| Coupons not requiring verification | Same as before, counted as opened as soon as the coupon is opened                 |

The "Opened Time" in claim records reflects the time of the customer's first successful verification.

{% hint style="info" %}
Because only completed verifications count as opened, post-activation open rates may appear slightly lower than before, representing data that more accurately reflects views by the "actual owner."
{% endhint %}

## Frequently Asked Questions

#### Q1: What should I do if a customer says they didn't receive the OTP verification code?

**Please verify first:**

* Is the customer checking SMS? OTP codes are not sent via SMS; please guide the customer back to the LINE/WhatsApp chat where they received the coupon
* Does the customer still follow / unblock your LINE Official Account or WhatsApp
* For WhatsApp, whether the template for that channel and language has been approved (please wait at least 2 hours after new settings)
* Whether the system notification template in "WhatsApp Message Templates" was modified or deleted

If still unobtainable, you can check the customer's serial number from the coupon claim history and provide it directly to the customer.

#### Q2: Why does the customer's screen continuously display a countdown, preventing them from requesting the OTP code again?

This is a rate limit to prevent abuse. After each request, a 60-second wait is required; if requested 20 times within an hour, they must wait until 1 hour has passed from the earliest request before requesting again. The button will automatically recover after the countdown.

#### Q3: Will coupons on Messenger or Instagram require verification?

Currently no. Identity Verification only applies to LINE and your designated WhatsApp channels. Other platforms remain open-to-view.

#### Q4: Why is Japanese not an option for WhatsApp?

WhatsApp OTP verification codes currently do not support Japanese; you may select another language for now.\
LINE OTP verification codes will follow the customer-side language setting.

#### Q5: Can the system prevent customers from taking screenshots of redemption codes after successful verification to share with others?

The identity verification mechanism secures the phase "prior to viewing the redemption code." Once a customer verifies successfully and gets the code, taking screenshots or copying it to share with others is beyond system control.

#### Q6: Can verification be enabled for only certain coupons?

Yes, but once enabled, all coupons within the same coupon set will require identity verification.\
It is recommended to prioritize enabling it for high-value or third-party serial codes (such as points and gift vouchers).

## Precautions

* Identity verification secures the stage of viewing redemption codes; usage or forwarding behavior after successful verification is not covered under Omnichat's protection
* Coupons in draft status are not protected by this feature&#x20;
* OTP verification code messages incur platform messaging costs&#x20;
* Do not modify or delete automatically created WhatsApp OTP verification code templates&#x20;
* If a large-scale failure to send OTP verification codes occurs, you may temporarily disable identity verification for that coupon and contact Omnichat customer support for assistance
