Saltar al contenido
OmniChannels.ai

Herramienta gratuita

Generador de mensajes OTP para SMS y WhatsApp

Cree un mensaje con código de verificación que quepa en un solo SMS, se autocomplete en Android y iPhone y cumpla la plantilla de autenticación de WhatsApp de Meta. Incluye recuento de segmentos, código de API listo para enviar y una lista de seguridad.

Gratis · sin registro · en su navegador

Aparece en el mensaje. Sea breve: cada carácter cuenta para que quepa en un SMS.

min
Tipo de código
Código de ejemplo 482913
Canal

Estándar (código primero)

482913 es su codigo de verificacion de OmniDemo. Caduca en 5 minutos. No lo comparta con nadie.

GSM-7 · 95 caracteres · 1 SMS

Corto

OmniDemo: su codigo es 482913. Valido 5 min. No lo comparta.

GSM-7 · 60 caracteres · 1 SMS

Restablecer contraseña

482913 es su codigo para restablecer la contraseña de OmniDemo. Caduca en 5 minutos. Si no lo solicito, ignore este mensaje.

GSM-7 · 124 caracteres · 1 SMS

Fuentes: documentación de Google SMS Retriever, especificación WICG de códigos vinculados al origen, documentación de Apple Password AutoFill, plantillas de autenticación de Meta (verificado el 10/10/2026).

¿Necesita OTP por SMS, WhatsApp y voz con respaldo automático y una sola factura? Ver OTP y notificaciones

Nada de lo que escriba se envía a nuestros servidores.

Respuesta breve

Un buen SMS OTP pone el código primero, nombra la marca, indica la caducidad y advierte que no se comparta, por ejemplo: «482913 es su codigo de Acme. Caduca en 5 minutos. No lo comparta con nadie.» Manténgalo en un segmento (160 caracteres GSM-7 o 70 Unicode) y sin enlaces. Para autocompletar en Android, añada el hash de 11 caracteres de la app; para iOS y web, termine con «@sudominio.com #482913».

Cómo crear un mensaje OTP

  1. 1

    Indique la marca y las reglas del código

    Escriba el nombre de su app o marca, elija una longitud de 4 a 8 caracteres, solo dígitos o letras y dígitos, y los minutos de validez.

  2. 2

    Elija idioma y canal

    Inglés, árabe, francés, español, alemán o portugués, y luego SMS, WhatsApp o ambos. El árabe se cuenta como Unicode (70 caracteres por SMS).

  3. 3

    Añada los datos de autocompletado

    Si lo desea, pegue el hash de 11 caracteres de su app Android y su dominio. La herramienta crea los formatos SMS Retriever, vinculado al dominio y combinado, y comprueba el límite de 140 bytes.

  4. 4

    Copie el mensaje o el código

    Copie una variante de SMS, el JSON de la plantilla de WhatsApp o una solicitud cURL o Node.js para nuestra API de SMS, y revise la lista de seguridad antes de pasar a producción.

Qué incluye una buena plantilla de SMS OTP

Un mensaje de verificación tiene un solo objetivo: hacer llegar el código correcto a la persona correcta, rápido y sin facilitar el abuso. La mayoría de los usuarios lee el código en la notificación de la pantalla de bloqueo, que solo muestra más o menos la primera línea. Por eso conviene poner el código al principio o casi y dejar clara la marca, para que el usuario sepa qué servicio lo envía.

La longitud influye en el coste y en la fiabilidad. Un SMS GSM-7 admite 160 caracteres y, al dividirse, 153 por parte. Un solo carácter fuera del alfabeto GSM-7 (una letra árabe, un emoji, un apóstrofo tipográfico o una vocal con tilde como «ó» o «á») convierte todo el mensaje a UCS-2: 70 caracteres, o 67 por parte. Por eso «código» con tilde ya obliga a usar Unicode. Un OTP en dos partes cuesta el doble. El generador muestra la codificación y los segmentos de cada variante y puede sustituir las letras acentuadas para mantener el mensaje en GSM-7.

  • Código al inicio: «482913 es su codigo de Acme» se ve en la vista previa de la notificación.
  • Nombre de la marca: indica qué servicio envía el código y dificulta el phishing.
  • Caducidad: «Caduca en 5 minutos» fija expectativas y limita el uso indebido.
  • Advertencia: «No comparta este código con nadie, ni siquiera con nuestro personal.»
  • Sin enlaces: los operadores suelen filtrar OTP con URL, y los enlaces acostumbran al usuario al phishing.

Autocompletado en Android: el formato SMS Retriever

La API SMS Retriever de Google permite que una app Android lea el SMS de verificación sin el permiso de SMS y sin que el usuario escriba nada. Según la documentación de Google, el mensaje no debe superar los 140 bytes, debe contener el código de un solo uso e incluir una cadena hash de 11 caracteres que identifica la app. Esos 140 bytes equivalen a 160 caracteres GSM-7 o 70 UCS-2, así que en la práctica el mensaje debe caber en un solo SMS.

El hash son los primeros 11 caracteres de un hash SHA-256 en base64 calculado a partir del nombre del paquete y del certificado de firma. El ejemplo de Google lo coloca en su propia línea al final: «Your ExampleApp code is: 123ABC78», una línea en blanco y «FA+9qCX9VSu». Calcúlelo con el keystore de producción y guárdelo fijo en el servidor; Google desaconseja usar hashes calculados en el cliente. Versiones antiguas de la documentación exigían empezar el mensaje con «<#>»; la página actual ya no menciona ese prefijo, que no causa problemas pero ocupa 4 caracteres. Si no controla el formato del mensaje, la alternativa es la API SMS User Consent: el usuario autoriza con un toque la lectura de ese único mensaje.

iPhone y web: códigos vinculados al dominio

iOS y macOS detectan los códigos en los SMS entrantes y los sugieren sobre el teclado cuando el campo está marcado como código de un solo uso: textContentType = .oneTimeCode en una app nativa o autocomplete="one-time-code" en un campo HTML, según la documentación para desarrolladores de Apple. Desde iOS 14 y macOS Big Sur, Safari también admite códigos vinculados al origen, definidos en la especificación del WICG «Origin-bound one-time codes delivered via SMS».

En ese formato, la última línea del mensaje es «@example.com #747723»: el dominio precedido de @, exactamente un espacio y el código precedido de #. Un tercer valor opcional, «@embedded.example», indica un sitio incrustado. Puede haber texto legible antes de la última línea, pero cualquier texto entre los valores la invalida. El autocompletado solo ofrece el código en ese dominio o en las apps asociadas a él, lo que dificulta mucho el phishing. El generador también crea un mensaje combinado con el hash de Android y la línea del dominio que cabe en 140 bytes en idiomas con alfabeto latino. En árabe, envíe por separado los formatos de Android e iOS.

Plantillas de autenticación de WhatsApp: qué puede cambiar

WhatsApp exige una plantilla de autenticación para enviar contraseñas de un solo uso, y Meta fija el cuerpo. En español es «Tu código de verificación es *{{1}}*.», y puede añadir la frase de seguridad de Meta («Por tu seguridad, no lo compartas.») y un pie de caducidad («Este código caduca en <N> minutos.»), con code_expiration_minutes entre 1 y 90. Cada idioma usa la traducción fija de Meta. No se admiten URL, contenido multimedia ni emojis.

Usted elige el botón. Copiar código funciona en todas partes. El autocompletado con un toque abre su app Android con el código y requiere el nombre del paquete, el hash de firma y un handshake. El modo sin toque (zero-tap, solo Android) no tiene botón: WhatsApp envía el código directamente a su app. En iOS 26 y posteriores, las sugerencias del teclado ofrecen el código desde la notificación sin integración. El código admite hasta 15 caracteres y aparece dos veces en la solicitud de envío: como parámetro del cuerpo y del botón (sub_type «url»). El texto del botón de copiar admite 25 caracteres. Configure message_send_ttl_seconds para que no lleguen códigos caducados. En la API de Cloud, estos mensajes solo se entregan en el dispositivo principal del usuario.

Lista de seguridad y estrategia de respaldo

El mensaje es lo fácil; el fraude y los sobrecostes vienen de las reglas que lo rodean. Estas son recomendaciones habituales, no obligaciones legales: adapte las cifras a su nivel de riesgo.

Envíe en cascada: primero WhatsApp si el usuario lo tiene, después SMS tras un breve plazo (por ejemplo 30 a 60 segundos sin informe de entrega (DLR)) y, como último recurso, una llamada de voz que lea el código para fijos y zonas con poca cobertura. En el Golfo, el OTP es tráfico transaccional: no se aplican reglas promocionales como el prefijo «AD-» de los Emiratos, pero el remitente suele tener que estar registrado. Consulte la normativa local antes del lanzamiento.

  • 6 dígitos es lo habitual; genere los códigos con un generador aleatorio criptográficamente seguro.
  • Validez corta (5 a 10 minutos), un solo uso y guarde solo un hash del código.
  • Limite los envíos por número y por IP, imponga una espera para reenviar y bloquee tras unos 5 intentos fallidos.
  • Evite el SMS pumping (tráfico inflado artificialmente) permitiendo solo los países de destino que atiende.
  • Nunca ponga el código en un enlace o URL ni pida al usuario que se lo dicte a un agente.

Preguntas sobre mensajes OTP

¿Cuál es el mejor formato de SMS OTP?

Código primero, marca, caducidad y advertencia de no compartir, en un segmento y sin enlaces: «482913 es su codigo de Acme. Caduca en 5 minutos. No lo comparta con nadie.» Añada una línea con el hash de la app para Android y «@sudominio.com #482913» como última línea para iOS y web.

¿Cuánto puede medir un SMS OTP?

Procure un solo segmento: 160 caracteres en GSM-7 o 70 en Unicode (por ejemplo, árabe o español con tildes). SMS Retriever de Google limita el mensaje a 140 bytes, que equivale al mismo límite de un SMS. Los mensajes más largos se dividen en partes de 153 o 67 caracteres y se cobra cada una.

¿El autocompletado de Android sigue necesitando el prefijo <#>?

No. La documentación actual de SMS Retriever pide tres cosas: un máximo de 140 bytes, el código de un solo uso y el hash de la app de 11 caracteres. El prefijo «<#>» procede de indicaciones antiguas; mantenerlo no causa problemas, pero ocupa 4 caracteres.

¿Cómo hago que un OTP se autocomplete en iPhone?

Marque el campo como código de un solo uso (textContentType .oneTimeCode en apps, autocomplete="one-time-code" en web). iOS sugerirá entonces los códigos recibidos en Mensajes. Para vincular el código a su sitio, termine el SMS con «@sudominio.com #123456», con exactamente un espacio entre ambos valores.

¿Puedo personalizar el texto de una plantilla de autenticación de WhatsApp?

No. Meta fija el cuerpo («Tu código de verificación es…») y lo traduce a cada idioma. Solo puede añadir la frase de seguridad, un pie de caducidad de 1 a 90 minutos y elegir botón de copiar código, un toque o sin toque. No se permiten URL, multimedia ni emojis.

¿Conviene enviar los OTP por WhatsApp o por SMS?

Por ambos. WhatsApp ofrece botones de copiar y autocompletar con un toque y muestra el nombre verificado de la empresa; el SMS llega a cualquier teléfono, con o sin datos. Un esquema habitual intenta WhatsApp, pasa a SMS tras 30 a 60 segundos sin entrega y ofrece una llamada de voz al final.

¿Por qué mi OTP en español sale en Unicode?

Las vocales con tilde (á, í, ó, ú) y la ç no forman parte del alfabeto GSM-7, así que una sola convierte el mensaje a UCS-2, con 70 caracteres por SMS. Escriba «codigo» sin tilde o active la sustitución de acentos del generador para volver a 160 caracteres.

¿Es seguro poner un enlace de inicio de sesión en un SMS OTP?

Es mejor evitarlo. Los enlaces en mensajes de verificación facilitan el phishing, los operadores los filtran con más frecuencia y acostumbran al usuario a tocar enlaces en los SMS. Envíe solo el código y deje que el usuario lo escriba o lo autocomplete.

Más herramientas gratuitas