Skip to content

Message statuses

Status Meaning Credit
queued Accepted and waiting for the sender reserved
sending The sender is rendering it and talking to the provider reserved
sent The provider accepted it used
delivered The provider confirmed delivery to the recipient’s server (needs webhooks) used
bounced The recipient’s server rejected it; hard bounces add the address to the suppression list used
complained The recipient marked it as spam; the address is suppressed used
failed Permanent error, or transient errors exhausted all retries refunded (not when a custom SMTP server may already have received the message, or when an unusually high share of the organization’s sends fails)
held Waiting for credits in the hold queue none yet
held_service_error Waiting for a broken service to be fixed refunded, reserved again on release
discarded Removed from the hold queue – the hold duration ran out or someone discarded it manually none

The API returns queued or held when you send. Everything else you see via getStatus() / GET /v1/messages/:id, History, or the Node SDK’s history().

queued → sending → sent → delivered
queued → sending → sent → bounced
queued → sending → (retry …) → sent
queued → sending → (failover to fallback service) → sent
queued → sending → failed
held → (credits added) → queued → sending → sent
held → (hold duration over) → discarded
queued → sending → (auth error, no fallback) → held_service_error → (service fixed) → queued → …

Each message has a timeline of events with timestamps. The dashboard’s History detail shows them with these labels:

Event Label in History Meaning
held Held Stored in the hold queue
released Released Released from the hold queue
queued Queued Waiting for the sender
sending Sending Handed to the provider
sent Sent The provider accepted it
failover Switched to fallback service The primary service failed, the fallback was used
retry Retry scheduled A transient error, another attempt follows
auto_reply Auto-reply created An auto-reply was created for this message
delivered Delivered Delivery confirmed via webhook
bounced Bounced Hard bounce (status bounced) or soft bounce (event only, the provider keeps retrying)
complained Marked as spam The recipient complained
opened / clicked Opened / Link clicked Open and click tracking from the provider
failed Failed Permanent error
refunded Credit refunded The reserved credit went back to its grant
discarded Discarded Removed from the hold queue

opened and clicked are events, not statuses – a delivered message that was opened stays delivered. Open tracking depends on the provider and on the recipient loading images, so treat it as an estimate.

Messages and their rendered content are kept for the history period of the plan they were sent on (7 to 180 days, see Plans), then deleted.