Omnichannel fallback compliance matrix
Choosing a primary channel is not only a reach and cost decision. Each channel carries a different compliance burden, and a fallback chain only works when the next channel in the chain is one your tenant is actually permitted to use. This page consolidates the compliance comparison that otherwise lives scattered across Country Compliance Requirements, STIR/SHAKEN Attestation Posture, and Outbound send gating. Read it once before you assemble a fallback chain; then dive into the deep page for the one or two planes your traffic actually touches.1. The three planes you weigh per channel
Before you pick a primary or fallback channel, weigh three independent planes. A channel can clear one plane and fail another — the matrix below scores each channel on all three.- Registration plane — what you must register before the first send: US 10DLC brand and campaign, DLT (India), per-country Sender-ID registration, toll-free verification, or nothing. Until registration clears, the channel is either blocked (fail-closed, as with Sender-ID countries) or degraded (unregistered 10DLC traffic gets filtered upstream).
- Window plane — when you may send, recipient-local: the federal TCPA voice window plus state mini-TCPA overlays on US voice, or the per-channel quiet-hours windows you configure yourself everywhere else.
- Consent plane — the opt-in regime the traffic must satisfy: TCPA opt-in for US SMS marketing, GDPR prior-consent in the EU, CAN-SPAM and CASL for email, Meta’s opt-in plus template rules on WhatsApp.
2. The per-channel matrix
One row per channel: the registration burden, the window constraints, the opt-in regime, and any attestation layer.
The per-country rows behind the SMS column come from
GET /api/v1/compliance/country-rules, which is the read-only reference
the send-time gates consult — query it per market before you commit a
channel plan.
3. The fallback decision table
A fallback hop is legal to configure only when the destination channel clears all three planes for that recipient. Run these checks in order; the first no stops the chain.
Two rules hold on every hop:
- Consent is per channel. Opting into email does not opt the contact into SMS; a fallback hop re-runs the destination channel’s opt-out, suppression, and quiet-hours gates — the same chain documented in Outbound send gating.
- The voice window cannot be configured away. Any chain that ends in US voice is bounded by the federal TCPA window. Plan chains that degrade to SMS or email rather than assuming voice is always available.
4. Where each control lives
Per channel, per plane — the surface where you set the posture:- Quiet hours per channel —
settings → quiet_hours.<channel>.enabledviaPUT /api/v1/settings/general; the full gate order is on Outbound send gating and the window mechanics on Send Gates. - Opt-out and suppression — STOP keywords, the Consent API, and bulk
import; scope decides breadth (
all-scope entries gate voice too). Details on Opt-Out & Suppression Lists. - Sender registration —
POST /api/v1/compliance/sender-id-registrationsper country; the per-market rules it enforces are readable throughGET /api/v1/compliance/country-rules. - Attestation target and reporting — Settings → Compliance → Attestation; fields and semantics on Attestation Posture.
- DNC scrub — org setting
dnc_sync_enabled, queried throughGET /api/v1/compliance/dnc/check; DNC Scrubbing covers the fail-open posture.
5. Two worked channel-selection examples
US mixed traffic — 10DLC SMS primary, owned-DID voice fallback. A tenant ships order-status notifications to US recipients and wants a voice fallback for “delivery exception” alerts. Primary is SMS on an approved 10DLC campaign; the fallback chain ends in voice from DIDs the tenant owns, so originations attest A and clear the branded-calling screen when enabled. Every hop into voice is still bounded by the federal window — an exception alert at 22:30 recipient-local holds until the window opens; the chain falls back to holding the SMS rather than dialing. Setup order: register the 10DLC brand and campaign first (lead time), then set per-channel quiet hours, then attach the owned DIDs and declare the attestation target. EU traffic — Sender-ID SMS, email with GDPR prior-consent. A tenant runs lifecycle notifications across France and Germany. SMS rides registered alphanumeric Sender IDs where the corridor recommends them (FR per the country-rules reference), email handles long-form drift (templates, invoices) under GDPR prior-consent evidenced through the Consent API. The fallback email→SMS hop only runs for contacts whose consent record carries the SMS channel — otherwise the hop is refused and the send waits for the email retry window. Registration lead time is days per Sender-ID country; the DNS identity (SPF/DKIM/DMARC) clears the same week, so email opens first and SMS joins as registrations land.See also
- Country Compliance Requirements — the per-country sender-type and registration reference
- STIR/SHAKEN Attestation Posture — target levels, downgrade reporting, delegate certificates
- Outbound send gating — the ordered gate chain every send walks
- Cross-channel fallback — the chain model this matrix feeds
- Fallback and cascade planes — where fallback chains execute
- Tenant compliance posture overview — the toggle map across every compliance surface
- Consent Management — per-contact, per-channel consent records
- Send Gates — quiet-hours windows and the emergency stop