Este endpoint devuelve toda la información de un pedido: sus items, el cliente, el canal de origen y los enlaces HATEOAS con las acciones disponibles según su estado actual. Esta página también cubre dos endpoints relacionados sobre un pedido puntual: sus transiciones de estado válidas y su desglose financiero de utilidad.
Úsalo cuando necesites:
Mostrar el detalle de un pedido en tu aplicación.
Sincronizar información hacia sistemas externos.
Verificar qué acciones están disponibles antes de ejecutar una transición (aceptar, preparar, cancelar).
Calcular la utilidad real de un pedido después de envío, comisión, costo de mercancía y empaque.
El objeto _links (dentro de data, no como hermano del pedido) indica qué acciones están disponibles según el estado actual. Las acciones posibles son accept, reject, cancel, prepare, fulfill y returns — el motor de enlaces solo expone las que son válidas para el estado actual del pedido según la máquina de estados. No tienes que hardcodear esa lógica en tu cliente.
Si una acción no aparece en _links, no es válida en el estado actual; consulta Transiciones de estado para la máquina de estados completa.
Los valores de estado del ejemplo (accepted → processing, preparing, cancelled) son reales y provienen directamente de la máquina de estados (ORDER_STATE_MACHINE, ver Transiciones de estado). Los nombres exactos de las claves del objeto de respuesta (currentStatus, validTransitions) no fueron verificados línea por línea contra el código fuente — confírmalos contra la respuesta real antes de depender de su forma exacta.
Ningún estado devuelto por este endpoint puede ser distinto de los 23 estados reales de la máquina de estados; estados como on_hold no existen y nunca aparecerán en la respuesta.
Este endpoint responde la pregunta "¿cuánto ganó realmente este pedido?" restando del ingreso (revenue) el costo real de envío, la comisión del canal, el costo de mercancía vendida (COGS) y el empaque — a diferencia de shippingCharged, que es lo cobrado al cliente por envío, costs.shipping es lo que realmente costó el envío.
Campo
Descripción
revenue
Ingreso total del pedido.
subtotal
Subtotal antes de impuestos.
shippingCharged
Monto de envío cobrado al cliente.
costs.shipping
Costo real del envío (tarifa pagada a la paquetería).
costs.commission
Comisión del canal de venta.
costs.cogs
Costo de la mercancía vendida.
costs.packaging
Costo de empaque.
costs.otherFees
Otras comisiones o cargos.
taxWithheld
Impuestos retenidos.
netProfit
Utilidad neta (revenue menos todos los costos).
marginPercent
Margen de utilidad como porcentaje.
flags.cogsComplete
false si alguna línea del pedido no tiene snapshot de costo — en ese caso el desglose no inventa un costo, lo marca incompleto.
flags.currencyMixed
true si el pedido mezcla monedas distintas en sus componentes.
flags.packagingPending
true si el costo de empaque aún no se ha registrado.
Sin costos inventados
Cuando falta el snapshot de costo de una línea, el desglose marca flags.cogsComplete: false en lugar de estimar o inventar un costo. Un netProfit calculado con cogsComplete: false es parcial: trátalo como un mínimo, no como la utilidad final.