# Émission de factures électroniques — PME et micro-entreprises (01/09/2027)

> Statut au 21/07/2026 : périmètre livré = génération, validation (Epic
> 1), documentation (Epic 2), validateur public (Epic 3), comptes/
> facturation self-service (Epic 4), extraction Factur-X/CII (Epic 5), et
> génération/conversion/extraction UBL (Epic 6).

## Ce que dit la réforme

Après les grandes entreprises et ETI (01/09/2026), les **PME et
micro-entreprises** devront émettre leurs factures au format électronique
structuré à partir du **1er septembre 2027**. C'est la fenêtre de marché
principale visée par Heartwood (voir le PRD du projet).

## Ce que Heartwood couvre aujourd'hui

- **Génération Factur-X** conforme aux deux profils retenus par le socle
  minimum français (norme AFNOR XP Z12-012) : **EN 16931** et
  **EXTENDED-CTC-FR** — les deux seuls profils du socle minimum français
  (norme AFNOR XP Z12-012). Le profil `BASIC` générique est **absent de ce
  socle** : il ne porte pas les extensions françaises (`EXT-FR-FE-*`) et
  sera rejeté au contrôle. Nuance de rigueur : aucun texte officiel
  n'écrit explicitement « BASIC est refusé » — c'est une exclusion par
  omission (le mot n'apparaît nulle part dans les spécifications externes
  DGFiP v3.2), pas une interdiction rédigée.
- **Validation structurelle** (XSD) du CII embarqué, avec rapport détaillé.
- **Rule packs versionnés et listables** (`GET /v1/rulepacks`) — le
  référentiel de règles appliqué est toujours identifié dans chaque
  réponse.

## Ce que Heartwood couvre également depuis Epic 4

- **Inscription self-service** (`POST /signup` + vérification e-mail) et
  **espace client** (`/account/`) pour gérer ses clés API et suivre sa
  consommation — voir le [guide de démarrage](../getting-started.md) et la
  page [comptes et facturation](../comptes-facturation.md).
- **Paliers payants** (Starter/Pro/Éditeur) via Stripe Checkout, gestion de
  carte/factures/résiliation via le Stripe Customer Portal — voir
  [comptes et facturation](../comptes-facturation.md).

## Ce que Heartwood couvre également depuis Epic 5/6

- **Extraction** de Factur-X, CII ou UBL vers JSON normalisé
  (`POST /v1/extract`) — voir [exemples d'extraction](../examples/extract.md).
- **Génération UBL 2.1** (`fr-socle`, `peppol-bis`) et **conversions**
  CII↔UBL, emballage CII→Factur-X, extraction CII brut d'un Factur-X
  (`POST /v1/generate/ubl`, `POST /v1/convert`) — voir
  [Peppol Belgique](./peppol-belgique.md), [exemples de génération UBL](../examples/generate-ubl.md)
  et [exemples de conversion](../examples/convert.md).

## Ce que Heartwood ne couvre PAS encore

- **XRechnung (Allemagne)** : non exposée (spike licences/corpus J4 non
  réalisé) — voir [XRechnung Allemagne](./xrechnung-allemagne.md).
- **Validation schematron (règles BR-*)** : réelle depuis Story 3.7/3.8
  pour **Factur-X/CII et UBL** (profils EN16931 et EXTENDED-CTC-FR,
  référentiel officiel FNFE-MPE, `schematronChecked: true`, détection
  automatique du format soumis à `POST /v1/validate`) — voir
  [rapport de validation](../examples/validate.md). Aucun corpus de
  non-régression automatisé en CI pour aucun des deux formats
  (vérification ponctuelle sur quelques exemples officiels seulement, voir
  `rulepacks/README.md`).
- **Alertes de quota à 80%/100%** et **réconciliation comptable Stripe** :
  le comptage et la facturation fonctionnent, mais ces deux mécanismes
  d'exploitation ne sont pas encore câblés (voir Story 4.4, Dev Notes).

## Fidélité au profil EXTENDED-CTC-FR

Le profil EXTENDED-CTC-FR porte des exigences propres au contexte
français (mentions fiscales spécifiques, tolérances d'arrondi,
multi-livraison au niveau ligne). Le modèle actuel couvre le socle commun
avec EN 16931 ; les particularités propres à EXTENDED-CTC-FR ne sont pas
encore toutes modélisées — ne pas présumer une conformité totale à ce
profil avant une story dédiée à sa fidélité complète.
