打开网易新闻 查看精彩图片

如果你给德国客户开过发票,最近可能听对方说过一句:以后请发 XRechnung,PDF 不收了。

XRechnung 是什么?Excel 能导出吗?

我花时间把欧洲电子发票的规则研究了一遍,发现这事比想象的麻烦,也比想象的普遍。所以干脆做了个免费开源的工具,顺手把踩过的坑写下来。

一、欧洲在推什么

一句话:发票不再是给人看的 PDF,而是给电脑读的 XML。

几个时间点(以各国官方公告为准):

  • 德国:2025年起,企业都得能接收电子发票;2027年起,上一年营业额超过80万欧元的企业开票必须用电子发票,2028年起所有企业都要。
  • 法国:2026年9月起,所有企业都要能接收;大中型企业开票必须用电子发票,中小企业晚一年。
  • 比利时:2026年1月起,企业之间开票全部走 Peppol 网络。

格式听起来很多:XRechnung、ZUGFeRD、Factur-X、Peppol、UBL、CII……其实都基于同一个欧盟标准 EN 16931,只是“方言”不同。

二、为什么自己写容易被拒

我一开始也想:不就是生成个 XML 吗?

结果一提交就被打回。官方校验规则有几百条,最常见的坑是这几个:

  1. 金额对不上:税额要按“税率分组”计算,四舍五入到分。逐行算税再加总,往往差一分钱,直接报 BR-CO-15。
  2. 漏了必填项:XRechnung 要求写“Leitweg-ID”(德国政府的收票编号),还要卖方的电话和邮箱。
  3. 编号写错:Leitweg-ID 最后两位是校验码,抄错一位,官方校验照样通过,但发票送不到对方。这个坑最隐蔽。
  4. 校验工具难装:官方校验器要装 Java 和一堆配置,普通人基本劝退。

三、我做的工具能干什么

我把这些都封装成了一个 Claude 的 Skill(也能单独当 Python 工具用),名字叫 eu-einvoice。

用法很简单,直接跟 Claude 说人话:

“帮我给科隆市开一张 XRechnung,Leitweg-ID 是 xxx,维护费 1200 欧,培训 6.5 小时每小时 95 欧,税率 19%。”

它会:

  • 自动算钱:行金额、分税率税额、总额,精确到分,不用你算;
  • 用官方规则校验:和德国、欧盟、Peppol 收票平台用的是同一套规则,不用装 Java;
  • 报错时告诉你怎么改:比如“缺少买方参考号,请填 Leitweg-ID”;
  • 检查编号校验码:Leitweg-ID、法国 SIREN、比利时企业号写错了会提醒你;
  • 看懂别人发来的发票:收到 xrechnung.xml 打不开?它能告诉你该付多少、什么时候付、付到哪个账户,还能转成 PDF 存档。

打开网易新闻 查看精彩图片

四、效果怎么样

我用欧盟官方的35份样例发票测过,读进来再转出两种格式,70次全部通过官方校验。

还做了对比测试:同样的任务,让“装了工具的 Claude”和“没装的 Claude”各做一遍。装了的快将近一倍;在一个故意写错 Leitweg-ID 的测试里,没装工具的那组没发现问题,装了的那组发现了,还提醒用户先去核对。

五、谁用得上

  • 卖货、提供服务给德国、法国、比利时客户的跨境卖家和外贸公司;
  • 在欧洲做自由职业、给当地政府或企业开票的人;
  • 给 ERP、账单系统加电子发票导出功能的开发者;
  • 收到 XRechnung 文件打不开的财务。

打开网易新闻 查看精彩图片

六、怎么获取

完全免费、开源(MIT 协议),GitHub 搜 claude-skill-eu-einvoice,或者访问:

github.com/uulucky/claude-skill-eu-einvoice

  • 用 Claude Code 的:两条命令装好(仓库首页有写);
  • 用 Claude 网页版/桌面版的:下载 Release 里的 eu-einvoice.skill 上传即可;
  • 只想要 Python 工具的:pip install eu-einvoice。

最后提醒两句:这个工具只负责生成和检查发票,不负责发送;选什么税率、哪种免税,还是要听会计的。

如果你也在被欧洲电子发票折磨,欢迎试试,有问题在 GitHub 提 Issue,我会持续更新。

说明:工具在 Claude Code 的辅助下开发完成,代码和测试数据均已开源。