API Crear y enviar plantilla
Crear plantilla
La creación de plantillas se describe en la documentación de la API en el método /addTemplate.
También puede crear una plantilla desde la sección "Dev Toolkit" → "Test Requests" en su cuenta personal.
Parte general de la solicitud:
name
Nombre de la plantilla. Solo puede contener letras minúsculas, dígitos y guiones bajos.
allow_category_change
Casilla "Permitir cambio de categoría". En lugar de rechazar la plantilla, cambiaremos automáticamente su tipo de categoría.
category
Tipo de plantilla: MARKETING, UTILITY o AUTHENTICATION
language
Idioma de la plantilla. El idioma seleccionado debe coincidir con el texto de la plantilla. De lo contrario, Meta puede rechazar la plantilla.
components
Matriz de componentes de la plantilla
Ejemplo:
{
"token": "{{token}}",
"name": "test_marketing_2024",
"allow_category_change": false,
"category": "MARKETING",
"language": "ru",
"components": [
// objetos del cuerpo de la plantilla
]
}A continuación se describe la estructura de cada categoría de plantilla.
Plantillas de Marketing y Servicios
HEADER
Los encabezados son componentes opcionales que aparecen en la parte superior del mensaje de plantilla.
Admiten TEXT o medios (IMAGE, VIDEO o DOCUMENT). Las plantillas están limitadas a un solo componente de encabezado.
TEXT
Establezca "format": "TEXT" para definir el encabezado como texto. Reglas: máx. 60 caracteres; solo una variable; si hay variable, indique un ejemplo en header_text.
IMAGE
Establezca "format": "IMAGE" para una imagen. Incluya el objeto "example" con el enlace en "header_handle".
VIDEO
Establezca "format": "VIDEO" para un vídeo. Incluya el objeto "example" con el enlace en "header_handle".
DOCUMENT
Establezca "format": "DOCUMENT" para un documento. Incluya el objeto "example" con el enlace en "header_handle".
Ejemplo — encabezado de texto sin variable:
Ejemplo — encabezado de texto con variable:
Ejemplo — encabezado IMAGE:
Ejemplo — encabezado VIDEO:
Ejemplo — encabezado DOCUMENT:
BODY
El cuerpo es solo texto y es obligatorio en todas las plantillas. La plantilla puede tener un solo componente BODY.
Reglas del BODY:
Obligatorio.
text: máx. 1024 caracteres.Si hay variables en
text, indique ejemplos en"example"→"body_text". El número de elementos debe coincidir con el de variables.Meta no limita el número de variables.
El texto no puede ser solo una variable; Meta no acepta
"text": "{{1}}".
Ejemplo:
(Omita example si no hay variables en text.)
FOOTER
El pie es un texto opcional que aparece justo después del cuerpo. Máx. un componente FOOTER.
Ejemplo:
BUTTONS
Los botones son componentes opcionales que realizan acciones al pulsar. Las plantillas pueden tener hasta 10 botones en total, con límites por tipo y por combinación.
Tipos de botones:
Quick Reply — Botón de texto que envía al instante ese texto en el chat. Cualquier texto.
URL — Abre la URL indicada en el navegador.
Phone Number — Realiza una llamada al número indicado.
Catalog (solo Marketing) — Al pulsar "View catalog" se abre el catálogo de productos en WhatsApp.
Los botones URL y Phone no envían respuesta en el chat como Quick Reply.
Límites:
Quick Reply: hasta 10
URL: hasta 2
Phone Number: 1
En la plantilla Catalog solo se puede usar el botón Catalog.
Máximo 10 botones en total.
Combinaciones válidas / no válidas:
Quick Reply, Quick Reply, Quick Reply
Quick Reply, URL, Quick Reply
Quick Reply, Quick Reply, Quick Reply, URL, Phone
URL, Quick Reply, URL
URL, Phone, Quick Reply, Quick Reply
Hay que respetar el orden y la cantidad de cada tipo.
QUICK_REPLY:
Máx. 25 caracteres en text.
URL:
url: máx. 2000 caracteres. La API no acepta caracteres cirílicos en las URL. Si hay variable, indique example.
PHONE_NUMBER:
phone_number y text son obligatorios. Máx. 25 caracteres en text, 20 en phone_number.
CATALOG:
Solo un botón en la plantilla Catalog. En text debe figurar "View catalog"; se traducirá según el idioma de la plantilla.
Ejemplo completo: plantilla de Marketing
Plantilla con: encabezado de texto con variable, cuerpo con variables, pie de texto y dos botones Quick Reply.
Plantilla de autenticación
Las plantillas de autenticación incluyen opciones como aviso de seguridad y advertencia de caducidad. Además, deben tener un botón de contraseña de un solo uso (copiar código o one-tap).
El valor components debe ser un array de objetos. La plantilla de autenticación debe tener:
un body
un footer (opcional)
un botón OTP
BODY:
Texto fijo: <VERIFICATION_CODE> is your verification code. No rellene la propiedad
"text".Aviso de seguridad opcional: "For your security, do not share this code". Para añadirlo:
"add_security_recommendation": true;falsepara omitirlo.El idioma mostrado depende del idioma de la plantilla.
FOOTER:
Opcional.
Advertencia de caducidad: "This code expires in <NUM_MINUTES> minutes". Use
"code_expiration_minutes"(entero de 1 a 90). Si se omite, no se muestra.
BUTTONS:
Debe incluir botón de copiar código o one-tap. Tipo:
"OTP"."otp_type":"COPY_CODE"o"ONE_TAP".Solo un botón.
"text": texto del botón. Incluso con ONE_TAP debe indicarse; si Meta no valida el one-tap, se mostrará el botón de copiar con este texto. Máx. 25 caracteres.
Para ONE_TAP también: autofill_text, package_name, signature_hash (consulte la documentación de Meta).
Ejemplo botón copiar código:
Ejemplo botón one-tap:
Ejemplo completo de plantilla de autenticación:
Enviar plantilla por API
El envío se describe en el método /sendTemplate.
También puede enviar desde "Dev Toolkit" → "Test Requests".
Necesita namespace, name y language de la plantilla. Obténgalos con el método "Get list of templates" (/templates).
Propiedades relevantes en /sendTemplate:
template
Nombre de la plantilla
language
policy: "deterministic"; code: código de /templates
Objeto type "body"
Mensaje de texto. Omita si el cuerpo no tiene variables.
Objeto type "button"
En el cuerpo solo se envían botones con sub_type "url" o "catalog". Los demás se pueden omitir.
Enviar plantillas Marketing o Utility
Envíe solo los objetos definidos en la plantilla. Omita:
headersi no existe en la plantillaheadersi es de tipo Text y no tiene variablebodysi no tiene variablesBotones Quick Reply y Phone — siempre omitir
Botón URL si no tiene variable
En encabezados IMAGE, VIDEO o DOCUMENT envíe siempre la URL completa. La URL debe incluir el formato del archivo.
Ejemplo: documento con botón URL
Encabezado tipo document
Cuerpo con 2 variables
Dos botones URL; el segundo tiene variable. Si un botón URL no tiene variable, omítalo. El índice del segundo botón es 1.
Ejemplo: encabezado de texto con todos los tipos de botones
Encabezado Text con una variable
Cuerpo sin variables → omitido en la solicitud
4 botones: Quick Reply, Phone, URL con variable, URL sin variable
Enviar plantilla de autenticación
Ejemplo con botón copiar código:
Last updated