# comptoir > The billing + compute spine behind a family of small calculators. > Each product is a config row: a declarative ruleset, a price, a template. ## Products - cgt-property -> https://comptoir.intrane.fr/p/cgt-property/llms.txt - dividend-tax -> https://comptoir.intrane.fr/p/dividend-tax/llms.txt - employer-ni -> https://comptoir.intrane.fr/p/employer-ni/llms.txt - frais-de-notaire -> https://comptoir.intrane.fr/p/frais-de-notaire/llms.txt - lbtt -> https://comptoir.intrane.fr/p/lbtt/llms.txt - lbtt-commercial -> https://comptoir.intrane.fr/p/lbtt-commercial/llms.txt - ltt -> https://comptoir.intrane.fr/p/ltt/llms.txt - ltt-commercial -> https://comptoir.intrane.fr/p/ltt-commercial/llms.txt - sdlt -> https://comptoir.intrane.fr/p/sdlt/llms.txt - sdlt-commercial -> https://comptoir.intrane.fr/p/sdlt-commercial/llms.txt - take-home -> https://comptoir.intrane.fr/p/take-home/llms.txt - take-home-scotland -> https://comptoir.intrane.fr/p/take-home-scotland/llms.txt Every product exposes: /calc (GET|POST, JSON), /llms.txt, /guide, /help-json. ## This service - GET https://comptoir.intrane.fr/guide — the manual, JSON (same bytes as `comptoir guide`) - GET https://comptoir.intrane.fr/help-json — the command catalog - POST https://comptoir.intrane.fr/feedback — something wrong? say so. Open, deduped by content. ## Errors Failures return HTTP 4xx/5xx with a TYPED object, the same shape the CLI uses: {"ok":false,"error":{"code":90,"type":"resource","message":"...","recoverable":true,"suggestions":["..."]}} code/type: 80 input, 90 resource, 100 integration, 110 internal. `recoverable` is false only for 110 — retrying the same call cannot help.