Skip to content
Cette page existe aussi en français. Voir en français
SAP Tutorials

SAP Account Determination: How OBYC Picks the G/L Account

A goods receipt posts to the G/L without you picking an account. See how SAP account determination (OBYC) finds it, and how to fix the error.

SAP Account Determination (OBYC): From Goods Movement to G/L Posting

You post a goods receipt in MIGO. You enter a material, a quantity, a purchase order. At no point does SAP ask which G/L account to post to. And yet an accounting document has just been created.

That is the job of SAP account determination: the system works out the account from a few criteria (the company, the material, the movement) and looks up the answer in a mapping table that you display with transaction OBYC. In this article we start from a real movement and trace the chain back to the account. We also cover what to do on the day SAP tells you it cannot find one.

Key takeaways in 30 seconds
  • A valuated goods movement in SAP MM automatically creates an accounting document in SAP FI. The user never enters an account.
  • SAP combines three families of criteria: the organization (the company code’s chart of accounts), the material (its valuation class) and the transaction (the movement type, which triggers transaction keys such as BSX or WRX).
  • The criteria-to-account mapping is displayed in OBYC. A built-in simulation shows the account SAP finds for a given material and transaction.
  • The error “Account determination for entry … not possible” means one combination of criteria has no account. You diagnose it with the simulation, no guesswork needed.

What happens in accounting when you receive stock?

One goods receipt, two documents

A goods receipt against a purchase order is the second step of the purchasing cycle. When you post it, SAP first creates a material document. It describes the physical side: which material, how much, in which plant, in which storage location.

If the material is valuated, SAP also creates an accounting document. This one describes the money: stock goes up by an amount, and an offsetting entry is recorded while you wait for the vendor invoice. The document goes straight into the general ledger in SAP FI. In S/4HANA it lands in the S/4HANA Universal Journal, like every other posting.

Check it yourself: in MIGO, the material document header gives you access to the related accounting document. It is the same habit as following the document flow on the sales side.

Nobody enters the account: SAP derives it

The warehouse clerk does not know the chart of accounts, and that is exactly how it should be. SAP finds the account without any user input, as long as the accounts were maintained beforehand in a Customizing table.

The practical consequence: if the posting is wrong, it is rarely the fault of the person who entered the receipt. It comes from a setting, a material master field or a combination nobody planned for.

The criteria that decide the account

SAP starts from what you entered and derives a series of keys from it. The chain reads like this: the movement triggers a transaction key, sometimes refined by a modifier; the material brings its valuation class; the company code brings its chart of accounts; the combination of the three gives the G/L account.

The SAP account determination chain Three chains of criteria converge on the OBYC table. The movement type points to a value string that triggers transaction keys. The plant gives the company code, which gives the chart of accounts. The material carries its valuation class in the Accounting 1 view. OBYC combines these criteria, optionally refined by a modifier and a valuation grouping code, and returns the G/L account. The account determination chain Three criteria derived from your entry, one mapping table, one G/L accountWhat you enter What SAP derives The key used Movement type e.g. 101 Value string e.g. WE01 Transaction key e.g. BSX, WRX Plant on the movement Company code that owns the plant Chart of accounts of the company code Material on the movement Material master Accounting 1 view Valuation class OBYC Mapping table criteria → account G/L account debit and credit Optional refinements Modifier (e.g. VBR under GBB) and valuation grouping codeNobody enters the account: SAP derives it from these criteria.
The movement gives the transaction key, the plant gives the chart of accounts, the material gives its valuation class. OBYC combines all three to find the G/L account.

The chart of accounts, carried by the company code

You enter a plant on your movement. SAP derives the company code it belongs to, then the chart of accounts assigned to that company code in FI Customizing. The chart of accounts is a key of the account determination table: accounts are maintained chart by chart, because the same account number can mean something different from one chart to another.

The valuation class, carried by the material

The valuation class groups together the materials that should post to the same accounts. It is maintained in the material master, Accounting 1 view, where you also set the valuation (and, if needed, split valuation). Not every class is allowed for every material: the material type is linked to an account category reference, which lists the permitted classes.

The transaction key, triggered by the movement

You pick a movement type (101 for a goods receipt against a purchase order, 201 for a goods issue to a cost center, and so on). It points to a value string, the list of possible postings for that kind of transaction. Each posting carries a three-letter transaction key: BSX for stock, WRX for the clearing account, and so on.

For a goods receipt into the warehouse against a standard purchase order, the value string is called WE01 and contains BSX and WRX, among others. You can display value strings, but you cannot change them.

The modifier and the valuation grouping code: the refinements

Two extra keys refine the result. The first one, the account grouping code (shown on screen in the general modification column, and often simply called the account modifier), splits a transaction key that is too broad into several cases. Under GBB, it is what sends a consumption, a scrapping and an inventory difference to separate accounts. SAP delivers some codes, such as VBR, and you can create your own.

The valuation grouping code lets you assign different accounts per valuation area, for example so that a new plant gets its own stock accounts. When it is active, every valuation area must be given one.

How to read OBYC: from transaction key to G/L account

OBYC is the transaction that displays the account determination table for MM postings. It lists the transaction keys of group RMK, then, for each key, its rules and its accounts.

  1. 1
    Open OBYC

    The Procedures screen lists the transaction keys of group RMK, the one for MM postings: one description per line, with the code in the Transaction column.

  2. 2
    Double-click the key you want

    BSX, for example. SAP asks for the chart of accounts in the Enter Chart of Accounts window: enter the one of your company code.

  3. 3
    Check the rules with the Rules button

    The Accounts are determined based on section shows what the key depends on: valuation grouping code, modifier, valuation class. That tells you which columns you will see in the grid.

  4. 4
    Go back to the grid and read the accounts

    Row by row: one combination of criteria, one debit account, one credit account.

A word of caution before you touch anything

If someone changes the rules of a key (for example by adding the valuation class), SAP clears its grid: every account already maintained for that key has to be entered again. As a reader, you stay in display mode.

If you are the one configuring it, the Configure Automatic Postings activity sits in the IMG.

SPRO path:

SAP Customizing Implementation Guide → Materials Management → Valuation and Account Assignment → Account Determination → Account Determination Without Wizard → Configure Automatic Postings
Transaction keyWhat it postsWhen it comes into playDepends by default on
BSXThe stock accountOn every movement that changes the stock value (receipt, issue)Valuation grouping code and valuation class
WRXThe GR/IR clearing accountOffset of a valuated goods receipt against a purchase order, cleared by the invoiceThe chart of accounts only
GBBThe stock offset for other movementsGoods issues, scrapping, inventory differences, split by modifierModifier (and, depending on the rules, the class)
PRDPrice differencesWhen a material valuated at standard price is bought or invoiced at another priceDepending on the rules, the modifier and the class

BSX: the stock account

You receive a valuated material into stock on a purchase order item without account assignment: the stock increase goes through BSX. And when that stock leaves later, BSX is credited again.

WRX: the clearing account between goods receipt and invoice

At goods receipt time, the invoice has not arrived yet. So SAP posts the offset to a clearing account, the GR/IR clearing account. For a purchase order item, that account goes back to zero as soon as everything delivered has also been invoiced.

GBB: the offset for goods issues and other movements

Goods issue to a cost center, scrapping, inventory difference: all of them go through GBB, and the modifier sends each case to its own account.

PRD: price differences

PRD only shows up for a material at standard price (price control S). If the purchase order price or the invoice price differs from the standard price, stock stays valuated at standard and the difference goes to PRD. For a material at moving average price (price control V), an invoice variance adjusts the stock value as long as there is enough stock to cover the quantity, and does not go through PRD.

Other keys exist (KDM for exchange rate differences, UMB for a revaluation); you will read them when you need them.

Follow three movements to their accounts

Picture yourself at Glass+, the fictional glassmaker we use in our training, in the Valencia plant (company code 1030, plant 1230). Material GP-SILICE, silica sand, is kept at a standard price of €150 per ton. The account numbers below are made up for the example; in your system, they are the ones in your company code’s chart of accounts.

  • 310000: raw materials stock
  • 408100: goods received, awaiting invoice (GR/IR)
  • 601000: material consumption
  • 609900: purchase price variances
MovementTransaction keysDebitCredit
1. Receipt of 20 t against a purchase order at €150/t (movement 101)BSX, WRX310000 Stock: €3,000408100 GR/IR: €3,000
2. Issue of 5 t to a cost center (movement 201)GBB (modifier VBR), BSX601000 Consumption: €750310000 Stock: €750
3. Vendor invoice: 20 t at €155/t, so €3,100WRX, PRD408100 GR/IR: €3,000
609900 Price variance: €100
Vendor account: €3,100
Amounts are net of tax, to keep the example readable.

Case 1. The purchase order price equals the standard price: stock is debited at standard, and the clearing account is credited with the same amount. Had the order been placed at €152, the difference would have shown up at goods receipt, on PRD, because stock must stay at standard.

Case 2. Stock goes out, so BSX is credited. The offset goes through GBB, and modifier VBR sends it to the consumption account. A goods issue to a production order (movement 261) follows the same offsetting logic; SAP lets you give it different accounts, precisely so that accounting and controlling can tell production apart from scrap or inventory differences.

Case 3. The invoice clears the €3,000 expected on the clearing account. The extra €100 cannot go to stock, which is valuated at standard: it goes to PRD.

The three movements seen from the accounts Four T-accounts from the Glass+ example. Stock account 310000 is debited 3,000 euros at goods receipt (BSX) and credited 750 euros at goods issue (BSX). Clearing account 408100 is credited 3,000 euros at goods receipt (WRX) and then debited 3,000 euros at invoice (WRX): its balance goes back to zero. Consumption account 601000 is debited 750 euros at goods issue (GBB, modifier VBR). Price variance account 609900 is debited 100 euros at invoice (PRD). The three movements, seen from the accounts Each amount shows the transaction key that sent it to that account 1Receipt 101: 20 t 2Issue 201: 5 t 3Invoice: 20 t at €155/t 310000Raw materials stock Debit Credit 1 €3,000 BSX 2 €750 BSX Valuated at standard: €150 per ton 408100GR/IR clearing Debit Credit 3 €3,000 WRX 1 €3,000 WRX Balance: €0 once the invoice is posted 601000Material consumption Debit Credit 2 €750 GBB VBR Offset of the goods issue 609900Purchase price variances Debit Credit 3 €100 PRD Whatever exceeds the standard price Invoice offset: the vendor account, credited €3,100. Accounts made up, amounts net of tax.
The same three movements, read account by account: stock keeps the standard price, the clearing account is cleared by the invoice, and the €100 difference goes to PRD.

Simulate before you guess: the account determination simulation

Before you conclude that an account is missing, run a simulation. The simulation button sits in the Configure Automatic Postings activity. It is especially useful for goods movements: in MIGO, nothing shows you the posting before you save, whereas vendor invoice entry can simulate the document.

  1. 1
    Open the Configure Automatic Postings activity

    Then start the simulation.

  2. 2
    Choose how you enter the data

    By material number or by valuation class.

  3. 3
    Choose the application area

    An inventory management transaction (a movement type) or an invoice verification transaction.

  4. 4
    Enter the plant and the material (or the class)

    Then execute.

  5. 5
    Read the result

    For each transaction key in the value string, SAP displays the account it found and every criterion it used. An “e” between hyphens flags a rule that is not active for that key.

Bonus: the simulation also flags an account that is maintained in OBYC but does not exist in the chart of accounts.

“Account determination for entry … not possible”: read the error and find the gap

The message everyone searches for starts with “Account determination for entry … not possible”. It blocks the posting: SAP built a combination of criteria and found no account for it. The right move: write down everything the message shows, then replay the same combination in the simulation.

This message is number M8147. SAP has a help page that lists the settings to check: the SAP support page on error M8147.

Reading the account determination error The message Account determination for entry not possible means SAP built a combination of criteria with no account behind it. The combination includes the transaction key, the company code’s chart of accounts, the valuation grouping code and the material’s valuation class. Replayed in the simulation, it points to the missing link: a key without an account, an account missing from the chart of accounts, a new plant without accounts, a material with a different class, or a combination never maintained in OBYC. The key user passes this precise finding on to the MM consultant. Read the error: find the missing link One combination of criteria, no account for it. The simulation shows the gap. Account determination for entry … not possible The message blocks the posting: write down everything it shows The combination SAP built Transaction key e.g. BSX The simulation tells you which key has no account Chart of accounts of the company Account flagged as missing from the chart of accounts Valuation grouping code per area Works in one plant, not in the new one Valuation class of the material Works for one material, not for another of the same type Account ? not found No account: combination never maintained in OBYC What you send the MM consultant, instead of a screenshot of the error “Key BSX has no account for this valuation class in plant 1230”
The message gives you the combination, the simulation points to the missing link. Your job as a key user: turn “MIGO is broken” into a precise finding.
What you seeMost likely missing linkWho fixes it
The simulation finds no account for the key in the messageThe combination was never maintained in OBYCThe MM consultant, with the accounts supplied by Finance
It works for one material, not for another of the same typeDifferent or missing valuation class in the Accounting 1 viewThe master data key user checks, the consultant decides which class is expected
It works in one plant, not in the new oneNew valuation grouping code with no accounts assignedThe MM consultant
The simulation flags an account that does not existAccount missing from the chart of accountsFinance (FI)
Where you add value as a key user

Fixing OBYC is the consultant’s job. Yours is to turn “MIGO is broken” into “key BSX has no account for this valuation class in plant 1230”.

What OBYC does not decide

OBYC picks an account. It does not set the material’s price: valuation (standard or moving average price, plus split valuation where relevant) gives the amount. It does not decide the accounts for customer billing either: on the SD side, that is a different mechanism. And it does not clear the GR/IR clearing account: when a difference remains between delivered and invoiced quantities, that account is cleared with a dedicated process (MR11), not by editing OBYC.

Explaining account determination in an interview

The question usually comes in this form: “What happens in accounting when you post a 101?”

A thirty-second answer

“The 101 creates a material document and, if the material is valuated, an accounting document. The movement type points to a value string that contains transaction keys BSX and WRX. SAP combines those keys with the company code’s chart of accounts, the valuation grouping code and the material’s valuation class to find the accounts in OBYC: stock on the debit side, GR/IR clearing on the credit side.”

Add the case of a standard-price material bought at a different price (PRD) and you show that you understand the mechanics. More topics like this one are waiting for you in our SAP consultant interview questions.

Frequently asked questions

What is OBYC used for in SAP?

OBYC displays and maintains the automatic account determination table for postings coming from MM. For each transaction key (BSX, WRX, GBB, PRD and others), it tells SAP which G/L account to post to, based on the chart of accounts, the valuation class and any refinements. That is what lets a goods receipt or a goods issue create an accounting document without anyone entering an account.

How does SAP choose the account for a goods receipt?

It combines three criteria: the company code’s chart of accounts (derived from the plant), the material’s valuation class, and the transaction keys triggered by the movement type, here BSX for stock and WRX for the clearing account.

What is the difference between BSX, WRX and GBB?

BSX posts to the stock account. WRX posts to the GR/IR clearing account, the offset of a goods receipt against a purchase order. GBB is the stock offset for other movements (goods issues, scrapping, inventory differences), split by modifier.

How do you fix the error “Account determination for entry … not possible”?

Write down the values shown in the message, then replay the same combination in the Configure Automatic Postings simulation. It tells you which key has no account and with which criteria. Pass that precise finding on to the MM consultant instead of a plain screenshot of the error.

What is a valuation class?

It is a key in the material master, Accounting 1 view, that groups materials which should post to the same accounts. It is what lets you send raw materials and trading goods to two different stock accounts, for example. The permitted classes depend on the material type.

Summary

SAP account determination fits in one sentence: a movement triggers transaction keys, the material brings its valuation class, the company code brings its chart of accounts, and OBYC maps the combination to the G/L account. Once you can trace that chain back, you can explain any stock posting, and diagnose an error instead of just forwarding it.

A concrete next step: in your test system, take a material you know, open the simulation and see which accounts SAP would find for a 101, then for a 201. If you are aiming for a consultant role, this kind of reflex is built step by step in an SAP consultant training program.

Share

Keep reading

SAP Tutorials

SAP Document Flow: Trace an Invoice Back to Its Order (VBFA)

SAP Document Flow: Trace an Invoice Back to Its Order (VBFA) It is 9:10 in the morning. A customer is disputing an invoice and wants your answer before noon. You...

Michael Antoine Michael A. 12 min read
SAP Tutorials

SAP Object Locked by Another User: What It Means (SM12)

SAP Object Locked by Another User: What It Means (SM12) An object locked by another SAP user and an object you have no rights on feel exactly the same: everything...

Michael Antoine Michael A. 15 min read
SAP Tutorials

SAP availability check (ATP): sales order not confirmed

SAP availability check (ATP): why your sales order is not confirmed The stock is right there on your screen, the sales rep is calling, and the confirmed quantity on the...

Michael Antoine Michael A. 15 min read
SAP Tutorials

SAP Credit Block: Release a Blocked Sales Order (VKM1, VKM3)

SAP Credit Block: Release a Blocked Sales Order (VKM1, VKM3) and Understand OVA8 You create a sales order the way you do a hundred times a week, and instead of...

Michael Antoine Michael A. 19 min read