Facturation électronique en Allemagne (XRechnung)
Statut au 27/07/2026 : génération UBL disponible (Story 13.2) et lecture ZUGFeRD/XRechnung hybride déjà fonctionnelle (mesurée, pas modifiée). Aucun rule pack schematron XRechnung natif à ce jour — voir les limites ci-dessous.
Ce que dit la réglementation
L'Allemagne impose progressivement (mandat 2027-2028) la facturation électronique structurée, avec XRechnung comme spécialisation de l'EN 16931 — disponible en sérialisation CII ou UBL, et souvent distribuée sous forme hybride PDF+XML héritée de ZUGFeRD (le pendant allemand de Factur-X : les deux standards partagent la même implémentation technique CII depuis ZUGFeRD 2.x).
Ce que Heartwood couvre aujourd'hui
- Génération UBL 2.1 dans la variante
xrechnung(POST /v1/generate/ubl?variant=xrechnung) — même modèle pivot EN 16931 que les autres variantes UBL (fr-socle, peppol-bis). Lecbc:CustomizationIDémis est l'identifiant réel publié par KoSIT :urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0. - Extraction d'un PDF hybride ZUGFeRD/XRechnung (
POST /v1/extract) : déjà fonctionnelle sans aucune modification de code. Mesuré le 27/07/2026 en téléchargeant un PDF de test officiel (validXRechnung.pdf, projet mustangproject/ZUGFeRD, Apache License 2.0) et en le faisant passer tel quel danspdf.ExtractCIIpuiscodec.DecodeCII: les deux ont réussi du premier coup. Raison : depuis l'harmonisation ZUGFeRD 2.x/Factur-X 1.0, les deux standards embarquent leur CII sous le même nom de pièce jointe (factur-x.xml), et le décodage CII de Heartwood est générique — il ne filtre jamais sur le contenu deGuidelineSpecifiedDocumentContextParameter/ID(qui distingue Factur-X de ZUGFeRD/XRechnung). Un test de non-régression verrouille cette capacité (TestExtractHandlerFromZUGFeRDXRechnungHybridPDF). - Conversion CII↔UBL (
POST /v1/convert) et extraction UBL autonome — mêmes chemins que pour Factur-X/Peppol BIS.
Limites connues
- Aucun rule pack schematron XRechnung natif :
POST /v1/validatepeut vérifier un documentxrechnungcontre le schéma XSD OASIS UBL 2.1 et le schematron EN 16931 générique (ubl-en16931-1.4.0), mais pas contre les règles additionnelles propres à XRechnung (structuration des identifiants de destinataire du secteur public allemand "Leitweg-ID", restrictions de listes de codes spécifiques KoSIT). Ce n'est donc pas une certification XRechnung — même écart que celui documenté pour Peppol BIS avant Story 13.1. - ZUGFeRD n'est vérifié qu'à l'extraction, pas à la génération :
Heartwood ne produit pas de PDF hybride portant un profil ZUGFeRD/
XRechnung propre (
POST /v1/generate/facturxreste un profil Factur-X français) — seule la variante UBLxrechnungest générée. Un besoin de PDF hybride allemand natif resterait à modéliser séparément (core.Profilene porte aujourd'hui que EN16931/EXTENDED-CTC-FR/ PEPPOL-BIS). [ASSUMPTION]: les variantesfr-socle,peppol-bisetxrechnungpartagent aujourd'hui exactement le même socle de champs modélisés (core.Invoice) — aucune règle spécifique à XRechnung n'est encore distinguée côté génération.- Le mesurage ZUGFeRD ci-dessus porte sur un seul fichier de test, pas
sur un corpus KoSIT complet — cf.
rulepacks/README.md(« Ce qui n'est PAS encore couvert ») pour le même constat appliqué aux rule packs français.