---
title: "Authoring WhatsApp authentication templates"
description: "Create a WhatsApp authentication template with a copy-code button, configure its security and expiration text, and submit each language for review."
canonical: "https://bird.com/docs/guides/whatsapp/authoring-templates/authentication"
---

# Authoring WhatsApp authentication templates

Create an authentication template to deliver a one-time passcode for sign-in, account verification, or recovery. Meta supplies the message wording. You choose whether to include its security recommendation and code-expiration notice.

## Before you start

Connect [your own number and WhatsApp Business Account](/docs/guides/whatsapp/numbers/connect). Check the account's [business verification status](/docs/guides/whatsapp/templates/authentication#before-you-send) before creating or duplicating an authentication template.

Bird supports authentication templates with a **Copy code** button. Meta also documents Android one-tap and zero-tap templates, but Bird's authoring API and editor do not expose those button types. See [Meta's authentication template guide](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/authentication-templates/authentication-templates).

## Creating the template

1. Open [**Approved templates**](https://bird.com/dashboard/w/whatsapp/templates), select **New template**, then **Start from scratch**.
2. Choose **Authentication** and the connected business account. Enter a name and choose the default language.
3. Select **Create template** to open the editor.

To start from an existing template, choose **Start with a template** and copy an authentication template onto your account. The copy is a draft that needs its own submission. An imported authentication template can refuse duplication with [`E15024`](/docs/api/errors/E15024); create one from scratch in that case.

## Configuring the message

The **Authentication settings** panel replaces the free-text editor:

1. Enable **Add security recommendation** to include Meta's advice not to share the code.
2. Set **Code expiration (minutes)** to include an expiration notice. Leave it empty to omit that notice. Match it to the code validity your application enforces; the notice does not expire a code in your application.
3. Check the phone preview, including the **Copy code** button, then select **Save as draft**.

![The authentication template editor showing the security recommendation toggle, code-expiration field, and a phone preview with a Copy code button](/images/docs/dashboard-whatsapp-template-builder-auth.png)

Meta accepts an expiration notice from 1 to 90 minutes. Authentication content cannot include URLs, media, or emojis, and a code can contain at most 15 characters. These restrictions come from [Meta's copy-code template documentation](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/authentication-templates/copy-code-button-authentication-templates).

Add the languages your application needs and check the settings and preview for each one. Approval is per language.

## Submitting and testing

1. Select **Submit for review**.
2. Wait for the language to become approved and available on the live version.
3. [Send a test message](/docs/api/reference/create-whatsapp-message) using your new template's slug and an approved language. Set `from` to a number on the template's business account and `to` to your test recipient's phone number. Supply the same passcode in the body and **Copy code** button parameters.

Confirm that the message arrives, **Copy code** copies the expected value, and your application accepts the code and rejects it after expiration. Authentication messages display the code on the recipient's primary WhatsApp device; linked devices prompt them to check that device.

If creation fails with [`E15043`](/docs/api/errors/E15043), check the connected account's verification status. If submission fails, read the error on the affected language before editing or retrying.

## Next steps

- [Authoring overview](/docs/guides/whatsapp/authoring-templates): drafts, languages, and review states
- [Sending authentication templates](/docs/guides/whatsapp/templates/authentication): passcode parameters and sender requirements
- [Verify](/docs/guides/verify/overview): managed code generation and verification
- [Template language API](/docs/api/reference/upsert-whatsapp-template-language): authoring through the API

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/whatsapp-api) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
