Odel
fr-legal-kit

fr-legal-kit

@cartonpliantJavaScriptUpdated Today

French legal helpers for agents: e-invoice, L441-10, SIRET/IBAN. $0.01 USDC x402

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

fr-legal-kit

x402 API for AI agents. Offline French legal helpers. $0.01 USDC on Base per call. No INSEE, no scrape, no PDP.

Live: https://fr-legal-kit.monnet-yanis1.workers.dev

Routes

POSTWhat
/v1/einvoice-whoWho must receive e-invoices since 1 Sep 2026 vs emit (GE/ETI 2026, PME/micro 2027)
/v1/late-penaltiesL441-10 C. com. interest (BCE MRO +10 pts, H2-2026 default 2.40%) + 40 € (D.441-5)
/v1/due-dateInvoice date + net days; next open day skipping L.3133-1 holidays 2026–2027
/v1/holidaysMetropolitan public holidays (11 in 2026, Easter Monday 6 Apr)
/v1/payment-term-maxAgreed-term ceiling: 60 days after invoice, or 45 days EOM if stipulated (L441-10 I)
/v1/tva-rateIndicative VAT 20 / 10 / 5.5 / 2.1
/v1/mention-fieldsChecklist of L441-9 / 293 B / L441-10 mention field ids
/v1/vat-keyFR intra-community VAT id from SIREN (CGI 286 ter formula, not VIES)
/v1/penalty-textCollable L441-10 + D.441-5 mention strings (12,40 % + 40 €)
/v1/franchise-293b2026 293 B thresholds (37 500 / 85 000 €) + statutory mention
/v1/dunning-stepsRelance calendar J+1 / J+8 / J+15 after due date (usage; L441-10 sans rappel)
/v1/open-daysInclusive open-day count between two dates (skip weekend + L.3133-1)
/v1/invoice-numberingL441-9 chronological sequence: next number + no-gap rules
/v1/amount-wordsFrench amount in words (12,40 → douze euros et quarante centimes)
/v1/alsace-holidaysAlsace-Moselle extras (Good Friday + St Stephen) + combined calendar
/v1/due-date-eom45 jours fin de mois (L441-10 I): month-end+45 and +45-then-EOM
/v1/ht-ttcHT ↔ TTC at CGI rates 20 / 10 / 5.5 / 2.1 / 0
/v1/days-lateCalendar days from due_date to as_of (input for late-penalties)
/v1/siren-from-siretSIRET → SIREN + NIC + checksums + VAT key (no INSEE)
/v1/quote-validityDevis validity calendar (default 30 days, usage not L441-9)
/v1/ape-nafAPE/NAF rev.2 format (4 digits + letter, e.g. 62.01Z). No INSEE
/v1/postcode-fr5-digit postcode → department (2A/2B, 97x, Alsace-Moselle flag)
/v1/legal-formExtra invoice mentions by form (EI/micro vs SAS/SARL capital+RCS)
/v1/iban-frFR IBAN 27 chars: bank / branch / account / RIB key + ISO checksum
/v1/credit-noteAvoir: next AV- number + CGI 289 mention of original invoice (L441-9, no reuse)
/v1/phone-frFR phone format (ARCEP): 10 digits / +33 → E.164 + invoice mention. No lookup
/v1/capital-socialShare-capital mention (SAS au capital de 1 000,00 €). EI/micro: none
/v1/rcs-mentionRCS + greffe city + SIREN (RCS Pau 404 833 048). Format, not a Kbis
/v1/invoice-currencyEUR legal tender; foreign ccy OK, VAT in euros. No FX
/v1/escompteL441-10 early-payment discount mention, or « Pas d'escompte… »
/v1/acompteDown-payment invoice: AC- number, 30% default, remaining TTC (CGI 289)
/v1/date-frInvoice date JJ/MM/AAAA + weekday (L441-9 emission date format)
/v1/payment-meansMeans of payment mention (virement / chèque / CB / …) L441-9
/v1/interest-startL441-10: interest starts the calendar day after the due date
/v1/siege-socialSiège social mention: street + CP + city (L441-9, not a Kbis)
/v1/net-a-payerInvoice footer HT/TVA/TTC + « Net à payer : 1 200,00 € »
/v1/doc-titleCGI 289 title: Facture / Avoir / acompte / note d'honoraires / Devis
/v1/autoliquidationReverse-charge VAT mention (CGI 283 / BTP 283-2 nonies / import)
/v1/eoriFR EORI = FR + SIREN (format only, no customs lookup)
/v1/duplicataCopy of an invoice: same number, stamped DUPLICATA (not a new invoice)
/v1/rm-mentionArtisan RM + city + SIREN (RM Pau 404 833 048). Format, not a D1
/v1/buyerL441-9 client identification: name + optional SIRET/SIREN + city
/v1/unitLine unit of measure (heure / jour / forfait / …) + optional qty
/v1/cgvL441-6 CGV mention (« Nos conditions générales de vente s'appliquent. »)
/v1/reserve-proprieteRetention-of-title clause (L.624-16) until full payment. Goods only
/v1/garantie-legaleConsumer legal warranty 2 years from delivery (C. conso L.217-3)
/v1/mediateurConsumer mediator mention (C. conso L.612-1). B2C only
/v1/deliveryDate of supply vs invoice date (CGI 289 / 242 nonies A)
/v1/lineL441-9 invoice line: designation + qty/unit + unit price HT
/v1/pageMulti-page invoice footer: Page X/Y
/v1/retractation14-day consumer withdrawal (L.221-18). B2C distance/off-premises
/v1/conservationKeep the invoice 10 years (L123-22) / 6 years tax (LPF L102 B)
/v1/prescriptionPayment action: 5 years B2B (L110-4) or 2 years B2C (L.218-2)
/v1/garantie-commercialeCommercial warranty (L.217-21), distinct from the 2-year legal one
/v1/exportVAT exemption: CGI 262 extra-EU or 262 ter I intra-EU
/v1/proformaPro forma header — not an invoice (CGI 289)
/v1/jours-francsJours francs (CPC 642): start day out, weekend/holiday rolls
/v1/clause-penaleContractual penalty clause (C. civ. 1231-5), not L441-10
/v1/periodeBilling period from/to for continuous services (CGI 289)
/v1/autofacturationSelf-billing stamp (CGI 289), optional seller name
/v1/rgpdInvoice data footer: RGPD 6.1.b/c + 10-year keep
/v1/langueFrench language mention (Toubon B2C / tax-control B2B)
/v1/commandePurchase-order number (+ optional date) on the invoice
/v1/deboursDisbursements out of the VAT base (CGI 267)
/v1/arrhesArrhes (C. civ. 1590), distinct from acompte — seller returns double
/v1/prorataCalendar prorata of a monthly HT over from/to
/v1/check-siretSIRET/SIREN checksum only
/v1/check-ibanIBAN ISO 13616 checksum only
POST /mcpMCP JSON-RPC: tools/list free, tools/call $0.01

See /llms.txt on the host. Isolated SKU — not Devis d’abord, not Fiche Pleine, not Ibis.

Related paid API: fr-invoice-mentions (mention blocks, $0.02).