{"openapi":"3.1.0","info":{"title":"France VAT Franchise Tracker API","version":"0.1.0","description":"Compares a French micro-business's turnover with the franchise en base de TVA ceilings published on service-public.gouv.fr for 2026: the base ceiling judged on last year's turnover and the tolerance ceiling judged on this year's, for goods and accommodation, services, liberal professions, lawyers and authors. It tells you which ceiling is nearest, how many euros of headroom are left, whether VAT...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://fr-tva-franchise.connectorbay.com/mcp.\n\nDisclaimer: General information only, not legal, tax, accounting or payment advice. France VAT Franchise Tracker is an independent tool: it is not affiliated with, endorsed by or operated by any government body, central bank, standards body or scheme operator. Rates, thresholds and rules change; check the cited official source and confirm with a qualified professional before you rely on a result.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/fr-tva-franchise/docs"},"termsOfService":"https://connectorbay.com/fr-tva-franchise/terms"},"servers":[{"url":"https://fr-tva-franchise.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/fr-tva-franchise/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_thresholds":{"post":{"operationId":"list_thresholds","summary":"List the franchise en base de TVA ceilings (base and tolerance) for every activity category, with the published rules an","description":"List the franchise en base de TVA ceilings (base and tolerance) for every activity category, with the published rules and the status of the 2025 single-threshold proposal. Use for \"What are the 2026 franchise en base ceilings for services, for goods and for lawyers?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the answer is for, YYYY-MM-DD (default today). Ceilings are loaded for calendar year 2026 only","title":"On Date"}},"title":"list_thresholdsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_franchise_status":{"post":{"operationId":"check_franchise_status","summary":"Say whether the franchise en base still applies for an activity given current-year turnover (and last year's), and which","description":"Say whether the franchise en base still applies for an activity given current-year turnover (and last year's), and which ceiling is nearest. Use for \"I sell services and have invoiced 36,000 EUR this year after 30,000 last year: do I still benefit from the franchise en base?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"activity":{"description":"Activity category: goods_accommodation (85,000 EUR base), services or liberal_professions (37,500), lawyers_regulated (50,000), lawyers_unregulated (35,000), authors_artists_rights (50,000) or authors_artists_other (35,000)","title":"Activity","type":"string"},"current_year_turnover":{"description":"Turnover of the current calendar year so far, in euros, as a plain decimal string such as 36000 or 36000.50","title":"Current Year Turnover","type":"string"},"prior_year_turnover":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Turnover of the previous calendar year in euros, as a plain decimal string; leave out if unknown","title":"Prior Year Turnover"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the answer is for, YYYY-MM-DD (default today). Ceilings are loaded for calendar year 2026 only","title":"On Date"}},"required":["activity","current_year_turnover"],"title":"check_franchise_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/headroom_to_ceiling":{"post":{"operationId":"headroom_to_ceiling","summary":"Euros left under the base ceiling and the tolerance ceiling for an activity, given turnover so far this year. Use for \"H","description":"Euros left under the base ceiling and the tolerance ceiling for an activity, given turnover so far this year. Use for \"How many euros can I still invoice this year as a goods seller before VAT applies?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"activity":{"description":"Activity category: goods_accommodation (85,000 EUR base), services or liberal_professions (37,500), lawyers_regulated (50,000), lawyers_unregulated (35,000), authors_artists_rights (50,000) or authors_artists_other (35,000)","title":"Activity","type":"string"},"current_year_turnover":{"description":"Turnover of the current calendar year so far, in euros, as a plain decimal string","title":"Current Year Turnover","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the answer is for, YYYY-MM-DD (default today). Ceilings are loaded for calendar year 2026 only","title":"On Date"}},"required":["activity","current_year_turnover"],"title":"headroom_to_ceilingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/when_vat_starts":{"post":{"operationId":"when_vat_starts","summary":"Explain from which date VAT becomes due: 1 January of next year after exceeding the base ceiling, or the first day of ex","description":"Explain from which date VAT becomes due: 1 January of next year after exceeding the base ceiling, or the first day of exceedance after the tolerance ceiling. Use for \"My services turnover passed 42,000 EUR on 15 September 2026: from which day do I charge VAT?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"activity":{"description":"Activity category: goods_accommodation (85,000 EUR base), services or liberal_professions (37,500), lawyers_regulated (50,000), lawyers_unregulated (35,000), authors_artists_rights (50,000) or authors_artists_other (35,000)","title":"Activity","type":"string"},"current_year_turnover":{"description":"Turnover of the current calendar year so far, in euros, as a plain decimal string","title":"Current Year Turnover","type":"string"},"exceeded_on":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date (YYYY-MM-DD) on which the tolerance ceiling was crossed; needed when turnover is above the tolerance ceiling","title":"Exceeded On"},"prior_year_turnover":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Turnover of the previous calendar year in euros, as a plain decimal string; leave out if unknown","title":"Prior Year Turnover"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the answer is for, YYYY-MM-DD (default today). Ceilings are loaded for calendar year 2026 only","title":"On Date"}},"required":["activity","current_year_turnover"],"title":"when_vat_startsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/pace_projection":{"post":{"operationId":"pace_projection","summary":"Project year-end turnover and the date each ceiling would be reached if the year-to-date daily pace continued (simple st","description":"Project year-end turnover and the date each ceiling would be reached if the year-to-date daily pace continued (simple straight line, not a forecast). Use for \"At my current pace, when would I reach the franchise ceiling this year?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"activity":{"description":"Activity category: goods_accommodation (85,000 EUR base), services or liberal_professions (37,500), lawyers_regulated (50,000), lawyers_unregulated (35,000), authors_artists_rights (50,000) or authors_artists_other (35,000)","title":"Activity","type":"string"},"turnover_year_to_date":{"description":"Turnover from 1 January of the year of on_date up to and including on_date, in euros, as a plain decimal string","title":"Turnover Year To Date","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the answer is for, YYYY-MM-DD (default today). Ceilings are loaded for calendar year 2026 only","title":"On Date"}},"required":["activity","turnover_year_to_date"],"title":"pace_projectionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}