Skip to main content

Free Tool: TCPA Compliance Checklist

The TCPA compliance checklist on the developer tools hub is a no-sign-up self-assessment that walks the four controls a send to US recipients passes through on Orbit: quiet hours, opt-out suppression, DNC scrub, and STIR/SHAKEN attestation posture. Pick a destination country, mark the gates you have configured, and the page scores your posture in plain language with a docs link per open item. This guide works the tool end to end: what each verdict means, how the score is computed, which countries change the gate list, and which gates are yours to toggle versus the one the platform owns.
Every gate on the checklist except one is tenant-owned: Orbit surfaces these controls as opt-in settings; nothing on the page enforces or verifies what you mark, and the self-assessment is exactly that. The one platform-enforced control is the federal 8 AM–9 PM voice window on US recipients (Section 4). For guidance on specific configurations, not legal advice — confirm your TCPA obligations with counsel.

1. The dispatch gate diagram

The checklist mirrors the order a real outbound send evaluates. Mark gates in this sequence, because a hole upstream makes a green check downstream unreachable in production:
A send is released only when every layer passes. On the checklist page a gate you have covered shows a green check; a gate you have left open shows its docs link next to an amber marker. The page is browser-side — your marks never leave your browser, and there is no account hop — so treat those marks as a note to your future self, not as a posture Orbit records.

2. Per-gate matrix — tenant toggle or platform floor

The Warning the tool shows in app is the summary; here it is expanded per gate. Read this before you interpret a green row — most gates are fully yours to configure, and one is not. The per-country delta applies one modifier: the federal voice floor only exists for US (+1) recipients. Launch Australia on the same checklist and the voice window row is irrelevant — there is no federal floor, and only your own quiet-hours gate stands between dispatch and 8 PM recipient-local. The other three gates apply everywhere with regional to-look-ups: Canada (Canada’s Do-Not-Call list on the DNC scrub row, CASL consent rules), UK (PECR/consent register), Australia (Spam Act), and India (DLT registration semantics). The country selector on the tool links each gate’s hint to the country compliance reference — that authenticated reference is authoritative, the tool footer links to it.

3. Work each gate to accepted

Open the tool, pick your launch country, and work the gates in dispatch order. Verify each one with a concrete, page-countable acceptance check — not a green check in your head.
1

Quiet hours

Own the recipient-local window per channel. Acceptance: (1) the enabled channels list matches the channels you dispatch on; (2) windows are ≤ the channel defaults (08:00–21:00 SMS/voice, 09:00–21:00 Meta); (3) a blocked-looking call to quiet-hours preview returns allowed_now and a bounded reason.
2

Opt-out suppression

Stop keywords qualify every downstream send. Acceptance: (1) STOP/START alias table covers your reply vocabulary; (2) revocations propagate across campaigns, flows, and 1:1 sends; (3) a suppressed recipient returns the send-gate suppressed verdict on the send gates page.
3

DNC scrub

Opt into the Do-Not-Call registers your launch country needs. Acceptance: (1) dnc_sync_enabled is true on your org; (2) federal_feeds_synced: true on every GET /dnc/check response when a register snapshot exists; (3) batch pre-flight on the campaign list returns verdicts per number (POST /dnc/scrub, ≤500 per request).
4

STIR/SHAKEN attestation

Declare your outbound target and inbound floor. Acceptance: (1) outbound target set to full or partial attestation per your trunk; (2) the inbound floor blocks calls below that declaration; (3) the attestation posture page shows the declared pair and the measured verdict per destination.
Until each acceptance criterion holds, the mark on the tool is an open item — and the scoring in Section 5 reads it that way up.

4. The federal 8 AM–9 PM US voice window — the one gate the platform owns

Read this one distinctly from the rest, because it is the only gate on the page that you cannot toggle.
The 47 U.S.C. § 227(b)(1)(B) telemarketing window caps automated US voice calls to 8:00 AM–9:00 PM recipient-local time. The statutory exposure of $500–$1,500 per call lands on the platform on which the call ran, so Orbit enforces this on campaign and dialer traffic with no per-organization opt-out: a call placed outside the window returns 422 TCPA_FEDERAL_DIALING_WINDOW_BLOCKED, and if the recipient timezone cannot resolve the call fails closed and stays blocked. The voice toggle on your own quiet-hours gate does not relax this; ad-hoc 1:1 dials from the dashboard or softphone are advisory until you enable that toggle. The rationale is on TCPA federal voice guard, and the state overlays (Florida, Oklahoma, etc. narrow the window further) live on US state calling windows.
Non-US recipients skip the federal wire entirely — the checklist hides this row for non-US selections. The quiet-hours checker tool walks one window verdict for a chosen US timezone if you want the read-only version of this gate before launch.

5. Scoring — what the tier means for a live send

The page computes a posture tier from your checks: cover all four gates (and the federal window verified for US voice) and the score reads ready — a green page with a launch-safe framing. Leave a gate open and the score demotes to partial, with docs links on the open items. Leave the federal window unchecked on a US selection and the score is blocked-for-voice, because no tenant arrangement relaxes that control. The scoring is a self-assessment label, not a signal Orbit persists — nothing leaves your browser. Use it as a launch checklist the same day you schedule the campaign, and re-run it when your gate configuration changes. The scoring is not legal advice.

6. Beyond the checklist — verify a live send

The tool is the browser-side front end; the same four gates are server-checked per send. Verify them outside the page before a large batch. Quiet-hours against a live send. Preview a recipient in the batch;
A response of allowed_now: true with reason: allowed clears the first gate; an outside_window verdict returns next_allowed_at — the DST-safe ISO you schedule to. The full field contract, per-channel semantics (voice campaign vs 1:1, email fallback order, pass-through channels) is on the quiet-hours preview page. DNC against a batch. The scrub endpoint returns a per-number verdict with on_dnc/clear counts so a flagged list surfaces before the campaign wires up:
Route flagged numbers to suppression pre-launch; the campaign workflow for chunking and re-scrub cadence is on Batch DNC Pre-Flight Scrubbing. Billing — the fifth gate the checklist does not check. Wallet gates front every gate above: a depleted balance holds the send with 402 INSUFFICIENT_BALANCE before quiet hours, DNC, and consent run. Top up and re-check your spend caps — a pause_outbound or block_outbound threshold returns the same 402 until the alert is cleared.

See also