You need to maintain bank routing number information in your system for all employees whose pay is directly deposited into their accounts. Many companies pay for this information, but here’s how you can use a free current bank routing number directory to update your SAP system.
Key Concept
Infotype 0009 records the direct deposit elections and also can contain an employee’s election to receive a live check. This infotype contains the bank routing number and account number of the employee’s account. Your SAP system validates bank routing numbers using the internal table BNKA. SAP Support Packages do not update this table, so you need to update the system yourself.
SAP systems (both R/3 and mySAP ERP) use lookup tables for most fields that should contain specific values. For example, table BNKA contains the list of valid banks. The HR, Financial Accounting (FI), and Treasury modules share table BNKA. All screens that accept a bank routing number (also known as an American Banker’s Association [ABA] number), such as those for selecting direct deposit, use this table to ensure accurate data entry. To learn more about ABA numbers, refer to the sidebar “What Are Bank Routing Numbers?”
You can use transaction FI01 to create new entries in table BNKA (Figure 1). Transaction FI02 allows you to change or delete bank information. You can use these two transactions to manually manage your list of valid banks.

Figure 1
Table BNKA with ABA numbers listed in the BANKL field
However, this task can be overwhelming if your company deals with a large number of banks. I’ll show you an easier way to update your bank data. You can buy ABA routing number information from Accuity. If you order the SAP-formatted file from Accuity, you can import the data without making any programming changes. However, you also can download similar information for free from the Federal Reserve Financial Services (FRFS). I’ll explain how to format it to use in your SAP system.
At a minimum, you should update the BNKA table when you add routing numbers or they become obsolete. It’s a good practice to update the bank name associated with each routing number because bank names change often. The importance of bank data maintenance depends heavily on the particular company’s business needs.
Note
The free file available from FRFS contains all ABA numbers. However, most records contain the parent bank name and address rather than the local branch name and address. The file available for a fee from Accuity contains local branch name and address information for each ABA number. You may prefer to use the Accuity file if you have implemented Employee Self-Service (ESS) for direct deposit.
Uploading the Bank Routing Numbers
SAP provides program RFBVALL_0 to upload bank information into bank table BNKA. This program works out of the box with Accuity’s file. Program RFBVALL_0 calls a function to transfer the input data into an internal table with the BNKA format. Then it calls a series of other functions that compare the input data to the current content of table BNKA to insert, change, or delete records.
The selection screen contains parameters that allow you to decide which of the update actions should take place. A flag allows the system to test the upload before performing the database updates. Transaction BAUP runs program RFBVALL_0.
Importing the FRFS file requires a custom-made function module and some configuration. I’ll describe the steps required to complete the BNKA table updates:
Step 1. Retrieve current ABA data
Step 2. Create a custom function module
Step 3. Specify custom functionality
Step 4. Update bank data with RFBVALL_0
Steps 1 and 4 apply regardless of the source of your ABA data. Steps 2 and 3 are not required if you use the Accuity file.
Step 1. Retrieve Current ABA Data
Many vendors offer ABA routing number information. Accuity, as official registrar, publishes a variety of print directories. These are available for a fee at www.accuitysolutions.com/order.html. It also provides an electronic file specifically formatted for SAP import.
The United States Federal Reserve Bank offers a free list of valid bank routing numbers through FRFS. You can download the information at www.fededirectory.frb.org/download.cfm. The file, called Receive All FedACH Participant RDFIs, contains the information required for updating the BNKA table.
Step 2. Create a Custom Function Module
The function module FILL_BNKA_FIELDS_US1 comes standard with SAP. This function accepts the Accuity ABA file and parses the input into the fields of table BNKA. A standard function module does not support the FRFS file layout. However, you can copy and modify the FILL_BNKA_FIELDS_SAMPLE function to easily accommodate this input format.
Note
To download a complete custom version of the
FILL_BNKA_FIELDS_SAMPLE function module (called
Z_FILL_BNKA_FIELDS_US1) click here:
download. You can use this download to upload the FRFS data without any changes.
The basic task of function module FILL_BNKA_FIELDS_US1 is to take the raw data from the input file and split it into the required fields in the BNKA table. Use transaction SE37 to make a copy of the FILL_BNKA_FIELDS_SAMPLE function and modify the source code to move the data from your source layout into the BNKA format. The RFBVALL_0 program then processes the internal BNKA table for you. The vendor that supplies your bank data update file also provides a record layout. Use the ABAP substring syntax +offset(length) as shown in Figure 2 to move data from the input record to the BNKA table.

Figure 2
Custom BNKA function
Step 3. Specify Custom Functionality
Transaction BA01 enables you to point the RFBVALL_0 program to your custom version of the data transfer function by updating table T005BU. SAP delivers the table with an entry for country US, format 1 that points to the FILL_BNKA_FIELDS_US1 function for processing the file from Accuity.
Select this entry and click on the copy icon. Create a new entry for country US, format 2. Type your custom function name over the original (copied) name in this new table entry, as shown in Figure 3. The image in Figure 3 is table T005BU. The copy button takes one of the existing records on T005BU and makes a new record. The user then types over the function name, as shown in the image.

Figure 3
Use transaction BA01 to create a new entry for country US, format 2
Step 4. Update Bank Data with RFBVALL_0
You can access program RFBVALL_0 via transaction BAUP. Figure 4 shows the selection screen. The Country selection options tell the program which of the entries that you configured in transaction BA01 to use for data format conversion. The File path section identifies the input file. The General Selections section contains several options.

Figure 4
Selection screen for program RFBVALL_0
Tip!
The directory path name to files stored in your My Documents folder on your PC contains spaces that can cause errors when uploading files to SAP. Store your input file in the C: directory for more reliable uploads.
When you check the Update run box, the system saves changes at run time. The Set deletion flag option causes the program to delete entries from the BNKA table if the system does not find a matching entry in the input file. If you turn this flag off, the system does not delete banks. The Detail list and Only Display Changed Banks boxes affect the amount of information that the output report displays.
Run transaction BAUP to create a summary report as shown in Figure 5. This example report shows that 23,697 banks were present on the input file. There were 555 new banks that did not exist previously in the BNKA table. The system updated information for 4,912 banks based on the input file and the system deleted 1,033 banks from the BNKA table because their routing numbers are no longer on the input file (because those banks no longer
exist).

Figure 5
Results of program RFBVALL_0
You should execute transaction BAUP periodically and update the current data from your preferred information vendor to keep your SAP bank routing number table current. The frequency of updates varies depending on the company’s requirements for current data. Small companies in remote locations may not ever need to update their BNKA table, while large, global companies may want to do so monthly.
Your HR team should never encounter an invalid bank number while entering direct deposit information. The FI and treasury groups also benefit from up-to-date data. The system updates bank names during this process, which is particularly useful considering the frequent mergers and acquisitions in the banking industry. Displaying the correct bank name assures your data entry personnel that they’ve selected the correct bank number.
Tip!
When creating a bank details (infotype 0009) record for direct deposit, be sure to include the bank control key (field BKONT). This field tells the receiving institution whether the account is a checking account (value 01) or a savings account (value 02). The input screen does not require field BKONT, but many banks cannot process the electronic funds transfer without it.
What are Bank Routing Numbers
The ABA (www.aba.com) adopted the basic routing number policy in 1911 and designated Accuity (formerly Thomson Financial Publishing) as the official registrar of ABA numbers (www.accuitysolutions.com). In 1985, the ABA created the Routing Number Administrative Board to administer the routing number policy. The board is responsible for developing and maintaining procedures that support the policy. They also oversee the activities of the registrar.
The bank routing number is a nine-digit number that uniquely identifies a financial institution, enabling the Federal Reserve to quickly route the financial instrument (that conveys a payment from one party to another such as a check, draft, or wire) to the institution responsible for satisfying the payment. It appears in magnetic ink on the bottom of all checks and it appears in the electronic files that transmit direct deposit information. The number consists of three parts: a four-digit Federal Reserve Routing Symbol, a four-digit ABA institution identifier, and a check digit. Computers use the check digit to verify that they accurately transmit the bank number.
ABA routing number information helps you in updating your records because it identifies a financial institution. For example, if you haven’t updated your financial institution data since 2003, it might include FleetBoston Financial Corp. Since then, Bank of America acquired Fleet, so you must update your information to reflect the change.
Clay Molinari
Clay Molinari has 20 years of experience in the IT industry and has been working as an SAP HR consultant since 1997. He is currently president of C&C Savant, Inc., an SAP consulting firm that specializes in combining standard SAP configuration and custom ABAP programming to help its clients solve unique or complicated requirements.
You may contact the author at claymolinari@comcast.ne.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.