Aller au contenu
AfriContext

Orange SMS

Orange - SMS API (Afrique)

Envoie un SMS via l'API Orange en encodant l'adresse expéditeur dans le chemin.

Vérifié sur la doc officielle • Vérifié sur la doc officielle • 03.10.26API v1

Authentification

  • Même jeton OAuth que les autres APIs Orange : POST https://api.orange.com/oauth/v3/token avec Authorization: Basic <base64(client_id:client_secret)>.
  • Appels : Authorization: Bearer <access_token>.

Endpoints

  • POST https://api.orange.com/smsmessaging/v1/outbound/{senderAddress}/requests
    • senderAddress est encodé dans le chemin : tel%3A%2B2210000 pour tel:+2210000.
    • Corps : outboundSMSMessageRequest: { address, senderAddress, outboundSMSTextMessage: { message } }.
    • Réponse 201 avec la ressource créée.

Erreurs

  • 401 jeton expiré.
  • 403 plus de crédit SMS dans le bundle.
  • 400 adresse mal formée.

Webhooks

  • Accusés de réception : abonnement séparé, livrés sur l'URL déclarée.

Idempotence et limites

  • Le bundle SMS est décompté à chaque envoi : dédupliquer avant l'appel.

Pièges courants

Ce que les LLMs inventent le plus souvent pour Orange SMS.

  • address et senderAddress sont au format tel:+221..., pas un numéro nu.
  • Le senderAddress du chemin doit être encodé en URL.
  • Pas de champ to ni text : la structure est imbriquée.

Exemple minimal

1export async function sendOrangeSms(token: string, to: string, message: string) {2  const sender = "tel:+" + process.env.ORANGE_SMS_SENDER;3  const url = "https://api.orange.com/smsmessaging/v1/outbound/" + encodeURIComponent(sender) + "/requests";4  const res = await fetch(url, {5    method: "POST",6    headers: { Authorization: "Bearer " + token, "Content-Type": "application/json" },7    body: JSON.stringify({8      outboundSMSMessageRequest: { address: "tel:" + to, senderAddress: sender, outboundSMSTextMessage: { message } },9    }),10  });11  if (res.status !== 201) throw new Error("Orange SMS " + res.status);12}

Variables d'environnement

  • ORANGE_CLIENT_ID
  • ORANGE_CLIENT_SECRET
  • ORANGE_SMS_SENDER