> ## 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.

# Migrar pedidos

> Hace upsert de un lote de pedidos históricos terminales. Migra primero los clientes.

Valida un lote de 1–1000 pedidos **terminales** y encola un upsert asíncrono. Se aceptan `COMPLETED`, `VOIDED`, `REVERSED`, `REFUNDED` y `CANCELLED`. `OPEN` y `CLOSED` se rechazan con `422`. Nunca se sobrescriben pedidos vivos `OPEN`/`CLOSED`.

> [!NOTE]
>
> Requiere un access token con el scope `orders:write`. Ver
> [Token](https://firespark.cloud/docs/es/admin-api/oauth/token/post.md).

Migra primero los clientes. Cada `customer_id` debe existir como cliente vivo. Se validan store, channel, fulfillment y brand (si viene).

Los pedidos `COMPLETED` deben estar `PAID` y tener al menos un payment intent. Los `tenders[]` de cada intent son los pagos. Los pedidos `REFUNDED` deben tener `payment_status` `REFUNDED`. `issued_at` y `resolved_at` son obligatorios, y `resolved_at` debe ser mayor o igual que `issued_at`. Si omites `fulfillment_status`, se deriva de `status` (`FULFILLED`, `VOIDED`, `REVERSED`, `CANCELLED` o `REFUNDED`). No se arranca el walker de fulfillment.

## Respuesta

Devuelve `201` con el trabajo en cola (`id`, `status: QUEUED`, `accepted`).

| Estado | Significado |
| - | - |
| `201` | Lote aceptado y encolado |
| `422` | Error de validación o estado no terminal |
| `429` | Rate limit (`admin-migrate`) o cola llena (100 trabajos en cola) |
| `503` | Falta la regla de rate limit en producción |

Sigue el progreso en el dashboard en **Pedidos → Migraciones**.


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