subscribed_events, or omit it to receive everything.
Messages
data.message includes conversation_id (cnv_…), metadata you attached when sending, the request_id of the originating API call, provider_message_id, contact.bsuid when Meta provides one, and contact.profile_name: the WhatsApp profile name Meta sent with an inbound message, so you can greet the sender without looking the contact up. Messages sent to or received in a group carry group (uuid, provider_group_id) and no conversation_id. The first message from someone who tapped a Click-to-WhatsApp ad carries the ad in content.referral (see Ad welcome messages).
content carries the structured parts: content.group_id when the message was sent in a WhatsApp group, content.voicemail.call_id when it is a voicemail left after a missed call, and content.automatic_events once Meta detects a lead or purchase in a chat that began from an ad.
These do not arrive in order. A
message.read may land before the message.delivered
for the same message.Templates
Marketing
Verify
Codes are redacted from all three payloads.
Contacts
Groups
See Group chats.
Numbers and connections
account.updated
One event for every account-level notice Meta sends, so you do not have to subscribe to a dozen. data.account holds:
Bans, restrictions and reconnections also move the connection’s status, so you get the matching
connection.* event as well.
Flows
Workflows
Campaigns
Calls
Only fires on numbers where Meta has enabled calling. Check capabilities.
Ads
Payments
The payload is the payment object from
GET /v1/payments/{id}, including your reference_id and metadata.
Platform
These matter if you resell LazyApp.customer.connected and setup_link.failed are the two to handle first — they tell you whether onboarding actually worked. See setup links.