# API OTP gratis: SMS, WhatsApp o email, ¿dónde está el truco?

> Twilio Verify cobra 0,05 $ por código antes del SMS. Envía códigos de acceso por WhatsApp, SMS o email gratis, con el código, un prompt y los límites.

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

Guía para builders

# OTP gratis para tu SaaS:  
_códigos de acceso por WhatsApp, SMS o email, sin coste por código_

Twilio Verify cobra 0,05 $ por cada código validado, más el SMS. Para un side project o un SaaS que empieza, puedes enviar los mismos códigos desde tu propio número de WhatsApp, tu móvil Android o tu correo con una llamada gratis a la API. Aquí tienes el código, el prompt para tu herramienta de código con IA y el punto en que un servicio de verificación de pago empieza a compensar.

[Consigue una clave API gratis](https://app.unlimitedmessaging.app)[Ver precios](https://unlimitedmessaging.app/es/pricing)

La respuesta corta

## ¿Se pueden enviar códigos OTP gratis?

Sí. Tu backend genera el código, guarda su hash y lo envía con una llamada POST /message a Unlimited Messaging, que lo entrega desde tu propio número de WhatsApp, la SIM de tu móvil Android o tu correo. El plan gratis no cobra por código ni tiene tope de mensajes. El truco: una breve firma en cada mensaje y un ritmo de envío humano que no encaja con picos enormes.

La vía habitual es una API de verificación. Twilio Verify cobra 0,05 $ por verificación correcta más el coste del canal: 0,0083 $ por SMS en EE. UU., unos 58 $ por 1.000 accesos. Montarlo tú sobre una API de SMS pura sale más barato por mensaje (0,0083 $ más un recargo del operador en EE. UU.), pero exige el registro A2P 10DLC antes del primer SMS.

Para un SaaS indie, la lógica del código es lo fácil: unas 30 líneas para enviar y verificar, aquí abajo. Lo que cuesta dinero es la entrega. Enviar desde cuentas que ya tienes elimina esa partida: WhatsApp desde tu número (sin plantilla de autenticación de Meta), SMS con tu tarifa, email desde Gmail o el correo de tu dominio.

Esta página es la guía práctica. Si buscas los argumentos de WhatsApp frente al SMS (entrega, SIM swap, SMS pumping), lee el artículo sobre OTP por WhatsApp enlazado abajo. Precios consultados en las páginas de cada proveedor el 9 de noviembre de 2026.

Relacionado: [por qué el OTP por WhatsApp supera a los códigos SMS](https://unlimitedmessaging.app/es/articles/otp), [una API de SMS gratis desde tu móvil](https://unlimitedmessaging.app/es/articles/free-sms-api) y [enviar desde Gmail con una contraseña de aplicación](https://unlimitedmessaging.app/es/articles/gmail-imap-smtp-app-password).

![Ilustración: un código de verificación de seis dígitos bajo un candado, con el titular «Códigos sin pagar por código».](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Ffree-otp-sms-whatsapp-saas-es.png&w=3840&q=75)

Definición
OTP (contraseña de un solo uso)

Un código corto, normalmente de 6 dígitos, válido unos minutos y una sola vez, que se envía a un número o a un email para demostrar que el usuario lo controla. Sirve para verificar registros, entrar sin contraseña (código mágico) y la autenticación en dos pasos (2FA).

También llamado: código de verificación, código 2FA, código mágico, código de un solo uso.

[Fuente: precios de Twilio Verify↗](https://www.twilio.com/en-us/verify/pricing)

La factura

## ¿Cuánto cuesta un OTP con las API habituales?

Por código y para 1.000 accesos correctos al mes, números de EE. UU. Verify solo cobra las verificaciones correctas; el SMS puro cobra cada envío.

__¿Cuánto cuesta un OTP con las API habituales?__
| Coste por código                       | 1.000 códigos al mes                                 | Qué tienes que configurar                  |                                                                       |
| -------------------------------------- | ---------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------- |
| Twilio Verify, SMS                     | 0,05 $ + 0,0083 $ por SMS                            | Unos 58 $                                  | Cuenta de Twilio, servicio Verify; protección antifraude incluida     |
| Twilio Verify, WhatsApp                | 0,05 $ + la tarifa de autenticación de Meta          | Desde unos 53 $                            | Remitente de WhatsApp aprobado por Meta                               |
| API de SMS de Twilio, tu propio código | 0,0083 $ + recargo del operador (0,0035 $ a 0,005 $) | Unos 12 $ a 13 $                           | Registro A2P 10DLC de marca y campaña                                 |
| Resend, códigos por email              | 0 $ en el plan gratis                                | 0 $ mientras no pases de 100 emails al día | Registros DNS en tu dominio                                           |
| Unlimited Messaging Free               | 0 € en WhatsApp, SMS y email                         | 0 €                                        | Vincula tu número, móvil o correo; los códigos llevan una breve firma |
| Unlimited Messaging Medium             | 19 € al mes fijos, sin coste por código              | 19 €                                       | Misma configuración, sin firma                                        |

Precios de Twilio Verify, SMS y WhatsApp en las páginas de precios de Twilio y de Resend en resend.com/pricing, consultados el 9 de noviembre de 2026\. La tarifa de autenticación de Meta depende del país del destinatario (Twilio indica utility y authentication desde 0,0034 $). Los SMS enviados con Unlimited Messaging se descuentan de tu propia tarifa móvil.

La receta

## ¿Cómo se construye la verificación OTP en cuatro pasos?

La misma lógica sirve para SMS, WhatsApp y email; solo cambia el canal de la petición.

1. 01  
### Generar y guardar  
Crea un código de 6 dígitos con un generador aleatorio criptográfico y guarda solo su hash, con una caducidad de unos 5 minutos y un contador de intentos.
2. 02  
### Enviar en una llamada  
POST /message con to: { phone } o { email } y el canal que eligió el usuario: WHATSAPP, SMS o EMAIL.
3. 03  
### Verificar  
Calcula el hash de lo que escribió el usuario, compara en tiempo constante, rechaza los códigos caducados y bloquea tras 5 fallos. Borra el código cuando se use.
4. 04  
### Limitar la frecuencia  
Un código nuevo por minuto y usuario, y unos pocos por hora e IP. Frena el SMS pumping y evita que tu número parezca de spam.

dígitos, suficientes con bloqueo a los 5 intentos

6dígitos, suficientes con bloqueo a los 5 intentos

vida típica de un código

5 minvida típica de un código

llamada a la API para enviar por cualquier canal

1llamada a la API para enviar por cualquier canal

El código

## ¿Cómo es el código de envío y verificación?

Dos route handlers en TypeScript (estilo Next.js App Router; la misma lógica vale para Express, Hono o una edge function de Supabase). Sustituye db por tu propio almacenamiento.

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} es tu código de verificación de Acme. Caduca en 5 minutos.`,
    }),
  });

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

Genera el código, guarda su hash 5 minutos y lo envía por WhatsApp. Usa el canal 'SMS', o to: { email } con 'EMAIL', para los otros canales.

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 });
}
```

Comprueba caducidad e intentos, compara los hashes en tiempo constante y borra el código tras el éxito.

Prompt para Lovable, Bolt, v0, Cursor o Claude CodePrompt

```
Añade a esta app códigos de verificación (OTP) por teléfono y email con Unlimited Messaging. Lee UM_API_KEY solo del entorno del servidor. Crea dos rutas de servidor. 1) POST /api/otp/send: recibe { phone } o { email } y channel ('WHATSAPP', 'SMS' o 'EMAIL'); genera un código de 6 dígitos con crypto.randomInt, guarda su hash SHA-256 con caducidad de 5 minutos y un contador de intentos, permite un código nuevo por minuto y usuario; envíalo con POST https://api.unlimitedmessaging.app/message, cabecera Authorization: Bearer UM_API_KEY, cuerpo { to: { phone } o { email }, channels: [{ channel }], subject (solo email), text: '<código> es tu código de verificación. Caduca en 5 minutos.' }. 2) POST /api/otp/verify: compara los hashes con crypto.timingSafeEqual, rechaza códigos caducados, bloquea tras 5 fallos y borra el código si es correcto. Añade una interfaz sencilla: elegir WhatsApp, SMS o email, escribir el destino y luego un campo de 6 dígitos. Referencia: https://unlimitedmessaging.app/llms-full.txt
```

Pégalo en tu herramienta de código con IA. Necesita una clave API de Unlimited Messaging guardada como secreto del servidor y un número de WhatsApp, un móvil Android o un correo vinculados.

El canal

## WhatsApp, SMS o email: ¿qué canal debe llevar el código?

Deja que el usuario elija cuando puedas. Cada canal tiene un alcance y un límite distintos.

__WhatsApp, SMS o email: ¿qué canal debe llevar el código?__
| WhatsApp                      | SMS                                           | Email                                  |                                               |
| ----------------------------- | --------------------------------------------- | -------------------------------------- | --------------------------------------------- |
| El usuario necesita           | Una cuenta de WhatsApp en ese número          | Cualquier número móvil                 | Un correo que pueda abrir                     |
| Se envía desde                | Tu número de WhatsApp vinculado               | La SIM de tu móvil Android             | Tu Gmail o el correo de tu dominio            |
| Coste con Unlimited Messaging | Sin coste por mensaje                         | Tu tarifa móvil                        | Sin coste por mensaje                         |
| Límite de ritmo               | Ritmo humano, envíos espaciados               | 30 SMS cada 30 minutos (Android)       | 500 al día en Gmail, 2.000 en Workspace       |
| Ideal para                    | Usuarios internacionales, acceso por teléfono | Usuarios sin WhatsApp, números locales | Verificar registros, acceso con código mágico |

[![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fotp-es.png&w=3840&q=75)Artículo relacionadoOTP por WhatsApp: por qué tus códigos SMS te cuestan tantoEntrega, SIM swap y SMS pumping: los argumentos para enviar los códigos de verificación por WhatsApp en lugar de SMS.Leer el artículo→](https://unlimitedmessaging.app/es/articles/otp)

Juego limpio

## ¿Cuándo no basta una solución OTP gratis?

La entrega gratis desde tus propias cuentas encaja con un side project o un SaaS que empieza. Estos son los casos en que una API de verificación de pago se gana lo que cuesta.

1. 01  
### Picos del día de lanzamiento  
Android pide confirmación a partir de 30 SMS en 30 minutos, y los WhatsApp salen a ritmo humano. Cientos de códigos por minuto son cosa de Twilio Verify o un servicio parecido.
2. 02  
### Una firma en el plan gratis  
En el plan gratis, cada código termina con "Sent with UnlimitedMessaging.app". El plan Medium a 19 € al mes la quita.
3. 03  
### WhatsApp no es oficial  
Tu número se vincula como un dispositivo, así que no hay plantilla de autenticación de Meta ni botón de copiar código. El abuso puede hacer que bloqueen el número: limita cada envío.
4. 04  
### Sin escudo antifraude incluido  
Los servicios Verify detectan por ti el SMS pumping y los registros de bots. Con tus propias cuentas, los límites de frecuencia y un CAPTCHA en la ruta de envío son cosa tuya.
5. 05  
### 2FA de alta seguridad  
El NIST SP 800-63B clasifica el OTP por la red telefónica como autenticador restringido. Para cuentas de administración, ofrece una app de autenticación (TOTP) o passkeys, que no necesitan ningún mensaje.

Regla práctica

### Gratis hasta que los códigos lleguen en ráfagas

Por debajo de unos cientos de códigos al día, enviar desde tu WhatsApp, tu móvil o tu correo no cuesta nada y cabe en una llamada a la API. Cuando los registros se disparen o crezcan los requisitos de seguridad, pasa el OTP a una API de verificación y deja Unlimited Messaging para el resto de tus mensajes.

FAQ

## Preguntas sobre API OTP gratis

Sí, con condiciones. El plan gratis de Unlimited Messaging envía códigos por WhatsApp, SMS o email desde tus propias cuentas sin coste por código ni tope de mensajes; cada mensaje lleva una breve firma. Resend envía códigos por email gratis hasta 100 al día. Twilio Verify no tiene plan gratis: 0,05 $ por verificación correcta más el coste del canal.

No en un proveedor que usa rutas de operador, porque cobra cada SMS. Unlimited Messaging envía los SMS desde tu propio móvil Android con una app gratis, así que cada código se descuenta de tu tarifa en lugar de tener un precio por SMS.

En la plataforma oficial de Meta, no: las plantillas de autenticación se cobran por mensaje y no tienen nivel gratis mensual. Con Unlimited Messaging, los códigos salen de tu propio número vinculado sin coste por mensaje, de forma no oficial.

Una petición con varios canales envía un mensaje por cada uno. Para tener un plan B, envía primero por WhatsApp y ofrece un botón "recibir por SMS" que vuelva a llamar a la API con el canal SMS.

Pega el prompt de esta página, añade UM\_API\_KEY como secreto del servidor y comprueba que el código generado mantiene la clave en el servidor, guarda los códigos con hash y limita la frecuencia de la ruta de envío.

No. El artículo sobre OTP por WhatsApp explica por qué los códigos por WhatsApp superan al SMS en coste y entrega. Esta página es la versión práctica para builders: el código, el prompt y los límites, en los tres canales.

Fuentes

## Fuentes y referencias

Para verificar por ti mismo la información de este artículo:

1. [01Precios de Verify (0,05 $ por verificación correcta más el coste del canal)↗Twilio](https://www.twilio.com/en-us/verify/pricing)
2. [02Precios de SMS en Estados Unidos (0,0083 $ por segmento, recargos del operador)↗Twilio](https://www.twilio.com/en-us/sms/pricing/us)
3. [03Precios de WhatsApp (0,005 $ por mensaje más la tarifa de plantilla de Meta)↗Twilio](https://www.twilio.com/en-us/whatsapp/pricing)
4. [04Registro de marca A2P 10DLC↗Twilio Docs](https://www.twilio.com/docs/trust-hub/registrations/a2p-10dlc-brand)
5. [05Precios de WhatsApp Business Platform (categoría authentication, nivel gratis solo para mensajes de servicio)↗Meta for Developers](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing)
6. [06Precios de Resend (gratis: 3.000 emails al mes, 100 al día)↗Resend](https://resend.com/pricing)
7. [07SmsUsageMonitor (umbral de 30 SMS en 30 minutos)↗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, autenticadores fuera de banda por la red telefónica (restringidos)↗NIST](https://pages.nist.gov/800-63-3/sp800-63b.html)

![Ilian, ingeniero de software senior](https://ilianazz.com/images/iliazz.png)

Escrito por

[Ilian](https://unlimitedmessaging.app/es/authors/ilian) · Ingeniero de software senior

Ingeniero de software senior, funda y dirige varias empresas tecnológicas. Diseña productos en torno a las API de mensajería, la automatización y la integración de la IA, y comparte aquí lo que aprende construyendo.

[Ver el perfil de LinkedIn↗](https://www.linkedin.com/in/ilianAzz/)Actualizado el 9 de noviembre de 2026

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

## Códigos de acceso hoy mismo, sin pagar por código.

Vincula tu número de WhatsApp, tu móvil Android o tu correo, crea una clave API y envía tu primer código de verificación gratis.

[Empieza gratis→](https://app.unlimitedmessaging.app)

Artículos similares
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fotp-es.png&w=3840&q=75)¿Por qué enviar tus códigos OTP por WhatsApp y no por SMS?Entrega contraseñas de un solo uso y códigos 2FA via WhatsApp.](https://unlimitedmessaging.app/es/articles/otp)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Ffree-sms-api-es.png&w=3840&q=75)API SMS gratis: lo que es gratis, y lo que solo es una pruebaFreePrueba de Twilio, clave gratuita de Textbelt y pasarelas Android que envían con tu tarifa: la comparativa honesta.](https://unlimitedmessaging.app/es/articles/free-sms-api)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Femail-whatsapp-single-api-request-es.png&w=3840&q=75)Una petición API, dos canales: email y WhatsApp a la vezEnvía el mismo mensaje por WhatsApp y por email en una llamada, desde tu número y tu buzón, gratis en todos los planes.](https://unlimitedmessaging.app/es/articles/email-whatsapp-single-api-request)
