checkout402_
Guides

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.