Industries
Restaurants & Food
Take restaurant orders, table bookings and payments in one WhatsApp chat. Auto-reply to common questions and cut support costs with ChatMitra.
Real Estate
Use WhatsApp automation to capture property leads, qualify them automatically, and follow up fast. See how real estate agents close more with ChatMitra.
Travel & Tourism
Use the WhatsApp Business API to capture travel leads, send itineraries, confirm bookings, and keep travellers updated. See how agencies grow with ChatMitra.
Banking & Finance
Run secure KYC, send account alerts and payment notifications on WhatsApp. Cut support load and stay within Meta's rules with ChatMitra.
Beauty & Cosmetics
Sell your catalog, recover carts and win repeat orders on WhatsApp. Auto-reply to product questions and send launches to opted-in customers with ChatMitra.
Education
Answer admission enquiries, fee and timetable questions, and keep parents updated — all on WhatsApp. Cut admin load and costs with ChatMitra.
EduTech
Capture course leads, qualify them and onboard learners on WhatsApp. Automate replies and cut lead-qualification cost with ChatMitra's no-code chatbot.
Events & Webinars
Handle event registrations, reminders and RSVPs in one WhatsApp chat. Cut no-shows, automate FAQs and keep attendees updated with ChatMitra.
Freelancers & Consultants
Capture leads, send proposals and chase invoices in one chat. WhatsApp automation for freelancers and consultants with ChatMitra — from ₹0.20 a chat.
Health & Wellness
Book appointments, send reminders and answer client questions in one WhatsApp chat. Auto-reply to routine queries and cut support costs with ChatMitra.
Home Decor
Share your home decor catalog, take orders and send delivery updates on WhatsApp. Automate FAQs and cut support costs with ChatMitra.
IT Services
Use the WhatsApp Business API to qualify leads, run support over chat, and wire WhatsApp into your stack with webhooks. How IT companies scale with ChatMitra.
Marketing Agencies
Use WhatsApp automation to capture leads, run campaigns and manage multiple client brands from one account. How agencies scale on WhatsApp with ChatMitra.
Offline & Retail
Turn shop footfall into a WhatsApp list. Share catalogs, add a QR-to-chat at the counter and bring buyers back — with ChatMitra from ₹0.20 per chat.
Spas & Salons
Use the WhatsApp Business API to take spa and salon bookings, cut no-shows with automated reminders, and rebook regulars. How salons grow with ChatMitra.
Automotive
Use the WhatsApp Business API for automotive dealerships to qualify buyers, book test drives and send service reminders — automated, on one chat, with ChatMitra.
All Industries
Browse every industry guide
Setup & API Guides

WhatsApp Authentication Templates: OTP Examples and Setup

What WhatsApp authentication templates are, what Meta lets you change, 10 OTP examples by use case, button types, setup, sending, pricing and common fixes.

Nirav Chauhan
Written byNirav Chauhan
Read time 17 min
Posted on
WhatsApp Authentication Templates: OTP Examples and Setup
Summarise this post with:

Short on time? Read this first

  • A WhatsApp authentication template delivers a one-time code. Its message text is fixed by Meta: "is your verification code." You only choose an optional security line, an optional expiry note (1 to 90 minutes), the button type and its label, and how long WhatsApp keeps trying to deliver.
  • The "examples" that matter are configurations: which button, how long the code lives, whether to show the security line, and the time-to-live. The context the customer needs (which app, which action) goes on your own screen, not in the message.
  • Copy code works on every device. One-tap autofill and zero-tap work only on Android and need your app's package name, signing hash and a handshake. On iOS 26 and later, the keyboard can now autofill numeric WhatsApp codes from the notification.
  • In India Meta charges ₹0.1150 per delivered authentication message (rate card checked 1 October 2026). There is no free in-window exemption for authentication, and undelivered messages that expire are dropped, not billed.
On this page 0

    A WhatsApp authentication template is the message format Meta requires for sending one-time passcodes (OTPs) on WhatsApp. Its text is fixed: “482913 is your verification code.” You can add a security line and an expiry note, and you choose how the code reaches the user: a copy code button, a one-tap autofill button, or zero-tap delivery into your Android app. That is almost everything you control. So the useful “examples” are configurations for each use case, not wording.

    That last point surprises people, because most OTP template “examples” online show custom sentences such as “Hi Priya, use code 482913 to reset your password for ShopName.” Meta won’t approve that as an authentication template. This guide shows what you can actually set, ten configurations for common OTP jobs, how to create and send them, what they cost, and how to fix the usual problems.

    Key takeaways

    • The body text is Meta's preset. You choose the security line, the expiry note (1 to 90 minutes), the button and its label, and the delivery time-to-live (30 seconds to 15 minutes).
    • Context belongs on your own screen ("We sent a code to WhatsApp to confirm your new device"), not in the message.
    • Copy code works everywhere. One-tap and zero-tap are Android-only and need an app integration.
    • In India each delivered authentication message costs ₹0.1150 from Meta, inside a customer service window too.

    Facts in this guide were checked against Meta’s developer documentation and rate cards on 1 October 2026. Meta changes authentication features several times a year, so check its pages before you build.

    What is a WhatsApp authentication template?

    It’s one of WhatsApp’s three template categories, next to marketing and utility, and the only one allowed to carry a one-time passcode. Meta’s categorisation rules say so directly: “Only authentication templates can be used to send a one-time passcode for identity verification. Marketing and utility templates cannot be used for this purpose.”

    Meta lists three situations where you’d send one:

    • New account creation: confirming a phone number at sign-up.
    • Account integrity, access or recovery: login, two-step verification, password reset, a new device.
    • New or existing orders or transactions: confirming a checkout, a payment, a high-value change, or a hand-over.

    If you need the category basics first, our explainer on marketing, utility and authentication messages covers them, and the authentication messages section of ChatMitra Learn documents each delivery type. This guide is the practical side: which settings to pick for which job, and how to run it in production.

    What you can and can’t change

    Here is the whole template, part by part, as Meta’s authentication template documentation describes it.

    PartWhat the customer seesWhat you control
    Body"<code> is your verification code."Nothing in the wording. You supply the code at send time (up to 15 characters)
    Security line (optional)"For your security, do not share this code."On or off
    Expiry note (optional footer)"This code expires in N minutes."On or off, and N from 1 to 90
    ButtonCopy code, or Autofill plus a copy code fallback, or nothing visible with zero-tapThe type, and the label (up to 25 characters; WhatsApp localises the default)
    Delivery time-to-liveNothing; it's invisible30 seconds to 15 minutes (default 10 minutes)
    LanguageThe preset text in that languageWhich languages you create the template in
    Header, media, links, emojisNoneNot allowed

    Two consequences follow.

    Your brand appears through the sender, not the text. The customer sees your WhatsApp business display name and profile picture at the top of the chat, so a verified, recognisable business profile does the branding work that a custom sentence would do in an SMS.

    The context moves to your screen. The message can’t say “to reset your password” or “to confirm your ₹4,999 order”. Your app or website, where the user just asked for the code, should say it: “We’ve sent a 6-digit code to your WhatsApp to confirm this payment.” That screen copy is fully yours, and it’s where most of the “examples” in this guide do their work.

    Ten authentication template examples by use case

    Every example below produces the same visible sentence. What changes is the configuration and the words on your own screen. Meta allows codes of up to 15 characters, but stick to 4 to 8 digits for anything a person might type, and numeric codes are the only kind iPhone autofill can detect.

    #Use caseButtonExpiry noteSecurity lineTime-to-live
    1Sign-up phone verificationOne-tap on Android app, copy code on web10 minOn10 min
    2Passwordless loginOne-tap or zero-tap (app); copy code (web)5 minOn2–5 min
    3Two-step verification on a new deviceCopy code5 minOn2–5 min
    4Password resetCopy code10 minOn5–10 min
    5Account recoveryCopy code10–15 minOn10 min
    6Changing the phone number or emailCopy code10 minOn10 min
    7Checkout or cash-on-delivery order confirmationCopy code (one-tap in your app)10 minOn5–10 min
    8Payment, payout or new-payee approvalCopy code3–5 minOn1–3 min
    9Delivery hand-over codeCopy codeOff, or a long windowOff15 min
    10Confirming a WhatsApp number before switching OTPs to WhatsAppCopy code10 minOn10 min

    These are starting points, not Meta rules. Your fraud team and your own data on how long people take to enter codes should set the final numbers.

    1. Sign-up phone verification

    What the customer sees: “482913 is your verification code. For your security, do not share this code. This code expires in 10 minutes.” with a button.

    Your screen: “Enter the code we sent to WhatsApp on +91 98xxx xx210.” Show the number, so a typo is caught before the user waits for a message that went elsewhere.

    Why these settings: people signing up are often switching apps for the first time, so give them 10 minutes. If you have an Android app, one-tap saves the copy-and-paste step at the moment people are most likely to drop off. Always offer a second channel, such as SMS or email, for people who don’t use WhatsApp on that number.

    2. Passwordless login

    Your screen: “We sent a login code to your WhatsApp.” Add a visible “Send by SMS instead” link that appears after 30 seconds.

    Why these settings: login is frequent, so friction matters most here. Zero-tap gives the smoothest experience in an Android app, because the code reaches the app without the user doing anything. It also has the most setup and the most responsibility; more on that below. Keep the code short-lived, because a login code that works for an hour is a gift to anyone who sees the phone.

    3. Two-step verification on a new device

    Your screen: “Signing in on a new device? Confirm it’s you with the code sent to your WhatsApp.” Name the device or browser if you can.

    Why these settings: this is a security check, so copy code is enough and the window is short. If the user is at a computer, remember that authentication messages appear only on their primary WhatsApp device, normally the phone, and are masked on WhatsApp Web and other linked devices. Tell them to check their phone.

    4. Password reset

    Your screen: “Enter the code we sent to WhatsApp to set a new password. Didn’t ask for this? You can ignore the message; your password hasn’t changed.”

    Why these settings: a reset is a common takeover route, so the security line stays on. Ten minutes gives the user time to find the message without leaving a long-lived code around. Invalidate the code the moment the new password is saved.

    5. Account recovery

    Your screen: explain what happens next (“After this, we’ll ask you to confirm your email too”) so the user knows the code alone won’t unlock everything.

    Why these settings: recovery often happens when someone has lost access to something else, so allow a bit more time. Meta’s authentication best practices describe using its identity change check to “bind” a WhatsApp account to your user’s account, so you can tell when a number has changed hands. Ask your developers to read it before you rely on WhatsApp for recovery.

    6. Changing the phone number or email

    Your screen: “To change your phone number, enter the code sent to your current WhatsApp number.” Send the code to the old contact point, not only the new one.

    Why these settings: contact changes are how attackers lock owners out, so verify the existing channel first and the new one second.

    7. Checkout or cash-on-delivery order confirmation

    Your screen: “Confirm your order of ₹1,499 with the code we sent to WhatsApp.” The amount appears on your page, never in the message.

    Why these settings: Meta lists “new or existing orders/transactions” as a valid authentication use. If you sell on cash on delivery, a code at checkout confirms that the buyer controls the phone number before you ship. If you only want the customer to tap “Yes, confirm”, that’s a utility message with buttons, not an OTP. Our guide to utility templates covers that route, and it costs the same in India.

    8. Payment, payout or new-payee approval

    Your screen: show the amount, the recipient and the action, then ask for the code.

    Why these settings: money movement deserves the shortest window you can live with. A 1 to 3 minute time-to-live means a message stuck on an offline phone is dropped instead of arriving late and confusing someone. If you’re a regulated payments business, your regulator’s authentication rules come first; WhatsApp is only the delivery channel.

    9. Delivery hand-over code

    Your screen and your courier’s app: “Share this code with the delivery partner only when you have your parcel.”

    Why these settings: here the customer is supposed to share the code, with the courier at the door, so the preset “do not share this code” line would contradict your instructions. Turn it off. The parcel may arrive hours later, so either leave the expiry note off or check that your own system accepts the code for the delivery window. The 15-minute maximum time-to-live is about delivery of the message, not the code’s validity; send it when the parcel is out for delivery.

    10. Confirming a WhatsApp number before switching OTPs to WhatsApp

    Your screen: “Want your codes on WhatsApp instead of SMS? Enter the code we just sent to confirm.”

    Why these settings: Meta’s best practices ask businesses to confirm the user’s WhatsApp number and to let users choose their channel. Doing it as a one-time switch, with SMS or email kept as a fallback, means every later login code lands where the user expects it.

    Choosing the button: copy code, one-tap or zero-tap

    The button decides how much work the user does and how much work your developers do.

    Copy codeOne-tap autofillZero-tap
    What the user doesTaps "Copy code", then pastesTaps "Autofill"; the code fills your appNothing; your app receives the code
    PlatformsAll, including iPhoneAndroid only; others see copy codeAndroid only; falls back to one-tap, then copy code
    App setupNonePackage name, 11-character signing hash, handshakeThe same, plus accepting Meta's zero-tap terms
    Best forWebsites, iPhone-heavy audiences, first launchAndroid apps with frequent loginsAndroid apps where speed matters and you can handle the security

    The handshake. For one-tap and zero-tap, your Android app has to tell WhatsApp that a code is about to arrive, just before you request it from your server. If that handshake is missing, or the package name or signing hash doesn’t match, WhatsApp falls back to a copy code button. Meta lists up to five supported apps per template, which helps when you have separate apps, such as a customer app and a partner app.

    Check older Android apps. Meta deprecated the older PendingIntent handshake method on 15 October 2026 and recommends its OTP Android SDK instead. If your app’s one-tap flow was built before then, ask your developers whether it was migrated.

    Zero-tap needs restraint. In its zero-tap best practices, Meta tells businesses to get opt-in, give users a choice of channels, and not make WhatsApp the default code delivery method. Since the code goes straight into the app, the user never sees the message unless they open WhatsApp, where they’ll see only the preset sentence.

    iPhone users got an upgrade in 2026. From 15 June 2026 WhatsApp enabled iOS 26’s keyboard suggestions for authentication templates by default. When a numeric code of 3 to 8 digits arrives in a WhatsApp notification, iOS offers it above the keyboard, much like an SMS code. It doesn’t trigger when WhatsApp itself is open, it ignores alphanumeric codes, and the opt-out is a toggle in WhatsApp Manager with no API equivalent. The copy code button stays as the fallback.

    The one-tap and zero-tap pages in ChatMitra Learn explain each flow in more detail: one-tap autofill, zero-tap and copy code.

    How to create a WhatsApp authentication template

    You can create one in three places. They produce the same template.

    In WhatsApp Manager. Meta’s categorisation guide points businesses to the authentication templates in its Template Library. You pick the authentication format, the button type, the security and expiry options, and the time-to-live from preset values.

    Through the API. A single POST to your WhatsApp Business Account’s message_templates endpoint creates it. This is Meta’s own copy code example, trimmed:

    {
      "name": "authentication_code_copy_code_button",
      "language": "en_US",
      "category": "authentication",
      "message_send_ttl_seconds": 60,
      "components": [
        { "type": "body", "add_security_recommendation": true },
        { "type": "footer", "code_expiration_minutes": 5 },
        { "type": "buttons", "buttons": [
          { "type": "otp", "otp_type": "copy_code", "text": "Copy Code" }
        ] }
      ]
    }

    There is no text for the body, because there’s nothing to write. To create the same template in several languages in one call, Meta offers an upsert_message_templates endpoint, and a message_template_previews endpoint shows the exact preset wording per language before you commit.

    In your WhatsApp platform. Most providers, ChatMitra included, wrap this in a form. The steps below are ChatMitra’s.

    Creating one in ChatMitra

    1. Go to Templates → Create template and set the category to Authentication. The type locks to text, and the header, body and button editors disappear, because Meta presets them.
    2. Optionally set Expiration warning, from 1 to 90 minutes. This adds the expiry note.
    3. Tick Add security disclaimer to add the “do not share this code” line.
    4. Enter a sample value such as 637482. It’s used only for the preview.
    5. Pick the language and submit. ChatMitra adds the copy code button for you.

    Two limits to know before you start. ChatMitra currently creates copy code templates only, with WhatsApp’s default button label, so one-tap and zero-tap templates have to be created in WhatsApp Manager or through Meta’s API. And it doesn’t expose a time-to-live setting, so Meta’s 10-minute default applies.

    Approval is usually quick, but Meta’s general review guidance allows up to 24 hours, so create authentication templates before launch day. Meta’s rule that rejects templates duplicating an existing template’s content doesn’t apply to authentication, which is why everyone’s template can say exactly the same thing.

    How to send an authentication template

    The send request has one quirk that catches developers: the code goes in twice, once as the body parameter and once as the button parameter. The button component is sent with sub_type url, even for copy code.

    {
      "messaging_product": "whatsapp",
      "to": "919812345210",
      "type": "template",
      "template": {
        "name": "login_code",
        "language": { "code": "en_US" },
        "components": [
          { "type": "body", "parameters": [ { "type": "text", "text": "482913" } ] },
          { "type": "button", "sub_type": "url", "index": "0",
            "parameters": [ { "type": "text", "text": "482913" } ] }
        ]
      }
    }

    The same shape works through ChatMitra’s developer API, available on the Pro and Enterprise plans according to our pricing page. When the request is a single approved authentication template, ChatMitra sends it straight away instead of queuing it, skips the per-number rate limit that applies to bulk sends, and ignores an identical retry so a nervous client can’t send the same code twice. Your API key and webhook settings are covered in API keys and webhook URL, and code walkthroughs are in our Python and PHP guides.

    Where not to send OTPs from. An OTP belongs to one person at one moment, so it should come from your backend when the user asks for it. Don’t put an authentication template in a broadcast or campaign, where every recipient would get the same code. ChatMitra’s automations reject authentication templates for the same reason.

    What your backend must do, because WhatsApp won’t:

    • Generate the code with a secure random generator and store only a hash of it.
    • Expire it on your side at the time the expiry note promises.
    • Accept it once, then invalidate it.
    • Limit attempts (for example, five wrong entries locks the code) and limit resends (for example, one every 30 seconds and a few per hour per number).
    • Log delivery statuses from your webhook, so support can tell “never delivered” from “delivered but not entered”.

    What WhatsApp authentication messages cost

    Since 1 July 2025 Meta has charged per delivered template message. These were the authentication rates on Meta’s rate card when we checked on 1 October 2026:

    Recipient's countryAuthentication rateAuthentication-international rate
    India₹0.1150₹2.4971
    North America$0.0034None
    United Kingdom$0.0220None
    Brazil$0.0068None
    Indonesia$0.0250$0.136

    Four rules decide what you actually pay.

    You pay only for delivered messages. Meta’s pricing page says you’re charged when a template message is delivered. A message that can’t be delivered before its time-to-live runs out is dropped, so a short time-to-live also stops you paying for codes nobody can use.

    There is no in-window discount. Meta’s only exemption for templates sent inside a customer service window applied to utility, and it ended on 1 October 2026. Authentication was never exempt. The exception is a free entry point window, opened when someone messages you from a click-to-WhatsApp ad or a Facebook Page call-to-action, which can last up to 7 days and makes all messages free.

    Authentication-international applies to some foreign senders. In India and several other markets, a business based in another country pays a higher rate once Meta finds it eligible, which happens after it sends more than 750,000 messages outside customer service windows to users in that market over a moving 30-day period. Meta gives 30 days’ notice, and eligibility is permanent. An Indian business sending OTPs to Indian numbers pays the normal ₹0.1150.

    Volume tiers start at 750,001. For India, Meta’s authentication rate drops to ₹0.1081 from 750,001 messages a month and keeps stepping down to ₹0.0805 above 100 million. Tiers are counted across your business portfolio, per market and category, and reset monthly.

    A worked example: 20,000 codes a month in India

    Say your app sends 20,000 authentication messages a month to Indian numbers, all delivered.

    • Meta: 20,000 × ₹0.1150 = ₹2,300.
    • ChatMitra Starter or Pro: add a ₹0.20 platform fee whenever a send opens a new 24-hour conversation with that customer. OTP recipients rarely have an open conversation, so assume most sends carry it: up to 20,000 × ₹0.20 = ₹4,000, for a total of up to ₹6,300.
    • ChatMitra Enterprise: no per-conversation fee, ₹2,499 a month for the plan: ₹2,300 + ₹2,499 = ₹4,799.

    At OTP prices, a platform fee can be larger than Meta’s own charge, on ChatMitra and elsewhere. ChatMitra’s ₹0.20 is charged once per customer per 24-hour conversation, not per message. Once your fee-bearing conversations pass about 12,500 a month, Enterprise’s flat plan costs less than the ₹0.20 fee on Starter or Pro. Whichever provider you use, ask for the total per delivered OTP, not just the plan price. Our cost per message guide and the pricing calculator cover the other categories.

    The cheapest saving is in your own product. Every “Resend code” tap is another paid message, so a 30-second resend timer and a clear “check your phone, not WhatsApp Web” hint pay for themselves.

    WhatsApp OTP vs SMS OTP

    Most of the “OTP message examples” you’ll find are written for SMS, where you write the whole sentence yourself. The two channels work differently:

    WhatsApp authentication templateSMS OTP
    Message textMeta's preset sentence, plus optional security and expiry linesYour own wording, within your country's rules
    Who approves itMetaIn India, SMS headers and templates are registered on a telecom operator's DLT platform
    ReachPeople who use WhatsApp on that numberAny phone with signal
    AutofillOne-tap and zero-tap on Android; iOS 26 keyboard suggestionsNative on Android and iOS
    Delivery statusSent, delivered and read webhooksDelivery reports, depending on the route
    Linked devicesMasked; only the primary phone shows the codeOnly the phone

    The practical answer is usually both: WhatsApp first for people who chose it, SMS as the fallback when WhatsApp isn’t delivered within your time-to-live. Our WhatsApp vs SMS comparison covers costs, DLT rules and the fallback pattern in detail.

    Security details that change how you design the flow

    Meta built several protections into authentication messages. They’re good for users, and each has a support consequence.

    • Primary device only. The code shows on the user’s main phone. On WhatsApp Web and other linked devices the message is masked with a prompt to check the phone. You can’t turn this off, and Meta notes it applies on the Cloud API. Expect “I see the message but not the code” tickets from desktop users.
    • No forwarding. WhatsApp disables forwarding of authentication messages, to make phishing harder.
    • “I didn’t request a code.” Meta is rolling out, in beta, a button that lets a user report an unrequested code. When tapped, your webhook receives a button event with the payload DID_NOT_REQUEST_CODE. Treat it as a fraud signal: stop sending to that number for a while and flag the account.
    • Don’t send what wasn’t asked for. An authentication template should only follow a request the user made seconds ago. Codes that arrive unprompted look like an attack, and they get reported.
    • Watch for fake sign-up traffic. Bots that hit your “send code” endpoint with lists of numbers run up a bill and damage your number’s reputation. Rate-limit per number, per IP address and per account, and add a challenge after unusual bursts.

    Why authentication templates get rejected, and other fixes

    “My OTP template was rejected.” The usual cause is trying to write your own body, add a link, add an emoji or attach media. Start again from the authentication format, which has no body text to write. If your template was submitted as utility or marketing because it carried a code, Meta will reject it on the first day of the following month. Rebuild it as authentication.

    “The message arrived but the user can’t see the code.” They’re probably looking at WhatsApp Web or a desktop app. Tell them to open WhatsApp on their phone.

    “One-tap shows a copy code button instead.” Check, in this order: the user is on Android, your app sent the handshake before you requested the code, the package name matches, and the signing hash is the release key’s hash, not the debug key’s. Meta’s error signals list includes incorrect_signature_hash and missing_handshake_or_disorder to help you find which.

    “The code arrives too late.” Lower the time-to-live so stale codes are dropped, not delivered late, and send an SMS fallback when no delivered status arrives in time. Check your own queue too; an OTP should never wait behind a bulk campaign.

    “The send failed with a parameter error.” Make sure the code is in both the body and the button parameter, that it’s 15 characters or fewer, and that the language code matches an approved language of the template. For the full list of error codes and their fixes, see our guide to WhatsApp Business API errors.

    “Our OTP bill jumped.” Look for repeated resends from the same numbers and for bursts of new numbers. Both usually mean a bot, a broken resend timer, or users unable to find the code on a linked device.

    Mistakes to avoid

    1. Copying “OTP template examples” with custom sentences. They won’t be approved as authentication. Put the context on your screen.
    2. A code that outlives its message. If the expiry note says 5 minutes, your server must reject the code at 5 minutes.
    3. A time-to-live longer than the code’s life. Meta recommends the time-to-live be equal to or shorter than the code expiry, so a code never arrives already dead.
    4. Only WhatsApp, no fallback. Some users don’t have WhatsApp on that number or have no data connection. Keep SMS or email.
    5. Sending OTPs from a broadcast tool. Codes must be generated per request.
    6. Leaving the “do not share” line on a delivery code. It contradicts your own instructions.
    7. Forgetting iPhone users. One-tap and zero-tap are Android features. Test the copy code path, and the iOS keyboard suggestion, on a real iPhone.

    Where ChatMitra fits, and where it doesn’t

    ChatMitra is a WhatsApp Business API platform, and we send our own sign-up codes as a WhatsApp authentication template. For businesses, it covers the common OTP setup: copy code authentication templates built in the dashboard, and fast, deduplicated sending from your own backend through the developer API on Pro and Enterprise. It’s a good fit if you want WhatsApp OTPs next to your support inbox, campaigns and order updates on the same number, with Meta’s rates passed through.

    It isn’t the right tool, today, if you need one-tap or zero-tap buttons built in the dashboard, a custom time-to-live, or OTPs triggered from no-code automations. For those, create the template in WhatsApp Manager or work with Meta’s API directly. You can compare plans on the pricing page and see how templates work in ChatMitra on the WhatsApp templates feature page.

    Summary

    A WhatsApp authentication template is a fixed sentence, a few switches and a button. Choose the button by platform (copy code everywhere, one-tap or zero-tap for Android apps), set the expiry and time-to-live by risk, turn the security line off only when the user must share the code, and put all the context on your own screen. Then build the parts WhatsApp doesn’t do for you: code expiry, one-time use, attempt and resend limits, and an SMS fallback. In India each delivered code costs ₹0.1150 from Meta, so the bigger savings come from fewer resends and from checking your provider’s fee per OTP.

    Sources: Meta for Developers: authentication templates, copy code, one-tap autofill, zero-tap, keyboard suggestions, authentication best practices, error signals, time-to-live, template categorisation, pricing and authentication-international rates, all read on 1 October 2026. ChatMitra product details were checked in the product on the same date.

    Clear answers

    Frequently Asked Questions

    It's the only WhatsApp template category Meta allows for sending one-time passcodes. The message text is preset by Meta ("is your verification code."), with an optional security line and an optional expiry note, plus a copy code or one-tap autofill button, or zero-tap delivery on Android. Businesses use it to verify identity at sign-up, login, account recovery and order or transaction checks.

    Hardly at all. The body is fixed, non-customisable preset text. You can choose whether to add "For your security, do not share this code.", whether to add "This code expires in N minutes." (N from 1 to 90), and the button label (up to 25 characters). URLs, media and emojis aren't allowed. Put any context, such as which action the code is for, on your own app or website screen.

    Meta charges ₹0.1150 per delivered authentication message to an Indian number on its rate card checked on 1 October 2026, with volume discounts above 750,000 authentication messages a month. Businesses based outside India that Meta has found eligible pay the authentication-international rate of ₹2.4971 instead. Your WhatsApp provider may add its own fee.

    No. Meta's only in-window exemption was for utility templates, and that ended on 1 October 2026. Authentication templates are charged whenever they're delivered, except inside a free entry point window, which opens when a customer messages you from a click-to-WhatsApp ad or Facebook Page button and can last up to 7 days.

    Copy code shows a button that copies the code so the user can paste it; it works on every device. One-tap autofill shows a button that fills the code straight into your Android app. Zero-tap sends the code to your Android app without any tap, so the user never leaves your login screen. One-tap and zero-tap need your app's package name, signing hash and a handshake, and fall back to copy code when they can't run.

    One-tap and zero-tap are Android-only, so iPhone users get the copy code button. Since 15 June 2026, though, WhatsApp supports iOS 26's keyboard suggestions: when a numeric code of 3 to 8 digits arrives in a notification, iOS can offer it above the keyboard. It doesn't work while WhatsApp is open in the foreground, and you can turn it off in WhatsApp Manager.

    That's your decision, enforced by your own system. You can show "This code expires in N minutes" with N from 1 to 90. Separately, the time-to-live decides how long WhatsApp keeps trying to deliver the message: 10 minutes by default, adjustable from 30 seconds to 15 minutes. Meta recommends a time-to-live no longer than the code's expiry.

    No. Meta says only authentication templates can be used to send a one-time passcode for identity verification. If Meta finds a marketing or utility template that should be authentication, it rejects it on the first day of the following month.

    Authentication messages are delivered only to the user's primary WhatsApp device, usually their phone. On linked devices such as WhatsApp Web or desktop, the message is masked with a prompt to view it on the primary device. This is on by default, can't be changed, and applies on the Cloud API. WhatsApp also blocks forwarding of authentication messages.

    Yes. In ChatMitra you create an authentication template with a copy code button, an optional security disclaimer and an optional expiry note, and send it from your own system through the developer API on the Pro and Enterprise plans, where approved authentication templates skip the send queue. ChatMitra doesn't yet offer one-tap or zero-tap buttons, a time-to-live setting, or authentication templates in automations.

    Nirav Chauhan

    ChatMitra

    Nirav Chauhan writes for the ChatMitra blog about the WhatsApp Business API.

    Ready to try WhatsApp Business API?

    Start free on the Starter plan — free subscription. Pro is ₹999/month with a 15-day trial when you need automation.