Registro de Usuario v2
Registro simplificado: el usuario envía email + contraseña (y opcionalmente código de referido). El backend genera un token de sesión y envía un código de verificación al email.
⏱️ Importante: token y código expiran
El token de registro y el código de verificación tienen TTL de 10 minutos.
Si expiran, se debe reiniciar el registro (volver a llamar a /auth/v2/register).
/auth/v2/registerInicia registro v2. Genera (o reutiliza) sesión de verificación y envía código al email.
📋 Parámetros
emailstringrequeridoCorreo electrónico del usuario
passwordstringrequeridoContraseña (debe cumplir el passwordRegex del backend)
codeReferralstringCódigo de referido opcional
📤 Respuesta
{
"code": 1010,
"message": "Verification code sent successfully.",
"data": {
"status": "pending",
"token": "registration-token-uuid"
}
}Qué hace el backend (comportamiento real)
1) Verifica si el email ya existe
- Si el usuario ya existe en DB → retorna error 4002.
2) Reutiliza sesión si ya hay un registro “pendiente” válido
Si existe emailToSession:{email} en Redis y también existen:
session:{token}sessionCode:{token}
Entonces no crea una nueva sesión: reutiliza el mismo token y lo retorna.
3) Si no existe sesión válida, crea una nueva
- Genera
token(UUID) - Genera
code(6 dígitos) - Guarda en Redis (TTL 10 minutos):
session:{token}→{ email, password, codeReferral }sessionCode:{token}→codeemailToSession:{email}→token
- Envía email con template:
account_verification_code
Validaciones
Validación de Email y Password
emaildebe existir y pasaremailRegexpassworddebe existir y pasarpasswordRegex- Si falla email o password, el endpoint responde 4006.
Tipos de Respuesta
✅ Éxito: código enviado (o sesión reutilizada)
Registro iniciado (pendiente verificación)
Código 1010
{
"code": 1010,
"message": "Verification code sent successfully.",
"data": {
"status": "pending",
"token": "registration-token-uuid"
}
}
Notas:
- El
tokenes el identificador de la sesión en Redis (TTL 10 minutos). - Si el usuario reintenta registrar el mismo email dentro del TTL, puede recibir el mismo token (sesión reutilizada).
❌ Email ya registrado
Email ya registrado
Código 4002
{
"code": 4002,
"message": "The email is already registered."
}
❌ Datos faltantes o inválidos
Datos inválidos
Código 4006 - Email inválido, password inválida (regex) o campos faltantes.
{
"code": 4006,
"message": "Missing required data."
}
❌ Error del servidor
Error interno
Código 5001
{
"code": 5001,
"message": "Failed to save user to the database."
}
Ejemplos
cURL
curl -X POST 'https://api.swapbits.co/auth/v2/register' \
-H 'Content-Type: application/json' \
-d '{
"email": "nuevo@ejemplo.com",
"password": "MiPassword123!",
"codeReferral": "mi_codigo_amigo"
}'
JavaScript/TypeScript
const registerV2 = async (email, password, codeReferral) => {
const res = await fetch('https://api.swapbits.co/auth/v2/register', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password, codeReferral })
});
const result = await res.json();
if (result.code === 1010) {
sessionStorage.setItem('registrationToken', result.data.token);
// Ir al paso de verificación v2 con token + code
}
return result;
};
⚡ Quick Test
https://api.swapbits.co/auth/v2/registercurl -X POST 'https://api.swapbits.co/auth/v2/register' \
-H 'Content-Type: application/json' \
-d '{"email": "nuevo@ejemplo.com", "password": "MiPassword123!"}'