Welcome to Zuora Product Documentation

Explore our rich library of product information

BAI3

BAI3 is a generic BAI-format parser that skips file version validation, includes inline text from 16 records, ignores negative-amount transactions, and uses account-level currency with a static decimal map and no FX or bank charge configuration.

How to identify a BAI3 file

Structurally similar to BAI2 but no version check is performed on the first line. Any file with 02, 03, 16,, and 88, records will be attempted. There is no bank-specific variant — BAI3 is a single generic parser.

Key differences from all BAI2 parsers

A. No file version validation

BAI2 parsers reject files where the first line does not end with 2/. BAI3 attempts to parse regardless.

B. Inline text on the 16, record itself

BAI2 parsers only extract description text from 88, continuation records. BAI3 also reads text that appears inline on the 16, record, after the customer reference number field. If tokens exist beyond the reference fields, they are included in the description. This is the most significant behavioral difference.

C. Negative amounts are skipped

If a transaction amount starts with -, the transaction returns null and is excluded from results. BAI2 parsers do not have this filter — they process all transactions regardless of sign.

D. Currency source

Currency comes from the account header (03, token[2]) only. There is no file-level currency from the bank header.

E. Currency decimal map

Uses a hardcoded static map (same style as Truist BAI2). Unknown currencies default to 0 decimal places.

F. No configuration for FX or bank charges

BAI3 has no configurable parameters for exchange rate or bank charge extraction.

Record parsing

  • 02 – Bank Header: Bank ID, as-of date

  • 03 – Account Header: Account number, currency, sign

  • 16 – Transaction Detail: Detail type code, amount, fund type, refs, inline text

  • 88 – Continuation: Additional narrative appended to inline text

What is parsed: All BAI2 fields plus inline text on the 16, record itself

What is not parsed: Negative-amount transactions, file version header, FX rates, bank charges