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
BUYySELL - 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