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

# Voiding redemptions

> Void a redemption that should not count, within 30 days, and understand what a void changes.

Voiding marks a redemption as not counting: it frees the customer's entity limit, removes the redemption from billing and tells you and the provider through webhooks. It does not return the voucher to stock. Voiding needs the permission `void-consumer-redemptions`, which can be granted to API keys.

## When to void

Void a redemption when the customer did not get the benefit, for example:

* your system issued the code but the order behind it was cancelled before the customer saw the code;
* a support case shows the code never reached the customer, and you issue a new one;
* you redeemed by mistake (wrong voucher set, test call against production).

Do not void to "take back" a voucher the customer already used at the provider: the void does not invalidate the code at the provider. Call [`POST /consumer/v1/redemptions/{redemptionId}:void`](https://docs-consumer.voucher.allride.io/api-reference/consumer-redemptions-void) with a reason:

```bash theme={null}
curl -X POST "$VOUCHER_API_BASE_URL/consumer/v1/redemptions/6017:void" \
  -H "Authorization: Bearer $VOUCHER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: void-6017" \
  -d '{ "voidReason": "Order 8812 cancelled before delivery" }'
```

The response is **200** with the redemption, now with `status: voided`, `voidedAt`, `voidedBy` and `voidReason`.

## Rules

* **30-day window:** you can void a redemption up to 30 days after its `redeemedAt`. Later attempts answer 422 [`void-window-expired`](https://docs-consumer.voucher.allride.io/errors/catalog#void-window-expired); `more.voidableUntil` tells you when the window closed. Contact AllRide support for older cases.
* **Reason required:** `voidReason` is 1-500 characters. It is visible to you and recorded in your audit log; it is never shown to the provider. Do not put personal data in it.
* **Once only:** voiding a voided redemption answers 409 [`redemption-already-voided`](https://docs-consumer.voucher.allride.io/errors/catalog#redemption-already-voided). With the same `Idempotency-Key` a retry replays the original 200.
* **No restock:** the voucher is never returned to stock. A single-use voucher stays used; a multi-use voucher keeps its count.
* **Limits:** the void frees one unit of the entity's `entityLimit` for the redemption's period and of the visitor's per-person cap on an `email-otp` link. It does not lower the total `redemptionCount` of a Redemption Link and does not re-open an exhausted link; raise the link's `maxRedemptions` for that.
* **Billing:** a void before the month is invoiced removes the redemption from the next invoice. An invoice already issued is never changed by a later void; if an invoice is wrong, AllRide corrects it with a Stornorechnung and a corrected invoice (see [Corrections: Stornorechnung](https://docs-consumer.voucher.allride.io/consumer/billing.md#corrections-stornorechnung)). See [Billing](https://docs-consumer.voucher.allride.io/consumer/billing.md).
* **Statistics:** the void counts in the statistics bucket of `voidedAt`, so a void in November of an October redemption shows in November.
* **Webhooks:** you receive [`redemption-voided`](https://docs-consumer.voucher.allride.io/webhooks/events/redemption-voided) with the voided redemption. The provider receives its own `redemption-voided` with `voidedAt` but without your reason, entity or metadata.
* Voids are recorded in your audit log for every caller, including API keys. AllRide staff who void on your behalf appear as `AllRide` in `voidedBy`.

Unknown or another partner's redemption ids answer 404 [`redemption-not-found`](https://docs-consumer.voucher.allride.io/errors/catalog#redemption-not-found).

## Related

* [Redeeming vouchers](https://docs-consumer.voucher.allride.io/consumer/redeeming.md)
* [Billing](https://docs-consumer.voucher.allride.io/consumer/billing.md)
* [Analytics](https://docs-consumer.voucher.allride.io/consumer/analytics.md)
* [Void a redemption](https://docs-consumer.voucher.allride.io/api-reference/consumer-redemptions-void.md)


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