Core Concepts
Do Not Call (DNC) Directory
The DNC directory is a per-organization list of phone numbers that the platform refuses to dial or message. It enforces compliance with regional Do Not Call regulations and customer opt-out preferences automatically — no application-level glue required.
How it works
Two enforcement points:
- Dial-time check. Every outbound call (manual
voice_sessions.outbound, scheduled campaign, or direct API) calls the DNC service before placing the call. If the destination is on a DNC list visible to your organisation, the call is rejected with a structured 402-style error and never reaches the carrier. - Inbound opt-out detection. When
auto_add_inbound_optoutsis enabled (the default), the platform watches every inbound SMS / WhatsApp message for STOP-style language ("STOP", "UNSUBSCRIBE", "QUIT", "CANCEL", local-language equivalents) and adds the sender to your org's DNC list automatically.
Sources
A DNC entry has a source describing where it came from:
| Source | Meaning |
|---|---|
org_upload | Added explicitly by your organisation via API or admin UI. The only source you can delete. |
inbound_optout | Auto-added because the contact replied STOP / UNSUBSCRIBE / etc. on an inbound channel. |
platform | Curated by the Neuratel platform — typically regulator lists or known abuse numbers. Not removable by orgs. |
Settings
Per-organisation toggles:
| Setting | Default | Effect |
|---|---|---|
protection_enabled | true | Master switch. When false, DNC checks still run and log but do not block outbound calls. Use only for testing. |
auto_add_inbound_optouts | true | Inbound STOP-style messages auto-add the sender. Disable only if you handle opt-out flows in your own application logic. |
API surface
Six user-facing endpoints under /v1/dnc/* — see the DNC management guide for end-to-end usage and the API reference for full schemas.
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/dnc/check | Probe a single number against the directory |
| GET | /v1/dnc/entries | List entries visible to your org |
| POST | /v1/dnc/entries | Add a number to your org list |
| DELETE | /v1/dnc/entries/{id} | Soft-expire an org_upload entry |
| GET | /v1/dnc/settings | Read protection / auto-detect toggles |
| PATCH | /v1/dnc/settings | Update toggles |
Compliance notes
- DNC enforcement is at dial time, not at call-list import time. A campaign with 10,000 contacts where 200 land on the DNC will skip those 200 silently and the analytics dashboard surfaces the count.
- Soft-deleted
org_uploadentries are audit-preserved — they stop blocking but remain in the audit log. platformentries cannot be overridden by org admins. Contact your account team if you believe a number is mis-listed.
Cost
DNC checks, entry management, and STOP auto-detection are included with the platform — there are no additional fees for using the DNC directory.
Related
- Manage DNC entries — concrete API examples
- Outbound campaigns — how DNC affects campaign dialling
- Production checklist — DNC verification step
Last modified on
