Files
erp/fleet/profile/decisions/adc-001-km-autoliquidation-259-1.md
T
arcodangeandClaude Fable 5 a482bb18c4 feat(fleet): fiscal profile + compliance calendar + ADC register (erp#54, T11 data)
fleet/profile/ goes from stub to the machine-readable business-rules surface
the fleet reads (PRD agent-catalog document surface + compliance ADC framework):

- fiscal.yaml — entity, VAT position, 8 rules (regime reel simplifie until
  2026-12-31 -> quarterly CA3 from 2027-01-01 per LF 2025 art. 38; KM export
  autoliquidation 259-1 CGI box E2; FR 20% deductible; intra-EU reverse
  charge; FX 766/666; SaaS expensed; CCA 455 lane). Every rule carries
  effective_from/effective_until AND decision: adc-NNN; every date cites its
  PRD anchor as an inline comment (verified against factory origin/main).
- calendar.yaml — 15 entries: acomptes TVA (2026-07 month-window, 2026-12-15),
  last CA12 FY-2026 (2027-05-04), CA3 quarterly windows, CFE (December),
  AG comptes annuels (2027-06-30), e-invoicing milestones (2026-09-01
  reception, 2027-09-01 emission/e-reporting), URSSAF echeancier with the
  in-file NOTE that a real direct debit exists since May 2026 (erp#57 revisit
  of the payroll-dormant assumption), KM deferred due dates + renewal stub.
- JSON Schemas for both + scripts/validate.py (stdlib-only: strict YAML-subset
  parser, JSON-Schema-subset checker, rule->ADC resolution, calendar checks).
- decisions/ — ADC register: template + adc-001..005 Accepted formalizations
  (autoliquidation KM, FX->766/666, SaaS expensed, reel simplifie until
  abolition, CCA personal-card lane) + adc-006/007 Proposed stubs (retainer
  currency -> erp#53; capital path -> erp#51). Agents draft, the operator
  Accepts — never the reverse; immutable once merged, supersede never edit.
- Mutation policy in-file: PRs only (T12 proposes, human merges).
- Same-change: profile README stub -> real doc; fleet/README.md layout line
  and AGENTS.md fleet row updated (profile no longer a stub).

Validation: PASS — 8 rules, 15 entries, 7 ADCs, 0 errors, 7 warnings (the
warnings list exactly what awaits operator verification). Human gate left
open on purpose: operator sanity-read of the calendar + Acceptance of
adc-001..005.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh
2026-07-18 23:45:00 +02:00

3.2 KiB
Raw Blame History

id, title, status, decided, effective_from, effective_until, supersedes, superseded_by
id title status decided effective_from effective_until supersedes superseded_by
adc-001 KM client invoices under autoliquidation - art. 259-1° CGI (no French VAT, box E2) Accepted 2026-07-18 2026-01-01 null null null

adc-001 — KM client invoices under autoliquidation — art. 259-1° CGI

Accepted as formalization of practice in force "since the first invoice" (PRD compliance ADC seed table). The operator's sanity read is the erp#54 human gate; amendments before the PR merges are edits to a draft — immutability starts at merge on main.

Context

KissMetrics (US) is the sole client: B2B services exported outside the EU. The first client invoice forced the VAT position — charge French VAT, or treat the supply as outside French VAT scope.

Decision

B2B services supplied to a non-EU taxable customer are outside French VAT scope (place of supply = where the customer is established). Therefore: TVA collectée = 0 on every KM invoice; each invoice carries the autoliquidation mention referencing art. 259-1° CGI; the basis reports in box E2 of the CA3/CA12. Applied to 100 % of client revenue today.

Base légale & doctrine

  • CGI art. 259-1° — place of supply of B2B services is where the preneur assujetti is established.
  • CA3 box E2 mapping per the T10 mode opératoire (PRD task-inventory § T10 step 1: "box E2 export — today 100 % of client revenue is box E2 autoliquidation Art. 259-1°, collectée = 0").
  • Invoice mention checked structurally by the dolibarr-invoice-audit skill ("TVA 259-1° CGI").
  • Expert-comptable confirmation pending — on the PRD compliance.md § Questions list (PAF documentation expectations for the export invoices).

Alternatives rejected

  • Charging French VAT — wrong place-of-supply analysis for extra-EU B2B services; would create undue TVA collectée.
  • Franchise en base — would renounce the right to deduct while the company runs a structural VAT credit (all revenue exported, FR expenses carrying 20 % VAT).

Consequences

  • Structural TVA credit while KM is the sole client (collectée 0 vs déductible on FR supplier invoices) — surfaced in fiscal.yaml vat_position.
  • Downstream rule: fiscal.yaml client-export-autoliquidation.
  • E-invoicing: these export invoices stay OUT of domestic e-invoicing scope but ENTER e-reporting on 2027-09-01 (PRD compliance.md § Obligations, PAF row; roadmap § Milestones) — the PAF stays load-bearing for them.
  • Annexe: the VAT method is disclosed from this record at close (ADC rule 3).

QA & validation

  • dolibarr-tva-reconciliation classifies every KM invoice in bucket E2 (autoliquidation, collectée = 0) — in production.
  • dolibarr-invoice-audit verifies the invoice mention per invoice.
  • Expert-comptable review: pending (PRD compliance.md § Questions).

References

  • PRD compliance.md § ADC seed table (adc-001) + § Obligations (PAF row).
  • PRD task-inventory.md § T05 step 2, § T10 step 1.
  • fiscal.yaml rule client-export-autoliquidation.
  • erp#54 (this register's seeding issue).