Aller au contenu principal

Créer une facture ZUGFeRD dans Power Automate à partir d'un PDF et d'un fichier XML Dropbox : un workflow en 5 étapes

· 22 minutes de lecture
SEO and Content Writer

L'Allemagne Loi sur les possibilités de croissance ont transformé les factures électroniques hybrides de type ZUGFeRD, d'un simple « plus-value » en une exigence B2B. 1er janvier 2025 Chaque entreprise allemande doit pouvoir recevoir des factures électroniques structurées, les obligations d'envoi complètes étant mises en place progressivement par 2028La méthode la plus rapide pour toute équipe Microsoft 365 consiste en un flux Power Automate en cinq actions : Déclenchement manuel → Récupérer le contenu du fichier (PDF) via Dropbox → Récupérer le contenu du fichier (XML) via Dropbox → Créer une facture ZUGFeRD avec PDF4me → Créer un fichier via DropboxLa charge utile XML est intégrée dans un PDF/A-3 Un système d'archivage génère un fichier unique que les utilisateurs ouvrent et que les systèmes comptables analysent. Ce tutoriel utilise les captures d'écran exactes de l'interface : /pdf4metest/sample/10 page.pdf pour le support visuel et /pdf4metest/zugfred invoice/version2.xml pour les données structurées, le résultat hybride se retrouvant dans /pdf4meoutput sous un nom unique préfixé par un GUID. Prêt pour la production en moins de 10 minutes.

Aperçu du flux
1. Manually trigger a flow
Manual trigger for testing. Swap for SharePoint When a file is created, Dropbox When a file is created, or any storage trigger in production.
2. Dropbox Get file content (PDF)
Reads the visual carrier from /pdf4metest/sample/10 page.pdf with Infer Content Type Yes. This is the PDF the recipient sees.
3. Dropbox Get file content (XML)
Reads the structured ZUGFeRD XML from /pdf4metest/zugfred invoice/version2.xml with Infer Content Type Yes. This is what accounting systems parse.
4. PDF4me Create ZUGFeRD Invoice
Combines both inputs as 2.0-XML format, XmlWithPdf output mode, BASIC conformance, Render Invoice on PDF Yes, Language de. Embeds the XML inside a PDF/A-3.
5. Dropbox Create file
Writes the hybrid file to /pdf4meoutput with guid()+headers/FileName so reruns never collide.
La version courte

Deux étapes de récupération de fichier Dropbox, une action PDF4me, une étape de création de fichier Dropbox. Le PDF est le support lisible par l'humain ; le XML est le format de données lisible par la machine. PDF4me les combine en un seul fichier hybride PDF/A3 conforme à la réglementation allemande sur la facturation électronique B2B de 2025. Sans code, sans outil de bureau, sans kit de développement logiciel Java.

Questions et réponses basées sur le pourquoi

Pourquoi ZUGFeRD, tout simplement ? En raison des règles de facturation électronique à l'échelle de l'UE et de celles de l'Allemagne Loi sur les possibilités de croissance L'obligation de factures structurées pour le B2B a été instaurée. ZUGFeRD est le format hybride qui répond aux besoins des deux parties : les utilisateurs reçoivent un PDF classique, tandis que les systèmes de comptabilité fournisseurs et ERP reçoivent le fichier XML structuré intégré. Un seul document, deux lecteurs.

Pourquoi deux étapes pour obtenir le contenu du fichier ? L'un récupère le PDF visuel qui constitue l'enveloppe du document (la page que le destinataire ouvre) ; l'autre récupère le XML ZUGFeRD structuré qui devient la pièce jointe intégrée à l'enveloppe. Les deux sorties alimentent le module « Créer une facture ZUGFeRD : PDF ». Contenu du fichier PDF, XML comme Données XML de la facture.

Pourquoi « 2.0-XML » dans la liste déroulante combinée ? ZUGFeRD 2.0+ est requis pour la réglementation allemande de 2025 (l'ancienne version 1.0 n'est pas conforme). Le suffixe « -XML » indique au connecteur que les données de votre facture sont déjà au format XML ZUGFeRD. Sélectionnez 2.0-JSON ou 2.0-CSV pour les sources de données structurées ; le connecteur les convertit au schéma avant l’intégration.

Pourquoi XML avec PDF et non XmlOnly? XML avec PDF renvoie le format hybride ZUGFeRD canonique : un fichier PDF/A-3 avec le XML intégré. XmlOnly Renvoie uniquement le XML. La plupart des scénarios de facturation sortante envoient le fichier hybride car les clients s'attendent à ouvrir un PDF ; XmlOnly est destiné aux flux directs entre systèmes ERP.


Ce que vous obtiendrez

Saisir: Une facture PDF de 10 pages (le support visuel) et un fichier XML ZUGFeRD (les données structurées). Sortir: Un seul fichier PDF/A3 contenant le XML intégré, conforme à la norme EN 16931 et à la norme BASIC, prêt à être envoyé par e-mail aux clients, archivé sur SharePoint ou publié dans votre ERP. L'étape de création de fichier Dropbox l'enregistre dans /pdf4meoutput sous un unique guid() + headers/FileName Nommer de manière à ce que les exécutions simultanées n'entrent jamais en conflit.


Ce dont vous avez besoin

  • Power Automate. Ouvrir Power Automate. Créez un nouveau flux cloud (instantané ou automatisé).
  • Clé API PDF4me. Obtenez votre clé APIConnectez-le lorsque vous ajoutez « Créer une facture ZUGFeRD ». Première fois ? Consultez Connectez PDF4me à Power Automate.
  • Dropbox (ou SharePoint, OneDrive). Il héberge le PDF source, le fichier XML ZUGFeRD et le dossier de sortie. Ce tutoriel utilise Dropbox.
  • Un fichier XML ZUGFeRDConforme à la norme EN 16931. Le dépôt inclut un modèle de démarrage à l'adresse suivante : Exemple de facture ZUGFeRD-2.0.xml; renommer en version2.xml si vous souhaitez reproduire exactement les captures d'écran.

Aperçu du flux

  1. Déclencher manuellement un flux (ou Lorsqu'un fichier est créé (dans Dropbox pour l'automatisation).
  2. Dropbox Obtenir le contenu du fichier pour le transporteur PDF (/pdf4metest/sample/10 page.pdf).
  3. Dropbox Obtenir le contenu du fichier pour le XML ZUGFeRD (/pdf4metest/zugfred invoice/version2.xml).
  4. PDF4me Créer une facture ZUGFeRD avec 2.0-XML, XmlWithPdf, BASIC, rendu sur, langue de.
  5. Dropbox Créer un fichier à /pdf4meoutput avec guid() + headers/FileName pour un nom de sortie sans collision.

Aperçu complet du flux

Canevas Power Automate affichant le flux ZUGFeRD en cinq actions : Déclencher manuellement un flux, Obtenir le contenu du fichier (PDF), Obtenir le contenu du fichier 1 (XML), Créer une facture ZUGFeRD, Créer un fichier – le tout relié verticalement par les icônes Dropbox et PDF4me.

Cinq étapes superposées. Chaque action Dropbox affiche l'icône bleue de contenu de fichier ; l'action PDF4me « Créer une facture ZUGFeRD » se trouve au centre. Les deux sorties « Obtenir un fichier » alimentent la même action PDF4me ; le contenu du fichier de PDF4me alimente l'action « Créer un fichier ».


Étape 1 : Déclencher le flux

  1. Dans Power Automate, cliquez + Créer, prendre Flux nuageux instantané.
  2. Nommez-le Create ZUGFeRD Invoice from Dropbox, choisir Déclencher manuellement un flux, cliquez Créer.
  3. Une fois les pièces mobiles câblées, vous pouvez remplacer la gâchette par Lorsqu'un fichier est créé dans Dropbox (/pdf4metest/zugfred invoice/Ainsi, chaque nouveau fichier XML déclenche automatiquement l'exécution. Les actions suivantes sont identiques, sans reconstruction.

Étape 2 : Récupérez le PDF du transporteur depuis Dropbox

Flux jusqu'à présent : Déclencheur → Obtenir le contenu du fichier (PDF).

  1. Cliquez + Nouvelle étape. Rechercher Dropbox, prendre Récupérer le contenu du fichier à l'aide du chemin d'accèsConnectez-vous à votre compte Dropbox si vous y êtes invité.
  2. Déposer. /pdf4metest/sample/10 page.pdfVoici la facture visuelle que votre client ouvre.
  3. Paramètres avancésDéduire le type de contenu. Oui (Power Automate utilise l'extension de fichier et les octets pour étiqueter le type de contenu afin que PDF4me sache qu'il s'agit de données PDF).
  4. Enregistrer. Sortie Contenu du fichier devient le PDF source pour l'intégration ZUGFeRD à l'étape 4.

Récupérer le contenu du fichier (PDF) : Configuration

Action « Obtenir le contenu du fichier » avec le fichier défini sur /pdf4metest/sample/10 page.pdf et l’option « Déduire le type de contenu » activée dans les paramètres avancés, connecté à Dropbox.

Le PDF du transporteur à /pdf4metest/sample/10 page.pdf. Inférer le type de contenu Oui renvoie des octets PDF propres que PDF4me peut encapsuler dans du PDF/A-3.


Étape 3 : Récupérez le fichier XML ZUGFeRD depuis Dropbox

Flux jusqu'à présent : Obtenir le contenu du fichier (PDF) → Obtenir le contenu du fichier (XML).

  1. Cliquez + Nouvelle étapeAjoutez un autre Dropbox → Récupérer le contenu du fichier à partir du chemin d'accèsRenommez-le en Récupérer le contenu du fichier 1 (Power Automate le fait automatiquement) afin que les deux actions Dropbox soient distinctes.
  2. Déposer. /pdf4metest/zugfred invoice/version2.xml. Il s'agit de la charge utile XML ZUGFeRD alignée sur la norme EN 16931.
  3. Paramètres avancésDéduire le type de contenu. Oui.
  4. Enregistrer. Sortie Contenu du fichier devient les données de facture structurées que PDF4me intégrera dans le document hybride PDF/A-3.

Récupérer le contenu du fichier (XML) : Configuration

Récupérer le contenu du fichier 1 (action) avec le fichier défini sur /pdf4metest/zugfred invoice/version2.xml et l'option « Déduire le type de contenu » activée dans les paramètres avancés. Connexion à Dropbox.

La charge utile XML ZUGFeRD à /pdf4metest/facture zugfred/version2.xmlCe fichier est conforme à la norme ZUGFeRD 2.0 EN 16931 ; sélectionnez-le. 2.0-XML lors de la prochaine action à aligner.

Pour un conseil. Besoin de valider le XML avant l'intégration ? Déposez une requête Composer action entre l'étape 3 et l'étape 4 et inspection Contenu du fichier dans l'historique d'exécution. Le fichier XML ZUGFeRD commence toujours par <?xml version="1.0" et contient un Facture intersectorielle Racine pour les charges utiles 2.x.


Étape 4 : Créer la facture ZUGFeRD

Flux jusqu'à présent : Déclencheur → PDF → XML → Créer une facture ZUGFeRD.

  1. Cliquez + Nouvelle étape, recherche PDF4me, prendre Créer une facture ZUGFeRDConnectez-vous avec votre clé API PDF4me si vous ne vous êtes jamais connecté auparavant.
  2. Version et format d'entrée de ZUGFeRD. 2.0-XMLLe menu déroulant combiné permet de sélectionner simultanément la version de la spécification (2.0) et le format des données (XML). Le préfixe « 2.0 » est conforme à la réglementation allemande B2B de 2025.
  3. Mode de sortie. XmlWithPdfRenvoie le fichier hybride PDF/A-3 canonique avec le fichier XML intégré.
  4. Données XML de la facture. Contenu du fichier depuis Récupérer le contenu du fichier 1 (Étape XML). Ne mappez que celle-ci. Ne renseignez pas les champs JSON ou CSV.
  5. Niveau de conformité. BASICProfil d'entrée de gamme avec détails et ventilation des taxes, compatible avec la plupart des récepteurs. Passez aux profils COMFORT ou EXTENDED uniquement après confirmation de la compatibilité avec le récepteur.
  6. Générer la facture au format PDF. YesPDF4me redessine le contenu de la facture sur le PDF du transporteur en utilisant vos données afin que la page visible et le XML intégré restent synchronisés.
  7. Contenu du fichier. Contenu du fichier depuis Récupérer le contenu du fichier (L'étape PDF). Il s'agit de l'enveloppe du support.
  8. Nom de fichier. abc.pdf (ou le nom de votre fichier source réel). Utilisé pour le contexte de traçage.
  9. Paramètres avancésLangue. de (Étiquettes allemandes). Autres codes acceptés : en, fr, it, es, nl, pl, pt, cs.
  10. Sauvegarder.

Créer une facture ZUGFeRD : Configuration

Champs de base obligatoires
  • Version et format d'entrée de ZUGFeRD: 2.0-XML
  • Mode de sortie: XML avec PDF
  • Données XML de la facture: Contenu du fichier à partir de l'étape XML
  • Niveau de conformité: BASIQUE
  • Générer la facture au format PDF: Oui
  • Contenu du fichier: Contenu du fichier à partir de l'étape PDF
  • Nom de fichier: abc.pdf
Paramètres avancés
  • Langue: de (Allemand, par défaut)
  • Accepté : de, en, fr, il, es, nl, pl, pt, cs
  • Le code XML reste indépendant de la langue ; seules les étiquettes dessinées sur le PDF utilisent cette langue.

Trois combinaisons que vous utiliserez réellement. 2.0-XML lorsque votre système en amont émet déjà du XML ZUGFeRD. 2.0-JSON lorsque votre plateforme de facturation utilise le format JSON et que vous souhaitez que PDF4me la convertisse au format ZUGFeRD. 2.0-CSV Pour les exportations par lots à partir de tableurs et d'outils comptables, les trois méthodes produisent un résultat hybride identique ; seule la structure des données diffère.


Étape 5 : Enregistrer le PDF hybride dans Dropbox

Flux jusqu'à présent : PDF → XML → Créer une facture ZUGFeRD → Créer un fichier.

  1. Cliquez + Nouvelle étape. Recherche Dropbox, prendre Créer un fichier.
  2. Chemin du dossier. /pdf4meoutput.
  3. Nom de fichier. guid() + headers/FileName (Extrait de « Créer une facture ZUGFeRD »). Deux façons de la remplir :
    • Expression: concat(guid(), '_', outputs('Create_ZUGFeRD_Invoice')?['headers']?['FileName'])Ou plus simplement :
    • Contenu dynamique: taper guid() tout d'abord (onglet Expression), puis ajoutez headers/FileName à partir du résultat de l'action PDF4me.
  4. Contenu du fichier. Contenu du fichier depuis Créer une facture ZUGFeRD.
  5. Sauvegarder le flux.

Créer un fichier (Dropbox) : Configuration

Création d'un fichier Dropbox avec le chemin de dossier /pdf4meoutput, le nom du fichier défini sur l'expression guid() suivie du contenu dynamique headers/FileName de l'action PDF4me, et le contenu du fichier mappé à partir de la sortie PDF4me, connecté à Dropbox

Sortie écrite dans /pdf4meoutput avec un nom préfixé par un GUID. Le GUID évite les collisions lors des exécutions parallèles ; en-têtes/Nom de fichier Cette partie conserve un suffixe lisible par l'homme.


Exécutez le flux et vérifiez

  1. Cliquez Test en haut à droite, sélectionnez Manuellement, cliquez Test, alors Flux d'exécution.
  2. Après quelques secondes, chaque action affiche une coche verte.
  3. Ouvrir Dropbox /pdf4meoutputLe nouveau fichier correspond <guid>_<filename>.pdf.
  4. Téléchargez le fichier. Ouvrez-le avec un lecteur PDF pour consulter la facture. Ouvrez-le avec un logiciel de comptabilité fournisseurs compatible ZUGFeRD (ou décompressez-le avec un logiciel compatible ZIP) pour afficher les informations intégrées. factur-x.xml / zugferd.xml pièce jointe.

Qu'avez-vous réellement produit ? UN PDF/A-3 PDF d'archive avec un ZUGFeRD 2.0 intégré EN 16931 Fichier XML. Le nombre de pages du PDF et le contenu visuel correspondent à la facture originale de 10 pages (car Générer la facture au format PDF Oui. Le fichier XML qu'il contient satisfait aux exigences de données structurées de la réglementation allemande B2B. Un fichier, deux lecteurs.


ZUGFeRD contre Factur-X contre XRechnung en 30 secondes

FormatOù il est utiliséType de sortie
ZUGFeRDGermany B2B, EU buyersHybrid PDF/A-3 + embedded XML (this blog)
Factur-XFrance, sister format technically identical to ZUGFeRD 2.xHybrid PDF/A-3 + embedded XML
XRechnungGerman public sector (federal, state, municipal)Strict pure-XML profile

Le flux que vous venez de créer génère du ZUGFeRD ; passez à un flux de travail Factur-X sans aucune modification (le même fichier hybride fonctionne des deux côtés du Rhin). Pour la facturation du secteur public allemand, remplacez le niveau de conformité par un profil aligné sur XRechnung lorsque le destinataire exige du XML pur.


Variantes courantes que vous pouvez ajouter sans reconstruction

Source JSON ou CSV au lieu de XML
Inverser l'étape 3 pour obtenir un .json ou .csv fichier. Modifiez la liste déroulante combinée en 2.0-JSON ou 2.0-CSVCartographier la correspondance Données JSON de la facture ou Données CSV de la facture champ. PDF4me convertit au schéma ZUGFeRD avant l'intégration.
SharePoint au lieu de Dropbox
Remplacez les connecteurs Dropbox par SharePoint : Récupérer le contenu d'un fichier à l'aide du chemin d'accès et SharePoint Créer un fichierLe mappage des champs reste identique ; seule l’autorité du connecteur change. Fonctionne de la même manière avec OneDrive Entreprise ou Azure Blob Storage.
Outlook Envoyer au lieu de (ou après) Créer un fichier
Ajouter Outlook Envoyer un e-mail (V2) avec l'adresse du client. Carte Contenu du fichier comme le contenu de la pièce jointe et concat('Facture-', utcNow(), '.pdf') comme nom de la pièce jointe. Le client reçoit directement la facture hybride.
Valider le PDF/A avant l'archivage
Chaîne PDF4me Valider PDF/A Après l'étape 4 : si la validation réussit, enregistrez les données dans les archives à long terme ; en cas d'échec, générez une alerte Teams. Une double sécurité pour les flux de travail sensibles à la conformité.

Dépannage des erreurs réelles

Sélection de la version 1.0-XML, résultat non conforme aux exigences

ZUGFeRD 1.0 ne répond pas aux exigences de la réglementation allemande B2B de 2025. Si votre production doit être conforme à cette réglementation, choisissez toujours une autre solution. 2.0-* combinaison dans le menu déroulant combiné.

Les données XML et JSON de la facture sont renseignées.

Ne sélectionnez que le champ correspondant à votre choix dans la liste déroulante. Power Automate ne vous empêchera pas de renseigner les deux, mais une erreur de validation sera générée lors de l'exécution. Laissez les autres champs de format vides.

Afficher la facture en PDF désactivé + aucun visuel pré-rendu

Avec Générer la facture au format PDF Lorsque PDF4me est désactivé, il intègre le XML mais ne redessine pas le contenu de la facture. Le PDF du transporteur que vous avez envoyé Contenu du fichier Ne change pas de valeur. Ne désactivez cette option que si le PDF de votre transporteur affiche déjà le contenu de la facture.

PROLONGÉ rejeté par le destinataire

La norme EXTENDED ajoute des champs spécifiques à l'industrie au-delà de la norme EN 16931 et est rejetée par les récepteurs réglés sur la ligne de base. Commencez par BASIQUE pour les tests de compatibilité ; ne passez à la version supérieure que lorsque l’acheteur ou l’ERP confirme la prise en charge.


Prochaines étapes

Le même processus en cinq étapes s'applique à toute automatisation de document dans Power Automate : déclencher, récupérer les données d'entrée, exécuter l'action PDF4me, puis enregistrer le résultat. Une fois le premier traitement réalisé, les suivants ne coûtent quasiment rien.