# API OTP gratuite : SMS, WhatsApp ou email, où est le piège ?

> Twilio Verify facture 0,05 $ par code avant le SMS. Envoyez vos codes de connexion par WhatsApp, SMS ou email gratuitement : code, prompt et limites.

Source: https://unlimitedmessaging.app/fr/articles/free-otp-sms-whatsapp-saas

Guide builder

# OTP gratuit pour votre SaaS :  
_codes de connexion par WhatsApp, SMS ou email, sans frais par code_

Twilio Verify facture 0,05 $ chaque code validé, plus le SMS. Pour un side project ou un SaaS qui démarre, vous pouvez envoyer les mêmes codes depuis votre propre numéro WhatsApp, votre téléphone Android ou votre boîte mail, en un appel d'API gratuit. Voici le code, le prompt pour votre outil de code IA, et le moment où un service de vérification payant devient rentable.

[Obtenir une clé API gratuite](https://app.unlimitedmessaging.app)[Voir les tarifs](https://unlimitedmessaging.app/fr/pricing)

La réponse courte

## Peut-on envoyer des codes OTP gratuitement ?

Oui. Votre backend génère le code, stocke son empreinte et l'envoie en un appel POST /message à Unlimited Messaging, qui le livre depuis votre propre numéro WhatsApp, la SIM de votre téléphone Android ou votre boîte mail. Le plan gratuit n'a ni frais par code ni plafond de messages. Le piège : une courte mention sur chaque message, et un rythme d'envoi humain qui ne convient pas aux énormes pics.

La voie habituelle, c'est une API de vérification. Twilio Verify facture 0,05 $ par vérification réussie plus le coût du canal : 0,0083 $ par SMS aux États-Unis, soit environ 58 $ pour 1 000 connexions. Le faire soi-même sur une API SMS brute coûte moins cher par message (0,0083 $ plus des frais opérateur aux États-Unis) mais impose l'enregistrement A2P 10DLC avant le premier SMS.

Pour un SaaS indépendant, la logique du code est la partie facile : une trentaine de lignes pour l'envoi et la vérification, ci-dessous. Ce qui coûte, c'est la livraison. Envoyer depuis des comptes que vous avez déjà supprime cette ligne : WhatsApp depuis votre numéro (sans modèle d'authentification Meta), SMS sur votre forfait, email depuis Gmail ou la boîte de votre domaine.

Cette page est le guide pratique. Si vous voulez les arguments pour WhatsApp face au SMS (taux de livraison, SIM swap, SMS pumping), lisez l'article sur l'OTP WhatsApp en lien ci-dessous. Prix relevés sur les pages des fournisseurs le 9 novembre 2026.

À lire aussi : [pourquoi l'OTP WhatsApp bat les codes SMS](https://unlimitedmessaging.app/fr/articles/otp), [une API SMS gratuite depuis votre téléphone](https://unlimitedmessaging.app/fr/articles/free-sms-api) et [envoyer depuis Gmail avec un mot de passe d'application](https://unlimitedmessaging.app/fr/articles/gmail-imap-smtp-app-password).

![Illustration : un code de vérification à six chiffres sous un cadenas, avec le titre « Des codes sans frais par code ».](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Ffree-otp-sms-whatsapp-saas-fr.png&w=3840&q=75)

Définition
OTP (mot de passe à usage unique)

Un code court, en général 6 chiffres, valable quelques minutes et une seule fois, envoyé à un numéro ou une adresse email pour prouver que l'utilisateur les contrôle. Sert à vérifier une inscription, à se connecter sans mot de passe (code magique) et à la double authentification (2FA).

Aussi appelé : code de vérification, code 2FA, code magique, code à usage unique.

[Source : tarifs Twilio Verify↗](https://www.twilio.com/en-us/verify/pricing)

La facture

## Combien coûte un OTP avec les API habituelles ?

Par code et pour 1 000 connexions réussies par mois, numéros américains. Verify ne facture que les vérifications réussies ; le SMS brut facture chaque envoi.

__Combien coûte un OTP avec les API habituelles ?__
| Coût par code                     | 1 000 codes par mois                            | Ce qu'il faut mettre en place                     |                                                                                   |
| --------------------------------- | ----------------------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------- |
| Twilio Verify, SMS                | 0,05 $ + 0,0083 $ par SMS                       | Environ 58 $                                      | Compte Twilio, service Verify ; protection anti-fraude incluse                    |
| Twilio Verify, WhatsApp           | 0,05 $ + frais d'authentification Meta          | À partir d'environ 53 $                           | Expéditeur WhatsApp approuvé par Meta                                             |
| API SMS Twilio, votre propre code | 0,0083 $ + frais opérateur (0,0035 $ à 0,005 $) | Environ 12 $ à 13 $                               | Enregistrement A2P 10DLC de la marque et de la campagne                           |
| Resend, codes par email           | 0 $ sur le plan gratuit                         | 0 $ tant que vous restez sous 100 emails par jour | Enregistrements DNS sur votre domaine                                             |
| Unlimited Messaging Free          | 0 € sur WhatsApp, SMS et email                  | 0 €                                               | Liez votre numéro, téléphone ou boîte mail ; les codes portent une courte mention |
| Unlimited Messaging Medium        | 19 € par mois forfaitaire, sans frais par code  | 19 €                                              | Même configuration, mention retirée                                               |

Prix Twilio Verify, SMS et WhatsApp relevés sur les pages tarifs de Twilio, Resend sur resend.com/pricing, le 9 novembre 2026\. Les frais d'authentification Meta dépendent du pays du destinataire (Twilio indique utility et authentication à partir de 0,0034 $). Les SMS envoyés via Unlimited Messaging sont décomptés de votre propre forfait.

La recette

## Comment construire une vérification OTP en quatre étapes ?

La même logique marche pour SMS, WhatsApp et email ; seul le canal de la requête change.

1. 01  
### Générer et stocker  
Créez un code à 6 chiffres avec un générateur aléatoire cryptographique, ne stockez que son empreinte, avec une expiration d'environ 5 minutes et un compteur de tentatives.
2. 02  
### Envoyer en un appel  
POST /message avec to: { phone } ou { email } et le canal choisi par l'utilisateur : WHATSAPP, SMS ou EMAIL.
3. 03  
### Vérifier  
Hachez ce que l'utilisateur a saisi, comparez en temps constant, refusez les codes expirés et bloquez après 5 erreurs. Supprimez le code une fois utilisé.
4. 04  
### Limiter le débit  
Un nouveau code par minute et par utilisateur, quelques-uns par heure et par IP. Cela bloque le SMS pumping et évite que votre numéro ressemble à un spammeur.

chiffres, suffisant avec un blocage à 5 essais

6chiffres, suffisant avec un blocage à 5 essais

durée de vie typique d'un code

5 mindurée de vie typique d'un code

appel d'API pour envoyer sur n'importe quel canal

1appel d'API pour envoyer sur n'importe quel canal

Le code

## À quoi ressemble le code d'envoi et de vérification ?

Deux route handlers en TypeScript (style Next.js App Router ; la même logique s'adapte à Express, Hono ou une edge function Supabase). Remplacez db par votre propre stockage.

POST /api/otp/sendTypeScript

```
// app/api/otp/send/route.ts
import { createHash, randomInt } from 'node:crypto';
import { db } from '@/lib/db'; // your own storage

export async function POST(req: Request) {
  const { phone } = await req.json();
  const code = String(randomInt(0, 1_000_000)).padStart(6, '0');

  await db.otp.save(phone, {
    hash: createHash('sha256').update(code).digest('hex'),
    expiresAt: Date.now() + 5 * 60_000,
    attempts: 0,
  });

  await fetch('https://api.unlimitedmessaging.app/message', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.UM_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      to: { phone },
      channels: [{ channel: 'WHATSAPP' }],
      text: `${code} est votre code de vérification Acme. Il expire dans 5 minutes.`,
    }),
  });

  return Response.json({ sent: true });
}
```

Génère le code, stocke son empreinte 5 minutes et l'envoie par WhatsApp. Utilisez le canal 'SMS', ou to: { email } avec 'EMAIL', pour les autres canaux.

POST /api/otp/verifyTypeScript

```
// app/api/otp/verify/route.ts
import { createHash, timingSafeEqual } from 'node:crypto';
import { db } from '@/lib/db';

export async function POST(req: Request) {
  const { phone, code } = await req.json();
  const row = await db.otp.get(phone);

  if (!row || row.expiresAt < Date.now() || row.attempts >= 5) {
    return Response.json({ ok: false }, { status: 400 });
  }

  const hash = createHash('sha256').update(String(code)).digest('hex');
  if (!timingSafeEqual(Buffer.from(hash), Buffer.from(row.hash))) {
    await db.otp.incrementAttempts(phone);
    return Response.json({ ok: false }, { status: 401 });
  }

  await db.otp.delete(phone);
  return Response.json({ ok: true });
}
```

Vérifie l'expiration et les tentatives, compare les empreintes en temps constant et supprime le code après succès.

Prompt pour Lovable, Bolt, v0, Cursor ou Claude CodePrompt

```
Ajoute à cette application des codes de vérification (OTP) par téléphone et email avec Unlimited Messaging. Lis UM_API_KEY uniquement dans l'environnement serveur. Crée deux routes serveur. 1) POST /api/otp/send : reçoit { phone } ou { email } et channel ('WHATSAPP', 'SMS' ou 'EMAIL') ; génère un code à 6 chiffres avec crypto.randomInt, stocke son empreinte SHA-256 avec une expiration de 5 minutes et un compteur de tentatives, autorise un nouveau code par minute et par utilisateur ; envoie-le avec POST https://api.unlimitedmessaging.app/message, en-tête Authorization: Bearer UM_API_KEY, corps { to: { phone } ou { email }, channels: [{ channel }], subject (email seulement), text: '<code> est votre code de vérification. Il expire dans 5 minutes.' }. 2) POST /api/otp/verify : compare les empreintes avec crypto.timingSafeEqual, refuse les codes expirés, bloque après 5 erreurs, supprime le code en cas de succès. Ajoute une interface simple : choix WhatsApp, SMS ou email, saisie de la destination, puis un champ à 6 chiffres. Référence : https://unlimitedmessaging.app/llms-full.txt
```

Collez-le dans votre outil de code IA. Il faut une clé API Unlimited Messaging stockée comme secret côté serveur, et un numéro WhatsApp, un téléphone Android ou une boîte mail liés.

Le canal

## WhatsApp, SMS ou email : quel canal pour le code ?

Laissez l'utilisateur choisir quand c'est possible. Chaque canal a une portée et une limite différentes.

__WhatsApp, SMS ou email : quel canal pour le code ?__
| WhatsApp                      | SMS                                                  | Email                                      |                                                        |
| ----------------------------- | ---------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------ |
| L'utilisateur a besoin de     | Un compte WhatsApp sur ce numéro                     | N'importe quel numéro mobile               | Une boîte mail qu'il peut ouvrir                       |
| Envoyé depuis                 | Votre numéro WhatsApp lié                            | La SIM de votre téléphone Android          | Votre Gmail ou la boîte de votre domaine               |
| Coût avec Unlimited Messaging | Aucun frais par message                              | Votre forfait opérateur                    | Aucun frais par message                                |
| Limite de rythme              | Rythme humain, envois espacés                        | 30 SMS par 30 minutes (Android)            | 500 par jour sur Gmail, 2 000 sur Workspace            |
| Idéal pour                    | Utilisateurs internationaux, connexion par téléphone | Utilisateurs sans WhatsApp, numéros locaux | Vérification d'inscription, connexion par code magique |

[![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fotp-fr.png&w=3840&q=75)Article liéOTP WhatsApp : pourquoi vos codes SMS vous coûtent trop cherLivraison, SIM swap et SMS pumping : les arguments pour envoyer vos codes de vérification sur WhatsApp plutôt que par SMS.Lire l'article→](https://unlimitedmessaging.app/fr/articles/otp)

Fair-play

## Quand une solution OTP gratuite ne suffit-elle plus ?

La livraison gratuite depuis vos propres comptes convient à un side project ou à un SaaS qui démarre. Voici les cas où une API de vérification payante mérite son prix.

1. 01  
### Les pics du jour de lancement  
Android demande une confirmation au-delà de 30 SMS en 30 minutes, et les messages WhatsApp partent à un rythme humain. Des centaines de codes par minute relèvent de Twilio Verify ou d'un service équivalent.
2. 02  
### Une mention sur le plan gratuit  
Sur le plan gratuit, chaque code se termine par "Sent with UnlimitedMessaging.app". Le plan Medium à 19 € par mois la retire.
3. 03  
### WhatsApp n'est pas officiel  
Votre numéro est lié comme un appareil : pas de modèle d'authentification Meta, pas de bouton copier le code. Un usage abusif peut faire bannir le numéro : limitez chaque envoi.
4. 04  
### Pas de bouclier anti-fraude intégré  
Les services Verify détectent pour vous le SMS pumping et les inscriptions de bots. Avec vos propres comptes, les limites de débit et un CAPTCHA sur la route d'envoi sont à votre charge.
5. 05  
### 2FA à haute sécurité  
Le NIST SP 800-63B classe l'OTP via le réseau téléphonique comme authentificateur restreint. Pour les comptes admin, proposez une app d'authentification (TOTP) ou des passkeys, qui ne demandent aucun message.

Règle simple

### Gratuit jusqu'à ce que les codes arrivent en rafale

Sous quelques centaines de codes par jour, envoyer depuis votre WhatsApp, votre téléphone ou votre boîte mail ne coûte rien et tient en un appel d'API. Quand les inscriptions s'envolent ou que les exigences de sécurité montent, passez l'OTP sur une API de vérification et gardez Unlimited Messaging pour le reste de vos messages.

FAQ

## Questions sur les API OTP gratuites

Oui, sous conditions. Le plan gratuit d'Unlimited Messaging envoie les codes par WhatsApp, SMS ou email depuis vos propres comptes, sans frais par code ni plafond de messages ; chaque message porte une courte mention. Resend envoie gratuitement des codes par email jusqu'à 100 par jour. Twilio Verify n'a pas de plan gratuit : 0,05 $ par vérification réussie plus le coût du canal.

Pas chez un fournisseur qui passe par les routes opérateurs, car chaque SMS est facturé. Unlimited Messaging envoie les SMS depuis votre propre téléphone Android via une app gratuite : chaque code est décompté de votre forfait au lieu d'un prix par SMS.

Sur la plateforme officielle de Meta, non : les modèles d'authentification sont facturés au message, sans palier gratuit mensuel. Via Unlimited Messaging, les codes partent de votre propre numéro lié, sans frais par message, de façon non officielle.

Une requête avec plusieurs canaux envoie un message sur chacun d'eux. Pour une bascule, envoyez d'abord sur WhatsApp et proposez un bouton "recevoir par SMS" qui rappelle l'API avec le canal SMS.

Collez le prompt de cette page, ajoutez UM\_API\_KEY comme secret côté serveur, et vérifiez que le code généré garde la clé côté serveur, hache les codes et limite le débit de la route d'envoi.

Non. L'article sur l'OTP WhatsApp explique pourquoi les codes WhatsApp battent le SMS sur le coût et la livraison. Cette page est la version pratique pour les builders : le code, le prompt et les limites, sur les trois canaux.

Sources

## Sources & références

Pour vérifier par vous-même les informations de cet article :

1. [01Tarifs Verify (0,05 $ par vérification réussie plus coût du canal)↗Twilio](https://www.twilio.com/en-us/verify/pricing)
2. [02Tarifs SMS aux États-Unis (0,0083 $ par segment, frais opérateur)↗Twilio](https://www.twilio.com/en-us/sms/pricing/us)
3. [03Tarifs WhatsApp (0,005 $ par message plus frais de modèle Meta)↗Twilio](https://www.twilio.com/en-us/whatsapp/pricing)
4. [04Enregistrement de marque A2P 10DLC↗Twilio Docs](https://www.twilio.com/docs/trust-hub/registrations/a2p-10dlc-brand)
5. [05Tarifs de la WhatsApp Business Platform (catégorie authentication, palier gratuit réservé aux messages de service)↗Meta for Developers](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing)
6. [06Tarifs Resend (gratuit : 3 000 emails par mois, 100 par jour)↗Resend](https://resend.com/pricing)
7. [07SmsUsageMonitor (seuil de 30 SMS en 30 minutes)↗Android Open Source Project](https://android.googlesource.com/platform/frameworks/opt/telephony/+/refs/heads/main/src/java/com/android/internal/telephony/SmsUsageMonitor.java)
8. [08NIST SP 800-63B, authentificateurs hors bande via le réseau téléphonique (restreints)↗NIST](https://pages.nist.gov/800-63-3/sp800-63b.html)

![Ilian, ingénieur logiciel senior](https://ilianazz.com/images/iliazz.png)

Écrit par

[Ilian](https://unlimitedmessaging.app/fr/authors/ilian) · Senior Software Engineer

Ingénieur logiciel senior, il fonde et dirige plusieurs sociétés tech. Il conçoit des produits autour des API de messagerie, de l’automatisation et de l’intégration de l’IA, et partage ici ce qu’il apprend en construisant.

[Voir le profil LinkedIn↗](https://www.linkedin.com/in/ilianAzz/)Mis à jour le 9 novembre 2026

![](https://unlimitedmessaging.app/assets/logos/whatsapp.svg)![](https://unlimitedmessaging.app/assets/logos/email.svg)![](https://unlimitedmessaging.app/assets/logos/sms.svg)

## Des codes de connexion dès aujourd'hui, sans frais par code.

Liez votre numéro WhatsApp, votre téléphone Android ou votre boîte mail, créez une clé API et envoyez votre premier code de vérification gratuitement.

[Commencer gratuitement→](https://app.unlimitedmessaging.app)

Articles similaires
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fotp-fr.png&w=3840&q=75)Pourquoi envoyer vos codes OTP par WhatsApp plutôt que par SMS ?Envoyez des mots de passe à usage unique et codes 2FA via WhatsApp.](https://unlimitedmessaging.app/fr/articles/otp)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Ffree-sms-api-fr.png&w=3840&q=75)API SMS gratuite : ce qui est gratuit, et ce qui n'est qu'un essaiFreeEssai Twilio, clé gratuite Textbelt et passerelles Android qui envoient sur votre forfait : le comparatif honnête.](https://unlimitedmessaging.app/fr/articles/free-sms-api)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Femail-whatsapp-single-api-request-fr.png&w=3840&q=75)Une requête API, deux canaux : email et WhatsApp d'un coupEnvoyez le même message par WhatsApp et par mail en un appel, depuis votre numéro et votre boîte mail, gratuit sur toutes les offres.](https://unlimitedmessaging.app/fr/articles/email-whatsapp-single-api-request)
