SAP 发票匹配是采购到付款(P2P)流程中的关键闭环步骤,其主要作用在于确保供应商发票与采购订单(PO)及收货记录(GR)在数量、金额和业务信息上保持一致,实现“账实相符、账证相符”。通过该流程,系统可自动生成合规的会计凭证,并为后续付款提供依据。此环节不仅支撑财务核算的准确性,还与采购管理、库存控制等模块紧密集成。以下从操作流程、业务逻辑、系统规则、模块交互以及异常处理五个方面进行详细阐述。
MIRO
一、发票匹配的业务逻辑解析
1. 核心目标
- 数量一致性校验:发票中申报的物料数量不得超过对应采购订单的数量,或已实际收货的数量(具体取决于系统配置)。
- 金额匹配检查:发票总金额应小于等于采购订单总额,或根据已收货量乘以单价计算出的理论应付金额。
- 信息一致性验证:供应商编号、物料编码、税率设置、付款条件等字段需与原始采购订单完全一致。
- 财务合规性保障:生成符合会计准则的记账凭证,准确归集成本或费用科目,并正确确认应付账款余额。
2. 匹配类型的分类及应用场景
| 匹配类型 | 适用场景 | 核心校验逻辑 | SPRO 配置要点 |
|---|---|---|---|
| 二向匹配(2-Way) | 适用于无实物收货流程的采购,如服务类或费用类采购 | 仅需核对发票与采购订单的一致性(数量、金额、供应商) | 物料主数据或采购订单类型未启用“强制收货”(GR Required)选项 |
| 三向匹配(3-Way) | 涉及实物入库的采购场景,如原材料、库存商品采购 | 必须同时比对发票、采购订单与收货单据(GR),三者数量与金额须一致 | 物料主数据或订单类型中启用了“强制收货”标志(默认配置) |
| 四向匹配(4-Way) | 针对需要质量检验的高价值物料或生产用原料采购 | 在三向基础上增加质检合格状态(QI)作为匹配前提 | 需激活 QM 模块并配置“质检强制”与“四向匹配”策略 |
3. SAP 与 Oracle EBS 的差异对比
- SAP 以采购订单(PO)为核心驱动发票校验流程,事务码 MIRO 直接关联 PO 进行匹配;而 Oracle EBS 支持多种触发方式,包括基于收货、费用分配或多维度组合匹配,灵活性更高但管控精细度略低。
- SAP 的“三向匹配”严格绑定采购订单行项目与物料凭证(MSEG)的收货记录,确保每一笔发票都可追溯至具体的收货动作;EBS 则通过“采购接收”与“发票验证”之间的逻辑关联实现匹配,结构较为松散。
- SAP 在发票过账时直接生成会计凭证,实现业务与财务一体化处理;Oracle EBS 需额外执行“创建会计”步骤才能生成正式账务分录,流程分离更明显。
二、发票匹配的标准操作流程(以三向匹配为例)
阶段 1:发票接收与系统准备
线下准备工作:
- 供应商提交纸质或电子形式的发票文件,内容需包含采购订单号、物料名称、数量、不含税金额、税率及总金额等关键信息。
- 采购部门负责审核发票的真实性,包括核验供应商资质、签章有效性,并确认相关采购订单已完成收货(可通过查询工具进行状态核实)。
ME23N
系统前置条件检查:
- 确认采购订单状态为“已部分收货”或“完全收货”(即 EKPO 表中的 STATU 字段不为“未收货”状态)。
- 验证收货凭证已成功过账,且未被冲销(物料凭证 MSEG 中移动类型 BWART = 101)。
- 财务人员收集发票数据,准备录入系统;若使用电子发票,可通过 EDIFACT 或 XML 接口实现自动导入。
MIGO
阶段 2:发票录入与处理(MIRO 主要操作)
1. 前台操作流程(使用事务码 MIRO)
进入发票校验界面后,选择“发票”类型(默认),输入以下必要信息:
- 供应商编号(LIFNR):系统将自动带出供应商全称、付款条款等基础信息。
- 采购订单编号(EBELN):输入后按回车键,系统会加载该订单下的所有行项目,包括物料编码、订购数量、已收货数量及单价。
- 发票日期(REINDT):填写发票开具的实际日期。
- 过账日期(BUDAT):默认为当前系统日期,可根据会计期间调整。
- 发票金额(WRBTR):填写不含税金额,系统将依据税率自动计算税额,需确保与发票所列税额一致。
- 税率(MWSTS):系统优先取自采购订单中的设定值;若未维护,则需手动选择正确的税码。
MIRO
核对系统加载的采购订单行项目:
- 系统自动显示“已收货数量”(来源于 MSEG 凭证),默认“发票数量”与其相等,支持修改为部分开票(例如:收货3件,本次仅开票2件)。
- 比较“PO 单价”与发票单价是否一致:若相同,系统自动按“发票数量 × PO 单价”计算金额;若存在价格变动,需进入差异处理流程。
差异处理机制:
- 数量差异:仅允许“发票数量 ≤ 已收货数量”,超出部分不可过账,需联系供应商重新开具发票或补做收货手续(特殊配置除外)。
- 金额差异:
- 小额差异(如 ±1 元以内)可通过配置 OBYC 中的 DIF 科目进行自动分摊处理。
- 较大金额偏差则需启动审批流程,利用 MIRO 界面中的“持有”功能暂存凭证,在获得批准后再完成过账。
模拟与正式过账:
- 点击“模拟”按钮,系统生成预览会计凭证,用于核对借贷方向是否正确(通常为借方:原材料/进项税,贷方:应付账款)。
- 确认无误后,点击“过账”按钮,系统将生成发票凭证(存储于 RBKP/RSEG 表)和对应的会计凭证(BKPF/BSEG)。
MIRO
2. 后台关键配置项(SPRO 路径)
(注:此处省略具体 SPRO 路径细节,保留原意结构以便后续补充完整配置路径说明)
路径:
物料管理 → 后勤发票校验 → 匹配 → 定义容差范围
(设置数量差异容差与金额差异容差,例如数量容差 ±5%,金额容差 ±10 元)。
路径:
物料管理 → 后勤发票校验 → 发票接收 → 定义发票类型
(配置发票类型,如 “RE” 表示标准发票)。
路径:
物料管理 → 后勤发票校验 → 科目确定 → 维护自动记账
(设定进项税科目、应付账款科目以及差异处理科目等财务科目映射规则)。
阶段 3:发票审核与过账(可选,依据企业实际流程)
若企业启用了“发票审批流程”(例如单笔发票金额超过 10 万元需财务经理审批):
- 发票录入后点击“持有”(Hold),系统生成暂存凭证,状态标记为“未审批”。
- 审批人可通过
MIR4
(查看待审发票信息)或通过工作流通知进行审批操作。审批通过后,录入人员使用
MIRO
中的“更改”功能解除持有状态,并完成正式过账。
过账完成后,系统将自动更新以下信息:
- 采购订单行项目状态(EKPO-STATU):由“部分收货”变更为“部分收货 / 部分发票”或“完全发票”。
- 应付账款余额:在 BSEG 表中,供应商统驭科目的余额相应增加。
阶段 4:发票凭证查询与归档(MIR4 / MIR6)
使用事务码
MIR4
可查询单张发票凭证,支持查看发票抬头数据、行项目明细、关联的采购订单(PO)、收货凭证及对应的会计凭证等详细信息。
使用事务码
MIR6
支持批量查询发票凭证,可根据供应商、采购订单编号、过账日期、发票状态(已过账 / 已持有 / 已冲销)等条件进行筛选。
归档操作说明:
- 电子发票通过
SARA
(归档专用事务码)上传至文档管理系统(DMS)实现集中归档。
三、系统后台表数据更新(核心表联动机制)
发票完成匹配并过账后,SAP 系统会同步更新多个核心数据库表。以下是主要涉及的数据表及其关键字段变化情况:
| 表名 | 描述 | 核心字段更新内容 |
|---|---|---|
| RBKP | 发票凭证抬头表 | 新增一条记录,包含:BELNR(发票凭证号)、BUKRS(公司代码)、LIFNR(供应商编码)、REINDT(发票日期)、BUDAT(过账日期)、EBELN(关联采购订单号)、STATUS(当前状态:已过账 / 已冲销) |
| RSEG | 发票凭证行项目表 | 新增一条或多条记录,包括:BELNR(发票凭证号)、EBELN(采购订单号)、EBELP(采购订单行项目)、MATNR(物料编号)、MENGE(发票数量)、NETWR(发票净额)、MWSTS(税额)、BWART(关联收货移动类型,如 101) |
| EKPO | 采购订单行项目表 | 更新字段值:REMNW(已开票数量,例如从 0 更新为 3)、STATU(行项目状态,如从“部分收货”变为“部分发票”)、REPOS(发票接收状态:已部分发票 / 完全发票) |
| EKBE | 采购订单历史记录表 | 新增一条记录:VORGA=20(业务类型代表发票接收)、EBELN(采购订单号)、EBELP(采购订单行项目)、BELNR(发票凭证号)、MENGE(发票数量)、DATUM(发票过账日期) |
| BKPF | 会计凭证抬头表 | 新增一条记录:BELNR(会计凭证号)、BUKRS(公司代码)、GJAHR(会计年度)、BUDAT(过账日期)、BLART(凭证类型,RE 表示发票类凭证) |
| BSEG | 会计凭证行项目表 | 新增多条会计分录记录,示例如下: 1. 借方:原材料科目(如 1403),金额 = 发票数量 × PO 单价 2. 借方:进项税科目(如 222101),金额 = 对应税额 3. 贷方:应付账款(供应商统驭科目,如 2202),金额 = 发票含税总额 |
| BSIK | 未清应付账款明细表 | 新增一条记录:LIFNR(供应商)、BELNR(会计凭证号)、DMBTR(未清金额)、ZBD1T(付款到期日) |
表关系联动图谱
PO(EKKO/EKPO) ←→ 收货记录(MKPF/MSEG) ←→ 发票凭证(RBKP/RSEG) ←→ 会计凭证(BKPF/BSEG) ←→ 未清应付(BSIK)
主要关联字段包括:EBELN(采购订单编号)、EBELP(采购订单行项目)、MBLNR(物料凭证号)、BELNR(发票或会计凭证编号)。
四、发票匹配的核心管控规则与业务控制点
1. 强制性校验规则(系统默认强制执行,不可跳过)
- 供应商必须已在系统中维护(LFA1 表中存在该记录),且未被冻结(LFA1-SPERR 字段为空)。
- 采购订单必须真实存在,且未被删除(EKKO-LOEKZ 为空)或拒绝(EKKO-EBAKZ 为空)。
- 发票数量不得超过已收货数量(适用于三向匹配)或不得超过采购订单数量(适用于二向匹配),否则系统将报错阻止。
- 所使用的税码必须有效(存在于 T007A 表中),且系统计算出的税额需与配置的税码逻辑一致。
2. 关键业务控制点(企业应重点管理环节)
| 控制点 | 管控目的 | 实现方式 |
|---|---|---|
| 发票与采购订单关联校验 | 防止无采购订单的发票进入账务系统 | 通过 SPRO 路径配置: |
MIRO
(物料管理 → 后勤发票校验 → 发票接收 → 定义屏幕格式),强制要求输入采购订单编号。
| 容差控制 | 控制小额差异,避免因微小偏差频繁触发人工干预 | 配置容差码(如 Q1 表示数量差异,PP 表示价格差异),并通过 OBYC 设置允许的差异范围,并分配相应的差异科目用于自动记账。 |
| 发票审批流程 | 防范大额发票带来的财务风险 | 利用 SAP 工作流工具(SWDD)设定审批规则,例如当发票金额大于 10 万元时,自动触发财务经理审批流程。 |
| 电子发票真伪校验 | 防止虚假或重复发票入账 | 与税务系统(如金税平台)对接,通过接口验证发票号码的唯一性和真实性,实现自动查重与防伪校验。 |
| 冲销权限控制 | 防止未经授权误冲已过账发票 | 配置 |
MIRO
中的冲销权限(授权对象 M_RECH_KEY),限制仅财务主管等特定角色可执行冲销操作。
三、常见容差码说明
配置路径:SPRO → 物料管理 → 后勤发票校验 → 匹配 → 定义容差范围
| 容差码 | 描述 | 控制逻辑 |
|---|---|---|
| Q1 | 订单数量与发票数量差异 | 允许差异率 =(发票数量 - 收货数量)/ 收货数量 |
| PP | 订单价格与发票价格差异 | 允许差异金额 = 发票金额 -(发票数量 × PO 单价) |
| DW | 税额差异 | 允许税额差异 ≤ 设定金额(例如 ±1 元) |
五、异常处理与冲销流程
1. 常见异常及解决方案
| 异常场景 | 系统提示 | 解决方案 |
|---|---|---|
| 发票数量 > 已收货数量 | 错误信息:“发票数量超过收货数量” |
1. 补充执行收货操作(使用事务码 MIGO 进行 101 收货); 2. 联系供应商重新开具正确发票; 3. 若为特殊情况,可临时调整容差范围设置。 |
| 发票金额与 PO 金额差异过大 | 警告信息:“价格差异超出容差” |
1. 核实差异原因(如供应商调价或折扣变更); 2. 按照企业审批流程提交差异申请; 3. 手动调整发票金额至容差范围内后继续过账。 |
| PO 未收货但需录入发票 | 错误信息:“PO 无收货记录” |
1. 修改采购订单类型配置,取消“强制收货”要求,改为二向匹配模式; 2. 或先完成收货流程后再进行发票录入。 |
| 供应商被冻结 | 错误信息:“供应商已被冻结” | 联系采购部门通过事务码 FK02 解除供应商冻结状态(修改 LFA1-SPERR 字段)。 |
2. 发票冲销流程(事务码
MIRO
→“冲销” 或
MIR7
)
适用场景:发票已过账但存在录入错误(如金额错误、关联的采购订单不正确),需要进行冲销处理。
操作步骤:
- 进入事务码
,点击“冲销”(Reverse)功能;MIRO - 输入原始发票凭证号(BELNR)和会计年度(GJAHR);
- 选择冲销原因(如“数据录入错误”),系统将自动生成一张冲销凭证(凭证类型为“RE”,金额为负数);
- 冲销完成后,原发票凭证状态更新为“已冲销”(RBKP-STATUS=“冲销”),相关数据库表同步反向更新:
- EKPO-REMNW(已发票数量)恢复至冲销前数值;
- BSEG 中对应的应付账款科目余额相应减少(冲销原会计分录);
- BSIK 表中该笔未清项记录被清除。
注意事项:
- 若发票已完成付款(即 BSIK 记录已清账并转入 BSAK 表),则必须先通过
取消付款清账,方可执行发票冲销;FBRA - 生成的冲销凭证不可编辑。如需重新录入正确发票,应使用正确的信息再次执行
操作。MIRO
六、标准报表与数据查询
1. 核心标准报表(无需自定义开发)
| 事务码 | 报表名称 | 用途 | 关键筛选条件 |
|---|---|---|---|
|
发票凭证列表 | 批量查看发票当前状态(如已过账 / 已持有 / 已冲销) | 供应商、PO 编号、过账日期、发票类型 |
|
PO 历史查询 | 检查采购订单的发票情况(已发票数量 / 未发票数量) | PO 编号、“发票状态”筛选(部分发票 / 完全发票) |
|
供应商未清项清单 | 查询尚未支付的发票(即未清应付账款) | 供应商、公司代码、未清项标识 |
|
物料凭证列表 | 根据发票查找对应收货单据 | 物料编号、移动类型 = 101、关联 PO 编号 |
2. 自定义查询示例(使用 SE16N 查询多表关联)
需求:查询自 2024 年 10 月起创建且尚未完全发票的采购订单行项目。
涉及主表:
- EKKO(采购订单抬头)
- EKPO(采购订单行项目)
- RBKP(发票凭证抬头)
- RSEG(发票凭证行项目)
筛选条件设定:
- EKKO-ERDAT ≥ 20241001(PO 创建日期从 2024 年 10 月 1 日起)
- EKPO-LOEKZ = 空(确保行项目未被删除)
- EKPO-WEUNR > 0(表示已有收货记录)
- EKPO-MENGE > EKPO-REMNW(已收货但未全部开票)
- RBKP-BUDAT ≥ 20241001(限制发票过账时间范围)
七、总结
SAP 发票匹配机制的核心在于“以采购订单为基准,联动收货与财务凭证”,通过三向匹配保障采购、库存与财务三大模块的数据一致性。主要要点归纳如下:
- 业务层面:严格遵循“先收货、后发票”的操作规范(适用于三向匹配场景),确保实物流动与系统凭证保持一致;
- 系统层面:核心数据存储于 RBKP(发票抬头)和 RSEG(发票行项目)表,并与 EKKO/EKPO(采购订单)、MKPF/MSEG(物料凭证)、BKPF/BSEG(财务凭证)等表深度集成;
- 管控层面:借助容差设置、审批流控制及权限管理机制,有效防范发票误录、重复开票或虚假发票等风险;
- 实操层面:熟练掌握
(发票录入)、MIRO
(单据查询)、MIR4
(批量查询)以及冲销操作,提升异常问题的处理效率。MIR6
对于 SAP 实施与运维人员而言,应重点关注“各表之间的数据联动逻辑”以及“后台配置对业务流程的实际影响”。结合企业的具体运营需求(如容差阈值设定、审批规则配置),持续优化系统参数,确保整体流程既合规又高效。


雷达卡


京公网安备 11010802022788号







