---
title: "Verify an AER-1 execution receipt (draft-zambo-aer1-23 Section 6; keyless)"
method: POST
path: "/aer1/verify"
---

# Verify an AER-1 execution receipt (draft-zambo-aer1-23 Section 6; keyless)

`POST /aer1/verify`

## Request

- Base URL: `https://api.whitemagic.dev`
- URL: `https://api.whitemagic.dev/aer1/verify`
- Auth: none required

Structural checks for AER-1 schema 0.3/0.4 receipts report the structural verdict ('pass', 'verification failed', or 'rejected: <reason>') beside the Section 6 id_verdict ('matched', 'mismatched', 'unverified', or 'absent'; 'resolved' requires a Section 9 resolver this validator does not operate). A caller-supplied expected_id is compared as a Section 6 (a) check: a match is reported as id_verdict 'matched' with the same-channel corroboration caution attached as advisory metadata that alters neither layer. Legacy schema 0.3 receipts without metadata_hash are accepted and explicitly reported as a legacy acceptance with the members read in legacy form and the unbound field set.

## Request body

- union
  - object
    - `receipt` object, required: The AER-1 execution receipt.
    - `canonical_bytes` string: Optional UTF-8 text compared byte-for-byte with the receipt's required base64 canonical_bytes member.
    - `expected_id` string, uuid: Optional expected receipt id for the Section 6 (a) comparison.
  - object: A bare AER-1 receipt object.

## Response `200`

Two-layer report with structural verdict 'pass' (id_verdict matched or unverified)

- object

## Other responses

- `400`: Structural rejection or id comparison mismatch; the body carries both layers (structural_verdict and id_verdict)

---

[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)
