VL03N — Display Outbound Delivery
VL03N is the display-only transaction for an outbound delivery document. It shows header and item data, shipping point, picking and packing status, goods movement status, and document flow, but it cannot change anything. Consultants use it to read the current state of a delivery when diagnosing stuck goods issue, blocked billing, or quantity discrepancies against the sales order.
This page covers VL03N, the display transaction for outbound deliveries in the SD order-to-cash flow. It focuses on how the delivery's status fields, document flow, and underlying tables are used to diagnose why a delivery is stuck, why goods issue failed, or why billing will not release, rather than on the screen layout itself.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,182 words
Purpose
VL03N opens an outbound delivery in display mode: header data (shipping point, route, delivery date), item data (delivery quantity, batch, storage location), and status information for picking, packing, goods movement, and billing, both at header and item level. The structural fact that explains most confusion: a delivery is its own independent document, distinct from the sales order and the billing document, connected to both only through document flow entries. Header status fields and item status fields are tracked separately and do not always move in lockstep, so a delivery can show 'partially processed' at header level while every item is individually complete, or vice versa. VL03N will not let a consultant fix anything found wrong; it is purely diagnostic, which is exactly its value mid-incident.
When it is used
VL03N sits between delivery creation and billing in the order-to-cash chain. A consultant reaches for it whenever a delivery number is already known and the question is 'what state is this document in' rather than 'what needs to change'. Typical triggers: a billing block investigation that starts from VF01 and needs to trace back to the delivery's goods movement status, a warehouse query about why picking confirmation did not update, or a document flow check from VA02 that lands on a delivery line. VL02N is used instead the moment a field needs correcting, a batch needs reassigning, or goods issue needs to be posted. VL06O or the Fiori delivery list apps are used instead when the starting point is a list of deliveries by criteria rather than one known document number.
How to use it in practice
- Enter the delivery number directly, or reach it via document flow from the sales order (VA02/VA03) or from the invoice (VF03).
- Review the initial overview screen for shipping point, route, and overall header status icons.
- Open item overview to check delivery quantity per item against the referenced sales order item.
- Use the status overview (via the header or item detail screens) to read picking status, goods movement status, and billing status separately.
- Go to Environment then Document Flow to see the full chain: sales order, delivery, goods movement document, invoice.
- Check item detail tabs for batch, serial number, and shipping data if quantity or stock discrepancies are suspected.
Key data objects
- LIKP - delivery header: shipping point, route, delivery date, overall header status.
- LIPS - delivery item: delivery quantity, plant, storage location, batch, reference to the sales order item.
- VBUK - header status flags: goods movement status, picking status, overall processing status.
- VBUP - item-level status flags mirroring VBUK but per delivery item.
- VBFA - document flow linking the delivery to its preceding sales order and any following goods movement or billing document.
- MKPF and MSEG - material document header and item, populated once goods issue actually posts against the delivery.
How to prove it in the data
Start in SE16N on LIKP filtered by VBELN to confirm the delivery exists and read its header status. Join to LIPS on VBELN to compare delivery item quantity against order quantity. Pull VBUK for the same VBELN to check WBSTK (goods movement status) and the picking status field; a value other than 'C' completed on an item that the user believes is finished points at a partial posting. Query VBFA with VBELV equal to the delivery number and filter VBTYP_N to isolate whether a goods movement or billing document actually followed. Absence of a VBFA row into MKPF/MSEG with a completed status in VBUK is the classic sign of a goods issue that never actually posted.
ECC vs S/4HANA
VL03N is unchanged as a transaction code on S/4HANA and remains fully usable. The underlying tables LIKP, LIPS, VBUK, VBUP, and VBFA are the same tables read on both ECC and S/4HANA. Fiori offers list-based alternatives such as the delivery monitoring and manage outbound deliveries apps for browsing many deliveries at once, but for a single known delivery number, opening it directly in VL03N remains the fastest path and is still what most consultants do inside an S/4HANA system.
Common pitfalls and how to diagnose them
- Delivery not found or wrong document type assumed: confirm the number was read from the correct document flow chain, not typed from memory; a delivery number pattern can be confused with an order or billing number range depending on number range configuration.
- Status mismatch between header and item: VBUK shows the delivery as not fully processed while every VBUP line looks complete, or the reverse. Check each item's status individually before assuming the header field is wrong; a single item with a partial goods movement (for example a batch split not fully picked) holds the whole header back.
- Goods issue believed posted but no material document exists: VBUK-WBSTK reads incomplete or blank and there is no VBFA entry into MKPF/MSEG. This usually means PGI failed silently earlier (stock shortage, batch not determined, posting period closed) and the user is looking at a cached screen or a different delivery. Reversing or reposting must happen in VL02N or via the goods issue transaction, never attempted from VL03N.
- Billing blocked despite delivery looking complete: the delivery's own status is fine but a billing block sits on the sales order or the item, which VL03N will not surface directly; document flow must be followed forward to the billing document attempt to see the block reason.
- Delivery split across multiple documents: one sales order line generated several deliveries due to partial stock availability or route splits. VL03N on any single delivery number will only show that slice; the full picture requires walking VBFA from the order rather than trusting one delivery's status as representative of the whole order.
Whose problem this is
This is functional SD / logistics execution territory: reading and interpreting delivery status belongs to whoever owns outbound delivery processing. ABAP gets involved only if a custom user exit or enhancement is suspected of interfering with status determination or goods movement posting. A clean handover states the delivery number, the exact status field values read from VBUK/VBUP, the document flow entries present or missing, and whether the material document exists, so the receiving team does not have to re-run the same navigation.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/vl03nERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.