Skip to main content

SMS

Envoyez des SMS dans le monde entier via l’infrastructure de passerelle SMPP d’Orbit. Orbit se connecte à des opérateurs de premier niveau et agrégateurs dans plus de 190 pays, en gérant automatiquement la concaténation, l’encodage et le suivi des livraisons.

Envoyer un SMS

to et from sont tous les deux validés comme E.164 — format international complet avec l’indicatif du pays. La façon dont Orbit valide et normalise les numéros se trouve dans le cycle de vie des numéros.

Réponse

Le endpoint répond HTTP 202 Accepted — le message est persisté et mis en file pour livraison. L’id est un identifiant de message de la plateforme de la forme msg_ suivi de 32 caractères hexadécimaux ; suivez son cycle de vie via les webhooks de livraison.
Lisez segments et encoding à chaque envoi — c’est sur cette base que la facturation s’effectue.

Fondamentaux de la délivrabilité

La délivrabilité du SMS dépend de trois choses, dans cet ordre : depuis qui vous envoyez, vers où, et à quelle vitesse. Un expéditeur non enregistré est filtré par l’opérateur avant qu’un segment ne vous coûte.

Choisir un type d’expéditeur

Quel enregistrement votre pays de destination exige est listé par les exigences de conformité par pays.

Enregistrement 10DLC et types de campagne (États-Unis)

Si vous envoyez vers les États-Unis via des codes longs numériques, les opérateurs exigent un enregistrement ; le trafic non enregistré est filtré, surchargé ou les deux. Orbit soumet l’enregistrement via The Campaign Registry pour votre compte — la procédure complète (marque → campagne → approbation → niveaux de débit) est dans le guide d’enregistrement 10DLC. Le point clé américain : le débit après enregistrement est accordé comme un plafond de segments par jour et par numéro selon le score de vérification de votre marque — et non comme un taux par seconde. Pour les destinations hors États-Unis qui limitent les identifiants alphanumériques (la majeure partie de l’Europe, le Brésil, le Bangladesh, des parties de l’APAC), le flux parallèle est l’ enregistrement des identifiants d’expéditeur. L’Inde est l’exception : ses identifiants de remettant (« Headers ») sont enregistrés via DLT/TRAI — voir embarquement DLT de l’Inde.

Encodage et concaténation

L’encodage est la seule variable de coût qui survit à un expéditeur bien enregistré. Le SMS est facturé par segment, et le nombre de segments dépend entièrement de l’alphabet dans lequel le corps tient.

GSM-7 contre UCS-2

  • GSM-7 — l’alphabet GSM 7 bits (ASCII plus quelques extras : @, £, , quelques caractères grecs). Un corps qui ya tient obtient jusqu’à 160 caractères par segment, ou 153 caractères en envoi multipartie (7 caractères par segment vont dans l’en-tête de concaténation UDH).
  • UCS-2 — tout caractère hors de GSM-7 (emoji, CJK, guillemets typographiques, la plupart des écritures non latines) bascule tout le message en encodage 16 bits. Un corps obtient jusqu’à 70 caractères par segment, ou 67 en multipartie.
Un seul caractère non GSM-7 reclassifie tout le message. Orbit normalise les contrevenants accidentels — guillemets typographiques collés, tirets cadratins, apostrophes bouclées, caractères invisibles de largeur nulle — vers des équivalents sûrs de GSM-7 avant de compter, de sorte qu’une erreur de copier-coller ne double pas votre facture de segments. Le modèle complet d’encodage et de segmentation est dans le concept des segments et de l’encodage SMS.

Exemple résolu

Votre commande a été expédiée — répondez OUI — 30 caractères, tout GSM-7 → 1 segment, GSM-7. Un seul emoji bascule l’alphabet ; une lettre ASCII de 160 caractères devient immédiatement 2 segments UCS-2. Plafond strict : 10 segments (1 530 caractères GSM-7 ou 670 caractères UCS-2) ; au-delà, le corps est tronqué avec wasTruncated: true posé.

Cycle de vie des statuts

Chaque SMS sortant porte un status qui avance : queuedsendingsentdelivered (ou failed / undelivered / rejected / expired) Abonnez-vous aux transitions via les webhooks avec les événements message.sent, message.delivered et message.failed. Les subtilités qui piègent les opérateurs :
  • submitted_no_receipt — le fournisseur a accepté l’envoi ; aucune DLR n’est arrivée dans la fenêtre de grâce de 30 minutes. Traitez-la comme résultat inconnu, ni livraison ni échec.
  • expired — une DLR est arrivée après la fermeture de la fenêtre ; le dossier est clos.
  • rejected — porte d’expéditeur : enregistrement manquant ou politique de contenu. Déterministe tant que la porte n’est pas débloquée.
La machine à états conceptuelle dans cycle de vie des livraisons ; la gestion des échecs dans dépannage : message non livré ou échoué.

Tarification

La tarification du SMS est par segment et varie selon le pays de destination. Consultez la page de tarification ou le endpoint GET /api/v1/pricing/messaging?country=<ISO> pour les tarifs en temps réel. Deux envois identiques se facturent différemment dès que l’encodage de l’un passe en UCS-2 — voir encodage et concaténation.

Limites de débit

Les envois SMS sont par défaut limités à 100 requêtes par minute par organisation ; la limite est clavée par organisation, pas par IP ni par plan. La dépasser renvoie 429 RATE_LIMITED ; voir le guide des limites de débit. Les plafonds par défaut de chaque canal (SMS 100, WhatsApp 80, e-mail 200, fax 20, entre autres) sont événables par canal via channel_rate_overrides dans les paramètres de messagerie de votre organisation.

Fonctionnalités

  • Messagerie A2P et P2P — application-à-personne et personne-à-personne
  • Portée mondiale — plus de 190 pays via le réseau d’agrégation de Devotel
  • Rapports de livraison — webhooks de statut en temps réel pour chaque message
  • Messages concaténés — SMS multipartie gérés de façon transparente (jusqu’à 10 segments)
  • Validation E.164 — validation automatique du format du numéro de téléphone
  • Prise en charge Unicode — encodage GSM-7 et UCS-2 complet avec détection automatique et normalisation de la ponctuation typographique