Get Receipt
Verification
Get Receipt
The signed receipt for a response, with the full transparency event log.
GET
Get Receipt
Returns the signed receipt for a response: a transparency event log that binds the request and
response hashes to the attested gateway, signed by a key from the attested
keyset. This is the canonical per-response proof. Look up a receipt by
the
x-receipt-id header on the inference response, or by the response id. For how to read the
event log, see Receipts.
Request
A receipt id (
rcpt-…) or the response id (chat id). The receipt id is returned in the
x-receipt-id response header on /v1/chat/completions.Response
200 OK, application/json. The bare canonical receipt:
| Field | Type | Description |
|---|---|---|
api_version | string | ACI version token, for example aci/1. |
receipt_id | string | The receipt id (rcpt-…). |
chat_id | string | The response/chat id. |
workload_id | string | Must match the attestation report. |
workload_keyset_digest | string | Must match the attestation report. |
endpoint | string | The route served, for example /v1/chat/completions. |
method | string | HTTP method. |
served_at | number | Unix seconds. |
event_log | array | Ordered transparency events (below). |
signature | string | Signature over the receipt, by a key in the attested keyset. |
event_log entries
type | Key fields |
|---|---|
request.received | body_hash |
middleware.forwarded | body_hash |
route.selected | target_route_id |
request.forwarded | body_hash |
transparency.request_modified | (present when forwarded body differs) |
upstream.verified | provider, upstream_name, model_id, url_origin, verifier_id, result, required, session_id, channel_bindings, claims |
response.received | cleartext_hash |
transparency.response_modified | (present when returned response differs) |
response.returned | cleartext_hash, wire_hash |
Example (truncated)
Verifying the receipt
- Confirm
workload_idandworkload_keyset_digestmatch a verified attestation report. - Verify
signatureunder areceipt_signing_keysentry from the attested keyset. - Confirm
request.received.body_hashmatches the request you sent andresponse.returned.wire_hashmatches the response you received. - Read
upstream.verified:result = verifiedandrequired = trueindicate a confidential model served from a verified, channel-bound upstream. Followsession_idto the attested session.
Legacy alias
GET /v1/signature/{id} is a legacy compatibility alias that wraps this same receipt in a
legacy envelope, documented under Signature.