Saltar al contenido principal

Códigos de Error

Lista completa de códigos de error del servicio bancario.


📋 Códigos HTTP Comunes

CódigoDescripciónCuándo se usa
200OKÉxito en la operación
201CreatedRecurso creado exitosamente
400Bad RequestError en los datos proporcionados
401UnauthorizedToken JWT inválido o faltante
403ForbiddenAcceso denegado
404Not FoundRecurso no encontrado
409ConflictRecurso ya existe
500Internal Server ErrorError interno del servidor

🔴 Mensajes de Error Específicos

Manteca

Usuarios y Autenticación

  • "Solo usuarios argentinos pueden crear cuenta en Manteca"
  • "Datos KYC no encontrados"
  • "El usuario no tiene una cuenta activa en Manteca"
  • "Usuario no encontrado en Manteca"

Trading y Órdenes

  • "Monedas no soportadas en el par X: Y"
  • "El código de lock ha expirado. Por favor, crea un nuevo lock"
  • "Los campos coin y operation son requeridos"
  • "La operación debe ser BUY o SELL"
  • "El amount debe ser un número válido mayor a 0"
  • "Orden no encontrada en Manteca"

Validaciones

  • "Se requiere un array de monedas"
  • "Moneda X NO está soportada por Manteca"
  • "Par X tiene monedas no soportadas: Y"

Fiat y Transacciones

  • "Todos los campos son requeridos: coin, cbu, amount"
  • "Retiro fiat con ID X no encontrado"
  • "El parámetro page debe ser un número válido mayor a 0"
  • "startDate debe tener el formato YYYY-MM-DD"

KYC y Documentos

  • "Los documentos KYC ya están en Manteca (pendientes o validados)"
  • "Error al procesar documentos KYC"

Bridge

Customer y Verificación

  • "El usuario ya tiene un customer activo en Bridge con ID: X"
  • "El usuario no tiene un customer activo en Bridge"
  • "El usuario no tiene un customer asociado en Bridge"
  • "Token inválido o expirado"

Cuentas Virtuales

  • "El usuario no tiene un customer activo en Bridge"
  • "No se pudo crear la cuenta virtual"
  • "Moneda no soportada para cuentas virtuales"

KYC y Documentos

  • "Customer y documentos KYC actualizados exitosamente en Bridge"
  • "Error al actualizar documentos KYC en Bridge"

🔧 Validaciones Generales

Parámetros Requeridos

  • "Los campos X y Y son requeridos"
  • "Missing required data"
  • "Se requiere un array de monedas"

Formatos de Datos

  • "Invalid email format"
  • "El parámetro page debe ser un número válido mayor a 0"
  • "startDate debe tener el formato YYYY-MM-DD"
  • "El amount debe ser un número válido mayor a 0"

Autenticación

  • "Token is required for this operation"
  • "Invalid token"
  • "Token not provided or invalid"
  • "Unauthorized access"

🚨 Estructura de Respuesta de Error

Error Estándar

{
"message": "Descripción del error",
"error": "Tipo de error",
"statusCode": 400
}

Error con ID de Trazabilidad

{
"message": "Usuario no encontrado",
"error": "Not Found",
"statusCode": 404,
"id": "CF97E6F2"
}

Error de Validación

{
"message": "Los campos coin y operation son requeridos",
"error": "Bad Request",
"statusCode": 400,
"validation": {
"missing_fields": ["coin", "operation"]
}
}

🔍 Manejo de Errores por Endpoint

Manteca Endpoints

POST /manteca/create

  • 401: Datos KYC no encontrados
  • 401: Solo usuarios argentinos
  • 409: Usuario ya existe

GET /manteca/user

  • 404: Usuario no encontrado
  • 401: Token inválido

POST /manteca/order/lock

  • 400: Campos faltantes
  • 400: Par no soportado
  • 404: Usuario no activo

POST /manteca/order/execute

  • 400: Lock expirado
  • 400: Campos faltantes
  • 404: Usuario no activo

Bridge Endpoints

GET /bridge/generate-tos

  • 409: Customer ya existe
  • 400: Datos incompletos

GET /bridge/customer-status

  • 404: Customer no encontrado
  • 401: Token inválido

POST /bridge/virtual-accounts

  • 404: Customer no activo
  • 400: Moneda no soportada
  • 409: Cuenta ya existe

🛡️ Mejores Prácticas

Manejo de Errores en Frontend

try {
const response = await fetch('/manteca/order/lock', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(orderData)
});

if (!response.ok) {
const error = await response.json();

// Manejar errores específicos
switch (error.statusCode) {
case 400:
showValidationError(error.message);
break;
case 401:
redirectToLogin();
break;
case 404:
showNotFoundError();
break;
default:
showGenericError();
}

return;
}

const data = await response.json();
// Procesar respuesta exitosa

} catch (networkError) {
showNetworkError();
}

Logging de Errores

// Backend logging
logger.error('Order lock creation failed', {
userId: user.id,
error: error.message,
errorCode: error.code,
requestData: orderData,
timestamp: new Date().toISOString()
});

📊 Códigos de Monitoreo

Alertas por Código de Error

  • 4xx errors > 10%: Revisar validaciones
  • 5xx errors > 1%: Problemas de infraestructura
  • Timeouts > 5%: Optimizar performance

Métricas de Error

  • Error Rate: % de requests que fallan
  • MTTR: Tiempo promedio de resolución
  • Error Distribution: Distribución por tipo de error

📝 Notas Importantes

  • IDs de Trazabilidad: Usar para debugging en logs
  • Mensajes User-Friendly: Mostrar mensajes claros al usuario
  • Retry Logic: Implementar reintentos para errores 5xx
  • Monitoring: Alertas para patrones de error anómalos
  • Documentation: Mantener actualizada la lista de errores