Nordlet

← 文档 / 指南

欧盟增值税引擎

履约地确定、OSS/IOSS 申报、中小企业免税及远程销售阈值。

针对欧盟/欧洲经济区(EU/EEA)销售的跨境增值税处理:履约地确定、反向征收(reverse charge)、市场视同供应商(marketplace deemed-supplier)处理、各国家税率参考以及 OSS/IOSS 申报。以下所有功能均以 API 优先;每个端点均显示了相应的权限范围(scope)。

税率参考

POST /v1/reference/eu-vat-rates/list (reference:read) - 欧盟 27 国的法定增值税率,可按 countryCode 和 date 进行筛选。税率生效窗口期从 2024-01-01 开始追踪(爱沙尼亚自 2025 年 7 月起为 24%,罗马尼亚自 2025 年 8 月起为 21%/11%,斯洛伐克自 2025 年 1 月起为 23%/19%,芬兰自 2026 年 1 月起为 13.5%,立陶宛自 2026 年 1 月起为 12%,捷克自 2024 年 1 月起为 12%)。

数据来源:欧盟委员会“欧洲税收”数据库(TEDB, https://ec.europa.eu/taxation_customs/tedb/),获取于 2026-07-16;立陶宛 2026 年的变更已通过立陶宛国家税务局(VMI, https://www.vmi.lt/evmi/pvm-tarifai)确认,芬兰 2026 年的变更已通过 vero.fi 确认。适用范围:仅限本土/标准领土税率 - 未对区域性变体(奥地利容霍尔茨、希腊岛屿、亚速尔群岛/马德拉群岛、法国海外领地和科西嘉岛)进行建模。

POST /v1/reference/vat-classifiers/list 现在会为每个分类器返回一个 countryCode(现有的 i.SAF PVM* 代码为 LT);POST /v1/reference/vat-classifiers/upsert (reference:write) 用于加载其他国家的分类器集,这是未来国家数据包的数据路径。

处理结果确定

POST /v1/reference/vat/resolve (reference:read) 用于回答某笔供应业务“我该收取多少增值税?”。输入参数:partnerId 或 customerCountryCode(+ 可选的 customerIsBusiness 覆盖项 - 否则根据合作方的增值税号推断)、supplyType(goods | services | digital)、date,以及业务情境标志:belowDistanceSalesThreshold、facilitatedByMarketplace(通过视同供应商平台销售)、actingAsMarketplace(贵方即为平台)、sellerEstablishedInEu、importedConsignmentValueEur。

欧盟理事会指令 (EU) 2025/516(数字时代的增值税,ViDA)新增规则的输入参数:

  • serviceKind(short_term_accommodation | passenger_road_transport)以及 serviceCountryCode(物业所在地或交通运输发生地所在国家)。两者均需要 supplyType: "services"。
  • underlyingSupplierGaveVatNumber 和 underlyingSupplierChargesVat:房东或司机是否向平台提供了供应地的增值税号并声明其将收取增值税。只有两者兼备才能防止平台成为视同供应商(第 28a 条第 1 款)。
  • goodsKind(installed | energy_network),用于在客户处安装或组装的货物(第 36 条)以及通过管网输送的天然气、电力、热力或冷气(第 38、39 条)。
  • goodsLocationCountryCode,即货物出售时或其运输开始时所在的国家(当该国家不是公司所在国时)。

输出结果:scheme、vatCountryCode、reverseCharge、deemedSupplier、zeroRated、目的地国家的税率菜单、法律依据(欧盟指令 2006/112/EC 条款)以及提示说明(例如提醒第 138 条免税需要 VIES 验证有效的客户增值税号)。

已实现的规则:

情境 结果
同国供应 domestic,适用国内税率
欧盟境内 B2B 货物 intra_eu_b2b - 适用第 138 条零税率供应,由客户自行申报
欧盟境内 B2B 服务 reverse_charge - 适用第 44/196 条
欧盟境内 B2C 货物/数字服务超过 10,000 欧元 oss_union - 适用目的地税率,第 33(a)/58 条
欧盟境内 B2C 低于 10,000 欧元 (belowDistanceSalesThreshold) 原产地 domestic,第 59c 条
欧盟境内 B2C 一般服务 domestic,第 45 条
运往非欧盟地区货物 export - 适用第 146 条第 1 款零税率
向非欧盟地区提供服务/数字服务 out_of_scope(第 44/59 条)
通过视同供应商平台销售 (facilitatedByMarketplace) marketplace_deemed - 向平台进行适用第 136a 条的零税率供应
进口托运货物 ≤ 150 欧元 B2C ioss - 销售时按目的地征收增值税,第 369l–369x 条;当 actingAsMarketplace 时为视同供应商(第 14a 条第 1 款)
免税小微企业(公司非增值税纳税人),国内供应 sme_exempt - 无增值税,第 284 条第 1 款
免税小微企业,跨境欧盟 B2C,持有跨境 EX 编号 sme_exempt - 第 284 条第 2 款;在低于目的地阈值且欧盟营业额低于 100,000 欧元期间有效
免税小微企业,跨境欧盟 B2C,无 EX 编号 保持 oss_union/原产地规则,并附注说明拥有跨境 EX 编号将可享受免税
平台 (actingAsMarketplace) 自 2028 年 7 月 1 日起促成不超过 30 晚的住宿或道路客运 deemedSupplier: true,在物业所在地或运输发生地征税(第 28a、47、48 条):domestic、面向其他国家消费者的 oss_union(第 369b 条 (c) 项)或面向企业的 reverse_charge
自 2028 年 7 月 1 日起,通过此类平台进行销售的房东或司机 (facilitatedByMarketplace) marketplace_deemed - 向平台供应免税,第 136b 条
2028 年 7 月 1 日之前的上述两种情况,或房东/司机已提供其增值税号并收取增值税 履约地按第 47 或 48 条确定,无视同供应商
自 2028 年 7 月 1 日起,将在另一成员国持有的货物出售给当地消费者 oss_union,第 369b 条 (e) 项;在此之前为该国的 domestic,并附注需在当地注册
向当地企业进行同样的销售 reverse_charge,第 194 条
从另一成员国发运的货物 面向消费者的 oss_union(第 33 条 (a) 项)或面向企业的 intra_eu_b2b,并附注该供应属于该国的增值税注册范畴
自 2028 年 7 月 1 日起,为另一成员国消费者安装的货物 oss_union(第 36、369b 条 (d) 项),在此之前为当地的 domestic
自 2027 年 1 月 1 日起,向另一成员国消费者供应天然气、电力、热力或冷气 oss_union(第 39、369aa 条,随后为第 369b 条 (d) 项);面向企业的 reverse_charge(第 195 条)

10,000 欧元的阈值(第 59c 条)可以作为 belowDistanceSalesThreshold 显式传入;若省略,引擎将根据分类账数据自动进行追踪(参见下文的阈值端点),并在确定结果中附带运行总额注释。

中小企业免税(Directive 2020/285,自 2025 年起)。 当公司不是注册增值税纳税人时,解析器会将其视作适用免税政策的小微企业:国内供应解析为 sme_exempt(无增值税),并且当公司持有跨境 EX 编号(公司资料上的 smeExemptionNumber)时,跨境欧盟 B2C 供应也会解析为 sme_exempt - 否则它将保留正常的 OSS/原产地处理方式,并附带一条建议使用跨境方案的提示。合规资格(保持在目的地阈值和 100,000 欧元欧盟全境营业额上限以下)由申报方负责;解析器会在备注中对其进行标记。通过 account/companies/update 设置 EX 编号(smeExemptionNumber)。

发票

sales/invoices/create|update 接受 vatScheme(上述方案之一)、vatCountryCode(消费成员国;对于 oss_union/ioss 为必填项且需验证为欧盟国家)以及 deemedSupplier。电子商务订单接受 shipToCountryCode 和 marketplace;orders/fulfill 会自动根据收货国确定处理方案,并给草稿发票打上标记(假定为货物且超过了远程销售阈值 - 如果不是,请在开具前调整草稿)。

新建发票页面上的增值税方案字段

新建发票页面上的“增值税方案(VAT scheme)”字段提供以下选项。每行输入的增值税百分比即为发票收取的税率。选择标记为“无增值税(no VAT)”的选项会将所有行设为 0%(切换回去则会恢复默认税率)。PDF 会打印所选方案法律要求的法定说明。“自动(Automatic)”会在您保存时调用上述解析器,使用合作方的国家和增值税号以及您选择的“供应类型(Supply type)”(货物、服务或数字服务);如果合作方没有国家或增值税号,保存将会失败并显示消息,此时您需要自行选择方案。

表单中的选项 方案 适用场景 发票上的增值税
自动(根据合作方和供应类型) 保存时解析 希望根据合作方和供应类型自动选择方案 由解析后的方案设定;无增值税的方案其行金额清零
国内 domestic 买方在您所在的国家 您所在国家的税率
欧盟境内 B2B 货物(0%,第 138 条) intra_eu_b2b 运往另一个欧盟国家增值税注册企业的货物;买方的增值税号必须在 VIES 中有效 无增值税;PDF 注明第 138 条免税
欧盟境内 B2B 服务(反向征收) reverse_charge 向另一个欧盟国家增值税注册企业提供的服务 无增值税;PDF 打印“反向征收(Reverse charge)”(第 196 条)
欧盟联合 OSS(欧盟消费者,目的地增值税) oss_union 向另一个欧盟国家消费者销售超过 10,000 欧元欧盟全境阈值的货物或数字服务;需要消费国信息 消费国税率,逐行输入;在季度 OSS 申报中报告
IOSS(进口额最高 150 欧元) ioss 从欧盟以外进口给欧盟消费者的货物,托运额 ≤ 150 欧元;需要消费国信息 消费国税率,逐行输入;在月度 IOSS 申报中报告
市场(视同供应商) marketplace_deemed 通过作为视同供应商的平台进行销售 向平台供应无增值税(第 136a 条)
出口(零税率) export 运往欧盟以外的货物 无增值税;PDF 注明第 146 条免税
境内无税(欧盟以外的服务) out_of_scope 向欧盟以外客户提供的服务 无增值税;PDF 注明该供应属于欧盟增值税范围之外(第 44/59 条)
中小企业免税(非增值税纳税人) sme_exempt 您的公司不是增值税纳税人并适用小微企业免税政策 无增值税;PDF 注明第 284 条免税

这两个欧盟境内 B2B 选项的区别仅在于供应的内容。货物适用于第 138 条免税:买方报告一项欧盟内部取得(intra-Community acquisition)。服务适用于第 144/196 条反向征收:买方自行评估增值税。两者开具的发票均不含增值税,但 PDF 上打印的说明以及买方申报表上金额落入的栏目不同,因此选择非常关键。

OSS / IOSS 申报

POST /v1/declarations/eu/oss/compute (declarations:read) { year, quarter } - 根据欧盟委员会执行条例 (EU) 2020/194 附件 III 的联合方案季度申报表:按消费成员国 × 税率类型(STANDARD / REDUCED)× 税率划分的行,包含应税金额和增值税,已扣除贷记单(credit notes)净额,外加总计。仅包含 vatScheme: "oss_union" 且已开具的单据。警告会标记目的地和期间的非法定税率、被跳过的零税率行、缺少 vatCountryCode 的单据,以及在识别成员国征税的供应。

POST /v1/declarations/eu/ioss/compute { year, month } - 针对 vatScheme: "ioss"(进口托运额 ≤ 150 欧元)按月生成的相同格式报表。

两个响应都包含一个 corrections 数组(外加 correctionsTotal):在当前期间开具但链接(通过 creditedInvoiceId)到更早 OSS/IOSS 期间原始发票的贷记单,将从期间行中移出,并作为前期更正进行报告 - 包含国家、原始年份、原始季度(OSS)或月份(IOSS),以及负增值税差额 - 符合 2020/194 号条例附件 III 的要求。没有 creditedInvoiceId 的贷记单将并入当前期间净额中,并带有一个警告以便进行关联;超过三年的更正将被标记(282/2011 号条例第 61 条)。

适用于任何在欧盟境内设立的公司(不限于立陶宛)。

自有货物转移申报

POST /v1/declarations/eu/own-goods-transfers/compute (declarations:read) { year, month } - 自有货物转移特殊方案的月度申报表(Directive 2006/112/EC 第 369xa-369xk 条,自 2028 年 7 月 1 日起),在次月底前(dueDate)在企业设立所在的成员国进行申报。各行按货物运往的成员国以及发运的成员国,以欧元按成本价(第 76 条)给出转移价值,并按月末最后一天的汇率进行换算(第 369xh 条)。转移是指两个不同成员国仓库之间的库存转移(POST /v1/inventory/stock/transfer);通过 /v1/inventory/warehouses/create 或 /v1/inventory/warehouses/update 上的 countryCode 设置仓库所在国家(未设置国家的仓库默认位于公司所在国)。

欧盟数字报告

POST /v1/declarations/eu/digital-reporting/list (declarations:read) { fromDate, toDate } 列出了 2006/112/EC 号指令第 262 条要求自 2030 年 7 月 1 日起在所有 27 个成员国中逐一报告每笔交易:

  • 具有 vatScheme 为 intra_eu_b2b(第 262 条第 1 款 (a) 项)或 reverse_charge(第 262 条第 1 款 (c) 项)的已开具销售发票和贷记单,在开具发票时到期;
  • 来自另一成员国供应商的已登记采购发票,其行项目增值税由公司自行申报(货物适用第 262 条第 1 款 (b) 项,服务适用 (d) 项),在收到发票后 5 天内到期。

每笔交易均包含第 264 条规定的数据:发票日期和编号、供应商和客户增值税号、行明细、应税金额、免税参考依据、贷记单对应的被更正发票编号(第 226 条第 16 款)、供应商银行账户(第 226 条第 17 款)、收购的增值税税率和金额、要报告的成员国(使用其颁发的增值税号的国家,第 262 条第 2 款)、截止日期,以及指出任何缺失数据元素的 missing 字段。成员国必须接受该数据作为 EN 16931 电子发票(第 263 条第 3 款);POST /v1/sales/invoices/peppol-xml 为每笔供应生成该文件。第 263 条第 4 款规定的欧盟通用报文以及发送数据的国家通道尚未公布,因此 Nordlet 不会发送此报文。

远程销售阈值

POST /v1/declarations/eu/distance-sales-threshold/get (declarations:read) { date? } - 根据分类账数据追踪第 59c 条规定的 10,000 欧元欧盟阈值:当前及前一个日历年的跨境 B2C 远程销售总额(OSS 方案发票加上无方案的跨境消费者发票)、公司是否仍低于阈值,以及剩余额度。非欧元单据按单据面值求和并伴随警告。当未提供 belowDistanceSalesThreshold 时,增值税解析器将自动查询此端点。

中小企业免税阈值

POST /v1/declarations/eu/sme-thresholds/list 返回根据指令 (EU) 2020/285 的各成员国国内增值税免税阈值(包含 85,000 欧元国家上限和 100,000 欧元欧盟营业额上限)。数据取自欧盟委员会中小企业门户网站国家页面;如果国家页面引用 TEDB 且未给出具体数字,则条目返回 null 而不是猜测。部分阈值以外币设定(DKK/HUF/RON),并且一些国家公布了分行业阈值(例如爱尔兰:服务 42,500 欧元,货物 85,000 欧元)。

POST /v1/declarations/eu/sme-threshold/get { date? } 报告非增值税纳税人公司相对于自身国家阈值的状况:当前日历年营业额加上上一年营业额(precedingTurnover)、status(below / 达到 80% 的 approaching / exceeded,对于注册增值税纳税人则为 not_applicable,当阈值无记录或货币不同时为 unknown)、剩余额度以及警告。其中包含隔离建议:超过阈值将标记该免税资格在当前及随后一个日历年内不可用;对于今年低于阈值但去年高于阈值的公司,系统会发出警告,提示在下一年之前无法恢复免税资格(两年都必须保持在阈值以下 - 第 284 条第 2 款机制;欧盟营业额端点针对 100,000 欧元上限也有相同的建议)。对于设有国家内部欧盟触发机制的国家(例如立陶宛针对向其他成员国提供的服务以及从其他成员国取得的货物/服务设定的 14,000 欧元),响应中包含一个 intraEu 明细(来自欧盟供应商的采购 + 提供的反向征收服务),并带有其自身的状况和警告。

跨境中小企业方案:欧盟营业额与季度报告

POST /v1/declarations/eu/union-turnover/get { date? } 根据分类账数据追踪跨境中小企业方案(第 284 条第 2 款)的 100,000 欧元“欧盟境内营业额”上限 - 即在当前和前一个日历年中在欧盟境内进行的所有供应的总价值(出口和境外范围供应除外) - 并返回两年总计、status、剩余额度和警告(对于增值税纳税人返回 not_applicable)。

POST /v1/declarations/eu/sme-cross-border-report/compute { year, quarter } 生成中小企业在其方案下应向其本国成员国提交的季度报告(第 284 条 b 款):当季度在每个成员国进行的供应总价值,每国一行(供应成员国 = 发票的消费国,否则为合作方所在国,再否则为本国),外加总计。非欧盟供应不予计入。

国家增值税申报包

POST /v1/declarations/eu/vat-return/packs/list 列举了可用的国家包;POST /v1/declarations/eu/vat-return/compute { countryCode, year, month, months? } 将请求分发给为该国注册的申报包,并返回以编号方框表示的申报表({ code, label, amount })以及警告、备注和官方 source。要求公司在该国注册(否则返回 422)。**立陶宛(FR0600)**作为第一个申报包发布,封装了现有的 FR0600 构建器;一旦其官方表单布局得到验证,将作为纯数据适配器添加更多国家。

旧的 POST /v1/reports/oss 汇总功能保留作为启发式分析视图(基于合作方国家,无需方案);声明端点才是符合申报标准的路径。两者均从公司推导本国,而不是假定为立陶宛。