Skip to main content
Subscribe to what you handle by listing types in 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.