<!-- DOCS_RECEIPT_VERIFICATION:offline-webcrypto -->
# Verify a receipt

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

Verify the public, portable Spoolis Outcome Receipt offline with pinned trust material and no Spoolis account.

## Package

In the canonical example, 100 enrichment records at $1.00 per accepted record produce 98 accepted, 2 rejected with reasons, and $98.00 earned. Install @spoolis/receipt-verifier and pass the caller's expected environment with its matching trust set.

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.

## Trust material

Outcome Receipts use schema spoolis/outcome-receipt@1. Pin receipt entries from /.well-known/spoolis-keys.json for offline verification. The JSON Schema is available at [the Outcome Receipt schema](/schema/outcome-receipt-v1.schema.json).

## Offline signatures and optional online status

Signature validity is offline and permanent and does not depend on Spoolis uptime. Consumers can optionally call fetchReceiptStatus with GET /api/receipts/{id}/status and pass the response as statusSource.

Active, corrected, and revoked are live operator-managed online states. Corrected or revoked makes verifier policy return invalid without changing offline signature authenticity. Advisories contain the operator reason. No replacement receipt ID is promised and no payment is automatically reversed. Without statusSource, verification remains offline-only and reports status_source_unavailable.

## Boundary

No Spoolis account is required to verify a receipt for authenticity. A valid result does not prove authorization, capture, or settlement.
