Event: failed
Triggered when the provider returns a permanent failure for the recipient. For prepaid clients this also automatically releases the reserved credit for that single recipient back to your available balance.
Emitted for SMS and WhatsApp. As with delivered, the data shape is
identical on both channels. Provider-side status codes and message identifiers
are not exposed - branch on event / data.status only.
Payload
The API key whose broadcast produced this event, so a consumer whose several
keys point at one endpoint can tell them apart. null for a dashboard-composed
send or an unattributable message.
When Teekrr built the payload (ISO 8601, UTC).
Payload shape for sent / delivered / read / failed. Identical on every
channel - one handler parses both SMS and WhatsApp. SMS emits only delivered
and failed; sent and read are WhatsApp-only.