Tutoriales SMS

Guía técnica de un proceso de validación OTP por SMS

10.12.2020
Guía técnica de verificación sms
Guía técnica de un proceso de validación OTP por SMS
5 (100%) 56 votes

Esta Guía técnica de validación por SMS te servirá para poder integrar de forma correcta procesos de validación a través de códigos OTP (One Time Password) enviados en un mensaje SMS.

Guía técnica de un proceso de validación OTP por SMS

En este artículo hablaremos de cómo se debe realizar una validación OTP por SMS explicando todos los aspectos a tener en cuenta. En concreto explicaremos cómo realizar una integración en cualquier software añadiendo un proceso de validación, autenticación, identificación o verificación. 

Puedes consultar más información sobre estos proceso en otro artículo que habla de qué es un sistema de verificación SMS y cuáles eran las ventajas de enviar códigos OTP por SMS

En primer lugar comentar que un proceso de validación por SMS se puede aplicar a multitud tipología de software como son aplicaciones móviles, redes sociales, plataformas web, transacciones económicas, etc. En resumen, cualquier aplicativo que requiera una validación o identificación de un usuario.

Al final de este artículo podrás descargar esta guía en formato documento PDF.

1. Usos más comunes de la validación SMS

La tendencia actual en la que los sistemas tienen usuarios y clientes globales y es necesario incrementara la seguridad e identificar a las personas los códigos OTP SMS se han convertido en una herramienta indispensable.


Los usos más comunes para las validaciones por SMS son:

  • La verificación de teléfonos móviles de un usuario.
  • La identificación de accesos a aplicaciones (procesos de autenticación de doble factor – 2FA).
  • Doble verificación en ciertas acciones o procesos (transacciones económicas, cambios de configuración clave, etc.).
  • Identificación o asociación de un usuario con un teléfono móvil.
  • No duplicidad o multiplicidad de cuentas de usuario.
  • Procesos de recuperación de contraseña.

Para todo este tipo de procesos de validación LabsMobile dispone de dos soluciones que se pueden utilizar de forma indistinta: API JSON y API OTP LabsMobile.

2. API REST JSON genérica

La API JSON es la API SMS generalista con la que podrás enviar mensajes SMS con llamadas REST de tipo POST y variables codificadas en el cuerpo de la llamada HTTP en formato JSON.

Las funcionalidades básicas son enviar mensajes SMS y consultar el estado de los SMS. Además algunas ventajas de este tipo de API es que es compatible con cualquier entorno de programación, que existe muchos ejemplos de código, soporte y recursos online y además, permite un control de todo el proceso y configuración por parte del clientes. Por otro lado, con la API JSON es posible consultar cualquier mensaje enviado, y así ser consecuente con lo que se necesite hacer.

Esta API es fácil de usar y es similar a la de otras plataformas SMS, por lo tanto es fácil el cambio de plataforma según intereses comerciales.

Por contra también tiene algunos inconvenientes como por ejemplo que es necesario por parte del software la utiliza construir todo el proceso de validación almacenando una base de datos de códigos OTP para ser validados posteriormente.

Os dejamos aquí con algunos recursos, documentación y ejemplos de código para poderla implementar: 

3. API OTP específica

LabsMobile ha creado una API específica para crear y gestionar códigos OTP por SMS y para estos procesos de validación. Sus funciones son enviar nuevos códigos OTP, reenviarlos y validarlos.

La principal ventaja de esta API OTP es la seguridad. Con ella se incrementa la seguridad en el proceso ya que se almacenan los códigos OTP en la misma plataforma LabsMobile. Además se simplifica el proceso de validación sin tener que generar o guardar códigos OTP en el software que utiliza la API. Y es compatible con cualquier entorno que pueda generar llamadas REST HTTP/GET.

En cuanto a inconveniente esta API contiene funciones no estándares que añaden un período de adaptación o de aprendizaje. Y además no es posible cambiar o consultar algunos detalles del proceso, cómo por ejemplo el formato de código OTP o el estado o entrega de los mensajes enviados.

Aquí os dejamos con los recursos de la API OTP:

4. Seguridad y autenticación en el envío de códigos OTP por SMS

El primer paso para la integración de un proceso de validación tanto en una API JSON como en una API OTP de LabsMobile es crear una cuenta de usuario en LabsMobile. Esta creación de cuenta requiere de un email en https://www.labsmobile.com/es/registro.

Posteriormente se deben adoptar algunas medidas de seguridad como: 

  • Token API para desvincular el acceso de la cuenta de los envíos API.
  • Cifrado SSL en todas las llamadas a una URL de la API.
  • Filtro por dirección IP del servidor de origen.
  • Conexión siempre desde el backend (nunca desde la interfaz, app móvil o UI de usuario).

La primera medida de seguridad es usar como contraseña un Token API. Éste se puede generar en el panel de control de la cuenta LabsMobile, en la parte superior derecha, en el apartado Mi Cuenta – Seguridad y Contraseñas.

La segunda medida es el Cifrado SSL. En este punto es importante utilizar siempre las URLs de la API con el protocolo HTTPS para el cifrado de los datos y variables enviados.

En cuanto al filtro por dirección IP en las Preferencias de la cuenta creada en la plataforma LabsMobile podrás configurar una o varias direcciones IP válidas para realizar los envíos o las llamadas a la API SMS. Pero piensa que cuando hayas configurado este filtro por dirección IP no será posible realizar ningún envío desde cualquier origen que no esté presente en el listado de direcciones IP.

¿Qué son las llamadas o peticiones a la API?

Por último la conexión API. Son las llamadas o peticiones a la API ya sea la API JSON o la API OTP de LabsMobile que se deben realizar siempre desde el backend o servidor de datos. En ningún caso desde la interfaz del usuario (web o app). Esto es así para no comprometer los datos sensibles cómo contraseñas y para poder centralizar las peticiones para un mejor control y gestión del proceso.

6. ¿Cómo debe ser la interfaz del usuario?

Algunas de las recomendaciones para el uso de la interfaz de un proceso de validación de OTP son:

6.1. Introducción del número móvil y validaciones

Facilidad, claridad y sencillez en la interfaz para que el usuario introduzca su número de móvil.

Es recomendable que exista un solo campo en la interfaz del usuario. Y eliminar cualquier otro campo, opción o acción para concentrar la atención del usuario en el proceso de validación.

Además en este campo sólo debe ser posible introducir dígitos y NO otros símbolos.

Añadir el prefijo del país con un selector del país. Al ser posible en formato bandera. O preseleccionar por defecto el país más frecuente o detectar el país del usuario.

Validar el teléfono introducido por el usuario también es una buena recomendación. Y en el caso que se haya introducido un número móvil incorrecto o con un formato no válido avisar con un error. Así permite al usuario modificar el teléfono.

Recomendamos el uso de las siguientes librerías:

6.2. Instrucciones y ayuda al usuario

Las instrucciones y la ayuda que debe recibir el usuario debe ser clara para poder sentirse guiado en el proceso de validación.

A continuación se presentan algunos de los textos de ayuda al usuario para completar de forma exitosa el proceso de validación:

  • Pantalla de introducción del teléfono: “Introduce tu teléfono móvil y recibirás un código por SMS”.      
  • Error en el formato del teléfono: “El teléfono no corresponde con un teléfono móvil válido para [PAÍS]. Ruego compruebes y modifiques el número y país seleccionado”.
  • Una vez se ha introducido un teléfono válido y se ha enviado el código OTP por SMS: “Busca en tu Inbox SMS. Hemos enviado un código por SMS a tu teléfono móvil. Introduce en el campo siguiente el código de 4 dígitos recibido. IMPORTANTE: comprueba que tienes cobertura GSM/llamadas para recibir mensajes SMS.” 
  • Pasados unos pocos segundos (3s-6s) añadir un mensaje de espera: “Han pasado 6 segundos desde el último envío. En 24 segundos podrás reenviar un nuevo código por SMS.”
  • Mensaje de método de comunicación alternativa cuando se han agotado los intentos: “Se han agotado los intentos permitidos. Ruego te pongas en contacto con nosotros en support@labsmobile.com o +34938132933.”

7. Elementos del proceso de validación OTP

En un proceso de validación OTP SMS intervienen algunos elementos básicos que deben cumplir unos ciertos requisitos para los que se enumeran unas recomendaciones en este apartado.

7.1. El Código OTP

El código OTP es el elemento principal del proceso y se recomienda que cumpla las siguientes características:

  • Código numérico (sólo dígitos).
    Longitud de entre 4 y 6 dígitos.
  • Mantener el mismo código para un mismo usuario y proceso de validación. Por tanto, cualquier mensaje enviado a un número (incluidos todos los intentos) deben tener el mismo código OTP.

7.2. El texto del mensaje

El texto del mensaje SMS enviado en una validación OTP (en todos los intentos) debería respetar los siguientes aspectos:

  • El texto del mensaje debe ser lo más corto y conciso posible.
  • El código se debe localizar al inicio del texto del mensaje. A ser posible entre las 3 primeras palabras. De esta forma se podrá reconocer de forma fácil incluso en las previsualizaciones o notificaciones del mensaje SMS.
  • Es recomendable identificar al remitente del mensaje o proceso de validación. Esta identificación se puede hacer en el remitente o en el texto del mensaje.
  •  Es recomendable identificar los intentos en el texto del mensaje. Ejemplos:

<#> 3823 es tu codigo de validacion en nuestra app Kiwoko 2020-11-01 10:33 GMT+2

PayPal: codigo 381223 para la validacion de tu ultima transaccion. Este codigo caducara en 10 minutos.

7.3. Política de intentos

Por último recomendamos que si el primer envío de código OTP no llega a su destino, es recomendable establecer una política de intentos finitos con algunas especificaciones.

  • Establecer un tiempo mínimo entre intentos. Es decir, la opción de enviar un nuevo código no puede estar disponible hasta después de entre 20 y 40 segundos. Se recomienda mostrar al usuario el número de segundos restantes hasta que el siguiente intento esté habilitado.
  • El número máximo de intentos debe estar entre 1-3 mensajes.
  • Una vez alcanzado el número máximo de intentos es recomendable mostrar algún método alternativo de comunicación como email o teléfono de soporte.
  • Consultar el estado de los mensajes SMS enviados a un usuario o número:

    a) Enviado: mensaje sin estado final, procesado y comunicado al operador local. La espera hasta el siguiente intento se puede ampliar ya que pueden existir episodios de congestión o incidencia temporal.

    b) Entregado: mensaje confirmado como entregado al dispositivo de destino. Establecer una política máxima de 1-2 intentos mostrando un mensaje al usuario que reinicie su dispositivo y compruebe su configuración y cobertura.

    c) Rechazado/No entregable: error de entrega normalmente porque el número no es correcto. Forzar al usuario a cambiar de número de teléfono.
  • Establecer una validez de cada código OTP generado de entre 10-30 minutos. Pasado este intervalo de tiempo el código OTP ya no es válido y el usuario deberá iniciar el proceso de validación.

Descarga la Guía técnica de un proceso de validación OTP por SMS

Puedes descargar aquí el documento en formato PDF: Guía técnica de un proceso de validación OTP por SMS (178Kb)