SAP tableObjectBSAKModuleFI_FICO

BSAK table — Cleared Vendor Line Items

BSAK stores cleared accounts payable line items - one row per vendor line item that has been matched against a clearing document, whether that clearing was a payment, a credit memo offset, or a manual write-off. It is the secondary index SAP maintains alongside BSEG so that vendor-side reporting does not have to scan the full line item table.

BSAK is the classic secondary index table for cleared vendor open items in FI, sitting next to BSIK (open items) and mirroring the customer-side pair BSID/BSAD. This page covers what a row represents, the fields consultants actually query, the joins back to BKPF and BSEG, and the recurring mistakes people make when reading clearing data out of it.

Published 15 Sept 2026· 1,216 words

What it stores

Each row in BSAK is one vendor line item from BSEG that has reached clearing status, duplicated here with the clearing document attached. A single invoice line moves from BSIK into BSAK the moment it is matched against a payment or another offsetting document; the original document number, fiscal year, and line item stay the same, but AUGBL, AUGDT, and AUGGJ get populated with the clearing document, its posting date, and its fiscal year. BSAK is not a separate ledger of facts - it is a filtered, indexed copy of vendor-relevant BSEG rows, kept so that queries like 'what did we pay this vendor and when was it cleared' do not have to filter the entire BSEG table by account type and clearing status on every run.

Key fields

  • MANDT - client
  • BUKRS - company code
  • LIFNR - vendor account number
  • UMSKS / UMSKZ - special G/L transaction type and indicator, if the item is a down payment or similar
  • AUGDT - clearing date
  • AUGBL - clearing document number
  • AUGGJ - fiscal year of the clearing document
  • BELNR - original accounting document number
  • GJAHR - fiscal year of the original document
  • BUZEI - line item number within the document
  • BUDAT - posting date of the original document
  • BLDAT - document date
  • BLART - document type
  • SHKZG - debit/credit indicator
  • DMBTR - amount in local currency
  • WRBTR - amount in document currency
  • WAERS - currency key
  • ZFBDT - baseline date for payment terms
  • ZTERM - payment terms key
  • ZUONR - assignment field, often used for reconciliation matching

How it joins the data model

  • BSAK-BUKRS = BKPF-BUKRS and BSAK-BELNR = BKPF-BELNR and BSAK-GJAHR = BKPF-GJAHR to get header data for the original document
  • BSAK-BUKRS = BSEG-BUKRS and BSAK-BELNR = BSEG-BELNR and BSAK-GJAHR = BSEG-GJAHR and BSAK-BUZEI = BSEG-BUZEI to pull additional line item detail not carried in BSAK
  • BSAK-AUGBL = BKPF-BELNR (same company code and fiscal year) to reach the clearing document's own header, which is a separate document from the invoice
  • BSAK-LIFNR joins to the vendor master line item summary in LFC1 for balance reconciliation
  • For withholding tax on the vendor line, BSAK-BELNR/BUKRS/GJAHR joins to WITH_ITEM

How to read it safely

Always restrict on MANDT implicitly through the system, then on BUKRS first - BSAK is not partitioned by anything more selective, and a company-code-only select on a large vendor ledger can still return millions of rows. Add LIFNR whenever the question is vendor-specific; it is the next most selective field after company code. If the question is about a clearing event rather than an invoice, filter on AUGBL plus BUKRS plus AUGGJ rather than scanning by BELNR, since one clearing document can clear many line items across many vendors. Avoid open-ended date ranges on BUDAT alone - combine with BUKRS and, where possible, BLART, or the read turns into a full table scan on a table that has no small footprint in any live system. Restricting purely on ZUONR or WAERS without BUKRS is a common way to make a five-minute query run for twenty minutes.

How to prove it in the data

Symptom: accounts payable says an invoice was paid but the vendor claims otherwise. Select BSAK with BUKRS = the company code and LIFNR = the vendor and BELNR = the invoice document number. If a row exists, read AUGBL and AUGDT - that clearing document number and date is the payment or offset that closed the invoice. If no row exists in BSAK for that BELNR, the invoice is still open and belongs in BSIK, meaning the vendor's claim of non-payment may be correct and the finance team's belief that it was settled is wrong.

ECC vs S/4HANA

In S/4HANA, BSAK is implemented as a compatibility view rather than a physical table populated by its own update logic. The line item data is sourced from BSEG (and, for reporting, from the universal journal), with clearing status derived rather than stored redundantly the way ECC did it. Reads against BSAK still work and return the same shape of data, but the table is not being written to directly, and heavy custom code that assumed direct table buffering or database-level locking on BSAK should be revalidated during an S/4HANA move.

Common pitfalls

  • Assuming a row in BSAK means cash left the company - clearing can happen via credit memo offset, manual reset, or intercompany netting, none of which is a bank payment; check BLART and the clearing document's own header before concluding money moved
  • Forgetting that a document reversed via a later reversal still shows as cleared in BSAK if the reversal itself created a clearing entry - the item looks settled in this table even though the net effect is that both the original and its reversal offset to zero
  • Querying BSAK for an item that is still open - it will not appear here at all, and the natural but wrong conclusion is that the document does not exist; check BSIK before assuming a data loss
  • Treating AUGDT as the payment date - it is the date the clearing was posted, which can differ from the actual value date on the bank statement or the date in REGUH/PAYR for automatic payment runs
  • Summing DMBTR across BSAK to get a vendor balance - cleared items are, by definition, netted out already; a balance calculation belongs on BSIK (open items) or the vendor master line item table, not here
  • Joining on ZUONR expecting it to be unique - it is a free-text or derived assignment field and frequently repeats across unrelated documents, especially after mass clearing runs
  • Not checking UMSKZ when a special G/L item (down payment, bill of exchange) clears - the clearing pattern for these does not match a normal invoice clearing and can mislead reconciliation logic that assumes standard items only

Whose problem this is

Accounts payable and general ledger accounting own the business meaning of what is cleared and why. Basis or the data/reporting team owns why a query against BSAK is slow. If a clearing date or clearing document looks wrong, it is an FI question first - reversed clearings, manual F-44-style resets, and payment program runs all write here differently, and someone who knows the process that cleared the item needs to look at the clearing document itself, not just the BSAK row.

Related SAP objects

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

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