> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fyno.io/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fyno.io/docs/_mcp/server.

# Create an Authentication WhatsApp Template

> Create WhatsApp Authentication templates for OTP and verification code delivery using zero-tap auto-fill, one-tap auto-fill, or copy code methods.

Use an Authentication template to send one-time passcodes (OTPs) that verify a user's identity during login or sensitive actions. The message format is predefined (`{{1}} is your verification code.`) and can't include promotional content. Creating one takes five steps:

1. [Create the template](#step-1-create-the-template)
2. [Choose the code delivery type](#step-2-choose-the-code-delivery-type)
3. [Complete the details](#step-3-complete-the-details)
4. [Add more languages](#step-4-add-more-languages-optional) (optional)
5. [Save or send for approval](#step-5-save-or-send-for-approval)

## Step 1: Create the template

Navigate to **Templates → External → WhatsApp Templates**, then click **Create**. Fill in the dialog and click **Create Template**.

| Field             | What to enter                                                                                                                   |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| **Template Name** | A unique name in lowercase, with underscores instead of spaces. For example, `login_otp`.                                       |
| **Integrations**  | The WhatsApp Business Account to create the template in. The template can only send messages from this account's phone numbers. |
| **Category**      | Select **Authentication**.                                                                                                      |
| **Language**      | One or more languages. You can add or remove languages later.                                                                   |

## Step 2: Choose the code delivery type

Under **Code Delivery Type**, choose how users receive the code.

| Delivery type          | How it works                                              | Use it for                                      |
| ---------------------- | --------------------------------------------------------- | ----------------------------------------------- |
| **Zero tap auto-fill** | The code is sent and filled in automatically.             | OTPs sent to your mobile app.                   |
| **One tap auto-fill**  | The user taps an **Autofill** button to fill in the code. | OTPs sent to your mobile app or mobile browser. |
| **Copy code**          | The user copies the code and pastes it.                   | Any device.                                     |

#### Zero tap auto-fill

If zero-tap isn't possible, an auto-fill or copy code message is sent instead.

To use zero-tap, select the checkbox to confirm that you accept the WhatsApp Business Terms of Service for zero-tap authentication, and that your customers expect the code to be filled in automatically.

![](/docs/_fern-img/fe4a1262af7ac896c6426df76055ddc9ed04a224d3a4e2b0fcff9171ee721763.webp)

#### One tap auto-fill

If auto-fill isn't possible, a copy code message is sent instead.

![](/docs/_fern-img/14fbc561e6e508dda890ff436784afb0246686dcc5eea493bbcb55c61a27a5d3.webp)

#### Copy code

The message shows a **Copy Code** button. No app setup is needed.

![](/docs/_fern-img/de0e6da8219fe6d7d0f34a54e82b7d3e4aab5d2d9d793fea4880c4395032456d.webp)

## Step 3: Complete the details

#### Set up your app (zero-tap and one-tap only)

Under **App Setup**, enter the details of the mobile app where the code should be filled in automatically.

![](/docs/_fern-img/9bba0dcb0246b48694f645bf6a7917504b92372796d23ca6ab8fd257ab9c479b.webp)

| Field                  | What to enter                                                                                                          |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **Package Name**       | Your Android app's package name (maximum 224 characters).                                                              |
| **App Signature Hash** | The signature hash of your app (maximum 11 characters). Meta uses it to verify your app and fill in the code securely. |

Click **Add App** to add more apps, up to 5.

#### Enter the button text

Enter the text users see on the button in WhatsApp (maximum 25 characters each).

![](/docs/_fern-img/47c8c90442be4841a6207dc747e75e9223cb83094d166b767185b4a20a32a7d5.webp)

| Button        | What it does                              | Shown for                      |
| ------------- | ----------------------------------------- | ------------------------------ |
| **Auto-Fill** | Fills in the code when the user taps it.  | Zero tap and one tap auto-fill |
| **Copy Code** | Copies the code so the user can paste it. | All delivery types             |

> **Note**
>
> For zero-tap and one-tap auto-fill, you still need the button text. It's used for the backup message if auto-fill isn't possible.

#### Add extra security information (optional)

Expand **Additional Configuration** to add:

* **Expiry time for the code**: After the code expires, the auto-fill button is disabled.
* **Security recommendation**: Adds the text *"For your security, do not share this code."* to your message.

## Step 4: Add more languages (optional)

To reach users in different regions, click **Add** next to **Languages** and add a version of the template in each language. Translate the button text in each language.

## Step 5: Save or send for approval

When your template is ready, save it as a draft or send it to Meta for approval. See [Save as Draft vs Send for Approval](./save-or-send-for-approval).