跳到主要内容

如何在 Zapier 中使用 Dropbox 和 XML 创建 ZUGFeRD 发票(分步指南)

· 阅读需 23 分钟
SEO and Content Writer

如果您向德国、奥地利或任何要求使用结构化电子发票的欧盟买家销售产品,则适用以下规定: 16931年你可能被要求发送一份 手铐 (或者 Factur-X)发票。这是一个既可供人阅读又可供机器阅读的单个 PDF 文件,这得益于 PDF 文件中嵌入的 XML。

本指南展示了全部内容。 Zapier 该工作流监视 Dropbox 文件夹中的新上传文件,提取基础 PDF 和发票 XML 有效负载,并运行 PDF4me 创建 ZUGFeRD 发票并将最终生成的混合文件写回 Dropbox。只需五个 Zap 步骤。无需编写代码。可完全复现。

屏幕截图使用了以下示例路径:

  • 触发文件夹: /Blog Data/Zugferd Invoice
  • 基础PDF: /pdf4metest/sample/10 page.pdf
  • 发票 XML: /pdf4metest/Zugfred Invoice/version2.xml
  • 输出文件夹: /pdf4meoutput
简短版

1. Dropbox 会在新文件创建时触发 /博客数据/Zugferd发票2. 找到基础PDF文件。 3. 找到发票 XML 文件。 4. PDF4me 创建 ZUGFeRD 发票,输入格式为 = XML输出模式 = XmlWithPdf,ZUGFeRD 1.0,一致性 = BASIC,语言 = de。 5. 将混合 PDF 文件上传回 Dropbox。

配置步骤 4 时请记住这一点。

输入格式 = XML然后仅绘制地图 发票 XML 数据。 保持 发票 JSON 数据发票 CSV 数据 空的。为了 XmlWithPdf 输出,基础 PDF( 文件 字段)是必需的,因为它将成为嵌入 XML 的可视化层。

你正在构建的

你生产一个 符合 ZUGFeRD 标准的混合发票:一份嵌入结构化 XML 发票数据的 PDF/A-3 文档。用户可以使用任何阅读器查看 PDF 文件。ERP 系统和应付账款平台会自动解析 XML 数据。同一个文件适用于所有用户群体。无需单独的 XML 附件,无需手动重新输入,也不存在合规性问题。

这种模式是强制性的。 德国自 2025 年 1 月起开始接受 B2B 发票 根据《增长机会法》,并在遵循 EN 16931 的欧盟市场中得到广泛认可。


一览:五个步骤

1New file trigger
2Find base PDF
3Find XML
4Create ZUGFeRD
5Upload output
Zapier 工作流程概览:Dropbox 在文件夹中新建文件、Dropbox 查找文件(两个步骤)、PDF4me 创建 ZUGFeRD 发票、Dropbox 上传文件

从 Dropbox 触发器生成 ZUGFeRD 的完整五步 Zap 链。


这种工作流程布局为何有效

分离输入

可视化 PDF 模板和 XML 数据分别位于不同的 Dropbox 文件夹中。您可以单独更新其中一个,而无需修改另一个。设计人员负责修改 PDF,而会计人员负责修改 XML。

PDF4me 只需一步即可完成繁重的工作

创建 ZUGFeRD 发票 接收 PDF 和 XML 文件,将其中一个嵌入到另一个文件中,应用一致性配置文件,并输出一个混合文件。无需编写 XML 拼接代码。

触发驱动,而非定时执行

Zapier 每 2 分钟轮询一次 Dropbox,因此新发票会在几分钟内处理完毕。无需定时任务,不会造成计算资源闲置,也不会遗漏任何文件。


开始之前

检查清单
  • Zapier 账户。免费套餐支持此工作流程,因为每个 Zap 的免费套餐限制为五个 Zap 步骤。
  • PDF4me API密钥首次设置: 将 PDF4me 连接到 Zapier
  • 已建立 Dropbox 连接,具有对源文件夹的读取权限和对输出文件夹的写入权限。
  • 存储在 Dropbox 中的基础 PDF 和 ZUGFeRD 兼容的 XML 发票有效负载。

步骤 1:在 Dropbox 文件夹中创建新文件时触发

目前为止的流程: 扳机。

当监控文件夹中有文件时,此 Zap 就会启动。通常,这是您的“准备开票”交接文件夹。您可以将其用作新发票任务已排队的信号。

  1. 添加 Dropbox 触发和选择 文件夹中的新文件
  2. 空间默认
  3. 文件夹 添加到您的监视路径。在本例中,我们使用 /Blog Data/Zugferd Invoice
  4. 离开 是否包含子文件夹中的文件? 作为 错误的 除非您有意要使用嵌套文件。
  5. 是否包含文件内容?是的包含分享链接吗?是的 这样下游步骤就可以干净利落地读取文件内容。
Zapier 步骤 1:在文件夹中新建文件:文件夹 /Blog Data/Zugferd Invoice,包含子文件夹中的文件:否,包含文件内容:是,包含共享链接:是

步骤 1:Dropbox 触发器每两分钟监视一次发票文件夹。


步骤 2 和 3:找到基础 PDF 文件和 XML 发票。

目前为止的流程: 触发后查找基础 PDF,然后查找 XML。

ZUGFeRD的混合配方需要两种成分。 可视化 PDF 人类阅读的,以及 结构化 XML 机器可以解析它们。两者都存储在已知的 Dropbox 位置,我们使用两种方式获取它们。 查找文件 行动。

步骤 2:找到基础 PDF

  1. 添加一个 Dropbox 行动和选择 查找文件
  2. 空间: 默认。
  3. 文件夹: /pdf4metest/sample (您的视觉模板的位置)。
  4. 文件名: 10 page.pdf (或者你的模板叫什么都行)。
  5. 是否包含文件内容? 设置为 是的这是下一步所需的二进制文件。
  6. 包含分享链接吗? 设置为 是的
Zapier 步骤 2 查找文件:文件夹 /pdf4metest/sample,文件名 10 页.pdf,包含文件内容:是,包含共享链接:是

步骤 2:查找基础 PDF 模板的文件配置。

步骤 3:查找发票 XML 文件

相同的操作,不同的输入:

  1. 再添加一个 Dropbox 然后 查找文件 步。
  2. 文件夹: /pdf4metest/Zugfred Invoice
  3. 文件名: version2.xml
  4. 是否包含文件内容? 设置为 是的这是至关重要的,这样步骤 4 才能读取 XML 字节。
  5. 保持 如果没有找到搜索结果,则搜索结果是否成功? 作为 错误的 这样,如果文件丢失,Zap 就会干净利落地停止,而不是默默地生成一个空白的 PDF 文件。
Zapier 步骤 3 查找文件:文件夹 /pdf4metest/Zugfred Invoice,文件名 version2.xml,包含文件内容 是

步骤 3:查找指向 XML 发票有效负载的文件配置。

为什么需要两个独立的“查找文件”步骤而不是一个? 因为 PDF4me 的“创建 ZUGFeRD 发票”操作在步骤 4 中将 PDF 和 XML 作为两个不同的输入。在上游将它们分开意味着更清晰的映射,并且在出现问题时更容易调试。


步骤 4:使用 PDF4me 创建 ZUGFeRD 发票

目前为止的流程: 触发,然后查找 PDF,然后查找 XML,然后创建 ZUGFeRD。

这里会构建混合文件。PDF4me 操作会获取基础 PDF 文件,将 XML 发票有效负载嵌入其中,应用所选的一致性配置文件(此处为 BASIC),并返回一个符合 ZUGFeRD 标准的单个文件。

配置 PDF4me,创建 ZUGFeRD 发票 像这样:

  1. 文件 第二步的地图 文件 输出(基础 PDF)。
  2. 文件名 地图步骤 2 的 文件名文件扩展名 因此,输出结果会继承一个有意义的名称。
  3. 输入格式 设置为 XML这告诉 PDF4me 要预期的有效载荷类型。
  4. 发票 XML 数据 第三步的地图 文件 输出(XML 内容)。
  5. 输出模式 设置为 XmlWithPdf这样就生成了嵌入 XML 的混合 PDF/A-3 格式,这是标准的 ZUGFeRD 格式。
  6. ZUGFeRD 版本1.0如果您的贸易伙伴有特定要求,请使用 2.0 或更高版本。2.0 及以上版本符合德国 2025 年指令的要求。
  7. 符合性级别BASIC这是包含明细项目的最低限度合法发票。切换到 EN16931 完全符合欧盟规定或 XRECH 在向德国公共部门实体开具发票时。
  8. 在 PDF 上渲染发票TruePDF4me 将发票内容以可视化的方式绘制在 PDF 上,以便于阅读。
  9. 语言de默认使用德语标签。切换到 enfrit以此类推,具体取决于买家所在的地区。
Zapier 步骤 4 创建 ZUGFeRD 发票:文件来自步骤 2,发票 XML 数据来自步骤 3,输入格式 XML,输出模式 XmlWithPdf,ZUGFeRD 版本 1.0,一致性 BASIC,渲染发票时使用 PDF 为 True,语言为 de

步骤 4:基于 XML 的 ZUGFeRD 生成的完整参数映射,符合 BASIC 标准。


步骤 5:将混合 PDF 文件上传回 Dropbox

目前为止的流程: 触发后读取 PDF 和 XML,然后生成 ZUGFeRD,最后保存回 Dropbox。

最后一步是将结果写入输出文件夹,财务团队或应付账款门户连接器可以从中获取该结果。

  1. 添加 Dropbox 然后 上传文件
  2. 空间: 默认。
  3. 文件夹: /pdf4meoutput (或您的存档位置)。
  4. 文件 地图步骤 4 的 文件 URL (PDF4me 返回一个安全的 URL,Dropbox 可以直接导入)。
  5. 覆盖True这会在测试期间干净利落地替换之前的运行结果。切换到 False 一旦投入生产。
  6. 指定文件名 地图步骤 4 的 文件名 因此,输出结果会保留发票编号。
  7. 指定文件扩展名 地图步骤 4 的 文件扩展名.pdf)。
  8. 包含分享链接吗?是的 如果您希望下一步(通知、ERP推送、电子邮件)使用可共享的Dropbox URL。
Zapier 步骤 5 上传文件:文件夹 /pdf4meoutput,文件来自步骤 4 的文件 URL,覆盖为 True,文件名和扩展名来自创建的 ZUGFeRD 发票,包含共享链接为 Yes

步骤 5:混合 PDF 文件将保存到 Dropbox 输出文件夹中,准备进行下游交付。


快速参考

#关键映射
1Dropbox New File in FolderFolder /Blog Data/Zugferd Invoice, Include file contents Yes
2Dropbox Find File (base PDF)Folder /pdf4metest/sample, File 10 page.pdf
3Dropbox Find File (XML)Folder /pdf4metest/Zugfred Invoice, File version2.xml
4PDF4me Create ZUGFeRD InvoiceInput Format XML, Output Mode XmlWithPdf, BASIC, 1.0, Render on PDF True
5Dropbox Upload FileFolder /pdf4meoutput, File from step 4 File Url, Overwrite True

深度参数参考: 创建 ZUGFeRD 发票(Zapier 文档) Zapier入门指南


常见问题解答

如何在 Zapier 中创建 ZUGFeRD 发票?

您需要按照上述步骤串联五个 Zap 步骤。Dropbox 触发器会检测新的发票任务。两个 Dropbox“查找文件”操作会获取您的基本 PDF 和 XML 有效负载。 PDF4me 创建 ZUGFeRD 发票 该操作使用 XML 输入格式、XmlWithPdf 输出模式、您选择的 ZUGFeRD 版本以及一致性配置文件运行。最后一步通过 Dropbox 上传文件来存储结果。无需编码,也无需 XML 拼接。PDF4me 会处理嵌入和 PDF/A-3 打包。

ZUGFeRD 在德国是否于 2025 年和 2026 年强制执行?

是的。德国的《增长机会法》要求所有B2B发票接收方必须接受结构化的电子发票。 2025年1月1日,全面发送义务将逐步实施 2028自 2027 年起,年收入超过 80 万欧元的企业必须遵守 ZUGFeRD 2.0 标准;自 2028 年起,所有企业都必须遵守该标准。符合 EN16931 或 XRECHNUNG 标准的 ZUGFeRD 2.0 或更高版本即可满足此项要求。ZUGFeRD 1.0 已过时,不再适用。 不是 遵守。

创建 ZUGFeRD 发票时,XML、JSON 和 CSV 输入之间有什么区别?

该行动的 输入格式 该参数接受三种有效载荷类型。 XML 如果您的ERP系统已经生成了与ZUGFeRD兼容的XML文件,您只需将其嵌入即可,那么这种方法最为理想。本指南使用XML格式。 JSON 当发票数据来自 Webhook 或现代会计平台时,PDF4me 是现代化的 API 友好型选择。它会自动将 JSON 字段映射到 ZUGFeRD XML 模式。 CSV 适用于从电子表格或旧系统批量导出账单数据。选择与您的上游数据源匹配的格式并填写。 仅有的 第 4 步中匹配的发票数据字段。

XmlWithPdf 和 XmlOnly 有什么区别?

XmlWithPdf 生成的是标准的 ZUGFeRD 混合格式:一个 PDF/A-3 格式的存档 PDF 文件,其中 XML 以附件形式嵌入。人阅读 PDF 文件,机器解析 XML。一个文件即可满足两种用户的需求。 XmlOnly 输出纯 XML 文件,不包含 PDF 封装。适用于 XRechnung 纯 XML 公共部门提交、EDI 管道或数据层集成测试。对于标准 B2B 发票,请选择 XmlWithPdf

德国B2B发票应该使用哪个合规级别?

对于 ZUGFeRD 1.0(本指南), 基本的 这是包含明细项目的最低限度合法发票格式。适用于大多数 B2B 场景。适用于 ZUGFeRD 2.x 版本。 EN16931 是欧盟 B2B 的推荐默认值(也是德国授权文件中提到的默认值)。 XRECHARGE 在向德国联邦、州或市政府开具发票时,必须填写此表格。 扩展 添加行业特定字段。首先使用 BASIC (1.0) 或 EN16931 (2.0+) 标准,仅当您的买家是公共部门实体时才升级到 XRACHNUNG 标准。


故障排除

第 4 步出现“需要发票数据”错误

你的 输入格式 您映射的数据字段不匹配。 输入格式 = XML, 充满 发票 XML 数据 仅此而已。离开 发票 JSON 数据发票 CSV 数据 空白。确认步骤 3 的内容。 包含文件内容 = 是 因此,XML 字节实际上到达了 PDF4me。

输出模式为 XMLWithPDF,但生成的 PDF 文件却是空白的。

要么是基础 PDF 文件没有进入第四步的…… 文件 领域,或 在 PDF 上渲染发票 为 False。将步骤 2 的文件输出映射到步骤 4 的文件字段,并确认“在 PDF 上渲染发票”选项已启用。 真的 因此,PDF4me 将发票内容绘制在视觉层上。

401、402 或 PDF4me 连接错误

检查你的 PDF4me API密钥 您的账户目前有效且有余额。请查看 PDF4me故障排除 如果 Zapier 显示连接已断开,则执行连接器重新授权步骤。

拖放新文件时,触发器不会触发。

免费版 Dropbox 每 2 分钟进行一次投票。请稍候,或点击 测试触发器 手动检查。再三确认。 是否包含子文件夹中的文件? 匹配您放置文件的位置。默认值 错误的 只监视目标文件夹,不监视其子文件夹。


接下来该尝试什么呢?

可选强化:添加 Zapier 筛选 在步骤 1 之后执行此步骤,以跳过不符合命名约定的文件,或者 小路 在步骤 4 之后,根据输出成功或失败情况进行分支,然后再上传到 Dropbox。