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.