沙特阿拉伯本地化模块及税务合规完整指南
沙特阿拉伯
模块 {#localizations/saudi-arabia/modules}
以下与沙特阿拉伯本地化相关的模块可供使用:
| 名称 | 技术名称 | 描述 |
|---|---|---|
| 沙特阿拉伯 – 会计 | [l10n_sa] | 沙特阿拉伯默认 财政本地化包,支持第一阶段 QR 码。 |
| 沙特阿拉伯 – 会计报表 | [l10n_sa_reports] | 沙特阿拉伯的会计报表。 |
| 沙特阿拉伯 – 电子发票 | [l10n_sa_edi] | 启用 ZATCA 第二阶段 API,满足电子发票合规要求。 |
| 沙特阿拉伯 – 电子发票(简化) | [l10n_sa_edi_pos] | 通过 POS 实现电子发票。 |
| 沙特阿拉伯 – 销售点(POS) | [l10n_sa_pos] | 为 POS 发票添加合规字段和行为。 |
| 沙特阿拉伯 – 预扣税 | [l10n_sa_withholding_tax] | 强制安装 付款预扣税 模块。 |
:::note 注意
本地化的核心模块会随本地化一起自动安装,其余模块可手动 安装 </applications/general/apps_modules>。
:::
:::seealso 沙特阿拉伯工资单本地化文档 <../../hr/payroll/payroll_localizations/saudi_arabia> :::
本地化概览 {#localizations/saudi-arabia/loc-review}
沙特阿拉伯本地化包确保符合当地财政与会计法规,提供税务管理、财政位置、报表以及符合沙特标准的预设科目表等工具。
本地化包的关键特性:
../accounting/get_started/chart_of_accounts:符合沙特法规的预设科目结构localizations/saudi-arabia/taxes:预配置税率(15% 标准增值税、零税率、免税等)../accounting/taxes/fiscal_positions:依据客户/供应商登记状态自动调整税务预扣税 <localizations/saudi-arabia/withholding-taxes>:预设适用服务类别的预扣税规则localizations/saudi-arabia/tax-reporting:自动化税务报表电子发票 (ZATCA) <localizations/saudi-arabia/zatca>:符合沙特政府要求的电子发票集成
税种 {#localizations/saudi-arabia/taxes}
沙特本地化预配置了销售、采购和预扣 税种 <../accounting/taxes>:
标准增值税 (15%):对王国内大多数商品与服务适用。供应商对销售收取 15% 增值税(输出税),并可抵扣业务采购产生的增值税(输入税)。
:::example 适用范围:商业销售、零售商品、电信服务、非免税私立教育、非免税私立医疗等。 :::
零税率增值税 (0%):税率为 0%,但供应商可全额抵扣与该供应相关的输入税。
:::example
- 出口:向非 GCC 居民或境外消费的货物/服务
- 国际运输:客货国际运输及相关服务
- 特定商品:符合 ZATCA/卫生部规定的合格药品与医疗设备
- 住宅物业:首次向沙特公民提供的新住宅建筑,金额 ≤ 1,000,000 SAR(有特定条件)
- 投资金属:99% 以上纯度的金、银、铂金(用于投资)
:::
免税交易:不属于增值税征收范围,供应商既不收取增值税,也不能抵扣对应的输入税。
:::example
- 金融服务:贷款利息、信用提供、活期/定期/储蓄账户、货币或证券转移、寿险等
- 房地产:住宅物业的纯租赁
:::
进口增值税:对从非 GCC 国家进口到沙特的商品征收增值税,通常按 15% 计税,并在海关缴纳。
:::important 重要
在为发票分配 折扣 <../../sales/sales/products_prices/prices/discounts> 时,需在全局折扣行上加收 15% 税,以符合 ZATCA 规定。
:::
反向收费机制 (RCM)
- 描述:将增值税的会计责任从非居民供应商转移至本地收货人。
- 机制:增值税登记的收货人需在
增值税申报 <accounting/tax-returns/vat-report>中自行计算并计入输出税和输入税,通常对申报结果净额为零(若输入税可全额抵扣)。 - 适用:主要用于非居民向沙特增值税登记企业提供的 B2B 服务。
预扣税 {#localizations/saudi-arabia/withholding-taxes}
预扣税可采用 总额 或 已扣 两种计税方式:
- 总额预扣(默认):在账单总额基础上额外计算预扣税。例如账单为 115 SAR,系统会在原金额上再加上预扣税,不会减少实际付款金额。
- 已扣预扣:直接从应付金额中扣除预扣税,付款金额已减去预扣额,影响会计分录与应付行的记账方式。
:::note 注意
已扣预扣税默认未启用。若需启用,请进入 会计 → 配置 → 税务 并勾选相应预扣税。
:::
预置的预扣税配置:
- 5% 预扣税:适用于租金、股息、技术/咨询服务、航空及海运运费、利息、保险及再保险保费。
- 15% 预扣税:适用于版税及向非居民支付的其他一般服务费用。
- 20% 预扣税:专用于管理费及特定高价值服务费用。
税务报表 {#localizations/saudi-arabia/tax-reporting}
增值税及预扣税申报 <accounting/tax-returns/vat-report> 提供可税、零税率、免税及预扣交易的详细分解。报表可按期间过滤、与其他期间对比,并可导出为 Excel 或 PDF,确保符合沙特税法。
公司与联系人 {#localizations/saudi-arabia/company-contacts}
为配合 ZATCA <localizations/saudi-arabia/zatca>,公司记录必须完整填写以下字段:
- 公司名称(须与增值税证书完全一致)
- 地址:包括区、楼号、地块编号等全部必填项
- 识别方案:税号、工商注册号、Momra 许可证、MLSD 许可证、700 编号、Sagia 许可证
- 增值税号
- 币种:必须设为
SAR
:::important 重要
所有字段必须准确填写,否则在 ZATCA 对接时会被拒绝。
:::
:::note 注意
上述配置同样适用于所有相关的 联系人 <../../essentials/contacts> 表单。
:::
分支配置 {#localizations/saudi-arabia/branches}
按照 ZATCA 规则 <localizations/saudi-arabia/company-contacts> 设置公司 分支 <general/branches>。
:::important 重要
在分支联系人表单中,VAT 编号必须与总公司相同,分支的 工商注册号 (CRN) 填入 识别方案 字段。
:::
:::note 注意
可使用总公司的销售日记账实现集中开票,或为分支单独创建日记账实现多线程并行开票。
:::
开票语言 {#localizations/saudi-arabia/invoicing-language}
发票可根据地区或客户需求使用不同语言,分为两层设置:
客户层面:在
会计 → 客户 → 客户或POS → 订单 → 客户中为客户指定语言,系统会自动使用该语言生成所有单据。:::important 重要
沙特增值税规定 税票 与 简易税票(以及相应的贷记/借记单)必须使用阿拉伯语,且必须为阿语。发票可以双语(含英文)。 :::公司层面:为满足沙特增值税要求,可在以下位置启用阿拉伯语第二语言:
- 税票:
会计 → 配置 → 设置→ 客户发票 区块 - POS 收据:
POS → 配置 → 设置→ 账单与收据 区块
勾选 海湾合作委员会格式 选项并保存。
- 税票:
与 ZATCA 的电子发票 {#localizations/saudi-arabia/zatca}
ZATCA 电子发票系统旨在为沙特企业的开票流程实现数字化、自动化。
- Phase 2 采用 B2B 清关模型;B2C 场景则在发票上生成 QR 码并向 Fatoora 报告端点上报。
- B2B 场景开具 税票,B2C 场景开具 简易税票。
:::seealso ZATCA 电子发票官方页面 :::
步骤流程 {#localizations/saudi-arabia/step-by-step}
对接 ZATCA(Phase 2)时有三种模式:
- Sandbox:预置的测试环境,用于快速模拟集成。
- Simulation (Pre‑Production):用户自定义的预生产环境。
- Production:正式线上环境。
Sandbox {#localizations/saudi-arabia/sandbox}
:::tip 提示
在 Sandbox 环境中,公司的 VAT 编号使用 399999999900003。
:::
- 设置数据库
会计 → 配置 → 设置→ 沙特电子发票 区块,将 ZATCA API 模式 设为 Sandbox。 - 核对公司信息:确保公司资料完整。
- 上报销售日记账:
会计 → 配置 → 日记账→ 打开 Sales,在 ZATCA 标签页点击 Onboard,系统会自动填入 6 位 OTP,点击 确认。 - 发票测试:创建并确认客户发票,出现蓝色横幅后点击 立即处理,确认 API 返回
Action Successful。
Simulation (Pre‑Production) {#localizations/saudi-arabia/simulation}
- 复制正式库并在设置中将 ZATCA API 模式 改为 Simulation (Pre‑Production)。
- 核对公司信息。
- 上报销售日记账:同上,OTP 需从 Fatoora Simulation Portal 获取。
- 发票测试:同上。
注意:Simulation 模式下的发票不具备法律效力。
Production {#localizations/saudi-arabia/production}
- 在正式库的 ZATCA API 模式 设为 Production。
- 核对公司信息。
- 上报销售日记账:OTP 从 Fatoora Production Portal 获取。
- 发票同步:同上。
注意:每个 Sales 日记账需单独上报。若不再使用,请在 Fatoora 门户中撤销对应解决方案。
:::warning
- 切换到 Production 并提交发票后,无法再回到 Sandbox 或 Simulation。
- OTP 在 60 分钟后失效,需要重新生成。 :::
发票提交至 ZATCA {#localizations/saudi-arabia/invoice-submission}
发票提交后,API 会在聊天窗口返回结构化响应信息。
[202] BR-KSA-F-13 : [BR-KSA-F-13] - 请重新检查其他卖方/买方 ID(BT-29 或 BT-46),其值无效。常见返回码及处理方式:
| 代码 | 说明 |
|---|---|
| 200 – Action Successful | 无需操作。 |
| 202 – Action Successful (with Warnings) | 记录警告,尽快修正;警告可能在未来转为拒绝。 |
| 303 – Clearance Switched Off | 使用报表流程提交。 |
| 400 – Action Failed (Rejected) | 查看错误详情,修改后重新提交。 |
| 401 – Unauthorized | 检查凭证与密钥,重新提交。 |
| 413 – Payload Too Large | 缩小发票负载后重发。 |
| 429 / 500 / 503 / 504 | 服务器或请求限流错误,重新发送。 |
聊天窗口的颜色指示:
- 绿色:发票已成功接受,完全合规。
- 黄色:已接受但带警告,仍具法律效力,需整改。
- 红色:被拒绝,需纠正后重新提交。
重要:被 ZATCA 拒绝的发票会保持在 Rejected 状态,不能视为合法发票。若因系统故障或紧急情况导致无法生成电子发票,请及时通过官方渠道通知 ZATCA,问题解决后再重新提交。
QR 码验证 {#localizations/saudi-arabia/qr-code-verification}
使用官方 ZATCA App 扫描发票上的 QR 码进行验证:
- 打开 App,点击 服务 → 电子发票验证 → 开始服务。
- 扫描发票 QR 码即可查看验证结果。
注意:验证结果不显示货币符号,金额仅为纯数字。B2B 发票若关联联系人,将走清关 API。
借/贷记单 {#localizations/saudi-arabia/debit-and-credit-notes}
创建 贷记单 或 借记单 时,需要在 ZATCA Reason 字段中选择 ZATCA 批准的原因:
- 供应后取消或中止(全部或部分)
- 供应内容实质性变更导致增值税变化
- 供应价值变更(双方事先约定)
- 商品或服务退款
- 销售方或买方信息变更
:::tip 提示
ZATCA Reason 同时出现在 其他信息 选项卡中。
:::
注意:若借/贷记单与原发票无关联,请在
Customer Reference字段填写原发票号。
预付款(预收款) {#localizations/saudi-arabia/advance-payments}
按照 Z