这里校验什么,不校验什么
关于任何一个增值税号,有三个各不相同的问题,而它们常被混为一谈:
- 形状对不对?前缀对不对、长度对不对、数字和字母在不在该在的位置上。这就是本页回答的问题,即时,离线。
- 它存在吗?税务机关是否真的签发过它。只有 VIES 知道。
- 它今天能用于欧盟内部贸易吗?一个号码可以存在,却仍未被授权用于跨境交易。还是问 VIES。
用这里几秒钟揪出抄错的号,再拿真号去 VIES 确认。大部分被拒的号码根本过不了第一步。
希腊是 EL,不是 GR
就这一个细节,造成的核验失败比其他任何原因都多。希腊的 ISO 国家代码是 GR,但它的增值税前缀是 EL。那些从国家字段拼出号码的系统会生成 GR123456789,VIES 每次都拒。
还有几个值得知道的怪例:奥地利在前缀后面有一个 U,荷兰在最后两位之前有一个 B,瑞典的号码以 01 结尾。这些都不是可选的。
客户的号码为什么是你的问题
当你按反向征收把货 B2B 卖到另一个成员国时,你之所以敢开不含增值税的发票,靠的就是客户的那个增值税号。如果那个号码后来被认定当时并不有效,免税待遇可能被否定——而这笔增值税会向你追缴,不是向那个给了你错号码的客户。
所以核验被当作交易的一部分,而不是行政上的整洁。你在 VIES 查询时它会给出一个查询编号;把它存下来,就是日后客户登记被发现已经失效时,证明你尽到注意义务的东西。
要在供货当时查,而不是客户开户那次查完就算。登记是会被注销的。
常犯的几个错
- 前缀留在了号码字段里。有些系统要求国家和数字分开填,整个粘进去就成了
DEDE123456789。 - 拿国内税号当增值税号用。它们常常是长度不同的两个标识——德国公司同时有 Steuernummer 和 USt-IdNr.,只有后者能跨境使用。
- 前导零被表格吃掉。比利时的号码以零开头,而 Excel 一旦把这列当成数字就会把它去掉。
- 长得像数字的字母。把零写成大写 O,复制粘贴照样活着,核验则会无声地失败。
欧盟各国增值税号格式
| 国家 | 前缀 | 示例 |
|---|---|---|
| 爱尔兰 | IE |
IE1234567L |
| 爱沙尼亚 | EE |
EE123456789 |
| 奥地利 | AT |
ATU12345678 |
| 保加利亚 | BG |
BG123456789 |
| 比利时 | BE |
BE0123456789 |
| 波兰 | PL |
PL1234567890 |
| 丹麦 | DK |
DK12345678 |
| 德国 | DE |
DE123456789 |
| 法国 | FR |
FRXX123456789 |
| 芬兰 | FI |
FI12345678 |
| 荷兰 | NL |
NL123456789B01 |
| 捷克 | CZ |
CZ12345678 |
| 克罗地亚 | HR |
HR12345678901 |
| 拉脱维亚 | LV |
LV12345678901 |
| 立陶宛 | LT |
LT123456789 |
| 卢森堡 | LU |
LU12345678 |
| 罗马尼亚 | RO |
RO1234567890 |
| 马耳他 | MT |
MT12345678 |
| 葡萄牙 | PT |
PT123456789 |
| 瑞典 | SE |
SE123456789001 |
| 塞浦路斯 | CY |
CY12345678L |
| 斯洛伐克 | SK |
SK1234567890 |
| 斯洛文尼亚 | SI |
SI12345678 |
| 西班牙 | ES |
ESX1234567X |
| 希腊 | EL |
EL123456789 |
| 匈牙利 | HU |
HU12345678 |
| 意大利 | IT |
IT12345678901 |
常见问题
不是。它只说明这个号码有可能存在。它到底存不存在、是否被授权用于欧盟内部贸易,只有 VIES 能回答。
常见原因:该商户在国内已登记但未开通欧盟内部交易、登记已被注销,或者该国数据库暂时连不上——VIES 是实时向各成员国查询的,某国系统故障看起来就像号码无效。
波兰的会——NIP 的校验位会被算出来,这能抓住那些通得过长度检查的数字颠倒。其他国家各有自己的算法;本页只校验它们的结构,并在结果里说明这一点。
如果你依赖反向征收,需要。VIES 每次查询都会返回一个查询编号;把它和发票一起存档,就是你在供货当时核验过客户的标准证据。
不会。格式校验完全在你的浏览器里进行。打开 VIES 是你自己另外做的一步。