> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtener pedido

> Recupera un pedido completo por id externo tras un webhook o para conciliación.

Devuelve el pedido completo para el identificador externo indicado. Usa este endpoint cuando un webhook referencia un `order_id` pero no incluye el payload completo, o cuando necesitas conciliar estado entre Fire spark y tu POS.

> [!NOTE]
>
> Requiere un access token con el scope `orders:read`. Consulta
> [Token](https://firespark.cloud/docs/es/integrations-api/oauth/token/post.md) 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

```bash theme={null}
curl "https://firespark.cloud/api/integrations/v1/orders/ord-48291" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

## Respuesta

La respuesta envuelve el pedido en `data`.

```json Success theme={null}
{
  "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. |

> [accordion] 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. |

> [!TIP]
>
> En [`order.status.changed`](https://firespark.cloud/docs/es/integrations-api/orders/webhooks), 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 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.