our envoyer un SMS via le code, effectuez un HTTPS POST vers https://api.broadnet.me/sms/sendSms avec un en-tête Authorization: Bearer et un corps JSON contenant senderId, destinationNumber, le message et messageType. Un appel réussi renvoie un code HTTP 200 avec l'ID du message en corps de réponse ; le résultat de la livraison arrive plus tard sous forme d'accusé de réception (DLR) sur votre webhook. Chaque langage ci-dessous utilise uniquement sa bibliothèque HTTP standard ; la seule SDK officielle est destinée à TypeScript et Node.js.
Points clés à retenir
- Point de terminaison : POST https://api.broadnet.me/sms/sendSms, corps JSON, jeton Bearer.
- Champs requis : senderId, destinationNumber (format international sans le signe plus), message, messageType (TEXT).
- Réponse : 200 avec l'ID du message ; conservez-le pour faire le lien avec les accusés de réception.
- Erreurs : un jeton manquant ou invalide renvoie une erreur 401 de la part de la passerelle ; les erreurs API renvoient le statut, l'erreur, le message, l'errorCode et le requestUri.
- Une seule SDK officielle : @broadnet/cpaas-sdk pour TypeScript/Node.js ; générez des clients pour les autres langages à partir de la spécification OpenAPI.
De quoi avez-vous besoin avant l'envoi ?
- Un jeton d'accès provenant de votre compte BroadNet, conservé dans une variable d'environnement (BROADNET_TOKEN ci-dessous), et jamais dans le code source ou une application mobile.
- Un identifiant d'expéditeur autorisé pour le pays de destination ; certains pays exigent une inscription préalable.
- Un numéro de destination au format international, par exemple 447700900123 (un numéro fictif du Royaume-Uni).
L'accès de test est fourni par nos ingénieurs : demandez-le et vous recevrez vos identifiants de test sous un jour ouvré, et le premier message de test est généralement envoyé environ cinq minutes après. Le quickstart vous guide pas à pas.
À quoi ressemble la requête ?
Voici la requête avec cURL. Chaque exemple ci-dessous envoie le même corps JSON.
curl -X POST https://api.broadnet.me/sms/sendSms \ -H "Authorization: Bearer $BROADNET_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT" }' # 200 OK → response body is the message ID, e.g. 2603121407537573731Comment envoyer un SMS avec Python ?
Avec la bibliothèque requests, l'argument json= configure automatiquement l'en-tête Content-Type pour vous.
import os, requests r = requests.post( "https://api.broadnet.me/sms/sendSms", headers={"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"}, json={ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT", },) print(r.status_code, r.text) # message IDComment envoyer un SMS avec PHP ?
L'extension curl de PHP est suffisante ; aucun package n'est nécessaire.
<?php$ch = curl_init("https://api.broadnet.me/sms/sendSms");curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer " . getenv("BROADNET_TOKEN"), "Content-Type: application/json", ], CURLOPT_POSTFIELDS => json_encode([ "senderId" => "BroadNet", "destinationNumber" => "447700900123", "message" => "Your verification code is 482913", "messageType" => "TEXT", ]),]); $messageId = curl_exec($ch);echo $messageId;Comment envoyer un SMS avec Node.js ?
Node.js 18 et versions ultérieures incluent fetch nativement :
// Node.js 18+ (fetch)const res = await fetch("https://api.broadnet.me/sms/sendSms", { method: "POST", headers: { Authorization: `Bearer ${process.env.BROADNET_TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify({ senderId: "BroadNet", destinationNumber: "447700900123", message: "Your verification code is 482913", messageType: "TEXT", }),}); console.log(await res.text()); // message IDOu utilisez l'officiel TypeScript/Node.js SDK, @broadnet/cpaas-sdk :
// npm install @broadnet/cpaas-sdk axiosimport { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk"; const sms = new SMSSMSApi( new Configuration({ basePath: "https://api.broadnet.me", accessToken: process.env.BROADNET_TOKEN!, }),); const res = await sms.smsSendsmsPost({ sMSSmsRequest: { senderId: "BroadNet", destinationNumber: "447700900123", message: "Your verification code is 482913", messageType: "TEXT", },}); console.log(res.data); // message IDComment envoyer un SMS avec Java ?
Java 11 et versions ultérieures incluent java.net.http.HttpClient :
// Java 11+ — java.net.http is built in, nothing to installimport java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse; public class SendSms { public static void main(String[] args) throws Exception { String json = "{" + "\"senderId\": \"BroadNet\", " + "\"destinationNumber\": \"447700900123\", " + "\"message\": \"Your verification code is 482913\", " + "\"messageType\": \"TEXT\"" + "}"; HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.broadnet.me/sms/sendSms")) .header("Authorization", "Bearer " + System.getenv("BROADNET_TOKEN")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(json)) .build(); HttpResponse<String> res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); System.out.println(res.statusCode() + " " + res.body()); // 200 + message ID }}Comment envoyer un SMS avec Go ?
package main import ( "bytes" "fmt" "io" "net/http" "os") func main() { body := []byte(`{ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT" }`) req, err := http.NewRequest(http.MethodPost, "https://api.broadnet.me/sms/sendSms", bytes.NewReader(body)) if err != nil { panic(err) } req.Header.Set("Authorization", "Bearer "+os.Getenv("BROADNET_TOKEN")) req.Header.Set("Content-Type", "application/json") res, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer res.Body.Close() id, _ := io.ReadAll(res.Body) fmt.Println(res.StatusCode, string(id)) // 200 + message ID}Comment envoyer un SMS avec C# et .NET ?
.NET 6 et versions ultérieures ne nécessitent aucun package NuGet : HttpClient et System.Net.Http.Json sont intégrés.
// .NET 6+ console app (Program.cs) — HttpClient is built in, no NuGet packageusing System;using System.Net.Http;using System.Net.Http.Headers;using System.Net.Http.Json; using var http = new HttpClient();http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", Environment.GetEnvironmentVariable("BROADNET_TOKEN")); // PostAsJsonAsync sends Content-Type: application/jsonvar res = await http.PostAsJsonAsync("https://api.broadnet.me/sms/sendSms", new{ senderId = "BroadNet", destinationNumber = "447700900123", message = "Your verification code is 482913", messageType = "TEXT",}); var id = await res.Content.ReadAsStringAsync();Console.WriteLine($"{(int)res.StatusCode} {id}"); // 200 + message IDQuel est le retour et comment gérer les erreurs ?
| Réponse | Signification | Action à entreprendre |
|---|---|---|
| 200 + identifiant de message | Accepté pour la livraison | Conservez l'identifiant avec votre propre enregistrement ; attendez le DLR |
| 400 | Erreur de validation ou champ manquant | Corrigez la requête ; ne réessayez pas sans modification |
| 401 | Jeton Bearer manquant ou invalide | Vérifiez le jeton et l'en-tête Authorization |
| 500 | Erreur serveur inattendue | Réessayez avec un délai progressif ; vérifiez le statut du message avant de le renvoyer |
Un code 200 signifie que la plateforme a accepté le message, pas que le terminal l'a reçu. La livraison est signalée par l'accusé de réception ; consultez ce qu'est un DLR et les accusés de réception SMS et les codes d'erreur. La API ne possède pas d'en-tête d'idempotence, conservez donc l'identifiant de message renvoyé et vérifiez son statut avant de le renvoyer pour éviter les doublons. La page des codes d'erreur répertorie les autres.
Comment le rendre prêt pour la production ?
- Conservez le jeton côté serveur. N'appelez jamais l'SMS API depuis un navigateur ou une application mobile, où le jeton pourrait être extrait ; appelez plutôt votre propre backend.
- Envoyez des messages longs en toute connaissance de cause : l'GSM-7 permet 160 caractères par SMS, 70 pour l'Unicode (UCS-2), et les textes plus longs sont divisés en segments facturés. Consultez la limite de caractères SMS.
- Mettez les envois en masse en file d'attente et respectez le débit de votre compte ; consultez les limites de débit.
- Recevez les accusés de réception via un webhook et enregistrez le statut final.
- Validez d'abord les numéros au format international ; consultez la validation du numéro de téléphone E.164.
Pour des volumes très élevés ou une infrastructure télécom existante, SMPP peut être plus adapté que REST ; consultez SMPP vs REST. La plateforme de BroadNet gère 30 000 SMS par seconde et par nœud.
Foire aux questions
Quel est le moyen le plus simple d'envoyer un SMS via du code ?
Un seul HTTPS POST vers une SMS API avec un jeton d'accès et un corps JSON. Avec BroadNet, il s'agit d'un POST https://api.broadnet.me/sms/sendSms incluant senderId, destinationNumber, le message et messageType.
Existe-t-il un BroadNet SDK pour Python, PHP ou Java ?
Non. Il existe un seul SDK @broadnet/cpaas-sdk officiel pour TypeScript et Node.js. Les autres langages appellent directement la REST API, comme illustré ici, ou génèrent un client à partir de la spécification OpenAPI.
Quel doit être le format du numéro de téléphone ?
Format international avec le code pays, sans signe plus ni espaces, par exemple 447700900123.
Une réponse 200 signifie-t-elle que le SMS a été livré ?
Non. Cela signifie que le message a été accepté. L'accusé de réception (DLR) indique s'il est bien parvenu au terminal.
Puis-je envoyer SMS directement depuis une application Android ou iOS ?
Pas de manière sécurisée. Effectuez l'appel API depuis votre serveur afin que le jeton d'accès ne soit jamais transmis via l'application, puis faites en sorte que l'application appelle votre serveur.
Où trouver la référence complète de l'API ?
Dans la référence API et la spécification OpenAPI.
Les exemples de code sont ceux présents sur nos pages développeurs, vérifiés par rapport à la spécification OpenAPI publiée. Révisé le 28 septembre 2026. Consultez nos normes éditoriales.
