{"id":"@lssm-tech/lib.billing-france","slug":"lib.billing-france","name":"@lssm-tech/lib.billing-france","version":"2.0.4","path":"packages/domains/billing/billing-france","manifestPath":"packages/domains/billing/billing-france/package.json","manifestBlobSha":"dbfdbaa761239cc512580bce7b3c0ee7691ef188","layer":"domains","physicalArea":"billing","primaryArea":"billing-and-finance","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"France-specific BillingOS readiness contracts and deterministic e-invoicing/e-reporting checks.","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./credit-note","./data-vault","./docs","./fixtures","./hash-chain","./invoice-immutability","./mandatory-mentions","./numbering","./provider","./readiness","./rounding","./siren-validation-port","./tax-rates","./types"],"documentation":[{"title":"Lib Billing France documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.billing-france","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.billing.france","title":"Lib Billing France","description":"France-specific BillingOS readiness contracts and deterministic e-invoicing/e-reporting checks.","status":"active","useCases":["Adopt france-specific billingos readiness contracts and deterministic e-invoicing/e-reporting checks"],"aliases":["lib","billing","france"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.billing-france","symbols":[]},{"from":"@lssm-tech/lib.billing-france/credit-note","symbols":[]},{"from":"@lssm-tech/lib.billing-france/data-vault","symbols":[]},{"from":"@lssm-tech/lib.billing-france/docs","symbols":[]},{"from":"@lssm-tech/lib.billing-france/fixtures","symbols":[]},{"from":"@lssm-tech/lib.billing-france/hash-chain","symbols":[]},{"from":"@lssm-tech/lib.billing-france/invoice-immutability","symbols":[]},{"from":"@lssm-tech/lib.billing-france/mandatory-mentions","symbols":[]},{"from":"@lssm-tech/lib.billing-france/numbering","symbols":[]},{"from":"@lssm-tech/lib.billing-france/provider","symbols":[]},{"from":"@lssm-tech/lib.billing-france/readiness","symbols":[]},{"from":"@lssm-tech/lib.billing-france/rounding","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.billing-france package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/credit-note","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/data-vault","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/docs","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/fixtures","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/hash-chain","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/invoice-immutability","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/mandatory-mentions","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/numbering","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/provider","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/readiness","symbols":[]},{"capabilityId":"package.lssm.tech.lib.billing.france","from":"@lssm-tech/lib.billing-france/rounding","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.billing-spec":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./credit-note":"./src/credit-note.ts","./data-vault":"./src/data-vault.ts","./docs":"./src/docs.ts","./fixtures":"./src/fixtures.ts","./hash-chain":"./src/hash-chain.ts","./invoice-immutability":"./src/invoice-immutability.ts","./mandatory-mentions":"./src/mandatory-mentions.ts","./numbering":"./src/numbering.ts","./provider":"./src/provider.ts","./readiness":"./src/readiness.ts","./rounding":"./src/rounding.ts","./siren-validation-port":"./src/siren-validation-port.ts","./tax-rates":"./src/tax-rates.ts","./types":"./src/types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./credit-note":{"types":"./dist/credit-note.d.ts","browser":"./dist/browser/credit-note.js","bun":"./dist/credit-note.js","node":"./dist/node/credit-note.js","default":"./dist/credit-note.js"},"./data-vault":{"types":"./dist/data-vault.d.ts","browser":"./dist/browser/data-vault.js","bun":"./dist/data-vault.js","node":"./dist/node/data-vault.js","default":"./dist/data-vault.js"},"./docs":{"types":"./dist/docs.d.ts","browser":"./dist/browser/docs.js","bun":"./dist/docs.js","node":"./dist/node/docs.js","default":"./dist/docs.js"},"./fixtures":{"types":"./dist/fixtures.d.ts","browser":"./dist/browser/fixtures.js","bun":"./dist/fixtures.js","node":"./dist/node/fixtures.js","default":"./dist/fixtures.js"},"./hash-chain":{"types":"./dist/hash-chain.d.ts","browser":"./dist/browser/hash-chain.js","bun":"./dist/hash-chain.js","node":"./dist/node/hash-chain.js","default":"./dist/hash-chain.js"},"./invoice-immutability":{"types":"./dist/invoice-immutability.d.ts","browser":"./dist/browser/invoice-immutability.js","bun":"./dist/invoice-immutability.js","node":"./dist/node/invoice-immutability.js","default":"./dist/invoice-immutability.js"},"./mandatory-mentions":{"types":"./dist/mandatory-mentions.d.ts","browser":"./dist/browser/mandatory-mentions.js","bun":"./dist/mandatory-mentions.js","node":"./dist/node/mandatory-mentions.js","default":"./dist/mandatory-mentions.js"},"./numbering":{"types":"./dist/numbering.d.ts","browser":"./dist/browser/numbering.js","bun":"./dist/numbering.js","node":"./dist/node/numbering.js","default":"./dist/numbering.js"},"./provider":{"types":"./dist/provider.d.ts","browser":"./dist/browser/provider.js","bun":"./dist/provider.js","node":"./dist/node/provider.js","default":"./dist/provider.js"},"./readiness":{"types":"./dist/readiness.d.ts","browser":"./dist/browser/readiness.js","bun":"./dist/readiness.js","node":"./dist/node/readiness.js","default":"./dist/readiness.js"},"./rounding":{"types":"./dist/rounding.d.ts","browser":"./dist/browser/rounding.js","bun":"./dist/rounding.js","node":"./dist/node/rounding.js","default":"./dist/rounding.js"},"./siren-validation-port":{"types":"./dist/siren-validation-port.d.ts","browser":"./dist/browser/siren-validation-port.js","bun":"./dist/siren-validation-port.js","node":"./dist/node/siren-validation-port.js","default":"./dist/siren-validation-port.js"},"./tax-rates":{"types":"./dist/tax-rates.d.ts","browser":"./dist/browser/tax-rates.js","bun":"./dist/tax-rates.js","node":"./dist/node/tax-rates.js","default":"./dist/tax-rates.js"},"./types":{"types":"./dist/types.d.ts","browser":"./dist/browser/types.js","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/lib.billing-france","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/domains/billing/billing-france/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./credit-note","importPath":"@lssm-tech/lib.billing-france/credit-note","target":"./src/credit-note.ts","targets":[{"conditions":[],"target":"./src/credit-note.ts","sourcePath":"packages/domains/billing/billing-france/src/credit-note.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/credit-note.ts","sourceStatus":"verified source file"}]},{"subpath":"./data-vault","importPath":"@lssm-tech/lib.billing-france/data-vault","target":"./src/data-vault.ts","targets":[{"conditions":[],"target":"./src/data-vault.ts","sourcePath":"packages/domains/billing/billing-france/src/data-vault.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/data-vault.ts","sourceStatus":"verified source file"}]},{"subpath":"./docs","importPath":"@lssm-tech/lib.billing-france/docs","target":"./src/docs.ts","targets":[{"conditions":[],"target":"./src/docs.ts","sourcePath":"packages/domains/billing/billing-france/src/docs.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/docs.ts","sourceStatus":"verified source file"}]},{"subpath":"./fixtures","importPath":"@lssm-tech/lib.billing-france/fixtures","target":"./src/fixtures.ts","targets":[{"conditions":[],"target":"./src/fixtures.ts","sourcePath":"packages/domains/billing/billing-france/src/fixtures.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/fixtures.ts","sourceStatus":"verified source file"}]},{"subpath":"./hash-chain","importPath":"@lssm-tech/lib.billing-france/hash-chain","target":"./src/hash-chain.ts","targets":[{"conditions":[],"target":"./src/hash-chain.ts","sourcePath":"packages/domains/billing/billing-france/src/hash-chain.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/hash-chain.ts","sourceStatus":"verified source file"}]},{"subpath":"./invoice-immutability","importPath":"@lssm-tech/lib.billing-france/invoice-immutability","target":"./src/invoice-immutability.ts","targets":[{"conditions":[],"target":"./src/invoice-immutability.ts","sourcePath":"packages/domains/billing/billing-france/src/invoice-immutability.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/invoice-immutability.ts","sourceStatus":"verified source file"}]},{"subpath":"./mandatory-mentions","importPath":"@lssm-tech/lib.billing-france/mandatory-mentions","target":"./src/mandatory-mentions.ts","targets":[{"conditions":[],"target":"./src/mandatory-mentions.ts","sourcePath":"packages/domains/billing/billing-france/src/mandatory-mentions.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/mandatory-mentions.ts","sourceStatus":"verified source file"}]},{"subpath":"./numbering","importPath":"@lssm-tech/lib.billing-france/numbering","target":"./src/numbering.ts","targets":[{"conditions":[],"target":"./src/numbering.ts","sourcePath":"packages/domains/billing/billing-france/src/numbering.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/numbering.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider","importPath":"@lssm-tech/lib.billing-france/provider","target":"./src/provider.ts","targets":[{"conditions":[],"target":"./src/provider.ts","sourcePath":"packages/domains/billing/billing-france/src/provider.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/provider.ts","sourceStatus":"verified source file"}]},{"subpath":"./readiness","importPath":"@lssm-tech/lib.billing-france/readiness","target":"./src/readiness.ts","targets":[{"conditions":[],"target":"./src/readiness.ts","sourcePath":"packages/domains/billing/billing-france/src/readiness.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/readiness.ts","sourceStatus":"verified source file"}]},{"subpath":"./rounding","importPath":"@lssm-tech/lib.billing-france/rounding","target":"./src/rounding.ts","targets":[{"conditions":[],"target":"./src/rounding.ts","sourcePath":"packages/domains/billing/billing-france/src/rounding.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/rounding.ts","sourceStatus":"verified source file"}]},{"subpath":"./siren-validation-port","importPath":"@lssm-tech/lib.billing-france/siren-validation-port","target":"./src/siren-validation-port.ts","targets":[{"conditions":[],"target":"./src/siren-validation-port.ts","sourcePath":"packages/domains/billing/billing-france/src/siren-validation-port.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/siren-validation-port.ts","sourceStatus":"verified source file"}]},{"subpath":"./tax-rates","importPath":"@lssm-tech/lib.billing-france/tax-rates","target":"./src/tax-rates.ts","targets":[{"conditions":[],"target":"./src/tax-rates.ts","sourcePath":"packages/domains/billing/billing-france/src/tax-rates.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/tax-rates.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/lib.billing-france/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/domains/billing/billing-france/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/src/types.ts","sourceStatus":"verified source file"}]}],"entryCount":15,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Billing France documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.billing-france","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.billing-france.txt"},"readme":{"status":"available","body":"# `@lssm-tech/lib.billing-france`\n\nFrance-specific BillingOS readiness contracts, deterministic checks, fixtures, exports, and tests.\n\nThis package may import country-neutral BillingOS contracts from `@lssm-tech/lib.billing-spec`. The reverse dependency is forbidden: France identifiers, routing, e-invoicing, and e-reporting readiness must not leak into `@lssm-tech/lib.billing-spec` or `@lssm-tech/lib.billing-runtime`.\n\n## Scope\n\n- French SME, ETI, and enterprise fiscal-profile readiness inputs.\n- B2B domestic e-invoicing, B2C e-reporting, international e-reporting, public-sector readiness, and out-of-scope flow classification.\n- 2026/2027 readiness schedule metadata.\n- Factur-X, UBL, and CII format-readiness metadata only; this package does not generate invoice documents.\n- PA/PDP/provider routing profiles as deterministic mocks/adapters only.\n- Financial data-vault evidence contracts for redaction, retention, extraction confidence, evidence chains, and duplicate candidates.\n- Replayable fixtures for package tests and examples.\n\n## Legal engine\n\nThe France pack hosts the deterministic legal engine that core/runtime must not contain:\n\n- TVA rate table — 20 / 10 / 5.5 / 2.1 plus exemption, autoliquidation, and intra-EU, each carrying `validFrom`/`validTo` and failing closed on an unknown rate.\n- Per-rate-group half-up rounding of tax totals.\n- Mandatory-mentions validator for required French invoice legal mentions.\n- Gapless numbering scoped to a `Europe/Paris` fiscal period.\n- NF203 inalterability hash-chain computed over the canonical invoice bytes.\n- Credit-note/avoir derivation with an immutability guard that blocks mutation of issued documents.\n- `SirenSiretVatValidationPort` for INSEE/VIES identifier validation (adapter supplied by the host; live INSEE/VIES is a documented follow-up).\n\n## Public entrypoints\n\n- `@lssm-tech/lib.billing-france` — root barrel.\n- `@lssm-tech/lib.billing-france/readiness` — France flow, schedule, fiscal identifier, format, and readiness-evidence helpers.\n- `@lssm-tech/lib.billing-france/provider` — provider-neutral mock routing profile and readiness contracts.\n- `@lssm-tech/lib.billing-france/data-vault` — redacted evidence, retention, extraction, and duplicate-detection contracts.\n- `@lssm-tech/lib.billing-france/fixtures` — deterministic fixtures.\n- `@lssm-tech/lib.billing-france/types` — grouped type-only surface.\n- `@lssm-tech/lib.billing-france/docs` — package boundary doc metadata.\n\n## Non-goals\n\nReadiness and routing metadata are **not** PA accreditation, production PA submission, legal advice, or tax advice. This package contains no provider credentials, network calls, provider SDKs, raw document payload storage, production submission path, or autonomous production billing execution.\n","sourcePath":"packages/domains/billing/billing-france/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/billing-france/README.md","blobSha":"809ae3ef3519f1d9ee4dcf93ef499874b3489970","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"billing-and-finance","areaTitle":"Billing, finance and economic evidence","displayName":"lib.billing-france","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.billing-france/","contextUrl":"/docs/packages/lib.billing-france.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}