HydraCore
API by router

Whatsapp webhook

Whatsapp Webhook Verify

Meta webhook verification (GET). Returns challenge if verify_token matches.

Meta sends this when you register the webhook URL. We look up the verify_token across all WhatsApp channel_endpoints to find a match.

GET
/hooks/whatsapp

Query Parameters

hub.mode?Hub.Mode
hub.verify_token?Hub.Verify Token
hub.challenge?Hub.Challenge

Response Body

curl -X GET "https://loading/hooks/whatsapp?hub.mode=string&hub.verify_token=string&hub.challenge=string"
null
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Whatsapp Webhook Inbound

Receive inbound WhatsApp messages from Meta.

Flow:

  1. Verify signature (X-Hub-Signature-256)
  2. Parse message
  3. Route via channel_endpoints (phone_number_id → instance)
  4. Forward to agent runtime over WireGuard
  5. Return 200 immediately (async processing)
POST
/hooks/whatsapp

Response Body

curl -X POST "https://loading/hooks/whatsapp"
{}