Este endpoint devuelve toda la información de un pedido: sus items, el cliente, la dirección de envío, el historial de pagos y los enlaces HATEOAS con las acciones que puedes ejecutar según su estado actual.
Úsalo cuando necesites:
Obtiene un pedido por su ID de MongoDB
Permiso requerido: orders:read
| Parámetro | Tipo | Descripción |
|---|---|---|
orderId | string | ObjectId del pedido (24 caracteres hex). Se obtiene al crear un pedido o desde el listado. |
Si solo necesitas algunos campos, usa ?fields= para reducir el tamaño de la respuesta:
GET /orders/65f3a1b2c4d5e6f7a8b9c0d1?fields=externalId,orderStatus,total,itemsTip
La proyección mejora el rendimiento cuando consultas pedidos en lote o desde clientes móviles con conexiones lentas.
El objeto _links te indica qué acciones están disponibles sobre el pedido según su estado actual. No tienes que hardcodear la lógica de transiciones en tu cliente.
| Enlace | Aparece cuando |
|---|---|
accept | El pedido está en pending. |
reject | El pedido está en pending. |
prepare | El pedido está en accepted. |
cancel | El pedido no ha sido enviado ni entregado. |
returns | El pedido está en fulfilled o delivered. |
attachments | Siempre disponible para adjuntar archivos. |
Si un enlace no aparece, la acción no es válida en el estado actual.
curl https://api.fenicia.io/orders/65f3a1b2c4d5e6f7a8b9c0d1 \
-H "Authorization: Bearer fn_live_tu_api_key"{
"_id": "65f3a1b2c4d5e6f7a8b9c0d1",
"externalId": "FEN-10042",
"tenantId": "69db07c8bce4d49b18c42a49",
"channelId": "manual",
"channelType": "manual",
"orderStatus": "accepted",
"paymentStatus": "paid",
"currency": "MXN",
"subtotal": 1798.50,
"discount": 100.00,
"tax": 287.76,
"total": 1986.26,
"items": [
{
"sku": "CAM-ROJO-M",
"productName": "Camisa Roja Talla M",
"quantity": 2,
"unitPrice": 499.00,
"lineTotal": 998.00
},
{
"sku": "PAN-AZUL-32",
"productName": "Pantalón Azul 32",
"quantity": 1,
"unitPrice": 899.50,
"discount": 100.00,
"lineTotal": 799.50
}
],
"customerInfo": {
"customerId": "65f3a1b2c4d5e6f7a8b9c0d2",
"firstName": "María",
"lastName": "González",
"email": "maria.gonzalez@example.com",
"phone": "+525512345678"
},
"shippingAddress": {
"street": "Av. Reforma 123",
"city": "Ciudad de México",
"state": "CDMX",
"zipCode": "06600",
"country": "MX"
},
"deliveryInfo": { "method": "express", "carrier": "dhl" },
"timeline": [
{ "event": "order_created", "timestamp": "2026-04-11T14:23:11.000Z" },
{ "event": "payment_received", "timestamp": "2026-04-11T14:23:15.000Z" },
{ "event": "order_accepted", "timestamp": "2026-04-11T14:30:02.000Z" }
],
"orderCreated": "2026-04-11T14:23:11.000Z",
"updatedAt": "2026-04-11T14:30:02.000Z",
"_links": {
"self": "/orders/65f3a1b2c4d5e6f7a8b9c0d1",
"prepare": "/orders/65f3a1b2c4d5e6f7a8b9c0d1/prepare",
"cancel": "/orders/65f3a1b2c4d5e6f7a8b9c0d1/cancel",
"attachments": "/orders/65f3a1b2c4d5e6f7a8b9c0d1/attachments"
}
}| Código | Status | Descripción |
|---|---|---|
ORDER_NOT_FOUND | 404 | No existe un pedido con ese ID en tu tenant. |
INVALID_OBJECT_ID | 400 | El orderId no tiene formato válido de ObjectId. |
INSUFFICIENT_PERMISSIONS | 403 | La API key no tiene el scope orders:read. |
INVALID_API_KEY | 401 | La API key es inválida o fue revocada. |
Aislamiento por tenant
Solo puedes consultar pedidos de tu propio tenant. Intentar acceder a un pedido de otro tenant devuelve 404, nunca información cruzada.