---
title: "Verify a verification receipt (signature + shape; optional digest and revocation checks)"
method: POST
path: "/verify-receipt"
---

# Verify a verification receipt (signature + shape; optional digest and revocation checks)

`POST /verify-receipt`

## Request

- Base URL: `https://api.whitemagic.dev`
- URL: `https://api.whitemagic.dev/verify-receipt`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-WM-Key`
  - API key in header `X-PAYMENT`

## Request body

- union
  - VerificationReceipt: A signed record of a verification run: the full result (verdict, errors, reasons, summary) with offline-checkable consistency.
    - `kind` 'continuity-receipt-verification', required
    - `version` unknown, required
    - `bundle_digest` string, required
    - `verdict` 'TRUSTED' | 'PROVISIONAL' | 'INSUFFICIENT_EVIDENCE' | 'UNTRUSTED', required
    - `error_codes` string[], required
    - `errors` object[], required
      - `code` string, required
      - `detail` string
      - `receipt_id` string, nullable
    - `provisional_reasons` string[], required
    - `insufficient_reasons` string[], required
    - `summary` object, required
    - `verified_at` string, required
    - `verifier` object
    - `issuer` string, required
    - `sig` object, required
  - object
    - `receipt` VerificationReceipt, required: A signed record of a verification run: the full result (verdict, errors, reasons, summary) with offline-checkable consistency.
      - `kind` 'continuity-receipt-verification', required
      - `version` unknown, required
      - `bundle_digest` string, required
      - `verdict` 'TRUSTED' | 'PROVISIONAL' | 'INSUFFICIENT_EVIDENCE' | 'UNTRUSTED', required
      - `error_codes` string[], required
      - `errors` object[], required
        - `code` string, required
        - `detail` string
        - `receipt_id` string, nullable
      - `provisional_reasons` string[], required
      - `insufficient_reasons` string[], required
      - `summary` object, required
      - `verified_at` string, required
      - `verifier` object
      - `issuer` string, required
      - `sig` object, required
    - `bundle_bytes_b64` string: Bundle JSON bytes (base64); parsed and canonically digested
    - `bundle` Bundle: A continuity-receipt bundle (spec 0.1/0.2/0.3)
      - `spec` string, required
      - `task_id` string, required
      - `receipts` object[], required
    - `revocations` object[]: Revocation statements for the receipt's issuer (opt-in key_revoked check)

## Response `200`

validity

- ReceiptCheck
  - `valid` boolean, required
  - `errors` string[], required
  - `issuer` string
  - `verdict` string
  - `verified_at` string
  - `bundle_digest` string
  - `digest_match` boolean, nullable

## Other responses

- `400`: invalid JSON or shape
- `401`: missing or invalid key
- `429`: Daily cap reached (Retry-After: 86400; X-RateLimit-* report the bucket)

---

[API](https://skmtc.dev/whitemagic/apis/whitemagic-receipt-verification-api.md) · [All operations](https://skmtc.dev/whitemagic/apis/whitemagic-receipt-verification-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whitemagic/apis/whitemagic-receipt-verification-api/revisions/92a4341eb473?raw)
