This error appears when creating or changing a purchase order in ME21N/ME22N for a material that isn't set up for automatic inventory valuation at the plant in question. SAP needs to know which cost object -a cost center, an order, an asset, or a project -should absorb the purchase cost instead of posting it to inventory, and it won't let the line proceed until you tell it. This guide covers two complete solutions: the quick, everyday fix directly on the purchase order, and the underlying configuration-level fix (via OMS2) for when the material should actually be inventory-managed but isn't currently set up that way.
SAP requires an account assignment category whenever a material cannot be automatically valuated into inventory at the plant on the purchase order -most commonly because the material's valuation class doesn't have both quantity updating and value updating active for that plant in configuration. Without automatic valuation, SAP has no inventory G/L account to post the purchase value to, so it asks you to specify where the cost should go instead.
For most day-to-day cases -buying a non-stock item, a service, a consumable, or anything genuinely meant to be expensed rather than held in inventory -the fastest fix is right on the purchase order itself.
Go to transaction ME21N (or ME22N to change an existing PO) and select the item line showing the error.
Enter an Account Assignment Category in the "Acct Assignment Cat." field on the item overview line -commonly:
| Category | Meaning | Used When |
|---|---|---|
| K | Cost Center | The cost should be charged directly to a department's cost center |
| F | Order | The cost should be charged to an internal order or production order |
| A | Asset | The purchase is for a fixed asset (capital expenditure) |
| P | Project | The cost should be charged to a WBS element on a project |
Fill in the corresponding fields on the item's Account Assignment tab (e.g. the cost center number for category K, or the order number for category F).
Save the purchase order.
If the material genuinely should be tracked in stock and automatically valuated at this plant -and account assignment shouldn't be required for it at all going forward -the underlying fix is in material type configuration, not on the individual purchase order.
Go to Tcode -OMS2
Select Quantity/Value Updating.
Select the material type -for example, P Raw Material.
Select Valuation Class -3005
Select Qty Update -tick, Value Update -tick.
Save.
Every purchase in SAP eventually needs to post somewhere in Financial Accounting -either into an inventory (balance sheet) account, or directly as an expense against a specific cost object. For a normal stock material with quantity and value updating active, SAP already knows exactly where to post: the inventory G/L account determined through OBYC based on the material's valuation class. That's why standard stock purchases never ask for account assignment -the system already has everything it needs.
But when a material isn't set up for automatic value updating -either because it's genuinely a non-stock item (a service, an expense, a capital asset) or because its material type/valuation class configuration simply doesn't have inventory valuation switched on -SAP has no inventory account to fall back to. Account assignment exists precisely to fill that gap: it lets the buyer explicitly redirect the cost to a cost center, order, asset, or project instead, ensuring the expense still lands somewhere meaningful in Controlling or Asset Accounting even without an inventory posting.
| Category | Full Name | Typical Use Case |
|---|---|---|
| K | Cost Center | Office supplies, routine services, consumables charged to a department budget |
| F | Order | Costs charged to an internal order or a specific production/process order |
| A | Asset | Capital purchases meant to be capitalized as a fixed asset |
| P | Project (WBS Element) | Costs charged to a specific work breakdown structure element on a project |
| U | Unknown | Account assignment to be determined later, typically used with goods receipt for unplanned account assignment |
| Blank | Standard (Stock) | No account assignment needed -the material is fully inventory-managed |
Choosing the right category matters beyond just clearing the error: it determines which report the cost shows up in later (a cost center report, an order settlement, an asset register, or a project cost report), so picking the category that matches how the business actually wants to track this specific spend is worth a moment's thought rather than defaulting to whichever one is fastest to fill in.
Account assignment categories, OMS2 quantity/value updating, and the underlying material type/valuation class logic are unchanged in SAP S/4HANA, since this is foundational Materials Management configuration rather than something restructured by the Universal Journal. On the interface side, the Fiori app "Create Purchase Order" (and "Manage Purchase Orders") exposes the same account assignment category field and Account Assignment tab data as ME21N/ME22N, so the fix described in Solution 1 applies identically whether your buyers work in classic SAP GUI or through Fiori.
One S/4HANA-relevant nuance: because the Universal Journal unifies FI and CO postings, an account-assigned purchase (Solution 1) flows into Controlling and, where relevant, Asset Accounting immediately and consistently with other real-time postings, making it even more important that the account assignment category and cost object chosen are correct the first time -there's no batch delay that would otherwise give a buffer to catch and correct an error before it reaches downstream reporting.
| Error | Root Cause | Typical Fix |
|---|---|---|
| Account assignment mandatory for material (enter acc. ass. cat.) | Material isn't set up for automatic inventory valuation at this plant | Enter an account assignment category in ME21N, or fix OMS2 if the material should be stock-managed |
| Account determination for entry ENER BSX not possible | No G/L account configured in OBYC for the material's valuation class under this grouping code | Maintain the missing BSX mapping in OBYC |
| Valuation class X not allowed for material type Y | The valuation class isn't included in the list of classes permitted for that material type | Add the valuation class to the material type's allowed list in OMSK, or choose a different valid class |
| No goods receipt possible for purchase order (M7022) | GR indicator, confirmation control, or a fully-received line on the PO item | Check PO History and the Delivery/Confirmations tabs in ME22N |
All of these ultimately trace back to material master and valuation configuration in one way or another, which is why a solid understanding of valuation classes, material types, and OMS2/OBYC together makes troubleshooting any one of them noticeably faster.
Priya Sharma, a buyer at a manufacturing company, hit this error while creating a purchase order for a raw material that had recently been introduced under a new valuation class as part of a supplier consolidation project. Her first instinct was to use the quick fix and assign the cost to her department's cost center with category K, since that would clear the immediate blocker.
Before doing that, she checked with her MM configuration team, since this was clearly meant to be a genuine raw material that should flow through normal inventory, not an expense. They confirmed the new valuation class had been created for the supplier consolidation project but nobody had completed the OMS2 step enabling quantity and value updating for it at this plant -an oversight from the go-live checklist. Once that configuration was corrected, not only did Anjali's specific PO work correctly with standard stock account assignment (no category needed), but every other purchase order for materials under that same new valuation class stopped hitting the same error too. This illustrates the key decision point in this guide: the quick fix would have worked for her one PO, but it would have masked a configuration gap that was about to affect many more purchases for the same new material category.
| Transaction | Purpose |
|---|---|
| ME21N / ME22N | Create or change a purchase order, including account assignment category. |
| OMS2 | Configure quantity/value updating per material type and valuation area. |
| OMSK | Maintain valuation classes and their assignment to material types. |
| MM03 | Display a material master to check its assigned valuation class and material type. |
| OBYC | Configure automatic account determination for materials that are inventory-valuated. |
| KS03 | Display a cost center, useful to confirm the correct cost center before entering it as account assignment. |
Q: Why does SAP sometimes require an account assignment category on a purchase order and sometimes not?
It depends on whether the material is set up for automatic inventory valuation (quantity and value updating active for its valuation class at that plant). If it is, SAP already knows to post to inventory and no category is needed; if not, account assignment tells SAP where else to post the cost.
Q: What's the risk of always defaulting to account assignment category K to clear this error quickly?
It can mask a genuine configuration gap where a material should have been inventory-managed, leading to costs being expensed to cost centers instead of tracked as stock, and understating inventory value while overstating departmental expenses.
Q: What does changing Quantity/Value Updating in OMS2 actually affect?
It changes whether materials under that material type and valuation area combination are automatically inventory-valuated, affecting every material sharing that combination, not just a single purchase order.
"Account assignment mandatory" is SAP's way of asking a genuinely important question: if this purchase isn't going into inventory, where should the cost go instead? For true non-stock purchases, entering the right account assignment category in ME21N is the complete, correct fix. But when the material in question should be a normal stock item, the real fix is checking OMS2 -because entering a cost center on the PO would only paper over a configuration gap that will keep resurfacing on every future purchase order for the same material category. Use the decision tree above to quickly tell which situation you're actually in.