---
title: "Verify a receipt bundle (or a batch)"
method: POST
path: "/verify"
---

# Verify a receipt bundle (or a batch)

`POST /verify`

## Request

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

## Query parameters

- `require_anchor` boolean
- `receipt` boolean
- `cache` boolean

## Request body

- union
  - Bundle: A continuity-receipt bundle (spec 0.1/0.2/0.3)
    - `spec` string, required
    - `task_id` string, required
    - `receipts` object[], required
  - object
    - `bundle` Bundle, required: A continuity-receipt bundle (spec 0.1/0.2/0.3)
      - `spec` string, required
      - `task_id` string, required
      - `receipts` object[], required
  - object
    - `bundles` Bundle[], required
      - `spec` string, required
      - `task_id` string, required
      - `receipts` object[], required

## Response `200`

verdict payload; ?receipt=1 adds a signed verification_receipt; ?cache=1 adds a cache object

- Verdict
  - `verdict` 'TRUSTED' | 'PROVISIONAL' | 'INSUFFICIENT_EVIDENCE' | 'UNTRUSTED', required
  - `errors` object[]
    - `code` string
    - `detail` string
    - `receipt_id` string, nullable
  - `provisional_reasons` string[]
  - `insufficient_reasons` string[]
  - `summary` object
  - `verification_receipt` 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

## Other responses

- `400`: invalid JSON or shape
- `401`: missing or invalid key
- `402`: x402 payment required (challenge body)
- `413`: body too large (max 1 MiB)
- `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)
