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

# Reembolsar pedido

> Reembolsa un pedido fulfilled del cliente dentro de las 24 horas posteriores al fulfillment.

Reembolsa los pagos de un pedido fulfilled del cliente autenticado. Solo cambian los tenders (`REFUNDED`); el `status` y el `fulfillment_status` del pedido no cambian, así que el POS no recibe webhook.

Solo se pueden reembolsar pedidos ya fulfilled cuyo `resolved_at` esté dentro de las últimas 24 horas. Llamarlo otra vez responde `200` con el pedido.

> [!NOTE]
>
> Requiere un access token de Storefront API de [Intercambio de
> token](https://firespark.cloud/docs/es/storefront-api/oauth/exchange/post.md).

En `@fire-spark/storefront`, llama `order.refund()`: valida que el pedido esté entregado, anula los cobros del dispositivo y llama a este endpoint con `type: "REFUND"`. `order.refundOrder()` sigue llamándolo sin body.

> [!WARNING]
>
> Los pedidos que aún no se cumplieron no se reembolsan aquí. Cancélalos con
> [Cancelar pedido](https://firespark.cloud/docs/es/storefront-api/orders/\[id]/cancel/post) antes del
> fulfillment.

## Parámetros de ruta

| Parámetro | Requerido | Descripción |
| - | - | - |
| `id` | Sí | Identificador externo del pedido |

## Body

Opcional, mismos campos que [Cancelar pedido](https://firespark.cloud/docs/es/storefront-api/orders/\[id]/cancel/post). `type` solo puede ser `REFUND`. Un tender informado como `REVERSED` queda `REFUNDED`.

## Solicitud

```bash theme={null}
curl -X POST "https://firespark.cloud/api/storefront/v1/orders/ord-48291/refund" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "type": "REFUND" }'
```

## Respuesta

Devuelve `200` con el pedido y sus tenders reembolsados.

```json Success theme={null}
{
  "data": {
    "id": "ord-48291",
    "status": "COMPLETED",
    "fulfillment_status": "FULFILLED",
    "payment_status": "REFUNDED"
  }
}
```

## Errores

| Estado | Descripción |
| - | - |
| `400` | Body mal formado o `type` desconocido |
| `401` | Token ausente o inválido, o `device` con secreto incorrecto o no vinculado |
| `403` | `device` de otro workspace (`DEVICE_SCOPE_MISMATCH`) |
| `404` | Pedido no encontrado |
| `422` | Pedido no fulfilled (`ORDER_NOT_FULFILLED`), ventana de 24 horas vencida (`REFUND_WINDOW_EXPIRED`), pedido no reembolsable, `type` distinto de `REFUND` (`TYPE_ENDPOINT_MISMATCH`) o tender informado desconocido |


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