Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
0
A2A live JSON-RPC A2A 0.3.0 v1.0.0 x402 micropay

fr-legal-kit

fr-legal-kit.monnet-yanis1.workers.dev · Yanis Monnet EI

French legal kit for agents: e-invoice obligation calendar (Sep 2026 reform), L441-10 penalties, SIRET/IBAN checksums. Paid x402 USDC on Base.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain fr-legal-kit.monnet-yanis1.workers.dev via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
66/100
grade C · 9 criteria
Uptime
42.9%
7 direct probes · 30d
~18 ms response
Observed inflow · 30d
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
3 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

C
Conformance score: 66/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
pass Live JSON-RPC 25/25
Endpoint responds to a negotiated A2A SendMessage probe (answers in ~18 ms).
partial Protocol version 5/10
Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points.
How to earn +5 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
fail Uptime track record 6/15
3/7 probes succeeded (43% uptime).
How to earn +9 points
Stabilise uptime
We probe every agent on a tiered schedule and grade the last 30 days. Sustained 99 %+ uptime over 20+ conclusive probes scores full points. Probes you refuse us (HTTP 429/403, a WAF challenge, robots.txt) no longer count against you either way, so what is left is genuine unavailability — usually a transient 5xx on cold start.
Docs →
pass Skill declaration 10/10
Declares 68 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: Yanis Monnet EI (https://fr-legal-kit.monnet-yanis1.workers.dev). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

3 snapshots drifted 2× Every change to agent-card.json
Captured Hash
2026-09-07 14:07:24 current f6ee0378a3b4… view →
2026-09-07 07:35:14 bb6a1eb691f7… view →
2026-09-07 01:06:47 077b5e5e0243… view →
Uptime
42.9%
7 direct probes · 30d
Response
last direct probe
Skills
68
declared
Streaming
SSE-capable

Try it

Send a message to this agent live. Your prompt is proxied through Agenstry.

calling agent…

Skills · 68 declared · mapped to canonical taxonomy

/v1/late-penalties

French L441-10 late-payment: BCE MRO+10pts interest + 40€ indemnity (D.441-5) from amount_ttc and days_late. Default MRO 2.40% (H2 2026, ECB). No live BCE fetch…

canonical Deal Qualification (BANT/MEDDIC) match 79%
franceinvoiceL441-10penaltieslegal
/v1/einvoice-who

French e-invoice calendar: who must receive (2026-09-01 all) vs emit (GE/ETI 2026, PME/micro 2027). Size in, dates out. No registry lookup.

canonical Invoicing and Billing match 81%
francee-invoicefacture-electroniquepdp2026
/v1/check-siret

SIRET/SIREN checksum (Luhn / La Poste). Does not call INSEE.

canonical Company Registry Lookup match 83%
francesiretluhnchecksum
/v1/check-iban

IBAN ISO 13616 checksum. Does not prove the account exists.

canonical X402 Usdc Payments match 84%
ibanchecksumpayments
/v1/due-date

French invoice due date: invoice_date + net_days (calendar). Also next_open_day skipping weekends + L.3133-1 holidays 2026–2027. No live calendar fetch.

canonical Invoicing and Billing match 83%
franceinvoicedue-datejours-feries
/v1/tva-rate

Indicative FR VAT rate table: standard 20 / intermediate 10 / reduced 5.5 / super_reduced 2.1 / exempt. Not a tax ruling.

canonical Tax Compliance and Filing match 81%
francetvavatcgi
/v1/holidays

French metropolitan public holidays for 2026 or 2027 (C. trav. L.3133-1). Optional Alsace-Moselle extras. No live fetch.

canonical Calendar Scheduling match 79%
francejours-feriescalendarinvoice
/v1/payment-term-max

Statutory ceiling on agreed FR B2B payment terms: 60 days after invoice issue, or 45 days end-of-month if stipulated (L441-10 I). Not a recommended term.

canonical Agent-Initiated Checkout (AP2) match 80%
franceinvoiceL441-10payment-terms
/v1/mention-fields

Checklist of French invoice/quote legal mention fields (L441-9, L441-10, 293 B). JSON in, list of required ids out. No lookup.

canonical Company Registry Lookup match 82%
franceinvoicementions293BL441-9
/v1/vat-key

French intra-community VAT identifier from SIREN: FR + 2-digit key + SIREN. Key = (12 + 3*(siren%97))%97 (CGI 286 ter). Not a VIES proof.

canonical Company Registry Lookup match 81%
francetvavatsiren286ter
/v1/penalty-text

Statutory L441-10 / D.441-5 invoice mention strings (rate BCE MRO+10 pts + 40 € indemnity). No amount required. Default MRO 2.40% H2 2026.

canonical Locale and Regional Primitives match 80%
franceinvoiceL441-10mentionspenalties
/v1/franchise-293b

CGI 293 B franchise-en-base 2026 thresholds (services 37 500/41 250, goods 85 000/93 500) plus the statutory invoice mention. 25 000 € unique threshold was aban…

canonical Tax Compliance and Filing match 79%
francetva293Bfranchiseinvoice
/v1/dunning-steps

Suggested FR B2B dunning calendar after the due date (J+1 / J+8 / J+15). L441-10 penalties accrue without a reminder. Usage, not a statutory timetable.

canonical Recurring Job Scheduling match 80%
franceinvoicedunningrelanceL441-10
/v1/open-days

Inclusive count of French metropolitan open days between two dates (skip Sat/Sun + L.3133-1 holidays 2026–2027). Optional Alsace-Moselle extras.

canonical Government Open Data match 81%
francecalendarjours-ouvresjours-feries
/v1/invoice-numbering

French invoice numbering helper (C. com. L441-9): unique chronological sequence, no gaps. Returns next number from last_number plus the statutory rules.

canonical Invoicing and Billing match 82%
franceinvoiceL441-9numbering
/v1/amount-words

French amount in words for invoices (douze euros et quarante centimes). Traditional hyphenation. Not a statutory mention.

canonical Invoicing and Billing match 81%
franceinvoicemontantlettres
/v1/alsace-holidays

Alsace-Moselle extra public holidays (Good Friday + St Stephen) plus the combined 2026–2027 calendar. In addition to L.3133-1 metropolitan days.

canonical Calendar Scheduling match 79%
francealsacemosellejours-feriescalendar
/v1/due-date-eom

French 45-days-end-of-month due date (L441-10 I derogation). Statutory reading: 45 days after month-end of the invoice. Alternate usage: +45 then EOM. Must be s…

canonical Invoicing and Billing match 80%
franceinvoiceL441-10due-datefin-de-mois
/v1/ht-ttc

French HT ↔ TTC using CGI indicative rates (20 / 10 / 5.5 / 2.1 / 0). Pass exactly one of amount_ht or amount_ttc. Not a tax ruling.

canonical Tax Compliance and Filing match 79%
francetvainvoicehtttc
/v1/days-late

Calendar days late from due_date to as_of (L441-10 periods are calendar). Also accepts invoice_date + net_days. Feed days_late into /v1/late-penalties.

canonical Invoicing and Billing match 82%
franceinvoiceL441-10latecalendar
/v1/siren-from-siret

Split a French SIRET into SIREN + NIC, checksum both (Luhn / La Poste), and compute the CGI 286 ter VAT key. No INSEE lookup.

canonical Company Registry Lookup match 82%
francesiretsirenvatchecksum
/v1/quote-validity

French quote (devis) validity calendar. Default 30 days from quote_date. Commercial usage, not L441-9. Returns expiry and a collable mention.

canonical Company Registry Lookup match 80%
francedevisquotevalidity
/v1/ape-naf

French APE/NAF rev.2 format check: 4 digits + 1 letter (62.01Z). No INSEE lookup of the label.

canonical Company Registry Lookup match 82%
franceapenafinvoicechecksum
/v1/postcode-fr

French 5-digit postcode: department prefix (Corsica 2A/2B, overseas 97x). No address lookup. Flags Alsace-Moselle 57/67/68.

canonical Locale and Regional Primitives match 80%
francepostcodeinvoiceaddress
/v1/legal-form

Extra French invoice mentions by legal form (EI/micro vs SARL/SAS/SA/SCI): EI quality, 293 B, capital, RCS. On top of /v1/mention-fields.

canonical Company Registry Lookup match 83%
franceinvoicementionseisas
/v1/iban-fr

French IBAN structure: 27 chars, bank/branch/account/RIB key, plus ISO 13616 checksum. Does not prove the account exists.

canonical Company Registry Lookup match 81%
franceibanpaymentsrib
/v1/credit-note

French credit note (avoir): next number in a dedicated AV- sequence, collable CGI 289 mention referencing the original invoice, optional HT/TTC reversal. Does n…

canonical Invoicing and Billing match 80%
franceinvoiceavoircredit-noteL441-9
/v1/phone-fr

French phone format (ARCEP numbering plan): 10-digit national or +33/0033 → E.164, grouped mention, kind mobile/geo/voip/overseas. No subscriber lookup.

canonical Company Registry Lookup match 81%
francephoneinvoicee164arcep
/v1/capital-social

French share-capital invoice mention for sociétés (SAS/SARL/SA/SCI): 'au capital de 1 000,00 €', optional variable capital. EI/micro have no capital. Format onl…

canonical Company Registry Lookup match 81%
franceinvoicecapitalsassarl
/v1/rcs-mention

French RCS invoice mention: 'RCS Pau 404 833 048' from greffe city + SIREN/SIRET. Format only, not a Kbis lookup.

canonical Company Registry Lookup match 82%
franceinvoicercsgreffeL441-9
/v1/invoice-currency

French invoice currency: EUR is legal tender. Foreign ISO 4217 (USD/GBP/CHF/CAD/JPY) allowed; VAT is expressed in euros. Offline subset, no FX rate.

canonical Company Registry Lookup match 80%
franceinvoicecurrencyeurtva
/v1/escompte

French invoice early-payment discount mention (L441-9 / L441-10): collable 'Pas d'escompte pour paiement anticipé.' or 'Escompte de X % pour paiement sous N jou…

canonical Invoicing and Billing match 80%
franceinvoiceescompteL441-10L441-9
/v1/acompte

French down-payment (acompte) invoice: next AC- number, 30% default or explicit %, remaining TTC, collable CGI 289 mention. Own L441-9 sequence.

canonical Invoicing and Billing match 80%
franceinvoiceacompteL441-9CGI-289
/v1/date-fr

French invoice date format: YYYY-MM-DD → JJ/MM/AAAA, weekday, long form, collable 'Date de facture : …'. L441-9 emission date.

canonical Invoicing and Billing match 82%
franceinvoicedateL441-9
/v1/payment-means

French invoice means-of-payment mention (L441-9): virement, chèque, CB, espèces, prélèvement, LCR. Default virement. Collable string.

canonical Invoicing and Billing match 82%
franceinvoicepaymentvirementL441-9
/v1/interest-start

L441-10: calendar day late-payment interest starts (the day after the due date), without a reminder. Accepts due_date or invoice_date + net_days.

canonical Invoicing and Billing match 81%
franceinvoiceL441-10penaltiesdue-date
/v1/siege-social

French siège social invoice mention (L441-9): street + postcode + city, department prefix, Alsace-Moselle flag. Format only, not a Kbis.

canonical Company Registry Lookup match 83%
franceinvoiceadressesiegeL441-9
/v1/net-a-payer

French invoice footer: HT / VAT / TTC plus collable 'Net à payer : 1 200,00 €'. Same CGI rates as /v1/ht-ttc. Pass exactly one of amount_ht or amount_ttc.

canonical Tax Compliance and Filing match 81%
franceinvoicetvattcnet-a-payer
/v1/doc-title

CGI 289 document title: Facture, Avoir, Facture d'acompte, Note d'honoraires (still an invoice), or Devis (not L441-9). Optional number → 'Facture n° …'.

canonical Invoicing and Billing match 81%
franceinvoicecgi-289honorairesdevis
/v1/autoliquidation

French reverse-charge VAT mention (autoliquidation): intra-EU CGI 283, construction 283-2 nonies, or import. Invoice shows HT; VAT due by the customer.

canonical Tax Compliance and Filing match 80%
francetvaautoliquidationcgi-283invoice
/v1/eori

French EORI format: FR + SIREN (legal entity). From a SIRET also returns FR+SIRET establishment form. Format only, no customs lookup.

canonical Company Registry Lookup match 84%
franceeoricustomssireninvoice
/v1/duplicata

French invoice duplicata: same original number stamped DUPLICATA. Not a new L441-9 number and not a credit note. Collable 'Ne pas comptabiliser une seconde fois…

canonical Invoicing and Billing match 80%
franceinvoiceduplicataL441-9CGI-289
/v1/rm-mention

French artisan RM invoice mention: 'RM Pau 404 833 048' from city + SIREN/SIRET. Format only. RNE replaced RM for new filings in 2023; invoice usage still shows…

canonical Company Registry Lookup match 81%
franceinvoicermartisanL441-9
/v1/buyer

French invoice buyer identification (L441-9): client name + optional SIRET/SIREN + city. B2C may omit SIRET. Format only.

canonical Company Registry Lookup match 83%
franceinvoiceclientsiretL441-9
/v1/unit

French invoice line unit of measure (L441-9): heure, jour, mois, forfait, unité, kg, m². Optional qty with plural. Format only.

canonical Invoicing and Billing match 81%
franceinvoiceunitequantiteL441-9
/v1/cgv

French CGV invoice mention (C. com. L441-6): 'Nos conditions générales de vente s'appliquent.' Optional URL. A mention does not replace prior communication to t…

canonical Company Registry Lookup match 80%
franceinvoicecgvL441-6
/v1/reserve-propriete

French retention-of-title invoice clause (C. com. L.624-16): goods remain the seller's until full payment. Not for pure services.

canonical ReserveAction match 80%
franceinvoicereserve-proprieteL624-16
/v1/garantie-legale

French legal warranty of conformity (C. conso L.217-3): 2 years from delivery for consumer goods. Does not apply to professional buyers. Optional delivery_date …

canonical Legal Contract Review match 80%
franceconsogarantieL217-3invoice
/v1/mediateur

French consumer mediator mention (C. conso L.612-1). Required for B2C. Pass name + url of the designated mediator. Does not apply to professional buyers.

canonical Deal Qualification (BANT/MEDDIC) match 80%
franceconsomediateurL612-1invoice
/v1/delivery

French invoice date of supply (CGI 289 / 242 nonies A): delivery or service execution vs invoice date. Distinct dates get an explicit mention.

canonical Invoicing and Billing match 82%
franceinvoicelivraisonCGI289242-nonies-A
/v1/line

French invoice line (L441-9): designation + optional quantity/unit + unit price HT. Format only, no line-total math.

canonical Company Registry Lookup match 81%
franceinvoicelineL441-9
/v1/page

French multi-page invoice footer: Page X/Y. Sequential pages of one invoice (L441-9 numbering is the invoice number, not the page).

canonical Company Registry Lookup match 81%
franceinvoicepageL441-9
/v1/retractation

French 14-day consumer withdrawal (C. conso L.221-18 / L.221-19). Services: from contract date. Goods: from delivery. Does not apply to professional buyers.

canonical Sanctions Screening match 80%
franceconsoretractationL221-18invoice
/v1/conservation

French invoice retention: 10 years commercial (C. com. L123-22) and 6 years tax (LPF L102 B) from the invoice date.

canonical Tax Compliance and Filing match 79%
franceinvoiceconservationL123-22archive
/v1/prescription

French limitation period for an unpaid invoice: 5 years B2B (C. com. L110-4) or 2 years against a consumer (C. conso L.218-2), from the due date.

canonical Company Registry Lookup match 78%
franceinvoiceprescriptionL110-4L218-2
/v1/garantie-commerciale

French commercial warranty mention (C. conso L.217-21), distinct from the 2-year legal warranty. Optional months + delivery_date → expiry.

canonical Legal Contract Review match 80%
franceconsogarantieL217-21invoice
/v1/export

French VAT exemption mention: extra-EU export CGI 262 I, or intra-EU supply CGI 262 ter I. Distinct from reverse-charge /v1/autoliquidation.

canonical Tax Compliance and Filing match 80%
francetvaexportCGI262invoice
/v1/proforma

French pro forma header: this document is not an invoice (CGI 289). Optional number.

canonical Company Registry Lookup match 80%
franceinvoiceproformaCGI289
/v1/jours-francs

French jours francs (C. proc. civ. 642): start day excluded; Saturday/Sunday/holiday rolls to the next open day. Métropole holidays 2026–2027.

canonical Locale and Regional Primitives match 79%
francedelaifrancsCPC642invoice
/v1/clause-penale

French contractual penalty clause (C. civ. 1231-5). Optional amount. Distinct from statutory L441-10 late-payment.

canonical Legal Contract Review match 80%
francecontratpenale1231-5invoice
/v1/periode

French invoice billing period for continuous services (CGI 289): from + to dates as a collable mention.

canonical Invoicing and Billing match 83%
franceinvoiceperiodeCGI289
/v1/autofacturation

French self-billing stamp (CGI 289): the word Autofacturation on each invoice. Optional seller name. Prior agreement is the buyer's problem.

canonical Agent-Initiated Checkout (AP2) match 80%
franceinvoiceautofacturationCGI289
/v1/rgpd

French invoice personal-data footer: RGPD art. 6.1.b/c legal bases + 10-year keep (C. com. L123-22). Optional controller name.

canonical Company Registry Lookup match 81%
francergpdinvoiceprivacy
/v1/langue

French invoice language mention: Toubon 94-665 for B2C in France; B2B defaults to French for tax control.

canonical Company Registry Lookup match 81%
francelanguetouboninvoice
/v1/commande

French invoice purchase-order reference (number + optional date). Usage for identifying the operation (L441-9).

canonical Company Registry Lookup match 82%
franceinvoicecommandeL441-9
/v1/debours

French disbursements (débours): paid in the client's name, out of the VAT base (CGI 267). Optional amount + label.

canonical Tax Compliance and Filing match 79%
francetvadeboursCGI267invoice
/v1/arrhes

French arrhes (C. civ. 1590), distinct from acompte: buyer forfeits, seller returns double. Requires amount_eur.

canonical Company Registry Lookup match 79%
francecontratarrhes1590invoice
/v1/prorata

Calendar prorata of a monthly HT amount over an inclusive from/to window (days / days in the start month).

canonical PrependAction match 80%
franceinvoiceproratacalendar

Health · last 7 probes

When HTTP Live JSON-RPC Latency
2026-09-08 15:02:34 err
2026-09-08 08:16:28 err
2026-09-08 02:09:39 err
2026-09-07 20:07:48 err
2026-09-07 14:07:24 200 28ms
2026-09-07 07:35:14 200 24ms
2026-09-07 01:06:47 200 16ms

Cheaper or better alternatives per-skill

↑ 10 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

compliancepulse.theaslangroupllc.com
Who is this company, officially? Global LEI lookup and legal-entity search against GLEIF, the ISO 17442 registry behind KYB, MiFID and EMIR
compliancepulse.theaslangroupllc.com · q 65%
api.sirenic.eu live
French & European company data for AI agents, pay-per-call in USDC or EURC via x402 — company lookup & KYB files, officers, annual accounts
api.sirenic.eu · q 100%
compliancepulse-eight.vercel.app
Global regulatory intelligence API. Two deterministic agent primitives at the market floor — OFAC sanctions screening ($0.02, SDN + Consolid
compliancepulse-eight.vercel.app · q 45%
euroref.dev
European government reference data as clean, cited JSON: ECB and Bank of England policy rates, VAT with reduced and zero bands, corporate an
euroref.dev · q 100%
x402-endpoints.onrender.com
Paid x402 API tools for AI agents (USDC on Base). Official EU/global registries (GLEIF LEI, VIES VAT, Companies House, INSEE, EUR-Lex, ECB,
x402-endpoints.onrender.com · q 65%
api.ibanforge.com
IBAN validation and BIC/SWIFT lookup backed by primary bank registries (GLEIF, SIX, Bundesbank, EBA, Bank of England). Returns bank identity
api.ibanforge.com · q 100%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/fr-legal-kit.monnet-yanis1.workers.dev.svg)](https://agenstry.com/agents/fr-legal-kit.monnet-yanis1.workers.dev)
[![Verified Business](https://agenstry.com/badge/fr-legal-kit.monnet-yanis1.workers.dev/identity.svg)](https://agenstry.com/agents/fr-legal-kit.monnet-yanis1.workers.dev)
[![Uptime](https://agenstry.com/badge/fr-legal-kit.monnet-yanis1.workers.dev/uptime.svg)](https://agenstry.com/agents/fr-legal-kit.monnet-yanis1.workers.dev)
[![A2A version](https://agenstry.com/badge/fr-legal-kit.monnet-yanis1.workers.dev/protocol.svg)](https://agenstry.com/agents/fr-legal-kit.monnet-yanis1.workers.dev)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "protocolVersion": "0.3.0",
  "name": "fr-legal-kit",
  "description": "French legal kit for agents: e-invoice obligation calendar (Sep 2026 reform), L441-10 penalties, SIRET/IBAN checksums. Paid x402 USDC on Base.",
  "url": "https://fr-legal-kit.monnet-yanis1.workers.dev/a2a",
  "version": "1.0.0",
  "provider": {
    "organization": "Yanis Monnet EI",
    "url": "https://fr-legal-kit.monnet-yanis1.workers.dev"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "late-penalties",
      "name": "/v1/late-penalties",
      "description": "French L441-10 late-payment: BCE MRO+10pts interest + 40\u20ac indemnity (D.441-5) from amount_ttc and days_late. Default MRO 2.40% (H2 2026, ECB). No live BCE fetch.",
      "tags": [
        "france",
        "invoice",
        "L441-10",
        "penalties",
        "legal"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "einvoice-who",
      "name": "/v1/einvoice-who",
      "description": "French e-invoice calendar: who must receive (2026-09-01 all) vs emit (GE/ETI 2026, PME/micro 2027). Size in, dates out. No registry lookup.",
      "tags": [
        "france",
        "e-invoice",
        "facture-electronique",
        "pdp",
        "2026"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "check-siret",
      "name": "/v1/check-siret",
      "description": "SIRET/SIREN checksum (Luhn / La Poste). Does not call INSEE.",
      "tags": [
        "france",
        "siret",
        "luhn",
        "checksum"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "check-iban",
      "name": "/v1/check-iban",
      "description": "IBAN ISO 13616 checksum. Does not prove the account exists.",
      "tags": [
        "iban",
        "checksum",
        "payments"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "due-date",
      "name": "/v1/due-date",
      "description": "French invoice due date: invoice_date + net_days (calendar). Also next_open_day skipping weekends + L.3133-1 holidays 2026\u20132027. No live calendar fetch.",
      "tags": [
        "france",
        "invoice",
        "due-date",
        "jours-feries"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "tva-rate",
      "name": "/v1/tva-rate",
      "description": "Indicative FR VAT rate table: standard 20 / intermediate 10 / reduced 5.5 / super_reduced 2.1 / exempt. Not a tax ruling.",
      "tags": [
        "france",
        "tva",
        "vat",
        "cgi"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "holidays",
      "name": "/v1/holidays",
      "description": "French metropolitan public holidays for 2026 or 2027 (C. trav. L.3133-1). Optional Alsace-Moselle extras. No live fetch.",
      "tags": [
        "france",
        "jours-feries",
        "calendar",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "payment-term-max",
      "name": "/v1/payment-term-max",
      "description": "Statutory ceiling on agreed FR B2B payment terms: 60 days after invoice issue, or 45 days end-of-month if stipulated (L441-10 I). Not a recommended term.",
      "tags": [
        "france",
        "invoice",
        "L441-10",
        "payment-terms"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "mention-fields",
      "name": "/v1/mention-fields",
      "description": "Checklist of French invoice/quote legal mention fields (L441-9, L441-10, 293 B). JSON in, list of required ids out. No lookup.",
      "tags": [
        "france",
        "invoice",
        "mentions",
        "293B",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "vat-key",
      "name": "/v1/vat-key",
      "description": "French intra-community VAT identifier from SIREN: FR + 2-digit key + SIREN. Key = (12 + 3*(siren%97))%97 (CGI 286 ter). Not a VIES proof.",
      "tags": [
        "france",
        "tva",
        "vat",
        "siren",
        "286ter"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "penalty-text",
      "name": "/v1/penalty-text",
      "description": "Statutory L441-10 / D.441-5 invoice mention strings (rate BCE MRO+10 pts + 40 \u20ac indemnity). No amount required. Default MRO 2.40% H2 2026.",
      "tags": [
        "france",
        "invoice",
        "L441-10",
        "mentions",
        "penalties"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "franchise-293b",
      "name": "/v1/franchise-293b",
      "description": "CGI 293 B franchise-en-base 2026 thresholds (services 37 500/41 250, goods 85 000/93 500) plus the statutory invoice mention. 25 000 \u20ac unique threshold was abandoned. Not a tax ruling.",
      "tags": [
        "france",
        "tva",
        "293B",
        "franchise",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "dunning-steps",
      "name": "/v1/dunning-steps",
      "description": "Suggested FR B2B dunning calendar after the due date (J+1 / J+8 / J+15). L441-10 penalties accrue without a reminder. Usage, not a statutory timetable.",
      "tags": [
        "france",
        "invoice",
        "dunning",
        "relance",
        "L441-10"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "open-days",
      "name": "/v1/open-days",
      "description": "Inclusive count of French metropolitan open days between two dates (skip Sat/Sun + L.3133-1 holidays 2026\u20132027). Optional Alsace-Moselle extras.",
      "tags": [
        "france",
        "calendar",
        "jours-ouvres",
        "jours-feries"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "invoice-numbering",
      "name": "/v1/invoice-numbering",
      "description": "French invoice numbering helper (C. com. L441-9): unique chronological sequence, no gaps. Returns next number from last_number plus the statutory rules.",
      "tags": [
        "france",
        "invoice",
        "L441-9",
        "numbering"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "amount-words",
      "name": "/v1/amount-words",
      "description": "French amount in words for invoices (douze euros et quarante centimes). Traditional hyphenation. Not a statutory mention.",
      "tags": [
        "france",
        "invoice",
        "montant",
        "lettres"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "alsace-holidays",
      "name": "/v1/alsace-holidays",
      "description": "Alsace-Moselle extra public holidays (Good Friday + St Stephen) plus the combined 2026\u20132027 calendar. In addition to L.3133-1 metropolitan days.",
      "tags": [
        "france",
        "alsace",
        "moselle",
        "jours-feries",
        "calendar"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "due-date-eom",
      "name": "/v1/due-date-eom",
      "description": "French 45-days-end-of-month due date (L441-10 I derogation). Statutory reading: 45 days after month-end of the invoice. Alternate usage: +45 then EOM. Must be stipulated.",
      "tags": [
        "france",
        "invoice",
        "L441-10",
        "due-date",
        "fin-de-mois"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "ht-ttc",
      "name": "/v1/ht-ttc",
      "description": "French HT \u2194 TTC using CGI indicative rates (20 / 10 / 5.5 / 2.1 / 0). Pass exactly one of amount_ht or amount_ttc. Not a tax ruling.",
      "tags": [
        "france",
        "tva",
        "invoice",
        "ht",
        "ttc"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "days-late",
      "name": "/v1/days-late",
      "description": "Calendar days late from due_date to as_of (L441-10 periods are calendar). Also accepts invoice_date + net_days. Feed days_late into /v1/late-penalties.",
      "tags": [
        "france",
        "invoice",
        "L441-10",
        "late",
        "calendar"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "siren-from-siret",
      "name": "/v1/siren-from-siret",
      "description": "Split a French SIRET into SIREN + NIC, checksum both (Luhn / La Poste), and compute the CGI 286 ter VAT key. No INSEE lookup.",
      "tags": [
        "france",
        "siret",
        "siren",
        "vat",
        "checksum"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "quote-validity",
      "name": "/v1/quote-validity",
      "description": "French quote (devis) validity calendar. Default 30 days from quote_date. Commercial usage, not L441-9. Returns expiry and a collable mention.",
      "tags": [
        "france",
        "devis",
        "quote",
        "validity"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "ape-naf",
      "name": "/v1/ape-naf",
      "description": "French APE/NAF rev.2 format check: 4 digits + 1 letter (62.01Z). No INSEE lookup of the label.",
      "tags": [
        "france",
        "ape",
        "naf",
        "invoice",
        "checksum"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "postcode-fr",
      "name": "/v1/postcode-fr",
      "description": "French 5-digit postcode: department prefix (Corsica 2A/2B, overseas 97x). No address lookup. Flags Alsace-Moselle 57/67/68.",
      "tags": [
        "france",
        "postcode",
        "invoice",
        "address"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "legal-form",
      "name": "/v1/legal-form",
      "description": "Extra French invoice mentions by legal form (EI/micro vs SARL/SAS/SA/SCI): EI quality, 293 B, capital, RCS. On top of /v1/mention-fields.",
      "tags": [
        "france",
        "invoice",
        "mentions",
        "ei",
        "sas",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "iban-fr",
      "name": "/v1/iban-fr",
      "description": "French IBAN structure: 27 chars, bank/branch/account/RIB key, plus ISO 13616 checksum. Does not prove the account exists.",
      "tags": [
        "france",
        "iban",
        "payments",
        "rib"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "credit-note",
      "name": "/v1/credit-note",
      "description": "French credit note (avoir): next number in a dedicated AV- sequence, collable CGI 289 mention referencing the original invoice, optional HT/TTC reversal. Does not reuse the cancelled invoice number (L441-9).",
      "tags": [
        "france",
        "invoice",
        "avoir",
        "credit-note",
        "L441-9",
        "CGI-289"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "phone-fr",
      "name": "/v1/phone-fr",
      "description": "French phone format (ARCEP numbering plan): 10-digit national or +33/0033 \u2192 E.164, grouped mention, kind mobile/geo/voip/overseas. No subscriber lookup.",
      "tags": [
        "france",
        "phone",
        "invoice",
        "e164",
        "arcep"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "capital-social",
      "name": "/v1/capital-social",
      "description": "French share-capital invoice mention for soci\u00e9t\u00e9s (SAS/SARL/SA/SCI): 'au capital de 1 000,00 \u20ac', optional variable capital. EI/micro have no capital. Format only, not a Kbis.",
      "tags": [
        "france",
        "invoice",
        "capital",
        "sas",
        "sarl",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "rcs-mention",
      "name": "/v1/rcs-mention",
      "description": "French RCS invoice mention: 'RCS Pau 404 833 048' from greffe city + SIREN/SIRET. Format only, not a Kbis lookup.",
      "tags": [
        "france",
        "invoice",
        "rcs",
        "greffe",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "invoice-currency",
      "name": "/v1/invoice-currency",
      "description": "French invoice currency: EUR is legal tender. Foreign ISO 4217 (USD/GBP/CHF/CAD/JPY) allowed; VAT is expressed in euros. Offline subset, no FX rate.",
      "tags": [
        "france",
        "invoice",
        "currency",
        "eur",
        "tva"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "escompte",
      "name": "/v1/escompte",
      "description": "French invoice early-payment discount mention (L441-9 / L441-10): collable 'Pas d'escompte pour paiement anticip\u00e9.' or 'Escompte de X % pour paiement sous N jours.'",
      "tags": [
        "france",
        "invoice",
        "escompte",
        "L441-10",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "acompte",
      "name": "/v1/acompte",
      "description": "French down-payment (acompte) invoice: next AC- number, 30% default or explicit %, remaining TTC, collable CGI 289 mention. Own L441-9 sequence.",
      "tags": [
        "france",
        "invoice",
        "acompte",
        "L441-9",
        "CGI-289"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "date-fr",
      "name": "/v1/date-fr",
      "description": "French invoice date format: YYYY-MM-DD \u2192 JJ/MM/AAAA, weekday, long form, collable 'Date de facture : \u2026'. L441-9 emission date.",
      "tags": [
        "france",
        "invoice",
        "date",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "payment-means",
      "name": "/v1/payment-means",
      "description": "French invoice means-of-payment mention (L441-9): virement, ch\u00e8que, CB, esp\u00e8ces, pr\u00e9l\u00e8vement, LCR. Default virement. Collable string.",
      "tags": [
        "france",
        "invoice",
        "payment",
        "virement",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "interest-start",
      "name": "/v1/interest-start",
      "description": "L441-10: calendar day late-payment interest starts (the day after the due date), without a reminder. Accepts due_date or invoice_date + net_days.",
      "tags": [
        "france",
        "invoice",
        "L441-10",
        "penalties",
        "due-date"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "siege-social",
      "name": "/v1/siege-social",
      "description": "French si\u00e8ge social invoice mention (L441-9): street + postcode + city, department prefix, Alsace-Moselle flag. Format only, not a Kbis.",
      "tags": [
        "france",
        "invoice",
        "adresse",
        "siege",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "net-a-payer",
      "name": "/v1/net-a-payer",
      "description": "French invoice footer: HT / VAT / TTC plus collable 'Net \u00e0 payer : 1 200,00 \u20ac'. Same CGI rates as /v1/ht-ttc. Pass exactly one of amount_ht or amount_ttc.",
      "tags": [
        "france",
        "invoice",
        "tva",
        "ttc",
        "net-a-payer"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "doc-title",
      "name": "/v1/doc-title",
      "description": "CGI 289 document title: Facture, Avoir, Facture d'acompte, Note d'honoraires (still an invoice), or Devis (not L441-9). Optional number \u2192 'Facture n\u00b0 \u2026'.",
      "tags": [
        "france",
        "invoice",
        "cgi-289",
        "honoraires",
        "devis"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "autoliquidation",
      "name": "/v1/autoliquidation",
      "description": "French reverse-charge VAT mention (autoliquidation): intra-EU CGI 283, construction 283-2 nonies, or import. Invoice shows HT; VAT due by the customer.",
      "tags": [
        "france",
        "tva",
        "autoliquidation",
        "cgi-283",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "eori",
      "name": "/v1/eori",
      "description": "French EORI format: FR + SIREN (legal entity). From a SIRET also returns FR+SIRET establishment form. Format only, no customs lookup.",
      "tags": [
        "france",
        "eori",
        "customs",
        "siren",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "duplicata",
      "name": "/v1/duplicata",
      "description": "French invoice duplicata: same original number stamped DUPLICATA. Not a new L441-9 number and not a credit note. Collable 'Ne pas comptabiliser une seconde fois.'",
      "tags": [
        "france",
        "invoice",
        "duplicata",
        "L441-9",
        "CGI-289"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "rm-mention",
      "name": "/v1/rm-mention",
      "description": "French artisan RM invoice mention: 'RM Pau 404 833 048' from city + SIREN/SIRET. Format only. RNE replaced RM for new filings in 2023; invoice usage still shows RM.",
      "tags": [
        "france",
        "invoice",
        "rm",
        "artisan",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "buyer",
      "name": "/v1/buyer",
      "description": "French invoice buyer identification (L441-9): client name + optional SIRET/SIREN + city. B2C may omit SIRET. Format only.",
      "tags": [
        "france",
        "invoice",
        "client",
        "siret",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "unit",
      "name": "/v1/unit",
      "description": "French invoice line unit of measure (L441-9): heure, jour, mois, forfait, unit\u00e9, kg, m\u00b2. Optional qty with plural. Format only.",
      "tags": [
        "france",
        "invoice",
        "unite",
        "quantite",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "cgv",
      "name": "/v1/cgv",
      "description": "French CGV invoice mention (C. com. L441-6): 'Nos conditions g\u00e9n\u00e9rales de vente s'appliquent.' Optional URL. A mention does not replace prior communication to the professional buyer.",
      "tags": [
        "france",
        "invoice",
        "cgv",
        "L441-6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "reserve-propriete",
      "name": "/v1/reserve-propriete",
      "description": "French retention-of-title invoice clause (C. com. L.624-16): goods remain the seller's until full payment. Not for pure services.",
      "tags": [
        "france",
        "invoice",
        "reserve-propriete",
        "L624-16"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "garantie-legale",
      "name": "/v1/garantie-legale",
      "description": "French legal warranty of conformity (C. conso L.217-3): 2 years from delivery for consumer goods. Does not apply to professional buyers. Optional delivery_date \u2192 expiry.",
      "tags": [
        "france",
        "conso",
        "garantie",
        "L217-3",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "mediateur",
      "name": "/v1/mediateur",
      "description": "French consumer mediator mention (C. conso L.612-1). Required for B2C. Pass name + url of the designated mediator. Does not apply to professional buyers.",
      "tags": [
        "france",
        "conso",
        "mediateur",
        "L612-1",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "delivery",
      "name": "/v1/delivery",
      "description": "French invoice date of supply (CGI 289 / 242 nonies A): delivery or service execution vs invoice date. Distinct dates get an explicit mention.",
      "tags": [
        "france",
        "invoice",
        "livraison",
        "CGI289",
        "242-nonies-A"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "line",
      "name": "/v1/line",
      "description": "French invoice line (L441-9): designation + optional quantity/unit + unit price HT. Format only, no line-total math.",
      "tags": [
        "france",
        "invoice",
        "line",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "page",
      "name": "/v1/page",
      "description": "French multi-page invoice footer: Page X/Y. Sequential pages of one invoice (L441-9 numbering is the invoice number, not the page).",
      "tags": [
        "france",
        "invoice",
        "page",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "retractation",
      "name": "/v1/retractation",
      "description": "French 14-day consumer withdrawal (C. conso L.221-18 / L.221-19). Services: from contract date. Goods: from delivery. Does not apply to professional buyers.",
      "tags": [
        "france",
        "conso",
        "retractation",
        "L221-18",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "conservation",
      "name": "/v1/conservation",
      "description": "French invoice retention: 10 years commercial (C. com. L123-22) and 6 years tax (LPF L102 B) from the invoice date.",
      "tags": [
        "france",
        "invoice",
        "conservation",
        "L123-22",
        "archive"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "prescription",
      "name": "/v1/prescription",
      "description": "French limitation period for an unpaid invoice: 5 years B2B (C. com. L110-4) or 2 years against a consumer (C. conso L.218-2), from the due date.",
      "tags": [
        "france",
        "invoice",
        "prescription",
        "L110-4",
        "L218-2"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "garantie-commerciale",
      "name": "/v1/garantie-commerciale",
      "description": "French commercial warranty mention (C. conso L.217-21), distinct from the 2-year legal warranty. Optional months + delivery_date \u2192 expiry.",
      "tags": [
        "france",
        "conso",
        "garantie",
        "L217-21",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "export",
      "name": "/v1/export",
      "description": "French VAT exemption mention: extra-EU export CGI 262 I, or intra-EU supply CGI 262 ter I. Distinct from reverse-charge /v1/autoliquidation.",
      "tags": [
        "france",
        "tva",
        "export",
        "CGI262",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "proforma",
      "name": "/v1/proforma",
      "description": "French pro forma header: this document is not an invoice (CGI 289). Optional number.",
      "tags": [
        "france",
        "invoice",
        "proforma",
        "CGI289"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "jours-francs",
      "name": "/v1/jours-francs",
      "description": "French jours francs (C. proc. civ. 642): start day excluded; Saturday/Sunday/holiday rolls to the next open day. M\u00e9tropole holidays 2026\u20132027.",
      "tags": [
        "france",
        "delai",
        "francs",
        "CPC642",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "clause-penale",
      "name": "/v1/clause-penale",
      "description": "French contractual penalty clause (C. civ. 1231-5). Optional amount. Distinct from statutory L441-10 late-payment.",
      "tags": [
        "france",
        "contrat",
        "penale",
        "1231-5",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "periode",
      "name": "/v1/periode",
      "description": "French invoice billing period for continuous services (CGI 289): from + to dates as a collable mention.",
      "tags": [
        "france",
        "invoice",
        "periode",
        "CGI289"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "autofacturation",
      "name": "/v1/autofacturation",
      "description": "French self-billing stamp (CGI 289): the word Autofacturation on each invoice. Optional seller name. Prior agreement is the buyer's problem.",
      "tags": [
        "france",
        "invoice",
        "autofacturation",
        "CGI289"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "rgpd",
      "name": "/v1/rgpd",
      "description": "French invoice personal-data footer: RGPD art. 6.1.b/c legal bases + 10-year keep (C. com. L123-22). Optional controller name.",
      "tags": [
        "france",
        "rgpd",
        "invoice",
        "privacy"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "langue",
      "name": "/v1/langue",
      "description": "French invoice language mention: Toubon 94-665 for B2C in France; B2B defaults to French for tax control.",
      "tags": [
        "france",
        "langue",
        "toubon",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "commande",
      "name": "/v1/commande",
      "description": "French invoice purchase-order reference (number + optional date). Usage for identifying the operation (L441-9).",
      "tags": [
        "france",
        "invoice",
        "commande",
        "L441-9"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "debours",
      "name": "/v1/debours",
      "description": "French disbursements (d\u00e9bours): paid in the client's name, out of the VAT base (CGI 267). Optional amount + label.",
      "tags": [
        "france",
        "tva",
        "debours",
        "CGI267",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "arrhes",
      "name": "/v1/arrhes",
      "description": "French arrhes (C. civ. 1590), distinct from acompte: buyer forfeits, seller returns double. Requires amount_eur.",
      "tags": [
        "france",
        "contrat",
        "arrhes",
        "1590",
        "invoice"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "prorata",
      "name": "/v1/prorata",
      "description": "Calendar prorata of a monthly HT amount over an inclusive from/to window (days / days in the start month).",
      "tags": [
        "france",
        "invoice",
        "prorata",
        "calendar"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}