Skip to main content
Utilice códigos de verificación de WhatsApp para el registro, inicio de sesión, recuperación de cuentas y verificación adicional de acciones confidenciales. Cuando un cliente elige WhatsApp, su sistema envía una plantilla de autenticación. El cliente copia o autocompleta el código y su backend lo valida.

¿Por qué usar WhatsApp para la verificación?

Añada otro canal de entrega junto con SMS

WhatsApp recibe mensajes a través de una conexión a internet. Ofrece a los clientes otra forma de recibir un código cuando hay Wi-Fi disponible pero la recepción de SMS no es confiable. El destinatario aún necesita WhatsApp y una conexión a internet activa.

Reduzca los pasos para ingresar el código

Los botones para copiar códigos reducen la transcripción manual. Las experiencias de un toque (one-tap) y sin toques (zero-tap) pueden reducir el cambio entre aplicaciones en apps de Android compatibles e integradas. Para los clientes que ya usan WhatsApp, estas opciones pueden facilitar la verificación. Mida el impacto en la tasa de finalización en su propio flujo.

Optimice el costo de una verificación completada

Evalúe WhatsApp como una vía potencial para reducir los costos de verificación por mercado. Compare las tarifas de autenticación y de autenticación internacional aplicables, los cargos de YCloud, los costos de respaldo por SMS y las tasas de finalización. Utilice los cargos totales del canal de verificación divididos por las verificaciones exitosas como una métrica práctica. Meta cobra por los mensajes entregados; un mensaje no entregado no genera la tarifa de mensaje correspondiente de Meta. Otros cargos dependen de su plan de YCloud. Consulte Precios de WhatsApp y Precios de Meta.

Ubique los puntos de abandono en el flujo de verificación

Rastree por separado la aceptación de la solicitud, la entrega del mensaje y la verificación exitosa. Esto le ayuda a distinguir los problemas de envío de los problemas al recibir o ingresar un código. WhatsApp transporta el código. Su sistema de verificación sigue decidiendo si es válido, si ha caducado, si ya se utilizó y si está autorizado para la acción solicitada.

Antes de comenzar

  1. Inicie sesión en YCloud y conecte una WABA y un remitente.
  2. Prepare la lógica de solicitud, generación, almacenamiento y validación de códigos. Esta guía utiliza la API de WhatsApp Messages; su sistema gestiona el ciclo de vida del código. Para el servicio de verificación de YCloud, consulte Verify.
  3. Prepare una clave de API del lado del servidor y un receptor de Webhook.
  4. Utilice un destinatario de prueba que haya solicitado el código. Una solicitud de código no constituye un permiso para envíos de marketing posteriores.
  5. Configure y pruebe un canal de SMS si necesita un mecanismo de respaldo. La API de WhatsApp Messages no envía SMS automáticamente por el solo hecho de seguir las recomendaciones de esta guía.

1. Elija la experiencia del código

Las opciones de un toque o sin toques pueden recurrir a otra experiencia, como copiar código, cuando no se cumplen los requisitos del dispositivo o de la aplicación. Asegúrese de admitir este respaldo. Seleccionar la opción en el editor no integra su aplicación cliente. Meta también documenta sugerencias de teclado para OTP desde notificaciones en iOS 26 y versiones posteriores. Esto es independiente de un toque y sin toques en Android; pruébelos por separado. Consulte Plantillas de autenticación y la documentación de autenticación de Meta.
Ejemplo de autenticación de Meta con una flecha corta que apunta a Copiar código.

Meta example: the customer copies the verification code and enters it in your app. The code and expiry shown are demonstration values.

Fuente: Plantillas de autenticación de Meta.

2. Crear una plantilla de autenticación

Seleccione la WABA, el nombre y el idioma

Abra Plantillas para la WABA deseada en YCloud, seleccione Agregar plantilla y elija Autenticación. Use letras minúsculas, dígitos y guiones bajos para un nombre como login_verification. Elija el idioma de su cliente y registre el nombre aprobado exacto y el código de idioma para el envío. Consulte Crear plantilla.

Configurar el contenido y la acción del código

La autenticación utiliza un texto de código predeterminado, con avisos de seguridad y caducidad compatibles. No inserte textos promocionales comunes, URL, archivos multimedia ni emojis en el cuerpo. Elige Copiar código, Autorrellenar o Zero Tap. Para Autorrellenar y Zero Tap, introduce el nombre del paquete de Android y el hash de firma reales y completa la integración de la app. Zero Tap también requiere aceptar las condiciones aplicables. Para la configuración de la API, utiliza el contrato actual de supported_apps en lugar de los ejemplos más antiguos de nivel superior de package_name y signature_hash. Sigue las guías de integración de autenticación para consultar los detalles del SDK de Android y el handshake.

Configurar tres ajustes de caducidad independientes

El contrato actual de YCloud admite valores de TTL de autenticación personalizados regulares de 30 a 900 segundos, con un valor predeterminado de 10 minutos para plantillas nuevas. Los valores predeterminados históricos pueden variar; revisa el messageSendTtlSeconds guardado. El aviso de caducidad mostrado admite de 1 a 90 minutos , pero no modifica la caducidad en el backend ni amplía el rango regular de TTL de entrega. El contrato también admite -1, que establece un TTL personalizado de 30 días. Esto no se recomienda para códigos de corta duración y no significa una caducidad inmediata ni la desactivación de reintentos. Consulta el contrato OpenAPI de YCloud. Por ejemplo, un código generado a las 10:00 que caduca a las 10:05 tiene un minuto restante si llega a las 10:04. Su recepción no reinicia su tiempo de vida. La caducidad del TTL detiene los intentos de entrega pendientes; no revoca un mensaje que ya se haya entregado en el dispositivo del cliente.

Enviar y comprobar la disponibilidad

Envía la plantilla y revisa su estado de revisión real. Realiza envíos únicamente después de que esté aprobada y lista para usarse. Si es rechazada, revisa el motivo y sigue la sección Revisión y ciclo de vida de plantillas. No dependas de un tiempo de aprobación fijo.

3. Enviar a través de la API

Envía inmediatamente después de que el cliente solicite un código. Elige el comportamiento de envío que requiera tu flujo: El nombre del endpoint sendDirectly describe el momento del envío. Es independiente de la función Utility Direct Send que gestiona la generación de plantillas. Este flujo sigue utilizando una plantilla de mensaje de autenticación aprobada.

Preparar la solicitud

  • Autentícate en el servidor con X-API-Key.
  • Usa números en formato E.164, incluidos los prefijos de país, para from y to.
  • Establece type en template y utiliza el nombre y el idioma aprobados para la WABA seleccionada.
  • Proporciona el mismo código en el cuerpo y en los parámetros del botón de OTP.
  • Asocia tu solicitud de verificación con el ID de mensaje de YCloud. externalId ayuda a la conciliación, pero no garantiza la idempotencia.
Ejemplo de cuerpo de solicitud para Copiar código. Reemplaza los marcadores de posición; 123456 es ficticio y debe ser generado por tu sistema de verificación en producción:
Los parámetros de envío para el botón de OTP usan sub_type: url; no uses una estructura ordinaria de botón de código de cupón de marketing. Consulta Autenticación con copia de código y Enviar un mensaje de WhatsApp. También puedes seleccionar Más → Copiar como cURL en una plantilla aprobada y cotejar los parámetros generados con su configuración. Una respuesta correcta de la API no confirma la entrega. Si una solicitud agota el tiempo de espera, inspecciona los registros de mensajes y las devoluciones de llamada disponibles antes de volver a enviar.

4. Recibir actualizaciones de entrega

En Desarrolladores → Webhooks, crea un endpoint, introduce tu URL de callback y suscríbete a whatsapp.message.updated. Sigue la Guía de Webhook para la verificación de firmas, confirmaciones y reintentos. Asocia cada ID de mensaje con su solicitud de verificación: Marca la verificación como completada solo cuando tu backend valide el código. Gestiona las retrollamadas duplicadas y tardías sin permitir que un estado anterior sobrescriba uno posterior. Usa Registros de mensajes para la investigación manual.

5. Diseñar la interfaz y el respaldo por SMS

Aclarar el canal de recepción

Antes del envío, indica que el código llegará a través de WhatsApp. Tras el envío, muestra un destino enmascarado, un mensaje de espera, una cuenta regresiva para el reenvío y las alternativas disponibles. Permite que los clientes regresen y corrijan el número. Donde el sistema operativo lo permita, tu aplicación puede usar la detección de disponibilidad de WhatsApp para sugerir un canal. La instalación no demuestra que el número ingresado esté registrado o accesible. Un resultado negativo no descarta la recepción en otro dispositivo. No uses la detección de instalación como verificación de número.

Gestionar los fallos y los retrasos por separado

El rango de 15–60 segundos de la guía original puede ser un intervalo de espera experimental. Ajústalo según la latencia observada y el abandono. No es un requisito de WhatsApp ni una promesa de entrega. Para el mismo desafío, puedes enviar el mismo código que aún sea válido a través del canal de respaldo. Si generas un nuevo código, invalida el anterior de acuerdo con tu política y explica este comportamiento. El respaldo no debe extender el tiempo de vida de un código antiguo. Usa una única solicitud de verificación para controlar los intentos por canal, el tiempo de reutilización y la finalización. Las pulsaciones repetidas o las retrollamadas duplicadas y tardías no deben desencadenar múltiples mensajes SMS. Si llegan tanto WhatsApp como SMS, cada canal puede generar cargos.

6. Probar antes del lanzamiento

Tras el lanzamiento, compara la tasa de entrega, la latencia de entrega, la finalización de la verificación, la proporción de respaldo por SMS y el costo por verificación exitosa por mercado, canal y dispositivo. Utiliza estos resultados para ajustar la prioridad de los canales y los umbrales de espera en lugar de prometer que WhatsApp siempre es más rápido o más económico que los SMS.

Escenario adicional: verificación iniciada por el cliente

En un flujo de verificación iniciado por el cliente, este abre WhatsApp desde una aplicación, envía un mensaje que contiene información para la verificación actual y luego regresa a la aplicación. Evalúe esto por separado. Un mensaje entrante ordinario de WhatsApp no es suficiente por sí solo para iniciar la sesión de alguien en un sitio web o aplicación. Este enfoque requiere un desafío de un solo uso, vinculación de sesión, caducidad, protección contra repeticiones y confirmación del usuario. El material citado de YCloud no establece una función de inicio de sesión lista para usar, por lo que esta guía no la presenta como un paso de integración predeterminado.