SAP tableObjectKNB1ModuleSD_O2C

KNB1 table — Customer Master Company Code Data

KNB1 stores the company-code-specific segment of the customer master: one row per customer per company code, holding the reconciliation account, payment terms, dunning data, and posting or deletion blocks that FI uses when the customer posts to that company code. It complements KNA1 (general data) and KNVV (sales area data) and is the table FI-AR checks before allowing any posting.

This page covers KNB1, the company-code segment of the customer master, and how it interacts with the general data in KNA1 and the sales area data in KNVV within order-to-cash. It focuses on the joins, the fields that actually drive AR behaviour, and the failure patterns seen when a customer posts, bills, or blocks unexpectedly at a given company code.

Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,072 words

What it stores

One row in KNB1 represents the accounting view of a customer for a single company code: the combination of KUNNR and BUKRS. It exists because a customer can be a legitimate business partner in one company code and completely unknown in another. The row carries the reconciliation account that ties the customer's open items into the general ledger, the payment terms and dunning procedure used for that legal entity, correspondence and tolerance group settings, and the posting and deletion blocks that FI applies at company code level. Without a KNB1 row for a given BUKRS, no financial posting can happen for that customer in that company code, regardless of what exists in KNA1 or KNVV. It is maintained through the customer master transactions and is the segment finance teams own, as opposed to the sales area segment which sales teams own.

Key fields

  • MANDT - client
  • KUNNR - customer number, joins to KNA1 and KNVV
  • BUKRS - company code, joins to the company code master
  • AKONT - reconciliation account in the general ledger for this customer in this company code
  • ZUAWA - sort key used for line item display and clearing
  • ZTERM - payment terms key used as a default when this customer's open items are created
  • ZAHLS - payment methods allowed for this customer in this company code
  • SPERR - posting block for the company code, stops new postings
  • LOEVM - deletion flag at company code level
  • FDGRV - planning group used in cash management
  • MAHNA / MAHNS - dunning procedure and dunning block

How it joins the data model

  • KNB1-KUNNR = KNA1-KUNNR (general data for the same customer)
  • KNB1-KUNNR = KNVV-KUNNR (sales area data for the same customer, different org level)
  • KNB1-BUKRS drives which company code's postings, dunning runs and payment programs apply to the customer
  • KNB1-ZTERM is the default that sales area or sales document terms can override at document level
  • KNB1-AKONT feeds into the general ledger reconciliation account, not itself an SD table but the field consultants check first when postings land on the wrong account

How to read it safely

Always restrict on MANDT and, in practice, on BUKRS before touching KNB1 in a wide report, since a large customer base multiplied by every company code can produce a large result set even though the table itself is not huge. KUNNR plus BUKRS together are unique and selective; querying by KUNNR alone across all company codes is fine for a single customer check but wrong for a mass report. Do not confuse SPERR (posting block) with the sales-side blocks stored in KNVV or on the sales order; they are independent and a customer can be fully open in one and blocked in the other.

How to prove it in the data

Symptom: an invoice cannot be posted to accounting for a customer, error referencing a blocked or missing account assignment. Select KNB1 for that KUNNR and the BUKRS of the billing document's company code. Check SPERR for a posting block, LOEVM for a deletion flag, and AKONT for the reconciliation account; if the row does not exist at all for that BUKRS, the customer was never extended to that company code and that is the entire root cause, not a configuration issue elsewhere.

ECC vs S/4HANA

KNB1 continues to exist as a transparent table in S/4HANA and is still populated and read directly by much of the customer master logic. SAP's direction is to model the customer as a business partner with company-code data carried through the business partner's company code role, and reporting increasingly goes through compatibility views layered over KNB1 rather than the table being queried raw. For ABAP development and ad hoc analysis, selecting KNB1 directly still works and returns correct data.

Common pitfalls

  • Assuming a customer exists everywhere because KNA1 has a row: KNA1 is client-wide general data, KNB1 is company-code specific, and a missing KNB1 row for the target BUKRS is one of the most common reasons a billing document fails to release to accounting.
  • Confusing the posting block in KNB1-SPERR with the sales-side order or delivery block; clearing one does nothing to the other, and support tickets often get closed against the wrong block.
  • Treating ZTERM in KNB1 as the terms that will actually appear on a sales document; the sales order and the sales area segment (KNVV) can carry their own payment terms, and document-level terms can be manually overridden, so KNB1 is only the fallback default.
  • Reading AKONT in isolation and assuming it explains a posting to the wrong GL account without checking whether a special reconciliation account was substituted by an alternative reconciliation account determination at the point of posting.
  • Forgetting that LOEVM at company code level can be set independently of the deletion flag in KNA1 or KNVV; a customer can be flagged for deletion in accounting while still fully active for sales.
  • Assuming a change to KNB1 payment terms retroactively changes open items already posted; existing line items keep the terms that were valid when they were created.

Whose problem this is

The FI-AR or credit management team owns the content of KNB1, since it is company-code accounting data: reconciliation account, payment terms defaults, dunning setup and posting blocks. Sales or O2C consultants read it to explain why a customer cannot bill or post to a given company code, but changes to the row are made through the customer master maintenance owned by finance master data governance, not by SD configuration.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tables/knb1ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.