Aller au contenu principal
Vérification et 2FA

API de vérification par SMS : codes OTP à usage unique

Vérifiez les inscriptions, les connexions et les opérations sensibles avec un code de vérification par SMS, WhatsApp ou Telegram. OTP et 2FA avec l’API /verify : la plateforme génère le code, l’envoie par le canal que vous choisissez dans l’appel et le vérifie, avec des webhooks de statut signés pour réagir immédiatement si un code n’arrive pas.

  • OTP par SMS à partir de 0,039 €
  • Un canal par appel : SMS, WhatsApp ou Telegram
  • Codes à usage unique avec expiration
  • RGPD · Serveurs dans l’UE

Ce qu’est un OTP par SMS et pourquoi il reste la norme de la vérification

Simple pour l’utilisateur, universel en couverture et sans application à installer : c’est pourquoi le code de vérification par SMS protège encore les inscriptions et les connexions dans le monde entier.

Un OTP (one-time password) est un code à usage unique — généralement de 4 à 8 chiffres — que vous envoyez au mobile de l’utilisateur pour prouver que ce numéro lui appartient vraiment. C’est la base de la 2FA par SMS (double authentification), de la vérification des inscriptions dans les applications et l’e-commerce, de la confirmation d’opérations sensibles et de la signature de consentements.

Pourquoi le SMS ? Parce qu’il fonctionne sur n’importe quel mobile, sans rien installer et sans données : la couverture est universelle. Et pour le renforcer, WhatsApp apporte sa catégorie spécifique authentication avec bouton de remplissage automatique, et Telegram ajoute le canal le moins cher, à 0,010 € par message, pour les utilisateurs qui ont déjà démarré la conversation avec votre bot — son API ne permet pas d’envoyer un code au numéro de quelqu’un qui ne l’a pas fait, donc Telegram sert à revérifier ceux que vous avez déjà liés, pas à la première inscription. Avec SMSverifica, les trois canaux vivent dans la même API REST, avec le même appel : vous choisissez le canal à chaque /verify/start et utilisez le SMS pour tout le reste.

Où la vérification par SMS est utilisée

  • Inscription des utilisateurs avec un numéro vérifié
  • 2FA à la connexion et lors des changements de mot de passe
  • Confirmation de commandes, de paiements et d’opérations sensibles
  • Codes d’accès à usage unique pour les portes, les événements et les zones restreintes
  • Vérification d’identité pour le pointage à distance et le télétravail
  • Récupération de comptes et validation des numéros dans les bases de données

Un parcours de vérification en trois étapes : inscription, envoi du code et validation

Voici comment fonctionne un circuit OTP avec l’API de SMSverifica, étape par étape.

1. L’utilisateur s’inscrit

Votre application recueille le numéro de mobile dans le formulaire d’inscription, de connexion ou d’achat. Ensuite, vous pouvez déléguer le code à la plateforme avec /verify ou le générer vous-même et l’envoyer comme un message normal.

2. Vous envoyez le code OTP

Un appel à POST /api/v1/verify/start avec l’en-tête Idempotency-Key — ainsi une relance de votre backend ne duplique jamais le SMS ni la facturation — et le code arrive sur le mobile en quelques secondes.

3. Vous validez et donnez l’accès

L’utilisateur saisit le code et votre backend appelle POST /api/v1/verify/check : un code erroné renvoie 200 avec status: invalid et consomme l’une des 5 tentatives, pas une erreur réseau déguisée. Les webhooks signés vous confirment la remise.

terminal — générer et envoyer l’OTP par SMS
curl -X POST https://app.smsverifica.com/api/v1/verify/start \
  -H "X-Api-Key: sk_live_tu_api_key" \
  -H "X-Api-Secret: tu_api_secret" \
  -H "Idempotency-Key: otp-usuario-8842-intento-1" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "sms",
    "to": "+34612345678",
    "length": 6,
    "ttl_seconds": 300
  }'
terminal — vérifier le code saisi par l’utilisateur
curl -X POST https://app.smsverifica.com/api/v1/verify/check \
  -H "X-Api-Key: sk_live_tu_api_key" \
  -H "X-Api-Secret: tu_api_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 5512,
    "code": "482913"
  }'

// 200 { "data": { "id": 5512, "status": "verified", "attempts_remaining": 4 } }

Le même JSON avec "channel": "whatsapp" (et un modèle authentication avec {code} dans ses variables) ou "channel": "telegram" : le canal se choisit à chaque appel. L’OTP par SMS vers l’Espagne coûte 0,039 €, le code de vérification par WhatsApp (catégorie authentication) 0,005 € —plus ce que Meta vous facture— et par Telegram 0,010 €, tous hors TVA — consultez tous les tarifs SMS par pays et WhatsApp par catégorie. Si vous préférez générer le code vous-même, POST /api/v1/messages envoie le texte que vous voulez et vous laisse la logique d’expiration et de tentatives.

Si le SMS n’arrive pas : nouvel essai par un autre canal depuis votre backend

Un OTP qui n’arrive pas, c’est un utilisateur qui ne s’inscrit pas, un panier abandonné ou un salarié qui ne peut pas pointer. Voici, sans fioritures, qui fait quoi quand cela arrive.

Ce que fait la plateforme aujourd’hui. Les webhooks de statut signés en HMAC-SHA256 vous préviennent en quelques secondes de chaque transition : envoyé, remis ou échoué. Le montant d’un envoi définitivement échoué est remboursé automatiquement sur votre solde. Et les règles de routage conservent, par canal, votre fournisseur principal et —si vous en avez souscrit un second— celui de secours sur lequel la plateforme réessaie.

Ce que vous faites. Changer de canal est une décision de votre backend : vous recevez message.failed et lancez un second appel à /verify/start avec "channel": "whatsapp" ou "telegram". Ce sont cinq lignes de code, mais autant le dire clairement : la plateforme ne bascule pas d’elle-même du SMS à WhatsApp.

Fonction prévue, pas encore disponible : le basculement automatique de canal (SMS → WhatsApp → Telegram) configurable par compte est en cours de conception et n’existe pas encore. Ne l’intégrez pas à votre planning tant que nous ne l’avons pas annoncé.

Codes à usage unique pour le contrôle d’accès : le complément idéal de QRACCESO

Notre plateforme sœur QRACCESO gère le contrôle d’accès par QR des événements, des bureaux et des sites. Avec SMSverifica, l’accès physique gagne un second facteur.

Ouvrir une porte avec un code par SMS

Envoyez un code d’accès à usage unique par SMS ou WhatsApp pour ouvrir une porte, un parking ou une zone restreinte : le visiteur le reçoit sur son mobile, le saisit ou le présente, et l’accès est enregistré avec l’heure et la personne. Sans clés, sans badges qui se perdent.

Billets et accréditations vérifiés

Combinez le billet QR de l’événement avec un OTP de vérification à l’inscription du participant : numéro de mobile vérifié dès l’inscription, moins de billets en double et jauge maîtrisée. Le billet voyage par SMS, WhatsApp ou Telegram ; le rappel de l’événement, par le canal que préfère le participant.

Notifications de visite à l’accueil

Quand un visiteur arrive, l’hôte reçoit l’avis immédiatement — notification de visite par Telegram à 0,010 € ou par SMS/WhatsApp — et peut autoriser l’accès en répondant ou en générant un code temporaire. Un accueil sans appels ni attente.

Découvrez d’autres intégrations de messagerie avec le contrôle d’accès dans les cas d’usage de QRACCESO.

Vérification d’identité pour le pointage à distance : OTP pour les RH et ACCESSTIME

L’enregistrement du temps de travail est obligatoire en Espagne depuis 2019 et évolue vers le pointage numérique. Avec ACCESSTIME, notre plateforme de gestion du temps, la vérification par SMS lève le dernier doute : qui pointe vraiment ?

Dans l’enregistrement du temps de travail en télétravail ou avec des équipes mobiles, le pointage à distance a besoin d’une garantie d’identité. Un OTP par SMS ou WhatsApp au moment de pointer relie le pointage au mobile personnel du salarié : code à usage unique, validation en quelques secondes et traçabilité complète pour l’inspection.

La même messagerie règle le quotidien des RH : avis de pointage au salarié qui a oublié de pointer, rappels de début et de fin de journée, communications sur les horaires et les congés, ou alertes au responsable quand un enregistrement manque. Par Telegram, tous ces avis internes coûtent 0,010 € par message ; par SMS, 0,039 € avec une remise pratiquement immédiate.

Messagerie pour la gestion du temps et les RH →
  • Vérification d’identité pour le pointage à distance avec un code à usage unique
  • Avis de pointage automatiques aux salariés par SMS, WhatsApp ou Telegram
  • Rappels RH : horaires, congés, documents en attente
  • Alertes au responsable si un enregistrement du temps de travail manque
  • Traçabilité complète : statuts de remise avec webhooks signés
  • Conformité RGPD avec serveurs dans l’UE

Bonnes pratiques pour mettre en place l’OTP et la 2FA par SMS

Les règles qu’applique notre propre API de vérification, au cas où vous préféreriez monter le circuit vous-même.

  • Codes à 6 chiffres générés avec un aléa cryptographique, jamais séquentiels.
  • Expiration courte : 5 minutes est le bon équilibre entre sécurité et facilité d’usage.
  • Limitez les tentatives de validation (3-5) et les renvois par heure pour freiner les attaques par force brute et le SMS pumping.
  • Un vrai usage unique : invalidez le code dès qu’il est validé ou qu’il expire.
  • Utilisez Idempotency-Key à chaque envoi : une relance réseau ne dupliquera jamais le SMS ni la facturation.
  • Écoutez les webhooks message.failed pour lancer vous-même le nouvel essai par WhatsApp ou Telegram sur-le-champ.
  • Indiquez l’expéditeur et le contexte dans le texte (« Votre code pour MONAPPLI… ») et demandez de ne pas le partager.
  • Commencez par le mode sandbox —il s’ouvre de lui-même quand vous vérifiez votre e-mail— et testez les statuts : remis, échoué, lu, avant de passer en production.
Disponible dans l’API v1

L’API /verify : la plateforme génère, envoie et vérifie le code

Deux appels et pas une seule table de codes dans votre base de données : POST /api/v1/verify/start déclenche l’OTP par le canal indiqué et POST /api/v1/verify/check le valide. L’expiration et la limite de tentatives sont gérées par la plateforme.

  • Code de 4 à 8 chiffres généré avec un aléa cryptographique (6 par défaut)
  • Expiration configurable entre 60 et 900 secondes ; 300 si vous ne précisez rien
  • 5 tentatives par code et, contre le SMS pumping, une limite par destination : 1 start toutes les 30 secondes et 3 au maximum toutes les 10 minutes
  • Le code n’apparaît jamais dans les réponses de l’API ni dans l’historique : uniquement dans le message à l’utilisateur
  • Idempotency-Key, la même authentification et les mêmes webhooks signés que le reste de l’API

Ce que cette API ne fait pas encore : elle ne change pas de canal d’elle-même. Chaque verify/start envoie par le canal que vous demandez ; si vous voulez réessayer par un autre, c’est à vous de le demander. Le basculement automatique entre canaux est une fonction prévue, sans date.

Choisir entre /verify et /messages

  • /verify si vous voulez déléguer le code, son expiration et ses tentatives.
  • /messages si vous avez déjà votre propre logique OTP et n’avez besoin que de l’envoi, avec le texte et l’expéditeur de votre choix.

Les deux coûtent pareil : le prix du canal et de la destination, sans supplément pour l’utilisation de /verify. Tous les détails, paramètres et codes d’erreur figurent dans la documentation de l’API REST.

Questions fréquentes sur la vérification par SMS et les codes OTP

Qu’est-ce qu’un code OTP par SMS ?

Un OTP (one-time password) est un code de vérification à usage unique, généralement de 4 à 8 chiffres, envoyé par SMS au mobile de l’utilisateur pour confirmer son identité lors d’une inscription, d’une connexion ou d’une opération sensible. Il expire en quelques minutes et ne sert qu’une fois.

La 2FA par SMS est-elle sûre ?

La 2FA par SMS ajoute une vraie barrière au seul mot de passe et se distingue par sa couverture universelle : elle fonctionne sur n’importe quel mobile sans rien installer. Pour les opérations critiques, vous pouvez la combiner avec des limites de tentatives, une expiration courte du code et une vérification par un second canal comme WhatsApp ou Telegram.

Combien coûte l’envoi d’un code de vérification ?

Avec SMSverifica, un OTP par SMS vers l’Espagne coûte 0,039 €, un code de vérification par WhatsApp (catégorie authentication) 0,005 € —les tarifs de conversation de Meta sont à part— et par Telegram 0,010 €. Prépayé en euros, sans abonnement et avec un solde qui n’expire pas.

Puis-je envoyer le code de vérification par WhatsApp ?

Oui. WhatsApp Business API dispose d’une catégorie de modèle spécifique aux codes de vérification (authentication), avec un bouton de remplissage automatique sur le mobile. Avec notre API, vous envoyez le même OTP par SMS ou par WhatsApp en changeant un seul champ du JSON.

Que se passe-t-il si le SMS contenant le code n’arrive pas ?

Les webhooks de statut vous préviennent en quelques secondes si le SMS échoue et votre backend peut lancer un second appel à /verify/start avec un autre canal. Pour le dire sans fioritures : c’est vous qui décidez et déclenchez le changement de canal, la plateforme ne bascule pas d’elle-même. Ce que vous pouvez configurer, c’est un fournisseur de secours au sein du même canal, si vous en avez souscrit un second : la plateforme réessaie par celui-ci.

L’API /verify est-elle disponible ?

Oui. POST /api/v1/verify/start génère le code, l’envoie par le canal indiqué et renvoie la vérification en attente ; POST /api/v1/verify/check le vérifie (un code erroné est un 200 avec status: invalid, pas un 4xx). Expiration configurable de 60 à 900 secondes, longueur de 4 à 8 chiffres et 5 tentatives par code. Le basculement automatique entre canaux reste une fonction prévue, sans date.

Mettez en place dès aujourd’hui votre vérification OTP par SMS, WhatsApp ou Telegram

Créer le compte est gratuit et sans carte bancaire. Dès que vous vérifiez votre e-mail, le compte s’ouvre de lui-même en mode sandbox pour intégrer sans dépenser, pendant que nous examinons chaque inscription à la main avant d’ouvrir l’envoi réel et les paiements. Solde sans expiration et prix publiés, hors TVA.