Opt-out and data

Opt-out and suppression

STOP, HELP and START are three different branches. Configuring only the receipt endpoint is the mistake that makes the whole chain fail silently.

6 min read · updated 2026-10-13

Three keywords, three behaviours

Keywords are matched on the whole message, case-insensitively, tolerating surrounding punctuation and whitespace. Partial matches do not count.

ReceivedWhat the platform does
STOP / STOP ALL / UNSUBSCRIBE / CANCEL / END / QUIT / OPTOUT / OPT OUT (also 退订, ABMELDEN)Adds the number to that tenant's suppression list and sends nothing further of a marketing nature
HELP / INFOReplies with a fixed explanation. Does not add the number to any list
START / YES / UNSTOPRemoves the number from the suppression list and replies with a confirmation

Turn suppression on

  1. Point the receipt endpoint

    Configure /webhook/sms/{provider}?token=… in your provider dashboard so delivery results reach the platform.

  2. Point the inbound endpoint too

    Configure /webhook/sms/{provider}/inbound?token=… as well. This is the second, separate setting — and the one that is easy to forget.

  3. Send a test STOP

    Reply STOP from a phone, then send a marketing message to that number and confirm it comes back suppressed.

  4. Check the suppression list

    The console lists suppressed numbers and allows a manual release, alongside the automatic START keyword.

Scope. Configure only the receipt endpoint and opt-out suppression never triggers. Nothing errors — the chain simply stays silent, which is why this is worth checking first when a STOP appears to do nothing.

What the platform will not do for you

The gate reads messageType and nothing else. It does not inspect your content.

The inbound token proves which tenant the message belongs to. It does not prove the message genuinely came from that provider — provider signature verification is not implemented. Treat the token as routing, not as authentication.

Not every provider emits an opt-out keyword upstream. Where a provider handles opt-out itself at the carrier level, no inbound event is produced, so our record is a reconciliation aid rather than the only line of defence.

Re-subscribing, and why the database being right is not enough

Suppression records are not deleted on re-subscribe — the record is closed and the consent history is kept for audit. There is an operator-side console action as well as the START keyword.

Clearing the number on our side only affects our sending. In some cases, including toll-free traffic, the carrier may have blocked the number independently, and the recipient has to take their own action as well. That step cannot be performed by code.

Keep reading

What we store, and for how long

The platform keeps metadata about your messages, not their content. Here is exactly what that means for your own records.

Read this article →

Respond to a data request about a recipient

What the platform holds about a message, what it deliberately does not, and where the data subject relationship actually sits.

Read this article →

Getting started

Connect a provider, issue a key, send your first message — and meet the two defaults that quietly cost money if you miss them.

Read this article →