RBKP table — RBKP Invoice Document Header Table
RBKP stores one row per logistics invoice verification document header, created mainly through MIRO or MIR7. It holds the invoice reference number, document and posting dates, gross amount, currency, status flag, and reversal information. It does not hold line item amounts, tax breakdown, or purchase order references, all of which live in RSEG at item level.
RBKP is the header table behind every invoice entered through logistics invoice verification, whether parked, posted, or reversed. This page covers which fields actually carry diagnostic weight, how to join it down to RSEG and across to the accounting document, and the recurring mistake of reading RBKP as if it contained line-level or accounting-level truth.
Published 15 Sept 2026· 1,158 words
What it stores
One row in RBKP represents one invoice document created through logistics invoice verification, identified by document number and fiscal year. This covers standard invoices, credit memos, subsequent debits and credits, and invoices entered for goods receipts or purchase orders. The row exists as soon as the document is parked, held, or posted, so RBKP contains documents in various completion states, not only finished postings. It records who entered the document, when it was entered, the header level reference text, the total gross amount and currency, and whether the document has since been reversed. It does not carry the individual purchase order lines, tax lines, or GL account splits, those are distributed across item and accounting tables that key back to this header by document number and year.
Key fields
- MANDT - client
- BELNR - invoice document number, the internal key for the invoice
- GJAHR - fiscal year of the invoice document
- BUKRS - company code
- BLDAT - document date as entered on the invoice
- BUDAT - posting date
- CPUDT - entry date, when the document was created in the system
- CPUTM - entry time
- USNAM - user who created the document
- XBLNR - reference document number, typically the vendor invoice number
- WAERS - currency key of the invoice
- RMWWR - gross invoice amount in document currency
- KURSF - exchange rate used
- STBLG - number of the reversal document, populated once the invoice is reversed
- STJAH - fiscal year of the reversal document
- RBSTAT - status of the invoice document, distinguishes posted, parked, and held states
- XRECH - indicator marking the document as an invoice versus a credit memo
- BVORG - internal grouping number linking the invoice to related follow-on documents
How it joins the data model
- RBKP-BELNR = RSEG-BELNR and RBKP-GJAHR = RSEG-GJAHR to reach the invoice line items
- RSEG-EBELN = EKPO-EBELN and RSEG-EBELP = EKPO-EBELP to reach the purchase order line the invoice was posted against
- RSEG links to EKBE where the invoice history record for that purchase order line is recorded
- RBKP-BVORG groups together the invoice document and any linked correction or credit documents created in the same posting activity
- the accounting document generated from the invoice is found in BKPF, typically located by matching the invoice number and year against the accounting document's reference key rather than by a direct field-for-field join
How to read it safely
Always restrict by MANDT implicitly through the login client, then narrow by BUKRS and a BUDAT or CPUDT range before touching anything else. RBKP is not small in a mature productive system, and BELNR alone is not selective for exploratory queries since it is just a sequential number with no business meaning attached. XBLNR is useful for finding a specific vendor invoice by its printed number but is free text entered by the AP clerk, so it is inconsistent in format and should be searched with wildcards, not exact match. RBSTAT is worth checking early when a document seems to be missing from downstream reports, since a parked or held document exists in RBKP but has not generated postings anywhere else yet.
How to prove it in the data
To confirm a vendor invoice was actually posted rather than only parked, select RBKP on BUKRS, GJAHR, and XBLNR matching the vendor's invoice number, then check RBSTAT on the returned row. If RBSTAT indicates a parked or held state, the document has no accounting entry yet regardless of what the vendor or requester believes was submitted. If STBLG is populated, the invoice was reversed, and the reversal document number and year point to the offsetting entry, which explains why the original amount no longer appears in open item reports.
ECC vs S/4HANA
RBKP continues to exist as a transparent table on S/4HANA and logistics invoice verification still writes to it in the same shape familiar from ECC. SAP has moved much of the reporting layer for invoice verification onto compatibility views and newer CDS-based analytics, but the underlying table and its key fields have not been restructured the way some MM tables were during the Material Ledger and inventory document changes. Existing ABAP that reads RBKP directly continues to function without adjustment on S/4HANA in practice.
Common pitfalls
- Reading RMWWR as the final accounting amount. It is the invoice gross amount as entered, before any tax adjustment, cash discount, or exchange rate difference is finalized in the accounting document. Reconcile against BKPF or the relevant accounting tables, not against RBKP alone.
- Assuming a row in RBKP means the invoice was posted to the vendor account. Parked and held documents create a RBKP row without any accounting or MM document flow update, so a document existing here does not mean the vendor sees the liability.
- Treating XBLNR as a unique key. Vendors reuse invoice numbers across years or duplicate them by mistake, and nothing in the standard configuration guarantees uniqueness of XBLNR across company codes, so a search on XBLNR can return more than one legitimate match.
- Forgetting that BELNR ranges overlap between fiscal years. A document number by itself means nothing without GJAHR, and joins built without the year field silently pull the wrong document when number ranges repeat.
- Expecting purchase order or tax detail in the header. Every question about which PO line, which GL account, or which tax code was used requires going to RSEG and beyond, RBKP will not answer it.
- Ignoring STBLG when reconciling amounts. An invoice that looks outstanding in an aging report but has a populated STBLG has already been reversed, and the real question is why a new invoice was not entered to replace it.
Whose problem this is
The accounts payable or MM invoice verification team owns questions about individual documents and posting status. A functional MM or FI-AP consultant owns configuration questions about invoice blocking reasons, tolerance settings, and workflow routing that affect why RBSTAT sits in a parked state. A basis or data team gets involved only if the question is about table growth, archiving of old invoice documents, or performance of reports scanning RBKP at scale.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/rbkpERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.