Compliance Readiness Summary
The readiness summary rolls the four pre-send posture checks — business verification (KYC), US A2P sender registration (10DLC), frequency caps, and keyword rules — into one colour-coded read, served byGET /api/v1/settings/compliance-health. It answers “is this workspace
configured to send?” before you scale traffic, not after a carrier tells you.
This guide explains how to read each pillar, where the summary appears in the
console, and the exact setting that moves a pillar.
What this summary is, and what it is not
The summary is a configuration read. Every field describes a setting or registration state your organization controls: whether KYC has passed, whether a TCR brand exists and in what status, how many frequency caps and keyword rules are enabled. It is not a traffic read. A separate surface, messaging compliance health (GET /api/v1/compliance/health), scores what actually happened on your traffic:
consent coverage, opt-out velocity, STOP-reply rate, and carrier rejections. That
surface is documented in Compliance Health Scores.
The two answer different questions:
Both surfaces are read-only and never gate sends. Nothing in Orbit blocks,
queues, or alters a message because of either read. Compliance posture is your
tenant’s responsibility; the summary only reports it. It is visible to owner and
admin roles, like the rest of Settings → Compliance.
Reading the four pillars
overall_status is derived from the pillars: red if any pillar blocks, amber if
any is pending, green otherwise. A pillar that reads “not configured” (frequency
caps or keyword rules with nothing enabled) does not move the overall status;
those are optional posture controls you turn on when you want them.
KYC — kyc
A brand-new workspace reads
not_started (red) until onboarding begins. That is
the summary doing its job, not a penalty. Move it: submit your documents in
KYC Documents; the end-to-end walkthrough is
Organization KYC onboarding.
10DLC — ten_dlc
Fields: brand_id (null until you register a brand), brand_status,
campaign_count, health.
campaign_count is informational; the pillar colour derives from the brand
status. Move it: register your brand and campaigns per
10DLC registration, then manage the records in
10DLC brand & campaign profiles.
Frequency caps — frequency_caps
active_count is the number of enabled caps; health is green when at least
one is enabled and none otherwise. Caps limit how many messages a recipient
receives in a window. They are tenant-owned and default off, so none is a
posture choice, not a defect. Move it: Frequency caps,
with the console walkthrough at
Frequency caps in the console.
Keyword rules — keyword_rules
active_count is the number of active keyword rules; health is green when at
least one is active and none otherwise. Move it: write your rules per
Opt-out rules; the default keyword set and its aliases
are listed in the
Opt-out keyword alias table.
Where the summary appears in the console
Settings → Compliance overview renders the overall status and one tile per pillar, so the hub’s first screen is the posture read. The SMS composer’s sender picker reads the 10DLC pillar too. When you select an owned US long code whileten_dlc.health is not green, the picker shows an
inline advisory that the number is not backed by an approved brand and campaign,
and that US carriers filter unregistered A2P traffic. The advisory is
informational: the number stays selectable and the send is not blocked. Whether
and when to register is your call; the platform reports posture, it does not
mandate it.
Worked example
A fully populated response for an organization with approved KYC, a brand in review, two enabled caps, and four active keyword rules:brand_id null and
counts of 0 where nothing is configured.
Triage walkthrough: overall red on a suspended brand
overall_statusisred, so find the blocking pillar:kyc.healthisgreen,ten_dlc.healthisred.brand_status: suspendedwith abrand_idmeans a previously registered brand was suspended.campaign_count: 1tells you one campaign hangs under it; that campaign’s US long-code traffic is the traffic at risk.- Open 10DLC brand & campaign profiles, read the registry reason on the brand record, and correct what it flags. The registration and resubmission path is 10DLC registration.
- After resubmission the brand moves to a pending state: the pillar reads
amberand the overall status follows toamber. When the registry approves, both readgreen. The console refreshes the summary every couple of minutes, so allow one refresh after a change before you re-read the tile.
Tenant-owned, read-only, safely degraded
- Tenant-owned. Every pillar reports a setting your organization configures; nothing is set on your behalf, and the switchable controls default off. The single platform-applied guard, the US federal TCPA voice dialing window, is not part of this summary; it lives with the voice controls and is covered in the hub FAQ.
- Read-only. The endpoint never blocks, queues, or alters a send. A red pillar is a report, not a gate.
- Safely degraded. If part of your workspace is still provisioning, the
summary still responds: a pillar whose data is not ready yet reads as not
configured (count 0, health
none) instead of erroring the whole response.
Related
- Compliance Health Scores — the traffic score this summary is not.
- Compliance hub console FAQ — hub panels, role gates, and the messaging health panel.
- Settings endpoint reference — request and
response reference for
GET /api/v1/settings/compliance-health.