For sellers

How an x402 service gets into the register, what we read from its 402 answer every night, and how it climbs the levels.

When the register knows your wallet, the agents that pay you get receipts with your name on them, and their companies can book what they bought from you. Being listed and proving your wallet cost nothing.

Get listed

A listing names a service and the wallets it gets paid to. It belongs to a company, so the company's account comes first: your agent opens it with lounge.signup.

  1. Read one paid URL. directory.preview {url} (or POST /v1/listings/preview) calls it once without paying and shows what the listing would say: name, description, price, logo and the wallet you get paid on, from your 402 answer. If the host or the wallet is in the directory already, the answer says so. Then claim that listing instead of listing it twice.
  2. Publish it. An admin agent or the owner calls directory.submit {url, contact_email} (or POST /v1/listings). The listing goes live on level 0, under your company. The contact email is only for us.
  3. Prove the wallet, below. The listing moves to level 1.

Everything on a listing comes from your 402 answer, nothing is typed in by hand. To change the listing, change the answer.

How the catalogue is filled

Once a night we call the paid endpoint of every live listing without paying, to read what it sells and for how much:

  • With GET, then POST where the endpoint refuses GET, the user agent 402lounge-probe/1.0 (+https://402lounge.com), ten seconds to answer, no redirects followed.
  • A proper x402 server answers 402 with its payment requirements, in the PAYMENT-REQUIRED header or the body.
  • Every option in accepts is kept. The USDC option on Base gives the price and payTo for receipts, the other networks are shown on the listing. From resource we take the URL and the description.

That fills the catalogue behind every receipt's "what was bought". If the payTo is not one of the listing's wallets, the check notes it, and the register shows the result as last_check.

Prove your wallet

Level 1 means the wallet itself proved it belongs to your listing. From then on your buyers' receipts carry your name, and register.lookup answers verified.

directory.claim {slug, address} answers with a challenge for that wallet. Sign it with the wallet and call again with wallet_proof {message, signature}. The wallet signs one line: "Claim the 402lounge listing <slug> for company <company_id> with this wallet." Over REST it is POST /v1/listings/{slug}/claim. Admin agents and owners claim. People of the company can do it from the app with a browser wallet.

  • A listing nobody holds yet, like the services we listed from their public 402 answers: a wallet the listing names claims it for your company.
  • A listing your company holds: another wallet proves itself the same way and is added on level 1.
  • A listing another company holds cannot be claimed. Write to hello@402lounge.com with the wallet.

Proving a wallet by sending 0.01 USDC from it opens once 402lounge takes payments.

Level 2, company checked

Level 2 tells buyers and their tax advisers which company is behind a listing. The register and the listing then name your company and its country, and the receipts of your buyers name it too. A sole proprietor's name shows only if you allow it (show_name). It costs €10 a year per listing and is included in Books and Books for teams. seller.get (or GET /v1/seller) shows every listing with its level and what is missing.

  1. Company data. The company is on level 2 as a buyer too: name, address, country and a confirmed email (company.update, company.email), and the VAT status (company.update {vat_status}).
  2. The person who acts for the company. seller.profile {representative_name}, the role is optional. A commercial register entry (register_court, register_number) helps the approval but is not required, without one set no_register: true. A business that is one person sets sole_proprietor: true.
  3. Start the check. seller.check {action: "start", listing} (or POST /v1/seller/checks). The listing needs a proved wallet (level 1).
  4. Confirm your domain. seller.check {action: "email", id, email} sends a code to an address at the domain of the listing (the host or the domain above it, for example billing@example.com for api.example.com), seller.check {action: "confirm_email", id, code} confirms it. An agent without a mailbox adds the TXT record from the check instead: _402lounge.<host> with the value 402lounge-verify=<token>, also on the domain above the host. A host on a hosting platform's domain (such as vercel.app) can only use the record.
  5. Run the steps. seller.check {action: "verify", id} checks the company data, VIES for your VAT id (sellers in the EU, VIES does not cover others, a small business in Germany without a VAT id gives its tax number instead), the domain, the EU sanctions list and the payment. Each step says what is missing.
  6. Pay. seller.check {action: "checkout", id} gives a Polar checkout for one year. Paying in USDC is the other way. With Books there is nothing to pay.
  7. Approval. Once every step passed, a person at 402lounge looks at the company and approves the check, or tells you why not. You get a notice either way.

The level runs one year. 30 days before the end you get a notice, the next check opens 60 days before. Without it the listing falls back to level 1. We screen sellers on level 2 against the EU sanctions list at the check and every night. A possible match waits for a person at 402lounge, nothing about it is decided automatically.

Level 3, invoices in your name

With the invoicing mandate, 402lounge issues invoices in your name and on your account to your buyers on 402lounge (§ 14 (2) UStG): one per buyer and month, numbered in your own range 402L-<listing>-<year>-<number>, each with its e-invoice. You remain the issuer. Read the mandate at /mandate before you sign.

  • Who gets one. Buyers on level 3 (VAT ID confirmed by VIES) anywhere in the EU with Books or Books for teams, for what their agents paid your listings on level 2. Other buyers keep their own voucher, among them buyers outside the EU and, for now, buyers in your own state when that state is not Germany.
  • What you need. A listing on level 2, the VAT status of your company, and Books or Books for teams.
  • Sign. seller.mandate {action: "sign"} answers with a challenge. Sign it with your agent's wallet and call again with agreement_proof {message, signature}. An owner confirms it in the app. Version, time and signature are kept.
  • Revoke. seller.mandate {action: "revoke"} at any time. It ends at the end of the month, that month still gets its invoices.
  • Your copies. seller.invoices lists every invoice in your name, each with its PDF and its e-invoice (GET /v1/seller/invoices/{id}/pdf and /xml). Cancel one with seller.invoices.cancel {id, reason}.

The VAT case follows your company and the buyer's: 19 % for a German seller and a German buyer, none with the note on § 19 UStG for a German small business, and across a border the reverse charge, the buyer owes the VAT in its own state (Art. 196 of the VAT Directive). The invoice follows the invoicing rules of your state if you are established in the EU and of the buyer's state if you are not (Art. 219a), and carries the mention "Reverse charge" with the term of that state. A seller outside the EU puts its tax id in the company data (tax_number). A seller and a buyer in the same state outside Germany still get the voucher, that case is not built yet. How the documents are built is in Monthly documents.

Self-billing instead

Without a mandate, a company on level 2 can agree that its buyers settle what they paid with a credit note (Gutschrift) instead of an invoice: seller.self_billing {action: "sign"}, on any plan. 402lounge prepares the credit note for the buyer, you get a copy in seller.invoices. A credit note follows the invoicing rules of the buyer's state and says "Self-billing" with the term of that state. Buyers in Italy, Hungary, Poland, Romania, Greece, Croatia and Portugal keep the voucher for now, their states run clearing or reporting systems that a credit note would have to pass. The other twenty states take credit notes. Object to a single credit note by cancelling it. Read the agreement at /self-billing.

What you see

Level
The listing and the register show
Your buyers get
0
The listing, marked listed
Receipts marked listed
1
The wallet proved itself
Receipts with your listing
2
Your company name and country
Receipts with your company, a voucher per month, or credit notes with self-billing
3
Your company, invoicing
Invoices in your name, from Books on

0

The listing and the register show
The listing, marked listed
Your buyers get
Receipts marked listed

1

The listing and the register show
The wallet proved itself
Your buyers get
Receipts with your listing

2

The listing and the register show
Your company name and country
Your buyers get
Receipts with your company, a voucher per month, or credit notes with self-billing

3

The listing and the register show
Your company, invoicing
Your buyers get
Invoices in your name, from Books on

Payments other companies make to your listings while the mandate runs count for the transaction limit of your plan, next to your own.

The sponsored place

A company whose listing is in the directory can book the one sponsored place: €49 for one month, paid once, through Polar or in USDC. sponsor.checkout {listing} (or POST /v1/sponsor/checkout) gives the checkout link, sponsor.get shows whether the place is free. Nothing renews by itself: while your place runs, the next month you book starts when it ends. The listing then stands first in the directory and in directory.search, marked Sponsored. It never changes the order or a level.

What the levels mean and pricing for sellers have the details.

Make it easy for agents

  • Answer 402 to a request without payment, with a short description of the resource. That description ends up on receipts.
  • Pay out to the wallets on your listing and nowhere else, or the check says so.
  • Publish /.well-known/x402 and llms.txt. The directory shows both on your card.

Updated Nov 2, 2026. For agents: this page as Markdown, llms.txt and all pages in one file.