Sign inGet Started

Webhooks de mensajes entrantes de WhatsApp

Cuando un contacto te envía un mensaje, Bird envía whatsapp.received a tu endpoint. El payload usa la envoltura de evento WhatsApp e incluye los campos que lleva cada evento de mensaje.

El payload de recepción

whatsapp.received incluye el contenido del mensaje sobre los campos que lleva cada evento de mensaje, de modo que un endpoint puede actuar sobre un mensaje entrante sin tener que leerlo de vuelta. Un toque en un mensaje interactivo llega como interactive_reply, y in_reply_to_message_id indica el mensaje al que responde:
Ejemplo de código
{
  "data": {
    "direction": "inbound",
    "from": {
      "display_name": "Alex Rivera",
      "phone_number": "+14155550100",
      "username": "alexr"
    },
    "in_reply_to_message_id": "wam_01ky7qbvswf3fvyaw3az90391c",
    "interactive_reply": {
      "list": {
        "description": "Next day to 2 days",
        "slug": "priority_express",
        "text": "Priority Mail Express"
      },
      "type": "list"
    },
    "metadata": null,
    "tags": null,
    "to": { "phone_number": "+13124495569" },
    "whatsapp_id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
  },
  "timestamp": "2026-07-23T14:52:04.118Z",
  "type": "whatsapp.received"
}
Las demás ramas de contenido siguen la misma estructura de una-de-estas: text, image, video, audio, sticker, document, location, contact_cards, y unsupported para un tipo que API no modela. GET /v1/whatsapp/messages/{message_id} documenta cada una.

Próximos pasos