Registrar Dispositivo Biométrico
Registra un dispositivo biométrico para el usuario autenticado. Requiere deviceId (UUID), publicKey y algorithm = P-256.
POST
/auth/biometry/registerRegistra un dispositivo biométrico para el usuario
📤 Respuesta
{
"code": 1021,
"message": "Biometric device registered successfully.",
"data": {
"deviceId": "550e8400-e29b-41d4-a716-446655440000",
"deviceName": "iPhone 15",
"platform": "iOS",
"registeredAt": "2025-01-20T14:45:00.000Z",
"status": "active"
}
}Headers
| Header | Value |
|---|---|
| Authorization | Bearer <JWT> |
| Content-Type | application/json |
Body
{
"deviceId": "550e8400-e29b-41d4-a716-446655440000",
"deviceName": "iPhone 15",
"platform": "iOS",
"publicKey": "BASE64_PUBLIC_KEY",
"algorithm": "P-256"
}
Campos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| deviceId | string | Sí | Debe ser un UUID válido |
| deviceName | string | Sí | Nombre del dispositivo |
| platform | "iOS" | "Android" | Sí |
| publicKey | string | Sí | Clave pública en formato string |
| algorithm | "P-256" | Sí | Debe ser exactamente "P-256" |
Response (200)
Dispositivo registrado
code 1021 — Biometric device registered successfully.
{
"code": 1021,
"message": "Biometric device registered successfully.",
"data": {
"deviceId": "550e8400-e29b-41d4-a716-446655440000",
"deviceName": "iPhone 15",
"platform": "iOS",
"registeredAt": "2025-01-20T14:45:00.000Z",
"status": "active"
}
}
data
| Campo | Tipo | Descripción |
|---|---|---|
| deviceId | string | ID del dispositivo registrado |
| deviceName | string | Nombre del dispositivo |
| platform | string | "iOS" o "Android" |
| registeredAt | string | Timestamp ISO 8601 |
| status | "active" | Estado fijo "active" |
Errores
Datos inválidos
HTTP 400 — code 4006.
Campos requeridos / algoritmo inválido
{
"code": 4006,
"message": "All fields are required and algorithm must be P-256"
}
deviceId inválido (no UUID)
{
"code": 4006,
"message": "Invalid deviceId format. Must be a valid UUID"
}
platform inválida
{
"code": 4006,
"message": "Platform must be iOS or Android"
}
Dispositivo ya registrado
HTTP 400 — code 4002.
{
"code": 4002,
"message": "Device already registered for this user"
}
Usuario no encontrado
HTTP 404 — code 4001.
{
"code": 4001,
"message": "User not found."
}
No autorizado
HTTP 401 — Token JWT inválido, expirado o ausente.
{
"statusCode": 401,
"message": "Unauthorized"
}
Error interno
HTTP 500 — code 5001.
{
"code": 5001,
"message": "Failed to save user to the database.",
"details": "..."
}
Ejemplo (cURL)
curl -X POST 'https://api.swapbits.co/auth/biometry/register' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_JWT_TOKEN' \
-d '{
"deviceId": "550e8400-e29b-41d4-a716-446655440000",
"deviceName": "iPhone 15",
"platform": "iOS",
"publicKey": "BASE64_PUBLIC_KEY",
"algorithm": "P-256"
}'
⚡ Quick Test
POST
https://api.swapbits.co/auth/biometry/registercurl -X POST 'https://api.swapbits.co/auth/biometry/register' \
-H 'Content-Type: application/json' \
-d '{
"deviceId": "550e8400-e29b-41d4-a716-446655440000",
"deviceName": "iPhone 15",
"platform": "iOS",
"publicKey": "BASE64_PUBLIC_KEY",
"algorithm": "P-256"
}'