Skip to main content

Message statuses

Every message sent through Zapster goes through a lifecycle with well-defined statuses. The table below lists all the possible ones: Once a message reaches sent, failed, or canceled, the status is final. It does not change again.

Timestamps

Beyond the status, each message carries timestamps that show what happened and when. Not all of them are filled in on every message: it depends on the send type and on what happened afterward.

About delivery and read receipts

The delivered_at and read_at fields depend on factors outside Zapster’s control:
  • If the recipient turned off read receipts in their WhatsApp settings, read_at will never be filled in.
  • If the recipient’s phone has no internet, delivered_at may lag until they come back online.
  • These fields do not change the message status. Once the status is sent, it stays sent. Delivery and read are extra pieces of information, recorded only in the timestamps.
In practice, you can use delivered_at and read_at to build delivery and read reports, but do not rely on them for critical flows. Not every recipient will generate these events.

When a message fails

If a message has the status failed, the errors field carries a list with the details of what went wrong. The error structure varies a bit depending on the instance type. For official (WABA) instances, errors includes Meta’s error code and a direct link to their documentation:
Some common errors on WABA instances:
  • 131047: The 24-hour window has expired. The recipient did not reply in the last 24h and you tried to send a non-template message.
  • 132000: Template not found. Check that the template name and language are correct.
  • 131026: The number is not on WhatsApp or is invalid.
For unofficial (QR code) instances, the most common errors are:
  • The instance is offline (the phone lost connection or the session expired).
  • The number is blocked or does not exist on WhatsApp.
  • The WhatsApp send limit was reached.
In every case, the errors field carries enough information for you to understand what happened and decide whether it is worth trying again.