Cómo usar WhatsAuth en tu plataforma

Comienza hoy.

Visión General

WhatsAuth proporciona una forma simple y confiable de validar números de teléfonos móviles y autorizar varios tipos de transacciones OTP cómo: 2-FA (autenticación de segundo factor), login, enrolamiento, validación de teléfono, autorización de transacciones, comprobante de entrega, etc.

Creamos un código único para cada transacción que puede ser validado mediante un teléfono móvil usando WhatsApp o SMS.

El código se valida o elimina una vez que cumple su propósito o expira, manteniendo informado a su plataforma de cualquier cambio en su estado, lo que permite reaccionar según su conveniencia.

Para empezar

Para implementar los servicios de WhatsAuth en su plataforma, necesita:

  • Ser capaz de solicitar códigos de verificación de nuestros servicios bajo demanda de acuerdo con las necesidades de su negocio.
  • Ser capaz de mostrar el código de verificación a sus usuarios utilizando el formato adecuado (e.g. link, botón, QR label, QR screen).
  • Poder recibir actualizaciones de estado del código de verificación en un webhook en su plataforma con información verificada por el usuario.

Flujo de uso

Standard usage flow

Los siguientes pasos representan un uso típico del servicio para iniciar sesión con WhatsApp:

  1. Su aplicación solicita un código de verificación con una solicitud GET y analiza la respuesta para obtener el código.
  2. Su aplicación muestra un "botón de WhatsApp" con el enlace único obtenido en el paso 1.
  3. El usuario toca el botón que abre WhatsApp con un mensaje preestablecido para enviar.
  4. El mensaje de código se procesa.
  5. Su plataforma recibe un webhook con los detalles de la verificación, incluido el número de teléfono y el nombre del perfil.
  6. Su aplicación continúa el proceso de inicio de sesión regular con la información de perfil obtenida.
Flow de login en acción

Generación de código

Para obtener un código de verificación de la API de WhatAuth, debe realizar una solicitud HTTPS proporcionando la clave API para la autorización y algunos parámetros para la personalización.

cURL Muestra

Puedes probar el siguiente comando cURL desde tu terminal


curl --location --request GET 'http://whatsauth.me/api/v1/verification_code?callback_url=https://app.mycompany.com/whatsauth \
&expires_at=10&link_message=https://app.mycompany.com/welcome \
&expiration_message=Sorry, this code expires within 10 min. Please start the process again. \
&failure_message=Oops! something went wrong please try again in a few minutes. \
&response_message=Your now validated. Welcome to MyApp! Please click the link to continue \
&authorized_numbers=%2B123456789,%2B987654321' \
--header 'Authorization: Bearer DEMOPDruierhwkfuwgkedjgh'

Parámetros

Parameter (*) Type Description
callback_url string The webhook url that will receive verification status. Must implement with HTTPS POST method.
expires_at integer The number of minutes the verification code expires in. Minimum value is 1 minute.
authorized_numbers array (comma separated strings) The list of phone numbers that are allowed to validate generated code. By default any phone number is authorized.
link_message string Message appears on the client's screen as a part of the code message above generated code.
expiration_message string Message is sent to the client on intent to validate the expired code.
failure_message string Message is sent to the client when there is a failure in sending verification status via provided webhook.
response_message string Message is sent to the client as a notification of a successful validation.
qr 0 or 1 Set this parameter to 1 in case you want to receive QR code url in a response.

También puede especificar valores predeterminados para cada parámetro en el nivel de la aplicación y omitirlos en la solicitud. Si establece un parámetro en su solicitud, anulará el establecido como predeterminado.

Mensaje de verificación exitosa
Mensaje de expiración
Mensaje de falla

Respuesta

Si la solicitud está correctamente formada y autenticada, recibirá una respuesta con un JSON como este:


{
   "code": "9f76681bd4",
   "link": "https://wa.me/56943426553?text=Verify%20my%20phone%20number%20with%20the%20following%20code:%0A%0A%60%60%60--------------%0A%7C%209f76681bd4%20%7C%0A--------------%60%60%60",
   "qr": "https://api.qrserver.com/v1/create-qr-code?data=https%3A%2F%2Fwa.me%2F56943426553%3Ftext%3DVerify%2520my%2520phone%2520number%2520with%2520the%2520following%2520code%3A%250A%250A%2560%2560%2560--------------%250A%257C%25209f76681bd4%2520%257C%250A--------------%2560%2560%2560&size=200x200"
}

Parameter name Type Description
code* String Generated unique verification code.
link* String Link that takes you to whatsapp web or mobile application with predefined message.
qr String URL of the generated QR code image for whatsapp link. When requested.

Webhook

Para recibir el estado actualizado del proceso de verificación, deberá implementar el webhook que es una URL bajo el protocolo HTTPS y el método POST. Allí recibirá la siguiente información en formato JSON:


{
   "id": "123e4567-e89b-12d3-a456-426614174000",
   "status": "validated",
   "verification_code": "9f76681bd4",
   "phone_number": "+56911111111",
   "profile_name": "Some Folk",
   "expires_at": "2021-01-27T01:17:13.674Z",
   "requested_at": "2021-01-26T23:17:13.674Z",
   "validated_at": "2021-01-26T23:23:17.28Z",
   "authorized_numbers": [],
   "error": null
}


Desde aquí podrá obtener los datos necesarios para el seguimiento de su proceso de negocio.

Attribute name Type Description
id UUID Verification id.
status String Status of verification code. Possible values: “requested”, “validated”, “expired”, “failed”.
verification_code String Unique verification code associated with the process.
phone_number String Mobile phone number which validated the code.
profile_name String Whatsapp profile name of the person validated the code.
requested_at ISO 8601 String Time when verification code was requested.
validated_at ISO 8601 String Time when verification code was validated by the client.
expires_at ISO 8601 String Time when verification code expires.
authorized_numbers String Array Phone numbers authorized to validate the code.
error String Error message in case of validation failure.

La solicitud de webhook espera tener un estado de respuesta 200 o 204.