Antes de empezar
Necesita un token válido. Obténgalo según Autenticación con OAuth 2.0 y OIDC. Cada endpoint pide un permiso, por ejemplosys_factor_email:create o sys_factor:read, salvo que el token tenga role_admin. Además, la cuenta debe existir. Cree la cuenta según Cuentas, identidades y contraseñas.
Defina estas variables antes de seguir los ejemplos:
Flujo típico
Para el OTP por correo, el flujo tiene tres llamadas y una consulta de control:
TOTP y enlace mágico tienen sus propios pasos y rutas. Las secciones siguientes muestran cada llamada completa.
Factores incluidos en FREE
La tabla muestra el estado de cada factor en VU ONE FREE.OTP por SMS, Push y Sincronización: plan pago. No se incluye en VU ONE FREE. En la consola se ve con el chip Pago y la API responde
402 con el código 4020. Compare los planes.402, vea Errores.
El factor facial usa un SDK. Durante la vista previa, los SDK no se distribuyen públicamente. Esta página no documenta ese flujo.
OTP por correo
El código por correo se envía a la dirección de la cuenta o a una dirección que usted indique. Use este flujo en tres pasos.1
Enrole el factor
Envíe un La respuesta devuelve
POST a /api/v1/email. Con sendOtp en true, la API envía un código en el mismo paso.accountId, channelId, emailAddress, enabled, locked y lastSuccessfulLogin.2
Envíe el código
Envíe un Una respuesta
POST a /api/v1/email/send. El cuerpo usa los mismos campos que el paso anterior. Este endpoint no usa sendOtp. Indique en emailAddress la dirección que recibe el código.201 confirma el envío. Si el envío falla, la API responde 502 con el código 507.3
Verifique el código
Envíe un Si el código es correcto, la API responde
POST a /api/v1/email/login con el código que recibió el usuario.200 sin cuerpo. Si el código es incorrecto, responde 403 con el código 952.businessId o channelId, la API usa el negocio y el canal del contexto de la llamada: los encabezados X-Business-Id y X-Channel-Id, o los del token.
Valores predeterminados de la política de correo
La política define estos valores. Los valores predeterminados aplican hasta que usted los cambie.TOTP
TOTP usa una semilla que el usuario agrega a una aplicación de autenticación. El enrolamiento tiene dos pasos: primero se crea una sesión de enrolamiento y después se confirma con el primer código.1
Inicie el enrolamiento
Envíe un La respuesta devuelve
POST a /api/v1/otp/time/enrollments.enrollmentId, accountId, seed, length, stepTime, expiresAt y temporal. La sesión vence en 300 segundos de forma predeterminada.2
Confirme el enrolamiento con el primer código
Envíe un La respuesta devuelve el factor TOTP activo, con campos como
POST a /api/v1/otp/time/enrollments/{enrollmentId}/validate con el código que muestra la aplicación.id, enabled, locked, stepTime, length y activationState.3
Verifique un código
Envíe un
POST a /api/v1/otp/time/login. La API responde 200 sin cuerpo si el código es correcto.POST /api/v1/otp/time/send. El campo mechanism acepta EMAIL o SMS. El envío por SMS es parte del plan pago: en FREE, la API responde 402. Para cancelar un enrolamiento pendiente, use DELETE /api/v1/otp/time/enrollments/{enrollmentId}.
Envío del código QR por SMS: plan pago. No se incluye en VU ONE FREE. En la consola se ve con el chip Pago y la API responde
402 con el código 4020. Compare los planes.Valores predeterminados de la política TOTP
Enlace mágico
El enlace mágico envía un enlace al usuario. Al abrirlo, el navegador vuelve a la URL de retorno de la política con el estado de la transacción. Su aplicación cambia ese estado por una sesión. Antes de empezar, configure la política con la URL de retorno (defaultCallbackUrl). Sin esa URL, el enlace no se puede consumir.
1
Configure la política
Envíe un La vigencia del enlace se define en
POST a /api/v1/policies/magic-link con businessId, channelId y defaultCallbackUrl.defaultTtlInMinutes. El valor predeterminado es 5 minutos. El rango permitido es de 1 a 1440 minutos.2
Cree el factor
Envíe un Guarde el
POST a /api/v1/otp/magic-link.id del factor. Lo necesita para enviar el enlace.3
Envíe el enlace
Envíe un La respuesta, con código
POST a /api/v1/otp/magic-link/{factor_id}/transactions. El cuerpo es opcional. Si omite emailAddress, la API usa el correo de la cuenta.201, devuelve id, factorId, accountId, status, registrationDate y expiresAt. Guarde el id de la transacción.En la plantilla del correo, el marcador {{SIGNIN_URL}} se reemplaza por el enlace. Las variables disponibles son link, accountId y ttlMinutes.4
El usuario abre el enlace
El usuario abre el enlace del correo. Este paso no requiere token. El servidor responde El valor de
303 y redirige a su URL de retorno con dos parámetros: status y transaction_id.status aparece en minúsculas. Un enlace consumido tiene el valor consumed.5
Obtenga la sesión
Su backend recibe el Si el enlace es válido, la respuesta trae un token de acceso. Ese token tiene los mismos campos que la respuesta de Autenticación con OAuth 2.0 y OIDC. Si su integración usa dispositivos registrados, envíe el token del dispositivo en el encabezado
transaction_id y llama a POST /api/v1/magic-link/login. Este endpoint no requiere token.x-device-token.GET /api/v1/otp/magic-link/transactions/{transaction_id}. Para cancelar una transacción activa, use DELETE con el mismo identificador.
Los estados posibles de una transacción son CREATED, SENT, DELIVERED, CONSUMED, EXPIRED y FAILED.
Factores activos de una cuenta
Para saber qué factores tiene una cuenta, use los endpoints de/api/v1/factors/account/{accountId}.
La respuesta de
/active tiene esta forma:
404 con el mensaje Account not found.
Políticas de factores
Cada tipo de factor tiene una política por negocio y canal. Use la ruta/api/v1/policies/<tipo>.
Todas las operaciones de políticas usan el mismo patrón:
businessId y channelId. Al leer una política, businessId y channelId son parámetros opcionales.
Valores predeterminados de la política de contraseña
Eventos de factores
Los eventos registran la actividad de los factores. Para leerlos, el token necesita el permisosys_audit_factor:read.
Un cliente con role_admin puede leer los eventos. Si prefiere un cliente más limitado, registre el scope sys_audit_factor:read en ese cliente.
Límites de envío
Los envíos de OTP por correo tienen un límite por cuenta. El límite predeterminado es de 5 envíos por hora en una ventana móvil. Si la cuenta supera el límite, la API responde429 con el código 505 y codeKey EMAIL.RATE_LIMIT.
En esta vista previa, el correo de VU ONE FREE no tiene un límite por tenant. El límite por cuenta sí aplica.
Qué sigue
Errores de la API de VU ONE FREE
Consulte los códigos de error de factores, el 402 y el 429.
Cuentas, identidades y contraseñas
Cree las identidades y cuentas que usan estos factores.
Autenticación con OAuth 2.0 y OIDC
Obtenga los tokens para llamar a la API.
Aprovisionamiento con SCIM 2.0
Cree usuarios desde su directorio.