Saltar al contenido principal

Registrar número telefónico

Registra un número telefónico y envía un código SMS de verificación. La respuesta incluye un sessionId que se utiliza en el paso de verificación.


📌 Registro y envío de SMS

Este endpoint genera un código SMS de 6 dígitos y devuelve un sessionId para completar la verificación en el Paso 2.

POST/auth/phone/register

Envía un SMS con un código de verificación y retorna sessionId

📋 Parámetros

phonestringrequerido

Número en formato internacional (solo dígitos, sin el símbolo +)

📤 Respuesta

{
"event": {
  "code": 1010,
  "message": "SMS sent successfully"
},
"data": {
  "sessionId": "phone-session-uuid"
}
}

Requiere autenticación

JWT requerido

Debes enviar un JWT válido:

Authorization: Bearer <accessToken>

Validación de entrada

Formato de número telefónico

Formato requerido:

  • Solo dígitos (0-9)
  • Longitud: 10 a 15 dígitos
  • Sin +, espacios, guiones ni paréntesis

Ejemplos válidos:

  • 543513391269
  • 12125551234
  • 447911123456

Request Body

{
"phone": "543513391269"
}

Respuestas

✅ Éxito (1010)

SMS enviado

{
"event": {
"code": 1010,
"message": "SMS sent successfully"
},
"data": {
"sessionId": "phone-session-uuid"
}
}

Notas:

  • Guarda sessionId para el Paso 2 (/auth/phone/verify).
  • El código SMS es de 6 dígitos y es válido por 5 minutos.

❌ Errores de validación (400)

Datos faltantes / formato inválido (4006)

Caso 1: phone faltante

{
"code": 4006,
"message": "Missing or invalid data"
}

Caso 2: formato inválido

{
"code": 4006,
"message": "Invalid phone number format"
}

❌ No autorizado (401)

Unauthorized

{
"statusCode": 401,
"message": "Unauthorized"
}

❌ Error del servidor (500)

Error enviando SMS

{
"statusCode": 500,
"message": "Failed to send verification SMS"
}

En algunos casos el mensaje puede indicar un fallo de autenticación del proveedor SMS.


Ejemplo (JavaScript)

async function registerPhone(accessToken, phone) {
const res = await fetch('https://api.swapbits.co/auth/phone/register', {
method: 'POST',
headers: {
Authorization: `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ phone }),
});

const data = await res.json();

if (res.ok && data?.event?.code === 1010) {
return data.data.sessionId;
}

throw new Error(data?.message || data?.event?.message || 'Error registering phone');
}

Enlaces relacionados