Skip to content

Webhooks

Meta webhook → Wapedia

Meta sends events to the Wapedia endpoint (GET verify + POST payload). The HMAC signature is verified with META_APP_SECRET (or a per-tenant secret when configured).

Verification

Meta sends hub.mode, hub.verify_token, hub.challenge. The token must match what is configured on the tenant / env.

Inbound events

After verification, inbound messages are stored, conversations/contacts are touched, then optionally:

  • Chatbot keyword / auto-reply (via billed outbound flow)
  • Forward to the tenant webhook_forward_url

Forward to your system

Set webhook_forward_url in tenant settings. Security requirements:

  • HTTPS only
  • Public host (not localhost, private IPs, link-local, or cloud metadata)

Example JSON payload:

{
  "event": "message.inbound",
  "tenant_id": "uuid",
  "message_id": "wamid....",
  "from": "6281234567890",
  "type": "text",
  "content_preview": "Halo",
  "payload": {}
}

Forward timeouts are short; failures are logged without failing the primary ingest.

To verify Meta signatures on your own endpoint, use verifyMetaSignature from the TypeScript SDK.

Delivery status

Outbound status updates (sent / delivered / read / failed) are processed from Meta status webhooks and are idempotent per message_id + status.