RSEG table — Incoming Invoice Document Item Table
RSEG stores the item lines of incoming invoice documents posted through logistics invoice verification (MIRO, MIR7, MIRA). Each row is one invoice item, carrying the invoiced quantity and amount, the purchase order reference, and, when goods-receipt-based invoice verification is active, the goods receipt document it was matched against. The header data (vendor, posting date, gross amount, tax) lives in RBKP, not here.
RSEG is the item-level counterpart to RBKP for invoices entered through logistics invoice verification. This page covers the fields consultants actually query, how RSEG joins to the purchase order, goods receipt, and header tables, and the recurring mistakes people make when reading invoiced quantities and amounts straight off this table.
Published 15 Sept 2026· 1,076 words
What it stores
One row in RSEG represents one item of an incoming invoice document created via logistics invoice verification. An invoice document can post several items against several purchase order lines, and a single PO item can be invoiced across multiple invoice documents, so RSEG is deliberately many-rows-per-invoice and many-rows-per-PO-item. The row carries what was invoiced on that line: quantity, amount in document currency, tax code, and the purchase order item it is being charged against. If goods-receipt-based invoice verification is active for the PO item, the row also carries a pointer back to the specific material document that the invoice quantity is checked against. RSEG does not carry vendor, payment terms, or total invoice amount; that belongs to the header table RBKP, joined on document number and fiscal year.
Key fields
- MANDT - client
- BELNR - invoice document number, same key value as RBKP-BELNR
- GJAHR - fiscal year of the invoice document
- BUZEI - item number within the invoice document
- EBELN - purchase order number the item is invoiced against
- EBELP - purchase order item number
- WERKS - plant
- MATNR - material number, blank for non-stock or service items
- MENGE - quantity invoiced on this line
- MEINS - unit of measure for MENGE
- WRBTR - amount in document currency for this line
- WAERS - document currency
- MWSKZ - tax code
- LFBNR - reference material document number (goods receipt) when GR-based IV applies
- LFGJA - fiscal year of the reference material document
- LFPOS - item number of the reference material document
How it joins the data model
- RSEG-BELNR = RBKP-BELNR and RSEG-GJAHR = RBKP-GJAHR for the invoice header
- RSEG-EBELN = EKPO-EBELN and RSEG-EBELP = EKPO-EBELP for the purchase order item
- RSEG-EBELN = EKKO-EBELN for the purchase order header
- RSEG-LFBNR = MSEG-MBLNR, RSEG-LFGJA = MSEG-MJAHR, RSEG-LFPOS = MSEG-ZEILE for the underlying goods receipt line, when GR-based IV is used
- RSEG-EBELN/EBELP matches against EKBE entries with the invoice history indicator to reconcile PO history
How to read it safely
MANDT is implicit in any reasonable selection and should never be left off a direct SQL read. RSEG is never selected alone in practice; it is read with a known BELNR/GJAHR (coming from RBKP) or a known EBELN/EBELP (coming from EKPO), because neither field alone is selective enough on a live productive system with years of invoice history. Selecting by MATNR or WERKS without a date or company code restriction on RBKP first will scan a large range. When chasing a specific invoice, start from RBKP to confirm the document exists and get GJAHR, then filter RSEG on BELNR and GJAHR together, never BELNR alone, since the same document number is reused across fiscal years.
How to prove it in the data
Symptom: a PO item shows as fully invoiced but the requester insists an invoice is still outstanding. Selection: filter RSEG on EBELN and EBELP for the PO item, sum WRBTR and MENGE across all rows, and check RBKP-STBLG/STJAH on each linked header for a reversal. If the sum of unreversed rows already equals the PO item value, the invoice was posted and matched; the requester is looking at the wrong PO item or a duplicate PO.
ECC vs S/4HANA
RSEG continues to exist as a transparent table in S/4HANA and logistics invoice verification still writes to it directly through the same postings as in ECC. There is no wholesale replacement of RSEG with a CDS-only model at the persistence layer; reporting and Fiori apps for invoice management sit on top of RSEG and RBKP rather than replacing them. Field content is unchanged for the fields listed above, so joins written against ECC continue to work.
Common pitfalls
- Summing WRBTR across RSEG rows for a PO item without excluding reversed invoices double-counts value; a cancelled invoice's original line is still sitting in RSEG, only linked to a cancellation document via RBKP, not marked inside RSEG itself.
- LFBNR being blank does not mean the invoice was not checked against a goods receipt. It means the PO item was not flagged for GR-based invoice verification, so quantity checking used the PO-based logic instead. Reading a blank LFBNR as an error causes false incidents.
- RSEG has no vendor field. Pulling vendor from anywhere other than RBKP-LIFNR, or worse, assuming it matches the PO vendor on EKKO, breaks the moment an alternative payee or one-time vendor scenario is in play.
- Credit memos and subsequent debits are stored as ordinary RSEG rows with the transaction type carried at header level in RBKP, not signalled by a sign flip on WRBTR in every case. Assuming a negative WRBTR always means a credit memo is unreliable.
- Parked invoice documents entered through MIR7 are not guaranteed to be fully reflected in RSEG until posted; querying RSEG to find a parked invoice a user claims to have entered often returns nothing, and the correct place to check is the parked document status on RBKP, not RSEG.
- Multiple invoice items in one document against the same PO item are common with partial deliveries billed separately; treating BUZEI as unique per PO item leads to undercounting invoiced quantity.
Whose problem this is
A data question on RSEG belongs to the accounts payable or MM invoice verification process owner, since the table is populated purely by invoice postings. Purchasing gets pulled in when the dispute is about which PO item or quantity the invoice was matched to. Basis and technical teams have nothing to add here beyond confirming the table has not been archived for the period in question.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/rsegERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.