Skip to main content

Enregistrement 10DLC

10DLC (10-Digit Long Code) est le système imposé par les opérateurs américains pour envoyer des messages SMS Application-to-Person (A2P) avec des numéros de téléphone standard à 10 chiffres. Toutes les entreprises envoyant des SMS vers des numéros américains doivent s’enregistrer via 10DLC pour garantir la délivrabilité et la conformité.

Vue d’ensemble

Les opérateurs américains (T-Mobile, AT&T, Verizon) exigent l’enregistrement 10DLC pour la messagerie A2P. Le trafic non enregistré s’expose à :
  • Filtrage agressif — messages silencieusement bloqués
  • Frais plus élevés — surcoûts par message pour les expéditeurs non enregistrés
  • Faible débit — limité à ~1 message/seconde contre 75+ une fois enregistré
Orbit gère le processus d’enregistrement via The Campaign Registry (TCR).
Flux recommandé : utilisez l’assistant d’enregistrement 10DLC — il enregistre un brouillon reprenable, vous permet de remplir les sections marque et campagne dans n’importe quel ordre, vérifie le téléphone d’un propriétaire unique par OTP, et soumet les deux de manière atomique. Les endpoints linéaires ci-dessous restent disponibles pour les pipelines scriptés.

Étapes d’enregistrement

Étape 1 : Enregistrer votre marque

Créez une identité de marque qui représente votre organisation.
entity_type doit être l’une de PRIVATE_PROFIT, PUBLIC_PROFIT, NON_PROFIT, GOVERNMENT, ou SOLE_PROPRIETOR. display_name, company_name, phone, street, city, state, postal_code, et email sont requis ; ein et website sont optionnels. Réponse (201 Created) :
La vérification de la marque est généralement terminée en 24 à 48 heures.

Étape 2 : Créer une campagne

Enregistrez le cas d’usage spécifique de votre messagerie.
Avant de soumettre — exécutez le linter de pré-soumission sur la charge utile de votre marque + campagne. Il détecte les rejets déterministes de TCR (formulation d’opt-out manquante, liens raccourcis, écho du cas d’usage) tant que leur correction est encore gratuite. Chaque soumission rejetée coûte de nouveaux frais de vérification et relance le délai de révision de 1 à 5 jours ouvrés.
description doit contenir au moins 40 caractères, message_flow au moins 40, et help_message comme optout_message au moins 20. sample_message est un tableau de 1 à 10 messages représentatifs. Les campagnes à caractère politique (usecase valant POLITICAL_ADVOCACY ou POLLING_AND_VOTING, ou is_political: true) exigent en outre un jeton Campaign Verify cv_token. Réponse (201 Created) :

Étape 3 : Attendre l’approbation

La révision de la campagne prend 1 à 5 jours ouvrés. Vous pouvez vérifier le statut :
Réponse :
Le status de premier niveau est la décision au niveau CSP. mnoStatuses est la carte d’approbation par opérateur (les clés sont les identifiants d’opérateurs MNO — par ex. 10017 T-Mobile, 10035 AT&T, 10095 Verizon) ; une campagne peut être APPROVED au niveau CSP tout en étant encore en REVIEW chez un opérateur individuel. Statuts :

Étape 4 : Commencer l’envoi

Une fois approuvée, les messages envoyés depuis les numéros enregistrés bénéficient du débit et de la délivrabilité 10DLC complets.
Si une soumission revient avec le statut FAILED, qu’un score de vérification plafonne votre niveau, ou que vous avez besoin de la capacité qu’une campagne approuvée offre réellement — le guide des rejets 10DLC et de la re-vérification couvre le décodeur, la re-vérification et les endpoints de débit.

Pré-soumission de votre envoi

La plupart des rejets TCR sont déterministes — la même poignée de motifs de contenu et de complétude fait échouer les premières soumissions à répétition. Chaque rejet consomme de nouveaux frais de vérification (4 à 15 $ par re-soumission) et relance le délai de révision de 1 à 5 jours ouvrés. Orbit fournit un linter de pré-soumission qui évalue la charge utile de votre marque + campagne contre le catalogue des motifs de rejet connus avant que vous ne soumettiez, et renvoie des constats par champ — chacun avec une sévérité, le fragment de texte exact incriminé, et une suggestion de réécriture concrète. POST /api/v1/compliance/10dlc/preflight Le linter est un moteur de règles pur : rien n’est envoyé à TCR, rien n’est stocké, et aucune application n’est créée. N’importe quel rôle de l’organisation peut l’appeler — aucun scope numbers:write requis. Envoyez les objets marque et campagne exactement comme vous prévoyez de les soumettre, plus un brand_vetting_score (0–100) optionnel lorsque vous en possédez déjà un :
Réponse (200 OK) :
Forme de la réponse. score vaut de 0 à 100 (100 = aucun motif connu détecté ; chaque constat déduit selon sa sévérité). verdict est l’agrégat — block dès qu’un constat error est présent, warn en dessous d’un score de 75, sinon pass. Chaque entrée findings[] porte un ruleId stable, une severity (error | warn | info), le chemin en notation pointée du field concerné, un résumé lisible, un match optionnel contenant le texte exact incriminé (pour le surlignage dans votre interface), et une suggestion — une réécriture qui résout le constat. engine est la version du moteur de règles (tcr-preflight/v1), afin de corréler les scores dans le temps.
Un verdict pass signifie « aucun motif de rejet connu détecté » — pas « TCR approuvera ». Le linter détecte la majorité déterministe des rejets ; votre soumission passe malgré tout par la révision opérateur normale. C’est un conseiller, jamais un gardien : vous décidez du moment de la soumission.

Ce que le linter 10DLC vérifie

Le catalogue encode les motifs sur lesquels TCR et les opérateurs rejettent. Règles clés : Corrigez chaque constat par ordre de sévérité, relancez le linter jusqu’à obtenir une réponse propre (verdict: "pass"), puis soumettez la même charge utile via l’Étape 2.

Types de cas d’usage

Passez l’une de ces valeurs dans le champ usecase lors de la création d’une campagne (Étape 2). Les codes TCR sont en majuscules — envoyez-les exactement comme indiqué ; une valeur en minuscules est rejetée à l’enregistrement.

Niveaux de débit

Le débit 10DLC est accordé sous forme de plafond de segments de messages par jour et par numéro, et non d’un débit par seconde. Votre niveau est déterminé par votre score de vérification de marque (0–100) et votre type d’entité enregistré. Le plafond quotidien de chaque niveau s’applique à chaque numéro affecté à la campagne, de sorte que le débit total de la campagne évolue avec le nombre de numéros affectés. Les plafonds reflètent les valeurs par défaut de T-Mobile ; AT&T et Verizon s’en écartent d’environ 10 %. Le niveau le plus élevé auquel votre score de vérification donne droit vous est accordé. Une marque sans score bascule par défaut sur la référence Low Volume Standard.
Améliorez votre score de vérification en fournissant des informations de marque complètes et exactes, y compris l’EIN, le site web et le symbole boursier (si coté). Un score de 75 ou plus débloque le plafond quotidien Top Tier.

Exigences de conformité

  1. Consentement d’opt-in. Vous devez disposer du consentement explicite de chaque destinataire avant l’envoi.
  2. Gestion de l’opt-out. Traitez immédiatement les demandes STOP. Orbit traite automatiquement STOP, CANCEL et UNSUBSCRIBE.
  3. Contenu des messages. Les messages d’exemple doivent être représentatifs du trafic réel.
  4. Usage cohérent. N’envoyez que des messages correspondant au cas d’usage de votre campagne enregistrée.

Enregistrement via le tableau de bord

Vous pouvez également effectuer l’intégralité de l’enregistrement 10DLC via le tableau de bord Orbit :
  1. Accédez à Settings > Compliance > 10DLC
  2. Cliquez sur Register Brand et renseignez les informations de votre entreprise
  3. Une fois la marque approuvée, cliquez sur Create Campaign
  4. Sélectionnez votre cas d’usage, ajoutez des messages d’exemple et affectez des numéros
  5. Soumettez pour révision opérateur

Configuration du flux de règles par pays

Cette section s’adresse aux opérateurs de plateforme / déploiements auto-hébergés. Les clients SaaS sur api.orbit.devotel.io n’ont pas besoin de les définir — Orbit maintient les règles par pays 10DLC à jour pour vous.
Orbit maintient à jour son jeu de règles canonique US-10DLC par pays (types d’expéditeurs, posture de débit, exigence d’enregistrement) en tirant les données du flux partenaire iconectiv TCR. Le connecteur réside dans @devotel/compliance/country-rule-feeds et s’exécute à deux endroits :
  • À la demande — l’action d’administration « Refresh from upstream » (POST /api/v1/compliance/country-rules/sync?provider=iconectiv).
  • Hebdomadaire — le déclenchement d’actualisation automatique dans le planificateur compliance-sync du worker de webhooks.
Le connecteur est optionnel et fonctionne en mode fail-open : lorsque ses identifiants ne sont pas définis, il consigne une erreur et s’abstient, laissant les règles par pays existantes en place. Il s’agit d’un flux de métadonnées en lecture seule — jamais d’un chemin de transport de messages, de sorte que les SMS sortants quittent toujours via le softswitch Devotel. DEVOTEL_TCR_API_KEY et DEVOTEL_TCR_PARTNER_ID doivent tous deux être définis pour que le flux s’exécute ; si l’un des deux manque, le connecteur n’a aucun effet. Enregistrez Devotel comme partenaire TCR sur iconectiv.com pour obtenir ces identifiants.

Dépannage

L’envoi de SMS à volume élevé sans enregistrement 10DLC peut entraîner un filtrage opérateur, un blocage des messages et une éventuelle suspension du numéro.