Skip to main content

Country rules console: the per-country regulation map

Sending to a new market fails on details most platforms make you hunt for one country at a time: which sender types the destination accepts, whether your Sender ID must be registered before the first send, what content the carriers block, and which opt-out text the local route demands. Settings → Compliance → Country rules (/settings/compliance/country-rules) collapses all of that into one map, and you read it before you pick launch markets — not at send time.
Every control that consumes this map — your quiet-hours window, your campaign limits, your consent and suppression posture — is tenant-owned: Orbit gives you the reference data and the gates you select; you decide the posture. This page is not legal advice — confirm obligations with counsel.

1. Open the console

Navigate to Settings → Compliance → Country rules. The console reads the same endpoint your integrations call — GET /api/v1/compliance/country-rules — so anything visible on screen is reachable over the API as well. Any authenticated user can read the map; refresh of upstream feeds and ops edits are owner/admin (and the feed refresh itself is a platform-admin function). The header names the console’s contract: per-country sender-ID rules, content restrictions, and registration requirements, refreshed from upstream feeds, with ops overrides stamped row by row. Never static — every row carries provenance.

2. What the surface governs

Five channel tabs — SMS, WhatsApp, RCS, Voice, Email — answer to a different regulator each, so the same country answers per channel. The search box matches country name, ISO code, calling code, or any rule text; the region filter narrows the scan (?region=EU on the API). Each country card answers four questions:
  • Sender types — which sender kinds the destination accepts (alphanumeric, numeric, long_code, short_code, ten_dlc, waba, rcs_agent, or a from_address for email).
  • Registrationnone, recommended, or required. A required badge means unregistered traffic is refused by the destination — plan the lead time before you commit to the market.
  • Sender rules and content restrictions — the free-text detail on what that route accepts and what the carriers block.
  • Opt-out requirement, throughput, and route facts — the stop_requirement text (the opt-out keywords the local route honours), default_tps, two-way capability, and delivery-receipt (DLR) support.
Every row also carries provenance: Synced from <feed> <time> on auto-refreshes, Ops-reviewed <time> on manual edits. Ops edits stamp last_reviewed_at; weekly auto-syncs stamp last_synced_at and never overwrite the ops free-text fields. Use the badge to time registration and the free-text to plan copy and senders.

3. Build a country pack per market

A country pack is the ordered checklist you assemble for one market before you enable sends there. For each (country, channel) pair:
  1. Lock the sender. Read the sender_types list and the registration badge; file the registration with the lead time in view (recap on Sender-ID pre-registration: the market-choosing matrix).
  2. Match the opt-out text. Read stop_requirement and make sure your organization’s opt-out keyword aliases cover it — the keyword alias table is on Opt-out keyword aliases.
  3. Check content restrictions. Fold the blocked-content notes into your compose-time lint expectations — the pre-send policy scanner runs on every outbound text before dispatch (Policy scanner).
  4. Set your throughput and quiet-hours posture. default_tps is the route’s expected throughput; the recipient-local time window comes from your own organization settings, not from this map — see the next section.
The pack is yours to define; the map only answers the questions.

4. Compose the pack with your quiet-hours and campaign limits

The country-rules map tells you where and with what sender; your tenant settings tell you when and at what volume. In each case a blocked send tells you which layer held it: a country gate answers with the card’s badge and rule text; your own window answers with a next_allowed_at timestamp you can schedule to.

5. Evidence hooks for audits

The map’s audit trail is provenance and the ledger:
  • Every ops edit to a row lands in your audit log as a compliance.country_rule.updated entry; feed refreshes land as compliance.country_rules.synced — both are filterable under Settings → Audit log (Audit log guide).
  • When an auditor asks “which markets did you check and when”, export the map programmatically (GET /api/v1/compliance/country-rules per channel) and attach it to your evidence binder alongside the quiet-hours and campaign-limits posture — the binder assembly walk is on Assemble and seal an evidence binder with the full endpoint surface on the binder reference.

6. Tenant-owned framing

The country-rules console is a reference, not a mandate. It answers “what does the destination require?” so your own gates — quiet hours, campaign limits, DNC, policy scanning — are worth enforcing in the first place. Orbit maintains the data and defaults every gate open; you pick markets, register senders, set windows, and attest the posture. Hand the map to counsel before a commercial launch, together with the statute citations your own gates rely on.

See also