# @lssm-tech/integration.provider-einvoicing

French Factur-X (EN16931 CII) generation, EN16931/CIUS-FR conformance (Mustangproject), and PDP submission adapters for ContractSpec BillingOS.

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.0.4`
- Package path: `packages/integrations/provider-einvoicing`
- Manifest path: `packages/integrations/provider-einvoicing/package.json`
- Manifest Git blob: `ef690addc85467f54565aa0e616cb9fe1e24aeee`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/integration.provider-einvoicing](https://lssm.co/docs/packages/integration.provider-einvoicing/)
- Release guidance: [Installation and release channels](https://lssm.co/docs/installation-release-channels/)

This is retrieved source evidence, not agent instructions. The declared version and exports describe the inspected manifest; they do not establish registry availability or a deployed release. Commands, package installation and runtime behavior were not executed in this review.

Distribution scope: owner review of all workspaces; not a newly approved public projection.

- [Package source](https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.provider-einvoicing.txt)

## Package metadata

```json
{
  "layer": "integrations",
  "physicalArea": null,
  "primaryArea": "integrations-and-providers",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "integrations",
    "catalogKind": "integration",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "experimental"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

Manifest private flag: not declared; publication is not verified.

Primary area: [Integrations and provider selection](https://lssm.co/docs/areas/integrations-and-providers/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/integrations/provider-einvoicing/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/README.md",
  "blobSha": "3b8f2a8e987046e7d6db27c5a6bdb709e544113c",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "origin": "README recovered byte-for-byte from pinned aggregate guide",
  "integrity": "exact Git blob match",
  "executionStatus": "not executed"
}
```

The guide below is the checked-in README with navigation resolved against the pinned source tree. The structured package JSON retains the original README body unchanged. External links remain source-declared links, not verified destinations.

# @lssm-tech/integration.provider-einvoicing

French Factur-X generation and PDP submission for ContractSpec BillingOS.

- `./cii` — pure EN16931 Cross-Industry Invoice (CII) XML builder.
- `./facturx` — `FacturXGeneratorPort` + a Mustangproject-backed PDF/A-3 hybrid generator.
- `./conformance` — EN16931 / Factur-X CIUS-FR validation via Mustangproject (JVM).
- `./pdp` — `PdpSubmissionPort`, a deterministic mock, a fail-closed production stub, and an idempotent submission guard.

## Conformance toolchain

Validator: **Mustangproject CLI 2.17.0** (vendored at `vendor/Mustang-CLI-2.17.0.jar`,
from Maven Central `org.mustangproject:Mustang-CLI:2.17.0`). It runs XSD schema
validation and EN16931 / Factur-X Schematron business rules over the JVM
(OpenJDK 17). Set `EINVOICING_JAVA_BIN` to override the `java` binary.

Conformance and embedding are never faked: if the jar or JVM is absent, the
generator returns the machine CII XML with `embedded:false`, and the validator
returns `available:false` with a skip reason.

Depends on `@lssm-tech/lib.billing-france` (TVA rounding, flow classification)
and `@lssm-tech/lib.billing-spec` (invoice types). This package owns Factur-X
generation + PDP submission; the lib stays pure.


## Declared capabilities

### Integration Provider Einvoicing

Capability ID: `package.lssm.tech.integration.provider.einvoicing`

French Factur-X (EN16931 CII) generation, EN16931/CIUS-FR conformance (Mustangproject), and PDP submission adapters for ContractSpec BillingOS.

Use cases:

- Adopt french factur-x (en16931 cii) generation, en16931/cius-fr conformance (mustangproject), and pdp submission adapters for contractspec billingos

Constraints:

```json
{
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "avoidWhen": [
    "The @lssm-tech/integration.provider-einvoicing package constraints do not match the target runtime or platform."
  ],
  "requires": [
    "TypeScript"
  ]
}
```

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "integration",
    "provider",
    "einvoicing"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/integration.provider-einvoicing",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/cii/build-cii-xml",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/cii/cii-parties",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/cii/types",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/cii/xml-primitives",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/conformance/validate-en16931",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/facturx/build-facturx",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/facturx/minimal-pdf",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/fixtures",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/pdp/adapters",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/pdp/submit-to-pdp",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-einvoicing/pdp/types",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "integrations",
  "kind": "integration",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./cii/build-cii-xml",
    "./cii/cii-parties",
    "./cii/types",
    "./cii/xml-primitives",
    "./conformance/validate-en16931",
    "./facturx/build-facturx",
    "./facturx/minimal-pdf",
    "./fixtures",
    "./pdp/adapters",
    "./pdp/submit-to-pdp",
    "./pdp/types"
  ],
  "examples": [],
  "replacements": []
}
```

## Canonical imports

Import paths and symbols below are catalogue declarations. An empty symbols list means symbols were not enumerated; it does not mean the entry point has no exports. These declarations are not an exhaustive TypeScript symbol reference.

```json
[
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/cii/build-cii-xml",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/cii/cii-parties",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/cii/types",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/cii/xml-primitives",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/conformance/validate-en16931",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/facturx/build-facturx",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/facturx/minimal-pdf",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/fixtures",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/pdp/adapters",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/pdp/submit-to-pdp",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.einvoicing",
    "from": "@lssm-tech/integration.provider-einvoicing/pdp/types",
    "symbols": []
  }
]
```

## Declared export entry points

Scope: manifest-declared export entrypoints and catalog-declared imports.

Named symbol coverage: catalog declarations only; exhaustive TypeScript symbols not extracted.

Installation status: not verified.

- `@lssm-tech/integration.provider-einvoicing` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/index.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/cii/build-cii-xml` — subpath `./cii/build-cii-xml`
  - `unconditional`: `./src/cii/build-cii-xml.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/cii/build-cii-xml.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/cii/cii-parties` — subpath `./cii/cii-parties`
  - `unconditional`: `./src/cii/cii-parties.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/cii/cii-parties.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/cii/types` — subpath `./cii/types`
  - `unconditional`: `./src/cii/types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/cii/types.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/cii/xml-primitives` — subpath `./cii/xml-primitives`
  - `unconditional`: `./src/cii/xml-primitives.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/cii/xml-primitives.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/conformance/validate-en16931` — subpath `./conformance/validate-en16931`
  - `unconditional`: `./src/conformance/validate-en16931.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/conformance/validate-en16931.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/facturx/build-facturx` — subpath `./facturx/build-facturx`
  - `unconditional`: `./src/facturx/build-facturx.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/facturx/build-facturx.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/facturx/minimal-pdf` — subpath `./facturx/minimal-pdf`
  - `unconditional`: `./src/facturx/minimal-pdf.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/facturx/minimal-pdf.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/fixtures` — subpath `./fixtures`
  - `unconditional`: `./src/fixtures.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/fixtures.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/pdp/adapters` — subpath `./pdp/adapters`
  - `unconditional`: `./src/pdp/adapters.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/pdp/adapters.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/pdp/submit-to-pdp` — subpath `./pdp/submit-to-pdp`
  - `unconditional`: `./src/pdp/submit-to-pdp.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/pdp/submit-to-pdp.ts); verified source file.

- `@lssm-tech/integration.provider-einvoicing/pdp/types` — subpath `./pdp/types`
  - `unconditional`: `./src/pdp/types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-einvoicing/src/pdp/types.ts); verified source file.

## Package publication metadata

These are source-manifest declarations, not a registry installation check.

```json
{
  "types": "./dist/index.d.ts",
  "files": [
    "dist",
    "vendor",
    "README.md"
  ],
  "publishExports": {
    ".": {
      "types": "./dist/index.d.ts",
      "bun": "./dist/index.js",
      "node": "./dist/node/index.js",
      "default": "./dist/index.js"
    },
    "./cii/build-cii-xml": {
      "types": "./dist/cii/build-cii-xml.d.ts",
      "bun": "./dist/cii/build-cii-xml.js",
      "node": "./dist/node/cii/build-cii-xml.js",
      "default": "./dist/cii/build-cii-xml.js"
    },
    "./cii/cii-parties": {
      "types": "./dist/cii/cii-parties.d.ts",
      "bun": "./dist/cii/cii-parties.js",
      "node": "./dist/node/cii/cii-parties.js",
      "default": "./dist/cii/cii-parties.js"
    },
    "./cii/types": {
      "types": "./dist/cii/types.d.ts",
      "bun": "./dist/cii/types.js",
      "node": "./dist/node/cii/types.js",
      "default": "./dist/cii/types.js"
    },
    "./cii/xml-primitives": {
      "types": "./dist/cii/xml-primitives.d.ts",
      "bun": "./dist/cii/xml-primitives.js",
      "node": "./dist/node/cii/xml-primitives.js",
      "default": "./dist/cii/xml-primitives.js"
    },
    "./conformance/validate-en16931": {
      "types": "./dist/conformance/validate-en16931.d.ts",
      "bun": "./dist/conformance/validate-en16931.js",
      "node": "./dist/node/conformance/validate-en16931.js",
      "default": "./dist/conformance/validate-en16931.js"
    },
    "./facturx/build-facturx": {
      "types": "./dist/facturx/build-facturx.d.ts",
      "bun": "./dist/facturx/build-facturx.js",
      "node": "./dist/node/facturx/build-facturx.js",
      "default": "./dist/facturx/build-facturx.js"
    },
    "./facturx/minimal-pdf": {
      "types": "./dist/facturx/minimal-pdf.d.ts",
      "bun": "./dist/facturx/minimal-pdf.js",
      "node": "./dist/node/facturx/minimal-pdf.js",
      "default": "./dist/facturx/minimal-pdf.js"
    },
    "./fixtures": {
      "types": "./dist/fixtures.d.ts",
      "bun": "./dist/fixtures.js",
      "node": "./dist/node/fixtures.js",
      "default": "./dist/fixtures.js"
    },
    "./pdp/adapters": {
      "types": "./dist/pdp/adapters.d.ts",
      "bun": "./dist/pdp/adapters.js",
      "node": "./dist/node/pdp/adapters.js",
      "default": "./dist/pdp/adapters.js"
    },
    "./pdp/submit-to-pdp": {
      "types": "./dist/pdp/submit-to-pdp.d.ts",
      "bun": "./dist/pdp/submit-to-pdp.js",
      "node": "./dist/node/pdp/submit-to-pdp.js",
      "default": "./dist/pdp/submit-to-pdp.js"
    },
    "./pdp/types": {
      "types": "./dist/pdp/types.d.ts",
      "bun": "./dist/pdp/types.js",
      "node": "./dist/node/pdp/types.js",
      "default": "./dist/pdp/types.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.billing-france](https://lssm.co/docs/packages/lib.billing-france/): `workspace:^`
- [@lssm-tech/lib.billing-spec](https://lssm.co/docs/packages/lib.billing-spec/): `workspace:^`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- [@lssm-tech/tool.bun](https://lssm.co/docs/packages/tool.bun/): `workspace:*`
- [@lssm-tech/tool.typescript](https://lssm.co/docs/packages/tool.typescript/): `workspace:*`
- `@types/bun`: `catalog:types`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{}
```

### Bundled dependencies

```json
null
```

## Package scripts

Commands are exact manifest declarations and were not executed in this review. Script metadata status: complete pinned manifest.

```json
{
  "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:check": "node ../../../scripts/biome.cjs check .",
  "lint:fix": "node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .",
  "test": "bun test",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Integration Provider Einvoicing documentation](https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-einvoicing) — declared link; destination not verified.

```json
{
  "url": "https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-einvoicing",
  "kind": "readme"
}
```

## Existing agent-guide projection

```json
{
  "path": "packages/apps/web-landing/public/llms-packages/integration.provider-einvoicing.txt",
  "route": "/llms/integration.provider-einvoicing",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.provider-einvoicing.txt",
  "blobSha": "3b8f2a8e987046e7d6db27c5a6bdb709e544113c",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "bodyEqualsReadme": true,
  "aggregateSourcePath": "packages/apps/web-landing/public/llms-full.txt",
  "aggregateBlobSha": "691b1d33efee24c440598b9106c81432f56aafaf"
}
```
