waba_messages

Triggered when an outbound WABA message fails to send.

postWebhookwaba:message:failed

Payload

event_type'waba:message:received' | 'waba:message:delivered' | 'waba:message:failed' | 'waba:message:read' required

Webhook event name

Example payload

{
  "event_type": "waba:message:received",
  "account": {
    "id": 4821,
    "meta_phone_id": "109998887776665",
    "meta_waba_id": "203344556677889",
    "phone": "+15559876543",
    "account_name": "Sales Bot"
  },
  "chat": {
    "id": 90155,
    "waba_account_id": 4821,
    "service_window_is_open": true,
    "service_window_expires_at": "2024-01-08 10:35:18 +0200"
  },
  "message": {
    "message_uid": "c7ec509d-0171-1ead-a84b-c6943a644768",
    "direction": "sent",
    "status": "Delivered",
    "timestamp": "2026-06-24 10:15:30 +0000",
    "received_timestamp": "2026-06-24 10:15:31 +0000",
    "text": "Hi, is this still available?",
    "origin": "WhatsApp",
    "sender": {
      "full_name": "John Smith",
      "phone": "+123456789"
    },
    "recipient": {
      "full_name": "John Smith",
      "phone": "+123456789"
    },
    "attachments": [
      {
        "temporary_download_url": "https://example.s3.amazonaws.com/att/...",
        "filename": "example.doc",
        "size": 1234567,
        "mimetype": "application/msword"
      }
    ],
    "template": {
      "id": 501,
      "name": "order_confirmation"
    },
    "failure_reason": {
      "title": "Re-engagement message",
      "details": "Message failed to send outside the 24 hour window."
    }
  }
}

Response

Receiver accepted the event

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.