Inbound contact cards
One or more shared contact cards. Note the two contacts keys: data.contacts is the sender profile Meta attaches to every webhook, data.message.contacts is the card the customer shared.
One or more shared contact cards. Note the two contacts keys: data.contacts is the sender profile Meta attaches to every webhook, data.message.contacts is the card the customer shared.
Event type: message.inbound. 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.
#A shared contact card
What Meta POSTs to WhaBuzz (fixtures/meta/contacts.json):
{
"object": "whatsapp_business_account",
"entry": [
{
"id": "26059971920328384",
"changes": [
{
"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.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB11AA=",
"timestamp": "1760591523",
"type": "contacts",
"contacts": [
{
"addresses": [
{
"city": "Hyderabad",
"country": "India",
"country_code": "IN",
"state": "TS",
"street": "1 Example Road",
"type": "HOME",
"zip": "500075"
}
],
"birthday": "1990-01-31",
"emails": [
{
"email": "friend@example.com",
"type": "WORK"
}
],
"name": {
"first_name": "Ravi",
"formatted_name": "Ravi Kumar",
"last_name": "Kumar"
},
"org": {
"company": "Example Co",
"department": "Ops",
"title": "Lead"
},
"phones": [
{
"phone": "+1 650-555-1235",
"wa_id": "16505551235",
"type": "CELL"
}
],
"urls": [
{
"url": "https://example.com",
"type": "WORK"
}
]
}
]
}
]
},
"field": "messages"
}
]
}
]
}jsonWhat your endpoint receives, 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.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB11AA=",
"wa_id": "16505551234",
"user_id": "US.13491208655302741918",
"dedupe_key": "msg:wamid.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB11AA=",
"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.HBgLMTY1MDU1NTEyMzQVAgASGBQzQUY5QTdGNkU0RTFGMkI3QzFB11AA=",
"timestamp": "1760591523",
"type": "contacts",
"contacts": [
{
"addresses": [
{
"city": "Hyderabad",
"country": "India",
"country_code": "IN",
"state": "TS",
"street": "1 Example Road",
"type": "HOME",
"zip": "500075"
}
],
"birthday": "1990-01-31",
"emails": [
{
"email": "friend@example.com",
"type": "WORK"
}
],
"name": {
"first_name": "Ravi",
"formatted_name": "Ravi Kumar",
"last_name": "Kumar"
},
"org": {
"company": "Example Co",
"department": "Ops",
"title": "Lead"
},
"phones": [
{
"phone": "+1 650-555-1235",
"wa_id": "16505551235",
"type": "CELL"
}
],
"urls": [
{
"url": "https://example.com",
"type": "WORK"
}
]
}
]
}
},
"raw": {
"…": "the complete Meta POST body, byte for byte, as shown above"
},
"raw_path": "entry[0].changes[0].value.messages[0]"
}jsonThis page as Markdown: /events/inbound-contacts.md. All docs in one file: /llms-full.txt.