Channels

Crear una plantilla de WhatsApp en la cuenta (WABA) del canal — queda disponible para TODOS los números de esa cuenta

Crea la plantilla en Meta y la deja en revisión: hasta que Meta la apruebe, POST /channels/{channelId}/whatsapp/send-template la rechaza. El estado se consulta con GET /channels/{channelId}/templates?status=all.

Una plantilla pertenece a la cuenta de WhatsApp (WABA), no al número. Queda disponible para todos los números de esa cuenta y para ninguno de las otras. Si el workspace tiene varias cuentas conectadas, waba_id elige en cuál crearla; omitirlo la crea en la primaria, que puede no ser la del número desde el que piensas enviar.

Crear plantillas no es gratis para el cliente: una rechazada le baja la calificación de calidad a su cuenta de WhatsApp, y una WABA sin portafolio de negocio verificado solo admite 250 plantillas en total. Por eso hay un tope de creación por workspace y por hora; al superarlo la respuesta es 429 con código rate_limited, y la salida no es reintentar en bucle sino revisar lo que ya se creó.

post/channels/{channelId}/templates

Request

  • Base URL: https://api.met.meteor.com.co/api/v1
  • URL: https://api.met.meteor.com.co/api/v1/channels/{channelId}/templates
  • Auth: one of:
    • bearer (a scheme the document does not define)
    • HTTP bearer

Path parameters

channelIdstring required

ID del canal conectado.

Request body

categorystring required

Categoría de Meta: UTILITY, MARKETING o AUTHENTICATION. Elegir mal la categoría es de las causas más comunes de rechazo, y un rechazo le baja la calificación de calidad a la cuenta de WhatsApp del cliente, no a quien la creó.

componentsobject[] required

Los bloques de la plantilla, con la forma que define Meta (HEADER, BODY, FOOTER, BUTTONS). La forma más segura de armarlos es copiar los components de una plantilla que ya existe, que devuelve GET /channels/{channelId}/templates.

Encabezado con imagen, video o documento: Meta exige una muestra subida a sus servidores. No hay que subirla aparte — basta con mandar la URL pública del archivo en sample_url dentro del componente HEADER, y el backend la descarga y la convierte en el header_handle que Meta pide.

languagestring required

Código de idioma de Meta (es, es_CO, en_US).

namestring required

Nombre de la plantilla. Es el identificador con el que después se envía (POST /channels/{channelId}/whatsapp/send-template), así que no se puede cambiar: para renombrarla hay que crear otra y pasar de nuevo por revisión. Meta lo quiere en minúsculas, sin espacios y con _ como separador.

waba_idstring

En qué cuenta de WhatsApp (WABA) crearla. Omitido = la cuenta primaria del workspace.

Una plantilla NO pertenece a un número: pertenece a la cuenta. Creada aquí, queda disponible para todos los números de esa cuenta — y para ninguno de las otras. Un workspace puede tener varias cuentas conectadas, así que si el número desde el que piensas enviar cuelga de otra WABA, la plantilla no va a existir para él por más que el canal sea el mismo. Los waba_id conectados, con su alias, salen en GET /channels/{channelId}/templates (campos waba_id y waba_alias).

Example request

{
  "category": "UTILITY",
  "components": [
    {
      "text": "Hola {{1}}, te esperamos el {{2}}.",
      "type": "BODY"
    },
    {
      "format": "IMAGE",
      "sample_url": "https://ejemplo.com/muestra.png",
      "type": "HEADER"
    }
  ],
  "language": "es",
  "name": "recordatorio_cita",
  "waba_id": "102938475610293"
}

Response

successtrue required

Siempre true en una respuesta 2xx.

Example response

{
  "data": {
    "id": "1234567890123456",
    "status": "ok",
    "template_status": "PENDING"
  }
}

Changes

No recorded changes to this operation across all 2 revisions of this API.