02 51 76 0 34

Accès client :  mot de passe oublié   inscription

       (oubli)

Scripts / Api pour double authentification

123-SMS.net est une solution compatible pour la mise en place pour votre sites web ou vos applications. Cette vérification en deux étapes ou double authentification (2FA, two-factor authentication) est une méthode d'authentification très sécurisée pour qu'un un utilisateur (un client par exemple) puisse accéder à un developpement informatique (exemple : un espace client d'un site web) après avoir présenté deux preuves de "possession" du compte via à un mécanisme d'authentification. La solution professionnelle d'envoi de SMS avce un code unique (à durée de vie limitée) est dans cette démarche.

Avec l'exemple de script présenté ci-dessous vous pouvez générer un code qui sera inséré provisoirement dans votre base de donnée (avec une limite de validité dans le temps) puis envoyer en suivant un SMS à votre client avec le code généré de manière instantannée afin qu'il puisse s'autentifier et accréditer son identité.

L'exemple ci-dessous est en PHP mais le principe de fonctionnement est applicable à n'importe quel language. Il est volontairement simple (voire simpliste) pour faciliter la compréhension du process, vous pourrez par la suite crypter les codes générer pour les insérer en base de données.

Il est important de personnaliser l'emetteur afin d'éviter les réponses (nous contacter)

Sur la page ou le client va demander l'envoi du SMS.

<?php
// GÉNÉRATION DU CODE À USAGE UNIQUE
$codeUnique = random_int(10000, 99999); // code à 5 chiffres, ex. : 47316

// Durée de validité, à stocker avec le code
$validiteCode = time() + 5 * 60; // 5 minutes

// Empreinte du code : on ne stocke jamais le code en clair en base
$empreinte = password_hash((string) $codeUnique, PASSWORD_DEFAULT);

// INSERTION DANS VOTRE BASE DE DONNÉES (exemple avec PDO)
// $bdd->prepare('INSERT INTO codes_2fa (utilisateur, empreinte, expire_a) VALUES (?, ?, ?)')
//     ->execute([$idUtilisateur, $empreinte, $validiteCode]);

// ENVOI DU SMS de double authentification (2FA)
// identifiant + clé API : transmis par e-mail à l'inscription (espace client > API)
$reponse = file_get_contents('https://www.123-sms.net/http.php'
    . '?email=votre_identifiant&pass=votre_cle_api'
    . '&numero=0607080910&sender=MASOCIETE'
    . '&message=' . urlencode('Votre code de connexion : ' . $codeUnique));
// $reponse contient le code retour : 80 = envoyé
?>
  • Vous pouvez testez vos requêtes https «à blanc» (sans débiter votre compte) pour cela rajoutez &test=o
  • Vous avez la possibilité de personnaliser l’émetteur : le «sender-ID» (série de 11 caractères alpha-numériques). Vous devez le(s) déclarer en faisant votre demande par email, en précisant celui utilisé par défaut (sinon ce seront les numéros courts). Pour selectionner le Sender-ID au moment de votre envoi rajouter à la fin de la requette &sender= suivi du sender déclaré (orthographe et casse exacte). L’espace est déconseillé car il est interprété différement d’un mobile à l’autre, privilégiez le «_» le «.» ou jouez avec les majuscules ex : «DupontSarl» ou «Dupont_sarl» ou «Dupont.Sarl»).
  • Pour recevoir l’email de confirmation sur un email différent de celui du compte principal : ajouter &email_rep=mon_email@mon_domaine.com ; attention il faudra peut-être encoder le «@» pour vos tests utilisez %40 (exemple &email_rep=mon_email%40mon_domaine.com)

Sur la page de vérification du SMS second facteur (2FA two-factor authentification)

Voici un exemple de code à adapter à votre environnement.
<?php
// VÉRIFICATION DU SECOND FACTEUR
// On relit en base l'empreinte et la date d'expiration du code ;
// $codeSaisi arrive du formulaire de l'utilisateur.

if (time() > $validiteCode) {
    exit('Code expiré : demandez un nouveau code.');
}
if (!password_verify(trim($codeSaisi), $empreinte)) {
    exit('Code incorrect.');
}
// Code valide : le second facteur est vérifié, on ouvre la session.
?>
Une fois le SMS d'authentification à deux facteurs (2FA, two-factor authentification) envoyé dans votre développement ce dernier affichera un code en réponse.
  • 80 : Le message a été envoyé
  • 81 : Le message est enregistré pour un envoi en différé
  • 82 : Le login et/ou mot de passe n’est pas valide
  • 83 : vous devez créditer le compte
  • 84 : le numéro de gsm n’est pas valide
  • 85 : le format d’envoi en différé n’est pas valide
  • 86 : le groupe de contacts est vide
  • 87 : la valeur email est vide
  • 88 : la valeur pass est vide
  • 89 : la valeur numero est vide
  • 90 : la valeur message est vide
  • 91 : le message a déjà été envoyé à ce numéro dans les 24 dernières heures (L’erreur 91 peut être désactivée dans la rubrique «Modifier les options »)
  • 92 le test d’envoi «à blanc» est positif
  • 93 pour effectuer l’envoi de SMS vers les DOM TOM, vous devez activer l’option (14) dans l’espace client
  • 94 votre envoi en différé est supprimé
  • 95 votre envoi en différé n’a pas pu être supprimé
  • 96 votre adresse IP n’est pas valide
  • 97 le SENDER ID n’est pas valide
  • 98 la date de début n’est pas valide
  • 99 la date de fin n’est pas valide
  • 100 la date de fin est supérieure à la date de début
  • 101 le numéro de mobile est bloqué et/ou blacklisté
  • 102 le changement de Sender-ID vous oblige à rajouter «stop SMS au 36001» à la fin de votre message

Documentations et partenariat

Documentations Spécifiques Développeurs / API

Retour AR par http

Retour réponses SMS par http

Solde du compte SMS par http

Partage / Test

Si vous avez des scripts à faire partager sous licence GNU n'hésitez pas à nous les envoyer par email à , nous les mettrons en ligne.

Faîtes une demande de test gratuit :

AccueilDéveloppeurs / API › 2FA / OTP  ·  Mis à jour le 31 juillet 2026

Questions fréquentes — SMS et 2FA / OTP

Comment fonctionne l'envoi d'un code OTP par SMS ?

Votre serveur génère un code aléatoire (6 chiffres en général), l'envoie par l'API 123-SMS au numéro de l'utilisateur, puis compare la saisie au code généré, avec une durée de validité courte (5 minutes) et un nombre d'essais limité. Le code ne doit jamais être généré côté navigateur.

Un SMS OTP doit-il contenir la mention STOP ?

Non : un code de connexion est un SMS transactionnel (service), pas de la prospection commerciale — la mention STOP n'est pas requise. Détails sur la page réglementation SMS.

En combien de temps le code arrive-t-il ?

Généralement en quelques secondes vers les mobiles français. Prévoyez malgré tout un bouton « Renvoyer le code » après 30 à 60 secondes, et le suivi par accusé de réception (paramètre refaccuse) pour tracer la remise.

Dans quel langage implémenter l'envoi du code ?

Celui de votre application : Python, Node.js, PHP, C#... L'appel API est identique partout. Le cas d'usage complet est décrit sur la page SMS OTP / 2FA.

5 SMS offerts pour votre essai, sur simple demande : précisez que vous intégrez l'API en la double authentification, et nous créditons votre compte professionnel le temps de vérifier vos premiers envois. Offre réservée aux professionnels : entreprises, associations et collectivités.

Demander 5 SMS de test