<!-- DOCS_OUTCOME_RECEIPT:field-specification -->
# Outcome Receipt specification

Canonical HTML: https://spoolis.com/docs/outcome-receipt. This page is also available in machine-readable Markdown.

Field-by-field contract for the signed Spoolis Outcome Receipt.

## Fields

The Outcome Receipt is Spoolis's signed answer to: what happened, what passed, and what was earned?

Most integrators care about five fields: agreement identifies the accepted Spool and agreement version; condition_results records what each condition required and how it resolved; result gives the aggregate outcome; units gives submitted, accepted, and rejected counts; amounts.earned gives the amount produced by the agreed economic rule.

Outcome Receipt v1 also records schema and environment, a content-derived ID, verification bindings, evidence root, actors, times, optional series or supersession, nonce, key ID, Ed25519 signature, and algorithm. Read the [published JSON Schema](/schema/outcome-receipt-v1.schema.json) for the full field reference.

## Methods

Live today: deterministic and human_confirmed. Reserved / planned: external_tool is Reserved and ai_assisted is Planned. Schema acceptance does not mean an executor is live. Use the single method-status table in /docs/verification when choosing a value.

Fixed code and inputs produce a fixed evaluation. Durable evidence may support later reproduction; time-bound network observations may not.

Evidence provenance is origin and capture metadata, not a trust score.

## Worked example

100 submitted · 98 accepted · 2 rejected · $98.00 earned.

A buyer pays for 100 enrichment records at $1.00 per accepted record. Spoolis verifies the delivery, accepts 98 records, rejects 2 with reasons, and signs the Outcome Receipt for $98.00 earned. Spoolis determines earned value and signs the Outcome Receipt. A wallet, marketplace, payment system, or configured integration may verify and consume it, then act under its own authorization and settlement policy. Offline signature verification remains sufficient.

## Signature verification

Use verifyOutcomeReceipt from @spoolis/receipt-verifier with the matching receipt environment entries from /.well-known/spoolis-keys.json. A valid signature proves the receipt is authentic and unaltered. It does not prove the underlying evidence was true or authorize payment.

More precisely, a valid Ed25519 signature proves authenticity and integrity, not evidence truth, reproducibility of every check, payment authorization, or settlement.

## Receipt status

Offline signature verification is live and does not depend on Spoolis uptime. The optional public GET /api/receipts/{id}/status endpoint adds online status without an account or API key.

Active, corrected, and revoked are live online states. An authorized operator manages corrected and revoked overrides and supplies the advisory reason. Either override makes verifier policy return invalid without changing offline signature authenticity. The response does not identify a replacement receipt. No payment is automatically reversed.
