Skip to main content

Barrières d’envoi

Au-delà du consentement et de la suppression, plusieurs vérifications réglementaires s’exécutent au moment de l’envoi. Orbit les regroupe sous le nom de barrières d’envoi : chacune peut retenir ou bloquer un message ou un appel avant sa distribution. Cette page couvre les barrières que vous configurez ou interrogez directement. Tous les endpoints ci-dessous sont enracinés sur https://api.orbit.devotel.io/api/v1/compliance.
DNC et RND effectuent la vérification par rapport aux registres nationaux — les registres Do-Not-Call de la FTC au niveau fédéral et des États, ainsi que le TCR Universal Opt-Out pour DNC, et la Reassigned Numbers Database de la FCC pour RND. Il ne s’agit pas de flux que vous connectez ou intégrez par locataire : lorsqu’un instantané du registre est en place, la plateforme le maintient centralement plutôt que de lire depuis votre propre intégration. Mais la vérification est désactivée par défaut — chaque barrière reporte federal_feeds_synced / feed_synced à false jusqu’à ce qu’un instantané soit réellement synchronisé pour elle, et reste derrière un commutateur d’opt-in par organisation. Tant que les deux ne sont pas vraies, ces endpoints renvoient une réponse de désactivation et un numéro présent uniquement sur un registre fédéral est lu comme libre (voir chaque barrière ci-dessous pour son comportement exact). Cette page ne constitue pas un avis juridique — confirmez vos obligations TCPA/FCC auprès d’un conseil juridique.

BAA — la barrière d’envoi HIPAA

Lorsque votre organisation opte pour le mode HIPAA (vous traitez des PHI), chaque envoi sortant — qu’il s’agisse de messages individuels ou de campagnes groupées — est bloqué jusqu’à ce qu’un Business Associate Agreement (BAA) exécuté et en vigueur soit enregistré. L’exécution du BAA est la première étape de la séquence HIPAA ; la barrière d’envoi est le garde-fou d’exécution qui ne peut être contourné. Un envoi bloqué renvoie 422 HIPAA_BAA_REQUIRED avec un reason parmi pending, expired ou not_signed, et le docs_url dans la charge utile d’erreur pointe vers le flux d’exécution du BAA. Un 500 HIPAA_BAA_GATE_DB_FAIL signifie que la barrière n’a pas pu vérifier le statut du BAA — elle échoue fermée (les envois restent bloqués) plutôt que de risquer une transmission de PHI qu’elle ne peut vérifier. Réessayez sous peu ; si le problème persiste, contactez le support.
La barrière vérifie aussi la piste d’audit : lorsque la lecture du statut du BAA ne peut être validée, l’envoi est bloqué et l’échec est consigné dans l’audit PHI plutôt que d’être laissé passer silencieusement.
Un BAA exécuté a une durée d’un an ; l’expiration est recalculée à partir de l’horodatage d’exécution au moment de l’envoi, de sorte qu’un BAA arrivé à échéance bloque à nouveau même si la tâche cron quotidienne de vérification d’expiration n’a pas encore été exécutée. Si votre organisation n’atteste pas le mode HIPAA, cette barrière est une no-op — elle n’inspecte jamais que les organisations qui ont déclaré que les PHI sont dans le périmètre. Suivez la séquence complète dans Intégration HIPAA : du BAA à l’audit complet.

Heures de silence

Les règles d’heures de silence bloquent les messages et appels qui s’afficheraient en dehors des heures locales autorisées du destinataire (p. ex. la fenêtre TCPA de 8 h à 21 h). Orbit résout le temps local du destinataire à partir de la région de son numéro de téléphone. GET /quiet-hours/preview vous indique si un envoi est autorisé actuellement, et quelle est la prochaine heure autorisée — utilisez-le pour planifier en dehors de la fenêtre.
La barrière des heures de silence est opt-in par canal et par organisation — chaque canal est livré avec le commutateur désactivé, de sorte que les SMS, WhatsApp et autres envois d’un nouveau locataire ne sont pas retenus par les heures de silence tant que vous n’activez pas la barrière pour ce canal. Activez-la par canal depuis les paramètres d’heures de silence de votre organisation dans le tableau de bord Orbit ; les fenêtres répertoriées s’appliquent alors automatiquement. Une fois activées, les fenêtres sont 08:00–21:00 (heure locale du destinataire) pour SMS/voix et 09:00–21:00 pour les canaux WhatsApp/Meta, sauf si vous définissez votre propre start_hour/end_hour. E-mail, fax et push ne sont pas soumis aux heures de silence.
Fenêtre vocale TCPA aux États-Unis : conseil pour les appels ad-hoc, blocage dur pour les campagnes. Pour les appels vocaux sortants vers des destinataires américains (+1), Orbit évalue la fenêtre fédérale TCPA de composition de 8 h à 21 h en heure locale du destinataire à chaque appel — mais la façon dont le résultat est appliqué dépend du chemin d’appel :
  • La composition ad-hoc 1:1 depuis le tableau de bord est à titre de conseil par défaut. Un appel en dehors de la fenêtre enregistre un journal structuré de conseil mais est quand même distribué. Pour retenir ces appels plutôt, activez le commutateur d’heures de silence vocales pour votre organisation ; son activation applique la fenêtre de 8 h à 21 h comme retenue stricte.
  • Le trafic vocal de campagne et de composeur est toujours dur-bloqué en dehors de la fenêtre, indépendamment de vos paramètres de locataire. Un appel de campagne ou de composeur placé en dehors de 8 h à 21 h en heure locale du destinataire est rejeté avec 422 TCPA_FEDERAL_DIALING_WINDOW_BLOCKED — il n’y a pas d’opt-out par organisation pour la voix automatisée ou groupée, et le commutateur d’heures de silence vocales ne l’assouplit pas. Si le fuseau horaire du destinataire ne peut être résolu, l’appel échoue fermé et est également bloqué.
Planifiez les appels de campagne et de composeur à l’intérieur de la fenêtre de 8 h à 21 h en heure locale du destinataire — utilisez GET /quiet-hours/preview pour trouver la prochaine heure autorisée.

DNC — Do Not Call

GET /dnc/check indique si un numéro figure sur une liste Do-Not-Call avant que vous ne l’appeliez ou lui envoyiez un SMS. Pour la posture de bout en bout — sources, fraîcheur et le caveat de fail-open — voir Vérification DNC.
Lorsqu’il est activé, il renvoie :
Le source indique quelle couche a signalé le numéro (votre drapeau DNC de contact, la liste DNC, la liste de suppression ou une désinscription de consentement).
La barrière s’applique uniquement tant qu’aucun flux Do-Not-Call n’est synchronisé. Dans cet état, l’endpoint est retenu derrière le paramètre d’organisation dnc_sync_enabled (désactivé par défaut) et renvoie 403 DNC_SYNC_NOT_ENABLED jusqu’à ce que vous optiez — reconnaissant qu’Orbit ne fait pas encore de vérification par rapport à un registre fédéral pour vous, de sorte qu’un numéro présent uniquement sur la liste FTC se lit comme on_dnc: false.Une fois qu’Orbit a synchronisé un instantané fédéral, d’État ou TCR, la barrière dnc_sync_enabled est contournée : l’endpoint se sert directement et federal_feeds_synced renvoie true. Lisez ce champ à chaque réponse pour confirmer si une vérification fédérale soutient réellement le résultat.

Vérification préalable en lot

POST /dnc/scrub exécute la même chaîne sur une liste entière en un seul appel — jusqu’à 500 numéros E.164 par requête, avec un filtre optionnel de juridiction country. Il renvoie des verdicts par numéro plus des comptes de synthèse on_dnc / clear, est limité par débit à 10 requêtes par minute par organisation, et se situe derrière la même barrière décrite ci-dessus.
Pour le workflow de campagne — barrière, découpage en lots, acheminement des numéros signalés vers la suppression et cadence de re-vérification — voir Vérification préalable DNC en lot.

Dépannage de la barrière

Lorsque l’un des endpoints DNC est retenu à 403 DNC_SYNC_NOT_ENABLED :
  1. Confirmez l’état de la barrière sans exécuter de vérification — appelez GET /dnc/availability. Il rapporte la barrière exacte que les deux endpoints appliquent : available, votre org_opt_in et federal_feeds_synced.
  2. Activez l’accusé de l’organisation — activez dnc_sync_enabled dans les paramètres de conformité de votre tableau de bord. Le drapeau est par organisation et échoue fermé : un drapeau jamais défini, une valeur stockée comme chaîne ou nombre plutôt que booléen true, ou une recherche de paramètres qui échoue se résolvent tous à OFF — une organisation qui n’a jamais visité les paramètres de conformité obtient toujours le 403.
  3. Ou attendez l’instantané — une fois que la plateforme synchronise un flux fédéral, d’État ou TCR, la barrière se retire d’elle-même et federal_feeds_synced bascule à true ; l’accusé n’est plus consulté.
  4. Distinguez les homonymes401 est l’authentification, 422 est un téléphone malformé, et 429 sur /dnc/scrub est sa limite de 10 requêtes par minute, pas la barrière.
La démarche complète est Dépannage : pré-vérification DNC au 403.

RND — Reassigned Numbers Database

Les numéros de téléphone américains sont réattribués à de nouvelles personnes. La Reassigned Numbers Database de la FCC vous permet de vérifier si un numéro a été déconnecté après la date à laquelle vous avez obtenu le consentement — un « abri sûr » contre le fait d’envoyer un SMS ou d’appeler la mauvaise personne. GET /rnd/check prend le phone et la consent_date (YYYY-MM-DD) :
Tant que feed_synced est false, c’est la seule réponse que l’endpoint renvoie, quel que soit le phone et la consent_date — aucune date de déconnexion n’est encore enregistrée, donc chaque verdict se dégrade à no_data. status est l’un de yes, no ou no_data — le verdict de la base de données de la FCC pour la paire (phone, consent_date) : safe_harbor est true uniquement lorsque status est no. last_disconnect_date est la date de déconnexion définitive la plus récente enregistrée (null lorsqu’aucune), et feed_synced est false jusqu’à ce que l’ingestion du flux RND soit configurée — tant qu’il est false, chaque verdict est no_data. Étant donné derrière rnd_scrub_enabled (désactivé par défaut) ; renvoie 403 RND_SCRUB_NOT_ENABLED pendant que c’est désactivé.

Activation et désactivation de la vérification RND

Utilisez PUT /api/v1/compliance/rnd/settings pour contrôler le drapeau rnd_scrub_enabled :
L’activation est bloquée par HTTP 409 RND_FEED_NOT_CONFIGURED jusqu’à ce que le flux de la Reassigned Numbers Database de la FCC (le flux reassigned.us de SomosGov) soit connecté à votre déploiement. Activer la fonctionnalité avant que le flux ne soit ingéré créerait un contrôle de conformité qui ne réalise aucune vérification réelle de numéros réattribués — vous basculeriez le drapeau, mais chaque recherche /rnd/check renverrait toujours no_data. Le blocage 409 empêche cette fausse impression de protection. La désactivation (enabled: false) est toujours permise, même si aucun flux n’est encore connecté.

RMD — Robocall Mitigation Database

Les émetteurs de voix américains doivent déposer un enregistrement Robocall Mitigation Database décrivant leur statut STIR/SHAKEN et leur plan de mitigation. Orbit stocke et suit votre dépôt.
  • GET /rmd — lire votre enregistrement plus un bloc recertification avec renewal_deadline et action_required.
  • POST /rmd — créer ou mettre à jour le dépôt.
  • POST /rmd/submit → statut submitted.
  • POST /rmd/certify → statut active.
  • POST /rmd/remediation (avec une reason) → statut remediation_required.
  • POST /rmd/resolve → retour à active.
  • POST /rmd/withdraw → statut withdrawn.
stir_shaken_status est complete, partial ou none. Un mitigation_plan est requis sauf si le statut est complete. Le cycle de vie est draft → submitted → active → remediation_required → active | withdrawn.

Arrêt d’urgence

L’arrêt d’urgence est un commutateur d’extinction à l’échelle de l’organisation qui arrête immédiatement tout le trafic sortant SMS, MMS, voix et composeur — utilisez-le lors d’une incident (une campagne mal configurée, une clé compromise, une erreur de contenu). Pour le runbook complet de l’opérateur, voir le guide de l’arrêt d’urgence.
GET /emergency-stop renvoie le drapeau active actuel plus activated_at, activated_by et reason. L’activation et la désactivation nécessitent une clé admin/propriétaire.
Tant que l’arrêt d’urgence est actif, tout le trafic de campagne sortante SMS, MMS, voix et composeur pour l’organisation est bloqué. Les envois transactionnels Verify/OTP et l’e-mail ne sont pas soumis à l’arrêt d’urgence — ils s’exécutent par des chemins de livraison séparés, de sorte qu’un contact peut toujours recevoir un code de connexion tant que le commutateur est actif. Si vous avez aussi besoin de mettre en pause ceux-ci, désactivez le profil Verify ou le expéditeur d’e-mail pertinent. Désactivez l’arrêt dès que l’incident est résolu.

Centre de préférences

Le centre de préférences est une page publique signée par jeton où un contact gère ses propres opt-ins par canal, la fréquence des messages et (si activé) les demandes de suppression de données — sans se connecter. Les mises à jour s’écoulent directement dans le consentement, la suppression et la barrière STOP. Configurez-le une fois, puis générez un lien par contact. La démarche complète — chaque champ de configuration, emplacement du lien et surfaces de flux de mise à jour — se trouve dans le guide du centre de préférences :
  • POST /preference-center (admin/propriétaire) — définir l’image de marque, les channels offerts, les options de fréquence et le commutateur de suppression GDPR.
  • GET /preference-center — lire la configuration actuelle.
  • POST /preference-center/link avec { "contactId": "cnt_…" } — générer un lien signé (HMAC-SHA256, TTL de 30 jours) à envoyer par e-mail ou SMS au contact.
Le contact utilise ensuite le lien public (GET/PUT /compliance/preferences/{token}) pour voir et mettre à jour ses préférences. La désinscription ici enregistre une révocation de consentement, ajoute une entrée de suppression et définit la barrière STOP ; la réinscription l’inverse.
Demander la suppression depuis le centre de préférences enregistre une demande de suppression GDPR de l’héritage uniquement — elle marque le contact pour suppression mais ne lance pas le pipeline DSAR suivi. Elle n’a pas d’horloge SLA, aucune exportation de données déchiffrée ni certificat d’effacement de l’article 17. Pour déposer une demande de droit à l’effacement suivie par SLA, exportant les données du contact et produisant un certificat d’effacement, utilisez l’endpoint DSAR (POST /compliance/dsar, propriétaire/admin uniquement) — voir Demandes de sujets à l’information personnelle.

Règles par pays

GET /country-rules est la référence réglementaire en lecture seule derrière ces barrières — par pays et par canal, elle rapporte les types d’expéditeurs autorisés, si l’enregistrement de l’ID de l’expéditeur est none / recommended / required, les exigences de mots-clés d’arrêt, le support bidirectionnel, le support DLR et le débit par défaut.
Utilisez-la pour comprendre, avant de lancer sur un marché, ce que chaque destination exige — voir Exigences de conformité par pays pour un guide champ-par-champ de lecture de cette référence.

Références connexes