Skip to main content

DNC-Scrubbing: Quellen, Aktualität und der Check-Endpunkt

Ein Do-Not-Call-Scrub beantwortet vor dem Versand eine Frage: steht diese Nummer auf einer Liste, die eine Kontaktaufnahme blockiert oder einschränkt? Orbit prüft Ihre eigenen Listen (Kontakt-Flags, DNC-Einträge, Suppression, Consent), die plattformweite Liste, die US-Bundes-, Staats- und TCR-Feeds sowie mehrere internationale staatliche Register – und dieselbe Kette, die der Versandpfad durchsetzt, ist als API lesbar, sodass Sie eine kalte Liste vorab prüfen können, ohne einen verstoßenden Versand zu riskieren. Diese Seite ist das Gesamtbild: wann Scrubbing zählt, wie Sie es einschalten, woher die synchronisierten Daten kommen, wie Sie die Felder source und last_synced_at des Check-Endpunkts lesen und der eine fail-open-Vorbehalt, den Sie steuern müssen. Für die Versandzeit-Gates, die das Ergebnis konsumieren, siehe Send Gates. Alle untenstehenden Endpunkte sind unter https://api.orbit.devotel.io/api/v1/compliance verwurzelt.
Diese Seite beschreibt die Plattformsteuerungen von Orbit. Sie ist keine Rechtsberatung. Ob eine bestimmte Nummer für Sie tabu ist, hängt von Ihrer Jurisdiktion, Ihren Empfängern und davon ab, was Sie senden. Ziehen Sie qualifizierten Rechtsbeistand hinzu.

Wann DNC-Scrubbing zählt

DNC-Verpflichtungen stammen aus mehr als einem Register, und sie lagern sich:
  • US-Bundes-DNC (FTC National Registry). Telemarketing-Anrufe und Marketing-Texte an eine bundesweit registrierte Nummer sind eingeschränkt; ein Scrub gegen das Bundesregister ist die Basisverteidigung vor jeder Outbound-Kampagne.
  • US-Bundesstaatsregister. Mehrere Staaten führen zusätzlich zum Bundesregister eigene DNC-Listen. Eine Nummer kann bundesweit fehlen, aber beispielsweise in Pennsylvania registriert sein – ein rein bundesweiter Scrub ist für US-Verkehr daher nicht vollständig.
  • TCR Universal Opt-Out. Die universelle Opt-out-Liste des Campaign Registry erfasst Nummern, die A2P-Texting auf Registerebene abgelehnt haben. Ihre Beachtung gehört zur US-10DLC-Texting-Hygiene – unabhängig von Ihrer eigenen Suppressionsliste.
  • Internationale staatliche Register. Außerhalb der USA gelten gleichwertige staatliche Listen – das britische TPS und CTPS, Australiens Do Not Call Register, Indiens NDNC. Diese sind jurisdiktionsabhängig: Sie scrubben eine UK-Kampagne gegen UK-Register, weshalb der Check-Endpunkt einen country-Filter akzeptiert (unten).
Nichts davon ersetzt Ihre eigene Suppressionsschicht – ein Empfänger, der Ihnen mit STOP geantwortet hat, ist unabhängig von jedem staatlichen Register eingeschränkt. Die Scrub-Kette behandelt Ihre Suppression, Consent-Opt-outs und die staatlichen Register als eine kombinierte Antwort.

Den Mandantenschalter aktivieren

Der Check-Endpunkt ist pro Organisation standardmäßig aus. Bis Sie sich anmelden – oder bis Orbit einen Feed für die Plattform synchronisiert hat – gibt der Endpunkt 403 DNC_SYNC_NOT_ENABLED zurück:
Schalten Sie ihn in den Compliance-Einstellungen Ihrer Organisation ein (die Einstellung dnc_sync_enabled – siehe die Haltungskarte, die diesen Schalter und seinen Standardwert aufführt). Ein einziges Umlegen aktiviert sowohl den Einzelnummer-Check als auch den Bulk-Scrub.
Das Gate geht in den Ruhestand, sobald Feeds synchronisiert sind. Der Organisations-Schalter ist die Bestätigung, dass Orbit, solange kein Bundesfeed synchronisiert ist, für Sie nicht gegen das FTC-Register scrubbt. Sobald die Plattform einen Bundes-, Staats-, TCR- (oder internationalen) Snapshot synchronisiert hat, antwortet der Endpunkt direkt und das 403-Gate gilt nicht mehr – das Feld federal_feeds_synced auf jeder Antwort sagt Ihnen, in welchem Zustand Sie sich befinden. Ihre eigene DNC-, Suppressions- und Consent-Durchsetzung auf dem Versandpfad bleibt in beiden Fällen unberührt.

Woher die Liste kommt (Feed-Verdrahtung)

Die synchronisierten DNC-Daten kommen aus Upstream-Feeds und werden täglich in die plattformweite DNC-Liste aufgefrischt. Was ein Betreiber konfiguriert, bestimmt, welche der source-Werte Sie vom Check-Endpunkt zurücksehen. Dies sind Umgebungsvariablen auf Betreiberebene. Auf der SaaS-Plattform von Orbit sind sie für Sie gesetzt; der SaaS-Betreiber steuert, welche Feeds live sind. Unmittelbar relevant sind sie nur, wenn Sie Orbit selbst hosten – dann konfigurieren Sie sie in Ihrem Deployment:
  • DEVOTEL_DNC_FEED_FILE – ein gemountetes Volume, das einen beschafften Bundes-/Staats-/TCR-Snapshot enthält. Der tägliche Sync liest ihn, parst jede ausgeschlossene Nummer und upsertet sie mit Quell-Tag in die plattformweite DNC-Liste (federal_dnc, state_dnc:XX oder tcr).
  • DEVOTEL_DNC_FEED_URL – ein authentifizierter Download desselben Snapshots, als Alternative zu einer gemounteten Datei. Die Datei hat Vorrang, wenn beides gesetzt ist.
Der Sync läuft einmal pro UTC-Tag (Feeds veröffentlichen einmal pro Geschäftstag; der Lauf zielt auf 03:00 UTC, damit ein morgendliches Sendefenster frische Daten sieht). Das erneute Ausführen desselben Snapshots ist – über das Auffrischen des Zeitstempels hinaus – ein No-op; das Upsert ist idempotent. Fallback: direkter TCR-Abruf. Wenn keine Snapshot-Datei/URL konfiguriert ist, aber die bezahlten TCR-Partner-Zugangsdaten gesetzt sind – DEVOTEL_TCR_API_KEY zusammen mit DEVOTEL_TCR_PARTNER_ID – zieht der tägliche Sync die TCR-Universal-Opt-Out-Registry direkt von der Partner-API und upsertet sie als source: "tcr". Damit erhalten Sie den TCR-Scrub aus dem bestehenden TCR-Abonnement ohne Out-of-band-CSV.
Derselbe Snapshot, den der tägliche Sync in die plattformweite DNC-Liste schreibt, wird beim Start der API auch in den Speicher geladen, sodass der Check-Endpunkt eine Bundes-/Staats-/TCR-Abfrage beantworten kann, ohne auf den nächsten täglichen Schreiblauf zu warten. federal_feeds_synced: true auf der Antwort bedeutet, dass dieser In-Memory-Feed live ist.

Den Check-Endpunkt lesen

GET /compliance/dnc/check meldet, ob eine E.164-Nummer auf einer DNC-Quelle steht, die der Versandpfad durchsetzt. Er ist schreibgeschützt – er führt keinen Versand durch.
Ein Treffer gibt zurück:
Eine saubere Nummer gibt "on_dnc": false, "source": "none" und eine leere jurisdictions zurück. Die Felder, die die Haltung tragen:
  • source – welche Quelle den ersten Treffer lieferte, einer von federal_dnc, state_dnc (ein US-Staatsregister), tcr (das TCR Universal Opt-Out), intl_dnc (ein internationales staatliches Register), suppression (Ihre eigene Suppressionsschicht) oder none (auf keiner Liste). jurisdictions listet jede passende Herkunft, sodass eine Nummer, die sowohl im Bundes- als auch in einem Staatsregister steht, beide sichtbar macht.
  • last_synced_at – der Aktualitäts-Zeitstempel der passenden Quelle: wann der Bundes-/Staats-/TCR-Snapshot (oder die Trefferzeile) zuletzt synchronisiert wurde. Der tägliche Sync stempelt bei jedem Lauf eine Heartbeat-Zeile, sodass dieses Feld für die feed-gestützten Quellen immer ein „zuletzt synchronisiert”-Signal trägt, statt still zu werden, wenn keine Zeile passt. Ihre eigenen Suppressions-/Consent-Quellen haben keinen Sync; bei einem reinen Suppressions-Treffer spiegelt das Feld das Opt-out-Ereignis selbst.
  • federal_feeds_synced / intl_feeds_synced – ob die API tatsächlich einen US-Bundes-/Staats-/TCR-Snapshot bzw. einen internationalen Staatsregister-Snapshot aufgenommen hat. Lesen Sie diese auf jeder Antwort: Sie unterscheiden „die Nummer ist sauber” von „die Nummer ist sauber und ein Bundes-Scrub hat diese Antwort gestützt”.
Jurisdiktionsfilter. Fügen Sie country (ISO alpha-2) hinzu, um die internationale Registerabfrage auf eine Jurisdiktion einzugrenzen:
Mit country=GB können nur UK-Register (TPS/CTPS) einen internationalen Treffer liefern – eine UK-gebundene Kampagne wird nie über den Eintrag eines unbeteiligten Landes gemeldet. Bulk. Um eine ganze Liste oder Kampagnenzielgruppe in einem Aufruf zu scrubben, verwenden Sie POST /compliance/dnc/scrub mit einem phones-Array (bis zu 500 Nummern pro Anfrage; Duplikate werden entfernt). Es führt dieselbe Kette pro Nummer aus und gibt Einzelergebnisse plus on_dnc- / clear-Zählwerte zurück. Dasselbe Organisations-Gate gilt.

Wie die Versandseite es konsumiert

Der Check-Endpunkt ist ein Lesen derselben Kette, die der Versandpfad durchsetzt. Sie verdrahten den Scrub nicht in Ihre Versendungen – Orbit tut das bereits:
  • Messaging (SMS / MMS / WhatsApp / …). Vor dem Dispatch beantwortet der Versandpfad „ist dieser Empfänger ausgeschlossen?” gegen dieselben DNC-Quellen – Ihr Kontakt-DNC-Flag, Ihre DNC-Liste, die Suppressionsliste (das kanalübergreifende STOP-Signal), die plattformweite DNC-Liste (wo der tägliche Bundes-/Staats-/TCR-Feed landet) und aufgezeichnete Consent-Opt-outs. Ein Treffer verwirft den Versand.
  • Voice / Dialer. Der Dialer führt dieselbe Compliance-Kette vor dem Anrufaufbau aus – kanalübergreifendes STOP, Kontakt-DNC, Plattform-DNC und Consent – sodass eine per SMS ausgeschlossene Nummer anschließend nicht voice-gewählt wird. Der Versandpfad versagt geschlossen (fail-closed): Kann der Compliance-Check selbst nicht abgeschlossen werden, wird der Anruf verschoben statt gewählt.
Die Aufgabe des Endpunkts ist also die Vorprüfung, nicht die Durchsetzung: Fragen Sie ihn (oder den Bulk-Scrub) zu einer kalten Liste vor einer Kampagne ab, um Nummern zu entfernen, die das Gate ohnehin blockieren würde – und um sie für Ihre eigenen Aufzeichnungen sichtbar zu machen.

Der fail-open-Vorbehalt

Der Leseendpunkt ist auf der Quellschicht fail-open: Ist eine DNC-Quelle nicht abfragbar, setzt der Check mit den anderen fort und gibt die beste verfügbare Antwort zurück. Die konkrete Konsequenz, die Sie verstehen müssen:
Solange kein Bundesfeed synchronisiert ist, wird eine Nummer, die nur im FTC-Bundesregister steht, als sauber zurückgelesen (on_dnc: false).
Deshalb ist der Endpunkt bis zu Ihrer Anmeldung gated, und deshalb reist federal_feeds_synced auf jeder Antwort mit. Zwei operative Regeln folgen:
  1. Behandeln Sie ein sauberes Ergebnis nicht als bundesweite Safe-Harbor, sofern nicht federal_feeds_synced: true. Ein sauberer Befund mit federal_feeds_synced: false bedeutet nur, dass Ihre eigenen Listen, Suppression, Consent und die Plattformliste die Nummer nicht gemeldet haben.
  2. Das strikte Gate ist der Versandpfad. Der Lesepfad ist per Design fail-open, der Versandpfad nicht. Ein falsch negatives Ergebnis einer Vorab-Abfrage wird nie zu einem Versand – die Versandzeit-Kette prüft dieselben Quellen erneut und blockiert, was sie findet.
Behandeln Sie auf der Orbit-SaaS federal_feeds_synced: false als „kein Bundes-Scrub stützt diese Antwort bislang”, und berücksichtigen Sie das bei der Entscheidung, ob Sie die Vorprüfung für eine US-Kampagne heranziehen. Selbsthoster schließen die Lücke, indem sie einen Feed konfigurieren (oben).

Vor einer Kampagne verifizieren

Prüfen Sie eine Kampagnenzielgruppe mit dem Bulk-Scrub vorab und handeln Sie dann nach den Befunden:
Entfernen Sie die on_dnc: true-Nummern vor dem Versand aus der Zielgruppe. Prüfen Sie federal_feeds_synced / intl_feeds_synced auf derselben Antwort, um zu wissen, welche Register die Befunde tatsächlich gestützt haben, und prüfen Sie last_synced_at pro Ergebnis, um die Aktualität der Daten zu bestätigen. Für eine größere Liste blättern Sie sie in 500er-Blöcken durch.
Siehe auch: