Associez votre API actuelle à BroadNet
La plupart des API SMS partagent les mêmes concepts, sous des appellations différentes. Repérez le concept dans la première colonne, quel que soit son nom chez votre fournisseur, et utilisez l'équivalent BroadNet. Les noms des champs sont identiques à ceux de la spécification OpenAPI.
| Concept | Forme habituelle chez d'autres fournisseurs | BroadNet |
|---|---|---|
| Hôte API | Un hébergeur API régional pour votre compte | https://api.broadnet.meLes identifiants de test, et l'adresse où envoyer le trafic de test, sont fournis avec votre accès de test : demandez-le sur /signup, nous répondons sous un jour ouvré. |
| Authentification | Un identifiant et un secret de compte via l'authentification de base, ou un en-tête de clé API | Authorization: Bearer <token>Un jeton d'accès par compte. |
| Envoyer un message | Une requête HTTP POST vers un point de terminaison de messages | POST /sms/sendSmsLe corps de la requête est JSON. |
| Expéditeur | from, sender, originator | senderIdUn identifiant alphanumérique d'expéditeur ou un numéro, enregistré par pays. |
| Destinataire | to, destination, msisdn | destinationNumberFormat international, comme dans l'exemple de spécification |
| Texte du message | body, text, content | messageLe texte du message, exactement tel que le destinataire le verra. |
| Encodage des caractères et parties du message | Calculé par le fournisseur ou renvoyé par un appel API distinct | messageType
|
| Envoi programmé | Un champ send_at ou de planification temporelle | isSchedule · gmt · timeLaissez ces champs vides pour envoyer le message immédiatement. |
| ID du message | Un champ ID dans la réponse JSON | 200 OK → 2603121407537573731Le corps de la réponse de |
| Plusieurs destinataires | Un point de terminaison par lots, ou une boucle | POST /sms/sendSmsGroupDataUn tableau |
| Webhook de statut de livraison | Une URL de rappel par requête ou par compte | Webhook URL on your accountLe statut de livraison est transmis à l'URL webhook configurée sur votre compte. |
| Demande d'état de livraison | Une requête GET pour le message par son ID | GET /websmpp/websmsstatusAPI HTTP héritée. Transmettez l'ID du message sous la forme |
| Exportation du rapport de livraison | Exportation CSV depuis la console | /websmpp/api/dlrreportAPI HTTP héritée. Un rapport de livraison XLSX pour une plage de dates. |
| Réponses d'erreur | Un statut HTTP plus un code d'erreur du fournisseur | 400 · 401 · 500400 : erreur de validation ou champ manquant. 401 : jeton Bearer invalide ou manquant. 500 : erreur serveur inattendue. |
| SMPP | Sessions SMPP (liaisons) au SMSC du fournisseur | bind · submit_sm · deliver_smSessions SMPP v3.4 en tant qu'émetteur, récepteur ou émetteur-récepteur. Les accusés de réception sont reçus sous la forme |
| Envoi via une URL HTTP GET | Une URL GET avec des identifiants dans les paramètres | GET /websmpp/websmsAPI HTTP héritée. |
| SDK | Une bibliothèque cliente par langue | @broadnet/cpaas-sdkUn SDK officiel est disponible pour TypeScript et Node.js. Pour les autres langages, générez un client à partir de la spécification OpenAPI. |
Voici le même envoi sous forme de requête unique. Remplacez les champs expéditeur, destinataire et texte de votre fournisseur par senderId, destinationNumber et message :
curl -X POST https://api.broadnet.me/sms/sendSms \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderId": "ACME",
"destinationNumber": "447700900101",
"message": "Your code is 8123",
"messageType": "TEXT"
}'
# 200 OK — the response body is the message ID, e.g. 2603121407537573731Pour vérifier un message, interrogez son statut avec l'identifiant du message renvoyé par la requête d'envoi :
# Status lookup on the legacy HTTP API (/websmpp), by message ID
curl "https://api.broadnet.me/websmpp/websmsstatus?respid=2603121407537573731&format=json" \
-H "Authorization: Bearer $BROADNET_TOKEN"
# "status": "DELIVRD" (or UNDELIV, EXPIRED, REJECTD)Déplacez vos identifiants d'expéditeur
Les identifiants d'expéditeur alphanumériques et les codes courts sont généralement portables, sous réserve des règles d'enregistrement de chaque opérateur et organisme de réglementation. L'enregistrement est lié au trajet emprunté par votre trafic ; il est donc important de le planifier avant tout envoi de message de production vers BroadNet.
- 1
Répertoriez chaque identifiant d'expéditeur, les pays vers lesquels il envoie des messages et le type de trafic qu'il transporte : OTP, transactionnel ou marketing.
- 2
Veuillez vérifier la réglementation de chaque pays. Aux Émirats arabes unis, les identifiants d'expéditeur sont enregistrés auprès de l'opérateur conformément à la réglementation TDRA, à raison d'un identifiant par entité juridique et par cas d'utilisation. En Arabie saoudite, l'approbation CST et de l'opérateur est requise, et les expéditeurs étrangers doivent s'engager par l'intermédiaire d'un agrégateur local agréé par CST.
- 3
Votre ingénieur en migration soumet les demandes d'enregistrement pour les routes de BroadNet, et l'équipe de conformité de BroadNet assure le suivi de chaque demande jusqu'à son approbation.
- 4
Ne lancez l'envoi parallèle dans un pays qu'une fois l'identifiant de l'expéditeur approuvé pour les routes de BroadNet. En attendant, continuez d'envoyer via votre fournisseur actuel.
Les règles applicables à chaque marché figurent sur les pages de réglementation. Réglementation des SMS par pays
Exécutez les deux fournisseurs en parallèle
Conservez votre fournisseur actuel et ajoutez BroadNet comme deuxième route derrière un commutateur dans votre code. Envoyez d'abord des requêtes vers vos numéros vérifiés, puis vers une petite partie du trafic réel, et comparez les deux routes sur les mêmes destinations.
Comparer, par pays et par opérateur :
- Répartition des statuts de livraison : livré, non livré, expiré et rejeté.
- Le délai entre l'envoi d'un message et la réception de son accusé de réception.
- L'expéditeur affiché sur le combiné.
- Le nombre de segments pour le même texte, à partir de
POST /sms/identify.
Choisissez la route par destinataire plutôt que par message, afin que toutes les tentatives de rappel OTP pour un même utilisateur transitent par le même fournisseur. Un commutateur de route minimal :
// Send a share of recipients through BroadNet; the rest stay on your
// current provider. BROADNET_SHARE is a percentage (0-100) you control.
const BROADNET_SHARE = Number(process.env.BROADNET_SHARE ?? "0");
// Same recipient -> same bucket, so OTP retries stay on one provider.
function bucket(to: string): number {
let h = 0;
for (const c of to) h = (h * 31 + c.charCodeAt(0)) >>> 0;
return h % 100;
}
export async function sendSms(to: string, text: string, senderId: string) {
if (bucket(to) < BROADNET_SHARE) return sendViaBroadNet(to, text, senderId);
return sendViaCurrentProvider(to, text, senderId); // your existing code
}
async function sendViaBroadNet(to: string, text: string, senderId: string) {
const res = await fetch("https://api.broadnet.me/sms/sendSms", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BROADNET_TOKEN}`,
"Content-Type": "application/json",
},
// Use UNICODE for non-GSM text; POST /sms/identify tells you which.
body: JSON.stringify({ senderId, destinationNumber: to, message: text, messageType: "TEXT" }),
});
if (!res.ok) throw new Error(`BroadNet send failed: ${res.status}`);
return { provider: "broadnet", messageId: await res.text() };
}Augmenter le trafic par étapes
Transférez le volume de production vers BroadNet par étapes, selon votre choix, un pays ou un cas d'utilisation à la fois. Attendez à chaque étape que les accusés de réception correspondent à ce que vous avez envoyé, puis passez à la suivante.
- Essai
Seuls vos numéros vérifiés sont acceptés. Veuillez confirmer l'identifiant de l'expéditeur, le texte du message et les accusés de réception.
- 5%
Une petite part du trafic réel. Le trafic OTP vers un seul pays génère rapidement des accusés de réception clairs.
- 25%
Un volume suffisant pour comparer les tarifs de livraison et les délais de réception avec votre fournisseur actuel.
- 100%
Tout le trafic pour ce pays ou ce cas d'utilisation. Votre fournisseur actuel reste actif jusqu'à ce que les accusés de réception correspondent à ce que vous avez envoyé.
Combien de temps cela prend
L'augmentation du trafic se fait à votre rythme. L'intégration suit un processus simple : nous répondons à votre demande d'accès test sous 24 heures ouvrables, l'intégration technique prend entre 2 et 5 jours ouvrables, et la validation du routage avec l'approbation de l'identifiant de l'expéditeur entre 3 et 10 jours ouvrables. Sur la plupart des marchés, la mise en service s'effectue en 5 à 15 jours ouvrables ; ce délai peut être plus long sur les marchés où les autorités de réglementation prennent plus de temps à approuver les identifiants d'expéditeur. Consultez les étapes d'intégration
Revenez à votre fournisseur actuel sans interruption de service
Pour revenir en arrière, utilisez la même commande en sens inverse : réduisez le pourcentage de trafic acheminé via BroadNet à la dernière étape fonctionnelle, ou à zéro. Votre intégration actuelle et ses enregistrements d'identifiants d'expéditeur restent actifs ; il suffit donc de réduire le pourcentage. Aucune reconfiguration n'est nécessaire.
- Conservez les identifiants de votre fournisseur actuel, les enregistrements d'identifiant d'expéditeur et le point de terminaison webhook actifs jusqu'à ce que tout le trafic ait été acheminé et que les accusés de réception correspondent à ce que vous avez envoyé.
- Avant de commencer, convenez des éléments déclencheurs d'un retour en arrière, par exemple une baisse de la part des messages délivrés dans un pays, et des personnes habilitées à prendre cette décision.
- Laissez votre gestionnaire webhook en fonctionnement après une restauration : les accusés de réception des messages déjà envoyés via BroadNet peuvent toujours arriver.
- Ne supprimez l'ancienne route que lorsque tout le trafic transite correctement par BroadNet et que les accusés de réception correspondent à ce que vous avez envoyé.
Qui est responsable de quoi ?
Une migration a un impact sur votre code, vos enregistrements d'expéditeurs et votre trafic en production. Voici comment le travail est réparti.
| Tâche | Votre équipe | BroadNet |
|---|---|---|
| Modifications du mappage des champs et du code | Apportez les modifications de code et prenez le contrôle du commutateur de routage. | Votre ingénieur de migration mappe vos charges utiles, identifiants d'expéditeur et reçus actuels à l'API BroadNet. |
| Informations d'identification | Stockez le jeton d'accès en lieu sûr et ne le mettez pas sous contrôle de version. | Émet le jeton d'accès et, pour SMPP, les identifiants de connexion. |
| Enregistrement de l'identifiant de l'expéditeur | Fournissez les documents de l'entreprise demandés par chaque organisme de réglementation. | Elle soumet les demandes d'inscription pour ses routes et en assure le suivi jusqu'à approbation. |
| Validation de la route | Veuillez confirmer les résultats du test sur vos propres numéros de téléphone. | Effectue des tests de livraison sur chaque marché avant la mise en production. |
| Augmentation du trafic et retour arrière | Déterminez chaque étape, ce qui déclenche une restauration et qui en prend la décision. | Un ingénieur de migration désigné est joignable pendant l'exécution parallèle et la bascule. |
| Livraison après acceptation du message BroadNet | Surveillez les accusés de réception de livraison dans vos propres systèmes. | Achemine chaque message de sa plateforme à l'opérateur et signale la réception de la livraison. |
| Incidents de production | Signalez-les à developers@broadnet.me. | Assistance technique 24h/24 et 7j/7 pour les comptes de production, avec une réponse P1 en 15 minutes. |
| Mise hors service de l'ancienne route | Fermez votre compte auprès de votre ancien fournisseur. | Confirme que les identifiants de l'expéditeur, le débit et les accusés de réception sont correctement réglés avant la fermeture. |
Documentation associée
Foire aux questions
Dois-je réécrire mon intégration pour passer à BroadNet ?
Généralement non. Il suffit de modifier l'hôte, l'en-tête d'authentification et quelques noms de champs : le champ expéditeur devient senderId, le champ destinataire devient destinationNumber et le champ texte devient message. Les intégrations SMPP redirigent leur connexion existante vers BroadNet avec de nouvelles informations d'identification.
Puis-je conserver mes identifiants d'expéditeur ?
En règle générale, oui, sous réserve des règles d'enregistrement de chaque opérateur et autorité de régulation. Les enregistrements sont effectués sur les routes de BroadNet avant la mise en service : aux Émirats arabes unis, conformément à la réglementation TDRA, et en Arabie saoudite, avec l'approbation CST et de l'opérateur.
Combien de temps dure une migration ?
La plupart des plateformes passent de la phase de découverte à la mise en service en 5 à 15 jours ouvrables ; ce délai est encore plus long pour celles où les autorités de réglementation prennent plus de temps à approuver les identifiants d'expéditeur. La montée en puissance du trafic qui suit est à votre discrétion.
Que se passe-t-il si les taux de livraison diminuent alors que j'augmente le trafic ?
Réduisez le pourcentage de trafic acheminé via BroadNet au niveau de la dernière étape ayant fonctionné, ou à zéro. Votre fournisseur actuel est toujours opérationnel et le trafic continue de circuler. Ensuite, vérifiez les accusés de réception pour le pays concerné avec votre ingénieur de migration avant de réessayer.
L'assistance à la migration est-elle payante ?
Non. L'assistance à la migration et la fenêtre d'exécution parallèle sont incluses dans votre compte. Vous ne payez que les messages que vous envoyez.
Demander un accès de test · réponse sous un jour ouvré
Obtenez vos identifiants, envoyez des messages de test à votre propre numéro vérifié et configurez votre intégration actuelle avec un ingénieur télécom BroadNet avant tout transfert de trafic en production.