商业发票与增值税发票生成器
在它之前的生成器,会高高兴兴地给你出一份漏了客户增值税号、忘了写反向征收措辞的 PDF。这一个在你填写的同时核对每一项必载事项 —— 与税务机关或报关行用的是同一套规则 —— 通过之后才让你打印。生成的发票本身是英文的:它要交给客户、海关和承运商。
🔒 你的发票不会离开浏览器。草稿保存在本地。
三种单据,一套纪律
商业发票随货走:海关读它来归类(HS 编码)、估价,并按原产地算关税。增值税发票对税法负责 —— 在欧盟,增值税指令第 226 条列出了它必须载明的事项,缺了客户增值税号、或者零税率却不写依据,就会被质询。形式发票看起来像发票,但它不是:本生成器会醒目地标出来,因为把形式发票当增值税发票入账,是迟早会被查出来的记账事故。
这里的算术不可能对不上
检查器 —— 包括我们自己的发票字段检查器 —— 核对净额、增值税和总额是否一致,引用电子发票平台也会引用的 EN 16931 官方规则(BR-CO-15、BR-CO-17)。生成器可以更进一步:这里的合计是算出来的,并且按指令的要求按税率分组,所以那几条规则从构造上就不可能不通过。要检查的反而是计算器不可能知道的东西:法律列出的必载事项是否真的在纸面上。
法国:2026 年 9 月 1 日起施行 —— 以及纸质发票为什么仍然要紧
法国的电子发票强制令已于 2026 年 9 月 1 日生效。在法国登记增值税的企业现在都必须能接收电子发票,大型与中型企业还必须开具电子发票;较小的企业在 2027 年 9 月跟进。强制令针对的是通过登记平台交换的结构化发票 —— 但数据就是本页核对的同一批第 226 条必载事项。发票在这里完整了,结构化版本需要的东西也就齐了;接下来可以查它的 Peppol 参与方 ID 和 EN 16931 代码表。
本工具刻意不做什么
不带增值税税率表(税率会变;你知道自己的税率,我们负责算术),不做货币换算,不做电子签名、不发送、不记账,也不输出 XML —— 结构化电子发票是另一种产物,有它自己的校验器。这是格式与完整性检查,不是税务建议:各国法律还会增加指令没有列出的必载事项。
本工具运行的全部检查(25 条规则,另加转发的规则族)
第 226 条必载事项(与发票字段检查器共用)
INV-001 没有发票号码
INV-002 没有开票日期
开票日期本身就是一项法定必载事项,与供货日期是两回事。两者不同时,两个都要写。
INV-003 没有供应方增值税识别号
发票上必须写明供应方据以提供这笔供应的增值税识别号。没有它,客户就不能抵扣这笔增值税 —— 一个格式问题,变成了别人的现金问题。
INV-004 欧盟内 B2B 供应缺客户增值税号
欧盟内部供应由客户承担纳税义务时,客户的增值税识别号是必载事项 —— 它正是反向征税之所以适用的证据。
修复: 向客户要来增值税号写上,开票前先在 VIES 里核验。
INV-005 没有供应方名称和地址
供应方的全称和地址是法定必载事项。
INV-006 没有客户名称和地址
客户的全称和地址是法定必载事项。
INV-007 没有商品或服务的描述
必须写明所供商品的数量与性质,或所提供服务的范围与性质。「Services rendered」(已提供服务)正是审计时最经典的不合格写法。
INV-008 没有供货日期
供货完成的日期与开票日期不同时必须写明。在供货之后的另一个期间才开票,恰恰是它要紧的情形。
INV-009 没有应税金额
按税率分列的应税金额、不含增值税的单价,以及没有计入单价的折扣,都是必载事项。只有一个含税总额满足不了这一条。
INV-010 没有增值税税率
必须写明所适用的增值税税率,适用多个税率时逐一列出。
INV-011 没有增值税税额
除特别计税方案排除的情形外,必须写明应纳增值税税额。客户抵扣的就是这个数,没有它的发票无法抵扣。
INV-012 零税率或免税却没说明依据
不收增值税时,发票必须写明依据 —— 引用适用的条款,或写上「Reverse charge」这类字样。零金额旁边什么都不写,是欧盟内发票被问询的最常见原因。
修复: 补上免税条款的引用;由客户自行计缴税款的,写上「Reverse charge」字样。
INV-013 向另一欧盟成员国的客户收了增值税
向另一成员国已登记增值税的客户做 B2B 供应时,税款通常由客户计缴,发票上不带增值税。这里收了税,要么是出错,要么适用了某条特殊规则 —— 而发票没有说是哪一种。
修复: 要么适用反向征税并写明,要么写明是哪条规则让这笔供应在你所在地应税。
来源: yaktool 的工程解读,不是法条原文:这里列出的必载事项依据的是欧盟增值税指令(2006/112/EC)第 226 条的通行转述;各国法律另有本工具不覆盖的要求。请以你自己的税务顾问意见为准。
INV-014 缺少币种
没有币种的金额不算金额。EN 16931 正是为此把发票币种列为必填的业务术语。
INV-015 供应方或客户的增值税号格式不对
号码不符合其国家前缀对应的长度与字符模式。格式正确的号码仍可能没有登记,但格式错误的号码一定是错的 —— 而这项检查不花任何成本。
修复: 改正号码,发票发出前在 VIES 里核验。
来源: yaktool 的工程解读,不是法条原文:这里列出的必载事项依据的是欧盟增值税指令(2006/112/EC)第 226 条的通行转述;各国法律另有本工具不覆盖的要求。请以你自己的税务顾问意见为准。
INV-016 增值税号没通过所属国家的校验位
格式没错,但号码里内置的校验位与其余部分对不上 —— 德国、荷兰、意大利等好几个成员国的号码里带校验位。这比格式不符的信号更强:几乎可以肯定是打错了,而不只是写法怪。
修复: 照客户自己的文件重新录入号码,再到 VIES 里核验。
来源: yaktool 的工程解读,不是法条原文:这里列出的必载事项依据的是欧盟增值税指令(2006/112/EC)第 226 条的通行转述;各国法律另有本工具不覆盖的要求。请以你自己的税务顾问意见为准。
海关与生成器检查
CINV-002 有行没有 HS 编码
海关按税则号给货物归类。发票上没有这个号,报关行或承运商就替你归类 —— 更慢,也未必对你有利。美国进口法要求描述足以归类;把编号本身写在行上是通行做法。
修复: 给每一行补上 6 位 HS 编码(或目的国专用的 8–10 位编码)。
CINV-003 有行没有原产国
CINV-004 没有 Incoterms 术语
没有交货条款,发票就没说清运费、保险和关税由谁付。承运商和报关行会来问,海关完税价格的计算也取决于它。
修复: 补上 Incoterms 2020 术语和指定地点,例如「DAP Rotterdam」。
来源: yaktool 对承运商与海关实务的工程解读,不是法条引文。最接近的公开法规是 19 CFR § 141.86(美国进口);欧盟海关法没有规定商业发票的格式。
CINV-005 没有净重
发票上的重量会与装箱单、运输单据交叉核对。缺重量是清关时被人工询问的常见原因。
来源: yaktool 对承运商与海关实务的工程解读,不是法条引文。最接近的公开法规是 19 CFR § 141.86(美国进口);欧盟海关法没有规定商业发票的格式。
CINV-006 欧盟一方没有 EORI 号
货物经欧盟海关清关,申报人必须登记了 EORI 号。一张要过欧盟边境的发票上没有它,就意味着之后会有人被要求补上 —— 而货在那里等着。
修复: 补上负责清关那一方的 EORI 号。
来源: yaktool 对承运商与海关实务的工程解读,不是法条引文。最接近的公开法规是 19 CFR § 141.86(美国进口);欧盟海关法没有规定商业发票的格式。
CINV-007 自动加上形式发票标记
形式发票不是增值税发票:不能用来抵扣增值税,也不产生付款义务。生成的单据上带着醒目的「PROFORMA」标记,免得有人把它当成增值税发票入账。
来源: yaktool 的工程说明:标记本身是通行做法;增值税上的后果,来自这张发票不是按第 226 条开具的。
CINV-008 行的数量或单价不是可用的数字
数量必须是正数,单价必须是非负数。乘不出金额的行开不了票。
修复: 改正这一行的数量 / 单价,或者删掉这一行。
来源: yaktool 的工程规则:算术前提,不是法定必载事项。
CINV-009 国家代码不是已分配的 ISO 3166-1 代码
国家字段对不上任何已分配的 ISO 3166-1 二字母代码。下游系统(海关、承运商、税务)会拒收或者投错。
修复: 用已分配的二字母代码 —— 不确定的话,到国家代码工具里查一下。
来源: yaktool 的工程规则;底层依据是 ISO 3166 登记表。
CINV-010 增值税税率超出范围
增值税税率必须在 0 到 100 之间。
修复: 按百分数填写税率,例如 19% 就填 19。
来源: yaktool 的工程规则:算术前提。
增值税号、EORI 号、IBAN、RF 付款参考号、HS 编码和 Incoterms,都由各自专用工具的同一套引擎检查,发现沿用那些工具的规则编号 —— 所以这里的 HS- 或 IBAN- 发现,可以到它自己的页面上深入查看。
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →