SAP tableObjectBSADModuleFI_FICO

BSAD table — Cleared Customer Items (Accounts Receivable)

BSAD holds cleared accounts receivable line items. Each row is one customer sub-ledger line that has been cleared, carrying both the original posting data and the clearing document, clearing date, and clearing amount. It is the closed counterpart to BSID and is used to answer 'was this invoice paid, when, and against what payment or credit memo' after the fact.

BSAD is the classic ECC customer sub-ledger table for cleared items, the historical companion to open-item table BSID. This page covers what actually goes wrong when reconciling receivables through BSAD, how it joins to BKPF and the general ledger, and how its role changes once ACDOCA is in play.

Published 15 Sept 2026· 1,118 words

What it stores

A row in BSAD represents one customer line item that has been cleared, meaning it has been matched off against a payment, a credit memo, another invoice, or a write-off. It carries the original posting key fields (document number, fiscal year, line item, posting date, amount) plus the clearing-specific fields: which clearing document closed it and on what date. BSAD is populated the moment a line item leaves the open state in BSID; the line does not stay in both tables, it moves. This makes BSAD the table to query for 'this invoice was paid three weeks late, prove it' or 'why does this customer show zero open items when the invoice is still unpaid in the source system' type questions during reconciliation and audit support.

Key fields

  • MANDT - client, always the first restriction
  • KUNNR - customer number, the sub-ledger account
  • BUKRS - company code
  • GJAHR - fiscal year of the original posting document
  • BELNR - document number of the original posting
  • BUZEI - line item number within that document
  • AUGBL - clearing document number, the key field that BSID never has populated
  • AUGDT - clearing date, the date the item was closed
  • AUGGJ - fiscal year of the clearing document
  • BUDAT - posting date of the original line
  • DMBTR - amount in local currency
  • WRBTR - amount in document currency
  • SHKZG - debit/credit indicator
  • ZUONR - assignment field, often used for payment matching
  • XBLNR - reference document number from the source

How it joins the data model

  • BSAD-BUKRS = BKPF-BUKRS and BSAD-BELNR = BKPF-BELNR and BSAD-GJAHR = BKPF-GJAHR to pull header data for the original invoice
  • BSAD-AUGBL = BKPF-BELNR (same company code, clearing fiscal year) to pull header data for the clearing document itself
  • BSAD-BUKRS = BSEG-BUKRS and BSAD-BELNR = BSEG-BELNR and BSAD-GJAHR = BSEG-GJAHR and BSAD-BUZEI = BSEG-BUZEI to reach the full line item including cost objects and tax fields not carried in BSAD
  • BSAD-KUNNR = BSID-KUNNR conceptually, since an item that appears in BSAD once appeared in BSID before clearing
  • BSAD-BUKRS = T001-BUKRS for company code text and currency defaults
  • BSAD-KUNNR and BSAD-BUKRS relate to KNC1 for the customer's total transaction figures by fiscal year

How to read it safely

MANDT is implicit in most tools but never skip it if querying at database level. Always restrict on BUKRS and KUNNR before anything else; BSAD is a cluster of every cleared item ever posted for every customer in the client, and a query with only a date range on BUDAT or AUGDT will scan enormous volumes. If the question is about a specific clearing event, filter on AUGBL and AUGDT together, not AUGDT alone, since clearing runs post many documents on the same date. If the question is about a specific invoice, filter on BELNR plus GJAHR plus BUKRS, not BELNR alone, because document numbers repeat across fiscal years and company codes.

How to prove it in the data

Symptom: a customer disputes that invoice 1900000123 was ever paid. Select BSAD where BUKRS = the company code, KUNNR = the customer, BELNR = '1900000123', GJAHR = the invoice year. If a row returns, read AUGBL and AUGDT: that is the clearing document and date. Follow AUGBL into BKPF to see what kind of document closed it (incoming payment, credit memo, transfer posting) and BSEG to see the offsetting bank or clearing account.

ECC vs S/4HANA

On S/4HANA, the line item detail that BSAD held is now sourced from the universal journal, ACDOCA, with clearing status derived from the same fields SAP always used but stored differently underneath. BSAD, BSID, BSIK and BSAK are kept as compatibility views for existing reports and interfaces; reads still work and return the same shape of data, but the physical table no longer exists as a separate database object the way it did in ECC. New custom development should query ACDOCA directly with the appropriate clearing fields rather than building fresh logic on the compatibility view.

Common pitfalls

  • Assuming an item missing from BSID means it was never posted. It usually means it has been cleared and now lives in BSAD only; check both tables before declaring a document does not exist.
  • Treating AUGDT as the payment date. It is the clearing date in the system, which can lag the actual bank value date by days if clearing was run manually or delayed.
  • Reversing a clearing and expecting the original BSAD row to simply disappear. A reversal creates its own clearing document; the item may reopen into BSID with a new document trail, and querying BSAD alone after a reversal gives a stale picture.
  • Summing DMBTR across BSAD to reconcile a customer balance without also including BSID open items. A true balance check needs both tables, or better, KNC1 for the summarized figure.
  • Assuming BUZEI line item numbers are unique per document across company codes. They are only unique within BUKRS plus BELNR plus GJAHR.
  • Forgetting that partial clearings and residual items create multiple BSAD rows tied to the same original invoice, so a naive join back to BSEG can multiply rows unexpectedly.
  • Querying BSAD directly in a custom program without an index on the fields being filtered, which on a large productive client can time out; this is a job for a properly indexed report or an authorized reporting tool, not ad hoc SE16 on millions of rows.

Whose problem this is

Accounts receivable accounting owns the business meaning of clearing status. FI configuration owns the clearing rules and tolerance groups that decide how items get matched. Basis or the data team owns performance concerns when a query against BSAD or its S/4 equivalent is slow. Disputes about whether an item was correctly cleared belong to the AR team first, escalated to functional FI consulting only when the clearing logic itself looks wrong.

Related SAP objects

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

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