10DLC-Registrierungs-Wizard
Der Wizard ist der empfohlene Weg, die TCR-Marken- und Kampagnenregistrierung abzuschließen. Er wandelt den linearen Ein-Schritt-Ablauf in einen geführten, fortsetzbaren Prozess um:- Speichern und wieder aufnehmen — Ihr Entwurf bleibt über Sitzungen, Tabs und Wochen hinweg erhalten. Schließen Sie den Tab oder kommen Sie morgen zurück; Sie setzen dort fort, wo Sie aufgehört haben.
- Zwischen Schritten nicht-linear wechseln — der Wizard verfolgt
brand,campaignundreviewals unabhängige Schritte. Füllen Sie die Kampagnen-Samples aus, während der Markenabschnitt noch unvollständig ist, und die Fortschritts-Payload hält beide Zähler. - Vor dem Zahlen validieren — feldspezifische Validierung feuert bei jedem Speichern, und ein Pre-Submission-Lint-Durchlauf bewertet den gespeicherten Entwurf gegen bekannte TCR-Ablehnungsmuster, bevor die Upstream-Registrierungsgebühr fällig wird.
Der Wizard schreibt nur in den Entwurfsspeicher Ihrer eigenen Organisation. Er hält, gate-t oder routet keinen Nachrichtenverkehr.
/api/v1/compliance/10dlc/wizard. Authentifizieren Sie mit Ihrem API-Schlüssel, genau wie bei den Marken- und Kampagnen-Endpunkten.
Rollen und Ratenlimits
- Lesen (
GET /wizard,GET /wizard/draft) — jede authentifizierte Rolle in der Organisation. - Schreiben (
PUT /wizard/draft,DELETE /wizard/draft,POST /wizard/phone/send,POST /wizard/phone/confirm,POST /wizard/preflight,POST /wizard/submit) — Owner- oder Admin-Rolle. - Schreibprofil: 10 Anfragen pro Minute, entsprechend den Legacy-Marken/Kampagnen-Endpunkten. Wizard-Preflight: 30 Anfragen pro Minute, entsprechend dem Ad-hoc-Preflight-Endpunkt.
GET /10dlc/wizard — Fortschritts-Payload
Gibt das berechnete Fortschrittsobjekt zurück, das das Dashboard für sein Banner „Fortsetzen, wo Sie aufgehört haben” verwendet. Immer 200 OK — eine frische Organisation erhält die Leer-Entwurfsform mit state: "not_started".
state ist einer von not_started, in_progress, brand_pending, campaign_pending, ready, rejected. current_step ist brand, campaign oder review. next_action ist ein maschinenlesbarer Hinweis: fill_brand, fill_campaign, review_and_submit, amend_brand, amend_campaign oder done. Sobald die Marke oder Kampagne eingereicht wurde, enthält die Antwort auch brand_id, campaign_id und etwaige Upstream-Ablehnungsgründe.
GET /10dlc/wizard/draft gibt den vollständig gespeicherten Entwurf (Markenfelder, Kampagnenfelder, aktueller Schritt) zur Formularvorbefüllung zurück.
PUT /10dlc/wizard/draft — Teilspeichern
Speichert eine beliebige Teilmenge von Marken- und/oder Kampagnenfeldern. Jedes Feld ist optional — Sie validieren nur die Felder, die Sie senden, und die anderen behalten ihre vorher gespeicherten Werte. current_step aktualisiert sich separat, sodass ein Resume auf dem richtigen Bildschirm landet.
422 zurück und lässt den persistierten Entwurf unberührt — der vorher gespeicherte Zustand überlebt.
Markenfelder: entity_type, display_name, company_name, ein, phone, street, city, state, postal_code, country, email, website, vertical.
Kampagnenfelder: usecase, description (40–4096 Zeichen), sample_message (1–10 Nachrichten), message_flow (min 40 Zeichen), help_message (min 20), optout_message (min 20), is_political, cv_token.
Sole-Proprietor-Telefonverifizierung (OTP)
US-Marken mitentity_type: "SOLE_PROPRIETOR", und nur diese, ersetzen eine verifizierte Mobilnummer für eine EIN: TCR verankert die Sole-Proprietor-Identität an einer Rufnummer, deren Kontrolle der Registrant nachweist. Jeder andere US-Entity-Typ muss stattdessen eine EIN einreichen.
Verifizieren Sie die Nummer vor der Einreichung:
brand.phone nach der Verifizierung, zählt der alte Nachweis nicht mehr, und die Einreichung scheitert mit 422, bis Sie eine frische Challenge gegen die neue Nummer laufen lassen. /phone/send auf einer bereits verifizierten Nummer gibt 409 ALREADY_VERIFIED zurück; /phone/confirm ohne ausstehende Challenge gibt 404 zurück.
POST /10dlc/wizard/preflight — Den gespeicherten Entwurf linten
Bewertet den persistierten Wizard-Entwurf gegen den Katalog bekannter TCR-Ablehnungsmuster, sodass der Bildschirm „Prüfen & Einreichen” Befunde gegen genau den Entwurf sieht, der gleich eingereicht wird — keine Chance auf Lint-Drift, wie ihn der Ad-hoc-Preflight-Endpunkt hat, wenn er eine manuell gebaute Payload lint.
Der Request-Body ist optional: expected_msg_per_day_per_number (für die Durchsatzstufen-Regel) und brand_vetting_score (0–100), wenn Sie bereits einen haben.
score, verdict, findings[] — ist identisch mit dem Preflight-Linter auf der Registrierungsseite. Wie bei jenem Endpunkt bedeutet ein pass-Urteil „keine bekannten Ablehnungsmuster gefunden”, nicht „TCR wird zustimmen”.
POST /10dlc/wizard/submit — Atomare Marke + Kampagne
Validiert den vollständigen Entwurf, dann reicht er Marke und Kampagne in einem Aufruf ein. Das Marken-Vetting landet typischerweise in 1–48 Stunden; die Kampagne folgt unmittelbar danach.
201 Created):
422 zurück, bevor irgendetwas belastet wird, mit details.section, das Ihnen sagt, ob die fehlenden oder ungültigen Felder im brand- oder campaign-Abschnitt liegen.
Fehlersemantik — der atomare Schutz:
- Marke upstream abgelehnt — keine Kampagne wird eingereicht. Der Entwurf bleibt mit dem Markenablehnungsgrund gestempelt erhalten, und
next_actionwechselt aufamend_brand. Korrigieren Sie die Markenfelder und reichen Sie erneut ein. - Kampagne upstream abgelehnt — die akzeptierte
brand_idwird persistiert, der Zustand bleibt beibrand_pending, und der Kampagnenablehnungsgrund wird gestempelt. Eine Neuesreichung überspringt die Markenstufe komplett, sodass die Markengebühr niemals erneut belastet wird; nur die Kampagne zahlt wieder. - Upstream 5xx oder Provider nicht verfügbar — der Entwurf bleibt verbatim erhalten, und Sie können ihn so erneut versuchen.
ready, sobald sowohl Marke als auch Kampagne von der Carrier-Prüfung als APPROVED zurückkommen.
DELETE /10dlc/wizard/draft — Zurücksetzen
204 No Content zurück. Setzt den Wizard auf den leeren Entwurf (state: "not_started") zurück. Dies löscht die genehmigten Marken- oder Kampagnen-IDs nicht — es setzt nur den Wizard-Arbeitszustand zurück, sodass es als Nach-Genehmigungs-Aufräumen oder „Neustart” sicher ist.
Vollständiger Lebenszyklus
PUT /10dlc/wizard/draft— Marke + Kampagne progressiv füllen.(nur SOLE_PROPRIETOR)POST /10dlc/wizard/phone/send→POST /10dlc/wizard/phone/confirm.POST /10dlc/wizard/preflight— Befunde beheben, bis das Urteil durchgeht.POST /10dlc/wizard/submit— atomare Einreichung.GET /10dlc/wizard— Zustand pollen bisready(oderGET /10dlc/campaigns/:id/statusfür die Carrier-Map, wie auf der Registrierungsseite).DELETE /10dlc/wizard/draft— optionales Nach-Genehmigungs-Aufräumen.