The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.
The emergency stop is an org-wide kill switch — one flag, owned by
your organization, that halts every outbound dispatch path (SMS, MMS,
voice origination, dialer campaign activation) until you lift it. It
exists for the moment when throttling a channel or scrubbing a list is
not enough: a suspected breach, a runaway campaign, a litigator or
carrier exposure you need frozen now.Only the owner or admin roles can read status, activate, and
deactivate the switch; developer and viewer roles receive 403. The
scope is your organization only — you operate the switch, Orbit
operates the platform.
Activation halts outbound dispatch for the entire organization
immediately. Blocked sends are rejected with
403 ORG_COMPLIANCE_EMERGENCY_STOP before provider dispatch, so no
balance is debited for them. Transactional Verify/OTP sends and
email are not gated — those run on separate delivery paths.
Deactivate as soon as the incident is resolved.
All endpoints below are rooted at
https://api.orbit.devotel.io/api/v1/compliance.
{ "data": { "active": true, "activated_at": "2026-09-02T14:03:11.412Z", "activated_by": "usr_01J1F9…", "reason": "Suspected list contamination — pausing all sends" }}
Activate — flips the switch ON. The body is optional; when you
send one it must be a JSON object with at most one field, reason —
a non-empty string (after trimming) of at most 500
characters. A body that violates the constraint is rejected with
422 VALIDATION_ERROR:
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/emergency-stop/activate \ -H "Authorization: Bearer $ORBIT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "reason": "Suspected list contamination — pausing all sends" }'
Deactivate — lifts the halt:
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/emergency-stop/deactivate \ -H "Authorization: Bearer $ORBIT_API_KEY"
Both write paths are rate-limited to 5 requests per minute — one
decisive click plus a few retries, never a settings-thrash vector.
Deactivation clears activated_at / activated_by / reason back to
null, while the activation record stays in the audit log.
Send gates (quiet hours, DNC, RND, RMD, DNO)
are tenant-owned, per-decision controls: each one evaluates a specific
regulatory signal before a send dispatches. The emergency stop layers
on top of them as the blunt instrument — when it is active, every
outbound dispatch is rejected with
403 ORG_COMPLIANCE_EMERGENCY_STOP before the individual gate chain
matters. Use the gates for posture; use the stop for an incident.The fail-open semantics below interact with each gate differently;
see the send-gates page for the per-gate fail-open / fail-closed
posture table.
Resolve the incident root cause — re-key credentials, halt the
runaway campaign, scrub the bad list.
POST /emergency-stop/deactivate lifts the halt (owner/admin).
GET /emergency-stop confirms active: false; queued or blocked
sends can then be re-dispatched.
The state is cached for at most 30 seconds at the API layer,
so plan for enforcement (and lifting it) to take effect within half
a minute of the POST. A per-send database round-trip would otherwise
sit on the message hot path.
Audit-log records. Every activate and deactivate writes an entry
to your organization’s audit log with the acting user id, the
timestamp, and (on activate) the reason. The deactivation entry
also records the previous activated_at / activated_by so a
reviewer can pair the two events. Deactivation deliberately clears
the live state fields to null — the audit log, not the live
flag, is the durable record for post-incident review. Verify a drill
or a real activation by querying
GET /settings/audit-logs filtered to
resource=organization:
A real activation writes an *.activate event pair-matched by the
later *.deactivate entry on the same resource; run the filter as
part of every drill so the review habit forms before an incident.Fail-open semantics. If the state lookup itself fails (a database
hiccup), the gate treats the switch as not active — OFF — and
logs a warning; a transient read failure cannot black-hole all
outbound traffic. This is a deliberate fail-open choice on
lookup failures only, and it applies only to the emergency stop —
the narrower per-decision gates keep their own posture (fail-closed
for DNC and RND, per the send-gates posture table). A lookup failure
falls open; an explicitly ACTIVE switch always blocks. If the switch
was active when the database flaked, re-POST activation once the
database recovers and enforcement resumes.
This page is the API reference for the control. For the full incident
operator’s runbook — when to reach for it, the fail-safes that bound
it, and how to run it as a launch-day drill — see
Emergency Stop Runbook. The
summarized endpoint surface also lives inside
Send Gates.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Devotel Orbit Documentation","colors":{"primary":"#325FEC","light":"#6E8BF2","dark":"#1E3FB0"},"logo":{"light":"https://mintcdn.com/zeelaltd/MGUsS3FF5JAMebgK/logo/light.svg?fit=max\u0026auto=format\u0026n=MGUsS3FF5JAMebgK\u0026q=85\u0026s=379027fc60301d5269699b31297af81f","dark":"https://mintcdn.com/zeelaltd/MGUsS3FF5JAMebgK/logo/dark.svg?fit=max\u0026auto=format\u0026n=MGUsS3FF5JAMebgK\u0026q=85\u0026s=67a70e8b7c67a32ef24574aa908f98ae"},"favicon":"https://mintcdn.com/zeelaltd/MGUsS3FF5JAMebgK/favicon.svg?fit=max\u0026auto=format\u0026n=MGUsS3FF5JAMebgK\u0026q=85\u0026s=d92b46f00c590bc9435ef6eb4504b678","api":{"openapi":["openapi.yaml"],"mdx":{"server":"https://api.orbit.devotel.io"}},"navbar":{"links":[{"href":"https://orbit.devotel.io","label":"Dashboard"},{"href":"https://status.orbit.devotel.io","label":"Status"},{"href":"https://orbit.devotel.io/pricing","label":"Pricing"}],"primary":{"type":"button","label":"Sign Up","href":"https://orbit.devotel.io/en/signup"}},"footer":{"socials":{"twitter":"https://twitter.com/devotel","github":"https://github.com/devotel","linkedin":"https://www.linkedin.com/company/devotel"}},"search":{"prompt":"Search Orbit docs"},"seo":{"metatags":{"canonical":"https://docs.orbit.devotel.io"},"indexing":"all"},"integrations":{"posthog":{"apiKey":"phc_XtdzTPv9Crueb9iavWKvJv1W2ctvKVt4EMHHQJ01o57","apiHost":"https://us.i.posthog.com"}},"errors":{"404":{"redirect":false}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zeelaltd","hasAudioNarration":false,"actualSubdomain":"zeelaltd","customDomains":["docs.orbit.devotel.io"],"gitSource":{"type":"github","owner":"dddfedddddd","repo":"devotel-cpaas","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9aa5c5ef2c10d596e2143","collectionId":"07f15cc4-35fd-4b3b-ad00-a4f324f440c8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9aa5c5ef2c10d596e2143"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae9ad0cee46fb4ca55d3f55","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":4525},{"language":"default","tag":"All Endpoints","count":4157},{"language":"default","tag":"Guides","count":1559},{"language":"default","tag":"Documentation","count":849},{"language":"default","tag":"Voice","count":575},{"language":"default","tag":"Reference","count":512},{"language":"default","tag":"Compliance","count":498},{"language":"default","tag":"Concepts","count":381},{"language":"default","tag":"Agents","count":328},{"language":"default","tag":"CDP","count":316}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"compliance/emergency-stop","slug":"/compliance/emergency-stop","pageMetadata":{"title":"Emergency Stop: The Org-Wide Outbound Halt","description":"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.","href":"/compliance/emergency-stop"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`emergency-stop`,children:`Emergency Stop`}),`\n`,_jsxs(_components.p,{children:[`The emergency stop is an `,_jsx(_components.strong,{children:`org-wide kill switch`}),` — one flag, owned by\nyour organization, that halts every outbound dispatch path (SMS, MMS,\nvoice origination, dialer campaign activation) until you lift it. It\nexists for the moment when throttling a channel or scrubbing a list is\nnot enough: a suspected breach, a runaway campaign, a litigator or\ncarrier exposure you need frozen `,_jsx(_components.em,{children:`now`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Only the `,_jsx(_components.strong,{children:`owner`}),` or `,_jsx(_components.strong,{children:`admin`}),` roles can read status, activate, and\ndeactivate the switch; developer and viewer roles receive 403. The\nscope is your organization only — you operate the switch, Orbit\noperates the platform.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Activation halts outbound dispatch for the entire organization\nimmediately. Blocked sends are rejected with\n`,_jsx(_components.code,{children:`403 ORG_COMPLIANCE_EMERGENCY_STOP`}),` before provider dispatch, so no\nbalance is debited for them. Transactional `,_jsx(_components.strong,{children:`Verify/OTP`}),` sends and\n`,_jsx(_components.strong,{children:`email`}),` are `,_jsx(_components.strong,{children:`not`}),` gated — those run on separate delivery paths.\nDeactivate as soon as the incident is resolved.`]})}),`\n`,_jsxs(_components.p,{children:[`All endpoints below are rooted at\n`,_jsx(_components.code,{children:`https://api.orbit.devotel.io/api/v1/compliance`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-endpoints`,children:`The endpoints`}),`\n`,_jsx(_components.p,{children:`Three endpoints, all owner/admin:`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Check status`}),` — reads `,_jsx(_components.code,{children:`active`}),`, plus `,_jsx(_components.code,{children:`activated_at`}),`,\n`,_jsx(_components.code,{children:`activated_by`}),`, and `,_jsx(_components.code,{children:`reason`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.orbit.devotel.io/api/v1/compliance/emergency-stop`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ORBIT_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Response (while the switch is ON):`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"active\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"activated_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-02T14:03:11.412Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"activated_by\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"usr_01J1F9…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Suspected list contamination — pausing all sends\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Activate`}),` — flips the switch ON. The body is optional; when you\nsend one it must be a JSON object with at most one field, `,_jsx(_components.code,{children:`reason`}),` —\na non-empty string (after trimming) of at most `,_jsx(_components.strong,{children:`500\ncharacters`}),`. A body that violates the constraint is rejected with\n`,_jsx(_components.code,{children:`422 VALIDATION_ERROR`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.orbit.devotel.io/api/v1/compliance/emergency-stop/activate`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ORBIT_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{ \"reason\": \"Suspected list contamination — pausing all sends\" }'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Deactivate`}),` — lifts the halt:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.orbit.devotel.io/api/v1/compliance/emergency-stop/deactivate`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ORBIT_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Both write paths are rate-limited to `,_jsx(_components.strong,{children:`5 requests per minute`}),` — one\ndecisive click plus a few retries, never a settings-thrash vector.\nDeactivation clears `,_jsx(_components.code,{children:`activated_at`}),` / `,_jsx(_components.code,{children:`activated_by`}),` / `,_jsx(_components.code,{children:`reason`}),` back to\n`,_jsx(_components.code,{children:`null`}),`, while the activation record stays in the audit log.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use-it`,children:`When to use it`}),`\n`,_jsx(_components.p,{children:`Reach for the emergency stop when the cost of one more outbound send\nexceeds the cost of halting everything:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Suspected breach`}),` — a compromised API key or sender behaving\noutside policy.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Runaway campaign`}),` — a misconfigured campaign or content mistake\ndispatching at volume.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Litigator or carrier exposure`}),` — a complaint spike, carrier block\nnotice, or regulator inquiry mid-flight.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For narrower problems use a narrower control: a bad list is a\n`,_jsx(_components.a,{href:`/compliance/dnc-scrub`,children:`DNC scrub`}),` case, a channel-specific pause is a\n`,_jsx(_components.a,{href:`/compliance/channel-rate-overrides`,children:`channel rate override`}),`, and\nindividual contacts belong on\n`,_jsx(_components.a,{href:`/compliance/opt-out-suppression`,children:`opt-out suppression`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`interplay-with-send-gates`,children:`Interplay with send gates`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/compliance/send-gates`,children:`Send gates`}),` (quiet hours, DNC, RND, RMD, DNO)\nare tenant-owned, per-decision controls: each one evaluates a specific\nregulatory signal before a send dispatches. The emergency stop layers\non top of them as the blunt instrument — when it is active, every\noutbound dispatch is rejected with\n`,_jsx(_components.code,{children:`403 ORG_COMPLIANCE_EMERGENCY_STOP`}),` before the individual gate chain\nmatters. Use the gates for posture; use the stop for an incident.`]}),`\n`,_jsx(_components.p,{children:`The fail-open semantics below interact with each gate differently;\nsee the send-gates page for the per-gate fail-open / fail-closed\nposture table.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`recovery-path`,children:`Recovery path`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Resolve the incident root cause — re-key credentials, halt the\nrunaway campaign, scrub the bad list.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`POST /emergency-stop/deactivate`}),` lifts the halt (owner/admin).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GET /emergency-stop`}),` confirms `,_jsx(_components.code,{children:`active: false`}),`; queued or blocked\nsends can then be re-dispatched.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The state is cached for at most `,_jsx(_components.strong,{children:`30 seconds`}),` at the API layer,\nso plan for enforcement (and lifting it) to take effect within half\na minute of the POST. A per-send database round-trip would otherwise\nsit on the message hot path.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`audit-verification-and-the-fail-open-posture`,children:`Audit verification and the fail-open posture`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Audit-log records.`}),` Every activate and deactivate writes an entry\nto your organization’s audit log with the acting user id, the\ntimestamp, and (on activate) the `,_jsx(_components.code,{children:`reason`}),`. The deactivation entry\nalso records the previous `,_jsx(_components.code,{children:`activated_at`}),` / `,_jsx(_components.code,{children:`activated_by`}),` so a\nreviewer can pair the two events. Deactivation deliberately clears\nthe live state fields to `,_jsx(_components.code,{children:`null`}),` — the `,_jsx(_components.strong,{children:`audit log`}),`, not the live\nflag, is the durable record for post-incident review. Verify a drill\nor a real activation by querying\n`,_jsx(_components.a,{href:`/guides/audit-log`,children:_jsx(_components.code,{children:`GET /settings/audit-logs`})}),` filtered to\n`,_jsx(_components.code,{children:`resource=organization`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.orbit.devotel.io/api/v1/settings/audit-logs?resource=organization\u0026action=activated\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ORBIT_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A real activation writes an `,_jsx(_components.code,{children:`*.activate`}),` event pair-matched by the\nlater `,_jsx(_components.code,{children:`*.deactivate`}),` entry on the same resource; run the filter as\npart of every drill so the review habit forms before an incident.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fail-open semantics.`}),` If the state lookup itself fails (a database\nhiccup), the gate treats the switch as `,_jsx(_components.strong,{children:`not active — OFF — and\nlogs a warning`}),`; a transient read failure cannot black-hole all\noutbound traffic. This is a deliberate fail-open choice on\n`,_jsx(_components.em,{children:`lookup failures`}),` only, and it applies only to the emergency stop —\nthe narrower per-decision gates keep their own posture (fail-closed\nfor DNC and RND, per the send-gates posture table). A lookup failure\nfalls open; an explicitly ACTIVE switch always blocks. If the switch\nwas active when the database flaked, re-POST activation once the\ndatabase recovers and enforcement resumes.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`full-runbook`,children:`Full runbook`}),`\n`,_jsxs(_components.p,{children:[`This page is the API reference for the control. For the full incident\noperator’s runbook — when to reach for it, the fail-safes that bound\nit, and how to run it as a launch-day drill — see\n`,_jsx(_components.a,{href:`/guides/compliance-emergency-stop`,children:`Emergency Stop Runbook`}),`. The\nsummarized endpoint surface also lives inside\n`,_jsx(_components.a,{href:`/compliance/send-gates`,children:`Send Gates`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Emergency Stop: The Org-Wide Outbound Halt","description":"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.","href":"/compliance/emergency-stop"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Emergency Stop","slug":"emergency-stop","depth":1,"children":[]},{"title":"The endpoints","slug":"the-endpoints","depth":2,"children":[]},{"title":"When to use it","slug":"when-to-use-it","depth":2,"children":[]},{"title":"Interplay with send gates","slug":"interplay-with-send-gates","depth":2,"children":[]},{"title":"Recovery path","slug":"recovery-path","depth":2,"children":[]},{"title":"Audit verification and the fail-open posture","slug":"audit-verification-and-the-fail-open-posture","depth":2,"children":[]},{"title":"Full runbook","slug":"full-runbook","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"zeelaltd","siteName":"Devotel Orbit Documentation","title":"Emergency Stop: The Org-Wide Outbound Halt - Devotel Orbit Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-25T10:29:39.600Z","originalFileLocation":"compliance/emergency-stop.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Devotel Orbit Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Emergency Stop: The Org-Wide Outbound Halt - Devotel Orbit Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Devotel Orbit Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.orbit.devotel.io/compliance/emergency-stop\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zeelaltd.mintlify.app/_mintlify/api/og/v2?division=Compliance\u0026amp;title=Emergency+Stop%3A+The+Org-Wide+Outbound+Halt\u0026amp;description=The+owner%2Fadmin-only+kill+switch+that+halts+all+outbound+dispatch+for+your+organization+%E2%80%94+status%2C+activation%2C+deactivation%2C+audit+verification%2C+and+the+recovery\u0026amp;theme=fc1a13fff9836a459e5f3c84\u0026amp;signature=37d80f6d2518003493e0df03afdff2c89a44e0ef407dc5259d9c72a0f0b3d263\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Emergency Stop: The Org-Wide Outbound Halt - Devotel Orbit Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zeelaltd.mintlify.app/_mintlify/api/og/v2?division=Compliance\u0026amp;title=Emergency+Stop%3A+The+Org-Wide+Outbound+Halt\u0026amp;description=The+owner%2Fadmin-only+kill+switch+that+halts+all+outbound+dispatch+for+your+organization+%E2%80%94+status%2C+activation%2C+deactivation%2C+audit+verification%2C+and+the+recovery\u0026amp;theme=fc1a13fff9836a459e5f3c84\u0026amp;signature=37d80f6d2518003493e0df03afdff2c89a44e0ef407dc5259d9c72a0f0b3d263\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/zeelaltd/OZczcmQ6pFioqvBy/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Devotel Orbit Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#325FEC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.orbit.devotel.io/compliance/emergency-stop\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/compliance/emergency-stop.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.orbit.devotel.io/#organization\",\"name\":\"Devotel Orbit Documentation\",\"url\":\"https://docs.orbit.devotel.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zeelaltd/MGUsS3FF5JAMebgK/logo/light.svg?fit=max\u0026auto=format\u0026n=MGUsS3FF5JAMebgK\u0026q=85\u0026s=379027fc60301d5269699b31297af81f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.orbit.devotel.io#website\",\"name\":\"Devotel Orbit Documentation\",\"url\":\"https://docs.orbit.devotel.io\",\"publisher\":{\"@id\":\"https://docs.orbit.devotel.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.orbit.devotel.io/compliance/emergency-stop#webpage\",\"url\":\"https://docs.orbit.devotel.io/compliance/emergency-stop\",\"name\":\"Emergency Stop: The Org-Wide Outbound Halt\",\"description\":\"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.\",\"dateModified\":\"2026-09-25T10:29:39.600Z\",\"isPartOf\":{\"@id\":\"https://docs.orbit.devotel.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.orbit.devotel.io/compliance/emergency-stop#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.orbit.devotel.io/compliance/emergency-stop#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Compliance\",\"item\":\"https://docs.orbit.devotel.io/compliance/posture-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Emergency Stop: The Org-Wide Outbound Halt\",\"item\":\"https://docs.orbit.devotel.io/compliance/emergency-stop\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.orbit.devotel.io/compliance/emergency-stop#article\",\"headline\":\"Emergency Stop: The Org-Wide Outbound Halt\",\"name\":\"Emergency Stop: The Org-Wide Outbound Halt\",\"description\":\"The owner/admin-only kill switch that halts all outbound dispatch for your organization — status, activation, deactivation, audit verification, and the recovery path.\",\"url\":\"https://docs.orbit.devotel.io/compliance/emergency-stop\",\"mainEntityOfPage\":{\"@id\":\"https://docs.orbit.devotel.io/compliance/emergency-stop#webpage\"},\"dateModified\":\"2026-09-25T10:29:39.600Z\",\"publisher\":{\"@id\":\"https://docs.orbit.devotel.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.orbit.devotel.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Devotel Orbit Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Devotel Orbit Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction to Orbit by Devotel","href":"/introduction"},{"title":"Quickstart: send your first SMS, call, or email","href":"/quickstart"},{"title":"Voice quickstart: place your first AI voice call","href":"/voice/quickstart"},{"title":"Outbound calls with an AI voice agent","href":"/voice/ai-agent-outbound-calls"},{"title":"Return an escalated call to the AI agent (handback)","href":"/voice/ai-agent-handback"},{"title":"Emergency Calling (911 / 112 / 999 / 000)","href":"/voice/emergency-calling"},{"title":"Hot-desking (shared-device sign-in)","href":"/voice/hot-desking"},{"title":"Per-user call forwarding (Find Me / Follow Me)","href":"/voice/call-forwarding"},{"title":"Browser softphone network requirements for corporate networks","href":"/voice/network-requirements"},{"title":"Hold and pause reason codes: tagging why agents hold a call or step away","href":"/voice/hold-reason-codes"},{"title":"IVR intents: NLU routing for inbound voice callers","href":"/voice/ivr-intents"},{"title":"Paging groups, ring groups \u0026 call park","href":"/voice/paging-ring-groups-call-park"},{"title":"Inbound queue SLA forecast: pre-suggest callback before breach","href":"/voice/sla-breach-forecast-callbacks"},{"title":"Inbound queue SLA forecast + virtual callback gate","href":"/voice/queue-sla-forecast-callback"},{"title":"Voice queue callbacks with SLA policies and scheduling","href":"/voice/callbacks-scheduling"},{"title":"Per-queue SLA breach alerting and escalation policies","href":"/voice/queue-sla-escalation-policies"},{"title":"Queue SLA breach: worked SDK samples","href":"/voice/queue-sla-breach-samples"},{"title":"Dialer dispositions: outbound call outcome routing","href":"/voice/dialer-dispositions"},{"title":"Wrap-up codes: disposition capture on every conversation","href":"/voice/wrap-up-codes"},{"title":"Call disposition tags: tenant-wide call labeling","href":"/voice/call-disposition-tags"},{"title":"Call QA scorecards: rubric grading, trends, and auto-scoring","href":"/voice/call-qa-scorecards"},{"title":"Voice Agent Quality Index (VAQI): latency, turn-taking, and barge-in","href":"/voice/vaqi"},{"title":"Searchable recording and transcript library (QA)","href":"/voice/recording-library"},{"title":"Secure payment capture: take card numbers in a live call","href":"/voice/secure-payment-capture"},{"title":"Attendant console: run a front desk from one screen","href":"/voice/attendant-console"},{"title":"Agent hand-raise: request assistance on a live call","href":"/voice/agent-hand-raise"},{"title":"Colleagues: live presence and click-to-call","href":"/voice/colleagues"},{"title":"BLF presence: live extension state over REST and SSE","href":"/voice/blf-presence"},{"title":"Voice extensions (SIP credentials)","href":"/voice/extensions"},{"title":"Voice conferences: create, manage, and end conference bridges","href":"/voice/conferences"},{"title":"Conference failure-attribution analytics","href":"/voice/conferences-failure-analytics"},{"title":"Live call transcription","href":"/voice/live-call-transcription"},{"title":"Live transcript streaming","href":"/voice/transcript-stream"},{"title":"Transcription operations","href":"/voice/transcription-operations"},{"title":"Bring your own speech credentials (STT/TTS)","href":"/guides/voice-byo-speech-credentials"},{"title":"Live-call speech failover on Classic and outbound calls","href":"/voice/live-call-stt-failover"},{"title":"Supervisor live speech analytics stream","href":"/guides/supervisor-live-speech-analytics-stream"},{"title":"Authenticate Orbit API requests with keys and tokens","href":"/authentication"},{"title":"Docs languages and translations","href":"/docs-languages"},{"title":"Docs contribution guide","href":"/docs-contribution-guide"},{"title":"Settings hub: map and posture","href":"/settings/overview"},{"title":"Settings: CSAT console walkthrough","href":"/guides/settings-csat-console"},{"title":"Settings → Integrations: OAuth and credential connections","href":"/guides/settings-integrations-console"},{"title":"Settings: Native Chat channel toggles","href":"/guides/settings-channels-native-chat"},{"title":"Settings: Telegram channel connection and toggles","href":"/guides/settings-channels-telegram"}]},{"group":"Channels","pages":[{"title":"Send and receive SMS messages worldwide","href":"/channels/sms"},{"title":"Send picture and multimedia messages over MMS","href":"/channels/mms"},{"title":"Send and receive WhatsApp Business messages","href":"/channels/whatsapp"},{"title":"Apple Messages for Business","href":"/channels/apple-messages"},{"title":"RCS Business Messaging: rich cards, carousels, branding","href":"/channels/rcs"},{"title":"Send Viber business and SMPP-tier messages","href":"/channels/viber"},{"title":"Send and receive Telegram bot messages","href":"/channels/telegram"},{"title":"USSD channel for 2G and feature-phone menu sessions","href":"/channels/ussd"},{"title":"Send and receive LINE messages through Orbit","href":"/channels/line"},{"title":"Send KakaoTalk Alimtalk and Friendtalk messages","href":"/channels/kakao"},{"title":"Send Zalo ZNS template messages in Vietnam","href":"/channels/zalo"},{"title":"Send WeChat Official Account template messages","href":"/channels/wechat"},{"title":"Send and receive Instagram Direct Messages","href":"/channels/instagram"},{"title":"Send and receive Facebook Messenger conversations","href":"/channels/messenger"},{"title":"Install Orbit into a Slack workspace via OAuth","href":"/channels/slack"},{"title":"Send transactional and marketing email with Orbit","href":"/channels/email"},{"title":"Reading the email message status ladder","href":"/guides/email-message-status-ladder"},{"title":"Send email through the SMTP relay","href":"/channels/email-smtp-relay"},{"title":"Programmable voice calls, SIP trunks, and IVR flows","href":"/channels/voice"},{"title":"STIR/SHAKEN attestation on Orbit voice","href":"/channels/voice/stir-shaken"},{"title":"Troubleshooting: SIP trunk down or calls failing","href":"/channels/voice/sip-trunks-troubleshooting"},{"title":"SIP trunk health and connectivity diagnostics","href":"/voice/sip-trunk-health-and-diagnostics"},{"title":"Video: rooms, embeds, recording, and broadcast","href":"/channels/video"},{"title":"Send and receive faxes on Orbit fax numbers","href":"/channels/fax"},{"title":"Mobile and web push notifications via APNs and FCM","href":"/channels/push"},{"title":"Issue Apple and Google Wallet passes","href":"/channels/wallet-passes"},{"title":"Native Chat setup and styling","href":"/guides/native-chat-widget-channel-config"},{"title":"Cross-channel delivery and engagement analytics","href":"/channels/analytics"}]},{"group":"Channels (Voice)","pages":[{"title":"Choose the right voice product","href":"/guides/voice-choose-product"},{"title":"Voice calendars","href":"/guides/voice-calendars"},{"title":"Voice teams: create, staff, and route to them","href":"/guides/voice-teams"},{"title":"Agent first-week onboarding journey","href":"/guides/agent-first-week-onboarding-journey"},{"title":"Pull a packet capture (pcap) for a voice call","href":"/guides/voice-packet-capture"}]},{"group":"AI Agents","pages":[{"title":"AI agents on Orbit: build, deploy, and monitor","href":"/agents/overview"},{"title":"The Agents workspace map","href":"/guides/agents-hub-overview"},{"title":"Introduction to voice AI agents","href":"/agents/intro-to-voice-ai-agents"},{"title":"Cross-channel agent memory plane","href":"/agents/memory-plane"},{"title":"Agent memory administration","href":"/agents/memory-administration"},{"title":"Creating AI agents: prompts, tools, and deployment","href":"/agents/creating-agents"},{"title":"Config assistant: propose changes in plain language","href":"/agents/config-assistant"},{"title":"Prompt Template Library: browse, fork, and seed a new agent","href":"/agents/prompt-templates"},{"title":"Conversation flows: route every agent turn through a versioned node graph","href":"/agents/conversation-flows"},{"title":"Agent squads: route inbound to the right specialist","href":"/agents/squads"},{"title":"Ambient agents: proactive outreach from segments","href":"/agents/ambient-outreach"},{"title":"Ambient sound bed for voice agents","href":"/agents/ambient-sound-bed"},{"title":"Agent model selection: LLM resolution order","href":"/agents/model-selection"},{"title":"Fine-tuning: dataset export to deployed custom model","href":"/agents/fine-tuning"},{"title":"Agent handoff targets: allowlist downstream routing","href":"/agents/handoff-targets"},{"title":"Human-in-the-loop oversight","href":"/agents/human-in-the-loop-oversight"},{"title":"Live conversation monitor","href":"/agents/live-monitor"},{"title":"Agent cost controls: run, token, and iteration limits","href":"/agents/cost-controls"},{"title":"Automation Opportunity Miner: what the surface shows and what scaffold creates","href":"/agents/automation-opportunities"},{"title":"Guardrail effectiveness monitoring: read firing rates and tune policies","href":"/agents/guardrail-effectiveness"},{"title":"Agent governance policies: guardrails, budget caps, model allowlists, approval gates","href":"/agents/agent-governance-policies"},{"title":"Sensitive words guardrail: redact operator-defined terms from agent output","href":"/agents/sensitive-words-guardrail"},{"title":"Per-turn grounding citations: audit what an agent grounded a reply on","href":"/agents/grounding-citations"},{"title":"Inspect a knowledge document's chunks","href":"/agents/kb-document-inspector"},{"title":"Agent versions: snapshot, stage, and roll back prompt configurations","href":"/agents/agent-versions"},{"title":"Persona-simulation harness — live callers vs scripted regression mode","href":"/agents/persona-simulation"},{"title":"Simulation \u0026 Regression Eval Suite","href":"/agents/simulation-eval-suite"},{"title":"Tool-call trajectory grading","href":"/agents/tool-call-trajectory-grading"},{"title":"Adversarial red-team testing: grade your agent against attack probes","href":"/agents/red-team"},{"title":"Computer-Use Browser Tools","href":"/agents/computer-use"},{"title":"Operate governed computer-use agents from the console","href":"/guides/agent-computer-use-console"},{"title":"Read a voice-eval run in the dashboard","href":"/agents/voice-eval-runs"},{"title":"Continuous production-call eval sampling for AI voice agents","href":"/agents/continuous-production-evals"},{"title":"A2A federation: task remote agents across peers","href":"/agents/a2a-federation"},{"title":"Set up A2A federation between tenants","href":"/guides/a2a-federation-setup"},{"title":"A2A push notifications — subscribe to task lifecycle updates","href":"/guides/a2a-push-notifications"},{"title":"Bridge native-chat conversations to an A2A agent","href":"/guides/native-chat-a2a-agent-bridge"},{"title":"Authorization mandates: scoped, revocable agent authority","href":"/agents/authorization-mandates"},{"title":"The complete_checkout tool for end-to-end agentic checkout","href":"/guides/agents-complete-checkout-tool"},{"title":"Agent marketplace: pre-built AI agent templates","href":"/agents/marketplace"},{"title":"Choose and prepare an agent marketplace template","href":"/guides/ai-agent-marketplace-buyer-guide"},{"title":"Outbound country coverage matrix for agents","href":"/guides/agent-outbound-country-coverage"}]},{"group":"Campaigns","pages":[{"title":"Campaigns hub","href":"/campaigns/overview"},{"title":"Cross-schedule planner: operator walkthrough","href":"/guides/cross-schedule-planner-walkthrough"},{"title":"Campaign journeys: build, validate, simulate, and launch","href":"/campaigns/journey"},{"title":"Inspect a campaign journey simulation step by step","href":"/guides/campaign-journey-simulation-inspection"},{"title":"Build a blast or drip campaign with the create wizard","href":"/guides/campaign-create-wizard"},{"title":"Generate a campaign draft from a brief","href":"/guides/campaigns-from-brief"},{"title":"Build, simulate, and launch a campaign journey (canvas, nodes, goals)","href":"/guides/campaign-journey-builder"},{"title":"Send a campaign end-to-end: draft, audience, dry-run, launch, analytics","href":"/guides/campaign-end-to-end"},{"title":"A/B test a campaign: variants, splits, and picking a winner","href":"/guides/campaign-ab-testing"},{"title":"Smart-send timing playbook: per-contact schedules, send-time experiments, and next-best-channel","href":"/guides/campaign-smart-send-timing-playbook"},{"title":"Outbound campaigns canonical entry","href":"/guides/outbound-campaigns-canonical-entry"},{"title":"Peak-season capacity rehearsal: rate limits, pacing, caps, and the launch-day runbook","href":"/guides/peak-season-capacity-rehearsal"}]},{"group":"Flows","pages":[{"title":"Visual workflow automation with Orbit Flows","href":"/flows/overview"},{"title":"Flow Builder: drag-and-drop workflow designer","href":"/flows/builder"},{"title":"Flow starter templates: clone a working flow into your tenant","href":"/flows/templates"},{"title":"Flow Executions: debug and audit individual flow runs","href":"/flows/executions"},{"title":"Flow templates catalog: the 12 built-in starter flows","href":"/guides/flow-templates-catalog"},{"title":"Build a 7-day multichannel welcome series","href":"/guides/welcome-series-multichannel"},{"title":"Reading flow analytics: funnel drop-off and A/B results","href":"/guides/flows-analytics-reading"}]},{"group":"Numbers \u0026 Verify","pages":[{"title":"Phone numbers: search, buy, and provision inventory","href":"/numbers/overview"},{"title":"Buy, bulk, and orders: the number-buying walkthrough","href":"/numbers/buy-and-provision-operations"},{"title":"Number assignments, applications, and routing","href":"/numbers/assignments-and-applications"},{"title":"Number inventory export and low-stock alerts","href":"/numbers/inventory-export"},{"title":"Country capabilities: check number stock before search","href":"/numbers/country-capabilities"},{"title":"Regulatory preview: country requirements before purchase","href":"/numbers/regulatory-preview"},{"title":"Regulated number-purchase compliance packets","href":"/guides/regulated-number-purchase-packets"},{"title":"Number lifecycle: renew, release, and reassign numbers","href":"/numbers/lifecycle"},{"title":"Number porting: LOA upload, FOC scheduling, status timeline, and bulk CSV","href":"/numbers/porting"},{"title":"E911 emergency address registration for Orbit numbers","href":"/numbers/emergency-address"},{"title":"CNAM and caller ID branding for outbound Orbit calls","href":"/numbers/cnam"},{"title":"Number health, warming, and carrier reputation tracking","href":"/numbers/health"},{"title":"Number Lookup: validate and enrich phone numbers","href":"/numbers/lookup"},{"title":"Number masking: keep two parties' real numbers private","href":"/numbers/masking"},{"title":"Numbers console: pools, porting, subscriptions, and validation","href":"/guides/numbers-console"},{"title":"Numbers cookbook","href":"/guides/numbers-cookbook"},{"title":"Number Intelligence dashboard: console, metering, and spend caps","href":"/guides/number-intelligence-dashboard"},{"title":"Number health diagnostics console walkthrough","href":"/guides/number-health-diagnostics"},{"title":"Number backorder waitlist: get notified when an exhausted area code restocks","href":"/guides/number-backorder-waitlist"},{"title":"Provision and operate eSIM / IoT (M2M) SIMs","href":"/guides/connectivity-sim-lifecycle"},{"title":"Resell travel eSIMs to your customers","href":"/guides/esim-reseller-surface"},{"title":"Orbit Verify: OTP auth for SMS, WhatsApp, email, and voice","href":"/verify/overview"},{"title":"Verification profiles: templates, expiry, attempts, rate limits, webhooks","href":"/verify/configuration"},{"title":"MFA factor lifecycle: TOTP, passkey, push, and backup-code enrollment, verification, and lockout","href":"/verify/factor-lifecycle"},{"title":"OTP approvals: two-person sign-off for templates and resend bursts","href":"/verify/otp-approvals"},{"title":"Add SMS + TOTP 2FA to your app's login flow","href":"/guides/verify-2fa-login-recipe"},{"title":"Verify console: fraud gate, fraud score, and fallback forensics","href":"/guides/verify-console"}]},{"group":"Concepts","pages":[{"group":"Concepts overview","pages":[{"title":"Concepts hub","href":"/concepts/index"},{"title":"Dashboard map — the top navigation and where each hub lands","href":"/concepts/dashboard-map"},{"title":"Concepts overview","href":"/concepts/overview"},{"title":"UCaaS, CCaaS, and CPaaS","href":"/concepts/ucaas-ccaas-cpaas"},{"title":"Data model: envelope, identifiers, idempotency, pagination","href":"/concepts/data-model"},{"title":"API request guard pipeline: the ordered guard chain every request walks","href":"/concepts/api-request-guard-pipeline"},{"title":"The developer GraphQL shaped-read model","href":"/concepts/graphql-shaped-read-model"},{"title":"Terraform model — Orbit resources as infrastructure","href":"/concepts/terraform-provider-model"},{"title":"Operator observability: dashboards, logs, and audit — what to look at when","href":"/concepts/operator-observability-map"},{"title":"The stats surface map: dashboard workbench vs the analytics pipeline","href":"/concepts/observability-stats-surface"},{"title":"Sms overview kpi picker model","href":"/concepts/sms-overview-kpi-picker-model"},{"title":"Live tail streaming model: what the live request-log stream guarantees","href":"/concepts/live-tail-streaming-model"},{"title":"The SLA attestation and report backfill model","href":"/concepts/sla-attestation-model"},{"title":"The org-scoped status model: one incident feed, three waypoints","href":"/concepts/org-scoped-status-model"},{"title":"Public feedback and trust surfaces: idea board, community, help center, sub-processor notices","href":"/concepts/public-feedback-and-trust-surfaces"},{"title":"Sandbox, test mode, and the provisioning model","href":"/concepts/provisioning-and-test-mode"},{"title":"Sandbox model: the boundary, the synthetic providers, and promotion","href":"/concepts/sandbox-model"},{"title":"The channel test-account model: per-channel shared ladders","href":"/concepts/channel-test-account-model"},{"title":"Telegram bot dispatch and demo-account model","href":"/concepts/telegram-bot-model"},{"title":"The Sync real-time shared-state model","href":"/concepts/sync-realtime-state-model"},{"title":"Sync: WebSocket claim, spin-down, and the flush window","href":"/concepts/sync-ws-claim-and-flush-window"}]},{"group":"Messaging \u0026 Routing","pages":[{"title":"Unified termination routing","href":"/concepts/unified-termination-routing"},{"title":"The MT termination model: how outbound calls and messages leave Orbit","href":"/concepts/mt-termination-model"},{"title":"The five fallback planes: one map and how to pick one","href":"/concepts/fallback-and-cascade-planes"},{"title":"Fallback configuration worked samples: notify waterfall and cascade policy","href":"/concepts/fallback-endpoint-worked-samples"},{"title":"Choosing a sender construct — pools vs services vs inline senders","href":"/concepts/sender-identity-decision-model"},{"title":"How routing picks a sender — and where a reply lands","href":"/concepts/sender-and-routing"},{"title":"Least-cost routing (LCR) policy","href":"/concepts/least-cost-routing"},{"title":"Route preview — the pre-send what-if estimator","href":"/concepts/route-preview-model"},{"title":"TelQ live-number testing model — the sender-ID deliverability probe","href":"/concepts/telq-live-number-testing-model"},{"title":"BYO SMPP carrier lifecycle","href":"/concepts/byo-carrier-lifecycle"},{"title":"Sender resolution — which sender an outbound message goes out from","href":"/concepts/sender-resolution"},{"title":"Sender pool selection — how a pool picks one sender and stays healthy","href":"/concepts/sender-pool-selection-model"},{"title":"Number Lookup model — which data package answers which question","href":"/concepts/number-lookup-model"},{"title":"Line type and reachability classification model","href":"/concepts/line-type-and-reachability"},{"title":"The E.164 phone number format","href":"/concepts/e164-format"},{"title":"Sender identity classification model","href":"/concepts/sender-identity-classification-model"},{"title":"Toll-Free Verification and RespOrg lifecycle","href":"/concepts/toll-free-verification-resporg"},{"title":"Per-contact channel optimization: engagement-ranked dispatch","href":"/concepts/channel-optimization-model"},{"title":"Messaging services — one named bundle of sending defaults","href":"/concepts/messaging-services-model"},{"title":"Message status transition rules: the DAG every consumer must agree on","href":"/concepts/message-status-dag"},{"title":"The single message-status map: four owners, one answer","href":"/concepts/message-status-map"},{"title":"DLR and MO gateway pipeline","href":"/concepts/dlr-and-mo-pipeline"},{"title":"Inbound email parse pipeline","href":"/concepts/inbound-email-parse-model"},{"title":"Fallback on terminal DLR: per-request auto-escalation after delivery fails","href":"/concepts/multi-channel-dlr-fallback"},{"title":"The push channel model: device registry, fan-out, delivery, and VoIP call push","href":"/concepts/push-channel-model"},{"title":"The in-app channel model: pull delivery, two render classes, segment targeting, and engagement receipts","href":"/concepts/in-app-channel-model"},{"title":"The Web Chat delivery model: the owned loopback channel, zero carrier hops, persist-then-poll","href":"/concepts/web-chat-delivery-model"},{"title":"Push delivery versus inbox pull: choosing a delivery surface","href":"/concepts/push-delivery-vs-inbox-pull"},{"title":"Inbound message routing","href":"/concepts/inbound-message-routing"},{"title":"Keyword auto-reply and opt-out: the matching model","href":"/concepts/keyword-rules-model"},{"title":"Wording regions: what Orbit injects into your outbound copy","href":"/concepts/wording-templates-model"},{"title":"Social listening: mentions, queues, and supervisor controls","href":"/concepts/social-listening-model"},{"title":"Canned responses and macros — the reply library model","href":"/concepts/canned-responses-macros-model"},{"title":"Inbound message resolution","href":"/concepts/inbound-message-resolution"},{"title":"Inbound media threat scan and quarantine model","href":"/concepts/inbound-media-threat-scan-model"},{"title":"Inbound AI enrichment: detect language + auto-translate","href":"/concepts/inbound-ai-enrichment"},{"title":"Inbound attachment threat scan","href":"/concepts/inbound-attachment-threat-scan"},{"title":"The media attach pipeline: upload, scan, and per-channel delivery","href":"/concepts/media-attach-pipeline-model"},{"title":"Cross-channel fallback: the ordered chain that retries a failed send on the next channel","href":"/concepts/cross-channel-fallback"},{"title":"RCS capability check and SMS fallback: deciding whether a recipient gets rich content","href":"/concepts/rcs-fallback-and-capability"},{"title":"RCS brand and bot approval lifecycle","href":"/concepts/rcs-brand-lifecycle"},{"title":"RCS billing and metering model: what an RCS message costs, when the charge lands, and how to read it back","href":"/concepts/rcs-billing-and-metering-model"},{"title":"Channel capability coverage matrix: which channels do what, and which slot into your fallback chain","href":"/concepts/channel-capability-coverage-matrix"},{"title":"Regional OTT channel model: follower-gated delivery in KakaoTalk, Zalo, WeChat, and LINE","href":"/concepts/regional-ott-channel-model"},{"title":"Cascade failover policy and one logical message ID across legs","href":"/concepts/message-cascade-groups"},{"title":"Notify cascade cost model: per-hop price bounds and the cumulative waterfall cap","href":"/concepts/notify-cascade-cost-model"},{"title":"What omnichannel means on Orbit","href":"/concepts/what-is-omnichannel"},{"title":"Message envelope model: the canonical envelope, per-channel overrides, and the channel_chain declaration","href":"/concepts/message-envelope-model"},{"title":"Messaging windows and off-window sends: Meta DM, WhatsApp, and the no-window channels","href":"/concepts/messaging-window-model"},{"title":"Group messaging versus labeling — group flow, thread, claim, and label disambiguated","href":"/concepts/group-messaging-model"},{"title":"The routing-claim election lifecycle — destination side of a routed conversation","href":"/concepts/routing-claim-election-model"},{"title":"Batch-send model — persist-then-attempt per-recipient pipeline","href":"/concepts/batch-send-model"},{"title":"Outbound route quality and circuit breakers","href":"/concepts/outbound-route-quality-and-circuit-breakers"},{"title":"Message priority and traffic lanes: keep OTP traffic ahead of campaign bursts","href":"/concepts/message-priority-traffic-lanes"},{"title":"SMPP edge model","href":"/concepts/smpp-edge-model"},{"title":"Viber termination model","href":"/concepts/viber-termination-model"},{"title":"SMTP relay ingress model","href":"/concepts/smtp-relay-ingress-model"},{"title":"Send-side DLR model: the canonical vocabulary and absorbed-traffic receipts","href":"/concepts/send-side-dlr-model"},{"title":"The DLR model: two planes, one vocabulary","href":"/concepts/dlr-model-two-planes"},{"title":"The per-provider DLR webhook fleet and the shared status pipeline","href":"/concepts/dlr-provider-webhook-fleet"},{"title":"The per-message route-trace timeline","href":"/concepts/message-route-trace"},{"title":"Message send request lifecycle: one send from POST to provider","href":"/concepts/message-send-request-lifecycle"},{"title":"The three success statuses: delivered vs submitted_no_receipt vs sent","href":"/concepts/submitted-vs-delivered-three-successes"},{"title":"SMS segments and encoding: why one character can double the cost","href":"/concepts/sms-segments-and-encoding"},{"title":"MMS composition model","href":"/concepts/mms-composition-model"},{"title":"Proxy session (number masking) model","href":"/concepts/proxy-session-model"},{"title":"Fax: delivery \u0026 inbound-routing model","href":"/concepts/fax-delivery-model"},{"title":"Messaging data residency","href":"/concepts/messaging-data-residency"},{"title":"Number rental and your wallet: renewal, suspend, and prevent-default posture","href":"/concepts/billing-and-numbers-renewal-model"},{"title":"WhatsApp conversation cost attribution and optimization model","href":"/concepts/whatsapp-cost-attribution-model"}]},{"group":"Voice \u0026 Telephony","pages":[{"title":"Voice call lifecycle: initiated to completed, and the states in between","href":"/concepts/voice-call-lifecycle"},{"title":"Browser softphone: the client-side call lifecycle","href":"/concepts/softphone-client-lifecycle"},{"title":"The voice-broadcast model — one-to-many voice calls over the campaigns backbone","href":"/concepts/voice-broadcast-model"},{"title":"Inbound voice routing","href":"/concepts/inbound-voice-routing"},{"title":"Inbound voice routing: why the tables are shared","href":"/concepts/inbound-voice-routing-shared-catalog"},{"title":"IVR flow model and simulator","href":"/concepts/ivr-flow-model"},{"title":"Hunt and ring topologies: ring groups, paging, and find-me/follow-me","href":"/concepts/hunt-and-ring-topologies"},{"title":"The STIR/SHAKEN attestation model","href":"/concepts/stir-shaken-attestation-model"},{"title":"The PASSporT token model","href":"/concepts/passport-token-model"},{"title":"ANS Trust Card and trust registry","href":"/concepts/ans-trust-card-registry"},{"title":"Jambonz softswitch model","href":"/concepts/jambonz-softswitch"},{"title":"Jambonz verb extensions in Devotel Orbit: what the platform layers on","href":"/concepts/jambonz-extension-verbs"},{"title":"SIP credential lifecycle","href":"/concepts/sip-credential-lifecycle"},{"title":"SIP digest verification model","href":"/concepts/sip-digest-verification-model"},{"title":"Extension identity: one user endpoint spanning voice, SMS, and appearance","href":"/concepts/extension-identity-model"},{"title":"The voicemail and MWI (Message-Waiting Indicator) model","href":"/concepts/voicemail-mwi-model"},{"title":"The ACD queue model: presence, skills, dispatch, and overflow","href":"/concepts/acd-queue-model"},{"title":"Disposition and ACW model: reason codes, wrap-up timers, callbacks, suggestions, and analytics","href":"/concepts/disposition-and-acw-model"},{"title":"Agent distress alert model: the panic button, its fail-open sequence, and the audit chain","href":"/concepts/agent-distress-alert-model"},{"title":"The voice supervisor plane: monitor, whisper, takeover, and announce","href":"/concepts/voice-supervisor-plane-model"},{"title":"Call park and the lobby: the slot aliasing model","href":"/concepts/voice-call-park-lobby"},{"title":"Voice conference model: rooms, participants, and recordings","href":"/concepts/voice-conference-model"},{"title":"Wallboards and SLA telemetry: metric families, threshold alarms, and SLA policy","href":"/concepts/wallboard-and-sla-telemetry"},{"title":"Agent shrinkage: reading the per-agent state-history timeline","href":"/concepts/agent-shrinkage-and-state-history"},{"title":"The queue callback model: virtual hold, dispatch, and outcomes","href":"/concepts/queue-callbacks-model"},{"title":"The public appointment self-booking model: opt-in gate, payload, and abuse posture","href":"/concepts/public-appointment-self-booking"},{"title":"Dialer pacing: claim modes, enrollment ordering, best-time-to-dial, and the abandon ceiling","href":"/concepts/dialer-pacing-model"},{"title":"Number status map: from purchase to release","href":"/concepts/number-lifecycle"},{"title":"Number dormancy and rental spend","href":"/concepts/number-dormancy-model"},{"title":"Low DID inventory alerts and the auto-replenishment loop","href":"/concepts/number-inventory-low-stock-and-replenishment"},{"title":"Bulk Reserve model: the reservation state machine","href":"/concepts/number-bulk-reservation-model"},{"title":"Number portability: one model for port-in and port-out","href":"/concepts/number-portability-model"},{"title":"Hosted messaging: SMS enablement without porting","href":"/concepts/hosted-messaging-model"},{"title":"Number reuse, aging, and post-release posture","href":"/concepts/number-reuse-and-aging"},{"title":"Trial \u0026 shared-pool number model","href":"/concepts/number-trial-pool-model"},{"title":"Port-out lifecycle and the ownership model","href":"/concepts/number-port-out-model"},{"title":"Port-out PIN protection lifecycle","href":"/concepts/port-out-pin-protection-model"},{"title":"Connectivity SIM model: the eSIM / IoT data-line state machine","href":"/concepts/connectivity-sim-model"},{"title":"Call recording pipeline: from call end to a playable recording","href":"/concepts/call-recording-pipeline"},{"title":"Recording lifecycle: capture to retention purge, and the states in between","href":"/concepts/recording-lifecycle"},{"title":"Media planes","href":"/concepts/media-planes"},{"title":"Voice gateway: the realtime AI-voice media edge","href":"/concepts/voice-gateway-realtime-edge"},{"title":"Transport architecture","href":"/concepts/transport-architecture"},{"title":"Platform runtime map","href":"/concepts/platform-runtime-map"},{"title":"Multi-region media routing","href":"/concepts/media-region-routing"},{"title":"The video room model","href":"/concepts/video-room-model"},{"title":"The video registrant lifecycle","href":"/concepts/video-registrants-model"},{"title":"Video room templates and the background library","href":"/concepts/video-room-templates"},{"title":"Video live interpretation model","href":"/concepts/video-live-interpretation-model"},{"title":"Transcript-verified video-only gate","href":"/concepts/video-transcript-verified-gate"},{"title":"Broadcast captions and the translation model","href":"/concepts/video-caption-translation-model"},{"title":"Broadcast analytics model: live audience, in-room participation, recurring themes","href":"/concepts/broadcast-analytics-model"},{"title":"Video room engagement \u0026 chapter analytics pipeline","href":"/concepts/video-analytics-pipeline"},{"title":"Avatar bot dispatch queue","href":"/concepts/avatar-bot-dispatch-queue"},{"title":"Avatar video render lifecycle","href":"/concepts/avatar-video-render-lifecycle"}]},{"group":"Delivery \u0026 Schedulers","pages":[{"title":"Queued to sent: the outbound status primer","href":"/concepts/queued-to-sent-the-four-owner-map"},{"title":"Delivery lifecycle: queued to delivered, and the states in between","href":"/concepts/delivery-lifecycle"},{"title":"Message validity period: how long the carrier keeps retrying","href":"/concepts/message-validity-period"},{"title":"Email delivery lifecycle: bounces, complaints, and the retry queue","href":"/concepts/email-delivery-lifecycle"},{"title":"Email authoring and the seed lab: compose, compile, then measure where it lands","href":"/concepts/email-authoring-and-seed-lab"},{"title":"Email transport security: MTA-STS and TLS-RPT","href":"/concepts/email-transport-security-model"},{"title":"DMARC aggregate reports (RUA): ingest and analysis","href":"/concepts/dmarc-aggregate-ingest"},{"title":"The scheduled-sending model: how queue-park, quiet-hours gating, and fire-time form one contract","href":"/concepts/scheduled-sending-model"},{"title":"The scheduled-send lifecycle: from a future send_at to dispatch","href":"/concepts/send-at-scheduled-sends"},{"title":"Outbound send gating: the tenant-owned controls that decide whether a message dispatches","href":"/concepts/send-gating-and-quiet-hours"},{"title":"Recipient timezone resolution for quiet hours","href":"/concepts/recipient-timezone-resolution"},{"title":"NANP area-code and state resolution — inventory boundaries","href":"/concepts/nanp-area-code-and-state-resolution"},{"title":"Email quiet hours vs the marketing/lifecycle classification: where timezone restraint stops and consent starts","href":"/concepts/email-quiet-hours-and-marketing-classification"},{"title":"Deliverability Lab: pre-send content-risk lint and per-carrier delivery prediction","href":"/concepts/deliverability-lab-pre-send-scoring"},{"title":"Messaging deliverability alerting: thresholds, evaluation, and notification fan-out","href":"/concepts/messaging-deliverability-alerting"},{"title":"The cross-campaign send allocator: how concurrent campaigns share one budget","href":"/concepts/campaign-allocator-model"},{"title":"How Orbit processes work asynchronously","href":"/concepts/async-processing-model"},{"title":"Scheduler fleet model","href":"/concepts/scheduler-fleet-model"},{"title":"Operational sentinels: the status values that aren't deliveries","href":"/concepts/operational-sentinels"},{"title":"On-call and escalation policy model: rotation, timeline, and incident state","href":"/concepts/oncall-escalation-model"},{"title":"Omnichannel capacity and reservation model","href":"/concepts/omnichannel-capacity-reservation"}]},{"group":"Identity, Tenancy \u0026 Access","pages":[{"title":"Tenant isolation","href":"/concepts/tenant-isolation"},{"title":"Tenant isolation at a glance","href":"/concepts/tenant-isolation-at-a-glance"},{"title":"Tenant schema migration and evolution","href":"/concepts/tenant-schema-migration-model"},{"title":"The public catalog: a closed set of shared tables","href":"/concepts/public-catalog-tables"},{"title":"Tenant provisioning lifecycle","href":"/concepts/tenant-provisioning-lifecycle"},{"title":"Organization suspension and deletion lifecycle","href":"/concepts/org-suspension-deletion-lifecycle"},{"title":"Org and subaccount model: one vocabulary","href":"/concepts/org-and-subaccount-model"},{"title":"The subaccount organization model","href":"/concepts/subaccount-organization-model"},{"title":"Authentication and session model","href":"/concepts/authentication-model"},{"title":"Current-user preferences model","href":"/concepts/me-preferences-model"},{"title":"Signed-token public share plane: sharing with recipients who have no account","href":"/concepts/signed-token-public-share-plane"},{"title":"Account security model","href":"/concepts/account-security-model"},{"title":"Destructive-operation re-auth challenge","href":"/concepts/re-auth-challenge-model"},{"title":"The issuer-challenge model","href":"/concepts/issuer-challenges-model"},{"title":"Onboarding wizard lifecycle","href":"/concepts/onboarding-wizard-lifecycle"},{"title":"Operator plane vs tenant plane — admin APIs and their audit model","href":"/concepts/admin-tenant-plane-model"},{"title":"API key lifecycle and rotation: grace versus immediate","href":"/concepts/api-key-rotation-lifecycle"},{"title":"Identity federation: SAML and SCIM","href":"/concepts/identity-federation-saml-scim"},{"title":"Tenant config portability: the export/import bundle","href":"/concepts/tenant-config-portability-model"},{"title":"Roles, teams, and permissions","href":"/concepts/roles-teams-permissions"},{"title":"Team seat quota and invite enforcement","href":"/concepts/team-seat-quota-model"},{"title":"Custom fields: the definition model and the dependency-scan lifecycle","href":"/concepts/custom-fields-model"},{"title":"The contact record model","href":"/concepts/contact-record-model"},{"title":"Contact merge policy: the per-field survivorship decision tree","href":"/concepts/contact-merge-policy"},{"title":"Custom domains and managed SSL","href":"/concepts/custom-domains-and-ssl"},{"title":"The branding and theming console model","href":"/concepts/branding-and-theming-model"},{"title":"CSPaaS white-label operations","href":"/concepts/cspaas-white-label-operations"},{"title":"The composite pre-send risk verdict: four detectors, one score","href":"/concepts/risk-verdict-model"},{"title":"Synthetic-media provenance","href":"/concepts/synthetic-media-provenance"},{"title":"Redaction vault: a compliance-safe copy of every call transcript, with an audit of what was removed","href":"/concepts/redaction-vault"},{"title":"Encryption at rest: the platform envelope, and how BYOK fits on top","href":"/concepts/encryption-at-rest-model"}]},{"group":"Billing \u0026 Wallet","pages":[{"title":"The billing model map: four wallet/usage pages, one index","href":"/concepts/billing-model-map"},{"title":"Wallet spend-channel attribution: how each debit gets its channel","href":"/concepts/wallet-spend-channel-attribution-model"},{"title":"How billing meters your usage: wallet, rating, and the ledger","href":"/concepts/billing-and-wallet"},{"title":"Committed-use drawdown: the enterprise monthly commit meter","href":"/concepts/committed-use-drawdown-model"},{"title":"The outbound pause gate and the free-channel exemption","href":"/concepts/outbound-pause-and-free-channel-exemption"},{"title":"Outbound pause and the resume propagation loop","href":"/concepts/outbound-pause-recovery"},{"title":"The dunning lifecycle: a three-strike pause with a counter you cannot reset","href":"/concepts/dunning-lifecycle-model"},{"title":"Wallets, credits, and charges: how usage metering works","href":"/concepts/wallets-credits-and-charges"},{"title":"The reseller wallet funding model: one wallet per org, funded parent-down","href":"/concepts/reseller-wallet-funding-model"},{"title":"The two-phase authorize lifecycle: authorize, capture, release","href":"/concepts/two-phase-billing-lifecycle"},{"title":"eSIM reseller billing model: wallet charges and refunds on travel eSIMs","href":"/concepts/esim-reseller-billing-model"},{"title":"The outbound billing gate chain: what every send walks, in order","href":"/concepts/billing-gate-chain-model"},{"title":"Channel charge trigger model","href":"/concepts/channel-charge-trigger-model"},{"title":"RCS billing and metering model: what an RCS message costs, when the charge lands, and how to read it back","href":"/concepts/rcs-billing-and-metering-model"},{"title":"Spend alerts, burn rate, and the velocity-anomaly model","href":"/concepts/spend-anomaly-and-alert-model"},{"title":"Anomaly insights: detector shapes, baselines, and the alert handoff","href":"/concepts/anomaly-insights-model"},{"title":"Usage records: the per-record billing feed","href":"/concepts/usage-records-model"},{"title":"The usage metering pipeline: from a sent message to the wallet ledger","href":"/concepts/usage-metering-pipeline"},{"title":"Inbound cost metering: received traffic is reported, not debited","href":"/concepts/inbound-cost-metering-model"},{"title":"LLM spend attribution: feature × model × conversation, and the reconciliation behind it","href":"/concepts/llm-spend-cost-attribution-model"},{"title":"Channel cost rollup vs the billing ledger model","href":"/concepts/cost-channel-rollup-model"},{"title":"Pricing and rate resolution: how a per-operator price is attributed","href":"/concepts/pricing-rate-resolution"},{"title":"Volume-tier pricing auto-resolution: graduated rates that apply themselves","href":"/concepts/volume-tier-resolution-model"},{"title":"MCC/MNC override model — how per-operator overrides layer onto rate resolution","href":"/concepts/mccmnc-override-model"},{"title":"All-in pricing: the base rate plus the surcharge schedule","href":"/concepts/pricing-all-in-surcharges"},{"title":"What-if pricing model: rate preview over your real usage lanes","href":"/concepts/whatif-pricing-preview-model"},{"title":"FX-rate resolution: the four-source pipeline behind converted top-ups","href":"/concepts/fx-rate-resolution-pipeline"},{"title":"Reseller margin and the tax pipeline: marking up a rated amount, correctly ordered","href":"/concepts/reseller-margin-and-tax-pipeline"}]},{"group":"CDP \u0026 Intelligence","pages":[{"title":"What a Customer Data Platform (CDP) is on Orbit","href":"/concepts/what-is-a-customer-data-platform"},{"title":"The CDP event model","href":"/concepts/cdp-event-model"},{"title":"CDP streaming destinations: Kafka and Kinesis real-time egress","href":"/concepts/cdp-streaming-destinations"},{"title":"The media asset store","href":"/concepts/cdn-assets-model"},{"title":"The event-ledger projection model","href":"/concepts/event-ledger-projection-model"},{"title":"B2B accounts: golden records and hierarchy","href":"/concepts/cdp-accounts"},{"title":"Identity resolution and merge semantics","href":"/concepts/cdp-identity-resolution"},{"title":"Identity graph and device graph","href":"/concepts/cdp-identity-graph-and-device-graph"},{"title":"The contact scoring pipeline: daily cadence, batch execution, and the auditable scorer","href":"/concepts/cdp-scoring-pipeline"},{"title":"How CDP segments recompute: real-time evaluation, re-enrichment, and staleness","href":"/concepts/cdp-segment-recompute-model"},{"title":"Lists vs segments: the two membership models","href":"/concepts/list-vs-segment-membership-models"},{"title":"Three ways to materialize an audience at send time","href":"/concepts/audience-autosuggest-and-cohort-export"},{"title":"Predictive activation schedules: cadence-driven audience refresh","href":"/concepts/predictive-activation-schedule"},{"title":"CDP clean rooms: shared analytics without data egress","href":"/concepts/cdp-clean-room-model"},{"title":"CDP retention windows: per-data-class TTL governance","href":"/concepts/retention-policy-governance"},{"title":"The reverse-ETL destination model","href":"/concepts/reverse-etl-destination-model"},{"title":"The survey lifecycle: instrument, token, dispatch, scoring, and benchmark","href":"/concepts/survey-lifecycle-model"},{"title":"Conversations: the omnichannel thread model","href":"/concepts/conversations"},{"title":"Interactions: the unified cross-channel read model","href":"/concepts/interactions-unified-model"},{"title":"Interactions CSV export: the bulk-pull contract and its RBAC split","href":"/concepts/interactions-export-model"},{"title":"The team chat model: channels, huddles, presence, reactions, and attachments","href":"/concepts/team-chat-model"},{"title":"Conversation Intelligence","href":"/concepts/conversation-intelligence"},{"title":"Conversation and Call Intelligence Landscape","href":"/concepts/conversation-and-call-intelligence-landscape"},{"title":"Automation opportunities: turning conversation P\u0026L into agentable work","href":"/concepts/automation-opportunities-model"},{"title":"Session replay and search analytics","href":"/concepts/session-search-analytics"},{"title":"Global search fan-out","href":"/concepts/global-search-fan-out"},{"title":"Session replay model: recording lifecycle, two-tier storage, and playback","href":"/concepts/session-replay"},{"title":"Co-browse session model: consent postures and the privacy-masking contract","href":"/concepts/cobrowse-session-model"},{"title":"Widget flow model: runtime, web-call context, WebMCP guardrails, and trust policy","href":"/concepts/widget-flow-model"},{"title":"Next-best-product recommendations","href":"/concepts/recommendations"},{"title":"Next-best-action decisioning","href":"/concepts/decisioning"},{"title":"Analytics pipeline: from raw events to an aggregate read surface","href":"/concepts/analytics-pipeline"},{"title":"Per-tenant request metrics: how the Developer API analytics feed works","href":"/concepts/request-metrics-and-analytics-pipeline"},{"title":"Request-metrics reader gates: four bounded surfaces","href":"/concepts/request-metrics-reader-gates"},{"title":"Request Logs model: Cloud Logging under a deadline-backed read","href":"/concepts/request-logs-model"},{"title":"The insights rollup model: read-time derivations over existing events","href":"/concepts/insights-rollup-model"},{"title":"Ask-your-data copilot: how a question becomes a governed answer","href":"/concepts/ask-your-data-copilot-model"},{"title":"The carbon emissions and ESG footprint model","href":"/concepts/carbon-emissions-model"},{"title":"The personalization slots model: slot scoping, variant resolution, and lift semantics","href":"/concepts/personalization-slots-model"},{"title":"Customer-360 snapshot aggregation model: parallel fan-out, error isolation, and caching","href":"/concepts/customer-360-snapshot-model"},{"title":"CRM integration model: sync directions, object mapping, and verification","href":"/concepts/crm-integration-model"},{"title":"Import and migration lifecycle: connect → preview → run → reconcile","href":"/concepts/imports-migration-model"},{"title":"Ads attribution and lead ingestion","href":"/concepts/ads-attribution-lead-ingestion"},{"title":"CDP ad-audience incrementality","href":"/concepts/cdp-ad-audience-incrementality"}]},{"group":"AI \u0026 Automation","pages":[{"title":"AI agent architecture: flows, retrieval, tools, and the run lifecycle end to end","href":"/concepts/ai-agent-architecture"},{"title":"Canary rollout \u0026 shadow dispatch: taking a new agent version live safely","href":"/concepts/canary-and-shadow-rollout-model"},{"title":"Outcome-based AI-agent billing: pay per resolved conversation, not per token","href":"/concepts/outcome-pricing-model"},{"title":"AI-disclosure ledger: concept","href":"/concepts/ai-disclosure-ledger"},{"title":"Prompt template lifecycle: concept","href":"/concepts/prompt-template-lifecycle"},{"title":"Outbound channel templates lifecycle: concept","href":"/concepts/outbound-channel-templates"},{"title":"Orby operator assistant architecture: sessions, turns, tools, and the approval gate","href":"/concepts/orby-operator-assistant"},{"title":"Action approvals: the human-in-the-loop gate","href":"/concepts/action-approvals-model"},{"title":"PII egress guard: the last-pass scrub on agent tool arguments","href":"/concepts/pii-egress-guard-model"},{"title":"Guardrail policies and red-team gates: how agents are governed","href":"/concepts/guardrails-and-red-team-pipeline"},{"title":"Runtime turn classifiers and eval rubrics: how agent turns are judged","href":"/concepts/agent-turn-classifiers-and-eval-rubrics"},{"title":"Agent versioning and the change-log audit trail","href":"/concepts/agent-versioning-and-change-log"},{"title":"Agent run lifecycle: queued to completed, and the states in between","href":"/concepts/agent-run-lifecycle"},{"title":"The proactive outreach evaluation model: one trigger, one decision, one audit row","href":"/concepts/proactive-outreach-evaluation-model"},{"title":"Agent memory model","href":"/concepts/agent-memory-model"},{"title":"Agent presence and aux-code lifecycle: the five states dispatch checks before it rings","href":"/concepts/agent-presence-lifecycle"},{"title":"The knowledge-base ingestion pipeline: from upload to retrieval-ready","href":"/concepts/knowledge-pipeline"},{"title":"Retrieval scoping and grounding integrity: how agent retrieval stays inside your data","href":"/concepts/retrieval-scoping-and-grounding-integrity"},{"title":"The no-match miner → KB auto-draft loop: unanswered questions become reviewable articles","href":"/concepts/kb-auto-draft-loop"},{"title":"How flow executions run: states, branching, async waits, and webhook hand-off","href":"/concepts/flow-execution-model"},{"title":"The branch-decision contract: from CDP to flows","href":"/concepts/cdp-and-flown-each-other-branch-decision"},{"title":"What a flow template is, and how cloning detaches it","href":"/concepts/flow-templates-model"},{"title":"BYO MCP servers for AI agents","href":"/concepts/byo-mcp-servers"},{"title":"Hosted MCP server","href":"/concepts/mcp-hosted-server"},{"title":"A2A federation model","href":"/concepts/a2a-federation-model"},{"title":"Agentic commerce authorization and checkout model","href":"/concepts/agentic-commerce-model"},{"title":"MPP metered payment sessions","href":"/concepts/mpp-metered-payment-sessions"},{"title":"Cross-app access: Identity Assertion JWT Authorization Grant (ID-JAG)","href":"/concepts/cross-app-access-id-jag"},{"title":"The skill catalog: the canonical list of skills routing accepts","href":"/concepts/skill-catalog"},{"title":"QA evaluations and the performance leaderboard","href":"/concepts/qa-leaderboard-and-evaluations"},{"title":"Practice Studio: stateless simulated-customer roleplay sessions","href":"/concepts/practice-studio-model"},{"title":"The call-quality evaluation lifecycle","href":"/concepts/quality-evaluation-lifecycle"},{"title":"The LLM-judged evaluation ledger","href":"/concepts/llm-judged-evaluation-ledger"},{"title":"Pick a testing harness: the decision table","href":"/concepts/agent-testing-harness-picker"},{"title":"Agent A/B experiments: assignment, lift attribution, and promotion","href":"/concepts/agent-experiment-model"},{"title":"Agent playbooks: trigger-driven live guidance","href":"/concepts/voice-playbooks-model"},{"title":"Predictive routing: the trained agent-match model","href":"/concepts/predictive-routing-model"},{"title":"The squad routing model: classifier agents, handoff packets, and fallback","href":"/concepts/squad-routing-model"},{"title":"Inbox conversation push-routing (auto-assignment)","href":"/concepts/inbox-push-routing"},{"title":"Semantic response cache: serving near-duplicate first questions without a model round-trip","href":"/concepts/semantic-response-cache-model"}]},{"group":"Compliance, Send Controls \u0026 Rates","pages":[{"title":"Data placement and residency","href":"/concepts/data-placement-and-residency"},{"title":"Retention windows and deletion: the stores map","href":"/concepts/retention-windows-and-deletion"},{"title":"Consent, opt-out, and suppression: the recipient-state model","href":"/concepts/consent-and-suppression-model"},{"title":"The DSAR intake model","href":"/concepts/dsar-concept"},{"title":"Frequency-cap model: slot claims, counters, and gate order","href":"/concepts/frequency-caps-model"},{"title":"Message suppression model: the duplicate-content guard, and the two mechanisms it is not","href":"/concepts/message-suppression-model"},{"title":"Outbound gate chain: the interaction, campaign-preflight, keyword-rules, frequency-caps, and message-suppression stack","href":"/concepts/messages-gate-chain-and-suppression"},{"title":"The policy-scan pipeline model","href":"/concepts/policy-scan-pipeline-model"},{"title":"The DLP scanner model","href":"/concepts/dlp-scanner-concept"},{"title":"Outbound URL reputation and the smishing scan","href":"/concepts/url-reputation-smishing-scan"},{"title":"TCPA federal voice guard: the one 422 you can't unset","href":"/concepts/tcpa-federal-voice-guard"},{"title":"Voice pre-send gate chain: the order outbound calls are evaluated","href":"/concepts/voice-pre-send-gate-chain"},{"title":"TCPA quiet hours: federal, state, and tenant gates as one stack","href":"/concepts/federal-vs-state-vs-tenant-voice-gates"},{"title":"Omnichannel fallback compliance matrix — TCPA vs DNC vs registration per channel","href":"/concepts/omnichannel-compliance-matrix"},{"title":"The Reassigned Numbers Database (RND): how the safe-harbor scrub works end to end","href":"/concepts/reassigned-numbers-database"},{"title":"CTIA Messaging Principles as an ordered schema","href":"/concepts/ctia-messaging-principles"},{"title":"The US SMS Regulatory Model: Three Rule Books, One Control Plane","href":"/concepts/us-sms-regulatory-model"},{"title":"Tenant posture audit map — planes, ownership, and where the evidence lands","href":"/concepts/tenancy-posture-audit-map"},{"title":"The audit ledger model","href":"/concepts/audit-ledger-model"},{"title":"Tenant compliance defaults — the opt-in envelope","href":"/concepts/tenant-compliance-defaults-model"},{"title":"The tenant-owned compliance model: one page, every gate","href":"/concepts/compliance-tenant-owned-model"},{"title":"Outbound country allowlist — a tenant-owned opt-in gate","href":"/concepts/country-allowlist-gate-model"},{"title":"Country rules enumeration model: one row per country per channel","href":"/concepts/country-rules-enumeration-model"},{"title":"10DLC error taxonomy: registry rejections vs. delivery errors","href":"/concepts/tcr-vs-carrier-error-taxonomy"},{"title":"10dlc concept","href":"/concepts/10dlc-concept"},{"title":"Rate-limit and cooldown taxonomy: which limiter fired when a send returns 429","href":"/concepts/rate-limit-and-cooldown-taxonomy"},{"title":"API governance model: the org default + per-key override self-serve model","href":"/concepts/api-governance-model"},{"title":"Rate-limit and cooldown collector: how the API request boundary maps every bucket","href":"/concepts/rate-limit-cooldown-collector"},{"title":"Sender warming and reputation: how the ramp and trust kernels work","href":"/concepts/sender-warming-and-reputation"},{"title":"SMS complaint feedback loop: ingest, rollup, and auto-suppression","href":"/concepts/sms-complaint-feedback-loop"},{"title":"Spam-likelihood prediction: the score, its factors, and the remediation playbook","href":"/concepts/spam-likelihood-prediction"},{"title":"Template lifecycle and approval semantics","href":"/concepts/template-lifecycle"},{"title":"The WhatsApp WABA lifecycle — connect, register, migrate, disconnect","href":"/concepts/whatsapp-waba-lifecycle"},{"title":"WhatsApp quality and health model","href":"/concepts/whatsapp-quality-and-health"},{"title":"WhatsApp Flows and form submissions","href":"/concepts/whatsapp-flows-and-forms"},{"title":"WhatsApp Business Calling model","href":"/concepts/whatsapp-business-calling-model"},{"title":"WhatsApp Business Calling media relay","href":"/concepts/whatsapp-business-calling-media-relay"},{"title":"Verification session lifecycle: sent, checked, approved or failed","href":"/concepts/verification-lifecycle"},{"title":"The Verify fraud gate: score, verdict, and the fallback-constrained channel chain","href":"/concepts/verify-fraud-gate-timeline-model"},{"title":"The Verify dashboard: history surface, filters, and the role-access guard","href":"/concepts/verify-history-and-role-access"},{"title":"Identity risk gate: fused signals — port-event recency, SIM swap, and Silent Auth","href":"/concepts/identity-risk-gate-signals"},{"title":"Brand identity and trust score: the cross-channel verification rollup","href":"/concepts/brand-identity-trust-score"},{"title":"Fraud reputation: the shared cross-tenant network feed","href":"/concepts/network-signals-fraud-reputation"},{"title":"Network APIs and the CIBA silent-auth flow","href":"/concepts/network-apis-ciba"}]},{"group":"Webhooks \u0026 Platform Models","pages":[{"title":"Webhook delivery semantics: retries, ordering, and the dead-letter queue","href":"/concepts/webhook-delivery-semantics"},{"title":"The devotel CLI model: install, auth, profiles, and the webhook-forwarding loop","href":"/concepts/devotel-cli-model"},{"title":"Webhook fan-out: one event, many destinations","href":"/concepts/webhook-fan-out-and-event-sinks"},{"title":"Webhook subscription lifecycle: register through disable and re-enable","href":"/concepts/webhook-subscription-lifecycle"},{"title":"The SDK surface model: tiers, shared contract, and codegen","href":"/concepts/sdks-model"},{"title":"Inbound connector webhook authentication model","href":"/concepts/inbound-connector-webhook-auth-model"},{"title":"Inbound webhook debug log","href":"/concepts/inbound-webhook-debug-log"},{"title":"Idempotency and safe retries","href":"/concepts/idempotency-and-safe-retries"},{"title":"Public pixels, redirects, and short links","href":"/concepts/public-pixels-redirects"},{"title":"Web SDK and the public-key identify/track model","href":"/concepts/web-sdk-public-key-model"},{"title":"The notification model: event fan-out, categories, channels, and digests","href":"/concepts/notification-model"},{"title":"Short links, landing pages, and the publish lifecycle","href":"/concepts/short-links"},{"title":"QR code generation model","href":"/concepts/qr-code-generation-model"},{"title":"Marketplace listing lifecycle and trust model","href":"/concepts/marketplace-listing-lifecycle"},{"title":"Campaign lifecycle: draft to completed, blast vs drip vs journey","href":"/concepts/campaign-lifecycle"},{"title":"Campaign journey pipeline: enroll to funnel measurement","href":"/concepts/campaign-journey-pipeline"},{"title":"Journey enrollment fan-out: three routers, one entry chain","href":"/concepts/journey-enrollment-fan-out"},{"title":"The export families model","href":"/concepts/export-families-model"},{"title":"Event sources: the inbound consumer model","href":"/concepts/event-sources-inbound-model"},{"title":"Event consumer groups: managed offsets over the platform event stream","href":"/concepts/event-consumer-groups"},{"title":"USSD session model and the stateless menu engine","href":"/concepts/ussd-session-model"},{"title":"The WFM model: forecasting, scheduling, adherence, and the labor market","href":"/concepts/wfm-model"},{"title":"How voice biometrics verification works","href":"/concepts/voice-biometrics"},{"title":"Operate voice biometrics: thresholds, step-up, and the verification console","href":"/concepts/voice-biometrics-console"},{"title":"KBA caller verification: knowledge-based challenges on a live call","href":"/concepts/caller-verification-kba"},{"title":"MCID — the malicious-call trace model","href":"/concepts/mcid-call-trace-model"},{"title":"Voice Agent Quality Index (VAQI)","href":"/concepts/voice-agent-quality-vaq"},{"title":"Commerce checkout spine","href":"/concepts/commerce-checkout-spine"}]},{"group":"Files \u0026 Object Storage","pages":[{"title":"The media asset store","href":"/concepts/cdn-assets-model"},{"title":"Media file upload and the presign lifecycle","href":"/concepts/file-upload-and-presign-lifecycle"},{"title":"RCS demo videos: permanent share links","href":"/guides/file-video-share-link"}]},{"group":"Outbound","pages":[{"title":"Marketing hub model: wallet passes, loyalty, and referrals behind one redirect","href":"/concepts/marketing-hub-model"},{"title":"Referral program model: program → code → conversion → reward","href":"/concepts/referral-program-model"}]}]},{"group":"Features","pages":[{"title":"CXaaS: the four arcs of customer experience","href":"/guides/cxaas-four-arcs"},{"title":"Loyalty API: points, tiers, and redemption endpoints","href":"/api-reference/loyalty"},{"title":"Incentives: catalog, ledger, and fulfillment","href":"/concepts/incentives"},{"title":"Loyalty program model: points, tiers, and the CDP ledger","href":"/concepts/loyalty-program-model"},{"title":"Wallet pass lifecycle: issue, update, void","href":"/concepts/wallet-pass-lifecycle"}]},{"group":"Billing","pages":[{"title":"Billing overview","href":"/billing/overview"},{"title":"Revenue recognition","href":"/billing/revenue-recognition"},{"title":"Spend caps, budget alerts, and auto-cutoff","href":"/billing/spend-caps"},{"title":"Usage \u0026 delivery anomaly alerts","href":"/billing/usage-anomaly-alerts"},{"title":"Burn rate and wallet runway","href":"/concepts/billing-burn-rate"},{"title":"Spend caps on the dashboard","href":"/guides/spend-cap-console"},{"title":"Pricing calculator: estimate messaging, RTC, AI, and reseller payouts","href":"/billing/pricing-calculator"},{"title":"Billing Calculator: the presale cost-estimation walkthrough","href":"/guides/billing-cost-calculator"},{"title":"Inbound traffic cost metering: see what received calls and messages cost","href":"/guides/inbound-traffic-cost-metering"},{"title":"CDR export \u0026 billing reconciliation feed","href":"/billing/cdr-export-billing-reconciliation"},{"title":"CDR usage export for billing reconciliation","href":"/guides/cdr-usage-export-billing-reconciliation"},{"title":"Billing → Records: the usage record export console","href":"/guides/billing-records-export-console"},{"title":"Cryptocurrency payments","href":"/billing/crypto-payments"},{"title":"Crypto top-up API lifecycle","href":"/billing/crypto-topup-api-samples"},{"title":"Process NOWPayments crypto refunds in Orbit","href":"/billing/crypto-refunds"},{"title":"Credit refund lifecycle: lot eligibility, partial refunds, and two-leg settlement","href":"/concepts/credit-refund-lifecycle-model"},{"title":"Wallet top-up currency conversion","href":"/billing/wallet-currency-conversion"},{"title":"Authorize wallet holds for multi-step purchases","href":"/guides/wallet-hold-capture"},{"title":"Rate cards: persisted price books you assign to subaccounts","href":"/billing/rate-cards"},{"title":"Cost-center chargeback: attribute spend to a department","href":"/guides/cost-center-chargeback"},{"title":"AI usage breakdown: attribute LLM spend per agent, model, and channel","href":"/guides/billing-ai-usage-split"},{"title":"What-if pricing simulator: back-test a rate card against your own traffic","href":"/guides/whatif-pricing-simulator"},{"title":"Committed-use discounts: decide, forecast, and enroll","href":"/guides/billing-committed-use-enrollment"},{"title":"Volume tiers and revenue recognition: the finance-ops workflow","href":"/guides/billing-revenue-and-volume-tiers"},{"title":"Revenue recognition: read deferred vs recognized schedules","href":"/guides/billing-revenue-recognition"},{"title":"Billing ops: invoices, statements, pay-by-link, and the price calculator","href":"/guides/billing-invoices-statements-and-pay-by-link"},{"title":"Run and download reseller invoices for subaccounts","href":"/guides/subaccounts-reseller-invoice-run"},{"title":"The invoice, statement, and subscription model","href":"/concepts/billing-documents-model"},{"title":"The pricing-preview pipeline: projected margin and payout before close","href":"/concepts/billing-pricing-preview-model"},{"title":"MCCMNC overrides: per-carrier rate overrides over the default rate card","href":"/guides/billing-mccmnc-overrides"},{"title":"Admin: Voice Destinations dial-code deck","href":"/guides/admin-voice-destinations-dial-code-deck"},{"title":"Per-operator SMS rates: maintain MCC/MNC rates per country","href":"/guides/billing-mccmnc-per-operator-rates"},{"title":"Configure wallet auto-top-up","href":"/guides/billing-auto-topup"},{"title":"Billing → Payment: methods, subscription, tax, outcome pricing","href":"/guides/billing-payment-surface"},{"title":"Notification digest vs. per-user preferences","href":"/guides/digest-and-notification-channels-faq"}]},{"group":"Webhooks","pages":[{"title":"Webhooks overview: receive real-time Orbit events","href":"/webhooks/overview"},{"title":"Build your first webhook receiver","href":"/webhooks/first-receiver"},{"title":"Webhook events: catalog of every event Orbit dispatches","href":"/webhooks/events"},{"title":"Webhook event payloads: envelope, headers, and metadata","href":"/webhooks/event-payloads"},{"title":"Inbound event catalog: every inbound status folded to its canonical webhook event","href":"/webhooks/inbound-event-catalog"},{"title":"Normalized inbound event envelope","href":"/webhooks/normalized-inbound-envelope"},{"title":"Inspect webhook deliveries and replay failures","href":"/webhooks/inspecting-deliveries"},{"title":"Webhook security: verify HMAC-SHA256 signatures","href":"/webhooks/security"},{"title":"Troubleshooting: webhook signature verification failures","href":"/webhooks/troubleshooting-signature-failures"}]},{"group":"Security \u0026 SSO","pages":[{"title":"Enroll SAML SSO: Okta and Microsoft Entra ID","href":"/guides/saml-sso-enrollment"},{"title":"SCIM 2.0 provisioning (Okta, Entra ID, generic IdPs)","href":"/compliance/scim-provisioning"},{"title":"Wire SCIM provisioning: Okta, Microsoft Entra ID, and OneLogin","href":"/guides/scim-provisioning"},{"title":"Password reset and API-key revocation","href":"/guides/auth-password-reset-and-key-revocation"}]},{"group":"Compliance","pages":[{"title":"Your Tenant Compliance Posture: The Toggle Map","href":"/compliance/posture-overview"},{"title":"TCPA State-by-State Map for 2026","href":"/compliance/tcpa-state-map-2026"},{"title":"Compliance hub route map","href":"/compliance/compliance-hub-route-map"},{"title":"Compliance hub console FAQ","href":"/compliance/console-compliance-hub-faq"},{"title":"Compliance hub by role: where each persona starts","href":"/compliance/persona-guide-compliance-officer"},{"title":"Accessibility in business messaging","href":"/compliance/accessibility-business-messaging"},{"title":"Compliance Glossary","href":"/compliance/glossary"},{"title":"Compliance Posture FAQ","href":"/compliance/posture-faq"},{"title":"Quiet Hours FAQ: Org Gate vs. Campaign Fallback vs. Preview","href":"/compliance/quiet-hours-faq"},{"title":"Voice Traffic-Lane and Voice-Classification FAQ","href":"/compliance/voice-lane-and-classification-faq"},{"title":"Compliance FAQ: sends, calls, and registration gates","href":"/compliance/faq"},{"title":"Compliance Approval Timelines \u0026 Trigger Runbooks","href":"/compliance/topic-faq"},{"title":"One Educated Customer, Ten Laws: Which Regulatory Family Owns Which Customer-Data Gate","href":"/compliance/ten-vs-educate-customer-data"},{"title":"Vertical Compliance Bundles","href":"/compliance/vertical-bundles"},{"title":"Vertical bundles console walkthrough","href":"/guides/compliance-vertical-bundles-walkthrough"},{"title":"Vertical bundles by industry: a decision guide for regulated buyers","href":"/compliance/vertical-bundle-industry-guides"},{"title":"Industry landing pages: the buyer surface for each vertical","href":"/guides/industries-overview"},{"title":"Automotive recall service walkthrough","href":"/guides/automotive-recall-service-walkthrough"},{"title":"Staffing shift coverage and candidate pipeline: an end-to-end walkthrough","href":"/guides/staffing-shift-coverage-candidates-walkthrough"},{"title":"Real estate showing, listing, and closing notifications end to end","href":"/guides/real-estate-showing-closing-walkthrough"},{"title":"Build an end-to-end FNOL and claims lifecycle program","href":"/guides/insurance-claims-fnol-walkthrough"},{"title":"Configure Your Tenant's Compliance Posture Before the First Send","href":"/compliance/tenant-posture-first-run"},{"title":"Assembling a GDPR Posture End to End","href":"/compliance/gdpr-posture-guide"},{"title":"GDPR International Transfers","href":"/compliance/gdpr-international-transfers"},{"title":"CCPA/CPRA Posture: Consumer Rights on Orbit","href":"/compliance/ccpa-cpra-posture"},{"title":"US State Privacy Posture: The 2026 Map Beyond California","href":"/compliance/us-state-privacy-posture"},{"title":"COPPA and minor contacts posture","href":"/compliance/coppa-minors-posture"},{"title":"Assembling a US Marketing-SMS Posture End to End","href":"/compliance/tcpa-posture-guide"},{"title":"TCPA Consent-Record Defense Runbook","href":"/compliance/tcpa-consent-record-defense"},{"title":"Assembling a STIR/SHAKEN Outbound Posture End to End","href":"/compliance/stir-shaken-posture-guide"},{"title":"STIR/SHAKEN evidence-to-posture crosswalk","href":"/compliance/stir-shaken-evidence-crosswalk"},{"title":"Assembling a HIPAA Posture End to End","href":"/compliance/hipaa-posture-guide"},{"title":"Voice biometrics privacy posture: consent, retention, and deletion under BIPA, CUBI, MHMDA, and GDPR","href":"/compliance/voice-biometrics-bipa-posture"},{"title":"HIPAA compliance controls for healthcare messaging","href":"/compliance/hipaa"},{"title":"Business Associate Agreement (BAA) flow","href":"/compliance/baa"},{"title":"HIPAA BAA gate evaluation guide","href":"/compliance/baa-gate-guide"},{"title":"HIPAA tenant BAA attestation checklist — first run","href":"/compliance/hipaa-first-run-checklist"},{"title":"PHI-adjacent audience designations","href":"/compliance/phi-audiences"},{"title":"AI Turn Audit: Verbatim AI Decision Records","href":"/compliance/ai-turn-audit"},{"title":"Agent Identity Governance: NHI Inventory + Bulk Decommission","href":"/compliance/agent-identity-governance"},{"title":"Set up agent identity governance: inventory, sponsors, and bulk decommission","href":"/guides/agent-identity-governance-setup"},{"title":"Plan per-agent channel concurrency caps","href":"/guides/agent-channel-concurrency-caps"},{"title":"HIPAA onboarding: from BAA to audit-ready","href":"/guides/hipaa-onboarding"},{"title":"HIPAA first-enablement runbook","href":"/guides/hipaa-first-enablement"},{"title":"HIPAA readiness checklist — pre-go-live runbook","href":"/compliance/hipaa-checklist-runbook"},{"title":"Register PHI-adjacent audiences","href":"/guides/hipaa-phi-audiences"},{"title":"Build a HIPAA-postured patient engagement program","href":"/guides/healthcare-patient-engagement-walkthrough"},{"title":"Free Tool: STIR/SHAKEN Attestation Checklist","href":"/guides/stir-shaken-checklist-tool"},{"title":"EU AI Act Article 50 transparency for AI agents","href":"/compliance/eu-ai-act"},{"title":"EU AI Act deployer checklist for AI voice agents","href":"/compliance/eu-ai-act-deployer-checklist-communications-platforms-2026"},{"title":"Configure AI disclosure before you publish an agent","href":"/compliance/ai-disclosure-settings"},{"title":"AI disclosure pre-publish setup and evidence","href":"/guides/ai-disclosure-setup"},{"title":"Always-on live compliance monitoring for disclosure queues","href":"/guides/live-compliance-monitoring"},{"title":"FCC 24-17 — written consent for AI voices","href":"/compliance/fcc-ai-voice-consent-guard"},{"title":"AI outbound voice compliance checklist for 2026 buyers","href":"/compliance/ai-voice-buyer-compliance-checklist-2026"},{"title":"SOC 2 Controls Mapping","href":"/compliance/soc2-controls"},{"title":"Assembling an ISO 27001 Posture End to End","href":"/compliance/iso-27001-posture-guide"},{"title":"Access lifecycle audit evidence (SCIM join / move / leave)","href":"/compliance/access-control-audit-evidence"},{"title":"PCI DSS compliance posture and SAQ A scope for Orbit","href":"/compliance/pci-dss"},{"title":"Call Recording Consent","href":"/compliance/recording-consent"},{"title":"Consent-Receipt Integrity Binding","href":"/compliance/consent-receipt-integrity"},{"title":"Voice Signatures (Verbal Contracts)","href":"/compliance/voice-signatures"},{"title":"STIR/SHAKEN attestation posture","href":"/compliance/attestation"},{"title":"Request a STIR/SHAKEN attestation letter","href":"/guides/compliance-attestation-request-runbook"},{"title":"Posture-History Rollups for the Audit Ledger","href":"/compliance/audit-ledger-posture-rollup"},{"title":"Do-Not-Originate (DNO) Caller-ID Blocking","href":"/compliance/do-not-originate"},{"title":"CALEA Lawful-Intercept Provisioning","href":"/compliance/calea-intercept"},{"title":"Voice Data Residency \u0026 Retention","href":"/compliance/voice-data-residency"},{"title":"Data Residency Overview","href":"/compliance/data-residency-overview"},{"title":"Pin, lock, and run a governed data-residency migration","href":"/guides/data-residency-pin-lock-migrate"},{"title":"Reading the subprocessor registry","href":"/compliance/subprocessor-registry"},{"title":"Immutable Archival Export (WORM)","href":"/compliance/archival-export"},{"title":"Trust Center vs Compliance Center — which surface serves which audience","href":"/compliance/trust-center-vs-workspace"},{"title":"Trust Center evidence pack","href":"/compliance/trust-center-evidence-pack"},{"title":"Stream audit logs to your SIEM","href":"/compliance/siem-sinks"},{"title":"Audit log export, chain verification, and refresh workflow","href":"/compliance/audit-export"},{"title":"Legal Holds on Messaging Conversations","href":"/compliance/legal-hold"},{"title":"Per-Domain Data Retention Policy","href":"/compliance/data-retention-policy"},{"title":"WhatsApp Restricted \u0026 Prohibited Content Policy","href":"/compliance/whatsapp-content-policy"},{"title":"WhatsApp Meta Policy Cadence \u0026 Tenant-Owned Posture","href":"/compliance/whatsapp-meta-policy-cadence"},{"title":"Data Subject Access Requests (DSAR)","href":"/compliance/dsar"},{"title":"Proof-of-Deletion Certificate Runbook","href":"/guides/compliance-dsar-erasure-certificate-runbook"},{"title":"On-demand message redaction","href":"/guides/on-demand-message-redaction"},{"title":"Data Processing Agreement (GDPR Article 28)","href":"/compliance/data-processing-agreement"},{"title":"GDPR Processing Register (ROPA + DPIA)","href":"/compliance/privacy-register"},{"title":"Breach incident register (GDPR Art. 33/34)","href":"/compliance/breach-incident-register"},{"title":"Operate the GDPR breach-incident register","href":"/compliance/breach-incidents-gdpr-register"},{"title":"DPO \u0026 EU/UK Representative Designation (GDPR Art.37 / Art.27)","href":"/compliance/dpo-representative"},{"title":"Consent Management \u0026 Receipts","href":"/compliance/consent-management"},{"title":"The Affirmative Opt-In Gate (consent_required)","href":"/compliance/consent-required-gate"},{"title":"Confirmed Consent (Double Opt-In) Handshakes","href":"/compliance/double-opt-in"},{"title":"Opt-in disclosure templates that clear 10DLC vetting","href":"/compliance/opt-in-disclosure-templates"},{"title":"Consent Posture: The Unknown-Consent Policies","href":"/compliance/consent-default-policy"},{"title":"Ad Consent Signals: TCF, GPP, GPC \u0026 us_privacy","href":"/compliance/ad-consent-signals"},{"title":"Opt-Out \u0026 Suppression Lists","href":"/compliance/opt-out-suppression"},{"title":"Bulk-import a suppression list from CSV","href":"/guides/suppression-csv-bulk-import"},{"title":"Opt-Out Keyword Alias Table","href":"/compliance/opt-out-keyword-alias-table"},{"title":"Opt-Out Entry Points by Channel","href":"/compliance/opt-out-entry-points-by-channel"},{"title":"Preference center: tenant controls and contract","href":"/compliance/preference-center"},{"title":"Suppression vs Consent Precedence Model","href":"/compliance/consent-vs-suppression-model"},{"title":"TCPA Reasonable Revocation (2025): One-to-One Consent Vacatur and the Reasonable-Revocation Era","href":"/compliance/tcpa-reasonable-revocation-2025"},{"title":"Keyword opt-outs on WhatsApp, RCS \u0026 Viber","href":"/guides/opt-out-rules-whatsapp-rcs"},{"title":"Fraud Shield — Tenant Triage \u0026 Chargeback Evidence","href":"/compliance/fraud-shield"},{"title":"Fraud Review Triage — Run the Response Loop","href":"/compliance/fraud-review-triage"},{"title":"Inbound Country Gate — Block or Flag Inbound Origins by Country","href":"/compliance/inbound-country-gate"},{"title":"Contact PII Vault (Tokenize + Detokenize)","href":"/compliance/pii-vault"},{"title":"Brand impersonation watchlist, scan \u0026 takedown cases","href":"/compliance/brand-impersonation-takedown"},{"title":"Wire a brand-identity watchlist and run smishing takedown cases","href":"/guides/brand-impersonation-takedown"},{"title":"Branded Calling (Rich Call Data) Configuration","href":"/compliance/branded-calling"},{"title":"Voice Destination Auto-Blocks (Traffic Pumping \u0026 Wangiri)","href":"/compliance/voice-destination-auto-blocks"},{"title":"Per-channel rate overrides","href":"/compliance/channel-rate-overrides"},{"title":"Fraud caps","href":"/compliance/fraud-caps"},{"title":"Frequency Caps as a TCPA Litigation-Risk Control","href":"/compliance/frequency-caps-compliance-posture"},{"title":"View and clear spend-anomaly auto-mitigations","href":"/guides/compliance-spend-anomaly-mitigations-self-serve"},{"title":"Export Consent \u0026 Suppression Records","href":"/compliance/consent-suppression-export"},{"title":"Compliance health","href":"/compliance/compliance-health"},{"title":"Compliance Readiness Summary","href":"/compliance/compliance-readiness-summary"},{"title":"Restricted \u0026 Prohibited Industries","href":"/compliance/restricted-industries"},{"title":"Political Campaign and GOTV Messaging for the 2026 US Cycle","href":"/compliance/political-campaign-gotv-messaging-2026"},{"title":"Country Compliance Requirements","href":"/compliance/country-requirements"},{"title":"Regional Posture Hub — Per-Country Rules Index","href":"/compliance/country-rules-directory"},{"title":"Sender-ID Decision Tree by Market","href":"/compliance/sender-id-by-market-decision-tree"},{"title":"Argentina CCM/AFIP Rules","href":"/compliance/argentina-enacom-rules"},{"title":"Country Rules Auto-Refresh Feeds","href":"/compliance/country-rule-feeds"},{"title":"CPNI (FCC U.S. Telecommunications)","href":"/compliance/cpni"},{"title":"Customer-Managed Keys (BYOK)","href":"/compliance/byok-customer-managed-keys"},{"title":"BYOK: register, activate, rotate, and revoke customer-managed keys","href":"/guides/compliance-byok-keys"},{"title":"BYOK rotation and lifecycle runbook","href":"/guides/compliance-byok-rotation-runbook"},{"title":"KYC Documents \u0026 the Compliance-Profile Lifecycle","href":"/compliance/documents-kyc"},{"title":"The KYC identity model: documents, profiles, and destinations","href":"/compliance/kyc-identity-model"},{"title":"Tenant-side KYC submission and renewal runbook","href":"/compliance/kyc-profile-submission-runbook"},{"title":"Regulated number-purchase compliance packets","href":"/guides/regulated-number-purchase-packets"},{"title":"KYC Submissions \u0026 Documents: Troubleshooting","href":"/troubleshooting/kyc-submission-and-documents"},{"title":"Assemble a Shared Compliance Profile Across Gated Surfaces","href":"/compliance/compliance-profile-assembly"},{"title":"10DLC brand \u0026 campaign compliance profiles","href":"/compliance/10dlc-brand-campaign-profiles"},{"title":"10DLC preflight: score, verdict, and finding codes","href":"/compliance/10dlc-preflight-linter"},{"title":"WhatsApp Business verification as a compliance profile","href":"/compliance/whatsapp-business-verification"},{"title":"Create a compliance profile with the wizard","href":"/guides/compliance-profile-wizard"},{"title":"Compliance-profile use cases and the surface each one opens","href":"/compliance/compliance-profile-use-cases"},{"title":"Sender-ID Registration","href":"/compliance/sender-id-registration"},{"title":"Sender-ID pre-registration: the market-choosing matrix","href":"/guides/sender-id-country-matrix"},{"title":"Sender-ID registration by market: the per-market walkthrough","href":"/guides/sender-id-registration-by-market"},{"title":"Country rules console: the per-country regulation map","href":"/guides/compliance-country-rules-console"},{"title":"Country-Gate Posture Playbook","href":"/guides/country-rules-posture-playbook"},{"title":"US CAN-SPAM Compliance for Email","href":"/compliance/can-spam"},{"title":"US TCPA Junk Fax Prevention Act Compliance for Fax","href":"/compliance/tcpa-junk-fax-posture"},{"title":"Gmail \u0026 Yahoo Bulk-Sender Requirements as a Compliance Posture","href":"/compliance/email-bulk-sender-requirements"},{"title":"List-Unsubscribe Header Posture for Email Deliverability","href":"/compliance/email-list-unsubscribe-posture"},{"title":"Canada PIPEDA Posture Guide","href":"/compliance/pipeda-canada"},{"title":"Quebec Law 25 Posture Guide","href":"/compliance/quebec-law-25-posture"},{"title":"CASL (Canada's Anti-Spam Legislation) for Commercial Email","href":"/compliance/casl-canada-anti-spam"},{"title":"Australia: Spam Act 2003 and the Do Not Call Register","href":"/compliance/au-spam-act"},{"title":"New Zealand: Unsolicited Electronic Messages Act 2007","href":"/compliance/nz-uem-act-sender-rules"},{"title":"DLT-India Onboarding","href":"/compliance/dlt-india"},{"title":"India DPDP Act 2023 Posture Guide","href":"/compliance/dpdp-india"},{"title":"Philippines NTC Sender Rules","href":"/compliance/philippines-sender-rules"},{"title":"Vietnam MIC Sender Registration + Marketing Rules","href":"/compliance/vietnam-mic-sender-rules"},{"title":"Mexico NOM-184 Consent Posture","href":"/compliance/mx-nom-184-consent"},{"title":"Mexico LFPDPPP Data-Protection Posture","href":"/compliance/mexico-lfpdppp-posture"},{"title":"Colombia Habeas Data + CRC Sender Rules","href":"/compliance/colombia-habeas-data-rules"},{"title":"Chile Ley 21.719 Data-Protection Rules","href":"/compliance/chile-ley-21719-data-protection"},{"title":"Peru Ley 29733 Data-Protection Rules","href":"/compliance/peru-ley-29733-data-protection"},{"title":"UK PECR and ePrivacy for Marketing Sends and Calls","href":"/compliance/uk-pecr-eprivacy"},{"title":"Brazil LGPD + Anatel Sender Posture","href":"/compliance/lgpd-brazil"},{"title":"Brazil Anatel Sender-ID Registration Rules","href":"/compliance/brazil-anatel-sender-rules"},{"title":"Brazil A2P Messaging: Anatel, LGPD and WhatsApp","href":"/compliance/brazil-a2p-sms-anatel-lgpd-2026"},{"title":"France Marketing SMS Rules","href":"/compliance/fr-marketing-sms-rules"},{"title":"Spain AEPD + LGT Marketing Rules","href":"/compliance/spain-aepd-lgt-rules"},{"title":"Japan APPI (Act on Protection of Personal Information)","href":"/compliance/japan-appi"},{"title":"Singapore and Thailand PDPA Posture","href":"/compliance/pdpa-singapore-thailand"},{"title":"Singapore PDPA (PDPC SG + DNC Register)","href":"/compliance/singapore-pdpa"},{"title":"Thailand PDPA (PDPA B.E. 2562 + PDPC Thailand)","href":"/compliance/thailand-pdpa"},{"title":"South Korea PIPA + KISA Opt-Out Posture","href":"/compliance/south-korea-pipa"},{"title":"Germany SMS \u0026 Voice Marketing Rules (UWG + BNetzA)","href":"/compliance/germany-uwg-bnetza"},{"title":"Austria TKG 2021 + RTR/DSB Sender Rules","href":"/compliance/austria-tkg-rtr-dsb-sender-rules"},{"title":"Switzerland Revised FADP + UCA Sender Rules","href":"/compliance/switzerland-fadp-ucw-sender-rules"},{"title":"Poland UKE + RODO Sender Rules","href":"/compliance/poland-uke-rodo-sender-rules"},{"title":"Netherlands Number \u0026 Sender Rules (ACM)","href":"/compliance/netherlands-acm-rules"},{"title":"Belgium BIPT + GBA Sender Rules","href":"/compliance/belgium-bipt-gba-sender-rules"},{"title":"Ireland Number \u0026 Sender Rules (ComReg + DPC)","href":"/compliance/ireland-comreg-dpc-sender-rules"},{"title":"Finland Number \u0026 Sender Rules (Traficom, formerly FICORA)","href":"/compliance/finland-ficora-rules"},{"title":"Sweden Number \u0026 Sender Rules (PTS)","href":"/compliance/sweden-pts-rules"},{"title":"Denmark Marketing Act Sender Rules (Markedsføringsloven, Datatilsynet)","href":"/compliance/denmark-marketing-act-sender-rules"},{"title":"Norway Marketing Act Sender Rules (Markedsføringsloven, Nkom)","href":"/compliance/norway-marketing-act-sender-rules"},{"title":"Portugal ePrivacy + CNPD Sender Rules (Lei 41/2004)","href":"/compliance/portugal-eprivacy-cnpd-sender-rules"},{"title":"Indonesia KOMDIGI Sender \u0026 Marketing Rules","href":"/compliance/indonesia-komdigi-sender-rules"},{"title":"Italy AGCOM + GDPR Sender Rules","href":"/compliance/italy-agcom-sender-rules"},{"title":"South Africa POPIA Posture","href":"/compliance/south-africa-popia"},{"title":"Turkey: KVVK and BTK Sender-ID Rules","href":"/compliance/turkey-kvkk-btk"},{"title":"Uae tdra sender rules","href":"/compliance/uae-tdra-sender-rules"},{"title":"Saudi Arabia CST Sender \u0026 Marketing Rules","href":"/compliance/saudi-arabia-cst-sender-rules"},{"title":"Malaysia MCMC Sender \u0026 Marketing Rules","href":"/compliance/malaysia-mcmc-sender-rules"},{"title":"Egypt NTRA Sender \u0026 Marketing Rules","href":"/compliance/egypt-ntra-sender-rules"},{"title":"Nigeria NCC Sender \u0026 Marketing Rules","href":"/compliance/nigeria-ncc-sender-rules"},{"title":"Kenya CA Sender \u0026 Marketing Rules","href":"/compliance/kenya-ca-sender-rules"},{"title":"Israel Sender \u0026 Marketing Rules (Spam Law 2008)","href":"/compliance/israel-isa-sender-rules"},{"title":"Singapore SGNIC Sender-ID Registration Rules","href":"/compliance/singapore-sgnic-sender-rules"},{"title":"Hong Kong PCPD + OFCA Sender Rules","href":"/compliance/hong-kong-pcpd-ofca-sender-rules"},{"title":"Long-Tail Market FAQ: KVVK, PIPA, APPI, POPIA, PDPA","href":"/compliance/long-tail-market-faq"},{"title":"Compliance evidence binder","href":"/compliance/evidence-binder"},{"title":"TCPA Evidence Pack in the Binder","href":"/compliance/tcpa-evidence-binder"},{"title":"Compliance activation bundles","href":"/compliance/plugin-marketplace"},{"title":"Vertical bundles: activation lifecycle semantics","href":"/compliance/vertical-bundles-activation-semantics"},{"title":"Troubleshooting: vertical-bundle activations duplicated, checklist stuck, or version-frozen","href":"/troubleshooting/vertical-bundle-activation-duplicates"},{"title":"Compliance endpoint permissions: the role matrix","href":"/troubleshooting/compliance-endpoint-permissions"},{"title":"TCPA Known-Litigator Gate","href":"/compliance/tcpa-known-litigator"},{"title":"Send Gates: BAA, Quiet Hours, DNC, RND, RMD, Emergency Codes, DNO \u0026 Country Rate","description":"Compliance gates Orbit applies before sending, including the HIPAA Business Associate Agreement gate, quiet hours, Do-Not-Call, FCC Reassigned Numbers, Robocall Mitigation, preference checks, and the voice pre-flight blocks (emergency short codes, Do-Not-Originate, per-country rate window).","href":"/compliance/send-gates"},{"title":"Emergency Stop: The Org-Wide Outbound Halt","href":"/compliance/emergency-stop"},{"title":"Quiet-Hours Preview: Channel-by-Channel Semantics","description":"Read GET /compliance/quiet-hours/preview correctly — what next_allowed_at asks you to do, how drip/journey sends resolve windows differently from 1:1 sends, worked calls per channel (SMS, voice, WhatsApp, email), how the advisory preview differs from the enforced send-gate, and the troubleshooting table for odd next_allowed_at values.","href":"/compliance/quiet-hours-preview"},{"title":"Emergency Stop Runbook: The Org-Wide Kill Switch","href":"/guides/compliance-emergency-stop"},{"title":"Preference center: the public opt-in/opt-out page","href":"/guides/preference-center-opt-out-page"},{"title":"Choose your suppression entry point: CSV import, Consent API, or Preference Center","href":"/guides/suppression-three-entry-points"},{"title":"Reconcile suppression across email and phone","href":"/guides/compliance-multi-address-suppression-reconciliation"},{"title":"Pre-Send Policy Scanner \u0026 DLP","href":"/compliance/policy-scanner"},{"title":"Spam-Keyword Deliverability Classifier","href":"/compliance/spam-keywords"},{"title":"AI Brand-Safety Scan","href":"/compliance/ai-brand-safety-scan"},{"title":"DLP scanner — data classes \u0026 strict mode","href":"/compliance/dlp-scanner"},{"title":"Inbox AI privacy — keep message content off the LLM","href":"/compliance/inbox-ai-privacy"},{"title":"FCC Robocall Mitigation Database (RMD): Filing Lifecycle","href":"/compliance/rmd-registration"},{"title":"FCC Robocall Mitigation Database (RMD) certification","href":"/guides/compliance-rmd-robocall-mitigation"},{"title":"Honeypot trap DIDs and the caller-reputation feed","href":"/guides/honeypot-registry-operations"},{"title":"ITG Traceback: Handling Requests for Originating Numbers","href":"/compliance/itg-traceback"},{"title":"DNC Scrubbing: Sources, Freshness, and the Check Endpoint","href":"/compliance/dnc-scrub"},{"title":"Short-code preflight: checks and remediation","href":"/compliance/shortcode-preflight"},{"title":"Carrier Deactivation (Churn) Scrub: List Hygiene Against Carrier Disconnects","href":"/compliance/deactivation-scrub"},{"title":"Finalize-and-purge runbook: the 24-hour recording lifecycle after deactivation","href":"/guides/deactivation-scrub-minimization-runbook"},{"title":"Recycled-Number Complaint Hygiene: Deactivation, RND, and the List Scrub Working Together","href":"/guides/compliance-recycled-number-hygiene-runbook"},{"title":"RCS Universal Profile 3.0 rich deep-link guardrails","href":"/compliance/rcs-up3-guardrails"},{"title":"Report apparent CSAM to the NCMEC CyberTipline","href":"/guides/media-csam-reporting-runbook"},{"title":"Batch DNC Pre-Flight Scrubbing","href":"/guides/dnc-preflight-scrub"},{"title":"List-Hygiene Projection: DNC Suppression on the Pre-Flight Preview","href":"/guides/campaign-list-hygiene-projection"},{"title":"RND Safe-Harbor Pre-Contact Number Scrubbing","href":"/guides/rnd-safe-harbor-preflight"},{"title":"RND Scrub: FCC Reassigned Numbers Database Reference","href":"/compliance/rnd-scrub"},{"title":"US Calling Windows: Federal TCPA + State Overlays","href":"/compliance/state-calling-windows"},{"title":"Number Timezone and State Resolution","href":"/compliance/number-timezone-resolution"},{"title":"Emergency Calling: Kari's Law and RAY BAUM'S Act Posture","href":"/compliance/emergency-calling-and-karis-ray-baums-posture"},{"title":"Voice Guard: the Federal Dialing-Window Decision Check","href":"/compliance/voice-guard"},{"title":"The sole platform-global compliance guard (invariant #68)","href":"/compliance/invariant-68-explainer"},{"title":"Voice Guard Sentinel: the Observability Contract","href":"/compliance/voice-guard-sentinel-observability"},{"title":"Voice Guard Observability: the Deep-Dive Runbook","href":"/compliance/voice-guard-observability-deep-dive"},{"title":"Voice traffic-lane resolution at the federal dial gate","href":"/compliance/voice-traffic-lane-resolution"},{"title":"Dialer Abandoned-Call Safe Harbor","href":"/compliance/dialer-abandoned-call-safe-harbor"},{"title":"UK Ofcom Dropped-Call Posture","href":"/compliance/uk-ofcom-abandoned-call-posture"},{"title":"Troubleshoot a pending number or Sender ID","href":"/compliance/troubleshooting-pending-gated-surfaces"},{"title":"Troubleshoot a 'blocked' send — map the code to the gate","href":"/compliance/troubleshooting-blocked-class-errors"},{"title":"Compliance profile lifecycle errors — INCOMPLETE, REQUIRED, NOT_APPROVED, LOCKED, IN_USE","href":"/compliance/compliance-profile-lifecycle-errors"},{"title":"Carrier rejection feedback: reading your rejection reason and fixing it","href":"/compliance/carrier-rejection-feedback"},{"title":"Compliance send-gate error codes — decide the gate, own the fix, re-verify","href":"/compliance/troubleshooting-compliance-error-codes"},{"title":"Sends blocked by consent gates — 403 consent_required","href":"/troubleshooting/consent-required-blocked-sends"},{"title":"Compliance-gate error codes FAQ","href":"/compliance/compliance-gate-error-codes-faq"},{"title":"Send-gate decision fork — which check rejected your send","href":"/compliance/send-gate-decision-fork"},{"title":"The send-gate evaluation chain — which gate fires, in which order","href":"/compliance/send-gate-evaluation-chain"},{"title":"Run a quarterly compliance posture review","href":"/guides/compliance-posture-quarterly-review"},{"title":"Operating Compliance-Health Scores as an Early-Warning Signal","href":"/guides/compliance-health-alerting-runbook"},{"title":"Your first compliance posture, end to end: from tenant-owned controls to a sealed evidence binder","href":"/guides/compliance-first-evidence-binder-walkthrough"},{"title":"Assemble and seal an evidence binder, read gated surface verdicts","href":"/guides/compliance-evidence-binder"},{"title":"Fulfill a DSAR and operate the breach-incident register","href":"/guides/compliance-dsar-breach-register"},{"title":"Run the privacy register — ROPA intake, DPIA screening, and the Art.30 export","href":"/guides/compliance-privacy-register"},{"title":"Work a Fraud Shield alert end to end","href":"/guides/compliance-fraud-shield"},{"title":"Deploy the public self-service DSAR intake portal","href":"/guides/self-service-dsar-portal"},{"title":"DSAR Self-Service Portal End-to-End","href":"/guides/dsar-portal-setup"},{"title":"Execute the DPA and BAA, then manage per-call recording consent","href":"/guides/compliance-dpa-baa-recording-consent"},{"title":"Legal holds: preserve recordings and message threads from retention sweeps","href":"/guides/compliance-legal-hold"},{"title":"Third-party archive connectors: deliver records to Smarsh, Global Relay, or Bloomberg Vault","href":"/guides/compliance-archive-connectors"},{"title":"Navigating the Settings → Compliance Hub","href":"/guides/compliance-hub-navigation"},{"title":"Upload and manage compliance documents","href":"/guides/settings-compliance-documents-console"},{"title":"Compliance Translation Parity Tracker","href":"/translation-parity-compliance"}]},{"group":"Legal","pages":[{"title":"Legal index","href":"/legal/index"},{"title":"Open source attribution","href":"/legal/attribution"}]},{"group":"Brand \u0026 press","pages":[{"title":"Press and brand resources","href":"/press-kit"},{"title":"How to use the press kit","href":"/press-kit-usage-guide"}]},{"group":"Tutorials","pages":[{"title":"Compliance integration recipes","href":"/tutorials/compliance-integration-recipes"}]},{"group":"Changelog","pages":[{"title":"Orbit changelog: product updates and API changes","href":"/changelog"}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/whatsapp/getting-started"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/programmable-voice-dsl"}]}]},"basePath":"","title":"Emergency Stop: The Org-Wide Outbound Halt - Devotel Orbit Documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}