Payments, exports and receipts#
Every settled payment is a permanent record, and all of it can leave the product. Nothing here is a summary we compute for you — it is the same rows the chain settled.
The list#
Payments in the side panel. Newest first, with the buyer, the chain, and a link to download each receipt.
c402 receipts
list_receipts and get_receipt over MCP.
Export everything#
c402 receipts export -o payments.csv
c402 receipts export --format json -o payments.json
Or Export CSV in the Payments panel. There is no pagination and no date filter: a partial export that looks complete is worse than no export, because it gets filed and the missing rows surface at year end.
Columns:
| Column | |
|---|---|
receipt_id |
Stable id; also the URL at /r/<id> |
settled_at |
When the money moved, ISO 8601 UTC |
checkout_id, title |
What was sold |
amount_usd |
What the buyer paid |
provider_amount_usd |
What you received |
fee_usd |
Protocol fee |
network, asset |
Chain and token |
paid_to |
The wallet that received it |
buyer |
Seller-scoped pseudonym, stable per buyer |
tx_hash, explorer_url |
On-chain proof |
delivery_status |
Whether the goods actually arrived |
test_mode |
true rows moved no money |
paid_to is the column that makes an export reconcilable. If you changed your
payout wallet mid-period, that period contains payments to two different
destinations and nothing else in the file tells them apart. Cross-reference it
with c402 wallets history to see exactly when the split happened.
test_mode rows are included
They are real records of real deliveries that moved no money. Filter on
test_mode = false for anything an accountant will see — the dashboard's
revenue figures already exclude them.
One receipt, as a file#
c402 receipts download pay_… -o receipt.html
Or Download receipt on any row in the Payments panel. Buyers can do the
same from /r/<id> — no account needed, because the id is the capability and a
buyer must be able to keep proof of what they bought.
It is a self-contained HTML file: no stylesheet to fetch, no script, no remote images. Open it in any browser and print to PDF if you need one. It renders the same in ten years, offline, on a machine that has never heard of checkout402 — which is the whole point of a receipt.
A test-mode receipt says TEST MODE on its face. A saved file outlives the dashboard that would have told you, and a test receipt that reads as real is a document someone will act on.
What was used, call by call#
A package is N calls for one payment, so "did I get what I paid for" needs more than a counter. Every call is logged: when, whether it succeeded, how long it took, and whether it consumed quota.
c402 receipts usage pay_…
buyer sub_bf1695199589a02e44913792
calls 2 used of 3, 1 left
#1 2026-07-30 16:59:06 ok 142ms
#2 2026-07-30 16:59:11 FAIL (not charged)
origin returned 503
The buyer has no account here — the package key is the whole identity — so the key alone answers it:
curl -H "Authorization: Bearer pk_…" \
https://api.checkout402.com/c/chk_…/usage
{
"calls_included": 3,
"calls_used": 2,
"calls_remaining": 1,
"calls": [
{"seq": 1, "at": "…", "status": "delivered", "counted": true},
{"seq": 2, "at": "…", "status": "failed", "counted": false}
]
}
Before this, the only way to check a balance was to spend one. A quota you can inspect only by consuming it is a quota you have to take on trust.
The log is scoped to that key's own purchase. A buyer sees their calls, never another customer's, and a key for a different checkout is refused.
A failed call is logged and not charged
counted: false means the buyer paid for data that never arrived, so the
call did not consume quota. That is the question the log exists to answer,
and it is answerable by either side without asking the other.
What a receipt proves#
That a specific amount moved from a specific payer to a specific wallet in a
specific transaction, and whether the goods were delivered afterwards. The
tx_hash is checkable by anyone against the chain without asking us.
What it does not do is let anyone reverse the payment. Settlement is non-custodial and final — checkout402 never held the money and has no ability to claw it back. A receipt is evidence, not a lever.