沙特阿拉伯

模块

以下是与沙特阿拉伯本地化相关的模块:

名称

技术名称

描述

沙特阿拉伯 - 会计

l10n_sa

支持第一阶段 QR 码的沙特阿拉伯默认 财务本地化包 。

沙特阿拉伯 - 会计报表

l10n_sa_reports

沙特阿拉伯的会计报表

沙特阿拉伯 - 电子发票

l10n_sa_edi

为电子发票合规性启用 ZATCA 第二阶段 API 集成。

沙特阿拉伯 - 电子发票(简化)

l10n_sa_edi_pos

启用通过 POS 进行电子发票处理。

沙特阿拉伯 - 销售点

l10n_sa_pos

为 POS 发票添加合规字段和行为。

沙特阿拉伯 - 预扣税

l10n_sa_withholding_tax

强制安装付款预扣税模块。

注解

本地化的核心模块会随本地化自动安装。其余的可以手动 安装 。

本地化概述

沙特阿拉伯本地化包可确保遵守沙特阿拉伯的财税法规。它包括管理税务、财务立场、报表的工具,以及一个针对沙特阿拉伯标准量身定制的预定义会计科目表。

沙特阿拉伯本地化包提供了以下关键功能,以确保遵守本地财税法规:

税

沙特阿拉伯本地化包含预配置的销售、采购和预扣 税:

  • 标准增值税(15%):适用于在王国内供应的大多数货物和服务的现行税率。
    供应商在销售时收取 15% 增值税(销项增值税),并通常有权扣除其业务采购中已支付的增值税(进项增值税)。

    Example

    大多数商业销售、零售商品、电信服务、非豁免的私立教育和非豁免的私立医疗。

  • 零税率增值税(0%):这些属于应税供应,但适用的税率为 0%。
    供应商在销售时不收取增值税,但关键的是,其有权完全收回为相关供应的成本中已支付的进项增值税。

    Example

    • 出口:向非 GCC 居民供应货物和服务,或供应至王国境外消费。

    • 国际运输:旅客和货物的国际运输服务以及相关服务。

    • 特定货物:由 ZATCA/卫生部规定的符合条件的药品和合格的医疗设备。

    • 住宅房产:向沙特公民首次供应新的住宅楼宇/房产,金额不超过 1,000,000 沙特里亚尔(受特定条件限制)。

    • 投资金属:纯度 99% 及以上的合格黄金、白银和铂金(用于供应投资)。

  • 免税交易:这些交易不属于增值税范围,即不受该税征收。
    供应商在销售时不收取任何增值税,并且无权收回为相关供应的成本中已支付的进项增值税(导致一项不可收回的成本)。

    Example

    • 金融服务:贷款利息、信贷的提供、往来/存款/储蓄账户的运营、货币或证券的发行或转让,以及人寿保险。

    • 不动产:住宅房产的裸租赁(经营性租赁)。

  • 进口增值税:对从非 GCC 国家带入王国的货物征收的增值税。
    增值税通常按标准税率(15%)计算,并在进口时向海关部门支付。

重要

在分配 折扣 到发票时,为遵守 ZATCA 规则,请为包含总折扣的行分配 15% 税。

反向征收机制(RCM)

  • 描述:将记录增值税的责任从非居民供应商转移到货物的居民接收方或服务的机制。

  • 机制:注册增值税的接收方必须在其 增值税申报 中计算并记录增值税(作为销项增值税和进项增值税)。只要进项税可以完全扣除,这通常会对增值税申报产生净额为零的效果。

  • 应用:主要用于非居民供应商向沙特阿拉伯注册增值税的企业供应服务的 B2B 场景。

预扣税

计算预扣税有两种可用方法:总额和扣除。

  • 总额预扣:这是主要配置方式,预扣金额在账单总额之外进行计算。例如,如果输入的账单总额为 115 沙特里亚尔,系统会计算基数加预扣税(WHT),而不会减少付款金额。

  • 扣除预扣:直接从应付金额中减少预扣金额,意味着总付款额立即反映出该扣款。这会影响会计分录和应付行的入账方式。

注解

扣除预扣税默认不启用。要激活此功能,请转到 Accounting –> Configuration –> Taxes(会计 –> 配置 –> 税)并启用相关的预扣税。

以下预扣税(WHT)配置已预加载并可供使用:

  • 5% 预扣税:适用于租金、股息、技术和咨询服务、航空和海运货运,以及利息、保险和再保险保费的付款。

  • 15% 预扣税:适用于向非居民支付的特许权使用费和其他一般服务付款。

  • 20% 预扣税:专用于管理费和特定高价值服务付款。

税务报告

增值税与预扣税申报 提供了应税、零税率、免税和预扣交易的详细分类。与其他财务报表一样,VAT (增值税)和 Withholding Return (预扣税申报)可以按期间进行筛选、与其他期间进行比较,并导出为 Excel 和 PDF 格式,确保符合沙特阿拉伯的税法。

公司和联系人

为了确保与 ZATCA 正确集成,公司记录 中需要以下字段:

  • Company Name (公司名称),最多 63 个字符以符合 ZATCA 要求。

  • 所有相关的 Address (地址)字段,包括 District (区域)、Building Number (建筑编号)和 Plot Identification (地块标识)

  • Identification Scheme (识别方案)

    • Tax Identification Number (税务识别号)

    • Commercial Registration Number (商业注册号)

    • Momra License (Momra 许可证)

    • MLSD License (MLSD 许可证)

    • 700 Number (700 号码)

    • Sagia License (Sagia 许可证)

  • VAT Number (增值税号)

  • Currency (货币)必须设置为 SAR (沙特里亚尔)。

重要

所有字段都必须准确填写,以避免在 ZATCA 注册 期间被拒绝。

注解

相同的配置也适用于所有相关的 联系人 表单。

分支机构配置

按照 ZATCA 规则 设置贵公司的 分支机构 。

重要

在分支机构联系人表单上,输入与母公司相同的 VAT Number (增值税号),并在 Identification Scheme (识别方案)字段中输入该分支机构的 Commercial Registration Number (CRN) (商业注册号)。

注解

或者使用母公司的销售日记账以遵循集中式开票系统模型,或者注册一个针对新分支的日记账以设置一个多线程系统,并行处理发票。

开票语言

发票可以不同语言开具,以在两个层级上满足地区或客户的特定要求:

  • 客户级别:要为某客户设置首选语言,请转到 Accounting ‣ Customers ‣ Customers (会计 –> 客户 –> 客户)或 Point of Sale ‣ Orders ‣ Customers (销售点 –> 订单 –> 客户),并打开相应的客户表单。在 Language (语言)字段中,更新语言。随后,所有为该客户生成的文档都将自动使用所选语言。

    重要

    沙特阿拉伯的增值税法规要求 Tax Invoices (税务发票)和 Simplified Tax Invoices (简化税务发票)(以及相应的贷项通知单或借项通知单)必须以阿拉伯语呈现,属于强制要求。发票可以是双语的,包括英语。

  • 公司级别:为满足沙特阿拉伯增值税法规,将阿拉伯语添加为辅语言:

    • 税务发票:前往 会计 ‣ 配置 ‣ 设置,在 客户发票 部分。

    • 销售点收据:前往 销售点 ‣ 配置 ‣ 设置,然后进入 账单和收据 部分。

    然后,启用 海湾合作委员会格式 选项,并点击 保存 。

与 ZATCA 进行电子发票

ZATCA 电子发票系统旨在简化和数字化在沙特阿拉伯运营企业的开票流程。

ZATCA 第二阶段对 Business-to-Business (B2B,企业对企业) 交易采用清关式电子发票模型。相反,对于 Business-to-Consumer (B2C,企业对消费者) 交易,Odoo 会生成 QR 码,然后向 Fatoora 报告端点报告这些交易。

在 B2B 场景中,会签发 Tax Invoice (税务发票),而在 B2C 场景中,会生成 Simplified Tax Invoice (简化税务发票)。

分步流程

在注册 ZATCA(第二阶段)时,有三种模式:

沙箱

小技巧

在公司设置中使用增值税号 399999999900003 进行沙箱测试。

  1. 设置数据库
    转到 Accounting ‣ Configuration ‣ Settings (会计 –> 配置 –> 设置),在 Saudi Arabia Electronic Invoicing (沙特阿拉伯电子发票)部分中,确保 ZATCA API mode (ZATCA API 模式)设置为 Sandbox (沙箱)。
  2. 公司信息验证
    确保所有 公司 信息完整。
  3. 注册销售日记账

    • 转到 Accounting ‣ Configuration ‣ Journals (会计 –> 配置 –> 日记账)。

    • 打开 Sales (销售)日记账。

    • 在 ZATCA 选项卡下,单击 Onboard (注册)。

    • 在 Enter the OTP (输入 OTP)窗口中,6 位 OTP 已预填。单击 Confirm (确认)。

  4. 发票测试

    • 创建 并 确认 客户发票。

    • 一旦发票被确认,将出现蓝色横幅;单击 Process now (立即处理)。

    • 确保 来自 API 的响应 为 Action Successful (操作成功)。如果不是,请查看讨论区中显示的 API 响应并采取相应措施。

模拟(预生产)

  1. 设置数据库

    • 复制您的实时/生产数据库。

    • 转到 Accounting ‣ Configuration ‣ Settings (会计 –> 配置 –> 设置),在 Saudi Arabia Electronic Invoicing (沙特阿拉伯电子发票)部分中,确保 ZATCA API mode (ZATCA API 模式)设置为 Simulation (Pre-Production) (模拟(预生产))。

  2. 公司信息验证
    确保所有 公司 信息完整。
  3. 注册销售日记账

    • 转到 Accounting ‣ Configuration ‣ Journals (会计 –> 配置 –> 日记账)。

    • 打开 Sales (销售)日记账。

    • 在 ZATCA 选项卡下,单击 Onboard (注册)。

    • 在 Enter the OTP (输入 OTP)窗口中,输入从 Fatoora 模拟门户测试环境中获取的 6 位 OTP 。然后单击 Confirm (确认)。

  4. 发票测试

    • 创建 并 确认 客户发票。

    • 一旦发票被确认,将出现蓝色横幅;单击 Process now (立即处理)。

    • 确保 来自 API 的响应 为 Action Successful (操作成功)。如果不是,请查看讨论区中显示的 API 响应并采取相应措施。

注解

Simulation (Pre-Production) (模拟(预生产))模式下的发票不具有法律效力。

生产

  1. 在您的实时/生产数据库中
    转到 Accounting ‣ Configuration ‣ Settings (会计 –> 配置 –> 设置),在 Saudi Arabia Electronic Invoicing (沙特阿拉伯电子发票)部分中,确保 ZATCA API mode (ZATCA API 模式)设置为 Production (生产)。
  2. 公司信息验证
    确保所有 公司 信息完整。
  3. 注册销售日记账

    • 转到 Accounting ‣ Configuration ‣ Journals (会计 –> 配置 –> 日记账)。

    • 打开 Sales (销售)日记账。

    • 在 ZATCA 选项卡下,单击 Onboard (注册)。

    • 在 Enter the OTP (输入 OTP)窗口中,输入从 Fatoora 门户生产环境中获取的 6 位 OTP 。然后单击 Confirm (确认)。

  4. 发票同步

    • 创建 并 确认 客户发票。

    • 一旦发票被确认,将出现蓝色横幅;单击 Process now (立即处理)。

    • 确保 来自 API 的响应 为 Action Successful (操作成功)。如果不是,请查看讨论区中显示的 API 响应并采取相应措施。

注解

每个 Sales (销售)日记账都必须单独注册。

如果销售日记账不再需要作为 ZATCA 解决方案单元,请确保在您的 Fatoora 门户中撤销它。为此,请单击 View List of Solutions And Devices (查看解决方案和设备列表),在 Revoke CSID (撤销 CSID)下选择相关的解决方案和设备,然后单击 Revoke (撤销)和 Confirm (确认)。

警告

  • 一旦 API 模式切换到 Production (生产)并向 ZATCA 提交了发票,就无法再改回 Sandbox (沙箱)或 Simulation (Pre-Production) (模拟(预生产))。

  • 从 Fatoora 模拟或生产门户生成的 OTP 会在 60 分钟后过期,需要重新生成。

向 ZATCA 提交发票

将发票提交至 ZATCA 后,API 会在聊天记录中返回一条结构化响应消息。

Example

[202] BR-KSA-F-13:[BR-KSA-F-13] - 请重新检查其他卖方/买方 ID(BT-29 或 BT-46),因为其中包含无效值。

可能收到的常见代码:

代码

操作

200 – 操作成功

无需执行任何操作。

202 – 操作成功(有警告)

  • 将警告告知解决方案提供商,以便尽快纠正。

  • 警告目前暂时被接受,但将来可能变为拒绝。

  • 频繁出现警告可能会引发 ZATCA 的调查、教育培训或审计。

303 – 清关已关闭

请通过报告流程而非清关流程提交发票。

400 – 操作失败(已拒绝)

查看详细的错误消息,纠正问题后重新提交。

401 – 未授权

  • 检查身份验证证书和密钥。

  • 更正凭证后重新提交。

413 – 负载过大(发票未收到)

减小发票负载大小后重新发送。

429 – 请求过多(发票未收到)

重新发送发票。

500 – 内部服务器错误(发票未收到)

重新发送发票。

503 – 服务不可用(发票未收到)

重新发送发票。

504 – 请求超时(发票未收到)

重新发送发票。

发票确认并提交后,聊天记录中所显示消息的颜色表示以下信息:

  • 绿色:发票已成功接受 - 发票完全合规,且已通过 ZATCA 成功验证。

  • 黄色:发票在带警告的情况下被接受 - 发票具有法律效力,但在接受时附带警告。应审查并纠正该问题,以免影响后续提交。

  • 红色:发票已被拒绝 - 发票未被 ZATCA 接受,且不具有法律效力。必须纠正后重新提交。

如果发票被拒绝,发票的聊天记录中会显示一条错误消息。请在发票或公司设置中纠正消息说明所述的根本问题。然后,要重新提交发票,请点击 重试 。

重要

  • 被 ZATCA 拒绝的发票将保持在 已拒绝 状态,且不被视为具有法律效力。

  • 如果发生任何导致无法生成电子发票/电子收据的事件、技术错误或紧急情况,请通知 ZATCA。问题解决后,请使用同一沟通渠道再次联系 ZATCA。对于特定的失败情形,请参阅 ZATCA 指南(第 45 页) 中列出的步骤。

二维码验证

要验证发票上的二维码,请使用官方 ZATCA 应用 进行扫描。

进入应用后,点击 服务 。在 电子发票验证 部分中点击 启动服务 。然后开始扫描发票的二维码。

注解

  • 二维码验证结果不显示货币符号。无论使用何种货币,发票金额始终以纯数字形式显示。

  • 带有相关联系人(例如发票地址)的发票会发送至清关 API(B2B)。

借项和贷项通知单

要创建 贷记单 或 借记单,请在 贷记/借记 窗口的 ZATCA 原因 字段中填写 ZATCA 批准的原因,这是 ZATCA 法规的要求:

  • 供应发生后全部或部分取消或暂停供应。

  • 对供应进行重大变更或修改,导致应缴增值税发生变化。

  • 修改供应商与消费者事先约定的供应价值。

  • 商品或服务退款。

  • 卖方或买方信息变更。

小技巧

ZATCA 原因 字段也可在贷记单/借记单的 其他信息 选项卡中使用。

注解

当贷记单/借记单不相关/独立时,请在 客户参考 字段中填写该贷记单/借记单所对应的一张或多张原始发票的连续编号。

首付款(预付款)

请按照 ZATCA 指南 处理 首付款(预付款) 。

保留金

保留金是客户根据商业合同暂时扣留的一笔款项,用以保证工程的质量和完工。它通常为发票金额的一定百分比(例如 5-10%),作为应对将来出现缺陷的担保;保修期届满后,该款项最终会支付给承包商。

对 ZATCA 而言,通常适用的规则是:即使客户扣留一部分款项作为保留金,增值税仍按发票全额计算。ZATCA 建议纳税人首先确定税务处理方式,即保留金金额是否减少应税金额。税务处理方式取决于合同条款。

Odoo 的保留金工作流通过税务处理方式确保保留金金额不会减少应税金额。

注解

启用 是保留金 复选框后配置的任何负税(例如 -20%)对 UBL 2.1 没有影响。只有当此保留金税与发票行上的通用税(例如 15%)结合使用时才适用,且表示该发票行的百分比。例如,如果纳税人希望保留已开票商品的 20%,则发票行上会同时应用 15% 的税和 -20% 的保留金税。

在同一税务处理方式中,保留金也可以在发票层级作为单独的负数发票行应用,使用 0%(不征收增值税)税率。

警告

  • 在发票行上同时添加启用了 是保留金 的负税与通用税,或在发票层级添加使用 0%(不征收增值税)税率的单独负数发票行,通常表示已按全额应税金额缴纳增值税。因此,用于释放保留金金额的最终发票不符合 税务发票 的条件,不应提交至 ZATCA。

  • 0%(不征收增值税)税已按照 ZATCA 规则预先配置,请勿修改。

重要

  • 创建新的保留金税时,请创建 保留金 税组并将其分配给这个新建的保留金税,以符合 ZATCA 规则。

  • 要将 保留金金额 作为备注添加到发票行,请点击 添加备注,以符合 ZATCA 规则。例如 - 保留金金额:[retention amount] SAR

生成的文档

发票提交后,会生成一个 UBL 2.1 XML 文件并发送至 ZATCA API 端点。为便于审计,该 XML 文件会存储在聊天记录中。要显示它,请点击 (附件) 图标。

此外,使用 发送 时生成的发票 PDF 也会显示在聊天记录中。为确保符合 ZATCA 法规,XML 和 PDF 文件都会永久附加到发票上,无法删除。

重要

已成功提交至 ZATCA 的发票只能在 沙盒 或 模拟(预生产) 模式下重置为草稿。

小技巧

要自动生成内嵌 UBL 2.1 的 PDF/A-3,请点击 发送 。

销售点

ZATCA 集成配置

注解

确保 沙特阿拉伯 - 电子发票(简化版)(l10n_sa_edi_pos) 模块已 安装 。

PoS 订单必须按照 ZATCA 第二阶段的要求正确申报。为此,请执行以下步骤:

  • 在 PoS 设置 中为默认的 发票 日记账完成入驻:

    • 前往 销售点 ‣ 配置 ‣ 设置 。在黄色横幅中选择相关的 销售点,然后导航至 会计 部分。

    • 在 默认日记账 部分中,找到 发票 字段并点击 (右箭头) 以打开默认的 销售 日记账。

    • 在 ZATCA 选项卡下,单击 Onboard (注册)。

    • 在 Enter the OTP (输入 OTP)窗口中,输入从 Fatoora 门户生产环境中获取的 6 位 OTP 。然后单击 Confirm (确认)。

  • 在完成交易前为订单 分配客户 。

这些步骤可确保每张收据都作为合规的电子发票进行处理,并实时申报至 ZATCA 门户。收据生成后,第二阶段二维码会自动显示在打印的收据和 PDF 上。