SAP tableObjectBNKAModuleFI_FICO

BNKA table — Bank Master Data Table

BNKA stores the central bank master record: one row per bank country plus bank key combination, holding the bank's name, address, and SWIFT/BIC code. It is the record that customer bank details, vendor bank details, house bank configuration, and payment runs point to. It does not hold a business partner's individual account number, only the bank itself.

This page covers what a BNKA row represents, the fields worth trusting, and how the table joins into vendor and customer bank details and payment processing. The pitfalls section focuses on the confusions that cause wasted investigation time: uniqueness assumptions, the deletion flag, and mixing up the bank master with house bank configuration.

Published 15 Sept 2026· 1,140 words

What it stores

One row in BNKA represents a single bank, identified by its country and a bank key, as known to the SAP system. It does not represent a business partner's account at that bank; it represents the bank institution itself, the way a bank directory file would list it: name, street, city, region, and where available a SWIFT/BIC code and a national bank number. Rows are created either manually when a new vendor or customer supplies bank details for the first time, or in bulk by importing a country's official bank directory file. A single physical bank can end up with more than one row if it was loaded from more than one directory import over time, which matters when someone is trying to reconcile bank address data across systems.

Key fields

  • MANDT - client
  • BANKS - bank country key, part of the table's compound key; bank keys are only unique within a country, not across countries
  • BANKL - bank key, the routing or sort code identifying the bank within that country's banking system
  • BANKA - bank name as text
  • STRAS - street address of the bank
  • ORT01 - city where the bank is located
  • PROVZ - region or province code
  • SWIFT - SWIFT/BIC code, optional, not enforced as mandatory
  • BNKLZ - national bank number, meaning differs by country (routing number, sort code, IBAN bank identifier depending on the country)
  • BGRUP - bank group, used in some country-specific processing
  • BRNCH - branch identifier for banking systems where one institution has multiple registered branches under the same country/key structure
  • LOEVM - deletion flag, blocks new assignment of this bank key but does not retroactively invalidate documents already posted against it

How it joins the data model

  • BNKA-BANKS = KNBK-BANKS and BNKA-BANKL = KNBK-BANKL, resolving a customer's stored bank details to the bank master record
  • BNKA-BANKS = LFBK-BANKS and BNKA-BANKL = LFBK-BANKL, resolving a vendor's stored bank details to the bank master record
  • BNKA-BANKS = REGUH-ZBNKS and BNKA-BANKL = REGUH-ZBNKL, identifying which bank a given payment run actually used
  • BNKA-BANKS = PAYR-ZBNKS and BNKA-BANKL = PAYR-ZBNKL, tying a payment medium record back to the bank master
  • House bank configuration (the house bank ID and account ID a company code posts from) references a BANKS/BANKL combination but that configuration itself lives outside BNKA, so a broken house bank setup is diagnosed by comparing the house bank config against BNKA, not by querying BNKA alone

How to read it safely

MANDT first, as always. The real key is BANKS plus BANKL together; querying on BANKL alone across countries will return unrelated banks that happen to share a numeric code, since routing numbers are only unique inside their own country's numbering scheme. BANKA (bank name) is free text, not indexed for exact matching in the way BANKS/BANKL are, and multiple rows can carry near-identical names after repeated directory imports, so name-based lookups need a wildcard and manual eyeballing rather than an exact match. The table is not huge by SAP standards but can run into tens of thousands of rows after a full country bank directory load, so always filter by BANKS before doing anything else.

How to prove it in the data

Symptom: a vendor payment run rejects a vendor with 'bank not maintained' or similar. Pull the vendor's bank country and bank key from LFBK for that vendor and partner bank type. Take that BANKS/BANKL pair and look it up directly in BNKA. No row returned means the bank was never loaded into the master; a row returned with LOEVM set means it exists but is flagged for deletion, which blocks it from being newly assigned even though old documents referencing it remain valid.

ECC vs S/4HANA

BNKA continues to exist as a standard table in S/4HANA and has not been replaced by a compatibility view; it remains the primary bank master table. Maintenance can be done through newer Fiori-based bank master apps in S/4HANA environments where those are activated, but the underlying table structure and key fields are unchanged from the ECC version, so joins and reports written against BANKS/BANKL still work the same way.

Common pitfalls

  • Treating BANKL as globally unique. It is only unique within its BANKS country key; the same numeric bank key can point to a completely different bank in another country.
  • Editing a bank's name or address in BNKA to 'fix' one vendor's incorrect-looking bank details. BNKA is shared master data; the change affects every customer and vendor bank record pointing at that BANKS/BANKL combination, not just the one being investigated.
  • Assuming the LOEVM deletion flag blocks all use of the bank. It only prevents new assignment going forward; documents and open items already posted with that bank continue to reference it without error.
  • Confusing the bank master with house bank configuration. BNKA describes the bank as an entity; which bank a company code actually pays from is defined separately in house bank setup, and a payment run failure is often a house bank configuration problem being misdiagnosed as a BNKA data problem.
  • Assuming an empty SWIFT field indicates a data quality issue that should have been caught by validation. SWIFT/BIC is optional on this table and its absence does not by itself block postings or payment runs unless the payment method or country-specific format explicitly requires it.
  • Finding duplicate-looking rows for what is obviously the same physical bank and escalating it as data corruption, when it is usually the residue of two separate directory import runs creating near-duplicate entries with slightly different address formatting.

Whose problem this is

Ownership sits with FI master data governance, frequently shared with treasury for house bank and SWIFT/BIC accuracy. Country-specific bank directory imports are usually a periodic data load owned by whoever manages master data feeds, not something an individual consultant edits row by row. Vendor and customer-specific bank assignment errors are usually the AP/AR team's problem to raise, but the underlying BNKA record itself is fixed centrally.

Related SAP objects

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

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