Billing Document Fails Account Determination
The billing document saves but cannot post to accounting because the system cannot find a valid G/L account for the combination of chart of accounts, sales organization, account assignment group of customer and material, and account key. The fix is either a missing entry in the account determination table (VKOA) or missing account assignment group in customer or material master data.
Covers the classic VF01/VF02 failure where a billing document is created but blocked from posting to Financial Accounting because revenue account determination cannot resolve a G/L account. Walks through the account determination table, master data account assignment groups, and the pricing procedure account keys that drive it, and how to separate a quick master data fix from a config change needing transport.
Published 16 Sept 2026· 1,083 words
The business symptom
Billing team reports that an invoice was created in VF01 but 'did not go to accounting' or shows a red light with an error about account determination. Finance sees the billing document exists in SD but no accounting document number appears against it, so revenue never lands in the ledger and the customer balance is not updated. Sometimes it is reported as 'the invoice is stuck' or 'we cannot release billing to accounting' after mass billing runs, with a handful of documents failing out of a batch while the rest post cleanly. On a new material or new customer, the complaint is usually 'this never happened before with the other materials' - a strong hint that master data on the new object is incomplete rather than the configuration being broken.
The configuration behind it
- Missing entry in the revenue account determination table (VKOA) for the exact key combination the document generates - chart of accounts, sales organization, account assignment group of customer, account assignment group of material, and account key (ERL, ERS, ERF, and similar).
- Account assignment group not maintained on the customer master (sales area data, billing tab) or on the material master (sales org 2 view) - most common on newly created customers or materials that were copied incompletely.
- G/L account linked to the account key does not exist in the company code, or exists but is blocked for posting, marked for deletion, or set up as a different account type than the posting requires.
- Account key itself not assigned correctly in the pricing procedure against the relevant condition type (KOFI for the base account determination, KOFK for cost of goods sold in some setups) - so the condition never carries an account key to resolve.
- Constant or account modifier missing from a step that has been configured to use one, causing the access sequence in VKOA to be one field short of a match.
- Intercompany or cross-company billing where the account determination for the second company code was never set up, so the first leg posts but the second fails.
- New condition type added to the pricing procedure for a promotion or rebate without a matching VKOA access, so pricing works but accounting cannot value that line.
- Costing or controlling assignment missing - the line requires a cost center, profit center, or CO/PA characteristic that has not been derived, so even a resolved G/L account is rejected by controlling checks.
What to check
- VF02, open the failed billing document, read the error log directly - it names the missing combination and the account key involved.
- Environment menu in VF02, account determination analysis, to see exactly which access in VKOA was tried and which field values failed to match.
- VD02 or XD03, check the account assignment group on the customer's sales area billing data.
- MM02 or MM03, sales org 2 view, check the account assignment group on the material.
- VKOA, check whether an entry exists for the resolved combination, including any generic entries meant to act as a catch-all.
- FS00, check the G/L account exists in the company code, is not blocked, and matches the expected account type.
- V/08, check the pricing procedure to confirm the account key is assigned against the correct condition type step.
- KE4I or the relevant CO-PA/controlling derivation check if the error references a missing cost object rather than a G/L account.
How to prove it in the data
Pull the account determination analysis output from the failed billing document and lay it next to the VKOA table entries for the same access sequence - the missing row is usually visible immediately, one field off (account assignment group, account key, or company code). Cross-check the customer and material master account assignment groups against a working billing document for the same sales organization to confirm which side changed.
Resolution path
If the customer or material master is simply missing the account assignment group, that is a data fix - update the master record and re-release the billing document from VF02, no transport needed. If the VKOA table is missing the combination, that is configuration and needs a transport through the standard change path; SD config owns adding the entry, but the G/L account it points to must already exist and be open for posting, which is FI's responsibility. If the G/L account is blocked or missing in the company code, FI creates or unblocks it - SD cannot fix this from the sales side no matter how the pricing procedure is adjusted. If the account key is missing from the pricing procedure step, that is a pricing configuration change and also needs transport, tested carefully because it affects every document using that procedure, not just the failed one. Once the underlying cause is corrected, the existing billing document usually just needs to be re-released to accounting; it rarely needs to be cancelled and recreated.
The fix people try first (and why it fails)
The reflex fix is to cancel the billing document and recreate it, assuming it was a one-off glitch. It fails identically because the underlying VKOA or master data gap is still there, and now there are two failed billing attempts on the record instead of one. A second common shortcut is manually posting the revenue through FI with a generic suspense or clearing account to make the number appear in the ledger for month-end - this breaks the automated link between SD and FI, leaves the billing document permanently unreleased in SD, and creates a reconciliation gap that surfaces later as an unexplained variance between billed revenue and posted revenue.
Whose problem this is
Shared between SD and FI. SD owns identifying the missing key combination and, where it is master data, correcting the customer or material record. FI owns the chart of accounts, G/L account status, and any account determination table entries once the correct account is confirmed. Controlling owns any CO/PA or cost object derivation failures layered on top.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-functional-issues/account-determination-error-in-the-billing-documentERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.