VF03 — Display Billing Document
VF03 displays a posted billing document (invoice, credit memo, debit memo, or cancellation) in read-only mode, showing header and item data, pricing conditions as they were determined at billing time, the accounting document status, and the document flow back to delivery and order. It cannot change anything; VF02 is the transaction for permitted changes.
VF03 is the display transaction for billing documents in SD, used to inspect header data, pricing, and posting status without risking a change. This page covers the structural distinction between VF03 and VF02, the tables the billing process writes, and the diagnostic order for the most common billing complaints: missing accounting documents, frozen pricing, and broken document flow.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,206 words
Purpose
VF03 opens a billing document in strict display mode. It shows the header (payer, billing date, document type, net and tax values), the item list with quantities and pricing conditions, and, critically, the posting status toward Financial Accounting. The one fact that explains most of the confusion around this transaction: a billing document is a frozen snapshot. Once it is created, the pricing conditions stored on the item are copied values, not live pointers back to the condition master data. Changing a condition record in VK12 afterward has no effect on a document already displayed in VF03. Consultants who do not know this waste time comparing VF03 output against current pricing and conclude the system is inconsistent, when in fact both are correct for their own point in time.
When it is used
VF03 is the first stop when a customer, an accountant, or a colleague reports a problem with an invoice already in the system: wrong amount, missing tax, invoice not showing in FI, or a customer disputing a charge. It sits at the end of the order to cash chain, after delivery and goods issue, and feeds accounting and, downstream, dunning and collections. Use VF03 instead of VF02 whenever the goal is only to look, because VF02 carries the risk of an accidental save even when most fields are locked. Use VF03 instead of a Fiori invoice display app when working in a classic GUI shop or when the underlying table detail (pricing procedure steps, condition types, account assignment) is needed rather than a summarized view.
How to use it in practice
- Start VF03 and enter the billing document number, or leave it blank and use the matchcode to search by sales order, delivery, payer, or billing date range.
- Review the header screen: document type, billing date, net value, and the posting status field indicating whether an accounting document was generated.
- Drill into item overview to check quantity, material, and net price per line.
- Open the conditions tab on an item to see the full pricing procedure as it was applied at billing time, including manual overrides and taxes.
- Use the document flow (environment menu) to trace back to the delivery, sales order, and any subsequent accounting or cancellation document.
- If the accounting document is missing, use the account determination analysis available from the header to see the reason the posting failed.
Key data objects
- VBRK - billing document header: document type, payer, billing date, net and tax totals, posting status indicator, cancellation flag.
- VBRP - billing document item: material, quantity, net value, reference to the preceding delivery or order item, condition summary fields.
- VBFA - document flow: links between billing, delivery, sales order, and any cancellation or credit memo document.
- PRCD_ELEMENTS or the pricing condition tables - the frozen condition records copied onto the billing item at creation.
- BKPF and BSEG - the accounting document header and line items created when the billing document is released to Financial Accounting.
- VBRK-FKSTO - the cancellation indicator, set when the document has been reversed by a cancellation billing document.
How to prove it in the data
In SE16 on VBRK, filter by billing document number to confirm the document type, RFBSK posting status, and FKSTO cancellation flag. If accounting is missing, the posting status field will not show a released value; cross-check BKPF filtered on the same billing document number in the reference field to confirm no accounting document exists. To check pricing drift, compare VBRP condition amounts on the billing item against current VK13 output for the same condition type and validity period; a difference is expected and not a defect. Join VBFA on the billing document number to trace the preceding delivery and order for split investigations.
ECC vs S/4HANA
VF03 behaves the same on S/4HANA as on ECC; the transaction, the underlying VBRK/VBRP structure, and the display-only logic are unchanged. S/4HANA adds Fiori apps for billing document display and monitoring that present the same data with a modern list and drill-down, useful for business users, but the GUI transaction remains the faster tool for consultants who need to see raw condition and account determination detail. No functional replacement has occurred.
Common pitfalls and how to diagnose them
- Document not found: the number entered belongs to a different document category (order or delivery, not billing) or the user is searching for a document that was never saved because billing failed silently upstream; check the sales order or delivery's own document flow first rather than assuming the billing number is wrong.
- Posting status shows blocked or in error: the billing document exists in VBRK but has no accounting document because account determination failed, a G/L account is missing in the account assignment configuration, or a foreign currency exchange rate could not be found; run the account determination analysis from the header before touching anything in configuration.
- Document shows as cancelled: VBRK-FKSTO is set, meaning a cancellation billing document exists in the document flow; the original values in VF03 are correct historically but no longer active, and the real question is why the cancellation happened, not why the numbers look odd.
- Pricing does not match current conditions: this is expected behavior, not a bug, because billing document pricing is a frozen copy; do not attempt to force a repricing on a saved document without understanding the downstream accounting impact.
- Invoice missing lines expected from the delivery: an invoice split occurred because of a difference in payer, incoterms, pricing date, or billing date between delivery items; check VBFA for a second billing document covering the missing lines before assuming data loss.
- Reflex fix that makes it worse: attempting to correct a value by jumping to VF02 when the field is greyed out because accounting has already posted; the correct path is a credit or debit memo, or a cancellation followed by rebilling, never a forced change to a posted document.
Whose problem this is
Functional SD issue in the first instance: pricing, account determination, and document flow are configuration and master data territory. Escalate to Basis only if the transaction itself will not open or times out. A good handover includes the billing document number, the posting status value from the header, the account determination analysis result if accounting is missing, and the VBFA trail from order through delivery to billing.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/vf03ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.