Ventas de Máquina
Obtiene las ventas de una máquina para un día específico, con totales, desglose por método de pago y detalle de cada venta.
Endpoint
GET {{base_url}}/api/v1/teams/{team_id}/machines/{machine_id}/sales
Autenticación
Incluye tu API key como token Bearer:
Authorization: Bearer <API_KEY>
Request
curl "{{base_url}}/api/v1/teams/5e2d4aa0-2f45-4a73-8b4b-9cbb63d5bb4a/machines/3b8f55be-f2fd-4f2d-8c3b-bb1eaf6e1c32/sales?date=2026-01-22" \
-H "Authorization: Bearer <API_KEY>"
Parámetros de ruta
team_id: UUID del equipo.machine_id: UUID de la máquina.
Parámetros de consulta
date: fecha a consultar en formatoYYYY-MM-DD(por ejemplo,2026-01-22).
Si no envías date, el endpoint usa el día actual en la zona horaria America/Monterrey. El rango consultado es de inicio a fin de día en esa zona. Si la máquina tiene activeUntilDate, el fin del rango se limita a esa fecha.
Respuesta
El servicio responde con date, summary y sales.
Campos en summary:
totalSales.valueCents: total vendido (valor en centavos).totalSales.valueFormatted: total formateado en moneda local.totalCount: número de ventas.byPaymentMethod: desglose por método de pago.
Campos en summary.byPaymentMethod:
card: ventas con tarjeta.cash: ventas en efectivo.remote: ventas remotas onullsi no hay.free: ventas gratuitas onullsi no hay.
Campos en summary.byPaymentMethod.*:
count: número de ventas para el método.total.valueCents: total del método (valor en centavos).total.valueFormatted: total formateado.
Campos en summary.byPaymentMethod.card.breakdown:
products: total con tarjeta para productos onullsi no hay.services: total con tarjeta para servicios onullsi no hay.recharges: total con tarjeta para recargas onullsi no hay.
Campos en sales:
id: identificador de la venta.createdAt: fecha de creación (ISO 8601).createdAtFormatted: fecha local con formatodd/MM/yyyy hh:mm:ss a.amount.valueCents: monto de la venta (valor en centavos).amount.valueFormatted: monto formateado en moneda local.paymentMethod: método de pago (CARD,CASH,REMOTE,FREE) onull.type: tipo de venta (PRODUCT,SERVICE,PHONE_RECHARGE).machineProductId: identificador del producto en la máquina.machineMdbProductId: identificador MDB del producto.taecelTransactionId: identificador de transacción de recargas onull.token: token asociado a la venta onull.product: información del producto onull.
Campos en sales[].product:
id: identificador del producto.name: nombre del producto.sku: SKU del producto.price.valueCents: precio del producto (valor en centavos) onull.price.valueFormatted: precio formateado onull.images: imágenes del producto.
Campos en sales[].product.images:
url: URL pública de la imagen.
{
"date": "jueves, 22 de enero de 2026",
"summary": {
"totalSales": {
"valueCents": 6200,
"valueFormatted": "$62.00"
},
"totalCount": 4,
"byPaymentMethod": {
"card": {
"count": 2,
"total": {
"valueCents": 4200,
"valueFormatted": "$42.00"
},
"breakdown": {
"products": {
"valueCents": 3200,
"valueFormatted": "$32.00"
},
"services": {
"valueCents": 1000,
"valueFormatted": "$10.00"
},
"recharges": null
}
},
"cash": {
"count": 1,
"total": {
"valueCents": 1500,
"valueFormatted": "$15.00"
}
},
"remote": {
"count": 1,
"total": {
"valueCents": 500,
"valueFormatted": "$5.00"
}
},
"free": null
}
},
"sales": [
{
"id": "1c5f6e3f-1c3f-48a6-b7b5-0d5e5c8f0a2a",
"createdAt": "2026-01-22T18:22:10.000Z",
"createdAtFormatted": "22/01/2026 12:22:10 p",
"amount": {
"valueCents": 2500,
"valueFormatted": "$25.00"
},
"paymentMethod": "CARD",
"type": "PRODUCT",
"machineProductId": "d55b36a0-8e3b-4b2d-9e3d-4b5b2a65f5a0",
"machineMdbProductId": "A1",
"taecelTransactionId": null,
"token": null,
"product": {
"id": "91e277b6-3f22-4b06-88c1-5f7c3f0f5a12",
"name": "Agua Natural 600ml",
"sku": "AGU-600",
"price": {
"valueCents": 2500,
"valueFormatted": "$25.00"
},
"images": [
{
"url": "https://cdn.terpasolutions.com/products/agua.jpg"
}
]
}
}
]
}
Errores comunes
401 Unauthorized: el token es inválido o falta la cabecera de autenticación.403 Forbidden: no tienes permisos para acceder a este recurso.404 Not Found: la máquina no existe o no pertenece al equipo.