Ir al contenido

Tipos de mensaje

Nueve tipos de mensaje, un solo cuerpo de solicitud

Una solicitud de envío indica un canal, un destinatario y un tipo, con el contenido bajo una clave que lleva el nombre del tipo. Esta página muestra cada tipo, el cuerpo que lo genera y dónde se admite.

Matriz de compatibilidad

Qué canal acepta qué tipo

Cada canal informa de lo que acepta en capabilities. Enviar un tipo que el canal no admite devuelve 400 unsupported_message_type y no se cobra nada.

Compatibilidad de tipos de mensaje por tipo de canal
TipoWhatsAppSMSSMS OTPTelegramMessengerInstagramTikTok
TextotextAdmitidoAdmitidoAdmitidoAdmitidoAdmitidoAdmitidoAdmitido
Archivos adjuntosattachmentsAdmitidoAdmitidoNo admitidoAdmitidoAdmitidoAdmitidoAdmitido
PlantillatemplateAdmitidoNo admitidoNo admitidoNo admitidoNo admitidoNo admitidoNo admitido
Botones de respuestabuttonAdmitidoNo admitidoNo admitidoAdmitidoAdmitidoAdmitidoAdmitido
ListalistAdmitidoNo admitidoNo admitidoNo admitidoNo admitidoNo admitidoNo admitido
Botón de URLcta_urlAdmitidoNo admitidoNo admitidoNo admitidoNo admitidoNo admitidoNo admitido
UbicaciónlocationAdmitidoNo admitidoNo admitidoAdmitidoNo admitidoNo admitidoNo admitido
ContactoscontactsAdmitidoNo admitidoNo admitidoAdmitidoNo admitidoNo admitidoNo admitido
EncuestapollNo admitidoNo admitidoNo admitidoAdmitidoNo admitidoNo admitidoNo admitido
type: "text"

Texto

Texto sin formato, aceptado por todos los tipos de canal. Activa preview_url para que el canal muestre una vista previa del enlace.

body: de 1 a 4096 caracteres.

  • WhatsApp Business
  • SMS
  • SMS OTP
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Tu pedido n.º 1042 ya está en camino. Síguelo en https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}
type: "attachments"

Archivos adjuntos

Un elemento multimedia por mensaje, referenciado mediante una URL https: imagen, vídeo, documento, audio, nota de voz o sticker, con un pie opcional.

Exactamente un elemento. caption: hasta 1024 caracteres.

  • WhatsApp Business
  • SMS
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "attachments",
  "attachments": [
    {
      "type": "image",
      "url": "https://example.com/receipts/1042.jpg",
      "caption": "Tu recibo del pedido n.º 1042."
    }
  ]
}
type: "template"

Plantilla

Una plantilla de WhatsApp aprobada con variables. Las plantillas son los únicos mensajes que WhatsApp acepta fuera de la ventana de atención al cliente de 24 horas.

name y language deben coincidir con una plantilla aprobada del canal.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "template",
  "template": {
    "name": "order_out_for_delivery",
    "language": {
      "code": "en"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "Lucía"
          },
          {
            "type": "text",
            "text": "#1042"
          },
          {
            "type": "text",
            "text": "18:00"
          }
        ]
      }
    ]
  }
}
type: "button"

Botones de respuesta

Un mensaje con hasta tres respuestas rápidas. El ID del botón pulsado vuelve a tu webhook en un evento message.received.

De 1 a 3 botones. title: hasta 20 caracteres.

  • WhatsApp Business
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "button",
  "button": {
    "body": {
      "text": "Tu mesa para dos está reservada para esta noche a las 19:30. ¿Sigue en pie?"
    },
    "action": {
      "buttons": [
        {
          "reply": {
            "id": "confirm",
            "title": "Confirmar"
          }
        },
        {
          "reply": {
            "id": "reschedule",
            "title": "Reprogramar"
          }
        },
        {
          "reply": {
            "id": "cancel",
            "title": "Cancelar reserva"
          }
        }
      ]
    }
  }
}
type: "list"

Lista

Un menú que se abre desde un único botón, con filas agrupadas en secciones con título.

action.button: hasta 20 caracteres.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "list",
  "list": {
    "body": {
      "text": "¿Qué equipo puede ayudarte hoy?"
    },
    "action": {
      "button": "Elegir un equipo",
      "sections": [
        {
          "title": "Equipos",
          "rows": [
            {
              "id": "orders",
              "title": "Pedidos",
              "description": "Entregas, devoluciones y reembolsos"
            },
            {
              "id": "billing",
              "title": "Facturación",
              "description": "Facturas y métodos de pago"
            },
            {
              "id": "technical",
              "title": "Soporte técnico",
              "description": "Configuración y resolución de problemas"
            }
          ]
        }
      ]
    }
  }
}
type: "cta_url"

Botón de URL

Un mensaje con un botón que abre una URL, para páginas de seguimiento, pagos y enlaces de inicio de sesión.

Un botón por mensaje.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "cta_url",
  "cta_url": {
    "body": {
      "text": "Tu paquete está en camino. Síguelo en tiempo real."
    },
    "action": {
      "parameters": {
        "display_text": "Seguir pedido",
        "url": "https://example.com/t/1042"
      }
    }
  }
}
type: "location"

Ubicación

Un marcador con un nombre y una dirección que se abre en la aplicación de mapas del destinatario.

latitude y longitude se expresan en grados decimales.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "location",
  "location": {
    "latitude": 25.2048,
    "longitude": 55.2708,
    "name": "Punto de recogida",
    "address": "Sheikh Zayed Road, Dubái"
  }
}
type: "contacts"

Contactos

Una o varias tarjetas de contacto. El array se reenvía al canal tal cual, así que usa el formato de contacto propio del proveedor.

El ejemplo muestra el formato de contacto de WhatsApp.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "contacts",
  "contacts": [
    {
      "name": {
        "formatted_name": "Atención al cliente",
        "first_name": "Soporte"
      },
      "phones": [
        {
          "phone": "+971800123456",
          "type": "WORK"
        }
      ]
    }
  ]
}
type: "poll"

Encuesta

Una encuesta nativa de Telegram con una pregunta y un conjunto de opciones.

Solo Telegram.

  • Telegram
POST /v1/messages
{
  "channel": "ch_4Tn8rW2yK6dF9sA1mQ5v",
  "to": "584201337",
  "type": "poll",
  "poll": {
    "question": "¿Cuándo prefieres que entreguemos tu pedido?",
    "options": [
      "Mañana, de 09:00 a 12:00",
      "Tarde, de 12:00 a 17:00",
      "Noche, de 17:00 a 21:00"
    ]
  }
}

Prueba todos los tipos en el sandbox

Cada cuenta tiene un canal de sandbox para cada tipo de canal. Envía cualquier tipo que admita con una clave de prueba; no se entrega ni se cobra nada.