> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Exigences de conformité par pays

> Règles d'expédition par pays et par canal sur Orbit : types d'expéditeurs acceptés, enregistrement du Sender-ID, documents requis et limites de contenu.

# Exigences de conformité par pays

Les règles de messagerie et de voix sont définies pays par pays. Avant
d'envoyer vers un nouveau marché, vous devez connaître quatre choses :
**quels types d'expéditeurs ce pays accepte** (un long code ? un Sender
ID alphanumérique ? un short code ?), **si un enregistrement est requis**,
**quels documents vous devez fournir**, et **quels contenus sont
restreints**. Une erreur à ce niveau est la cause la plus fréquente
d'échec silencieux de remise des premiers envois vers un nouveau pays.

Orbit maintient une référence réglementaire organisée par pays afin que
vous n'ayez pas à l'assembler vous-même. Cette page explique comment la
lire.

<Note>
  Cette référence est un guide destiné à vous aider à planifier, et non
  une garantie de remise ni un conseil juridique. L'approbation finale
  d'un Sender ID ou d'un enregistrement relève du régulateur ou de
  l'opérateur de chaque pays, et non d'Orbit. La couverture est activée
  par tenant — la présence d'un pays ici ne signifie pas qu'il est activé
  sur votre compte.
</Note>

***

## Consulter les règles d'un pays

`GET /compliance/country-rules` est la référence réglementaire en lecture
seule qui alimente les passerelles d'envoi d'Orbit. Tout utilisateur
authentifié peut l'appeler. Filtrez par `channel` (`sms` par défaut) et,
en option, par `region` :

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/country-rules?channel=sms&region=EU" \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

Chaque ligne décrit un pays × canal :

```json theme={null}
{
  "data": {
    "rows": [
      {
        "country_code": "FR",
        "channel": "sms",
        "country_name": "France",
        "calling_code": "33",
        "region": "EU",
        "sender_types": ["alphanumeric", "long_code"],
        "registration": "recommended",
        "sender_rules": "Alphanumeric sender IDs are dynamic; no pre-registration required but recommended for consistency.",
        "content_restrictions": "Marketing SMS requires prior opt-in (GDPR). No sends 20:00–08:00 or Sundays/holidays.",
        "stop_requirement": "STOP keyword mandatory in French (STOP au 36111).",
        "two_way": true,
        "dlr_support": "full",
        "default_tps": "10",
        "notes": ""
      }
    ],
    "channel": "sms",
    "last_synced_at": "2026-06-20T00:00:00.000Z",
    "total": 1
  },
  "meta": { "request_id": "…", "timestamp": "2026-06-20T12:00:00.000Z" }
}
```

Le filtre `channel` accepte `sms`, `whatsapp`, `rcs`, `voice`, `email`
et `viber`. Le même pays a **des lignes distinctes par canal**, car
différents canaux relèvent de différents régulateurs — par exemple, les
règles WABA de Meta régissent WhatsApp au Brésil tandis que les règles
de l'Anatel régissent le SMS.

***

## Lecture de chaque champ

| Champ                  | Ce qu'il indique                                                                                                                                                                                                  |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sender_types`         | Quelles identités « from » le pays accepte — voir le tableau ci-dessous.                                                                                                                                          |
| `registration`         | `none`, `recommended` ou `required` — indique si vous devez enregistrer un Sender ID avant l'envoi.                                                                                                               |
| `sender_rules`         | Notes en langage clair sur le comportement des Sender ID dans ce pays (dynamiques ou pré-enregistrés, format du numéro, etc.).                                                                                    |
| `content_restrictions` | Restrictions de catégorie et de consentement — par ex. « le marketing exige un opt-in », interdictions de contenus promotionnels. Voir [Industries restreintes et interdites](/compliance/restricted-industries). |
| `stop_requirement`     | Indique si un mot-clé d'opt-out est obligatoire et dans quelle langue.                                                                                                                                            |
| `two_way`              | Indique si les réponses entrantes sont prises en charge.                                                                                                                                                          |
| `dlr_support`          | Fidélité des accusés de réception : `full`, `partial`, `submitted_only` ou `none`.                                                                                                                                |
| `default_tps`          | Le plafond de débit par défaut (messages par seconde).                                                                                                                                                            |

### Types d'expéditeurs

| Valeur         | Signification                                                |
| -------------- | ------------------------------------------------------------ |
| `alphanumeric` | Un Sender ID textuel de marque (par ex. `MyBrand`).          |
| `numeric`      | Un expéditeur numérique qui n'est pas un long code routable. |
| `long_code`    | Un numéro long local/mobile standard.                        |
| `short_code`   | Un short code dédié de 4 à 6 chiffres.                       |
| `ten_dlc`      | Un long code américain à 10 chiffres enregistré via 10DLC.   |
| `waba`         | Un expéditeur WhatsApp Business Account.                     |
| `rcs_agent`    | Un agent RCS Business Messaging vérifié.                     |
| `from_address` | Une adresse `from` e-mail (canal email).                     |

***

## Les niveaux de `registration`

Le champ `registration` est la valeur la plus importante à lire avant un
lancement. Il pilote la passerelle d'envoi d'Orbit :

<AccordionGroup>
  <Accordion title="none — envoi libre">
    Aucun enregistrement de Sender ID n'est requis. Vous pouvez commencer
    à envoyer dès que le canal et le pays sont activés sur votre compte.
  </Accordion>

  <Accordion title="recommended — envoyez dès maintenant, enregistrez pour la fiabilité">
    L'envoi est autorisé sans enregistrement, mais le trafic non
    enregistré est plus susceptible d'être filtré ou réétiqueté.
    Enregistrez le Sender ID pour maintenir une remise stable.
  </Accordion>

  <Accordion title="required — enregistrez avant d'envoyer">
    Le trafic est **bloqué** jusqu'à ce que vous disposiez d'un
    enregistrement de Sender ID approuvé pour le pays. Un SMS A2P vers un
    pays `required` sans entrée approuvée est retenu par la passerelle
    d'envoi. Enregistrez et obtenez l'approbation avant le lancement —
    voir [Enregistrement du Sender-ID](/compliance/sender-id-registration).
  </Accordion>
</AccordionGroup>

***

## Documents attendus par chaque pays

Lorsqu'un pays exige (ou recommande) un enregistrement, vous soumettez
les documents justificatifs une seule fois, puis vous les référencez par
leurs identifiants `doc_…` lorsque vous enregistrez un Sender ID. L'ensemble
exact varie selon le marché, mais la plupart des régulateurs demandent une
combinaison de :

* **Preuve d'enregistrement de l'entreprise** — certificat
  d'incorporation, licence commerciale ou équivalent.
* **Description du cas d'usage** — ce que vous envoyez (transactionnel,
  OTP, marketing) et à qui.
* **Propriété / autorisation de la marque** — preuve que vous êtes
  fondé à utiliser le Sender ID / le nom de marque que vous enregistrez.
* **Identifiant fiscal ou régulateur local** — pour les marchés qui
  rattachent l'enregistrement à un identifiant national.

Lisez les champs `sender_rules` et `content_restrictions` du pays cible
dans la réponse country-rules pour les détails, puis joignez les documents
correspondants lors de la soumission de l'enregistrement.

Certains marchés appliquent leur propre régime d'enregistrement dédié
plutôt que le flux Sender-ID générique :

* **Inde** — les Sender ID (« Headers »), les modèles de contenu et les
  modèles de consentement s'enregistrent via le portail TRAI DLT. Voir
  [Onboarding DLT-India](/compliance/dlt-india).
* **États-Unis** — les expéditeurs A2P SMS enregistrent une marque et une
  campagne via 10DLC. Voir le [guide d'enregistrement 10DLC](/guides/10dlc-registration).

***

## Liste de contrôle pour le lancement dans un nouveau pays

<Steps>
  <Step title="Consulter les règles">
    Appelez `GET /compliance/country-rules?channel=<channel>` pour la
    destination et lisez `sender_types`, `registration` et
    `content_restrictions`.
  </Step>

  <Step title="Choisir un type d'expéditeur accepté">
    Choisissez une identité d'expéditeur parmi les `sender_types` de ce
    pays — un Sender ID alphanumérique, un long code, un short code ou un
    expéditeur natif du canal (WABA / agent RCS).
  </Step>

  <Step title="S'enregistrer si nécessaire">
    Si `registration` vaut `required` (ou `recommended`), téléversez vos
    documents et soumettez le Sender ID pour approbation. Prévoyez du
    délai — certains marchés prennent de quelques jours à plusieurs
    semaines.
  </Step>

  <Step title="Vérifier les restrictions de contenu">
    Confirmez que votre cas d'usage est autorisé au regard de
    `content_restrictions` et des
    [Industries restreintes et interdites](/compliance/restricted-industries),
    et ajoutez le mot-clé d'opt-out requis si `stop_requirement` en
    impose un.
  </Step>

  <Step title="Lancement">
    Une fois le pays activé, le type d'expéditeur accepté et tout
    enregistrement requis approuvé, commencez à envoyer.
  </Step>
</Steps>

***

## Maintenance de la source des règles (opérateurs de plateforme)

<Note>
  Cette section s'adresse aux **opérateurs de plateforme et aux
  déploiements auto-hébergés**. Les clients SaaS sur
  `api.orbit.devotel.io` peuvent s'arrêter ici — Devotel maintient les
  règles par pays à votre place, et les endpoints ci-dessous sont
  réservés aux administrateurs de la plateforme.
</Note>

La référence country-rules est alimentée par des synchronisations amont
planifiées et des modifications manuelles des opérateurs. Cette section
explique comment la maintenir à jour et comment modifier un pays en toute
sécurité. Les endpoints qui écrivent dans la table des règles sont
**réservés aux administrateurs de la plateforme** — les propriétaires et
administrateurs de tenant reçoivent un `403`, car la table des règles est
globale à tous les tenants et non une donnée par tenant.

### Sources de flux

Le champ `sync_source` de chaque ligne indique quel flux l'a rafraîchie en
dernier. Six fournisseurs se branchent sur l'endpoint de synchronisation :

| Fournisseur | Ce qu'il fournit                                                                                                              | Accès                                                                                                                                        |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `mef`       | MEF SenderID Protection Registry — règles de Sender-ID signées par les MNO (la source la plus fiable en matière de Sender-ID) | Abonnement payant de niveau Aggregator ; définir `DEVOTEL_MEF_API_KEY`                                                                       |
| `gsma`      | Règles de protection de Sender-ID du GSMA SMS Hub                                                                             | Portail membre ; définir `DEVOTEL_GSMA_API_KEY`                                                                                              |
| `telnyx`    | Couverture par pays via le flux de couverture Telnyx                                                                          | Gratuit avec `DEVOTEL_TELNYX_API_KEY` ; repli sur la liste publique de couverture de Telnyx si non défini                                    |
| `iconectiv` | Flux partenaire iconectiv TCR — le référentiel canonique des règles 10DLC américaines                                         | Définir `DEVOTEL_TCR_API_KEY` + `DEVOTEL_TCR_PARTNER_ID` ; voir le [guide 10DLC](/guides/10dlc-registration#country-rule-feed-configuration) |
| `meta`      | Meta Business API — disponibilité WhatsApp (WABA) par pays                                                                    | Gratuit avec un jeton d'utilisateur système WABA                                                                                             |
| `itu`       | ITU WTID — URL de référence des régulateurs nationaux                                                                         | Gratuit (attribution requise)                                                                                                                |

Deux flux adjacents alimentent leurs propres tables :

* **Couverture Telnyx pour la matrice Sender-ID historique** — les
  endpoints de lecture derrière la matrice de conformité des Sender-ID
  s'appuient sur une table historique distincte. Rafraîchissez-la avec
  `POST /api/v1/compliance/admin/sync` (admin uniquement ; le planificateur
  hebdomadaire la rafraîchit également automatiquement).
* **Reassigned Numbers Database (RND)** — la passerelle américaine des
  numéros déconnectés documentée sous
  [Deactivation scrubbing](/compliance/deactivation-scrub). Les tenants
  l'activent individuellement via `PUT /api/v1/compliance/rnd/settings`
  avec `{ "enabled": true }` ; le basculement est refusé tant qu'un
  opérateur n'a pas chargé un instantané RND dans le déploiement, afin
  que les tenants ne puissent pas activer une passerelle vide.

### Exécuter une synchronisation amont

`POST /api/v1/compliance/country-rules/sync` rafraîchit depuis un
fournisseur. Choisissez le flux avec `?provider=` (`telnyx` par défaut)
et, en option, limitez à un `?channel=`.

```bash theme={null}
curl -X POST "https://api.orbit.devotel.io/api/v1/compliance/country-rules/sync?provider=mef&channel=sms" \
  -H "Authorization: Bearer $ORBIT_PLATFORM_ADMIN_KEY"
```

La réponse rapporte `upstreamCount`, `updated`, `createdNew` et un tableau
`errors`. **Une synchronisation n'écrase jamais le texte rédigé par un
opérateur** — seuls les champs structurels (nom du pays, indicatif,
région, types d'expéditeurs, niveau d'enregistrement) sont rafraîchis ;
les champs de texte libre (`sender_rules`, `content_restrictions`,
`notes`) conservent ce qu'un opérateur a écrit en dernier.

### Fréquence des flux

Deux chemins maintiennent la table à jour :

* **Planificateur hebdomadaire** — le tick compliance-sync du worker de
  webhooks exécute automatiquement les flux Telnyx, MEF et GSMA. Il
  s'exécute aussi une fois au démarrage du worker, donc un déploiement
  récent s'amorce dès le premier démarrage.
* **À la demande** — l'action admin « Refresh from upstream » appelle
  l'endpoint de synchronisation ci-dessus pour un tirage immédiat (utile
  juste après le provisionnement d'un nouvel identifiant de flux).

L'obsolescence est vérifiée par rapport à `last_synced_at`, que l'endpoint
de lecture renvoie avec les lignes. Les modifications manuelles tamponnent
plutôt `last_reviewed_at`, afin que le tableau de bord affiche la
provenance (« Synchronisé depuis MEF il y a 3 jours ; revu par les ops
hier ») plutôt qu'un horodatage unique et ambigu.

### Gestion des échecs

Chaque connecteur est **optionnel et fail-open** : lorsque sa variable
d'environnement d'identifiants n'est pas définie, la synchronisation
journalise un message d'omission et renvoie une entrée dans `errors`, et
les lignes existantes restent en place. Il en va de même en cas de
défaillance amont — la réponse transporte le texte d'erreur tandis que les
données précédemment synchronisées restent lisibles. Ce sont des flux de
métadonnées en lecture seule sur un chemin de consultation ; l'envoi de
messages continue de passer par votre expéditeur habituel lorsqu'un flux
est indisponible.

<Warning>
  Les fournisseurs de synchronisation ne touchent que les métadonnées de
  couverture. Ils ne constituent jamais un chemin de transport — ne
  tentez pas de router des envois sortants via l'un des flux de
  couverture répertoriés ici.
</Warning>

### Modifier un pays

`PUT /api/v1/compliance/country-rules/:channel/:country_code` crée ou met
à jour une ligne pays × canal. Utilisez-le pour fournir des détails
qu'aucun flux ne transporte — par exemple le libellé du mot-clé STOP ou
les limites de débit relevées dans les textes réglementaires. Des
identifiants d'administrateur de plateforme sont requis ; les
administrateurs de tenant reçoivent un `403`.

```bash theme={null}
curl -X PUT "https://api.orbit.devotel.io/api/v1/compliance/country-rules/sms/FR" \
  -H "Authorization: Bearer $ORBIT_PLATFORM_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country_name": "France",
    "calling_code": "33",
    "region": "EU",
    "sender_types": ["alphanumeric", "long_code"],
    "registration": "recommended",
    "sender_rules": "Alphanumeric sender IDs are dynamic.",
    "content_restrictions": "Marketing SMS requires prior opt-in.",
    "stop_requirement": "STOP keyword mandatory in French.",
    "two_way": true,
    "dlr_support": "full",
    "default_tps": "10",
    "notes": ""
  }'
```

Champs modifiables : `sender_types`, `registration` (`none` /
`recommended` / `required`), `sender_rules`, `content_restrictions`,
`stop_requirement`, `two_way`, `dlr_support`, `default_tps`, `notes` et
`sources` (une liste `[{ label, url }]` de liens d'attribution). L'upsert
tamponne `last_reviewed_at` et marque la ligne `sync_source: manual`,
afin qu'une synchronisation automatique ultérieure ne rafraîchisse que les
champs structurels et laisse votre texte intact.

### Liste de validation avant l'activation d'un pays

Avant d'activer un pays pour l'envoi, confirmez :

<Steps>
  <Step title="Horodatage de synchronisation récent">
    `last_synced_at` (ou, pour la matrice historique, `last_verified_at`)
    est récent — sinon, exécutez la synchronisation à la demande pour le
    fournisseur concerné avant l'activation.
  </Step>

  <Step title="Niveau d'enregistrement correct">
    `registration` est défini (`none` / `recommended` / `required`). Un
    pays `required` bloque le trafic non enregistré au moment de l'envoi,
    donc une revue d'enregistrement manquée se traduit par des envois en
    échec, pas en retard.
  </Step>

  <Step title="Champs descriptifs vérifiés">
    `stop_requirement` et `content_restrictions` disent ce qu'ils doivent
    dire — les flux ne rafraîchissent que la structure, le texte doit donc
    être défini par un opérateur.
  </Step>

  <Step title="Type d'expéditeur accepté">
    Au moins l'un des `sender_types` du pays correspond à ce que vous
    prévoyez d'utiliser comme expéditeur.
  </Step>

  <Step title="Passerelles associées chargées">
    Si la destination comporte une passerelle RND ou DLT (RND pour les
    États-Unis, DLT pour l'Inde), confirmez que ce flux est également
    chargé — voir [Deactivation scrubbing](/compliance/deactivation-scrub)
    et [Onboarding DLT-India](/compliance/dlt-india).
  </Step>
</Steps>

***

## Références associées

* [Industries restreintes et interdites](/compliance/restricted-industries) —
  quelles industries et quels contenus sont restreints ou interdits.
* [Enregistrement du Sender-ID](/compliance/sender-id-registration) —
  soumettez et suivez les enregistrements de Sender-ID par pays.
* [Onboarding DLT-India](/compliance/dlt-india) — le régime TRAI DLT de
  l'Inde.
* [Enregistrement 10DLC](/guides/10dlc-registration) — vérification de la
  marque et de la campagne A2P américaines (inclut la configuration du flux
  de règles par pays pour les opérateurs).
* [Send Gates](/compliance/send-gates) — les passerelles qui appliquent ces
  règles au moment de l'envoi.
* [Signaux réseau avant l'envoi](/guides/network-signals-open-gateway) —
  filtrez les destinataires avec les signaux SIM-swap, itinérance et risque
  attestés par l'opérateur avant un premier envoi vers une nouvelle
  destination.
* [Référence API → Compliance](/api-reference/endpoints/compliance) —
  schémas complets de requêtes et de réponses.
