SAP SD Order-to-Cash Process in S/4HANA
For SAP S/4HANA & ECC · Last updated September 2026
Order-to-Cash is the backbone of SAP SD — every sales transaction, from a customer inquiry to money in the bank, flows through this cycle.
Most guides stop at listing the steps. This one goes further: for every step you get the document created, the T-code, and the configuration that controls it — plus the five failures that actually happen on live projects, and how to diagnose each one.
On this page
What is Order-to-Cash in SAP SD?
Order-to-Cash (O2C, sometimes OTC) is the end-to-end process that begins when a customer asks to buy something and ends when the money is collected. In SAP it is not one transaction — it is a chain of linked documents, each one referencing the document before it.
That chain is what makes SAP traceable: from an invoice you can walk backwards to the goods issue, the delivery, the order, and the original quotation. The links live in table VBFA.
The one-line version: O2C is a document chain, and every link in it is governed by configuration. When something “does not work”, you are almost never looking at a bug — you are looking at a control setting that says no.
O2C process flow diagram
Scroll the diagram sideways to see all of it →
The SAP SD Order-to-Cash cycle: inquiry → quotation → sales order → availability & credit check → delivery → picking & packing → post goods issue → billing → accounting document → incoming payment.
Inquiry and quotation are optional — many businesses begin at the sales order. Everything from the sales order onward is mandatory for a physical-goods sale.
Every step, and what controls it
This is the table worth memorising. Anyone can list the steps; knowing the configuration behind each one is what separates a consultant from a user.
| Process step | Document | T-code | Configuration / control |
|---|---|---|---|
| Inquiry | IN | VA11 | Sales document type (VOV8), non-binding — no inventory or FI effect |
| Quotation | QT | VA21 | Document type, validity period, pricing procedure |
| Sales order | OR | VA01 | Item category (VOV4), schedule line (VOV5), pricing procedure (OVKK) |
| Availability check | — (schedule line) | automatic | Checking group + checking rule (OVZ9), schedule line category |
| Credit check | — (block) | automatic | Credit control area, risk category, FSCM credit segment |
| Outbound delivery | LF | VL01N | Shipping point determination, route, delivery relevance on schedule line |
| Picking & packing | Transfer order | LT03 / VL02N | Warehouse/storage location, picking relevance, packing requirements |
| Post Goods Issue | Material document | VL02N | Movement type 601 on the schedule line category |
| Billing | F2 | VF01 | Copy control (VTFL/VTFA), billing relevance on the item category |
| Accounting | FI document | VF02 / FB03 | Revenue account determination (VKOA), tax code, posting period |
| Incoming payment | FI clearing doc | F-28 | Payment terms, reconciliation account, customer open items |
Step-by-step walkthrough
Pre-sales — inquiry & quotation
Purpose: Capture customer interest before a commitment exists. An inquiry (IN, VA11) is a non-binding request for information. A quotation (QT, VA21) is a binding offer with a validity period, usually created with reference to the inquiry.
What controls it: Sales document type (VOV8) controls number range, screen layout, and whether a delivery or billing block is defaulted. Neither document affects inventory or accounting.
Sales order
Purpose: The commercial commitment. Created in VA01, often with reference to a quotation so the pricing and quantities carry across.
What controls it: Three determinations happen here and drive everything downstream: item category (VOV4) decides how the line behaves, schedule line category (VOV5) decides delivery and planning behaviour, and the pricing procedure (OVKK) decides the value.
Availability check & credit check
Purpose: Confirm what can actually be promised, and whether the customer is allowed to receive it. Both run automatically on save.
What controls it: Availability uses the checking group plus checking rule (OVZ9) and is switched on by the schedule line category. Credit uses the credit control area and risk category — in S/4HANA through FSCM credit segments. A credit block stops the order progressing to delivery.
Outbound delivery
Purpose: The logistics commitment. VL01N creates the delivery, or VL10 creates them collectively from the due list.
What controls it: Shipping point determination (shipping condition + loading group + delivering plant) and route determination. The schedule line category must be delivery relevant, and no delivery block may be set.
Picking, packing & Post Goods Issue
Purpose: Physically prepare the goods and hand over ownership. PGI in VL02N is the moment inventory and accounting both move.
What controls it: Movement type 601 comes from the schedule line category. At PGI: stock reduces, COGS is debited and inventory credited, the delivery becomes billable, and the MRP requirement is consumed. In S/4HANA the postings land in ACDOCA.
Billing & accounting
Purpose: Invoice the customer and post the receivable. VF01 creates the billing document; the FI document follows automatically if account determination succeeds.
What controls it: Billing relevance on the item category decides order-related vs delivery-related billing. Copy control (VTFL delivery→billing, VTFA order→billing) decides whether the copy is even permitted. Revenue account determination (VKOA) decides which G/L accounts are posted.
Master data required
O2C configuration is only half the story. Most “the process is broken” tickets turn out to be master data:
Business Partner (customer)
BP — roles FLCU01 (SD) + FLCU00 (FI)Sales area data drives pricing, shipping, partner functions and payment terms. Without role FLCU01 there is no sales-area data and the customer cannot be used in an order. Read the guide →
Material master
MM01 — Sales Org 1 & 2, MRP, Plant/Storage viewsItem category group drives item category determination; MRP type drives schedule line determination; loading group and plant drive shipping point determination.
Customer-material info record
VD51Maps the customer's own material number to yours, and can override delivery tolerances and delivering plant per customer.
Condition records (pricing)
VK11The actual prices, discounts, freight and taxes. A correct pricing procedure with no condition records still produces a zero-value order. Read the guide →
Credit master data
UKM_BP (FSCM) / FD32 (classic)Credit limit and risk category per credit segment. Missing credit master is a common cause of every order landing on a credit block. Read the guide →
Output condition records
BRF+ / NACE (legacy)Decides whether the order confirmation and invoice actually reach the customer, and by which channel. Read the guide →
Complete document flow
Every successor document stores a reference to its predecessor in table VBFA. View it from VA03 → Environment → Document Flow.
Document flow is also how SAP enforces sequence. A billing document cannot reference a delivery that has no goods issue, because copy control’s copying requirement checks the predecessor’s status. When a step “refuses” to happen, the predecessor status is the first thing to inspect.
Important O2C T-codes
| T-code | Purpose |
|---|---|
| VA11 / VA12 / VA13 | Create / change / display inquiry |
| VA21 / VA22 / VA23 | Create / change / display quotation |
| VA01 / VA02 / VA03 | Create / change / display sales order |
| VA05 | List of sales orders |
| V.02 | Incomplete sales orders list |
| CO09 | Availability overview (ATP situation) |
| MD04 | Stock / requirements list |
| VKM1 / VKM2 | Blocked SD documents (release here) / released SD documents |
| VL01N / VL02N / VL03N | Create / change / display outbound delivery (PGI in VL02N) |
| VL10A / VL10G | Delivery due list — collective delivery creation |
| VL06O | Outbound delivery monitor |
| LT03 | Create transfer order (picking, WM) |
| VF01 / VF02 / VF03 | Create / change / display billing document |
| VF04 | Billing due list |
| VF11 | Cancel billing document |
| VFX3 | Release billing documents blocked for accounting |
| FB03 | Display FI accounting document |
| FBL5N | Customer line items (open receivables) |
| F-28 | Post incoming customer payment |
| SE16N → VBFA | Document flow table — predecessor/successor links |
The full reference is on the SAP SD T-codes page. In S/4HANA each of these has a Fiori equivalent.
S/4HANA vs ECC
The O2C steps did not change. The mechanics behind five of them did — and that distinction is exactly what senior interviews probe.
XD01 gives way to BP with roles FLCU00 (FI) and FLCU01 (SD). KNA1/KNVV are maintained through CVI synchronisation. Read the guide →
Classic ATP is replaced by embedded aATP — product allocation, rules-based backorder processing, alternative-based confirmation, and Release for Delivery. Read the guide →
NACE condition technique gives way to BRF+ decision tables, with Adobe Forms and managed email templates. Read the guide →
Classic credit (FD32, KNKK) is replaced by SAP Credit Management with credit segments in UKMBP_CMS_SGM. Read the guide →
FI and CO postings from PGI and billing merge into a single line-item table — real-time profitability without extraction.
VBUK/VBUP are merged into VBAK/VBAP, and document pricing conditions move from KONV to PRCD_ELEMENTS. Read the guide →
Create Sales Order, Manage Outbound Deliveries, Create Billing Documents, Sales Order Fulfilment Monitor, and more.
Five real-world O2C failures
Knowing the happy path is the easy half. These five are what you will actually be handed on a project — and being able to diagnose them in order is what makes you useful on day one.
1. Pricing not determined (net value is zero)
The order saves, but the net value is 0.00 or a mandatory condition is missing.
Likely causes
- •No pricing procedure determined — the sales area + document pricing procedure + customer pricing procedure combination has no entry in OVKK
- •Pricing procedure is correct but no condition record exists for the key combination (VK11)
- •The condition record exists but is outside its validity dates, or for a different sales area
- •A requirement routine on the condition type is suppressing it
How to diagnose: Open the order → item → Conditions → Analysis. The pricing analysis tells you exactly which procedure was found, which access was attempted, and why each access failed. Work from the analysis, never by guessing. Pricing Procedure guide →
2. Confirmed quantity is zero
The order line is entered but the schedule line confirms 0, or confirms far in the future.
Likely causes
- •No stock and no inbound supply within the checking horizon
- •The scope of check (OVZ9) excludes the receipts you expected — for example planned orders are not included
- •The schedule line category has the availability check switched off, or is not the category you assumed
- •Transfer of Requirements is inactive, so planning never replenished the material
How to diagnose: Check MD04 first to see the real supply/demand picture, then the checking rule in OVZ9, then the schedule line category. In S/4HANA, backorder processing may also have redistributed a confirmation you previously had. Schedule Line Category guide →
3. Delivery not created
The order exists but VL01N or the delivery due list (VL10) produces nothing.
Likely causes
- •Confirmed quantity is zero — there is nothing to deliver
- •A delivery block is set on the order header or the schedule line
- •The schedule line category is not delivery relevant
- •Shipping point could not be determined (shipping condition + loading group + plant)
- •The order is still on a credit block
- •The requested delivery date is outside the selection date in VL10
How to diagnose: Run VL10 with the log switched on — it reports the reason per order. If nothing appears at all, check delivery relevance on the schedule line and shipping point determination before anything else.
4. Billing block prevents invoicing
The delivery is complete and goods issue is posted, but the item never reaches the billing due list.
Likely causes
- •A billing block is set on the order header or item — often defaulted by the sales document type (VOV8) for credit or debit memo requests
- •The item category has no billing relevance, or the wrong relevance (order-related vs delivery-related)
- •Copy control between delivery and billing is missing or its copying requirement fails
- •Goods issue has not actually been posted
How to diagnose: Check the billing block on the document first (VA02), then billing relevance on the item category, then copy control (VTFL for delivery-to-billing, VTFA for order-to-billing). Copy Control guide →
5. Invoice not released to accounting
The billing document exists but no FI document was created — accounting status stays open.
Likely causes
- •Revenue account determination failed — no G/L account found in VKOA for the chart of accounts, sales org, account assignment group combination
- •The customer or material account assignment group is blank on the master data
- •The posting period is closed in FI
- •Missing or invalid tax code / tax determination
- •The billing date falls in a period the company code does not allow
How to diagnose: In VF02, use Environment → Account determination analysis — it shows precisely which access failed. VFX3 lists all billing documents blocked for accounting so you can see the scale of the problem.
Knowing the happy path is only the beginning. The SD Vault contains real configuration scenarios and interview questions covering pricing failures, billing blocks, credit management, third-party sales and intercompany sales — the situations that decide whether you can actually do the job.
10 O2C interview questions
Walk me through the Order-to-Cash cycle end to end.
Pre-sales (inquiry VA11, quotation VA21) → sales order (VA01) where item category, schedule line and pricing are determined → availability check and credit check → outbound delivery (VL01N) after shipping point and route determination → picking and packing → post goods issue (VL02N, movement 601) which reduces stock and posts COGS → billing (VF01) → accounting document via VKOA → incoming payment (F-28). Each document links to the next through document flow table VBFA.
What exactly happens at Post Goods Issue?
Five things at once: inventory is reduced by the delivered quantity with movement type 601; COGS is debited and inventory credited in FI; the delivery status changes to "goods issue posted"; the delivery becomes eligible for billing; and the requirement in MRP is reduced. In S/4HANA the FI/CO postings land in the Universal Journal (ACDOCA). PGI is reversible only by a cancellation, not by editing.
Which document types are created in a standard O2C flow and what are their codes?
IN (inquiry), QT (quotation), OR (standard order), LF (outbound delivery), and F2 (invoice). The delivery produces a material document at goods issue, and billing produces an FI accounting document. Returns use RE, credit memo request G2, debit memo request L2.
How does document flow work and where is it stored?
Every successor document references its predecessor, and the links are stored in table VBFA (preceding document, subsequent document, and the category of each). You can view it from VA03 → Environment → Document Flow. It is what makes the whole chain traceable from order back to invoice and forward to the accounting document.
What determines the shipping point?
Three inputs: the shipping condition (from the customer master or sales document type), the loading group (from the material master), and the delivering plant. That combination determines the shipping point, which in turn drives the delivery scheduling. If a delivery cannot be created, an undetermined shipping point is one of the first things to check.
What is the difference between order-related and delivery-related billing?
It is set as the billing relevance on the item category. Delivery-related billing (relevance A) bills the delivered quantity and requires goods issue first — the standard for physical goods. Order-related billing (relevance B or C) bills from the order without a delivery — used for services and for third-party items, where you bill based on the order or the vendor invoice.
A billing document was created but no accounting document. What do you check?
Revenue account determination first — VKOA, using chart of accounts, sales organisation, and the customer and material account assignment groups. Then check that the account assignment groups are actually populated on the master data, the posting period is open, and tax determination is valid. In VF02, Environment → Account determination analysis shows which access failed.
Where does the credit check happen in the O2C cycle, and what blocks it?
It can happen at order, delivery, and goods issue — configured per credit group. A block prevents the document progressing to the next step, which is why an order on credit block never appears in the delivery due list. Blocked documents are listed and released in VKM1; released documents are listed in VKM2. In S/4HANA the master data lives in FSCM credit segments rather than the classic KNKK.
How does the O2C cycle integrate with other modules?
MM for material master and inventory; WM/EWM for picking and packing; PP when sales demand transfers to production through TOR; QM if inspection is required before delivery; FI for receivables, revenue and tax; CO/CO-PA for profitability. In S/4HANA, FI and CO integration is simplified through the Universal Journal.
What changed in the O2C process in S/4HANA?
The process steps are the same, but the mechanics changed in five places: Business Partner replaces the customer master, advanced ATP replaces the classic availability check, BRF+ replaces NACE for output, FSCM replaces classic credit management, and FI/CO postings merge into ACDOCA. Status tables VBUK/VBUP are merged into VBAK/VBAP, and pricing conditions moved from KONV to PRCD_ELEMENTS.
Frequently Asked Questions
What is the Order-to-Cash (O2C) process in SAP SD?
Order-to-Cash is the end-to-end business process that begins with a customer inquiry or order and ends with cash collected against the invoice. In SAP SD it runs as a chain of linked documents: inquiry and quotation (pre-sales), sales order, outbound delivery, picking and packing, post goods issue, billing document, and the resulting FI accounting document and incoming payment. Each document references its predecessor through document flow table VBFA, which makes the whole chain traceable.
What are the main steps of the O2C cycle in SAP?
Eleven steps in a full cycle: inquiry (VA11), quotation (VA21), sales order (VA01), availability check, credit check, outbound delivery (VL01N), picking and packing, post goods issue (VL02N), billing (VF01), accounting document, and incoming payment (F-28). Inquiry and quotation are optional — many businesses start directly at the sales order.
What are the key T-codes in the SAP Order-to-Cash cycle?
The core set: VA11 (inquiry), VA21 (quotation), VA01/VA02/VA03 (sales order), VL01N (create delivery), VL02N (change delivery and post goods issue), VL10 (delivery due list), VL06O (delivery monitor), VF01 (billing), VF04 (billing due list), VFX3 (release blocked billing documents), FB03 (FI document), FBL5N (customer open items), F-28 (incoming payment). In S/4HANA each has a Fiori equivalent.
What happens during Post Goods Issue (PGI) in SAP?
PGI posts the physical and financial goods movement at once. Inventory reduces with movement type 601, COGS is debited and inventory credited, the delivery status becomes "goods issue posted", the delivery becomes billable, and the MRP requirement is reduced. In S/4HANA these postings land directly in the Universal Journal (ACDOCA). PGI cannot be edited away — it must be cancelled.
How does document flow work in SAP SD?
Each document in the chain stores a reference to its predecessor in table VBFA (sales document flow). A delivery references the sales order; a billing document references the delivery. From VA03 → Environment → Document Flow you can see the complete history — inquiry through to the accounting document — along with the status of each step.
Why is my delivery not being created for a sales order?
The usual causes, in the order worth checking: the confirmed quantity is zero so there is nothing to deliver; a delivery block is set on the header or schedule line; the schedule line category is not delivery relevant; the shipping point could not be determined; or the order is on a credit block. Running VL10 with the log switched on reports the reason per order.
Why was a billing document created without an accounting document?
Almost always revenue account determination. VKOA could not find a G/L account for the combination of chart of accounts, sales organisation, and the customer and material account assignment groups — often because an account assignment group is blank on the master data. Other causes are a closed posting period or invalid tax determination. Use Environment → Account determination analysis in VF02, and VFX3 to list all blocked billing documents.
What is the difference between an inquiry and a quotation in SAP SD?
An inquiry (type IN, VA11) is a non-binding customer request for information about price, availability or lead time. A quotation (type QT, VA21) is a binding offer with a validity period, usually created with reference to an inquiry. Neither touches inventory or accounting, but both feed pipeline reporting.
How does SAP SD integrate with other modules in the O2C cycle?
MM provides material master and inventory; WM/EWM handles picking and packing; PP receives sales demand through transfer of requirements; QM can require inspection before delivery; FI handles receivables, revenue and tax through VKOA; CO/CO-PA handles profitability. In S/4HANA, FI and CO integration is simplified by the Universal Journal (ACDOCA).
Did the Order-to-Cash process change in SAP S/4HANA?
The process steps are unchanged — inquiry to cash still flows the same way. What changed is the mechanics behind five of them: Business Partner replaces the customer master, advanced ATP replaces the classic availability check, BRF+ replaces NACE for output, FSCM replaces classic credit management, and FI/CO postings merge into ACDOCA. Knowing the steps is not enough in an S/4HANA interview — you are expected to know what changed underneath them.

Written by
Rahul Narain Saxena
SAP SD Solution Architect with 17+ years of hands-on implementation experience across SAP ECC and S/4HANA. Every guide on The SD Vault is written from live project experience, not summarised from documentation.
Official SAP references
- SAP Help Portal — official S/4HANA Sales product documentation
- SAP Training — S/4HANA Sales courses covering end-to-end Order-to-Cash execution
Master every O2C scenario — hands-on.
Order-to-Cash is the foundation. Inside The SD Vault you’ll find configuration scenarios for every step, 230+ interview questions, and a Ready Reckoner for fast on-the-job reference.
Get Lifetime Access →Or start free with the sample pack — 10 real interview questions, a full configuration scenario, and a Ready Reckoner topic. No login.