墨西哥

模块

以下模块会自动安装墨西哥本地化版本:

名称

技术名称

描述

墨西哥 - 会计

l10n_mx

默认 财务本地化套装 为墨西哥本地化添加会计特征,例如:最常见的税种和会计科目表 - 基于`SAT 科目分组代码 <https://www.gob.mx/cms/uploads/attachment/file/151586/codigo_agrupador.pdf>`_。

墨西哥电子数据交换

l10n_mx_edi

包含根据 SAT 发布的技术文档生成和验证 电子单据 所需的所有技术和功能要求。这允许您向政府发送发票(无论是否带附录)以及付款补充信息。

Odoo 墨西哥本地化报表

l10n_mx_reports

为墨西哥电子会计调整报表:包括会计科目表、试算平衡表和 DIOT

墨西哥 - 第13个月试算平衡表

l10n_mx_reports_closing

用于创建结账分录(也称为*第13个月凭证*)所必需。

Odoo 墨西哥 XML 凭证导出

l10n_mx_xml_polizas

允许导出用于强制性审计的日记账凭证 XML 文件。

以下模块是可选的。建议*仅当*满足业务的特定需求时才 安装 它们。

名称

技术名称

描述

墨西哥电子数据交换(高级功能)

l10n_mx_edi_extended

在发票上添加外贸补充信息(向国外销售产品的法律要求)。

墨西哥 - 电子货运指南

l10n_mx_edi_stock

允许您创建*电子货运单*:一种向政府证明您正在通过已签名的电子单据将货物从A地运送到B地的货运提单。它同时也会安装 车队 应用。

Odoo 墨西哥库存/清关本地化

l10n_mx_edi_landing

允许在电子单据中管理与清关成本相关的报关号。

销售订单的 CFDI 4.0 字段

l10n_mx_edi_sale

销售 模块添加额外字段,以符合墨西哥电子发票法规要求。

POS 墨西哥本地化

l10n_mx_edi_pos

POS 模块添加额外字段,以符合墨西哥电子发票法规要求。

电商的墨西哥本地化

l10n_mx_edi_website_sale

电商 模块添加额外字段,以符合墨西哥电子发票要求。

其他资料

工资单模块的相关信息可 在此处 查阅。

视频教程

关于墨西哥本地化的视频教程也已提供。本页面涵盖的基本工作流程和大多数主题均有视频格式,请查看以下内容:

本地化概述

Odoo 的墨西哥本地化模块允许根据 SATCFDI 4.0 版本 的规范签署电子发票,这是自 2022 年 1 月 1 日起的法律要求。这些模块还添加了相关的会计报告,包括 DIOT,支持外贸业务,并支持创建货运指南。

注解

为了在 Odoo 中电子签署任何文档,必须安装“电子签名”应用。

要求

在 Odoo 中配置墨西哥本地化模块之前,必须满足以下要求:

  1. 已在 SAT 注册并拥有有效的 RFC

  2. 拥有有效的 `数字印章证书 <https://www.gob.mx/sat/acciones-y-programas/certificado-de-sello-digital>`_(CSD)。

  3. 选择一个 PAC。目前,Odoo 与以下 PACs 合作:Solución Factible <https://solucionfactible.com/contenido/productos/timbrado/general#dos>、Quadrum <https://cfdiquadrum.com.mx/odoo/> 和 SW Sapien - Smarter Web <https://info.sw.com.mx/sw-smarter-odoo>_。

公司

安装正确的模块后,下一步是验证公司是否配置了正确的数据。请前往 设置 ‣ 用户与公司 ‣ 公司,然后选择要配置的公司。

在打开的表单中输入完整的 地址,包括:邮政编码国家/地区|RFC|(税务编号)。

根据 CFDI 4.0 的要求,公司主要联系人的姓名**必须**与在 SAT 注册的商业名称完全一致,且不包含法律实体缩写。邮政编码 的要求也同样。

重要

从法律角度来看,墨西哥公司**必须**使用当地货币(MXN)。如需使用其他货币,请将 MXN 设为默认货币,并使用 价格表 来代替。

接下来,请前往 会计 ‣ 设置,并滚动到 墨西哥电子发票 部分。在 税务管理服务局(SAT)`下,从下拉列表中选择适用于公司的 :guilabel:`税收制度,然后点击 保存

小技巧

若要测试墨西哥本地化功能,请将公司配置为墨西哥境内的真实地址(包括所有字段)。添加 EKU9003173C9 作为 税务编号,并添加 ESCUELA KEMPER URGATE 作为 公司名称。对于 税收制度,请使用 法人实体通用法

分公司

在使用分支机构时,所有发票信息都将取自总公司,但邮政编码除外。除非在分支机构上设置了 RFC,那么信息将直接取自该分支机构。

分支机构允许用户在同一母公司下建立多个品牌。此外,当因开票目的需要不同的税收制度时,必须为每种制度创建一个分支机构。默认情况下,制度会从母公司继承。但是,如果在分支机构上明确设置了制度,Odoo 将采用适用于该分支机构的制度。

联系人

注解

安装 联系人 应用以访问**联系人**记录。

要创建一个可用于开票的联系人,请前往 联系人 应用并点击 新建。然后,输入联系人姓名、完整的 地址`(包括 :guilabel:`邮政编码省/州国家/地区)以及 |RFC|( 税务编号)。

重要

与公司本身一样,所有联系人必须拥有在 SAT 注册的正确商业名称。还必须在 销售与采购 标签页中添加 税收制度

警告

设置了 |RFC|(税务编号)但未配置 国家/地区,可能会导致发票信息不正确。

为了正确签署发票,请在销售税上设置 因素类型征税对象 字段。

小技巧

RESICO ISR 预扣税和一些 IEPS 税种会自动创建,但该功能默认不激活。要启用它,请前往 会计 ‣ 配置 ‣ 税金

因素类型

因素类型SAT 税金类型 字段均已预装在默认税种中。

对于新税种,请在 会计 ‣ 配置 ‣ 税金 中设置这些字段,然后点击 新建。将 税金类型 设置为 销售。在 高级选项 标签页中,填写 SAT 税金类型因素类型 字段。

Odoo 支持四组 SAT 税金类型增值税所得税特别生产与服务税地方税

如果因素类型是 定额,则无法使用标准计算方法。此时,应将税金计算方式设置为 自定义公式

Example

\[结果 = 数量 * 6.455\]
  • 数量 = 交易中的商品数量

  • 6.455 = 定额值(每单位的固定金额)

  • 仅支持按单位定额,不支持基于其他因素的定额。

小技巧

墨西哥管理两种不同的 0% 增值税以适应两种场景:

  • 对于 0% 增值税,将 因素类型 设置为 税率

  • 对于 增值税免税,将 因素类型 设置为 免税

注解

地方税在 XML 文件中生成于一个单独的节点,这些税款不会由 PAC 验证。

警告

定额和自定义公式需要 使用Python代码定义税金 模块。参见 税金

征税对象

CFDI 4.0 的一项要求是生成的 XML 文件需根据法规处理业务税金的细分。XML 文件中添加了八种不同的可能值:

  • 01:非征税对象:如果发票行不包含任何税金,则自动添加此值。

  • 02:征税对象:这是任何包含税金的发票行的默认配置。

  • 03:征税对象且无需细分:此值只能手动添加。

  • 04:征税对象但无税:此值只能手动添加。

  • 05:征税对象,用于PODEBI的增值税:此值只能手动添加。

  • 06:增值税对象,不结转增值税:当存在 ISR 预扣税且无增值税时,将选择此对象。

  • 07:不结转增值税,需拆分 IEPS:当存在 ISR 预扣税、IEPS 税且无增值税时,将选择此对象。

  • 08:不结转增值税,需拆分 IEPS:此对象只能手动添加。

警告

使用 01、03、04 或 05 中的任意一个值,都将从 XML 文件中移除税金节点。

重要

IEPS 拆分 状态会影响征税对象的行为,这是因为当拆分未发生时,会缺失 IEPS 信息。

地方税

地方税(例如,ISHCedullar)需要一个单独的 XML 节点,并且可能不遵循标准的税金逻辑。

配置地方税时,其名称会出现在地方税补充信息中。如果税率为负值,则视为预扣税;如果为正值,则视为结转税。

IEPS 拆分

默认情况下,Odoo 会在发票中隐藏 IEPS,以便计算增值税的小计包含 IEPS 的金额,这是为了确保不需要它的税收制度不会收到它。

可以通过在每个联系人的 销售与采购 标签页内选中 IEPS 拆分 复选框,使 IEPS 在 XML 中可见。

重要

当使用 电商开票自助开票门户 时,客户将有权决定是否进行 IEPS 拆分。

其他税项配置

墨西哥本地化使用 现金制税金。登记付款时,Odoo 会执行将税金从 现金制过渡账户 转移到发票或账单行上设置的税金记录中 定义 标签页内配置的账户的操作。在此操作中,重新分类税金时,日记账分录会使用一个税基账户:( 899.01.99 基于现金流税基账户)。请勿删除此账户

预扣税

默认情况下,Odoo 包含具有特殊分配的预扣税以处理增值税的分配。

在登记发票时,需添加预扣税及其对应的增值税。两者都必须包含在供应商账单中以确保会计处理的正确性。建议使用 财务位置,以便现金制分录能正确拆分税项分配。

Example

对于一份 10000 MXN 的租赁供应商账单,10.67% 的租赁预扣税对应的是 16% 的 2/3 住宅增值税。必须同时应用这两种税才能正确反映会计信息。

现金制分录中增值税在已付与应付间的拆分。

注解

目前不支持带预扣税的 CFDI。请咨询会计师以获取正确的分配方案。

产品

要配置产品,请前往 会计 ‣ 客户 ‣ 产品。打开现有产品或点击 新建。在 会计 标签页中,设置 UNSPSC 产品类别。产品和类别可以手动设置,也可以通过 批量导入 完成。

注解

所有产品都需要关联一个 SAT 编码,以防止验证错误。

电子发票

PAC凭证

在通过 SAT 处理完您的 私钥(CSD) 后,您必须在开始从 Odoo 创建发票之前,直接向您选择的 认证服务提供商(PAC) 注册。

一旦您在任一提供商处创建了账户,请前往 会计 ‣ 配置 ‣ 设置,并导航到 墨西哥电子发票`部分。在 :guilabel:`授权认证提供商(PAC)`部分,输入您的 |PAC| 名称及您的凭据(:guilabel:`PAC 用户名PAC 密码)。

从会计设置中配置 PAC 凭据。

小技巧

若要在没有凭据的情况下测试电子发票功能,请勾选 墨西哥 PAC 测试环境 复选框,并选择 Solucion Factible 作为 PAC。在测试环境中,无需添加用户名或密码。

.cer 和 .key 证书

公司的 数字证书 必须在 证书 部分上传。要执行此操作,请前往 设置 ‣ 通用设置 ‣ 证书与密钥

管理您的证书 下,点击 密钥`链接以访问 :guilabel:`密钥 列表视图。点击 创建,上传数字 密钥文件`(:file:.key 文件),为密钥添加一个 :guilabel:`名称,并输入 私钥密码

设置 ‣ 通用设置 ‣ 证书与密钥 中,选择 证书 以访问 证书 列表视图。点击 创建,上传数字 证书`(:file:.cer`文件),为证书添加一个 名称,并从下拉菜单中选择上一步创建的 私钥

注解

证书 记录上的 证书密码公钥 字段是可选的。

小技巧

为了测试电子发票,提供了以下 SAT 测试证书:

会计

电子发票

Odoo 中的发票流程基于 SAT 电子发票的附件 20 <http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm>`_ 版本 4.0。

客户开票

要从 Odoo 开具发票,必须使用 标准开票流程 创建客户发票。

当文件处于草稿模式时,可以对其进行更改,某些字段会使用之前在销售订单或联系人上设置的值。

需要审查的字段有:

  • 向公众开具 CFDI。

  • 用途

  • 支付政策

  • 支付方式(如果支付政策未设置为 PPD

小技巧

用途支付政策 和 :guilabel:`支付方式`可以预先在销售订单上设置,也可以针对每张发票在联系人上设置。

支付政策是发票上的一个可选字段,可以手动设置为所需的政策。然而,如果未选择任何政策,Odoo 将根据以下一般规则自动计算政策:

如果预期付款的到期日在当前月份内,该值将设置为 PUE;如果日期超出当前月份,则政策将设置为 PPD

警告

如果未选择支付政策且预期为 PPD 政策,则要么选择一个与当前月份不同的发票 到期日,要么选择意味着更改到期月份的 付款条件`(例如,:guilabel:`30 天15 天,只要它们落在下个月即可)。

单击客户发票中的 Confirm 后,单击 Send 按钮向政府处理发票。确保选中 CFDI 复选框。

CFDI 复选框

从政府收到已签署的文档后,财务流水号 字段将出现在文档上,XML 文件将同时出现在 CFDI 标签页和沟通栏的附件中。

如果在客户联系人记录中配置了电子邮件地址,勾选 通过电子邮件发送 和 :guilabel:`CFDI`复选框会将 XML 和 PDF 文件一起发送。

要在本地下载 PDF 文件,请点击 打印 按钮。

小技巧

点击 更新 SAT 状态 时,发票上的 SAT 状态 字段将确认 XML 文件是否在 SAT 中 已验证。

在测试环境中,将始终显示 未找到 的消息。

警告

如果合作伙伴不包含 国家/地区邮政编码,则开票将被视为向公众开具 CFDI,发票将开给通用客户。但是,如果这些字段留空且用户取消勾选 向公众开具 CFDI 复选框,将出现一个弹出窗口阻止该操作。

贷记单

发票属于单据类型 “I”(Ingreso),而贷记单属于单据类型 “E”(Egreso)。

除了 标准货项通知单流程 外,根据 SAT 的要求,货项通知单和发票之间必须通过财务流水号建立关联。

因此,CFDI 来源 字段会通过 01| 加上原始 UUID(通用唯一标识符) 的财务流水号来添加这种关联。

小技巧

要自动添加 CFDI 来源 字段,请使用发票上的 添加贷方票据 按钮,而不是手动创建。

通常,货项通知单会冲销日记账中定义的主要销售收入科目,但也可以全局为所有货项通知单分配一个科目。要执行此操作,请前往 会计 ‣ 配置 ‣ 设置,并在 默认科目 部分设置 货项通知单 科目。

注解

在默认配置中,货项通知单科目设置为 402.01.01 按通用税率的销售和/或服务的退货、折扣或奖金

供应商账单

供应商账单必须具有财务流水号,报表和付款才能正常工作。如果供应商账单是通过采购应用创建的或手动添加的,只需在沟通栏**作为日志注释**上传发票的 XML 文件,财务流水号将相应更新。请注意,账单必须处于草稿状态才能进行更新。

小技巧

点击 更新 SAT 状态 时,发票上的 :SAT 状态 字段将确认 XML 文件是否已被 |SAT|**验证**,供应商账单也是如此。

其他资料

供应商账单

日记账

必须在数据库上安装模块 EDI for Mexico (Advanced Features) (l10n_mx_edi_extended),才能完成销售日记帐上的 Address Issued 字段。这可确保该销售日记帐以及 global invoices 中的所有发票在生成 CFDI 时使用正确的邮政编码。

要使用同一用户在不同时区的公司内开具发票,必须创建系统参数以确保开具发票时应用正确的时区,因为默认情况下使用用户的时区。

为此,请启用 developer mode 并转至 Settings ‣ Technical ‣ System Parameters。单击 New 创建一个键为 l10n_mx_edi_tz_XX 的新参数,其中 XX 是期刊 ID,并将所需时区设置为值,例如“America/Tijuana”。

付款

付款政策

墨西哥本地化的一项补充是 付款政策 字段。根据 SAT 文档 <https://www.sat.gob.mx/consultas/92764/comprobante-de-recepcion-de-pagos>_,付款有两种类型:

  • PUE (一次性付款)

  • PPD (分期或延期付款)

警告

仅当发票的政策设置为 PPD 时,才会生成付款补充信息。请注意,必须将 付款方式 设置为除 99 - 待定义 以外的选项。

符合 PUE 要求的发票示例。

如果发票的到期日不在当前月份,将默认设置为 PPD

符合 PPD 要求的发票示例。
支付流

这两种情况下,Odoo 中的付款流程 是相同的。主要区别在于,根据法律规定,与 PPD 发票相关的付款需要以 “P”(付款)单据类型发送给政府。

如果付款与 PUE 发票相关,可以通过付款弹窗进行登记,并与相应的发票关联。要执行此操作,请前往 会计 ‣ 客户 ‣ 发票,选择一张发票。然后,点击 付款 按钮打开付款弹窗,设置 付款方式`和其他字段,并点击 :guilabel:`创建付款

其他资料

尽管 PPD 发票的流程相同,但创建 电子单据 的补充要求意味着需要满足一些额外条件才能正确地将单据发送给 SAT

从法律角度看,PPD 发票**必须**包含收到付款的具体 付款方式。因此,付款方式 字段不能设置为 待定义,因此选择该选项时该字段将变为不可见。

注解

如果一个已完全核销的付款与一张具有 财务流水号 的发票相关,则会显示 更新付款 按钮。点击 更新付款 按钮,将自动向政府发送**付款补充信息** XML 文件,并在发票和付款的 CFDI 标签页中显示该文件。

小技巧

虽然这是一种不好的财务实践,但 PUE 付款也可以发送给政府,不过这需要在 CFDI 标签页中点击 :guilabel:`强制生成 CFDI `才能实现。

与发票或货项通知单类似,PDF 和 XML 文件可以发送给最终客户。要执行此操作,请在付款视图中点击 (齿轮) 图标打开操作下拉菜单,然后选择 通过电子邮件发送收据

无论付款创建时是否已核销,都可以通过点击发票上 CFDI 标签页中的 打印 按钮来下载付款的 PDF 文件。

CFDI 标签页上的打印按钮示例。

开票取消

可以取消发送到 SAT 的电子数据交换文件。根据 Reforma Fiscal 2022,自 2022 年 1 月 1 日起,有两项要求:

  • 所有取消请求都需要提供*取消原因*。

  • 发票创建 24 小时后,必须请求客户批准取消。如果 72 小时内未收到回复,取消将自动处理。

发票取消会在 Odoo 中自动更新,但可能需要一些时间。要检查取消状态,只需按 更新 SAT 状态 按钮。

发票取消可以基于以下原因之一进行:

  • 01 - 发票开具有误(有相关单据)

  • 02 - 发票开具有误(无需替换)

  • 03 - 业务未执行

  • 04 - 与全局发票相关的记名业务

要发起取消,请前往 会计 ‣ 客户 ‣ 发票,选择要取消的已过账发票,然后点击 请求取消。接着,根据取消原因,参考 取消原因 01取消原因 02、03 和 04 部分。

小技巧

或者,也可以从 CFDI 标签页请求取消,点击行项目上的 取消

注解

  • 如果在锁定期间请求取消,CFDI 将被取消,但会计凭证不会。

  • 如果客户拒绝取消,发票取消行项目将从 CFDI 标签中删除。

取消原因 01
  1. 在 :guilabel:请求 CFDI 取消 弹出窗口中,从 :guilabel:原因 字段选择 :guilabel:01 - 发票开具有误(有相关单据),然后点击 :guilabel:创建替换发票 以创建新的草稿发票。这张新的草稿发票将替换之前的发票以及相关的 CFDI

  2. Confirm 汇票和 Send 发票。

  3. 返回到初始发票(即您最初请求取消的那张发票)。请注意,被替换为 字段会出现,并引用新的替换发票。

  4. 点击 请求取消。在 请求 CFDI 取消 弹出窗口中,原因 字段会自动选中 01 - 发票开具有误(有相关单据) 选项。

  5. 点击 确认

随后将生成发票取消,并在 CFDI 标签页中显示原因行项目。

CFDI 选项卡中已取消的发票细列项目。

注解

当使用 01 - 发票开具有误(有相关单据) 作为取消原因时,财务流水号 字段中会出现 04| 前缀。这是 Odoo 用于完成取消操作的内部前缀,并不意味着 取消原因是 04 - 与全局发票相关的记名业务

取消原因 02、03 和 04

请求 CFDI 取消 弹出窗口中,选择所需的取消 原因确认 取消。

确认后,将生成发票取消,并在 :guilabel:`CFDI`标签页中显示原因行项目。

注解

如果 SAT 状态 变回**已验证**,可能是由于以下三个原因之一:

  • 该发票在 SAT 网站 <https://www.sat.gob.mx/home>_ 上被标记为*不可取消*,原因是它具有有效的相关单据:要么是另一张通过 CFDI 来源 字段链接的发票,要么是一份付款补充信息。如果是这种情况,您需要先取消任何其他相关单据。

  • 取消请求仍在由 SAT 处理中。如果是这样,请等待几分钟再试。

  • 最终客户需要在其 税务信箱 中拒绝或接受取消请求。这可能需要长达 72 小时,如果取消请求被拒绝,您将需要重复此过程。

对于取消原因**02**、0304创建替换发票 按钮将被 确认 按钮取代,该按钮会立即请求取消。

当前发票的 状态 和 :guilabel:`取消原因`均可在 :guilabel:`CFDI`标签页中找到。

具有 CFDI 来源的旧发票。
付款取消

要取消 付款补充信息,请转到相关发票的 CFDI`标签页,然后点击付款补充信息行上的 :guilabel:`取消

与发票类似,前往付款单并点击 更新 SAT 状态,以便将 SAT 状态状态 更改为 已取消

注解

与发票一样,在创建新的付款补充信息时,可以通过在 CFDI 来源 ` 字段中添加 `04| 加上财务流水号,来建立与原始单据的关联。

此操作会取消发票,并将 原因 标记为 01 - 发票开具有误(有相关单据)

开票特殊用例

CFDI 关联

有时需要将当前单据与先前已签署的 CFDI 建立关联,为此只需在发票的 CFDI 来源 字段中填写关联信息,共有 7 种可能的值:

  • 01:货项通知单

  • 02:相关单据的借记通知单

  • 03:先前发票或货物转移的退货

  • 04:替换先前的 CFDI

  • 05:先前已开具发票的货物转移

  • 06:基于先前转移生成的发票

  • 07:预付款应用的 CFDI

小技巧

格式为:关联类型 |UUID1, UUID2, …., UUIDn,可以添加多个关联类型。

Example

以下是包含两个关联的示例:

04|042FE739-7B45-4D64-B26D-360000876D83,
07|A164BAF8-8016-428C-A422-D9BD2F68F6A0,CEAD9433-3B77-4270-85BF-AC2519587514
  • 第一部分具有关联类型**04**和**1 个 UUID**

  • 第二部分具有关联类型**07**和**2 个 UUID**

此外,任何组合也将在已签署的 PDF 上可见。

具有 3 个关联的 PDF 示例。
多币种

墨西哥的 主货币 是 MXN。虽然这对所有墨西哥公司都是强制性的,但可以发送和接收不同货币的发票(和付款)。要启用 多币种 功能,请前往 会计 ‣ 配置 ‣ 货币,然后在 自动汇率 部分将 服务 设置为 [MX] 墨西哥银行。接着,根据您希望更新汇率的频率设置 间隔 字段。

这样,文档的 XML 文件将具有正确的汇率和总金额(外币和墨西哥比索)。

强烈建议为每种货币使用独立的 银行账户

注解

每天自动更新汇率的货币仅为:美元、欧元、英镑、日元和人民币。

折扣

根据法律,发送给政府的电子单据不能包含负数行,否则可能引发错误。因此,当使用 礼品卡忠诚计划 时,后续的负数行在 XML 中将被转换为普通的 折扣

要进行此设置,请前往 销售 ‣ 产品 ‣ 产品 并创建一个名为 折扣 的产品,确保它设置了有效的 税金`(通常为 16% 的 :guilabel:`增值税)。

之后,通过 CFDI 创建并签署发票,并在底部添加`折扣`产品。在 XML 中,Odoo 将折扣平均分配到各行,而任何数学差异将添加到一个舍入产品中。

小技巧

必须为与 礼品卡忠诚计划 相关的每个产品变体创建一个`折扣`和 UNSPSC 产品类别

首付

墨西哥的常见做法是使用 预付款。其主要应用场景是,在商品或服务(或两者)尚未完全确定的情况下,您收到了对应的款项。

SAT 允许两种不同的方式来处理此流程:两种方式都涉及通过 CFDI 来源 字段将所有发票相互关联。

注解

此流程必须安装 销售 应用。

配置

首先,前往 销售 ‣ 产品 ‣ 产品 以创建产品 Anticipo(预付款)并进行配置。产品类型 必须为 服务,并使用 UNSPSC 类别 84111506 开票服务

然后,进入 销售 ‣ 设置 ‣ 开具发票 ‣ 首付,将 Anticipo 产品添加为默认产品。

方法 A

此方法包括创建预付款发票、创建总金额发票,最后为预付款总额创建一张货项通知单。

首先,创建一个包含总金额的销售订单,并从中创建预付款(使用百分比或固定金额均可)。然后,通过 CFDI 签署该单据,并登记付款。

当客户需要最终发票时,再次从同一销售订单创建。在 创建发票 ` 弹出窗口中,选择 :guilabel:`常规发票。确保*Anticipo* 产品的那一行。

小技巧

在墨西哥本地化中使用预付款时,请确保产品的 开票政策`为 :guilabel:`订购数量。否则将创建客户贷项通知单。

接着,复制预付款发票的 财务流水号,并将其粘贴到最终发票的 CDFI 来源 字段中,在值前添加前缀 07|,并通过 CFDI 签署该单据。

最后,为第一张发票创建一张货项通知单。复制最终发票的 财务流水号,并将其粘贴到货项通知单的 CFDI 来源 字段中,添加前缀`07|`。然后,通过 CFDI 签署该单据。

至此,所有电子单据都已相互关联。最后一步是全额支付新发票。在新发票的底部,您可以在 未结清信用 部分找到货项通知单 - 将其添加为付款。最后,通过 付款 弹窗登记剩余金额。

在销售订单中,所有三张单据都应显示为“收款中”。

方法 B

满足 SAT 要求的另一种更简单的方法是只开具首付款发票,并为余款开具第二张发票。这种方法将负数行作为折扣处理。

为此,请遵循与 方法 A 相同的过程,直到创建最终发票。不要删除包含*Anticipo*的行,而是将其他产品的 描述`重命名为包含文本`基于预付款余款的 CFDI。别忘了在最终发票的 CFDI 来源 字段中添加预付款发票的 财务流水号,并在前面加上前缀 07|

最后,通过 CFDI 签署最终发票。

附录与补充信息

可以在 XML 中包含附录和补充信息。要添加,请前往 会计 ‣ 配置 ‣ 附录与补充信息(墨西哥),点击 新建 以输入要注入的代码。可能需要超出标准 Odoo 范围的额外字段。

警告

此部分可能需要技术知识,并可能带来技术债务风险;建议向您的客户经理咨询最佳技术建议。

一旦创建了所需的节点,就可以在每个联系人上选择它们,使其出现在开给该联系人的每张发票上。默认情况下,所有选中的节点将自动添加到每张发票上。

也可以通过在每个发票的 其他信息 标签页中选择所需的节点,从 附录与补充信息 中进行选择,按需添加节点。

小技巧

可以为每个联系人或每张发票添加多个节点。

XML 阅读器

在某些情况下,例如当您在其他软件中或直接在 SAT 上创建发票时,您可能希望将发票上传到 Odoo。XML 阅读器允许您从 XML 文件中提取数据。要执行此操作,请前往 会计 ‣ 客户 ‣ 发票,在列表视图中,点击 上传 按钮选择任意数量的 XML 文件,草稿发票将自动创建。您也可以将文件从电脑拖拽到视图中来完成此操作。

草稿发票将提取 :guilabel:`客户信息`(如果不存在,将创建新联系人)、:guilabel:`产品行`(仅当已存在同名产品时),并计算所有税金和墨西哥本地化特有的额外字段。导入信息将显示在沟通栏中。

警告

根据发票的创建来源,XML 文件中的值可能与 Odoo 计算的总金额不同。**务必**仔细检查以此方式上传的任何文档。

以此方式创建的 客户发票 将能够创建*付款补充信息*,并且可以随时取消。如果您使用 打印 按钮,PDF 文档将包含所有相应信息。

这同样适用于 供应商账单

小技巧

要获取已创建草稿发票的 财务流水号,请将 XML 文件作为日志笔记拖拽到沟通栏中。

CFDI 公开

墨西哥政府要求所有销售的商品或服务都必须有发票支持。如果客户不需要发票或没有 RFC,则必须创建*向公众开具的 CFDI*,也称为”名义”发票。

必须创建一个联系人,并且必须使用特定名称。

如果在销售订单或发票中勾选了 :guilabel:`向公众开具 CFDI `复选框,最终的 XML 将覆盖发票联系人的数据,并添加以下特征:

  • RFC:如果客户是本国客户,则为**XAXX010101000**;如果是外国客户,则为**XEXX010101000**

  • 邮政编码:与公司的邮政编码相同

  • 用途:S01 - 无财务影响

向公众开具 CFDI 复选框

如果最终客户不提供任何详细信息,请创建一个通用的 客户。名称不能是 PUBLICO EN GENERAL,否则会触发错误(例如,可以是`CLIENTE FINAL`)。

警告

默认情况下,如果合作伙伴未设置*国家/地区*或*邮政编码*,则不允许发送发票,但如果 :guilabel:`向公众开具 CFDI `复选框处于激活状态,则不需要此信息。

统一发票

如果在特定时间段结束时(根据您公司的法律需求和偏好,可能从每日到每两月不等),客户仍有未被标记为常规发票或个人*向公众开具 CFDI 发票*的销售业务,SAT 允许创建一张可包含所有业务的单一发票,称为*统一发票*。

注解

此流程必须安装 销售 应用。

设置

Global Invoice Serie 特定于每个分支机构或公司,用于定义全局发票的顺序。要配置它,请转到 Accounting ‣ Configuration ‣ Settings,然后导航到 MX Electronic invoicing 部分。 Global Invoice Serie 字段可以在 Service Tax Administration (SAT) 部分中找到。

MX 公司的会计设置。

小技巧

每个公司/分支机构的默认顺序是 GINV/

销售流程

首先,在 Accounting ‣ Configuration ‣ Journals 中创建一个专用日记帐,以维护用于全局发票的单独序列,全局发票在创建时充当订单。

然后,确保所有需要签署的销售订单具有以下配置:

  • 已启用 :guilabel:`向公众开具 CFDI `复选框

  • 发票状态`标记为 :guilabel:`待开票

完成后,前往 销售 ‣ 待开票 ‣ 待开票订单,选择所有相关的销售订单并按 创建发票。确保禁用 合并开票 复选框,然后点击 创建草稿发票

Odoo 将重定向到发票列表。选择所有发票,在 操作 下拉菜单中选择 过账。再次选择所有已过账的发票,返回 操作 下拉菜单,选择 创建统一发票

在向导中,选择专业会计师指定的 周期,然后按 创建。所有发票应在同一个 XML 文件下签署,并拥有相同的 财务流水号

小技巧

  • 点击 CFDI`标签页中的 :guilabel:`显示,可查看包含所有相关发票的列表。

  • 点击:guilabel:CFDI`标签页中的 :guilabel:`取消,可在 SAT 和 Odoo 中同时取消统一发票。

注解

以此方式创建的统一发票不会包含**PDF 文件**,因为其信息已存储在 Odoo 中,且无需向客户展示。

电子会计(报告)

在墨西哥,“电子会计<https://www.sat.gob.mx/aplicacion/42150/envia-tu-contabilidad-electronica>`_” 是指通过电子手段保存会计记录和条目,并每月通过 SAT 网站输入会计信息的义务。

它由三个主要 XML 文件组成:

  1. 当前正在使用的会计科目表的最新列表

  2. 月度试算平衡表,以及结账分录报告,也称为:第13个月试算平衡表

  3. 总分类账中日记账分录的导出(除非强制审计,否则为可选)

生成的 XML 文件符合 `Anexo Técnico de Contabilidad Electrónica 1.3 <https://www.gob.mx/cms/uploads/attachment/file/151135/Anexo24_05012015.pdf>`_的要求。

除此以外,还可以生成 DIOT:一份涉及增值税的供应商日记账分录报告,可以 TXT 文件格式导出。

注解

要使用这些报告,必须安装以下模块:

  • Odoo 墨西哥本地化报告 l10n_mx_reports

  • 墨西哥 - 第13个月试算平衡表 l10n_mx_reports_closing

  • Odoo 墨西哥XML凭证导出 l10n_mx_xml_polizas

会计科目表第 13个月试算平衡表 报告可在 会计 ‣ 报告 ‣ 试算平衡表 中找到。*DIOT 报告可在 *menuselection:会计 --> 报告 --> 税务报告 中找到。

重要

您发送的报告的具体特点和义务可能会根据您的财政制度而发生变化。在向政府发送任何文件之前,请务必联系您的会计师。

科目表

墨西哥的 会计科目表 遵循基于 SAT 科目分组代码 <http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/codigo_agrupador.pdf>_ 的特定模式。

可以创建任何科目,只要其符合 SAT 的编码分组模式:模式为 NNN.YY.ZZNNN.YY.ZZZ

Example

例如,“102.01.99” 或 “401.01.001”。

会计 ‣ 配置 ‣ 会计科目表 中创建符合 SAT 编码分组模式的新科目时,正确的分组代码会出现在 标签 中,并且该科目会显示在*会计科目表* 报告中。

创建所有科目后,请确保添加了正确的 标签,因为这些标签标明了科目的性质。

注解

不建议使用任何以 0 结尾的章节模式(例如`100.01.01`、301.00.003604.77.00)。这会在报告中触发错误。默认情况下,如果编号稍后会导致问题,Odoo 会将科目标记为黄色,这是为了防止报告提供不准确的数据。

一切设置完成后,请前往 会计 ‣ 报告 ‣ 试算平衡表,点击 :guilabel:`SAT 会计科目表(XML) `按钮,生成包含所有科目的 XML 文件。该 XML 文件可准备上传至 SAT 网站。

试算表

只要添加了正确的 编码组,试算表就会报告账户的初始余额、贷方余额和总余额。

要生成试算平衡表的 XML 文件,请前往 会计 ‣ 报告 ‣ 试算平衡表,选择日期,然后点击 (操作菜单),再选择 SAT (XML)

试算表报告。

注解

Odoo 不会生成 Balanza de Comprobación Complementaria

第 13 个月

另一个附加报告是*第13个月*:一份结账资产负债表,显示了会计年度结束时所做的任何调整或变动。

要生成此 XML 文档,请前往 会计 ‣ 会计 ‣ 日记账分录,并创建一个新凭证。在此处,添加所有需要调整的金额,并平衡每个科目的借方和/或贷方。

完成后,进入 其他信息 标签页,勾选 第13个月结账 字段。如果需要,请前往 会计 ‣ 报告 ‣ 试算平衡表 并选择日期 第13个月,在此处可以查看年度总金额以及日记账分录的所有增减项。要生成 XML 文件,请点击 (操作菜单),然后选择 SAT (XML)

总账

根据法律,墨西哥的所有交易都必须以数字方式记录。由于 Odoo 会自动为所有发票和付款创建底层日记账分录,因此只需导出总账即可满足 SAT 的审计和/或退税要求。

小技巧

可以根据需要按期间或按日记账筛选报告。

要创建 XML,请前往 会计 ‣ 报告 ‣ 总账,点击 (操作菜单),然后点击 XML (Polizas)。接着,从四种 导出 类型中选择:

  • 税务审计

  • 审计认证

  • 退货

  • 赔偿

对于 Tax auditAudit certification,添加 SAT 提供的 Order Number。对于 Return of goodsCompensation,添加 Process Number,也由 SAT 提供。

注解

要查看此报告而不发送它,请使用 ABC6987654/99 作为 Order Number 或使用 AB123451234512 作为 Process Number

DIOT报告

DIOT(Declaración Informativa de Operaciones con Terceros / 与第三方合作的信息性声明)是 SAT 的一项附加义务,其中可贷记和不可贷记付款、预扣税、进口税以及供应商账单中增值税退款的当前状态将提供给 SAT

注解

自 2025 年 7 月起,新的 2025 版报告发布。

与其他报告不同,DIOT 上传到 SAT 提供的包含 A-29 表格的网站。在 Odoo 中,您可以将交易记录下载为可上传到表单的 TXT 文件,从而避免直接捕获此数据。

交易文件包含供应商账单中登记的付款总额,分为相应的 IVA 类型。 VATCountryType of operation 字段对于所有供应商都是必填字段。

要将 DIOT 报告下载为 TXT 文件,请转至 Accounting ‣ Reports ‣ Tax Return。选择所需月份,单击:icon:fa-cog (action menu),然后选择:guilabel:DIOT (TXT)

如果在数据库上创建新税种,则有两种类型的标签,包含 tax 的标签必须进入税种分配,而具有基本名称的标签则位于税种的基础上。增值税的所有行**必须**包含至少一个税格。

DIOT (TXT) 下载按钮。

重要

需要填写每个供应商的 Accounting 选项卡中的 Type of Operation 字段,以防止验证错误。确保外国客户拥有 Country 套装。

有关供应商联系人的 DIOT 信息。

选择 87 - Global Operations 将导致最终 TXT 文件将属于全球运营一部分的所有供应商合并到一个通用增值税下:XAXX010101000

外部贸易

外贸是对普通发票的补充,根据 SAT 法规,在 XML 和 PDF 中为外国客户的发票添加某些值,例如:

  • 收件人和发件人的具体地址

  • 增加一个 关税比例 标签,用于识别产品类型

  • 正确的 :doc:`../accounting/customer_invoices/incoterms`(国际商业术语)

  • 还有更多,例如*原产地证书*和*特殊计量单位*

除了扩展所售商品的描述之外,还可以正确识别出口商和进口商。

自2018年1月1日起,从事A1类出口业务的纳税人必须进行对外贸易。当前CFDI为4.0,而对外贸易目前为2.0版本。

注解

为了使用此功能,必须安装 EDI for Mexico (Advanced Features) l10n_mx_edi_extended 模块。

重要

安装前,请确保您的企业需要使用此功能。如有必要,在安装任何模块之前,请先咨询您的会计师。

创建国外发票时必须勾选 CFDI to public 复选框。

配置

联系人

要配置您的公司对外贸易联系人,请导航至 Accounting ‣ Customers ‣ Customers,删除默认的 Customer Invoices 过滤器,然后选择您的 Company 姓名。 CFDI 4.0 要求要求在公司联系人记录中添加有效的 ZIP 代码,而对外贸易补充则添加了 CityState 也必须有效的要求。所有三个字段必须与 Official SAT Catalog for Carta Porte 一致,否则会产生错误。

警告

CityState 添加到公司的*联系人记录*中,而不是添加到公司记录本身中。

在联系人记录上,还可以填写可选字段 LocalityColony Code。这两个字段还必须与 SAT 中的数据一致。

要配置外国接收客户的联系人数据,请导航至 会计 ‣ 客户 ‣ 客户,然后选择外国客户的联系人。为避免出错,联系人必须填写以下字段:

  1. 整个公司的 地址,包括有效的 ZIP 代码和国外的 国家/地区

  2. 外国 RFC`(纳税识别号),格式正确(例如:哥伦比亚 `123456789-1

  3. Sales & Purchase 选项卡中,激活 Needs external trade? 复选框。

注解

在生成的 XML 和 PDF 文件中,VAT 会自动替换为国外交易的通用增值税:xexx010101000

产品

所有涉及对外贸易的产品都需要四个附加字段,其中两个字段是对外贸易专用的。

  1. 产品的 Reference 必须在 General Information 选项卡中设置。

  2. Inventory 选项卡中产品的 Weight 必须大于 0

  3. 对于对外贸易,必须在 Accounting 选项卡中设置产品的 correct Tariff Fraction

  4. :guilabel:`Accounting`选项卡中的:guilabel:`UMT Aduana`必须设置并与对外贸易的:guilabel:`Tariff Fraction`相对应。

必填的外贸产品字段。

小技巧

  • 如果 Tariff Fraction 的计量单位代码为 01,则正确的 UMT Aduanakg

  • 如果 Tariff Fraction 的计量单位代码为 06,则正确的 UMT AduanaUnits

开具发票流程

在创建发票之前,重要的是要考虑到外贸发票需要将产品价格转换为外币(例如美元)。因此,multicurrency **必须**启用并在 Currencies 部分中激活外币。要运行的正确 Service[MX] Bank of Mexico。要转换产品价格,请以外币创建 pricelist

然后,在 Accounting ‣ Settings ‣ Currency 中设置正确的汇率后,在发票的 Other Info 选项卡中设置 Incoterm 和可选的 Certificate Source 字段。

小技巧

虽然不是强制性的,但如果 CFDI to public 也处于活动状态,信息将会更加完整。

最后,按照与普通发票相同的流程确认发票,并点击:guilabel:`Send`按钮通过CFDI进行签名。

销售点

墨西哥本地化的 Point of sale 改编允许直接从 POS 收银机 创建符合 SAT 要求的发票,并具有创建收据票证的额外好处,该收据票证允许在特殊门户中“自行开票”并创建全球发票。

销售点流程

除了标准 Point of Sale configuration 之外,墨西哥本地化还要求每种付款方式配置正确的 Payment WayRe-invoicing account,以便通过开票门户处理发票的会计处理。

小技巧

默认情况下,Odoo 为现金、信用卡和借记卡创建预配置的付款方式,并将 402.04.01 Re-invoicing 帐户指定为重新开票的默认帐户。

销售点 进行销售时,单击 Customer 按钮创建或选择客户。在这里可以查看客户发票信息(例如 RFCFiscal Regime),甚至可以直接在会话内对其进行修改。

选择客户后,勾选 Invoice 复选框。这将打开一个菜单来选择 Usage 并定义它是否是向公众开具的发票。点击确认,选择支付方式,然后点击验证完成订单。然后下载 PDF,并可以将发票与收据一起通过邮件发送给最终客户。

小技巧

要根据订单创建发票,请转至 Orders 菜单,选择订单,单击 Load Order,然后勾选 Invoice 复选框。这将为 UsageCFDI to Public 打开相同的菜单。

销售点的发票配置。

要自动签署贷项通知单,请在处理 refund 时勾选:icon:fa-file-text-o Invoice 复选框。

注解

退回产品的贷方票据将包含关系类型 03 - Devolución de mercancía sobre facturas o traslados previos

重要

  • 在墨西哥本地化中,POS 会话中的正线和负线不能混合。

  • 如果发生 SAT 验证错误,客户将收到 Pro-Forma invoice

自开票门户

如果最终客户不确定是否希望在销售时生成发票,可以选择使用 QR 码或 URL 创建收据。为此,请按照下列步骤操作:

  1. 转到:menuselection:Point of Sale --> Configuration

  2. 选择 Point of Sale

  3. 滚动到 Bills & Receipts 部分。

  4. 启用 Self-service invoicing

  5. Print 字段设置为 QR codeURLQR code + URL

扫描此二维码或点击 URL 的客户将访问一个菜单,在其中输入收据上提供的五位数代码后,他们可以在其中添加财务信息,包括*使用情况*和*财务制度*。

在会话的日记帐分录上,先前选择的**重新开票科目**将用于在请求发票时处理销售分录的冲销,并用作新发票的销售科目。

其他资料

发票

统一发票

与常规销售订单一样,也可以从 POS 收银机创建全局发票。

为此,请确保不要在付款菜单中选择客户或发票选项并转到 Point of Sale ‣ Orders ‣ Orders。在那里,选择要开票的所有订单,单击:icon:fa-cog Actions 并选择:guilabel:Create Global Invoice

与销售订单一样,选择正确的 Periodicity 并按 Create

这会将 XML 文件附加到每个选定的订单。可以通过转到 CFDI 选项卡下载 XML 文件。如果需要,可以从同一选项卡取消发票。

如果最终需要向客户发送属于全局发票一部分的任何订单,仍然可以通过打开 POS 收银机,单击 (drop-down menu),然后单击 Orders 来发送发票。将 All active orders 过滤器更改为 Paid,选择顺序,然后单击 Invoice 按钮。

注解

全球发票与普通发票一样,只能按实际地址进行分组。这是由 POS 发票日记帐上设置的地址决定的,因此当尝试对两个地址开具发票时,将会出现警告,警告用户存在错误。

电子商务

墨西哥本地化的电子商务改编提供了额外的步骤来创建符合 eCommerceSAT 要求的发票,方法是在**结帐**后检索客户数据,甚至允许在处理付款后签署**自动发票**,以及通过电子邮件向客户发送文件并授予他们从自己的客户门户检索 PDF 文件的权限。

电商流程

在常规结帐过程中,会出现一个新的 Invoicing Info 步骤,可以在其中索取发票或不索取发票。如果选择 No,则会创建 CFDI to Public。如果选择 Yes,则需要 RFCFiscal RegimeUsage 才能获取销售订单中的所有信息,此时其状态将更改为 To Invoice

此外,客户可以决定是否请求 IEPS Breakdown

重要

确保将 UNSPSC code 添加到 shipping product

如果:menuselection:Settings --> Website --> Invoicing`中启用了:guilabel:`Automatic Invoicing,则电子文档将自动签名。

销售

**销售**应用程序包含使开票更容易的字段,而字段本身不会改变销售行为,而是在创建发票时直接复制。

复制的字段是:

  • 付款方式

  • 支付政策

  • CFDI 公开

  • 用途

此外,还可以通过安装 pro-forma module 来预览发票以供客户验证。该模块将上述字段添加到销售订单中,以及:

  • 产品代码

  • 单位代码

  • 财政制度

订阅

在处理订阅时,所有销售字段都用于创建经常性发票。这些文件会自动签名并通过电子邮件发送,并附有 PDF 和 XML,无需额外的手动操作。

重要

订阅应用程序生成的所有发票将始终自动签名,无一例外。

仓库

海关编号

报关单 (Pedimento Aduanero) 是一份财务文件,证明对财务实体 (SAT) 的所有缴款均已支付,包括货物的进出口。

根据CFDI 4.0的`Annex 20 <http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm>`_,在开票货物来自一手进口操作的单据中,需要将:guilabel:`Customs Number`字段添加到涉及该操作的所有产品行中,单据的日期也是如此。

注解

为此,除了 InventoryPurchaseSales 应用程序之外,还必须安装 Odoo Mexico Localization for Stock/Landing l10n_mx_edi_landing 模块。

重要

不要将这一特征与对外贸易相混淆。海关编号与进口货物直接相关,而对外贸易补充则与出口相关。如果需要此功能,请先咨询您的会计师,然后再做任何修改。

配置

为了跟踪特定发票的正确海关编号,Odoo 使用 landed costs。转到 Inventory ‣ Configuration ‣ Settings,并在 Valuation 部分中,确保 Landed Costs 已激活。

小技巧

建议添加 Default Journal 以自动填充到岸成本的必填 Journal 字段,即使仅添加海关编号而不添加 Additional Costs 的到岸成本不会创建日记帐分录。

配置持有海关编号的**货物类型**产品。为此,请创建产品并完成以下三个要求:

  • Tracking 必须**设置为 :guilabel:`By Lots` 或 :guilabel:`By Unique Serial Number` 但**不能 By Quantity

  • Invoicing Policy **必须**设置为 Delivered quantities

  • Valuation by lots/serial numbers **必须**启用。

这将使字段 Customs invoicingAccounting 选项卡上可用。启用该字段以使用此产品的海关编号。

确保产品具有 Product Category 并具有以下配置非常重要:

  • 成本计算方法:选择 FIFOAVCO

  • Inventory ValuationPeriodicPerpetual

注解

无论 inventory valuation 设置为 Periodic (at closing) 还是 Perpetual (at invoicing),该功能都有效。

可储存产品的一般配置。 可存储的产品类别配置。

采购和销售流程

配置产品后,请遵循标准:doc:purchase flow <../../inventory_and_mrp/purchase>

Purchase ‣ Orders ‣ Purchase Order 创建采购订单。然后,确认显示 Receipt 智能按钮的顺序。单击 Receipt 智能按钮并 Validate 收据。

转到 Inventory ‣ Operations ‣ Landed Costs,并创建一条新记录。在 Transfer 中,添加刚刚验证的收据,然后添加 Customs number

小技巧

虽然可以在流程的此阶段添加与海关编号相关的成本,但强烈建议根据海关代理的供应商账单创建到岸成本。了解有关 Landed Costs here 的更多信息。

警告

Customs number 字段一旦设置就不可编辑,也不能重复,但以后可以通过选择不同的到岸成本来修复批次或序列号上的数字。

落地成本清单记录上的海关编号。

指定给特定批次或序列号的海关编号可在其登记处 Inventory ‣ Products ‣ Lots/Serial Numbers 上找到。可以随时编辑 L10N Mx Edi Landed Cost 字段,以修复注册到岸成本时可能发生的任何错误。编辑 L10N Mx Edi Landed Cost 字段会自动更新 Customs number 以及批次名称或序列号。

接下来,创建销售订单并确认。单击出现的 Delivery 智能按钮,仔细检查分配的批次/序列号,确保它们是所需的值,然后 Validate 交货订单。

最后,create an invoice from the sales order,并确认。发票行是根据交货订单的分布创建的,如果选择了多个海关编号,Odoo 将按数量和海关编号拆分发票行。

已确认销售订单产品上的海关编号。

发货指南

Carta Porte 是提单:说明所运货物的类型、数量和目的地的文件。

2024 年 7 月 17 日,该 CFDI 的 3.1 版已针对所有运输提供商、中介机构和货物所有者实施。 Odoo 能够生成文档类型“T”(Traslado),与其他文档不同,它是在交货订单而不是发票或付款中创建的。

Odoo 可以创建带(或不带)地面运输的 XML 和 PDF 文件,并可以处理被视为 危险品 的材料。

为了打印 PDF,交货单必须由政府签署,然后可以使用交货单上的 Print Carta Porte 按钮进行打印。

小技巧

PDF 文件包含一个 QR 码,用于为当局验证 CCP 代码。

为了在仓​​库之间运输货物,物流路线必须包含 送货 操作类型。

注解

为了使用此功能,必须安装 Mexico - Electronic Delivery Guide l10n_mx_edi_stock 模块。

此外,还需要安装 InventorySales 应用程序。

重要

Odoo 不支持 Carta Porte 类型文档类型“I”(Ingreso)、空运、火车或海运。

如果需要此功能,请在进行任何修改之前先咨询您的会计师。

配置

Odoo 管理两种不同类型的 CFDI 类型“T”。两者都可以从 incoming shipments or delivery orders 创建。

  • Distance to Destinationless than 30 km 时,使用 No Federal Highways

  • Distance to Destination 超过 30 公里时,使用 Federal Transport

对于无联邦高速公路,除了常规发票的标准要求(客户的 RFC、UNSPSC 代码等)之外,不需要其他配置。

对于*联邦运输*,必须将多种配置添加到联系人、车辆设置和产品中。然后,这些配置将包含在 XML 和 PDF 文件中。

联系方式和车辆

与对外贸易功能一样,公司和最终客户中的 Address 都必须完整。 ZIP 代码、CityState 必须与 Official SAT Catalog for Carta Porte 一致。

小技巧

Locality 字段对于这两个地址都是可选的。

重要

用于递送指南的起始地址设置在 Inventory ‣ Configuration ‣ Warehouses 中。虽然默认设置为公司地址,但您可以将其更改为正确的仓库地址。

此功能需要使用 Fleet 来管理车辆。车辆设置直接在车辆上管理,所有必填字段仅在检查 L10N Mx Is Freight Vehicle 字段后可见。

检查 L10N Mx Is Freight Vehicle 字段会显示 MX Parameters 选项卡,其中需要填写必填字段才能创建正确的交付指南。此外,车辆**必须**包含 License PlateModel YearDriver

小技巧

Vehicle Plate NumberNumber Plate 字段必须包含 5 到 7 个字符。

车辆的主要驾驶员直接在 Driver 字段中设置,并且可以在 Intermediaries 部分添加更多车辆操作员。驱动程序联系人的唯一必填字段是 VATOperator License

送货指南车辆配置。

小技巧

如果车辆是租赁的或需要更多中介机构,可以将其添加到 Intermediaries 字段中。

产品

与常规发票类似,所有产品都必须有 UNSPSC 类别。除此以外,还有两种额外配置,适用于交货指南中涉及的产品:

  • 必须将 产品 设置为 可储存产品 才能创建库存变动。

  • Inventory 选项卡中,Weight 字段必须大于 0

警告

创建将 Weight 设置为 0 的产品的交付指南将触发错误。由于 Weight 立即存储在交货单中,因此需要退回产品并使用正确的值重新创建交货单(和交货指南)。

销售和库存流动

要创建交货指南,请首先创建并确认来自 Sales ‣ Sales Order 的销售订单。单击生成的 Delivery 智能按钮,然后 Validate 进行转账。

状态设置为 Done 后,您可以编辑转账,并在 Additional Info 选项卡中选择 Transport Type

如果使用 No Federal Highways Transport Type,请保存传输,然后单击 Generate Delivery Guide。生成的 XML 可以在聊天中找到。

注解

除了所有产品上的 UNSPSC 之外,使用 No Federal Highways 的交付指南不需要向政府发送任何特殊配置,因为它们是没有交付指南补充的“T”型 CFDI。

如果使用:guilabel:Federal Transport Transport Type,则显示:guilabel:Vehicle Setup`以供选择。 :guilabel:`Gross vehicle weight 取自 Vehicle setup 配置,可以添加额外的 Extra weight 来考虑驾驶员和行李。

注解

Odoo 将使用以下公式计算 Gross vehicle weight

\[车辆总重=车辆重量+(自重+额外重量)/1000\]

每次交付都要求 Distance to Destination (KM) 中的值大于 0。最后,输入 Delivery Date 并单击 Generate Delivery Guide

注解

默认情况下,Scheduled Date 已填充,代表货件离开仓库的时间,Delivery Date 是货件预计到达目的地的时间。这些值在 XML 和 PDF 中声明。

危险隐患

官方 SAT 目录 <http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_carta_porte.htm>`_中,:guilabel:`UNSPSC 类别`中的某些值被视为*危险危害*。在使用 :guilabel:`联邦运输 创建交货指南时,需要额外考虑这些类别。

首先,从 Inventory ‣ Products ‣ Products 选择产品。然后,在 Accounting 选项卡中,使用 SAT 目录中的正确代码填充 Hazardous Material Designation CodeHazardous Packaging 字段。

交货指南危险品产品必填字段。

重要

UNSPSC Category 可能是也可能不是危险(例如 01010101)。如果不危险,请在 Hazardous Material Designation Code 字段中输入 0

MX Parameters 中,同时填写 Environment InsurerEnvironment Insurance Policy。之后,继续常规流程来创建交付指南。

进出口

如果您的 Carta Porte 用于国际运营(出口),则需要考虑一些其他字段。

首先,确保所有相关的 Products 具有以下配置:

  • UNSPSC Category 不能是 01010101 Does not exist in the catalog

  • 必须设置 Tariff FractionUMT Aduana,类似于 external trade 流程。

  • 必须设置 Material Type

然后,在从交货或收据创建 Delivery Guide 时,填写以下字段:

  • Customs Regimes

  • Customs Document Type

  • Customs Document Identification

然后,当为 Customs Document TypeCustoms number 的收据创建 Delivery Guide 时,会出现两个新字段:Customs NumberImporter

小技巧

字段 Customs Number 应遵循模式 xx xx xxxx xxxxxxx。例如,15 48 3009 0001235 文本之间有 两个 空格。