02 51 76 0 34

Accès client :  mot de passe oublié   inscription

       (oubli)
AccueilDéveloppeurs / API › TypeScript

Envoyer un SMS en TypeScript

Mis à jour le 22 juillet 2026

La fonction typée pour envoyer un SMS depuis TypeScript avec fetch natif : zéro dépendance npm, compatible Node.js 18+, Deno et Bun, avec les codes retour de l'API typés.

1La fonction complète (fetch natif, aucune dépendance)

// 123sms.ts — Envoi de SMS professionnel via l'API 123-SMS.net
// Copyright (C) 123-Sms.net — licence MIT
// Node.js 18+ (fetch natif), Deno ou Bun. Aucune dependance npm.
//
// Execution :  npx tsx 123sms.ts     (ou : deno run --allow-net 123sms.ts)
// Identifiants : espace client https://www.123-sms.net > rubrique API.

const IDENTIFIANT = "votre_identifiant";
const CLE_API = "CLEAPI";
const API_URL = "https://www.123-sms.net/http.php";

/** Codes retour documentes de l'API 123-SMS. */
type CodeRetour = "80" | "81" | "82" | "83" | "84" | string;

const LIBELLES: Record<string, string> = {
  "80": "le message a ete envoye.",
  "81": "enregistre pour un envoi differe.",
  "82": "identifiants invalides.",
  "83": "credit insuffisant.",
  "84": "numero invalide.",
};

/** Envoie un SMS et renvoie le code retour de l'API (80 = envoye). */
export async function envoyerSms(
  numero: string,
  message: string,
  options?: { sender?: string; refaccuse?: string },
): Promise<CodeRetour> {
  const corps = new URLSearchParams({
    email: IDENTIFIANT,
    pass: CLE_API,
    numero,
    message,
    ...(options?.sender ? { sender: options.sender } : {}),
    ...(options?.refaccuse ? { refaccuse: options.refaccuse } : {}),
  });
  // POST en HTTPS : la cle API ne transite jamais en clair
  const reponse = await fetch(API_URL, {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: corps.toString(),
    signal: AbortSignal.timeout(15_000),
  });
  return (await reponse.text()).trim();
}

// Demonstration
const code = await envoyerSms("33601020304", "Bonjour, ceci est un test 123-SMS.");
console.log(`Code ${code} : ${LIBELLES[code] ?? "voir la documentation."}`);

2Installation et utilisation

  • Téléchargez l'archive ou copiez 123sms.ts.
  • Renseignez IDENTIFIANT et CLE_API (espace client › API).
  • Lancez : npx tsx 123sms.ts (ou deno run --allow-net 123sms.ts).
  • Dans votre projet : importez envoyerSms() — elle accepte sender et refaccuse en options.
La clé API se génère dans l'espace client, rubrique API › Générer Clé API. Les codes réponse et le retour des accusés de réception par HTTP sont détaillés dans la documentation technique.

Questions fréquentes

Quels environnements sont supportés ?

Node.js 18+ (fetch natif), Deno et Bun, sans aucune dépendance npm. Pour Node 16 et avant, ajoutez node-fetch ou utilisez l'exemple Node.js.

Puis-je appeler l'API depuis un front-end React, Vue ou Angular ?

Non : votre clé API serait visible dans le code livré au navigateur, et l'appel serait bloqué par CORS. Exposez une route sur votre backend (Next.js API route, Express, NestJS…) qui appelle envoyerSms() côté serveur.

Quelle différence avec la page JavaScript ?

Le principe est identique ; cette version ajoute le typage (codes retour, options) et fonctionne telle quelle sous Deno et Bun. La page JavaScript reste la référence sans TypeScript.

Comment envoyer plusieurs SMS à la suite ?

Le paramètre numero accepte plusieurs destinataires séparés par des tirets (33601020304-33607080910) : un seul appel suffit. Pour des messages personnalisés, bouclez avec un petit délai entre les appels.

Téléchargement

Fonction TypeScript (.zip)

Licence MIT — libre et gratuit.

🔗 Voir sur GitHub

L'essentiel

  • API HTTPS en un appel : identifiant, clé API, numéro, message.
  • Code réponse immédiat + accusés de réception par HTTP.
  • Crédits prépayés sans abonnement ni expiration.
  • Adaptations spécifiques développées gratuitement.