One Meta POST, several numbers
Meta can batch several WABAs or numbers into one POST. WhaBuzz splits it into one event per item and routes each by its own phone_number_id or WABA. An item that belongs to no tenant is stored with te
Meta can batch several WABAs or numbers into one POST. WhaBuzz splits it into one event per item and routes each by its own phone_number_id or WABA. An item that belongs to no tenant is stored with tenant_id: null and never forwarded; the others are delivered normally.
Event types: message.inbound and message.status. Fixture payloads are the WhaBuzz Demo tenant's real ids with a fictional customer number; id, tenant_id and created_at in envelopes are illustrative.
#Two entries: one routed number, one unknown
What Meta POSTs to WhaBuzz (fixtures/meta/multi_entry_two_numbers.json):
{
"object": "whatsapp_business_account",
"entry": [
{
"id": "26059971920328384",
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "14692311132",
"phone_number_id": "1013622581841046"
},
"contacts": [
{
"profile": {
"name": "Kerry Fisher"
},
"wa_id": "16505551234",
"user_id": "US.13491208655302741918"
}
],
"messages": [
{
"from": "16505551234",
"from_user_id": "US.13491208655302741918",
"id": "wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB60AA=",
"timestamp": "1760591523",
"type": "text",
"text": {
"body": "one"
}
}
]
}
}
]
},
{
"id": "999999999999999",
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "15550001111",
"phone_number_id": "888888888888888"
},
"statuses": [
{
"id": "wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB61AA=",
"status": "delivered",
"timestamp": "1760591523",
"recipient_id": "16505551234",
"recipient_user_id": "US.13491208655302741918",
"pricing": {
"billable": true,
"pricing_model": "PMP",
"category": "utility",
"type": "regular"
}
}
]
}
}
]
}
]
}jsonWhat your endpoint receives (event 1 of 2, entry[0].changes[0].value.messages[0]), as the body of a signed POST. raw is abbreviated here; on the wire it is the full body above.
{
"id": "evt_01JAB3K9X2S8C4M7Q1V5R6T0YZ",
"type": "message.inbound",
"api_version": "2026-10-16",
"created_at": "2025-10-16T05:12:03.481Z",
"tenant_id": "a578246e-b97f-48e6-ae42-939ec3ccf917",
"waba_id": "26059971920328384",
"phone_number_id": "1013622581841046",
"display_phone_number": "14692311132",
"wamid": "wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB60AA=",
"wa_id": "16505551234",
"user_id": "US.13491208655302741918",
"dedupe_key": "msg:wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB60AA=",
"data": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "14692311132",
"phone_number_id": "1013622581841046"
},
"contacts": [
{
"profile": {
"name": "Kerry Fisher"
},
"wa_id": "16505551234",
"user_id": "US.13491208655302741918"
}
],
"message": {
"from": "16505551234",
"from_user_id": "US.13491208655302741918",
"id": "wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB60AA=",
"timestamp": "1760591523",
"type": "text",
"text": {
"body": "one"
}
}
},
"raw": {
"…": "the complete Meta POST body, byte for byte, as shown above"
},
"raw_path": "entry[0].changes[0].value.messages[0]"
}jsonWhat your endpoint receives (event 2 of 2, entry[1].changes[0].value.statuses[0]), as the body of a signed POST. raw is abbreviated here; on the wire it is the full body above.
{
"id": "evt_01JAB3K9X2S8C4M7Q1V5R6T0YZ",
"type": "message.status",
"api_version": "2026-10-16",
"created_at": "2025-10-16T05:12:03.481Z",
"tenant_id": "a578246e-b97f-48e6-ae42-939ec3ccf917",
"waba_id": "999999999999999",
"phone_number_id": "888888888888888",
"display_phone_number": "15550001111",
"wamid": "wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB61AA=",
"wa_id": "16505551234",
"user_id": "US.13491208655302741918",
"dedupe_key": "st:wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB61AA=:delivered:1760591523",
"data": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "15550001111",
"phone_number_id": "888888888888888"
},
"status": {
"id": "wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB61AA=",
"status": "delivered",
"timestamp": "1760591523",
"recipient_id": "16505551234",
"recipient_user_id": "US.13491208655302741918",
"pricing": {
"billable": true,
"pricing_model": "PMP",
"category": "utility",
"type": "regular"
}
}
},
"raw": {
"…": "the complete Meta POST body, byte for byte, as shown above"
},
"raw_path": "entry[1].changes[0].value.statuses[0]"
}jsonThis page as Markdown: /events/routing.md. All docs in one file: /llms-full.txt.