order_id pero no incluye el payload completo, o cuando necesitas conciliar estado entre Fire spark y tu POS.
Requiere un access token con el scope
orders:read. Consulta
Token para obtener un token.Parámetros de ruta
| Parámetro | Requerido | Descripción |
|---|---|---|
id | Sí | Identificador externo del pedido del webhook o canal. Solo alfanuméricos, _ y -. 1–64 caracteres. |
Solicitud
curl "https://firespark.cloud/api/integrations/v1/orders/ord-48291" \
-H "Authorization: Bearer ACCESS_TOKEN"
Respuesta
La respuesta envuelve el pedido endata.
{
"data": {
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"id": "ord-48291",
"brand_id": "0001",
"store_id": "downtown",
"channel_id": "app",
"customer_id": "cust-001",
"is_anonymous": false,
"fulfillment_id": "delivery",
"status": "OPEN",
"payment_status": "IDLE",
"fulfillment_status": "PREPARING",
"lines": [],
"customer": {},
"payment_intents": [],
"totals": {
"currency": "USD",
"subtotal": 12.99,
"discount_rate": 0,
"discount_total": 0,
"tax_rate": 0.15,
"tax_total": 1.95,
"total": 14.94
},
"metadata": {},
"issued_at": "2026-06-17T14:31:45.000Z",
"resolved_at": null
}
}
Objeto pedido
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
uid | Sí | string (UUID) | Identificador interno de Fire spark |
id | Sí | string | Identificador externo del pedido |
brand_id | No | string \ | null | Identificador externo de marca cuando aplica |
store_id | Sí | string | Tienda donde se prepara el pedido |
channel_id | Sí | string | Canal donde pidió el cliente |
customer_id | Sí | string | Identificador externo del cliente |
is_anonymous | Sí | boolean | true cuando el checkout fue como invitado |
fulfillment_id | Sí | string | Opción de fulfillment seleccionada |
lines | Sí | array | Líneas con precios, impuestos, jerarquía de modificadores y metadata por línea |
customer | Sí | object | Datos de cliente, entrega y facturación |
payment_intents | Sí | array | Intents de pago. Cada uno tiene status (DRAFT, LOCKED, COMPLETED, ABANDONED), is_mixed, primary_tender_id, totals y tenders[] (method, provider, collect_at, status, amount, allocation, details). El amount de un tender es { currency, total }: lo que paga ese tender. |
redeem | Sí | array | Canjes del pedido: reward_id, quantity, payment_id, amount, before_taxes, expires_at. amount es el descuento que se muestra y lo paga el tender REDEMPTION de payment_id; totals queda completo. |
totals | Sí | object | Subtotal, impuesto, descuento y total del pedido |
metadata | No | object | Metadatos del partner. Por defecto {}. Tras un callback INJECTING exitoso incluye order_authorization_id e injection_order_id. |
payment_status | Sí | string | IDLE | PENDING | PAID | FAILED | CANCELLED | REFUNDED |
fulfillment_status | Sí | string | Etiqueta de fulfillment del comercio (por ejemplo INJECTING, PREPARING). No es un enum fijo. |
status | Sí | string | OPEN | CLOSED | COMPLETED | VOIDED | REVERSED | REFUNDED | CANCELLED (legado; las cancelaciones nuevas escriben VOIDED) |
issued_at | No | string | Datetime ISO 8601 del pedido. Opcional. |
resolved_at | No | string | Datetime ISO 8601 de estado terminal. Opcional. |
lines
lines
Cada entrada en
lines representa un producto, fee o fila de modificador:| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
type | Sí | string | PRODUCT o FEE |
uid | Sí | string (UUID) | Identificador interno de la línea |
id | Sí | string | Identificador externo de producto o modificador |
parent_uid | Sí | string (UUID) | null | uid de la línea padre para modificadores anidados. null en líneas raíz. |
parent_id | Sí | string | null | id externo de la línea padre. null en líneas raíz. |
name | Sí | string | Nombre mostrado en el ticket |
image_url | No | string | URL de imagen del producto. Opcional. |
menu_id | No | string | Menú desde el que se agregó el producto. Opcional. |
internal_attribution_source | No | string | Fuente en texto libre (SEARCH, CATEGORY, UPSELL, CROSS_SELL, DOWNSELL o custom). Opcional. |
internal_attribution_id | No | string | Id de la fuente (search, id de categoría, id de recommendation o custom). Opcional. |
metadata | No | object | Datos del partner para esta línea. Por defecto {}. |
quantity | Sí | number | Unidades pedidas. Mínimo 1. |
tax_rate | Sí | number | Tasa de impuesto como decimal (por ejemplo 0.15) |
discount_rate | Sí | number | Tasa de descuento como decimal |
unit_subtotal | Sí | number | Subtotal de una unidad, sin hijos |
unit_discount | Sí | number | Descuento de una unidad |
unit_tax_total | Sí | number | Impuesto de una unidad |
unit_total | Sí | number | Total de una unidad |
subtotal | Sí | number | Subtotal de la línea para quantity, sin hijos |
discount_total | Sí | number | Descuento total de la línea |
tax_total | Sí | number | Impuesto total de la línea |
total | Sí | number | Total de la línea para quantity |
unit_group_* | Sí | number | Mismos campos de precio incluyendo hijos a cantidad 1 |
group_* | Sí | number | Mismos campos de precio incluyendo hijos para quantity |
redeem | No | array | Canjes de esta línea raíz, con la misma forma que redeem del pedido. El dinero de la línea queda completo. |
En
order.status.changed, Fire spark
ya envía este objeto en el webhook. Usa GET solo cuando necesites una copia
actualizada o hayas perdido el cuerpo del webhook.Errores
| Estado | Descripción |
|---|---|
401 | Token ausente o inválido |
403 | El token no incluye el scope orders:read |
404 | No existe pedido con este id |