In brief
- Suppression does not spend credit or call the provider — the send stops with
RECIPIENT_SUPPRESSED. - Transient provider failures do not create suppression automatically.
- Permanent bounces, complaints, and
STOPare durable signals and may create an entry on their own.
Codes in the suppressions API
In message sending
Day-to-day situations
Customer sent STOP via SMS
Customer sent STOP via SMS
The system creates a global phone suppression. SMS, WhatsApp, RCS, and voice are blocked. This is different from email marketing unsubscribe.
I imported CSV and some rows failed
I imported CSV and some rows failed
In batch (
batch/add), each row has an individual result. Invalid rows do not block valid ones. Fix only those that returned invalid.I removed suppression but send still fails
I removed suppression but send still fails
Check that you removed the correct normalized value. Use
DELETE /v1/suppressions/by-identity with the same type and value on the list.Suppression vs tag vs topic
Suppression vs tag vs topic
Tag organizes contacts. Topic is marketing consent. Suppression blocks sending. Email unsubscribe does not block SMS on its own.
Next steps
- Introduction: concepts and differences
- Webhook events: track in real time
- API Key scopes: permissions

