billing.checkoutAdmin agents, the owner and finance. A checkout link at Polar for Books or Books for teams (plan + period), monthly or yearly (a year costs ten months), or for the archive (archive: month or year, €5 a month or €50 a year), which keeps receipts and documents of a company without a paid plan. Polar is the seller: it charges, handles VAT, issues the invoice and renews until cancelled. The invoices are in Polar's customer portal (billing.portal). Hand the link to a person of your company. It starts once Polar confirms the payment.
billing.invoicesThe invoices 402lounge issued to your company for payments in USDC, newest first, each with a PDF link (add ?lang=de for German). With id: one invoice with its full content. Plans bought through Polar get their invoice from Polar.
billing.portalAdmin agents, the owner and finance. A link to Polar's customer portal: payment method, invoices, change or cancel the plan.
billing.quoteAdmin agents, the owner and finance. An offer to pay in USDC on Base: a plan (plan + period), the archive for a company without a paid plan (archive: month or year) or the seller check for level 2 (seller_check: your listing slug, one year). The price is net in EUR, with VAT for your company and the ECB rate of the day, and the amount in USDC is unique for 30 minutes. Pay it yourself with your x402 client on pay_url, or a person sends exactly amount_usdc to pay_to. 402lounge sends an invoice. Nothing renews by itself. With quote_id only: the status of that offer, with the invoice once paid.
company.agentsEvery agent with its role, its wallets and what it paid this month (receipts, USDC, EUR).
company.joinWith an invite code. Works while your own account has no company data, no vouchers and no other agents: your wallets, receipts and reports move into that company and your own account goes away. You join as an agent, and an admin there can make you admin.
company.memberslist shows them. invite adds a person by email with a role: owner (everything), finance (documents, VAT check, plan), adviser (reads and exports, changes nothing, for a tax adviser), viewer (reads). They sign in by email link. An address that is in another company already keeps its login and gets this company next to the others. role changes a role, remove takes someone out. The plan sets how many people sign in, the ones invited included: Free 1, Books 2, Books for teams no limit (plan_limit with what "people" past it). Admins and owners only, except list.
company.requestsWhere the tax adviser or the team ask for things, like a receipt that is missing or a purchase nobody described. list shows open ones (status: done or all for more), show one with its answers (request_id), ask writes one (title, body, optional month like 2026-10 and receipt_id), answer replies (request_id, body) and opens it again, done and reopen change its status, delete takes it back. A new request mails the people who keep the books, an answer everybody in the thread. Whoever reads the receipts may use it.
directory.claimAdmin agents and owners. A wallet the listing names proves the service is your company's: first call returns a challenge for that wallet, second call with wallet_proof {message, signature} signed by it claims the listing. The wallet moves to level 1 and payments to it name the listing on receipts. A listing your company holds takes more wallets the same way.
directory.previewWe call one paid URL once without paying, read its 402 answer and show the listing it would make: name, description, price, logo and the wallet you get paid on. Says so when the host or the wallet is listed already, then claim that listing instead.
invoices.issueAdmins, owners and finance. Runs by itself every night for last month. Call it for an older finished month or after a cancellation. One document per seller: the monthly overview on Free, the voucher with the tax note on Books. Payments that arrive after a document get a supplement. Pairs with receipts that lack a EUR rate are skipped and listed. Needs the company data and a confirmed email (tier company).
lounge.account.exportEverything 402lounge keeps about you as an agent off chain, as JSON. The company's books come from receipts.list and invoices.list.
lounge.appsWhich clients this agent has used. deactivate ends their sessions, activate turns them back on, disconnect forgets them.
lounge.dashboard.linkA one-time browser link (10 minutes) into your company's dashboard, signed in as you, for the human behind you.
lounge.meWho you are (agent and role), your company with its agents, people and level, its wallets, your apps, terms state and pending notices.
lounge.noticesTerms changes, moderation decisions, deletion and security notes, for you and for your company. ack marks one as read.
lounge.requirementsRules, prices, the current terms and the exact sentences you will sign. Free, no account.
lounge.sessioncreate: a new lg_ token (needs a signature or an existing token). list and revoke manage them.
lounge.signupFree. Your account is a company from the first call, named after you until company.update adds the legal data. With invite_code you join an existing company instead. Proves your wallet with a signature: first call returns a challenge, second call with proof {message, signature} creates the account. Wallets that cannot sign pay 0.001 USDC over HTTP instead (pay_instead in the answer), once payments are open.
lounge.termsVersions, hashes and links of the terms and the privacy notice. With accept: true you confirm a new version: first call returns a challenge, second call with proof {message, signature} records it.
lounge.wallet.primaryThe wallet you sign in with. It has to be assigned to you.
receipts.name_walletYour company's own name for a payTo wallet the register does not know, so its receipts say who was paid (e.g. a receipt that needs you because the wallet has no name). The name shows on your company's receipts only, marked as your name, never in the register. name null forgets it. Everyone in the company but viewers and the adviser.
receipts.recordCall this after every x402 payment: the transaction hash from the PAYMENT-RESPONSE header plus the URL you paid. 402lounge matches it with the transfer on Base and writes a receipt with the seller from the register, the catalogue description and a provisional EUR value. Free.
receipts.refundsUSDC a seller sent back to one of your wallets, read from Base. 402lounge links a refund to the payments it pays back when the amount matches one payment or the newest ones exactly, the receipts then show it under refunded. list (default, month or state narrow it), get (id), link (id plus payments, each a receipt id or tx hash with an optional usdc part), dismiss (id plus reason, when the transfer is no refund, finance), reopen (id). Refunds go onto the documents of the month the money came back, the original documents stay.
seller.invoicesInvoices 402lounge issued in your name (L-2610-10427-01), credit notes your buyers issued to you (G-...) and their cancellations, newest first, each with its e-invoice. With id the whole document. PDF and XML: GET /v1/seller/invoices/{id}/pdf and /xml.
seller.mandateAdmin agents and owners. get shows the mandate text (link, version, sha256) and whether it is signed. sign: first call returns a challenge, sign it with your wallet and call again with agreement_proof {message, signature}. Then, with a listing on level 2 and Books, buyers on level 3 get monthly invoices in your name (§ 14 (2) UStG), issued by 402lounge. revoke ends it at the end of the month.
seller.pricesAdmin agents and owners. What your listing costs, in your words: up to 12 lines, each a label, a price in USDC and whether it is per call or the minimum top-up of a balance. All lines at once, they replace the ones before. The listing page shows them instead of what the nightly check read from your 402 answers. An empty list removes them. Nobody checks them, so state what a buyer really pays.
seller.profileAdmin agents and owners. What level 2 needs on top of the company data: the name of the person who acts for the company (representative_name, the role is optional). The commercial register court and number help the check but are optional, no_register: true where there is none. sole_proprietor: true when the company is one person, then show_name says whether the register may show the name.
seller.self_billingAdmin agents and owners. Without a mandate, a company on level 2 can agree that its buyers on level 3 issue credit notes (Gutschriften) for what they paid, on any plan. get, sign (challenge, then agreement_proof), revoke (at the end of the month).