AI agent receipt template: the fields that make a receipt checkable

The problem this page solves: a vendor hands you a document called a receipt, and there is nothing in it you can check. It lists a task, a time, and a success line, all written by the system being asked about. An AI agent receipt template is the fixed field set that prevents that: the same fields on every receipt, two of which let a stranger recompute the record and catch any later edit.

See it live: generate a real verifiable receipt in 30 seconds, no signup, and read its fields against this template.

Published October 18, 2026. Updated October 18, 2026. Written against draft-zambo-aer1-23.

AI agent receipt template

One receipt covers one tool call. These are the fields it carries, and what each one is for:

  • Receipt identifier. A stable UUID naming this receipt, so a set of receipts can be referenced, ordered, and checked one by one.
  • Tool name. The tool that ran, in the caller's scope. Not a category: the specific call.
  • Provenance class. Who ran or reported the action, recorded inside the committed payload, so the claim about origin is itself part of what verification covers. A receipt whose id is supplied from outside the record is reported as unverified until it is bound by an expected id or by resolution, per the draft.
  • Timestamp. An RFC 3339 time for when the execution was recorded.
  • Recorded inputs. What the call was given, as recorded at execution time.
  • Canonical bytes. The exact bytes of the result that the commitment was computed over, in a stated byte layout, so two implementations reading the same receipt compute the same digest.
  • Output commitment. The SHA-256 digest of those bytes, written as sha256: followed by the lowercase hex. This is the field that makes the receipt verifiable: recompute it, and any change to the saved result shows.
  • Public URL. A stable address where the receipt resolves without an account, so the record outlives the session and the chat that produced it.

Multi-step jobs add one more layer rather than new fields: the step receipts are bound in order by a workflow record, so a whole run can be checked for completeness as well as for edits. The template is published as an open format, AER-1 (IETF Internet-Draft draft-zambo-aer1-23), with a public conformance suite, precisely so the shape does not belong to one vendor: any system can mint to it, and any reader can verify against it.

A filled example

Templates are easier to judge filled in. This hub's receipts page published a live example on October 16, 2026: a live_price call for BTC returned $81,461.00 and left receipt 03d9bc76-19f4-4582-ad81-37f681182871, which the public verify endpoint reports verified. Read it against the template: the identifier names it, the tool and timestamp place it, the saved output is the price the system observed, and the commitment over that record is what the verify endpoint recomputed to reach its verdict. A template-shaped document without the commitment could carry every other field and still prove nothing, which is why the commitment field is the one to look for first when a vendor shows you their receipt format.

To see the fields on a receipt you generate yourself, the AI agent receipt generator page walks the one-job path, and how to verify an AER-1 receipt walks the checking procedure field by field.

What a template cannot fix

Honest limits. A template standardizes the shape of a record; it cannot make an unrecorded call recorded, and a form filled in after the fact has the shape without the property, because the commitment was not computed over an observed result at execution time. A receipt in this template proves the saved result was not changed since it was saved. It does not prove the result was correct, and it does not judge the work. Those limits are written into the draft itself, and a receipt format that hides them should be trusted less, not more.

Get receipts in this shape without building the capture

Zambo is the instrument: every tool call through zambo.dev/mcp returns a receipt in this template, at a public URL, checkable at zambo.dev/verify. For $0.99, put the next job you need proven into this shape with a Day Pass: zambo.dev/day-pass covers 24 hours, no subscription. Ongoing use is the Zambo Pass at $29 a month or $290 a year, $19 a month for $ZAMBO holders. Humans pay by PayPal or card through PayPal; agents pay USDC on Base through x402. The AI agent receipt API page covers the same receipts from the caller's side.

Frequently asked questions

AI agent receipt template

An AI agent receipt template is the fixed set of fields a verifiable receipt carries for one tool call: a receipt identifier, the tool name, a provenance class, an RFC 3339 timestamp, the recorded inputs, the canonical bytes of the result, a SHA-256 output commitment over those bytes, and a public URL where the receipt resolves. AER-1, published as IETF Internet-Draft draft-zambo-aer1-23, is that template as an open format, with the verification procedure a third party follows to recompute the commitment. A template with no commitment field is a form, not a receipt.

What fields make a receipt verifiable instead of just detailed?

Two fields do the work: the canonical bytes of the recorded result, and the output commitment computed over them at execution time. Detail alone, however long the field list, is still a description a writer could have edited afterward. With the bytes and the commitment both present, a reader recomputes the commitment and learns whether the record in front of them is the record that was made when the call ran. Every other field supports that check: the identifier names the receipt, the timestamp places it, the provenance class says who ran or reported the action, and the public URL keeps it reachable.

Can I use this template with my own agent stack?

Yes. AER-1 is an open draft with a public conformance suite and verifier kits in several languages, written so any system can mint receipts in the same shape and any third party can check them. The commitment has to be computed when the call runs, over the result the system observed; a template filled in afterward from logs produces the shape without the property. If building that capture is more than the job justifies, run the work through a system that already mints in this format and collect the receipts it returns.

Does a receipt in this template prove the work was correct?

No, and the template is explicit about it. A receipt proves the saved result was not changed since it was saved: the record a reader checks is the record the system made at execution time. Whether the result was correct, complete, or worth paying for is a judgment the reader makes against that checked record. A format that claimed to prove correctness would be claiming to judge the work, and no record format can do that honestly.

Where do I get receipts that already follow this template?

Zambo mints AER-1 receipts for every tool call made through zambo.dev/mcp, each resolving at a public URL and checking at zambo.dev/verify/. The live demo mints a first one free. For a real job, a Day Pass is $0.99 for 24 hours of receipted calls; ongoing use is the Zambo Pass at $29 a month or $290 a year, $19 a month for $ZAMBO holders. Humans pay by PayPal or card through PayPal; agents pay in USDC on Base through x402.