Regulatory Preview
Many countries regulate who can hold a phone number and require identity or address documentation before activation. The regulatory-preview endpoint surfaces those requirements inline, before checkout — so you can show an at-a-glance “Documents needed” disclosure instead of forcing the buyer into the compliance wizard to discover the list.Query parameters
How checkout uses this
Call this endpoint before you let a buyer commit to a purchase. The Orbit dashboard does exactly this on the Numbers → Buy page: as soon as you pick a country and number type, it callsGET /numbers/regulatory-preview and renders the response as an inline disclosure on the checkout form — before you click Buy. Build the same flow into any custom purchasing UI:
- Buyer picks a country and number type.
- Your UI calls
regulatory-previewwith those two values. - Render one of two panels from the response:
unregulated: true→ an “instant activation” panel. No documents, no review wait.unregulated: false→ a “Documents needed” disclosure listingfieldsanddocument_roles, plus the expected review window fromactivation_eta.
- Use
compliance_profile_satisfiesto decide the call to action:true→ show “Your profile covers this” and let the purchase proceed.false→ link the buyer into the compliance wizard before they buy, so money is never debited into an inactive number.
Unregulated vs regulated
The response has two binary shapes. Readunregulated first.
Unregulated — unregulated: true
Some markets (for example the United States) impose no carrier or registry document requirements for local numbers. The preview returns empty requirement lists and no review window:
compliance_profile_satisfies is true here because nothing needs satisfaction.
Regulated — unregulated: false
Most of Europe (and much of APAC/LATAM) requires documentation. Germany is one of the heavier sets — identity, address, and business documents:
compliance_profile_satisfies values: the flag is evaluated against your compliance profiles on every call, while the requirements themselves are tenant-agnostic. A false means “you haven’t completed this country’s profile yet” — not “nobody can buy this number.”
You can also pin provider to compare carriers. The default unioned response (provider: "platform") returns the strictest combined requirement set, which is what the purchase gate will actually enforce.
Response
Fields
Field-to-KYC mapping
document_roles names the document categories a country expects; the files themselves live in your KYC document library. Map each role back to the upload type you registered the document with, then attach it to the compliance profile by its doc_… ID under that role:
A document only satisfies a role while it is non-expired. When a required document lapses,
compliance_profile_satisfies flips to false on the next preview call even if nothing else changed. Structured fields (business name, address, tax ID) map to the profile’s data — set them with PUT /compliance/compliance-profiles/:id/data, and re-run the preview after each update to confirm the flag flipped to true.
Carrier regulatory schemas are cached for 24 hours (they change on quarterly cycles), but the
compliance_profile_satisfies check runs on every request against your profiles, scoped to your organization — so attaching a new profile updates the flag immediately.After purchase: the pending_compliance state
If you do buy with compliance_profile_satisfies: false, the number is debited but held at pending_compliance — it routes nothing until you attach an approved profile. Two follow-on behaviors to plan for:
- Carrier deadline. The carrier sets a verify-by window on the order. If the window expires while the number still waits, it can be auto-released and the inventory returned. Watch the document-expiry alerts banner to see the deadline before it costs you the number.
- Recovery. Complete the profile, attach it to the number, and activation proceeds without a second purchase. The lifecycle is documented in Number Lifecycle.
compliance_profile_satisfies) always reflects your profiles as of the current call, never a cached snapshot.
Uploading the documents this check counts
document_roles tells you which document categories the carrier wants (e.g. id_proof, address_proof); the actual files are uploaded once into your KYC document library, attached to a compliance profile by their doc_… IDs, and flagged here as satisfied only while they remain non-expired. See KYC Documents & the Compliance-Profile Lifecycle for upload, reuse, and renewal.