Saltar al contenido principal

Manteca - Órdenes

Endpoints para la gestión de órdenes y trading en Manteca.


1. Obtener Órdenes del Usuario

GET /manteca/orders

Obtiene todas las órdenes del usuario en Manteca.

Headers:

Authorization: Bearer <JWT_TOKEN>

Respuesta Exitosa (200):

{
"success": true,
"data": {
"orders": [
{
"numberId": "12345",
"coin": "DAI_ARS",
"operation": "BUY",
"amount": "100.50",
"price": "1250.75",
"status": "COMPLETED",
"createdAt": "2024-01-15T10:30:00Z",
"completedAt": "2024-01-15T10:30:15Z"
}
],
"totalCount": 1
},
"message": "Órdenes obtenidas exitosamente de Manteca"
}

Respuesta de Error (404):

{
"message": "El usuario no tiene una cuenta activa en Manteca",
"error": "Not Found",
"statusCode": 404
}

2. Obtener Orden Específica

GET /manteca/order/:orderId

Obtiene los detalles de una orden específica.

Parámetros:

  • orderId (string): ID de la orden

Headers:

Authorization: Bearer <JWT_TOKEN>

Ejemplo de Solicitud:

GET /manteca/order/12345

Respuesta Exitosa (200):

{
"success": true,
"data": {
"numberId": "12345",
"coin": "DAI_ARS",
"operation": "BUY",
"amount": "100.50",
"price": "1250.75",
"fee": "2.50",
"status": "COMPLETED",
"userId": "manteca_user_id_123",
"createdAt": "2024-01-15T10:30:00Z",
"completedAt": "2024-01-15T10:30:15Z"
},
"message": "Orden 12345 obtenida exitosamente de Manteca"
}

Respuesta de Error (404):

{
"message": "Orden no encontrada en Manteca",
"error": "Not Found",
"statusCode": 404
}

3. Crear Lock de Precio

POST /manteca/order/lock

Crea un lock de precio para una orden (válido por 10 segundos).

Headers:

Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

Body:

{
"coin": "DAI_ARS",
"operation": "BUY"
}

Respuesta Exitosa (201):

{
"success": true,
"data": {
"code": "5a2e2bbdd618b8bc52c7...",
"expires": "1642248615",
"price": "1250.75",
"coin": "DAI_ARS",
"operation": "BUY",
"userId": "manteca_user_id_123",
"lockDuration": 10,
"expiresAt": "2024-01-15T10:30:15.000Z"
},
"message": "Lock creado exitosamente para BUY DAI_ARS. Expira en 10 segundos."
}

Respuesta de Error (400):

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

4. Ejecutar Orden

POST /manteca/order/execute

Ejecuta una orden usando un código de lock previamente obtenido.

Headers:

Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

Body:

{
"amount": "100",
"coin": "DAI_ARS",
"operation": "BUY",
"lockCode": "5a2e2bbdd618b8bc52c7..."
}

Respuesta Exitosa (201):

{
"success": true,
"data": {
"numberId": "12346",
"coin": "DAI_ARS",
"operation": "BUY",
"amount": "100",
"price": "1250.75",
"fee": "2.50",
"status": "COMPLETED",
"createdAt": "2024-01-15T10:30:00Z"
},
"message": "Orden BUY ejecutada exitosamente. ID: 12346"
}

Respuesta de Error (400 - Lock Expirado):

{
"message": "El código de lock ha expirado. Por favor, crea un nuevo lock",
"error": "Bad Request",
"statusCode": 400
}

🔄 Flujo de Trading

Paso 1: Crear Lock de Precio

POST /manteca/order/lock
{
"coin": "DAI_ARS",
"operation": "BUY"
}

Paso 2: Ejecutar Orden (dentro de 10 segundos)

POST /manteca/order/execute
{
"amount": "100",
"coin": "DAI_ARS",
"operation": "BUY",
"lockCode": "codigo_del_lock"
}

⚠️ Errores Comunes

  • 400 Bad Request: Campos faltantes o código de lock expirado
  • 404 Not Found: Orden o usuario no encontrado
  • 401 Unauthorized: Token JWT inválido

📝 Notas Importantes

  • Timeouts: Los locks de precio expiran en exactamente 10 segundos
  • Operaciones: Solo se permiten BUY y SELL
  • Pares: Validar que el par de monedas esté soportado antes de crear locks
  • Fees: Las comisiones se calculan automáticamente
  • Estados: Las órdenes pueden estar en PENDING, COMPLETED, FAILED, CANCELLED