> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# TCPA quiet hours: federal, state, and tenant gates as one stack

> The three-layer dialing-window model — the platform-owned federal TCPA window, the seven-state mini-TCPA overlay, and your opt-in per-channel quiet-hours gate — how precedence resolves between them, why SMS has no federal window, and which deep page owns each layer.

# TCPA quiet hours: federal, state, and tenant gates as one stack

A US voice send can be held by up to three different dialing-window
gates. Each lives on its own page in these docs — federal on
[TCPA federal voice guard](/concepts/tcpa-federal-voice-guard), state
overlays on
[US state calling windows](/compliance/state-calling-windows), and your
own gate on
[Quiet hours configuration](/guides/quiet-hours-configuration). This
page is the map between them: read it once to understand the model, then
follow the links to the page that owns the layer you're working. If you
are debugging a blocked call, jump to the two troubleshooting pages
linked at the bottom — they work the errors; this page frames the
system.

## The three-layer model

Layer 1 — **the federal TCPA window (platform-owned).** US federal law,
47 U.S.C. § 227(b)(1)(B), permits outbound calls to US recipients only
from 8:00 AM to 9:00 PM in the recipient's local time. Campaign and
dialer voice sends to +1 recipients are checked against that window at
send time, fail closed when the recipient's timezone can't be resolved,
and cannot be relaxed by any tenant setting. This is the only
dialing-window control the platform owns outright — every other gate on
the platform is tenant-owned and default-open. The statutory exposure
($500–$1,500 per call) is why the asymmetry exists: the penalty is not
yours to waive, so the control is not yours to disable. Full treatment
on [TCPA federal voice guard](/concepts/tcpa-federal-voice-guard).

Layer 2 — **state mini-TCPA overlays (statutory, tenant-relevant).**
Seven states (Florida, Oklahoma, Mississippi, Louisiana, Alabama,
Arkansas, West Virginia) carry statutes with stricter hours or
day-of-week bans than the federal window. Federal law expressly permits
stricter state rules, so the binding posture for a recipient in one of
those states is the **intersection** — the most restrictive of the
federal window and the state overlay. Overlays can tighten past the
federal window (Florida ends at 8 PM; Florida, Mississippi, Louisiana,
Alabama, Arkansas, and West Virginia ban Sunday dialing outright) but
never widen it. The full per-state table, the area-code resolution
chain, and the citation trail live on
[US state calling windows](/compliance/state-calling-windows).

Layer 3 — **your per-channel quiet-hours gate (tenant-owned, opt-in).**
Each channel has a `quiet_hours.<channel>.enabled` toggle in your
organization settings, default **off**. Until you enable a channel,
outside-window sends on that channel dispatch and the decision is only
logged — advisory, never a hold. Once enabled, the gate hard-holds
outside your window with `422 QUIET_HOURS_BLOCKED` (voice:
`TCPA_DIALING_WINDOW_BLOCKED`). Your gate can only ever add restrictions
on top of the layers below it: it can narrow the envelope (9 AM–8 PM
instead of 8 AM–9 PM) but never widen it, and disabling it changes
nothing for the federal hard block. The configuration walkthrough is
[Quiet hours configuration](/guides/quiet-hours-configuration).

## Precedence — which gate fires

The three layers compose most-restrictive-wins. A send clears only when
it passes every layer that applies to it:

| Layer                                      | Voice campaign/dialer                                                                                                          | Voice ad-hoc 1:1                                     | Non-voice channels                               |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- | ------------------------------------------------ |
| Federal window (8 AM–9 PM recipient-local) | Hard block — no override; `422 TCPA_FEDERAL_DIALING_WINDOW_BLOCKED`                                                            | Advisory log only, unless your voice gate is enabled | Not evaluated — the federal window is voice-only |
| State mini-TCPA overlay                    | Hard block inside the intersected window; reason carries `outside_state_window` / `state_blocked_day` and the statute citation | Advisory log only, unless your voice gate is enabled | Not evaluated                                    |
| Tenant quiet-hours gate                    | Hard hold only if you enabled that channel; `422 QUIET_HOURS_BLOCKED` / voice `TCPA_DIALING_WINDOW_BLOCKED`                    | Same                                                 | Hard hold on every enabled channel               |

Reading the table: on campaign and dialer voice the federal layer is a
hard block no matter what your tenant settings say. On ad-hoc 1:1 voice
the federal evaluation still runs, but the outcome is advisory until you
turn your own `voice` gate on. Your gate always evaluates **on top of**
the federal and state layers — never instead of them.

When several layers disagree, the error code names the winner:
`TCPA_FEDERAL_DIALING_WINDOW_BLOCKED` is the platform's hard guard,
`TCPA_DIALING_WINDOW_BLOCKED` is your own gate, and a `citation` in the
error details means a state statute outranked both. The two
troubleshooting pages below decode the full matrix.

## SMS vs voice — the federal window is voice-only

The federal TCPA window applies to **telephone calls**: the statute,
47 U.S.C. § 227(b)(1)(B), and its implementing rule, 47 CFR
§ 64.1200(c)(1), both name calls, not messages. SMS (and MMS, RCS, and
the rest of the messaging channels) has **no federal time window** in
Orbit.

That has one concrete consequence: the only quiet-hours control that can
hold an SMS send is your own tenant gate — and only if you enabled the
`sms` channel. With the gate off, SMS marketing sends dispatch at any
hour. Counsel often expects a federal SMS window by analogy with voice;
the distinction matters, so state it explicitly in your posture review:
federal window = voice-only; SMS timing = your tenant gate or nothing.
The platform's
[posture FAQ](/compliance/posture-faq) answers gate precedence in the
same voice.

## Flipping the tenant voice gate

For ad-hoc 1:1 voice, one setting changes the posture:

| `quiet_hours.voice.enabled` | Outside the window                            | Unresolved timezone                                                                                                                   |
| --------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `false` (default)           | Call dispatches; advisory log only            | Call dispatches; decision logged                                                                                                      |
| `true`                      | Hard hold — `422 TCPA_DIALING_WINDOW_BLOCKED` | Follows `unknown_timezone_policy`: `skip` passes, `deny` blocks with `422 TCPA_TIMEZONE_UNKNOWN`, `enforce_utc` evaluates against UTC |

Campaign and dialer voice is hard-blocked outside the federal window
**regardless** of this toggle — flipping it only governs the ad-hoc
path. The wire-up (`PUT /api/v1/settings/general`, dashboard **Settings
→ Voice**) is walked in
[Quiet hours configuration](/guides/quiet-hours-configuration).

## Where each layer lives in these docs

| Question                                                             | Page                                                                                              |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Why the federal window is platform-owned and fail-closed             | [TCPA federal voice guard](/concepts/tcpa-federal-voice-guard)                                    |
| Which states overlay, their hours, days, and statute citations       | [US state calling windows](/compliance/state-calling-windows)                                     |
| How to enable/configure your own per-channel gate                    | [Quiet hours configuration](/guides/quiet-hours-configuration)                                    |
| The full gate stack the window gates sit inside (DNC, RND, RMD, BAA) | [Send gates](/compliance/send-gates)                                                              |
| Debugging a blocked ad-hoc or campaign voice call                    | [Dialing-window blocked voice calls](/troubleshooting/tcpa-window-blocked-calls)                  |
| Debugging a state-overlay block specifically                         | [State mini-TCPA blocked voice calls](/troubleshooting/tcpa-state-mini-tcpa-window-blocked-calls) |

This page is a router, not a fourth content page: nothing above repeats
the per-state table, the configuration walkthrough, or the error
diagnostics. It exists so the three-layer system is visible as one
system — the deep pages each own one layer on purpose, and staying a
router is what keeps them authoritative.

## See also

* [TCPA federal voice guard](/concepts/tcpa-federal-voice-guard) — the
  federal window, fail-closed posture, and the error codes it emits
* [US state calling windows](/compliance/state-calling-windows) — the
  seven-state overlay table and the intersection rule
* [Quiet hours configuration](/guides/quiet-hours-configuration) — the
  tenant gate end to end
* [Send gates](/compliance/send-gates) — the complete send-time gate
  stack
* [Dialing-window blocked voice calls](/troubleshooting/tcpa-window-blocked-calls)
  and
  [State mini-TCPA blocked voice calls](/troubleshooting/tcpa-state-mini-tcpa-window-blocked-calls)
  — the reactive debugging pages for this layer cake
