Message Status & Response Codes
What the numeric status field means, and how a message moves through the delivery lifecycle.
Last updated 05 Aug 2026
When you send a message, the API response includes a numeric status and a matching status_label. This reflects the state at the moment of the API call - the status then updates asynchronously as Meta processes and delivers the message.
Status values
status | status_label | Meaning |
|---|---|---|
| 0 | pending | Accepted by Riffre and waiting to be sent to Meta. |
| 1 | sent | Handed off to Meta's WhatsApp Cloud API. |
| 2 | delivered | Delivered to the recipient's device. |
| 3 | read | Read by the recipient (subject to their read-receipt privacy setting). |
| 4 | failed | Rejected by Meta or permanently failed after retries - for example, an unapproved template or an invalid recipient number. |
| 5 | received | An inbound message received from a customer (used for messages your account receives, not ones you send). |
| 10 | processing | A transient in-progress state used internally by the delivery queue. |
Every response from Send a Text Message, Send a Template Message, Send Media Messages and Send Interactive Messages starts at status: 0 (pending), since sending is always asynchronous - a 202 Accepted response means "queued", not "delivered".
Tracking status after the initial response
Use the message_id from the response to look up the message's current status in your dashboard's conversation view, or configure a webhook to receive status updates as they happen (see your dashboard's API & Webhooks page for your account's webhook event log).
HTTP status codes across all endpoints
| HTTP status | Meaning |
|---|---|
| 201 | Media uploaded successfully. |
| 202 | Message accepted and queued. |
| 401 | Authentication failed. |
| 405 | Wrong HTTP method (only POST is supported). |
| 422 | Request validation failed. |
| 429 | Rate limit exceeded. |
| 402 | Payment Required - insufficient wallet balance, or an unpaid account maintenance fee for this WhatsApp number. |
| 500 | An unexpected failure occurred while processing the message or media. |
See Errors for the full error response shape and common error slugs.