Registrarse
Crea una nueva cuenta de usuario y envía un enlace de verificación por email.
Endpoint
POST /api/v1/auth/register
Autenticación
No se requiere autenticación (endpoint público).
Request
Content-Type
application/json
Request Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
email | string | Sí | Dirección de email válida |
phone_number | string | Sí | Número de teléfono en formato E.164 (ej: +1234567890) |
password | string | Sí | Contraseña (ver requisitos abajo) |
Requisitos de Contraseña
Las contraseñas deben cumplir TODOS los siguientes criterios:
- Mínimo 8 caracteres de longitud
- Al menos una letra mayúscula (A-Z)
- Al menos una letra minúscula (a-z)
- Al menos un dígito (0-9)
- Al menos un carácter especial (!@#$%^&*(),.?":|<>)
Formato de Número de Teléfono
Debe estar en formato internacional E.164:
- Comienza con
+(opcional pero recomendado) - Código de país (1-3 dígitos)
- Número de suscriptor (hasta 15 dígitos en total)
- Ejemplos:
+12025551234,+442071234567,+61412345678
Ejemplo de Request
{
"email": "juan@ejemplo.com",
"phone_number": "+12025551234",
"password": "ContraseñaSegura123!"
}
Response
Response Exitoso (201 Created)
{
"message": "Usuario registrado exitosamente. Por favor revisa tu email para el enlace de verificación.",
"success": true
}
Después del registro, el usuario recibirá un email con un enlace de verificación. Deben verificar su email antes de poder iniciar sesión.
Campos del Response
| Campo | Tipo | Descripción |
|---|---|---|
message | string | Mensaje de éxito |
success | boolean | Siempre true para requests exitosos |
Flujo de Verificación
- Usuario se registra → Recibe email de verificación
- Usuario hace clic en enlace → Redirigido al frontend con token
- Frontend llama /auth/verify-email → Usuario es verificado e inicia sesión
Ejemplos
curl -X POST https://api.callcov.com/api/v1/auth/register \-H "Content-Type: application/json" \-d '{ "email": "juan@ejemplo.com", "phone_number": "+12025551234", "password": "ContraseñaSegura123!"}'Errores
400 Bad Request
Email ya registrado:
{
"detail": "Email ya registrado"
}
Número de teléfono ya registrado:
{
"detail": "Número de teléfono ya registrado"
}
Formato de email inválido:
{
"detail": [
{
"loc": ["body", "email"],
"msg": "el valor no es una dirección de email válida",
"type": "value_error.email"
}
]
}
La contraseña no cumple los requisitos:
{
"detail": [
{
"loc": ["body", "password"],
"msg": "La contraseña debe contener al menos una letra mayúscula",
"type": "value_error"
}
]
}
Formato de número de teléfono inválido:
{
"detail": [
{
"loc": ["body", "phone_number"],
"msg": "Formato de número de teléfono inválido. Usa formato E.164 (ej: +1234567890)",
"type": "value_error"
}
]
}
500 Internal Server Error
Error al enviar email de verificación:
{
"detail": "Error al enviar email de verificación. Por favor intenta de nuevo."
}
Consideraciones de Seguridad
- Contraseñas hasheadas: Nunca se almacenan en texto plano
- Verificación de email requerida: Los usuarios no pueden iniciar sesión hasta verificar
- Email y teléfono únicos: Previene cuentas duplicadas
- Limitación de tasa: El endpoint de registro tiene limitación de tasa para prevenir abuso
Verificación de Email
Después del registro, los usuarios reciben un email que contiene:
- Enlace de verificación con token
- El enlace expira en 15 minutos (configurable)
- El token es de un solo uso
Ejemplo de formato de email de verificación:
Asunto: Verifica tu cuenta de CallCov
Haz clic en el enlace de abajo para verificar tu dirección de email:
https://app.callcov.com/verify-email?token=abc123...
Este enlace expira en 15 minutos.
Pruebas en Desarrollo
En modo de desarrollo, los emails de verificación se envían a MailHog (accesible en http://localhost:8025).
Relacionado
- Verificar Email - Completar verificación de email
- Reenviar Verificación - Reenviar email de verificación
- Login - Iniciar sesión después de la verificación
- Guía de Inicio Rápido - Flujo completo de registro