![]()
如果你给德国客户开过发票,最近可能听对方说过一句:以后请发 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 吗?
结果一提交就被打回。官方校验规则有几百条,最常见的坑是这几个:
- 金额对不上:税额要按“税率分组”计算,四舍五入到分。逐行算税再加总,往往差一分钱,直接报 BR-CO-15。
- 漏了必填项:XRechnung 要求写“Leitweg-ID”(德国政府的收票编号),还要卖方的电话和邮箱。
- 编号写错:Leitweg-ID 最后两位是校验码,抄错一位,官方校验照样通过,但发票送不到对方。这个坑最隐蔽。
- 校验工具难装:官方校验器要装 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 的辅助下开发完成,代码和测试数据均已开源。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.