Skip to main content

1. Send a message

The API answers 202 right away with { "data": { "messageId": "3EB0…" } } — the id the message will have on WhatsApp — and sends it next, in the order you asked. The outcome arrives by webhook: MESSAGE.SENT once WhatsApp accepted it (✓ sent); delivery (✓✓), read or a failed send in the MESSAGE.STATUS_UPDATED webhook. You can also read it at GET /v1/messages/{messageId}.

2. Register a webhook

In the dashboard, open the instance → Webhooks & config tab → Add webhook, enter the destination URL and pick the events you want. You can have up to 5 webhooks per instance, each subscribing to its own set of events.

3. Receive events

Zapfy sends a POST to your URL with the canonical envelope:
Reply 2xx within 10 seconds to acknowledge receipt. On failure, Zapfy retries the event, so the same event can arrive more than once — see Handling events for how to deduplicate.