Assistant d’enregistrement 10DLC
L’assistant est la méthode recommandée pour effectuer l’enregistrement de la marque et de la campagne TCR. Il transforme le flux linéaire en une seule étape en un processus guidé et reprenable :- Enregistrer et reprendre — votre brouillon persiste entre les sessions, les onglets et les semaines. Fermez l’onglet ou revenez demain ; vous reprenez là où vous vous étiez arrêté.
- Naviguer entre les étapes de manière non linéaire — l’assistant suit
brand,campaignetreviewcomme des étapes indépendantes. Remplissez les exemples de la campagne alors que la section marque est encore incomplète, la charge utile de progression conserve les deux décomptes. - Valider avant de payer — la validation par champ se déclenche à chaque enregistrement, et un passage de lint pré-soumission évalue le brouillon enregistré par rapport aux motifs de rejet TCR connus avant que les frais d’enregistrement amont ne soient facturés.
L’assistant écrit uniquement dans le stockage de brouillons de votre propre organisation. Il ne détient, ne bloque ni n’achemine aucun trafic de messages.
/api/v1/compliance/10dlc/wizard. Authentifiez-vous avec votre clé API, exactement comme pour les endpoints marque et campagne.
Rôles et limites de débit
- Lectures (
GET /wizard,GET /wizard/draft) — tout rôle authentifié de l’organisation. - Écritures (
PUT /wizard/draft,DELETE /wizard/draft,POST /wizard/phone/send,POST /wizard/phone/confirm,POST /wizard/preflight,POST /wizard/submit) — rôle propriétaire ou administrateur. - Profil d’écriture : 10 requêtes par minute, identique aux endpoints marque/campagne historiques. Pré-soumission de l’assistant : 30 requêtes par minute, identique à l’endpoint de pré-soumission ad hoc.
GET /10dlc/wizard — charge utile de progression
Renvoie l’objet de progression calculé que le tableau de bord utilise pour sa bannière « Reprendre là où vous vous étiez arrêté ». Toujours 200 OK — une organisation nouvelle reçoit la forme de brouillon vide avec state: "not_started".
state vaut l’un de not_started, in_progress, brand_pending, campaign_pending, ready, rejected. current_step vaut brand, campaign, ou review. next_action est un indice lisible par la machine : fill_brand, fill_campaign, review_and_submit, amend_brand, amend_campaign, ou done. Lorsque la marque ou la campagne a été soumise, la réponse porte également brand_id, campaign_id, ainsi que tout motif de rejet amont.
GET /10dlc/wizard/draft renvoie le brouillon complet enregistré (champs de la marque, champs de la campagne, étape courante) pour le pré-remplissage du formulaire.
PUT /10dlc/wizard/draft — enregistrement partiel
Enregistre tout sous-ensemble de champs de la marque et/ou de la campagne. Chaque champ est optionnel — vous ne validez que les champs que vous envoyez, et les autres conservent leurs valeurs précédemment enregistrées. current_step se met à jour séparément afin qu’une reprise aboutisse sur le bon écran.
422 et laisse le brouillon persisté intact — l’état précédemment enregistré est conservé.
Champs de la marque : entity_type, display_name, company_name, ein, phone, street, city, state, postal_code, country, email, website, vertical.
Champs de la campagne : usecase, description (40–4096 caractères), sample_message (1–10 messages), message_flow (min 40 caractères), help_message (min 20), optout_message (min 20), is_political, cv_token.
Vérification du téléphone d’un propriétaire unique (OTP)
Les marques américaines avecentity_type: "SOLE_PROPRIETOR", et seulement celles-ci, substituent un numéro de mobile vérifié à un EIN : TCR ancre l’identité du propriétaire unique sur un numéro de téléphone dont le déclarant prouve qu’il a le contrôle. Tout autre type d’entité américaine doit soumettre un EIN à la place.
Vérifiez le numéro avant la soumission :
brand.phone après la vérification, l’ancienne preuve ne compte plus et la soumission échoue avec 422 jusqu’à ce que vous exécutiez un nouveau défi contre le nouveau numéro. Appeler /phone/send sur un numéro déjà vérifié renvoie 409 ALREADY_VERIFIED ; appeler /phone/confirm sans défi en attente renvoie 404.
POST /10dlc/wizard/preflight — contrôler le brouillon enregistré
Évalue le brouillon persisté de l’assistant par rapport au catalogue des motifs de rejet TCR connus, afin que l’écran « Review & submit » voie les constats sur le brouillon exact qu’il s’apprête à soumettre — aucun risque de dérive de lint comme l’endpoint de pré-soumission ad hoc en présente lorsqu’il contrôle une charge utile construite à la main.
Le corps de la requête est optionnel : expected_msg_per_day_per_number (pour la règle du niveau de débit) et brand_vetting_score (0–100) lorsque vous en possédez déjà un.
score, verdict, findings[] — est identique au linter de pré-soumission de la page d’enregistrement. Comme pour cet endpoint, un verdict pass signifie « aucun motif de rejet connu détecté », et non « TCR approuvera ».
POST /10dlc/wizard/submit — marque + campagne atomiques
Valide le brouillon complet, puis soumet la marque et la campagne en un seul appel. La vérification de la marque aboutit généralement en 1 à 48 heures ; la campagne suit immédiatement après.
201 Created) :
422 avant toute facturation, avec details.section indiquant si les champs manquants ou invalides se trouvent dans la section brand ou campaign.
Sémantique des échecs — la garantie atomique :
- Marque rejetée en amont — aucune campagne n’est soumise. Le brouillon est conservé avec le motif de rejet de la marque horodaté, et
next_actionbascule suramend_brand. Modifiez les champs de la marque et re-soumettez. - Campagne rejetée en amont — le
brand_idaccepté est persisté, l’état reste àbrand_pending, et le motif de rejet de la campagne est horodaté. Une re-soumission ignore entièrement l’étape de la marque, de sorte que les frais de marque ne sont jamais refacturés ; seule la campagne paie à nouveau. - 5xx amont ou fournisseur indisponible — le brouillon est conservé tel quel et vous pouvez réessayer à l’identique.
ready dès que la marque et la campagne reviennent toutes deux avec le statut APPROVED de la révision opérateur.
DELETE /10dlc/wizard/draft — réinitialisation
204 No Content. Réinitialise l’assistant au brouillon vide (state: "not_started"). Cela n’efface pas les identifiants de marque ou de campagne approuvés enregistrés — cela réinitialise uniquement l’état de travail de l’assistant, ce qui est sûr comme nettoyage post-approbation ou pour « recommencer ».
Ordre complet du cycle de vie
PUT /10dlc/wizard/draft— remplir progressivement la marque + la campagne.(SOLE_PROPRIETOR uniquement)POST /10dlc/wizard/phone/send→POST /10dlc/wizard/phone/confirm.POST /10dlc/wizard/preflight— corriger les constats jusqu’à ce que le verdict passe.POST /10dlc/wizard/submit— soumission atomique.GET /10dlc/wizard— interroger l’état jusqu’àready(ouGET /10dlc/campaigns/:id/statuspour la carte par opérateur, comme sur la page d’enregistrement).DELETE /10dlc/wizard/draft— nettoyage optionnel post-approbation.