Consent, suppression, and quiet hours
Record proof, enforce campaign-scoped consent, and honor organization-wide opt-outs.
Proactive SMS requires an active consent record for the workspace, recipient, and the sender's current 10DLC campaign. A direct reply may use the 24-hour recipient-initiated conversation exception, but suppression always wins.
Create one record with POST /v1/sms/consents or import up to 1,000 JSON records with POST /v1/sms/consents/import:
{
"recipient": "+12025550123",
"campaign_id": "campaign_...",
"source": "webform",
"proof_reference": "signup/form-submission-982",
"proof": "Consent checkbox text and captured form payload",
"timezone": "America/New_York",
"captured_at": "2026-09-01T13:00:00Z"
}Speko stores a SHA-256 proof hash rather than returning raw proof. Sources are inbound, api, keyword, webform, paper, verbal, and import. Revoke with POST /v1/sms/consents/{id}/revoke.
Keywords
Exact normalized STOP-family keywords create an organization-wide suppression, revoke applicable active consents, pause automation, and emit sms.opted_out. START/UNSTOP lifts suppression and creates consent for the receiving number's current campaign. HELP does not alter consent.
Telnyx Advanced Opt-Out sends the carrier acknowledgement. Speko does not send a duplicate STOP/START/HELP response.
Read the current state through GET /v1/sms/consents and GET /v1/sms/suppressions. Consent and opt-out audit facts are retained for seven years. Message text follows the configurable 30–3,650 day retention policy (730 days by default).
Precedence
- Active organization-wide suppression blocks every sender.
- Proactive traffic requires campaign-scoped active consent and a timezone.
- A normal inbound message opens the 24-hour conversational reply window.
- Quiet hours shift proactive traffic to the next 08:00–21:00 recipient-local window, including daylight-saving transitions.