Pular para o conteúdo principal

Criar uma fatura ZUGFeRD no Power Automate a partir de um PDF e XML do Dropbox: um fluxo de trabalho de 5 etapas

· 22 min para ler
SEO and Content Writer

da Alemanha Lei de Oportunidades de Crescimento Transformou as faturas eletrônicas híbridas no estilo ZUGFeRD de um "diferencial" em um requisito B2B. 1 de janeiro de 2025 Todas as empresas alemãs devem ser capazes de receber faturas eletrônicas estruturadas, com a obrigatoriedade de envio integral sendo implementada gradualmente até... 2028O caminho mais rápido para qualquer equipe do Microsoft 365 é um fluxo de cinco ações do Power Automate: Acionar manualmente → Dropbox Obter conteúdo do arquivo (PDF) → Dropbox Obter conteúdo do arquivo (XML) → PDF4me Criar fatura ZUGFeRD → Dropbox Criar arquivoA carga útil XML está incorporada dentro de um PDF/A-3 Um arquivo compactado, que gera um único arquivo que os humanos abrem e os sistemas de contabilidade analisam. Este passo a passo utiliza as capturas de tela exatas feitas na tela: /pdf4metest/sample/10 page.pdf para o portador visual e /pdf4metest/zugfred invoice/version2.xml para os dados estruturados, com a saída híbrida chegando em /pdf4meoutput Sob um nome exclusivo com prefixo GUID. Pronto para produção em menos de 10 minutos.

O fluxo em resumo
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.
A versão curta

Duas etapas de obtenção de arquivo no Dropbox, uma ação do PDF4me e uma etapa de criação de arquivo no Dropbox. O PDF é o formato legível para humanos; o XML são os dados legíveis por máquina. O PDF4me encapsula ambos em um único arquivo híbrido PDF/A3 que atende à exigência alemã de faturamento eletrônico B2B de 2025. Sem código, sem ferramentas de desktop, sem SDK Java.

Perguntas e respostas baseadas no "porquê".

Por que ZUGFeRD, afinal? Devido às regras de faturamento eletrônico em toda a UE e à Alemanha Lei de Oportunidades de Crescimento Tornou obrigatórias as faturas estruturadas para o mercado B2B. O ZUGFeRD é o formato híbrido que atende a ambas as necessidades: os usuários recebem um PDF normal, enquanto os sistemas de contas a pagar e ERP recebem o XML estruturado incorporado no mesmo arquivo. Um único artefato, dois leitores.

Por que duas etapas para obter o conteúdo do arquivo? Uma delas obtém o PDF visual que se torna o arquivo principal (a página que o destinatário abre); a outra obtém o XML ZUGFeRD estruturado que se torna o anexo incorporado no arquivo principal. Ambas as saídas alimentam a função "Criar Fatura ZUGFeRD: PDF como". Conteúdo do arquivo PDF, XML como Dados XML da fatura.

Por que "2.0-XML" no menu suspenso combinado? O ZUGFeRD 2.0 ou superior é um requisito para a regulamentação alemã de 2025 (a versão legada 1.0 não atende aos requisitos). O sufixo "-XML" indica ao conector que o conteúdo da sua fatura já está em formato XML ZUGFeRD. Selecione 2.0-JSON ou 2.0-CSV Para fontes de dados estruturados, o conector as converte para o esquema antes da incorporação.

Por que XmlWithPdf e não Somente XML? XmlWithPdf Retorna o híbrido ZUGFeRD canônico: um arquivo PDF/A-3 com o XML anexado. Somente XML Retorna apenas o XML. Na maioria dos cenários de faturamento de saída, o arquivo híbrido é enviado porque os clientes esperam abrir um PDF; o formato XMLOnly é para fluxos diretos de ERP para ERP.


O que você receberá

Entrada: Uma fatura em PDF de 10 páginas (o suporte visual) e um arquivo XML ZUGFeRD (os dados estruturados). Saída: Um único arquivo PDF/A-3 com o XML incorporado, alinhado com a norma EN 16931, em conformidade com o BASIC, pronto para ser enviado por e-mail aos clientes, arquivado no SharePoint ou publicado em seu ERP. A etapa "Criar arquivo" do Dropbox o grava de volta no arquivo. /pdf4meoutput sob um único guid() + headers/FileName Dê um nome para que execuções simultâneas nunca entrem em conflito.


Do que você precisa

  • Power Automate. Abra o Power AutomateCrie um novo fluxo na nuvem (instantâneo ou automatizado).
  • Chave da API do PDF4me. Obtenha sua chave de APIConecte-o ao adicionar a fatura ZUGFeRD. É a sua primeira vez? Consulte Conecte o PDF4me ao Power Automate.
  • Dropbox (ou SharePoint, OneDrive). Hospeda o PDF de origem, o XML do ZUGFeRD e a pasta de saída. Este passo a passo utiliza o Dropbox em todas as etapas.
  • Um arquivo XML ZUGFeRDEm conformidade com a norma EN 16931. O repositório inclui um modelo inicial em ZUGFeRD-invoice-sample-2.0.xml; renomear para versão 2.xml Se você quiser reproduzir as capturas de tela exatamente como estão.

O Fluxo em Resumo

  1. Acionar um fluxo manualmente (ou Quando um arquivo é criado no Dropbox para automação).
  2. Dropbox Obter conteúdo do arquivo para o PDF da transportadora (/pdf4metest/sample/10 page.pdf).
  3. Dropbox Obter conteúdo do arquivo para o XML ZUGFeRD (/pdf4metest/zugfred invoice/version2.xml).
  4. PDF4me Criar fatura ZUGFeRD com 2.0-XML, XmlWithPdf, BASIC, renderizar em, idioma de.
  5. Criar arquivo no Dropbox para /pdf4meoutput com guid() + headers/FileName para um nome de saída livre de colisões.

Visão geral completa do fluxo

Tela do Power Automate mostrando o fluxo ZUGFeRD de cinco ações: Acionar um fluxo manualmente, Obter conteúdo do arquivo (PDF), Obter conteúdo do arquivo 1 (XML), Criar fatura ZUGFeRD, Criar arquivo - todas conectadas verticalmente com ícones do Dropbox e do PDF4me.

Cinco etapas empilhadas de cima para baixo. Cada ação do Dropbox exibe o ícone azul de conteúdo do arquivo; a ação "Criar Fatura ZUGFeRD" do PDF4me fica no meio. Ambas as saídas "Obter arquivo" alimentam a mesma ação do PDF4me; o conteúdo do arquivo do PDF4me alimenta a ação "Criar arquivo".


Passo 1: Acione o fluxo

  1. Em Power Automate, clique + Criar, escolha fluxo de nuvem instantâneo.
  2. Dê um nome a isso. Create ZUGFeRD Invoice from Dropbox, escolher Acionar um fluxo manualmente, clique Criar.
  3. Depois de conectar as partes móveis, você pode trocar o gatilho por Quando um arquivo é criado no Dropbox (/pdf4metest/zugfred invoice/Assim, cada novo arquivo XML aciona a execução automaticamente. As mesmas ações subsequentes são aplicadas, sem necessidade de recompilação.

Etapa 2: Obtenha o PDF da transportadora no Dropbox

Fluxo até o momento: Gatilho → Obter conteúdo do arquivo (PDF).

  1. Clique + Novo passo. Procurar Dropbox, escolha Obter o conteúdo do arquivo usando o caminhoFaça login na sua conexão do Dropbox, se solicitado.
  2. Arquivo. /pdf4metest/sample/10 page.pdfEsta é a fatura visual que seu cliente abre.
  3. Parâmetros avançadosInferir tipo de conteúdo. Sim (O Power Automate usa a extensão do arquivo e os bytes para marcar o tipo de conteúdo, para que o PDF4me saiba que se trata de dados PDF).
  4. Salvar. O resultado Conteúdo do arquivo torna-se o PDF de origem para a incorporação do ZUGFeRD na etapa 4.

Obter conteúdo do arquivo (PDF): Configuração

Ação "Obter conteúdo do arquivo" com o arquivo definido como /pdf4metest/sample/10 page.pdf e a opção "Inferir tipo de conteúdo" definida como "Sim" em Parâmetros avançados, conectado ao Dropbox.

O PDF da transportadora em /pdf4metest/sample/10 page.pdfA opção "Inferir tipo de conteúdo: Sim" retorna bytes PDF limpos que o PDF4me pode converter em PDF/A-3.


Etapa 3: Obtenha o XML do ZUGFeRD do Dropbox

Fluxo até o momento: Obter conteúdo do arquivo (PDF) → Obter conteúdo do arquivo (XML).

  1. Clique + Novo passoAdicione outro Dropbox → Obter conteúdo do arquivo usando o caminhoRenomeie para Obter conteúdo do arquivo 1 (O Power Automate faz isso automaticamente), portanto, as duas ações do Dropbox são distinguíveis.
  2. Arquivo. /pdf4metest/zugfred invoice/version2.xmlEste é o payload XML ZUGFeRD alinhado com a norma EN 16931.
  3. Parâmetros avançadosInferir tipo de conteúdo. Sim.
  4. Salvar. O resultado Conteúdo do arquivo Os dados estruturados da fatura serão incorporados ao PDF4me dentro do formato híbrido PDF/A-3.

Obter conteúdo do arquivo (XML): Configuração

Ação "Obter conteúdo do arquivo 1" com o arquivo definido como /pdf4metest/zugfred invoice/version2.xml e a opção "Inferir tipo de conteúdo" definida como "Sim" em Parâmetros avançados. Conectado ao Dropbox.

A carga útil XML do ZUGFeRD em /pdf4metest/zugfred invoice/version2.xmlEste arquivo está em conformidade com o padrão ZUGFeRD 2.0 EN 16931; selecione 2.0-XML na próxima ação para corresponder.

Para uma gorjeta. Precisa validar o XML antes de incorporá-lo? Arraste e solte um Compor ação entre a Etapa 3 e a Etapa 4 e inspeção Conteúdo do arquivo no histórico de execução. O XML do ZUGFeRD sempre começa com <?xml version="1.0" e contém um Fatura Intersetorial raiz para payloads 2.x.


Etapa 4: Criar a fatura ZUGFeRD

Fluxo até o momento: Gatilho → PDF → XML → Criar fatura ZUGFeRD.

  1. Clique + Novo passo, procurar PDF4me, escolha Criar fatura ZUGFeRDFaça login com sua chave de API do PDF4me, caso ainda não tenha se conectado.
  2. Versão ZUGFeRD e formato de entrada. 2.0-XMLO menu suspenso combinado seleciona simultaneamente a versão da especificação (2.0) e o formato dos dados (XML). O prefixo "2.0" atende à exigência alemã de B2B para 2025.
  3. Modo de saída. XmlWithPdfRetorna o arquivo híbrido PDF/A-3 canônico com o XML anexado.
  4. Dados XML da fatura. Conteúdo do arquivo de Obter conteúdo do arquivo 1 (A etapa XML). Mapeie apenas esta. Não preencha os campos JSON ou CSV.
  5. Nível de conformidade. BASICPerfil básico com itens de linha e detalhamento de impostos, compatibilidade mais ampla com receptores. Migre para os perfis COMFORT ou EXTENDED somente após o receptor confirmar a compatibilidade.
  6. Gerar fatura em PDF. YesO PDF4me redesenha o conteúdo da fatura no PDF da transportadora usando seus dados, de forma que a página visível e o XML incorporado permaneçam sincronizados.
  7. Conteúdo do arquivo. Conteúdo do arquivo de Obter conteúdo do arquivo (a etapa do PDF). Esta é a estrutura de suporte.
  8. Nome do arquivo. abc.pdf (ou o nome real do seu arquivo de origem). Usado para contexto de rastreamento.
  9. Parâmetros avançadosLinguagem. de (Rótulos em alemão). Outros códigos aceitos: en, fr, it, es, nl, pl, pt, cs.
  10. Salvar.

Criar fatura ZUGFeRD: Configuração

Campos principais obrigatórios
  • Versão ZUGFeRD e formato de entrada: 2.0-XML
  • Modo de saída: XmlWithPdf
  • Dados XML da fatura: Conteúdo do arquivo a partir da etapa XML
  • Nível de conformidade: BÁSICO
  • Gerar fatura em PDF: Sim
  • Conteúdo do arquivo: Conteúdo do arquivo a partir do passo PDF
  • Nome do arquivo: abc.pdf
Parâmetros avançados
  • Linguagem: de (Alemão, padrão)
  • Aceito: de, em, fr, it, es, nl, pl, pt, cs
  • O XML permanece neutro em relação ao idioma; apenas os rótulos exibidos no PDF utilizam essa localidade.

Três combinações que você realmente usará. 2.0-XML quando seu sistema upstream já emite XML ZUGFeRD. 2.0-JSON Quando sua plataforma de faturamento usa JSON e você quer que o PDF4me o converta para o esquema ZUGFeRD. 2.0-CSV Para exportações em lote de planilhas e ferramentas de contabilidade. Todas as três produzem resultados híbridos idênticos; a diferença está apenas no formato dos dados fornecidos.


Etapa 5: Salve o PDF híbrido de volta no Dropbox

Fluxo até o momento: PDF → XML → Criar fatura ZUGFeRD → Criar arquivo.

  1. Clique + Novo passo. Procurar Dropbox, escolha Criar arquivo.
  2. Caminho da pasta. /pdf4meoutput.
  3. Nome do arquivo. guid() + headers/FileName (A partir de Criar Fatura ZUGFeRD). Duas maneiras de preenchê-la:
    • Expressão: concat(guid(), '_', outputs('Create_ZUGFeRD_Invoice')?['headers']?['FileName'])Ou, mais simplesmente:
    • Conteúdo dinâmico: tipo guid() primeiro (guia Expressão), depois adicione headers/FileName a partir da saída da ação PDF4me.
  4. Conteúdo do arquivo. Conteúdo do arquivo de Criar fatura ZUGFeRD.
  5. Preserve o fluxo.

Criar arquivo (Dropbox): Configuração

Criar ação do Dropbox com o caminho da pasta /pdf4meoutput, nome do arquivo definido como uma expressão guid() seguida pelo conteúdo dinâmico headers/FileName da ação PDF4me e conteúdo do arquivo mapeado da saída do PDF4me, conectado ao Dropbox.

Saída gravada em /pdf4meoutput com um nome prefixado por GUID. O GUID garante que as execuções paralelas não colidam; cabeçalhos/Nome do Arquivo A parte mantém um sufixo legível para humanos.


Execute o fluxo e verifique.

  1. Clique Teste No canto superior direito, selecione Manualmente, clique Teste, então Fluxo de execução.
  2. Após alguns segundos, cada ação exibe uma marca de seleção verde.
  3. Abra o Dropbox /pdf4meoutputO novo arquivo corresponde <guid>_<filename>.pdf.
  4. Faça o download. Abra em qualquer visualizador de PDF para ver a fatura. Abra em qualquer ferramenta de contas a pagar compatível com ZUGFeRD (ou descompacte com uma ferramenta compatível com ZIP) para ver o conteúdo incorporado. factur-x.xml / zugferd.xml anexo.

O que você produziu exatamente? A PDF/A-3 PDF arquivado com um ZUGFeRD 2.0 EN 16931 incorporado Arquivo XML. A contagem de páginas do PDF e o conteúdo visual correspondem à fatura original de 10 páginas (porque Gerar fatura em PDF (Sim). O XML interno atende aos requisitos de dados estruturados da legislação alemã para o mercado B2B. Um arquivo, dois leitores.


ZUGFeRD vs Factur-X vs XRechnung em 30 segundos

FormatarOnde é utilizadoTipo de saída
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

O fluxo que você acabou de criar gera ZUGFeRD; mude para um fluxo de trabalho Factur-X sem alterações (o mesmo arquivo híbrido funciona em ambos os lados do Reno). Para faturamento do setor público alemão, troque o Nível de Conformidade por um perfil alinhado ao XRechnung quando o destinatário exigir XML puro.


Variações comuns que você pode adicionar sem reconstruir

Fonte JSON ou CSV em vez de XML
Troque a etapa 3 para buscar um .json ou .csv arquivo. Altere o menu suspenso combinado para 2.0-JSON ou 2.0-CSVMapeie a correspondência. Dados JSON da fatura ou Dados CSV da fatura O PDF4me converte para o esquema ZUGFeRD antes de incorporar o arquivo.
SharePoint em vez de Dropbox
Substitua os conectores do Dropbox por SharePoint: Obter conteúdo de arquivo usando o caminho e SharePoint Criar arquivoO mapeamento de campos é o mesmo; apenas a autoridade do conector muda. Funciona da mesma forma com o OneDrive for Business ou o Armazenamento de Blobs do Azure.
O Outlook envia o arquivo em vez de (ou depois de) criá-lo.
Adicionar Outlook Enviar um e-mail (V2) com o endereço do cliente. Mapa Conteúdo do arquivo como o conteúdo do anexo e concat('Fatura-', utcNow(), '.pdf') como nome do anexo. O cliente recebe a fatura híbrida diretamente.
Valide o PDF/A antes de arquivar.
Corrente PDF4me Validar PDF/A Após a etapa 4. Se a validação for bem-sucedida, grave no arquivo de longo prazo; se falhar, crie um alerta no Teams. Uma medida de segurança adicional para fluxos de trabalho que exigem conformidade.

Solução de problemas em erros reais

Selecionada a versão 1.0-XML, resultado que não atende aos requisitos.

O ZUGFeRD 1.0 não atende ao mandato alemão B2B de 2025. Se o seu produto precisa estar em conformidade com o mandato, escolha sempre uma versão mais adequada. 2.0-* combinação no menu suspenso combinado.

Os dados XML e JSON da fatura foram preenchidos.

Mapeie apenas o campo que corresponde à sua escolha na lista suspensa. O Power Automate não impedirá que você preencha ambos, mas a ação exibirá um erro de validação ao ser executada. Deixe os outros campos de formatação vazios.

Renderizar fatura em PDF desativado + sem visualização pré-renderizada

Com Gerar fatura em PDF O PDF4me incorpora o XML, mas não redesenha o conteúdo da fatura. O PDF da transportadora que você enviou Conteúdo do arquivo Permanece como está. Desative apenas se o PDF da sua transportadora já exibir o conteúdo da fatura visualmente.

PRORROGADO rejeitado pelo destinatário

O modo EXTENDED adiciona campos específicos da indústria além da norma EN 16931 e é rejeitado por receptores sintonizados para a linha de base. Comece com BÁSICO Para testes de compatibilidade; avance somente quando o comprador ou o sistema ERP confirmar o suporte.


Próximos passos

O mesmo padrão de cinco etapas funciona para qualquer automação de documentos no Power Automate: acione, busque as entradas, execute a ação PDF4me e grave o resultado. Depois de publicar uma, as próximas custam quase nada.