CO15 — Production Order Confirmation Transaction CO15
CO15 posts a completion confirmation against a production order, at the level of the whole order or selected operations, recording actual yield, scrap and activity quantities. In the same step it can trigger automatic goods receipt for the header material and automatic goods issue for backflushed components, so a confirmation failure often surfaces as an MM stock or reservation error rather than a pure PP problem.
This page covers CO15, the order-related confirmation transaction for production orders, including how confirmation, backflush and automatic goods movement are bundled into one posting. It focuses on the failure patterns that actually occur - backflush stock shortages, blocked order status, duplicate final confirmations, and costing gaps - and how to tell them apart in the data.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,184 words
Purpose
CO15 records that some or all of the operations on a production order have been performed, capturing actual yield, scrap, rework quantity and the durations or activity quantities consumed. The structural fact that explains most of the confusion around it is that a single CO15 posting can carry three different postings inside it: the confirmation itself (AFRU), an automatic goods receipt of the header material if the order is backflush-relevant, and an automatic goods issue of the components marked for backflush. A user who only intended to log labor time can therefore trigger a stock movement, and a movement error will abort or partially abort the confirmation even though nothing about the time entry itself was wrong.
When it is used
CO15 is used on the shop floor side of discrete manufacturing, once an order has been released and work has actually started or finished. It is reached for when someone needs to confirm the order as a whole, or several operations in one session, rather than one operation at a time - that use case is normally handled with CO11N. Planners and production supervisors use CO15 at shift end or job completion to close out yield and scrap; it sits between order release (CO01/CO02) and settlement, and feeds directly into the order's cost and status picture visible in COOIS.
How to use it in practice
- Enter the production order number on the CO15 initial screen, or select it from a list
- Choose whether to confirm a specific operation or the order as a whole (final confirmation)
- Enter actual yield, scrap and rework quantities against the operation
- Confirm or override the proposed activity quantities and durations for the work center
- Review the goods movement tab for backflushed components and the automatic goods receipt quantity
- Save; the system posts the confirmation, the component goods issue, and the header goods receipt in one logical unit
Key data objects
- AFRU - the confirmation record itself, header and operation-level, holding yield, scrap, and posted dates
- AFVC and AFVV - order operation and quantity data, updated with confirmed and remaining quantities after posting
- MSEG - goods movement document items created by automatic backflush GI and automatic GR
- COEP - CO actual line items generated for the activity and material consumption tied to the confirmation
- RESB - component reservation, updated with withdrawn quantity when backflush consumes stock
- AFWI - confirmation pool entries when the confirmation is routed through background processing rather than posted online
How to prove it in the data
Start in AFRU filtered on the order number and operation to see whether a confirmation record exists, its posting date, and its yield/scrap split. Cross-check MSEG for movement types typically used for backflush issue and automatic receipt, filtering on the material document's reference to the order number, to confirm whether the goods movement side actually posted or failed. If costs look missing, check COEP for the order's CO object number and compare activity quantities there against AFRU; a confirmation with no matching COEP line usually means the cost postings were suppressed by a status or costing error, not that the confirmation itself is missing.
ECC vs S/4HANA
CO15 exists unchanged in S/4HANA as the order-level confirmation transaction; the underlying confirmation logic and the coupling with automatic goods movement have not been restructured. Fiori-based confirmation apps for shop floor users cover the same function for simpler, single-operation confirmations, but CO15 remains the transaction of choice for confirming an entire order or multiple operations in one session, and it is still the fallback when a Fiori confirmation app cannot resolve a backflush or status error.
Common pitfalls and how to diagnose them
- Backflush stock shortage - the confirmation is entered correctly but the automatic goods issue for a backflushed component fails because stock is insufficient or the storage location has none allocated; the confirmation may post partially, leaving a mismatch between AFRU and the actual component consumption, and the failed movement typically lands in the goods movement error log rather than blocking CO15 outright.
- Order status blocking confirmation - the order is not in released status, or a user status set by a workflow forbids confirmation; CO15 will refuse the posting or grey out fields, and the fix is to check the order status in CO02/CO03 before assuming CO15 itself is broken.
- Duplicate or over-confirmation - someone posts a final confirmation and later tries to confirm again, or confirms more than the planned order quantity without the system being configured to allow it; check AFRU for an existing final confirmation flag before re-entering data, since deleting or overwriting a wrong confirmation manually in the table is not supported and corrupts downstream cost and quantity totals.
- Automatic GR determination failure - the header material requires batch or serial data, or storage location determination cannot resolve a target location, so the automatic goods receipt half of the posting fails while the labor confirmation succeeds; this shows up as a confirmed order with no receipt in MSEG.
- Missing or wrong cost postings - the work center's cost center or activity type assignment is inconsistent with the order's operation, so COEP shows no actual cost line even though AFRU shows a valid confirmation; this is a costing master data problem, not a CO15 defect, and re-entering the confirmation will not fix it.
- Reflex fix to avoid - reversing a bad confirmation by direct table changes or by simply posting an opposite quantity; the correct route is the standard cancellation transaction for confirmations, which reverses AFRU, MSEG and COEP together and keeps the order's status and quantities consistent.
Whose problem this is
This is a PP functional problem in the first instance, since the confirmation logic, order status and operation setup belong to production planning configuration. Backflush and goods movement failures cross into MM and should be handed to whoever owns storage location and batch determination. A good handover states the order number, operation, the exact error or missing posting, whether AFRU shows a record, and whether MSEG shows the expected movement - that split tells the next owner immediately whether it is a PP status issue or an MM movement issue.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/co15ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.