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

# Void tender

> Void one unpaid tender on a placed order.

Voids one tender that is not yet `PAID`, `CANCELLED`, or `REFUNDED`. The call is idempotent by `idempotency_key`. A paid tender is refunded instead.

> [!NOTE]
>
> Requires a Storefront API access token from [Token
> exchange](https://firespark.cloud/docs/storefront-api/oauth/exchange/post.md). The order must already be
> placed.

In `@fire-spark/storefront`, call `order.voidTender(tenderId, reason)`.

## Path parameters

| Parameter | Required | Description |
| - | - | - |
| `id` | Yes | External order identifier |
| `tenderId` | Yes | Tender identifier |

## Request body

| Field | Required | Description |
| - | - | - |
| `idempotency_key` | Yes | 10–64 characters. Reuse it to retry the same void. |
| `reason` | No | Up to 500 characters |

```bash theme={null}
curl -X POST "https://firespark.cloud/api/storefront/v1/orders/ord-48291/tenders/tnd-card-1/void" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "idempotency_key": "void-9f3c1a20b4" }'
```

## Response

Returns `200` with the order. The tender status is `CANCELLED` when the provider accepts the void. A provider result of `NEEDS_REVIEW` still voids the tender and reports the case for review. A rejection returns `502` and leaves the tender unchanged.

## Error responses

| Status | Description |
| - | - |
| `404` | Order or tender not found |
| `409` | The order is still `OPEN`, or the tender is already paid, cancelled, or refunded |
| `502` | The provider rejected the void |


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