在线开票处理

在线开票交易。打开 (AAS390) 中执行在线开票,在这个流程中会创建客户发票交易的 XML 文件,用于传输到税务机关。

匈牙利税务机关要求匈牙利纳税人使用的发票软件必须与权威机构直接进行数据传输,其中销售发票数据必须在准备开票后立即以 XML 格式实时报告,无需人工干预。为了满足这一要求,以及未来其他国家/地区的类似要求,我们开发了在线开票的功能。

此过程描述了如何在在线开票交易。打开 (AAS390) 中执行在线开票,在这个流程中会创建客户发票交易的 XML 文件,用于传输到税务机关。

限制

  • 此功能目前仅可用于向匈牙利税务机关报告。
  • M3 Business Engine 到税务机关的数据传输需要 Local.ly 工具,“税务连接器”。此工具目前仅适用于匈牙利。
  • M3 Business Engine 版本 15.1.3 和 15.1.4 中,FBM 可用于从匈牙利税务机关向 M3 BE 的数据传输,以便根据权威机构对 XML 文件的验证结果来更新发票的状态。当前,M3 Business Engine Cloud Edition 没有相应的解决方案来处理来自权威机构的此类响应。但是,可以使用 API AAS390MI(交易 UpdInvStatus)来手动更新发票状态。
  • 在线开票中仅包含在以下功能中创建的客户发票:
    • 客户订单发票。打印 (OIS180)(FAM 功能 OI20)
    • 客户发票。输入 (ARS100)(FAM 功能 AR10)
    • 客户发票。手动输入 (ARS120)(FAM 功能 AR20)
    • 固定资产。销售 (FAS130)(FAM 功能 FA50)
    • 内部发票。创建 (MFS100)(FAM 功能 MF01)
    • 维护发票。打印 (COS180) (FAM 功能 CO20)
    • 项目发票。打印 (POS180)(FAM 功能 PO20)
    • 服务订单发票。打印 (SOS180)(FAM 功能 SO20)

    通过其他功能创建的其他客户发票记录不包括在税务机关的在线开票中。

  • 对于每个凭证号,在线开票中只能处理一张客户发票。因此,使用在线开票功能的客户应避免使用以下功能:

    客户发票。手动输入 (ARS120) 中更正发票的更正方法 2=“贷记所有行”,此方法可使用相同的凭证编号创建贷方票据和新的借记发票。

  • 在线开票中不包括通过凭证。冲销 (GLS900) 取消了的发票。
  • 在已支付定金的情况下,租赁发票可被权威机构接受但有警告。支付租赁发票时将使用所托收的定金,这意味着将从所托收的定金中扣除租赁费用金额。发出警告是因为所托收的定金始终不含增值税,从定金中扣除的租赁金额将收取增值税。租赁发票的总金额为 0。

结果

  • 通过发放发票时直接创建的 XML 文件,将满足在线开票前提条件的发票报告给税务机关。不满足在线开票前提条件的发票不会报告给税务机关。
  • 对照税务机关发布的架构验证 XML 文件。
  • XML 文件通过 Local.ly 发送到税务机关。
  • 在线开票交易。打开 (AAS390) 中列出了满足在线开票前提条件的发票。
  • 通过 (GLS040) 进行在线开票处理的发票在 (AAS390) 中获得状态 20=“已自动创建 XML 文件”。
  • 在 (AAS390) 中手动添加的发票,在 (AAS390) 中获得状态 15=“手动验证”。
  • 通过 (AAS390) 中的相关选项 9=“创建 XML 文件”手动为其创建 XML 文件的发票,在 (AAS390) 中获得状态 25=“已手动创建 XML 文件”。
  • 当 Local.ly 已将 XML 文件发送给税务机关后,可以在 (AAS390) 中将发票的状态设置为 30=“已发送 XML 文件”。
  • 税务机关验证 XML 文件时,如果验证成功,则可以在 (AAS390) 中将发票的状态设置为 90=“已接受 XML 文件”。如果在 XML 文件内容中发现错误,则发票的状态可以设置为 40=“已拒绝 XML 文件”。如果 XML 文件已接受但带有警告,则发票的状态可以设置为 80=“已接受 XML 文件但有警告”。
  • 如果 XML 文件在税务机关的门户上被技术取消,则可以在 (AAS390) 中将发票的状态设置为 50=“无效的 XML 文件”。

准备工作

本节描述了用于在线开票的最重要设置。

在线开票设置

设置 - 在线开票 (AAS900) 中,为在线开票定义了设置。根据国家/地区代码进行设置,指的是要向税务机关报告在线开票的国家/地区。

在线开票设置存储在 FONINS 表中(在线开票设置)。

注意

目前,只能在匈牙利进行此设置(针对在国家/地区。打开 (CRS045)中使用 ISO 代码“HU”或“HUN”定义的国家/地区代码)。提供有关 (AAS900) 中匈牙利设置的更多信息。

请参阅匈牙利的在线开票处理

注意

我们不建议在发放发票时使用空白分部,但是这样做,仍应创建用于在线开票报告的 XML 文件。为了能够处理使用空白分部时发放的发票的在线开票,用户必须在 (AAS900) 中为空白分部定义“虚拟记录”。可以为任何主要国家/地区代码定义此记录,因为它仅用于 (AAS900) 中存在在线开票设置的初始控制。开票分部发票的主要国家/地区代码的实际设置稍后仍可在工作流中控制,以确保根据设置进行在线开票报告。

客户订单开票的设置

每个发票在总账中必须有一个单独的凭证号。为此,必须在设置 - 客户订单开票 (CRS722) 中启用参数“单独凭证号”。

由于应在发放发票后立即创建在线开票报告,因此建议在 (CRS722) 中启用参数“直接转入财务会计”,而不要使用客户订单发票。后处理 (OIS196) 更新总账和应收账款。

应收账款附加信息

应收账款附加信息。更新 (ARS950) 中使用 F14=“标准”重新生成可用附加信息号的标准列表。因此,新的附加信息号将显示在列表中。

遵循以下步骤

  1. 设置 - 在线开票 (AAS900) 中定义在线开票的设置,用于为要使用在线开票的国家/地区定义的国家/地区代码。

  2. 通过 (AAS900) 中启用的其中一个 FAM 功能来发放客户发票,例如通过客户订单发票。打印 (OIS180)(FAM 功能 OI20)。如果发票满足在线开票的前提条件,则会在 MvxFileTransfer 文件夹(或 (AAS900) 中定义的子文件夹)中创建 XML 文件,并在在线开票交易。打开 (AAS390) 中显示发票。

  3. 使用 (AAS390) 中的选项 5=“显示”来显示发票的详细信息,例如客户、发票日期、发票金额、以主要国家/地区货币表示的增值税总额、XML 文件的文件名以及反映了 XML 文件处理的发票状态。

  4. 如有需要,可以根据税务机关的反馈,手动或由 FBM 使用 API AAS390MI(交易 UpdTransID)来为 (AAS390) 中的发票更新字段“交易 ID”(TRNI)。“交易 ID”可以是与税务机关进行通信时使用的标识号。

  5. 要为已发放的发票创建 XML 文件,首先使用选项 1=“创建”将发票添加到 (AAS390) 中,然后使用相关选项 9=“创建 XML 文件”创建 XML 文件。

  6. 通过使用 API AAS390MI(交易 UpdInvStatus),可以如下更新 (AAS390) 中发票的状态:

    • 当 Local.ly 已将 XML 文件发送给税务机关时,通过将“消息指示符”(输入字段 BSBF)设置为“已接收”或“处理中”,以在 (AAS390) 中将发票的状态设置为 30=“已发送 XML 文件”。
    • 税务机关验证 XML 文件时,如果验证成功,则可以通过将“消息指示符”(输入字段 BSBF)设置为“完成”,以在 (AAS390) 中将发票的状态设置为 90=“已接受 XML 文件”。
    • 如果在 XML 文件内容中发现错误,则可以通过将“消息指示符”(输入字段 BSBF)设置为“已中止”,并在“阻止验证错误代码”(输入字段 BVEC)输入错误代码,以将发票的状态设置为 40=“已拒绝 XML 文件”。
    • 如果 XML 文件已接受但带有警告,则通过将“消息指示符”(输入字段 BSBF)设置为“完成”,并在“阻止验证错误代码”(输入字段 BVEC)输入警告代码,以将发票的状态设置为 80=“已接受 XML 文件但有警告”。
  7. 如有需要,也可以在 (AAS390) 中使用相关选项 9=“创建 XML 文件”为已被税务机关拒绝或接受但具有警告的发票创建 XML 文件。

  8. 如有需要,在权威机构解决了警告原因后,可以在 (AAS390) 中使用相关选项 8=“将状态提升为接受 XML 文件”将发票的状态从 80=“已接受 XML 文件但有警告”更改为 90=“已接受 XML 文件”。

  9. 如果税务机关的门户网站上的 XML 文件被技术取消,则可以在 (AAS390) 中使用相关选项 7=“将状态设置为无效的 XML 文件”将发票状态更改为 50=“无效的 XML 文件”。

  10. 如有需要,可以使用选项 4=“删除”来删除 (AAS390) 中选定的发票。这仅适用于:

    • 已在 (AAS390) 中手动添加,但尚未为其创建 XML 文件的发票。
    • XML 文件已被拒绝的发票。
    • XML 文件被技术取消的发票
    • XML 文件已接受或已接受但有警告的发票。

解决方案概述

以下图表显示了为在线开票创建的 XML 文件以及在线开票功能中使用的程序和表的处理过程。

处理发票数据的批作业

由于要求立即报告发票数据(而不是每天、每周或每月分批报告),因此 (GLS040) 中的作业将用于触发所有处理客户发票记录(包括 TRCD=10)的作业。

如果满足以下条件,则 (GLS040) 作业将在工作表 FONINW(在线开票工作表)中为每个正在处理的客户发票创建一条记录:

  • 在 (AAS900) 中找到发票的主要国家/地区代码的设置
  • 凭证号不等于零
  • 程序名称不是“GLS900”(用于冲销凭证)
  • 客户发票的 FAM 功能是 (AAS900) 中为主要国家/地区代码选择的 FAM 功能之一。

如果已将记录添加到工作表 FONINW,则 (GLS040) 提交单独的批作业 (AAS395) 以进行进一步处理。批作业根据前提条件验证客户发票,例如,增值税金额等于还是超过 (AAS900) 中定义的增值税额限制。如果发票满足前提条件,则在交易表 FONINT(在线开票交易)中创建新记录,创建 XML 文件名,并调用 (AAS391) 来创建 XML 文件内容。

XML 文件名由公司号码 (CONO)、分部号 (DIVI)、主要国家/地区代码 (BSCD)、作业号 (BJNO)、交易号 (TRNO) 组成,并以“.xml”结尾。例如,136510HU_1234567890123456780000001.xml

(AAS391) 用于根据客户发票的来源从 M3 BE 中的不同表中检索 XML 文件内容。有关 XML 文件结构的详细信息,请参阅匈牙利的在线开票处理 XML 结构。每个客户发票都会创建一个 XML 文件,并将该 XML 文件放置在 (AAS900) 中选择的 MvxFileTransfer 文件夹中。

Local.ly 持续监控 MvxFileTransfer 文件夹,并且在该文件夹中找到 XML 文件后,会将该文件自动发送给税务机关。

(AAS390) 中的在线开票交易

在线开票交易。打开 (AAS390) 中列出了满足在线开票前提条件并已添加到交易表 FONINT 中的发票。在 (AAS390) 中,选项 5=“显示”可用于显示发票的详细信息,例如客户、发票日期、发票金额、以主要国家/地区货币表示的增值税总额、XML 文件的文件名以及反映了 XML 文件处理的发票状态。发票的状态会在在线开票处理过程中自动更新,或通过 API AAS390MI(交易 UpdInvStatus)进行更新。下文将进一步介绍在流程执行期间设置的状态:

在 (AAS390) 中,用户还可以使用相关选项 11=“显示发票”来打开“客户发票。独立显示”(ARS215),其中会显示所选发票的所有交易,包括发票交易和付款交易(如果有)。

(AAS390) 中的发票可以具有以下状态:

10 – 自动验证

15 – 手动验证

20 – 已自动创建 XML 文件

25 – 已手动创建 XML 文件

30 – 已发送 XML 文件

40 – 已拒绝 XML 文件

50 - 已取消 XML 文件

80 – 已接受 XML 文件但有警告

90 – 已接受 XML 文件

如果发现发票符合前提条件,并由 (AAS395) 将其写入交易表 FONINT,则状态将设置为 10=“自动验证”。之后,由 (AAS391) 自动创建 XML 文件,然后将状态设置为 20=“已自动创建 XML 文件”,并将 XML 文件名添加到交易表 FONINT 中的发票记录中。在 Local.ly 与税务机关进行通信期间,可以通过 API AAS390MI(交易 UpdInvStatus)更新状态 30=“已发送 XML 文件”、40=“已拒绝 XML 文件”、80=“已接受 XML 文件但有警告”和 90=“已接受 XML 文件”。

当 Local.ly 已将 XML 文件发送给税务机关时,权威机构将发送一条回复,表明已收到 XML 文件。在此阶段,可以使用 API AAS390MI(交易 UpdInvStatus)将交易表 FONINT 中的发票更新为状态 30=“已发送 XML 文件”。

如有需要,可以根据税务机关的反馈,手动或由 FBM 使用 API AAS390MI(交易 UpdTransID)来为 (AAS390) 中的发票更新字段“交易 ID”(TRNI)。“交易 ID”可以是与税务机关进行通信时使用的标识号。

当权威机构验证了 XML 文件的内容后,权威机构会发送另一条回复。同样,在此阶段,可以使用 API AAS390MI(交易 UpdInvStatus)来更新交易表 FONINT 中的发票。如果 XML 文件的内容正确,则发票状态将变为 90=“已接受 XML 文件”。如果在内容中发现错误,则将状态设置为 40=“已拒绝 XML 文件”,并使用“阻止验证错误代码”更新字段“阻止错误代码”(BVEC),通知用户拒绝的原因。如果 XML 文件被权威机构接受但带有警告,则状态设置为 80=“已接受 XML 文件但有警告”,并且字段“阻止错误代码”(BVEC) 已更新为警告代码,通知用户警告的原因。当权威机构解决了警告原因后,用户可以通过在 (AAS390) 中使用选项 8=“将状态提升为接受 XML 文件”来手动将发票的状态提升为 90=“已接受 XML 文件”。

如果税务机关的门户网站上的 XML 文件被技术取消,则可以在 (AAS390) 中使用相关选项 7=“将状态设置为无效的 XML 文件”将发票状态更改为 50=“无效的 XML 文件”。

在 (AAS390) 中,用户可以使用选项 1=“创建”来手动添加发票以进行在线开票处理。例如,如果发票是在实施此功能之前创建的,但用户仍希望向税务机关报告发票,则此功能很有用。在 (AAS390) 中手动添加发票后,将进行相同的验证,正如该发票已通过 (GLS040) 中的工作流自动添加一样。在这种情况下,发票状态设置为 15=“手动验证”。有关确定发票是否应包含在在线开票中的验证将在“发票验证”一章中进一步介绍。

如有需要,用户可以使用 (AAS390) 中的相关选项 9=“创建 XML 文件”来手动开始为所选发票创建 XML 文件。这可用于为手动添加的发票创建 XML 文件。它也可以用于为已被税务机关拒绝或接受但具有警告的发票创建 XML 文件。如果已在 (AAS390) 中手动开始创建 XML 文件,则发票的状态将设置为 25=“已手动创建 XML 文件”。

如果在将 XML 文件发送给权威机构时(例如在 Local.ly 工具中进行处理的过程中)出现问题,则发票记录将在 (AAS390) 中保持状态 20 或 25。由于当发票记录处于状态 20 或 25 时,在 (AAS390) 中不允许使用相关选项 9=“创建 XML 文件”重新创建 XML 文件,因此无法进一步处理发票。在这种情况下,可以使用相关选项 23=“重置状态”将发票记录的状态重置为 15=“手动验证”,这样可允许用户重新创建发票的 XML 文件。状态为 20、25 和 50 的发票记录允许使用相关选项 23=“重置状态”。

用户可以使用选项 4=“删除”来删除 (AAS390) 中的选定发票。但是,只能删除状态为 15=“手动验证”、40=“已拒绝 XML 文件”,50=“无效的 XML 文件”,80=“已接受 XML 文件但有警告”或 90=“已接受 XML 文件”的发票,因为正在在线开票处理中的发票必须存在于交易表 FONINT 中。否则,将无法创建 XML 文件,并且无法将文件名添加到发票记录中。

验证发票

在线开票处理中仅包含符合在线开票前提条件的发票。下面列出了为确定在线开票中是否应包含正在通过 (GLS040) 处理或在 (AAS390) 中手动添加的客户发票而进行的验证。

  • 设置程序 (AAS900) 中必须存在当前分部的设置。如果不存在,则不在当前分部中使用在线开票。
  • 设置程序 (AAS900) 中必须存在用于客户发票的主要国家/地区代码设置。如果不存在,则在当前部门中不对该国家/地区使用在线开票。
  • 凭证号不能为 0。凭证号 0 表示取消 (GLS120) 中的凭证,并且此类凭证不包含在在线开票中。
  • 程序名称 (PGNM) 不能为“GLS900”。程序名称“GLS900”表示 (GLS900) 中的凭证已冲销,冲销的发票不包含在在线开票中。
  • 批号 (BCHN) 不得为 0。在处理 (GLS040) 中的作业期间,每个凭证号(每个发票号)在工作表 FCR040 中获得一个单独的批号。批号稍后在表 FONINW 和 FONINT 中用作交易号 (TRNO)。批号也包含在文件名中,即使在 (GLS040) 中的作业中包含多于一张客户发票的情况下,也能使 XML 文件唯一。
  • FAM 功能必须是在线开票支持的 FAM 功能之一。在线开票仅支持 FAM 功能 AR10、AR20、CO20、FA50、MF01、OI20、PO20 和 SO20。
  • 当前作业号的发票不能已存在于交易表 FONINT 中。从交易工作文件。重启中断的作业 (GLS047)交易工作文件。重启错误作业 (GLS037) 中重新启动作业时需要此控件。
  • 发票必须存在于总账和应收账款中。在调用 (AAS395) 之前,发票首先由 (GLS040) 在 FGLEDG 和 FSLEDG 表中更新。当发票添加到交易表 FONINT 且创建 XML 文件时,(AAS395) 从这两张表中检索信息。
  • 总账中的发票必须存在增值税信息。

    (AAS395) 和 (AAS391) 从 FGLEDG 表中的凭证中检索增值税信息。此信息既可用于根据 (AAS900) 中的设置来验证发票,又可用于 XML 文件中元素的填充。该信息涉及增值税额、增值税百分比、增值税基额、增值税登记号等。首先,从具有交易代码 (TRCD) 11 和增值税账户类型 (AT04) 1 或 2 的增值税交易中检索增值税信息。如果在总账中找不到凭证的此类增值税交易,则从收入交易中检索增值税信息,并通过使用交易代码 (TRCD) 11 和增值税账户类型 (AT04) 3-9 进行标识。

如果在 (AAS390/B) 上手动添加了客户发票,则将执行上述所有验证,就像通过 (GLS040) 自动添加的发票一样。但是,存在以下差异:

  • 要确定发票是否已冲销,请检查表 FGLEDX 中包含交易代码 (TRCD) 10 的发票交易的附加信息。如果找到总账附加信息类别 025 或 036,则表明发票已冲销。
  • 如果交易表 FONINT 中已经存在该发票,仍然可以在 (AAS390) 中手动添加该发票,但是 (AAS390/E) 上会显示警告消息。

更正发票

例如,可以在客户订单发票。更正或贷记 (OIS380) 中创建更正发票,该程序可通过在发票。显示 (OIS350)客户发票。手动输入 (ARS120) 中的相关选项 14=“ 更正/贷方”访问。如果使用更正方法 1,则仅创建一份更正发票,其中包含对原始发票的更正。如果使用更正方法 2,则会创建两份更正发票:冲销原始发票的贷方票据和新的借记发票。

对于通过更正方法 1 创建的更正发票,应收账款附加信息类别 235 保存有关原始发票号和原始发票年份的信息。同样,对于原始发票,应收账款附加信息类别 236 包含有关更正发票号和更正发票年份的信息。

对于通过更正方法 2 创建的更正发票,贷方票据和新借记发票都包含应收账款附加信息类别 235 中有关原始发票号和原始发票年份的信息。原始发票已更新,同时引用了应收账款附加信息类别 236 中的贷方票据(已冲销原始发票)和新的借记发票。这意味着将出现两次原始发票的此附加信息类别。

注意

如果在 (ARS120) 中使用了更正方法 2,则贷方票据和新借记发票都将张贴在相同的凭证号上,在线开票功能不支持此凭证号。因此,使用在线开票功能的客户不应在 (ARS120) 中使用此方法。但是,在 (OIS380) 中,更正方法 2 将创建两个凭证号,因此所有客户都可以使用此功能。

例如,可以在 (ARS120) 中创建贷方票据,或者在客户订单。打开 (OIS100) 中通过贷记订单创建贷方票据。通过引用原始发票号和年份,例如 (ARS120/E) 或 (OIS100/G),可以为应收账款附加信息类别 255 中的贷方票据创建对原始发票的引用。在这种情况下,原始发票在应收账款附加信息类别 256 中保存有关贷方票据和贷方票据年份的信息。

要确定发票是否正在更正较早的发票,请使用应收账款附加信息类别 235(用于更正发票)和 255(用于贷方票据)。如果客户发票。显示附加信息 (ARS216) 中的发票存在此类附加信息类别,则可在字段应收账款附加信息中找到原始发票号和原始发票年份。

对于原始发票,应收账款附加信息类别 236 包含有关更正发票号和更正发票年份的信息。同样,如果原始发票已通过贷方票据更改,则应收账款附加信息类别 256 保存有关贷方票据和贷方票据年份的信息。

如果在线开票中包括更正发票,则有关原始发票号和原始发票年份的信息将在交易表 FONINT 的 OIVR 和 OINY 字段中更新,并显示在屏幕 (AAS390/E) 上。

拆分到期日期

如果已将使用的付款条件设置为到期日分割,则在客户订单发票。打印 (OIS180) 中发放发票时,应收账款中会创建多个发票。在这种情况下,这些发票应作为一份发票一起报告在 XML 文件中。为了标识初始发票号,使用了 (ARS216) 中的应收账款附加信息类别 228。

示例:通过启用参数“到期日分割”已在付款条款。打开 (CRS075) 中为到期日分割定义付款条款。

根据付款条款。打开详情 (CRS074) 中的设置,发票分为两部分,分别占发票金额的百分之 70 和 30。第一部分应于发票日期后 15 天到期,第二部分应于发票日期后 30 天到期。

使用此付款条件在 (OIS180) 中对客户订单开票,然后可以在发票。显示 (OIS350) 中找到发票 2018100000021。

在应收账款中更新后,创建了两个发票,其发票号从内部发票序列。打开 (MFS165) 中的发票序列号 4 中检索:9999999900040 和 9999999900041,具体取决于 (CRS075) 中付款条件的设置。

这两个发票均引用应收账款附加信息类别 228 中的初始发票号。

在 XML 文件中,应报告这两个发票的总数,用于报告的发票号应为 (OIS350) 中显示的初始发票号 2018100000021。

注意

这两个发票都在相同的凭证号上进行过账。这样,加上应收账款中不存在初始发票号,所以无法在 (AAS390) 中手动添加具有到期日期的发票。因此,不应删除 (AAS390) 中此类发票的原始发票记录。相反,如果需要重新创建具有到期日期的发票的 XML 文件,则应首先在 (AAS390) 中使用相关选项 23=“重置状态”将发票的状态重置为 15=“手动验证”,然后可以使用相关选项 9=“创建 XML 文件”重新创建 XML 文件。

冲销的发票

在应收账款中,(AAS395) 仅读取具有交易代码 (TRCD) 10 的发票交易。如果找到一个发票号中有多个 TRCD=10 的交易,则取消该发票并且在 XML 报告中不包含该发票。

如果通过 (GLS040) 处理发票,则可以通过表 FCR040 的 PGNM 字段中的程序名称“GLS900”来识别冲销的发票。

如果通过 (AAS390) 中的选项 1=“创建”处理了发票,则将检查总账附加信息类别 025 和 036。原始发票记录 (TRCD=10) 包含总账附加信息类别 025,并引用冲销凭证号。冲销发票记录 (TRCD=10) 包含总账附加信息类别 036,并引用原始凭证号。如果存在这两个总账附加信息类别中的任何一个,则无法在 (AAS390) 中添加发票。