POST /api/auth/register, (2) recibir un código de verificación por email, (3) confirmar ese código con POST /api/auth/verify-code, y (4) —opcionalmente— verificar la cuenta desde el enlace de email con GET /api/auth/verify. Si el usuario no recibió el código, puede solicitarlo nuevamente con POST /api/auth/resend-code.
Todos los campos del cuerpo de registro son validados con Zod antes de procesarse: los textos de nombres y apellidos se convierten automáticamente a mayúsculas, y el email se normaliza a mayúsculas y se elimina el espaciado. La contraseña se almacena hasheada con bcrypt.
La cuenta queda en estado no verificado hasta que el afiliado complete la verificación de email mediante
POST /api/auth/verify-code o el enlace enviado al correo. No es posible iniciar sesión antes de verificar la cuenta.POST /api/auth/register
Autenticación: No requiere autenticación previa.Cuerpo de la petición
string
required
Código del tipo de documento de identidad del afiliado. Máximo 3 caracteres. Ejemplos:
"CC" (Cédula de Ciudadanía), "CE" (Cédula de Extranjería).string
required
Número de documento de identidad. Máximo 16 caracteres.
string
required
Nombres del afiliado. Máximo 80 caracteres. Se almacenan en MAYÚSCULAS automáticamente.
string
required
Apellidos del afiliado. Máximo 80 caracteres. Se almacenan en MAYÚSCULAS automáticamente.
string
required
Número de teléfono móvil del afiliado. Máximo 10 caracteres (formato colombiano, ej.
"3001234567").string
required
Correo electrónico válido del afiliado. Se normaliza a MAYÚSCULAS y se elimina el espaciado inicial/final. Debe cumplir el formato
usuario@dominio.tld.string
required
Nombre de usuario para autenticarse en la plataforma. Mínimo 3 caracteres.
string
required
Contraseña de la cuenta. Mínimo 8 caracteres. Se almacena hasheada con bcrypt.
string
required
Confirmación de la contraseña. Debe coincidir con
password. La validación de igualdad se aplica en el servicio de registro.Respuestas
boolean
true cuando el usuario fue creado y el email de verificación fue enviado.string
Mensaje descriptivo del resultado.
object
Datos del usuario recién creado y metadatos del proceso de registro.
Tabla de errores
Ejemplo — cURL
Ejemplo — Respuesta exitosa 200
POST /api/auth/verify-code
Verifica el código de activación de 4 a 6 dígitos enviado al email del afiliado durante el registro. Una vez verificado correctamente, la cuenta queda activa y el usuario puede iniciar sesión. Autenticación: No requiere autenticación previa.Cuerpo de la petición
string
required
Código de verificación recibido por email. Entre 4 y 6 caracteres.
string
required
Código del tipo de documento del afiliado a verificar. Máximo 3 caracteres (ej.
"CC").string
required
Número de documento del afiliado que debe ser verificado. Máximo 16 caracteres.
Tabla de errores
Ejemplo — cURL
Ejemplo — Respuesta exitosa 200
POST /api/auth/resend-code
Reenvía el código de verificación al email del afiliado cuando el código original no fue recibido o expiró. Autenticación: No requiere autenticación previa.Cuerpo de la petición
string
required
Código del tipo de documento del afiliado. Máximo 3 caracteres (ej.
"CC", "CE").string
required
Número de documento del afiliado. Máximo 16 caracteres.