Saltar al contenido principal

Crear una factura ZUGFeRD en Power Automate a partir de un PDF + XML de Dropbox: un flujo de trabajo de 5 pasos.

· 22 min de lectura
SEO and Content Writer

Alemania Ley de Oportunidades de Crecimiento Convirtió las facturas electrónicas híbridas al estilo ZUGFeRD de algo deseable a un requisito B2B. 1 de enero de 2025 Todas las empresas alemanas deben poder recibir facturas electrónicas estructuradas, con obligaciones de envío completas que se implementarán gradualmente. 2028La ruta más rápida para cualquier equipo de Microsoft 365 es un flujo de Power Automate de cinco acciones: Activar manualmente → Dropbox Obtener contenido del archivo (PDF) → Dropbox Obtener contenido del archivo (XML) → PDF4me Crear factura ZUGFeRD → Dropbox Crear archivo. La carga útil XML está incrustada dentro de un PDF/A-3 Envoltorio de archivo, que produce un único archivo que los humanos abren y los sistemas de contabilidad analizan. Este tutorial utiliza las mismas capturas de pantalla tomadas en el lienzo: /pdf4metest/sample/10 page.pdf para el portador visual y /pdf4metest/zugfred invoice/version2.xml para los datos estructurados, con la salida híbrida aterrizando en /pdf4meoutput bajo un nombre único con prefijo GUID. Listo para producción en menos de 10 minutos.

El flujo de un vistazo
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 versión corta

Dos pasos para obtener archivos en Dropbox, una acción de PDF4me y un paso para crear archivos en Dropbox. El PDF es el soporte legible para humanos; el XML es el dato legible para máquinas. PDF4me los combina en un único archivo híbrido PDF/A-3 que cumple con la normativa alemana de facturación electrónica B2B de 2025. Sin código, sin herramientas de escritorio, sin SDK de Java.

Preguntas y respuestas basadas en el porqué

¿Por qué ZUGFeRD? Debido a las normas de facturación electrónica de la UE y a la legislación alemana Ley de Oportunidades de Crecimiento Se hicieron obligatorias las facturas estructuradas para las transacciones B2B. ZUGFeRD es el formato híbrido que resuelve ambos problemas: los usuarios obtienen un PDF normal, mientras que los sistemas de cuentas por pagar y ERP obtienen el XML estructurado integrado en el mismo archivo. Un solo documento, dos lectores.

¿Por qué dos pasos para obtener el contenido del archivo? Una obtiene el PDF visual que se convierte en la carcasa del portador (la página que abre el destinatario); la otra obtiene el XML ZUGFeRD estructurado que se convierte en el archivo adjunto incrustado dentro del portador. Ambas salidas alimentan Crear factura ZUGFeRD: PDF como Contenido del archivo PDF, XML como Datos XML de la factura.

¿Por qué aparece "2.0-XML" en el menú desplegable combinado? Se requiere ZUGFeRD 2.0+ para el mandato alemán de 2025 (la versión anterior 1.0 no lo cumple). El sufijo "-XML" le indica al conector que la carga útil de su factura ya está en formato XML ZUGFeRD. Seleccione 2.0-JSON o 2.0-CSV Para fuentes de datos estructuradas, el conector las convierte al esquema antes de incrustarlas.

Por qué XML con PDF y no Solo XML¿ XML con PDF Devuelve el formato híbrido canónico ZUGFeRD: un archivo PDF/A-3 con el XML adjunto en su interior. Solo XML Devuelve únicamente el XML. La mayoría de los escenarios de facturación saliente envían el archivo híbrido porque los clientes esperan abrir un PDF; XmlOnly es para flujos directos de ERP a ERP.


Lo que obtendrás

Aporte: Una factura en formato PDF de 10 páginas (el soporte visual) y un archivo XML ZUGFeRD (los datos estructurados). Producción: Un único archivo PDF/A-3 con el XML incrustado en su interior, alineado con EN 16931, conformidad BASIC, listo para enviar por correo electrónico a los clientes, archivar en SharePoint o publicar en su ERP. El paso Crear archivo de Dropbox lo escribe de nuevo en /pdf4meoutput bajo una única guid() + headers/FileName nombre para que las ejecuciones simultáneas nunca colisionen.


Lo que necesitas

  • Power Automate. Abrir Power Automate. Crea un nuevo flujo en la nube (instantáneo o automatizado).
  • Clave API de PDF4me. Obtén tu clave APIConéctalo cuando añadas Crear factura ZUGFeRD. ¿Es la primera vez? Ver Conectar PDF4me con Power Automate.
  • Dropbox (o SharePoint, OneDrive). Aloja el PDF de origen, el XML ZUGFeRD y la carpeta de salida. Este tutorial utiliza Dropbox en todo momento.
  • Un archivo XML de ZUGFeRD. Alineado con EN 16931. El repositorio incluye un archivo de inicio en ZUGFeRD-invoice-sample-2.0.xml; cambiar nombre a versión2.xml Si quieres que las capturas de pantalla se reproduzcan exactamente.

El flujo de un vistazo

  1. Activar manualmente un flujo (o Cuando se crea un archivo en Dropbox para automatización).
  2. Dropbox Obtener contenido del archivo para el portador PDF (/pdf4metest/sample/10 page.pdf).
  3. Dropbox Obtener contenido del archivo para el XML de ZUGFeRD (/pdf4metest/zugfred invoice/version2.xml).
  4. PDF4me Crear factura ZUGFeRD con 2.0-XML, XmlWithPdf, BASIC, renderizar en, idioma de.
  5. Dropbox Crear archivo a /pdf4meoutput con guid() + headers/FileName para un nombre de salida sin colisiones.

Descripción general del flujo completo

Lienzo de Power Automate que muestra el flujo ZUGFeRD de cinco acciones: Activar manualmente un flujo, Obtener contenido de archivo (PDF), Obtener contenido de archivo 1 (XML), Crear factura ZUGFeRD, Crear archivo; todo conectado verticalmente con iconos de Dropbox y PDF4me.

Cinco pasos apilados de arriba a abajo. Cada acción de Dropbox muestra el icono azul de contenido de archivo; PDF4me Create ZUGFeRD Invoice se encuentra en el medio. Ambas salidas de Get-file alimentan la misma acción de PDF4me; el contenido de archivo de PDF4me alimenta Create file.


Paso 1: Activar el flujo

  1. En Power Automate, haga clic + Crear, elegir Flujo de nube instantáneo.
  2. Nómbralo Create ZUGFeRD Invoice from Dropbox, elegir Activar manualmente un flujo, haga clic Crear.
  3. Una vez que hayas conectado las piezas móviles, puedes cambiar el gatillo por Cuando se crea un archivo en Dropbox (/pdf4metest/zugfred invoice/) así que cada nuevo XML activa la ejecución automáticamente. Las mismas acciones posteriores, sin reconstrucción.

Paso 2: Obtén el PDF del transportista desde Dropbox.

Flujo hasta ahora: Activador → Obtener contenido del archivo (PDF).

  1. Haga clic + Nuevo paso. Buscar Dropbox, elegir Obtener el contenido del archivo usando la rutaInicia sesión en tu conexión de Dropbox si se te solicita.
  2. Archivo. /pdf4metest/sample/10 page.pdfEsta es la factura visual que abre su cliente.
  3. Parámetros avanzadosInferir tipo de contenido. (Power Automate utiliza la extensión del archivo y los bytes para etiquetar el tipo de contenido, de modo que PDF4me sepa que se trata de datos PDF).
  4. Guardar. El resultado Contenido del archivo se convierte en el PDF de origen para la incrustación de ZUGFeRD en el paso 4.

Obtener contenido del archivo (PDF): Configuración

Obtener contenido del archivo con Archivo configurado como /pdf4metest/sample/10 page.pdf e Inferir tipo de contenido configurado como Sí en Parámetros avanzados, Conectado a Dropbox

El PDF del transportista en /pdf4metest/muestra/página 10.pdf. Inferir tipo de contenido Sí devuelve bytes PDF limpios que PDF4me puede encapsular en PDF/A-3.


Paso 3: Obtén el archivo XML de ZUGFeRD desde Dropbox.

Flujo hasta ahora: Obtener contenido del archivo (PDF) → Obtener contenido del archivo (XML).

  1. Haga clic + Nuevo paso. Añadir otro Dropbox → Obtener el contenido del archivo usando la ruta. Cámbiale el nombre a Obtener el contenido del archivo 1 (Power Automate hace esto automáticamente) para que las dos acciones de Dropbox sean distinguibles.
  2. Archivo. /pdf4metest/zugfred invoice/version2.xml. Esta es la carga útil XML ZUGFeRD alineada con EN 16931.
  3. Parámetros avanzadosInferir tipo de contenido. .
  4. Guardar. El resultado Contenido del archivo se convierte en los datos de factura estructurados que PDF4me incrustará dentro del híbrido PDF/A-3.

Obtener el contenido del archivo (XML): Configuración

Obtener contenido del archivo 1 acción con Archivo establecido en /pdf4metest/zugfred invoice/version2.xml e Inferir tipo de contenido establecido en Sí en Parámetros avanzados, Conectado a Dropbox

La carga útil XML de ZUGFeRD en /pdf4metest/zugfred factura/versión2.xmlEste archivo se encuentra en ZUGFeRD 2.0 conformidad EN 16931; seleccione 2.0-XML en la siguiente acción para igualar.

Para dar una propina. ¿Necesitas validar el XML antes de incrustarlo? Deja un comentario. Componer acción entre el paso 3 y el paso 4 e inspeccionar Contenido del archivo en el historial de ejecución. ZUGFeRD XML siempre comienza con <?xml version="1.0" y contiene un Factura intersectorial Raíz para cargas útiles 2.x.


Paso 4: Crear la factura ZUGFeRD

Flujo hasta ahora: Activador → PDF → XML → Crear factura ZUGFeRD.

  1. Haga clic + Nuevo paso, buscar PDF4me, elegir Crear factura ZUGFeRDInicia sesión con tu clave API de PDF4me si no te has conectado antes.
  2. Versión ZUGFeRD y formato de entrada. 2.0-XMLEl menú desplegable combinado selecciona simultáneamente la versión de la especificación (2.0) y el formato de datos (XML). El prefijo "2.0" es el que cumple con el mandato alemán B2B de 2025.
  3. Modo de salida. XmlWithPdfDevuelve el archivo híbrido PDF/A-3 canónico con el XML adjunto en su interior.
  4. Datos XML de factura. Contenido del archivo de Obtener el contenido del archivo 1 (el paso XML). Mapee solo este. No complete los campos JSON o CSV.
  5. Nivel de conformidad. BASICPerfil básico con desglose de partidas e impuestos, y la mayor compatibilidad con receptores. Actualice a COMFORT o EXTENDED solo después de que el receptor confirme la compatibilidad.
  6. Generar factura en PDF. YesPDF4me vuelve a dibujar el contenido de la factura en el PDF del transportista utilizando sus datos, de modo que la página visible y el XML incrustado permanecen sincronizados.
  7. Contenido del archivo. Contenido del archivo de Obtener el contenido del archivo (el paso del PDF). Esta es la carcasa del portador.
  8. Nombre del archivo. abc.pdf (o el nombre real de su archivo fuente). Se utiliza para el contexto de seguimiento.
  9. Parámetros avanzadosIdioma. de (Etiquetas alemanas). Otros códigos aceptados: en, fr, it, es, nl, pl, pt, cs.
  10. Ahorrar.

Crear factura ZUGFeRD: Configuración

Campos básicos obligatorios
  • Versión ZUGFeRD y formato de entrada: 2.0-XML
  • Modo de salida: XML con PDF
  • Datos XML de factura: Contenido del archivo desde el paso XML
  • Nivel de conformidad: BÁSICO
  • Generar factura en PDF:
  • Contenido del archivo: Archivo de contenido del paso PDF
  • Nombre del archivo: abc.pdf
Parámetros avanzados
  • Idioma: de (Alemán, predeterminado)
  • Aceptado: de, en, fr, ello, es, nl, pl, pt, cs
  • El XML permanece independiente del idioma; solo las etiquetas dibujadas en el PDF utilizan esta configuración regional.

Tres combinaciones que realmente usarás. 2.0-XML cuando su sistema ascendente ya emite XML ZUGFeRD. 2.0-JSON cuando tu plataforma de facturación utiliza JSON y quieres que PDF4me lo convierta al esquema ZUGFeRD. 2.0-CSV Para exportaciones por lotes desde hojas de cálculo y herramientas de contabilidad. Las tres generan un resultado híbrido idéntico; la única diferencia radica en el formato de los datos que usted proporciona.


Paso 5: Guarda el PDF híbrido en Dropbox.

Flujo hasta ahora: PDF → XML → Crear factura ZUGFeRD → Crear archivo.

  1. Haga clic + Nuevo paso. Buscar Dropbox, elegir Crear archivo.
  2. Ruta de la carpeta. /pdf4meoutput.
  3. Nombre del archivo. guid() + headers/FileName (de Crear factura ZUGFeRD). Dos maneras de rellenarla:
    • Expresión: concat(guid(), '_', outputs('Create_ZUGFeRD_Invoice')?['headers']?['FileName']). O más sencillo:
    • Contenido dinámico: tipo guid() primero (pestaña Expresión), luego agregue headers/FileName a partir de la salida de la acción PDF4me.
  4. Contenido del archivo. Contenido del archivo de Crear factura ZUGFeRD.
  5. Conserva el flujo.

Crear archivo (Dropbox): Configuración

Crear archivo Acción de Dropbox con Ruta de carpeta /pdf4meoutput, Nombre de archivo establecido como expresión guid() seguido de encabezados/contenido dinámico de Nombre de archivo de la acción PDF4me, y Contenido de archivo asignado desde la salida de PDF4me, Conectado a Dropbox

Salida escrita en /pdf4meoutput con un nombre con prefijo GUID. El GUID hace que las ejecuciones paralelas no tengan colisiones; encabezados/nombre de archivo La parte conserva un sufijo legible para humanos.


Ejecuta el flujo y verifica.

  1. Haga clic Prueba En la parte superior derecha, seleccione A mano, haga clic Prueba, entonces Flujo de ejecución.
  2. Tras unos segundos, cada acción muestra una marca de verificación verde.
  3. Abrir Dropbox /pdf4meoutputEl nuevo archivo coincide <guid>_<filename>.pdf.
  4. Descárguelo. Ábralo con cualquier visor de PDF para ver la factura. Ábralo con cualquier herramienta de AP compatible con ZUGFeRD (o descomprímalo con una herramienta compatible con ZIP) para ver el archivo incrustado. factur-x.xml / zugferd.xml adjunto.

¿Qué produjiste exactamente? A PDF/A-3 PDF de archivo con un ZUGFeRD 2.0 integrado EN 16931 Archivo XML. El número de páginas del PDF y el contenido visual coinciden con la factura original de 10 páginas (porque Generar factura en PDF Sí). El XML interno cumple con el requisito de datos estructurados del mandato B2B alemán. Un archivo, dos lectores.


ZUGFeRD vs Factur-X vs XRechnung en 30 segundos

FormatoDónde se utilizaTipo de salida
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

El flujo que acaba de crear produce ZUGFeRD; cambie a un flujo de trabajo Factur-X sin necesidad de modificaciones (el mismo archivo híbrido funciona a ambos lados del Rin). Para la facturación del sector público alemán, cambie el Nivel de Conformidad por un perfil alineado con XRechnung cuando el receptor exija XML puro.


Variaciones comunes que puedes agregar sin reconstruir

Fuente JSON o CSV en lugar de XML
Intercambia el paso 3 para obtener un .json o .csv archivo. Cambie el menú desplegable combinado a 2.0-JSON o 2.0-CSV. Mapea la coincidencia Datos JSON de la factura o Datos CSV de facturas campo. PDF4me convierte al esquema ZUGFeRD antes de incrustarlo.
SharePoint en lugar de Dropbox
Reemplace los conectores de Dropbox con SharePoint Obtener el contenido del archivo usando la ruta y SharePoint Crear archivoMismo mapeo de campos; solo cambia la autoridad del conector. Funciona igual con OneDrive para Empresas o Azure Blob Storage.
Outlook Enviar en lugar de (o después de) Crear archivo
Agregar Outlook Enviar un correo electrónico (V2) con la dirección del cliente. Mapa Contenido del archivo como el contenido adjunto y concat('Factura-', utcNow(), '.pdf') como nombre del archivo adjunto. El cliente recibe la factura híbrida directamente.
Validar PDF/A antes de archivar
Cadena PDF4me Validar PDF/A Después del paso 4. Si la validación es exitosa, escriba en el archivo a largo plazo; si falla, genere una alerta de Teams. Medidas de seguridad adicionales para flujos de trabajo que requieren cumplimiento normativo.

Solución de problemas de errores reales

Se seleccionó 1.0-XML, salida que no cumple con el mandato.

ZUGFeRD 1.0 no cumple con el mandato alemán B2B de 2025. Si su producción debe cumplir con el mandato, elija siempre una 2.0-* Combinación en el menú desplegable combinado.

Se han introducido tanto los datos XML de la factura como los datos JSON de la factura.

Asigne solo el campo que coincida con su selección del menú desplegable. Power Automate no le impedirá rellenar ambos, pero la acción generará un error de validación al ejecutarse. Deje los demás campos de formato vacíos.

Renderizar factura en PDF desactivado + sin visualización pre-renderizada

Con Generar factura en PDF desactivado, PDF4me incrusta el XML pero no vuelve a dibujar el contenido de la factura. El PDF del transportista que envió en Contenido del archivo Permanece como está. Desactívelo únicamente si el PDF de su proveedor ya muestra el contenido de la factura visualmente.

PRORROGADO rechazado por el receptor

EXTENDED agrega campos específicos de la industria más allá de EN 16931 y es rechazado por receptores sintonizados para la línea base. Comience con BÁSICO Para pruebas de compatibilidad; solo avance cuando el comprador o el sistema ERP confirmen la compatibilidad.


Próximos pasos

El mismo patrón de cinco pasos funciona para cualquier automatización de documentos en Power Automate: activar, obtener los datos de entrada, ejecutar la acción PDF4me y escribir el resultado. Una vez que implementas una, las siguientes no cuestan prácticamente nada.