Receipt fields
Every receipt response returns aStoredReceipt object. The core execution metadata is nested under the receipt key as an ExecutionReceipt. Two additional top-level fields, output and stderr, carry the raw invocation result and any captured error output when available.
ExecutionReceipt fields (nested under receipt)
Each ExecutionReceipt captures the full lifecycle of a single invocation:
The unique identifier for this receipt. Use it to fetch a specific receipt or submit a verification verdict.
The ID of the agent that was invoked.
The ID of the provider that hosts the agent.
The invocation outcome. One of:
running— the invocation is in progress (async only)succeeded— the agent returned a successful A2A responsefailed— the invocation failed (network error, agent error, or gateway rejection after dispatch)rejected— the invocation was rejected by the gateway before any A2A call was made (blocked entity, policy violation, etc.)
The current verification verdict. See Verification verdicts below.
SHA-256 hex digest of the normalized request payload (message, input, skill ID, and settlement fields). Use this to verify that two receipts represent identical requests.
SHA-256 hex digest of the result payload, set on successful completion.
null while the invocation is running or if it failed before producing output.ISO 8601 timestamp when the gateway began processing the invocation.
ISO 8601 timestamp when the invocation completed.
null while status is running.The number of cost units charged for this invocation, if the agent card declares a cost.
null if the agent has no declared cost.StoredReceipt top-level fields
The raw JSON result payload returned by the agent, captured at completion time.
null if the invocation failed, was rejected, or produced no structured output.Any plain-text error or diagnostic output captured during the invocation.
null when not present.Query receipts
List receipts
Filter receipts by agent, provider, or verification verdict. All query parameters are optional.{ "items": [...] }. Each item is a StoredReceipt that nests the core ExecutionReceipt under a receipt key and includes optional output and stderr fields:
Query parameters
Return only receipts for the specified agent.
Return only receipts for agents belonging to the specified provider.
Filter by verification verdict. One of:
not_required, pending, verified, failed.Maximum number of receipts to return. Defaults to the node’s configured list limit.
Fetch a single receipt
StoredReceipt object (not wrapped in items). The StoredReceipt nests the ExecutionReceipt under the receipt key and adds two optional fields — output (the raw JSON result, if available) and stderr (any captured error output). Returns HTTP 404 if the receipt ID does not exist.
Verification
Verification verdicts
| Verdict | Meaning |
|---|---|
not_required | The agent has risk_level: "low". No verification step is needed. |
pending | The agent has risk_level: "medium" or "high". The receipt is waiting for a verifier to adjudicate. |
verified | At least one verifier has confirmed the outcome matches expectations. |
failed | Verification found a discrepancy between the recorded digest and the expected result. |
Low-risk agents receive
not_required automatically at receipt creation time and never enter the pending queue. Medium- and high-risk agents always start with pending and require either a manual verification or an automated sweep to advance.Submit a manual verification
Send aPOST to /v1/receipts/:receipt_id/verify to record a verification verdict for a specific receipt. You can use this for human-in-the-loop audits or custom automated checks outside the built-in sweep.
Verify request fields
The identifier of the entity submitting this verdict. Can be a human auditor ID, an automated system name, or any string that identifies the verifier in your audit trail.
The verification outcome. Must be one of
verified or failed. You cannot submit not_required or pending as a manual verdict.Set to
true if this verdict was produced by an automated process rather than a human reviewer. Defaults to false.Optional explanation for the verdict. Especially useful when
verdict is failed to describe what discrepancy was found.List verification records for a receipt
Retrieve the full history of verification attempts for a specific receipt:{ "items": [...] } where each entry is a VerificationRecord:
Automated verifier sweep
The verifier sweep processes all receipts withverification: "pending" in a single pass. Run it on a schedule or after a batch of invocations to keep the pending queue clear.
VerificationRecord objects created during this sweep run:
items is an empty array.