# 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 for company 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.` with the value `402lounge-verify=`, 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 like `L-2610-10427-01`, with your seller number, each with its e-invoice. You remain the issuer. Read the mandate at [/mandate](https://402lounge.com/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](https://402lounge.com/docs/vouchers.md#invoices-and-credit-notes). ## 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](https://402lounge.com/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 | 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](https://402lounge.com/levels) and [pricing for sellers](https://402lounge.com/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.