Direct answer

Windsurf keeps the chat. A receipt keeps the record.

When an agent finishes a job in Windsurf, you are left with a conversation and a set of changed files. Neither one is a receipt. The conversation lives in your account, can be trimmed or lost with the workspace, and reads as a claim about the work rather than a record of it. The files show where the code ended up, not what the agent did, returned, or skipped on the way. A receipt is a different object: a per-job record, issued while the work runs, that names the steps and the saved outputs and can be rechecked later by someone who was never in the room. Windsurf does not issue that object. A connected endpoint that speaks MCP can, and this page is the exact setup.

See the instrument first: the live demo runs one real call and hands you its verifiable receipt, no signup.

Updated November 2, 2026. First published November 2, 2026.

Step 1. Separate the three things people call a receipt

The word receipt covers three different documents, and only one of them answers for the work. The billing receipt proves you paid for a subscription; it says nothing about any job. The chat export proves a conversation existed; it is text you control, and anyone receiving it knows it could have been edited before it was sent. The execution receipt is the third thing: a record created by the system that ran the job, at the time it ran, holding the steps and the outputs as saved, in a format a stranger can recheck without trusting you. When a client, a lead, or a future you asks what the agent actually did, only the third document ends the conversation. Everything below is about getting that third document for work that happens in Windsurf.

Step 2. Connect the endpoint that issues receipts

Windsurf accepts MCP servers, and the Zambo endpoint is one connection: https://zambo.dev/mcp. Add it in the MCP settings once. From that moment the agent in Windsurf can call 153 tools through the endpoint, 36 of them on the default surface, and every job it runs there returns a verifiable receipt under AER-1, the format published as IETF Internet-Draft draft-zambo-aer1-26. There is no API key and no signup. The free tier is 20 calls + 1 wrap-up free every day; picking up in another AI is always free. Work you keep doing by hand in the editor stays unrecorded, so route the jobs you may need to answer for (the audit, the fix, the report, the deliverable build) through the endpoint.

Step 3. Keep the link, not a screenshot of the chat

Each receipt has its own address, in the form https://zambo.dev/run/ followed by the receipt ID. That link is the deliverable-grade artifact. Send it to the client, paste it into the ticket, file it with the invoice. The person who opens it sees the job record and its check state, and the same record can be rechecked at https://zambo.dev/verify/ by pasting the ID. For offline checking, the public conformance corpus at https://zambo.dev/aer1/corpus.json carries 126 vectors and 129 checks that independent tools run against the same format, so the record is not checkable only by the service that issued it. Keep one habit and the system works: the receipt link goes wherever the work is mentioned, every time, instead of a screenshot of a chat window that proves a screen existed.

Step 4. Close the job with a wrap-up the next AI can pick up

A single job produces a receipt; a session produces a pile of them. The wrap-up is the call that seals the session into one handover record: the steps, the outputs, and the decision state in one link. That matters in Windsurf because coding work rarely stays in one tool. You start in the editor, a client reviews in a browser, a teammate continues in a different AI. The handover record is what travels, and picking up in another AI is always free, so the receiving side never pays to continue your work. If the client has to accept the delivery, the acceptance lands on the same record, and the receipt chain and the decision sit in one place instead of being split between a chat, an email, and a memory.

What a record does not settle

A verifiable receipt proves the saved result was not changed since it was saved; it does not prove the code was correct, it does not replace your tests or your review, and it cannot be created after the fact for a session nobody recorded. Work run outside the endpoint leaves no receipt. This page is general information, not legal advice.

Frequently asked questions

How do I get a receipt for work done in Windsurf?

Connect the Zambo MCP endpoint, https://zambo.dev/mcp, inside Windsurf and run the job through it. Every call returns a verifiable receipt under AER-1, published as IETF Internet-Draft draft-zambo-aer1-26, with its own link in the form zambo.dev/run/ followed by the receipt ID. Anyone can open that link or paste the ID at https://zambo.dev/verify/ and recheck the saved result, with no account and no access to your Windsurf workspace. The receipt is issued while the work runs, so the record covers the steps and outputs of that job, not a summary written afterwards.

Does Windsurf itself issue receipts for agent work?

No. Windsurf keeps a conversation history and shows file changes inside the editor, and both stay inside your account and your project. A chat can be edited, trimmed, or lost with the workspace, and a diff shows the current state of files rather than a saved record of what the agent returned at the time. A subscription invoice from the editor is a billing document; it says you paid for the tool and nothing about any job the tool performed. The execution receipt has to come from a layer that issues one per job, which is what the connected endpoint adds.

Can I get a receipt for Windsurf work I already finished?

Not for the run itself. A receipt is created at the moment a job executes, because it records the saved result of that execution; there is no honest way to mint one later for work nobody recorded. What you can do is rerun the checkable parts of the finished job through the endpoint now: the audit, the test pass, the summary of changes, the verification of the delivered files. Those reruns get receipts of their own, dated today, and they record what the checks found today. Present them as exactly that, a dated verification of delivered work, never as a record of the original session.

What does the receipt actually prove?

It proves the saved result was not changed since it was saved. The record holds the steps of the job and the outputs as they were returned, and the check at https://zambo.dev/verify/ recomputes whether the record still matches what was saved. It does not prove the answer was right, and it does not grade the code. Correctness is still your review, your tests, and your client. What the receipt settles is the argument about what the agent did and returned, and whether the record of it was altered afterwards.

What does it cost to get receipts for my Windsurf work?

The free tier is 20 calls + 1 wrap-up free every day; picking up in another AI is always free, and no API key or signup is needed to start. For $0.99, a Day Pass makes the endpoint unlimited for 24 hours, no subscription: get the Day Pass. Run a full day of Windsurf jobs through it and keep every receipt. Ongoing use is the Zambo Pass at $29 a month or $290 a year, and $19 a month for $ZAMBO holders, which adds private handover links, your branding, and the approval record as PDF and JSON files.

Related