Every WhatsApp message sent through Wazapin goes through a series of status changes as it travels from your application to the recipient’s device.

When this matters

Tracking the message lifecycle is important when:
  • Confirming that critical notifications (like OTPs) were delivered to the user’s device.
  • Monitoring read rates for marketing or customer support chats.
  • Troubleshooting slow deliveries or message failures.
  • Handling duplicate webhook deliveries.

Lifecycle states

Tracking lifecycle changes

There are two ways to track these status updates:
  1. Webhooks (Recommended): Subscribe to the message.status_update event. Wazapin will post status updates to your server in real time.
  2. GET Polling: Call the GET /v1/messages/ endpoint to retrieve the current state of a message.

Delivery idempotency

Webhook delivery is guaranteed using a retry mechanism, which can occasionally result in duplicate events. To prevent duplicate processing: