Skip to content
LegacyFile
← Learn

What Is a BAI2 File? (And How to Open One in Excel)

By LegacyFile · · Updated

Your bank posted a file called something like ACCT_REPORT_0713.bai to your treasury portal, you opened it, and got a wall of comma-separated numbers. No column headers, no dollar signs, no obvious dates — just lines like 16,165,100000,0,FT26195001,,PREAUTH ACH CREDIT. That's a BAI2 file, and once you know how it's put together, it's actually one of the more sensible formats banks still use. This article explains what a BAI2 file is, what every part of it means, and the fastest way to get it into Excel.

What a BAI2 file is

BAI2 is a standardized format for cash management balance reporting — banks use it to tell business customers what happened in their accounts. It was published by the Bank Administration Institute (BAI), an American financial services research organization, and the "2" simply marks the second version of the specification, released in 1987. Nearly forty years later it remains the de facto standard for previous-day and current-day bank reporting in the United States, and plenty of international banks produce it too.

A BAI2 file is plain text. You can open it in Notepad or any text editor — it just won't mean much, because everything in it is coded. Each line is a record identified by a two-digit number, each transaction type is a three-digit code instead of a description, and amounts are written without decimal points. The format was designed for computers to exchange, not for people to read.

Who sends and receives BAI2 files

Banks generate them; businesses consume them. If you have a commercial banking relationship with cash management services, your bank likely offers BAI2 as a download or an automated (SFTP) delivery. Typical uses:

  • Previous-day reporting — yesterday's closing balances and every transaction that posted, delivered each morning.
  • Current-day reporting — intraday balances and transactions, often delivered several times a day.
  • Lockbox and controlled disbursement detail — remittance and check-clearing feeds.

On the receiving end, corporate treasury teams load BAI2 files into treasury management systems and ERPs — SAP, Oracle, NetSuite, Workday, and Kyriba all import BAI2 for bank reconciliation. But you don't need a six-figure ERP to read one. If you just need the transactions in a spreadsheet, a BAI2 to CSV converter does it in seconds.

What's inside a BAI2 file

BAI2 files nest like Russian dolls: a file contains groups (one per sending bank), each group contains accounts, and each account contains transactions. Every level opens with a header record and closes with a trailer record. Here's a tiny but complete example:

01,122000247,ACMECORP,260713,1815,1,80,10,2/
02,ACMECORP,122000247,1,260713,1815,USD,2/
03,9001001,USD,010,250000,,,015,325000,,/
16,165,100000,0,FT26195001,,PREAUTHORIZED ACH CREDIT SUBSCRIPTION REVENUE/
16,475,25000,0,FT26195002,CHK1088,CHECK 1088 OFFICE LEASE/
49,700000,4/
98,700000,1,6/
99,700000,1,8/

Reading it line by line:

  • 01 — file header. The bank (122000247, a routing number) created this file for customer ACMECORP on July 13, 2026 (260713 is YYMMDD) at 18:15.
  • 02 — group header. Starts a batch of accounts from one bank, with the as-of date the balances refer to.
  • 03 — account identifier. Opens account 9001001 in USD, then reports balance summaries in code/amount pairs: type 010 (opening ledger) was 250000 and type 015 (closing ledger) was 325000.
  • 16 — transaction detail. One transaction each. Type 165 is a preauthorized ACH credit; type 475 is a check paid. Then the amount, reference numbers, and a text description.
  • 49, 98, 99 — trailers. Close the account, group, and file with control totals and record counts, so the receiving system can detect a truncated transmission.

One more record type matters: 88, the continuation record. BAI2 lines have a maximum length, so long descriptions wrap onto following lines that start with 88. Any decent parser stitches them back together automatically.

Why the amounts look 100× too big

The single most confusing thing about BAI2: amounts have no decimal point. The decimal position is implied by the currency. 100000 in a USD account means $1,000.00 — the last two digits are cents. Japanese yen has no minor unit, so 100000 in a JPY account really is ¥100,000, while a Kuwaiti dinar amount implies three decimal places. If you split a BAI2 file into columns yourself and the numbers look wildly inflated, this is why.

The three-digit type codes carry meaning too, including direction: codes in the 100–399 range are credits (money in), 400–699 are debits (money out), and codes below 100 describe balances rather than transactions. So 475,25000 isn't just "some $250 amount" — it's specifically a check that cleared for $250.00.

How to open a BAI2 file in Excel

Excel can't parse BAI2 natively. Renaming the file to .csv sort of works — it's comma-separated, after all — but you'll get the raw records: mixed record types interleaved in one column layout, amounts 100× too big, dates as 260713, and transaction types as bare numbers. Reconciling from that is miserable.

The practical path is a converter that understands the format. The free BAI2 to CSV converter here on LegacyFile runs entirely in your browser — the file is never uploaded, which is the right bar for bank data. Drop the file in and it:

  1. Parses the whole record structure and checks the control totals in the trailers.
  2. Shows a summary — file date, sending bank, accounts, transaction count — plus any validation warnings.
  3. Flattens everything to one row per transaction, with dates in ISO format, amounts correctly scaled with debit and credit columns, and every type code translated to plain English.
  4. Exports CSV, XLSX, or JSON. Open the CSV or XLSX in Excel and you're reconciling in minutes.

BAI2 vs. .bai, and what's next

You'll see both .bai and .bai2 extensions in the wild; they're almost always the same BAI2 format, since the original 1980 BAI version is long dead. The BAI organization has since handed stewardship of the spec to AFP (as "BTRS"), and banks are slowly adding ISO 20022 camt.053 XML as a modern alternative — but BAI2 files will keep landing in treasury portals for years to come. When one lands in yours, you now know exactly what you're looking at — and the fastest way to get it into Excel.