Create, bind and rotate API keys
A key proves which tenant is calling and which channels it may use. It is shown in full once, and a key with no binding cannot send at all.
Read this article →Four states, and one of them does not belong in the same bucket as the others. Reading suppressed as a failure sends you looking in the wrong place.
| Status | Meaning |
|---|---|
| submitted | Accepted and handed to the provider. This is where a successful send call lands — not the end of the story |
| delivered | The provider confirmed delivery to the handset |
| failed | Attempted and refused — either at submission, or later by provider receipt. errorCode carries the reason |
| suppressed | Never attempted. The platform stopped it before sending because the recipient had opted out |
A suppressed message never reached a provider, so there is no provider history to investigate. It is also not billed: providerMessageId and encoding are null, segments is 0, and it does not count toward your monthly totals.
Retrying it will not help — the recipient's opt-out state does not change because you retried. Re-enabling marketing to that number requires the recipient to express consent again.
The send endpoint accepts asynchronously. A success response means the platform submitted the message — it may already be on its way, or the provider may refuse it a moment later. The state that tells you the truth is delivered, which arrives by callback or by polling.
A key proves which tenant is calling and which channels it may use. It is shown in full once, and a key with no binding cannot send at all.
Read this article →One endpoint accepts asynchronously. A success code means the platform took the message — not that a handset received it.
Read this article →The platform POSTs to a URL you configure, with a token you generate. Two implementation details decide whether you lose events.
Read this article →