Sign inGet started

Plantillas de autenticación de WhatsApp

Una plantilla de autenticación entrega un código de verificación de un solo uso. Meta redacta el texto cuando creas la plantilla. Al enviarla, proporciona el código como parámetro del cuerpo.

Antes de enviar

Decide si usar una plantilla gestionada por Bird o crear una plantilla en tu propia cuenta de negocio.
Enviar las plantillas de catálogo predefinidas de Bird, bird_otp y bird_otp_authifly, no requiere verificación de tu parte. Esas plantillas residen en las WhatsApp Business Accounts propias de Bird, y la ruta de envío gestionado nunca comprueba el estado de verificación de tu negocio.
Cuando la cuenta de negocio conectada reporta not_verified, Bird rechaza la creación o duplicación de plantillas de autenticación con 412 E15043 WhatsAppTemplateBusinessNotVerified. Revisa la cuenta conectada y su último estado sincronizado. Consulta Verificación de negocio de WhatsApp para el proceso de verificación y el manejo de estados.
La creación de plantillas de utilidad y marketing no se ve afectada por esta restricción; puedes seguir creándolas y editándolas sin importar tu estado de verificación.
Crea plantillas en el panel de control, con la CLI de bird, o a través del servidor MCP. Consulta Creación de plantillas de WhatsApp para el flujo completo.

Enviar un código de verificación

POST /v1/whatsapp/messages con un objeto template que nombra un slug de catálogo:
const msg = await bird.whatsapp.send({
  to: "+14155550100",
  template: {
    slug: "bird_otp",
    language: "en",
    components: [{ type: "body", parameters: [{ type: "text", text: "481920" }] }],
  },
});
console.log(msg.id, msg.status);
Cuatro reglas son específicas de esta categoría:
  • Omite from. Una plantilla gestionada por Bird elige su propio remitente, según la categoría y la región, por lo que establecer from devuelve 422 E15018 WhatsAppSenderNotAllowed. Es lo contrario de un envío libre, que requiere from; vale la pena recordarlo si llegas aquí desde las páginas de mensajes interactivos.
  • to debe ser un número de teléfono E.164. Una plantilla de autenticación no puede dirigirse a un ID de usuario con alcance de negocio; eso es 422 E15014 WhatsAppRecipientNotSupportedForTemplate.
  • El cuerpo acepta exactamente un parámetro posicional: el código. Cero parámetros, o nombrar el parámetro, devuelve 422 E15003 WhatsAppTemplateParameterMismatch. Autenticación es la única categoría que Meta escribe posicionalmente; todas las demás nombran sus parámetros.
  • No se necesita ventana de atención al cliente. Los envíos con plantilla no están limitados por ventana, que es justamente la razón por la que existe una plantilla de código de verificación: tiene que llegar a alguien que nunca te ha escrito antes.
Consulta los idiomas disponibles para bird_otp o bird_otp_authifly en el catálogo de plantillas. Si el idioma que solicitas no está disponible, el envío falla en lugar de usar otro idioma.

El botón de copiar código

Meta escribe el cuerpo de una plantilla de autenticación por sí mismo, como un formato predefinido con un único marcador de código, así que tú proporcionas flags en lugar de texto. El componente de botón es opcional en un envío: si no incluyes uno, Bird lo añade por ti, con el mismo código del cuerpo. También puedes proporcionarlo tú:
Ejemplo de código
{ "type": "button", "parameters": [{ "type": "text", "text": "481920" }] }
En cualquier caso, exactamente un botón llega a WhatsApp, y es el botón de copiar código: al pulsarlo, copia el código al portapapeles. Bird solo admite copy_code; los otros dos comportamientos de botón que Meta documenta para plantillas de autenticación, autocompletado con un toque y sin toque, no están disponibles en Bird actualmente.
La creación del botón de una plantilla sigue la misma estructura: un botón otp, y la plantilla no acepta ningún otro tipo de botón. Proporcionas add_security_recommendation (un booleano que se muestra en el cuerpo) y code_expiration_minutes (de 1 a 90, que se muestra en el pie) en lugar de escribir texto.

Qué permite Meta en una plantilla de autenticación

Meta fija la estructura de una plantilla de autenticación y revisa su contenido: no se permiten URL, medios ni emojis en ninguna parte de la plantilla, y el parámetro de código tiene un límite de 15 caracteres. La categoría también cambia la forma en que WhatsApp entrega el mensaje, enviándolo solo al dispositivo principal del destinatario. Consulta Directrices de plantillas para ver la estructura fija, los límites de caracteres y el proceso de revisión completo.

Costo

La categoría y el destino determinan el precio. Consulta Tarifas de autenticación internacional de WhatsApp para saber cómo puede cambiar el precio si envías a un país distinto de tu ubicación principal, y Costo y facturación para saber cuándo se cobra un envío. Las cifras de tarifas están en Precios de WhatsApp.

Aspectos a tener en cuenta

  • Las plantillas predefinidas de Bird no se entregan a nueve países. bird_otp y bird_otp_authifly envían desde las WhatsApp Business Accounts propias de Bird, y esas cuentas no llevan mensajes de autenticación a Egipto, India, Indonesia, Malasia, Nigeria, Pakistán, Arabia Saudita, Sudáfrica ni los Emiratos Árabes Unidos. Ese envío se rechaza con 422 E15063 WhatsAppDestinationRestricted antes de que se cobre nada. Una plantilla que creaste en tu propia cuenta, enviada desde tu propio número, llega a estos países con normalidad. Verify también llega a ellos, moviendo el código de verificación a otro canal por su cuenta.
  • Un envío con plantilla propia requiere from, y debe estar en la misma WhatsApp Business Account que la plantilla. Un remitente en una cuenta diferente se rechaza con 422 E15023 WhatsAppSenderWABAMismatch antes de que se cobre nada.
  • Solo un idioma cuya versión esté aprobada y activa se puede enviar. Un idioma en borrador, pendiente, rechazado o pausado no.
  • Meta puede recategorizar una plantilla por iniciativa propia. No hay forma de rechazarlo, y arrastra las reglas de precio y entrega que siguen a la categoría.
  • La categoría de la plantilla y la categoría de su idioma pueden diferir. Consulta Plantillas de WhatsApp para saber cómo la ruta de envío resuelve esto.
  • Una plantilla de autenticación ingestada no se puede duplicar. Bird no puede leer el texto generado por WhatsApp para convertirlo en la configuración a partir de la cual se construye una plantilla nueva; eso es 422 E15024 WhatsAppTemplateContentNotDuplicable. Crea una nueva con su propia recomendación de seguridad y expiración de código.

Próximos pasos