--- name: 402lounge description: Receipts and a register for x402 payments. Sign up with your wallet (every account is a company), report each payment you make, get a receipt with the seller, the description and a EUR value. Look up who is behind a payTo address before you pay. Add your company data and get one voucher per seller every month. --- # 402lounge Connect the MCP server: `https://mcp.402lounge.com/mcp` (Streamable HTTP). Free tools need no account. 402lounge never holds keys and never touches the money; it reads Base and writes the paperwork. ## Sign up (free) 1. `lounge.requirements` tells you the rules, the current terms version and the sentence you will sign. 2. `lounge.signup {name, address, accept: {terms, privacy, business: true}}` answers with a challenge. The name only has to be unique inside your company. Add `invite_code` if your company gave you one. 3. Sign `challenge.message` with your wallet (EIP-191 personal_sign) and call `lounge.signup` again with `proof: {message, signature}`. 4. Keep `session.token`. Send it as `Authorization: Bearer lg_...` (MCP client header) or as `session_token` in tool inputs. If your wallet cannot sign messages (Coinbase Agentic Wallet), pay 0.001 USDC instead: `npx awal x402 pay https://api.402lounge.com/v1/signup -X POST -d ''`. ## After every x402 payment `receipts.record {tx_hash, resource_url, amount, payment_response}`: the transaction hash comes from the `PAYMENT-RESPONSE` header (base64 JSON, field `transaction`), `resource_url` is the URL you paid. Pass the raw header as `payment_response` if you still have it. The answer says `pending` until Base confirms (about 12 blocks, the indexer runs every minute), then the receipt carries the seller from the register, the seller's own description of the endpoint when its catalogue knows the URL, and a EUR value at the ECB rate of the day, marked provisional. Receipts exist for every outgoing USDC transfer of your company's confirmed wallets, reported or not, and keep the agent that operated the wallet. Reporting adds what you bought. ## Before you pay someone new `register.lookup {address}`: the listing that owns the payTo wallet, its level (0: listed, 1: wallet verified; legal entity and invoicing follow later), its paid endpoints and the last health check. Unknown wallets get receipts marked `unverified`, with no seller name and no input VAT. ## Your company Every account is a company: sign-up makes one named after you, with you as its admin. `company.update {name, address_line1, postal_code, city, country, email, vat_id?}` adds the legal data (the VAT id is checked against VIES at once); `company.email {action: "confirm", code}` confirms the address. `company.invite` gives a code: a new agent signs up with `invite_code`, an agent with its own account calls `company.join {code}` and brings its wallets and receipts. `company.agents` lists the agents with their spending this month; `company.wallet.assign {address, agent_id}` moves a wallet; `company.members {action: "invite", email, role}` adds people (owner, finance, viewer). After each month (Europe/Berlin) `invoices.list` shows one document per seller for it, the overview on Free and the voucher with the tax note on Books. `invoices.draft` shows the month so far, `invoices.cancel {id, reason}` cancels a document so the month can be issued again. `invoices.get {id}` returns the full document, the PDF is at `GET https://api.402lounge.com/v1/invoices/{id}/pdf`. Admins, owners and finance can run `invoices.issue {month}` for a finished month any time. ## Your receipts - `receipts.list {month: "2026-10"}`: the company's month (Europe/Berlin), totals per seller and per agent, open reports. `mine: true`, `agent_id` or `wallet` narrow it. - `receipts.get {id}`: one receipt by id or transaction hash. - REST: `POST https://api.402lounge.com/v1/receipts`, `GET https://api.402lounge.com/v1/receipts?month=`, `GET https://api.402lounge.com/v1/receipts/{id}`, `GET https://api.402lounge.com/v1/register/{address}`, `GET https://api.402lounge.com/v1/company`, `GET https://api.402lounge.com/v1/invoices`. ## Then - `lounge.me`: you, your company and its wallets. `lounge.agent.update {name}`: your name. - `lounge.wallet.add {address}`: a second wallet signs its own challenge; it joins the company and you operate it. `lounge.wallet.primary`, `lounge.wallet.remove`. - `company.email {action: "start", email}`: where documents and notices go. `lounge.dashboard.link`: a one-time browser link for the human behind you. - `lounge.notices`, `lounge.terms {accept: true}` when the terms change, `lounge.account.export`, `lounge.account.delete {confirm: true}` (7-day grace).