---
title: "Supersede an Outcome Receipt"
method: POST
path: "/api/v1/receipts/{receipt_id}/supersede"
---

# Supersede an Outcome Receipt

`POST /api/v1/receipts/{receipt_id}/supersede`

## Request

- Base URL: `https://spoolis.com`
- URL: `https://spoolis.com/api/v1/receipts/{receipt_id}/supersede`
- Auth: HTTP bearer

Issues a signed successor receipt with retained earned value. The owner or a counterparty named by the hash-covered dispute policy may call this endpoint within the declared window. There is no review queue or UI.

## Path parameters

- `receipt_id` string, required

## Request body

- ReceiptSupersedeRequest
  - `reason` 'verification_defect' | 'dispute_resolution', required
  - `note` string, required
  - `earned_cents` integer, required

## Response `201`

Signed successor Outcome Receipt

- ReceiptSupersedeResponse
  - `receipt` OutcomeReceipt, required: Signed spoolis/outcome-receipt@1 artifact.
    - `recipe` object
      - `slug` string, required
      - `hash` string, required
      - `conditions` object[], required
    - `agreement` object
      - `acceptance` object
        - `mode` 'unilateral', required
        - `provider_accepted_in_spoolis` unknown, required
        - `accepted_by` 'initiator', required
    - `amounts` object
      - `earned` string, required
      - `committed` string: Omitted when verification ran without max_amount_cents.
      - `asset` string, required
      - `decimals` integer, required
    - `condition_results` object[]
      - `required_evidence` object[]
        - `requirement_id` string, required
        - `state` 'present' | 'missing' | 'stale' | 'unavailable' | 'provenance_unsatisfied', required
        - `satisfied` boolean, required
        - `evidence_ref` string
        - `reason` string
    - `evidence_completeness` object
      - `required` integer, required
      - `satisfied` integer, required
      - `missing` integer, required
      - `stale` integer, required
      - `unavailable` integer, required
      - `unsatisfied_provenance` integer, required
    - `units` object
      - `unit_results` object[]
        - `identity` object
          - `id` string, required: SHA-256 over the private per-Spool salt and unit identity value.
          - `label` string
    - `supersedes` object
      - `receipt_id` string, required
      - `reason` 'verification_defect' | 'appeal_reversal' | 'dispute_resolution' | 'review_decision', required: Backward link to the receipt replaced by a correction, dispute resolution, or human review decision.
    - `review` object
      - `window_seconds` integer, required
      - `window_ends_at` string, date-time, required
      - `who_may_dispute` string[], required
      - `scope` 'outcome' | 'units', required
      - `on_dispute` 'freeze_all' | 'freeze_disputed_value', required
  - `superseded` object, required
    - `receipt_id` string, required
    - `status` 'corrected' | 'revoked', required
  - `status_url` string, required

## Other responses

- `400`: Machine-readable API error
- `401`: Machine-readable API error
- `403`: Machine-readable API error
- `404`: Machine-readable API error
- `409`: Machine-readable API error
- `429`: Machine-readable API error

---

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