---
title: "Reverse a redemption"
method: POST
path: "/v1/redemptions/{redemption_id}/reverse"
tags: ["Redemptions"]
---

# Reverse a redemption

`POST /v1/redemptions/{redemption_id}/reverse`

## Request

- Base URL: `https://api.scrip.dev`
- URL: `https://api.scrip.dev/v1/redemptions/{redemption_id}/reverse`
- Auth: HTTP bearer

Reverse all or part of a redemption, returning funds to the participant.

## Path parameters

- `redemption_id` string, uuid, required

## Headers

- `Idempotency-Key` string

## Request body

- ReverseRedemptionRequest: Reverses a redemption, all of it or part of it.
  - `amount` string: Amount to reverse for raw or AMOUNT_BASED redemptions (omit for full reversal, decimal string)
  - `idempotency_key` string: Your key for this reversal. You can send it in the Idempotency-Key header instead; when both are sent they must match.
  - `quantity` integer: Units to reverse for UNIT_BASED catalog redemptions (omit for full reversal)
  - `reason` string, required: Why this reversal is being made (1-500 chars)

## Response `201`

Reversal created

- RedemptionReversalResponse: A reversal of all or part of a redemption.
  - `amount` string: Amount credited back to the participant's balance (decimal string)
  - `created_at` string, date-time: When this reversal was created
  - `id` string, uuid: Unique identifier for this reversal
  - `journal_entry_id` string, uuid: The ledger journal entry created by this reversal
  - `quantity` integer: Units reversed (UNIT_BASED catalog redemptions only)
  - `reason` string: Why this reversal was made
  - `redemption_id` string, uuid: The redemption that was reversed

## Other responses

- `400`: Validation failed (code: validation_error | invalid_json)
- `401`: The API key is missing or not valid. See [Authentication](https://docs.scrip.dev/authentication).
- `403`: The caller is not allowed to do this.
- `404`: Resource not found (code: redemption_not_found)
- `409`: Redemption is not completed, already reversed, its gift-card fulfillment already delivered, participant inactive, amount/quantity exceeds remaining, or another request changed the same balance at the same time (code: redemption_not_completed | already_reversed | fulfillment_delivered | participant_inactive | amount_exceeds_remaining | quantity_exceeds_remaining | retryable_conflict)
- `429`: Too many requests. Wait the number of seconds in the `Retry-After` header, then retry. See [Limits and durations](https://docs.scrip.dev/limits#rate-limits).
- `500`: Something failed on Scrip's side. Retry the request, and quote `request_id` if it keeps failing. [Errors](https://docs.scrip.dev/errors) lists every code, and the [API introduction](https://docs.scrip.dev/api-reference/introduction) describes the error format.

---

[API](https://skmtc.dev/scrip/apis/scrip-api.md) · [All operations](https://skmtc.dev/scrip/apis/scrip-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrip/apis/scrip-api/revisions/c52d35da8d97?raw)
