ValidateFin

BAI2 — bad trailer totals and an out-of-range type code

Three defects at once. The 49 account trailer declares a control total and a record count neither of which matches the records above it — the trailers are the file’s own integrity check, so a reader that skips them cannot see truncation. And a 16 transaction carries type code 720, which sits in the 700–799 loan range: it is neither a credit (100–399) nor a debit (400–699), so its direction cannot be inferred and it is dropped rather than guessed at — which is why the balance no longer reconciles either.

BAI2 (BAI version 2) — Valid

Three defects at once. The 49 account trailer declares a control total and a record count neither of which matches the records above it — the trailers are the file’s own integrity check, so a reader that skips them cannot see truncation. And a 16 transaction carries type code 720, which sits in the 700–799 loan range: it is neither a credit (100–399) nor a debit (400–699), so its direction cannot be inferred and it is dropped rather than guessed at — which is why the balance no longer reconciles either.

BAI2 statement (US / Canada) BAI2 (BAI version 2) BAI Cash Management Balance ReportingExpected result: Valid — 4 warnings

What this file shows

Three defects at once. The 49 account trailer declares a control total and a record count neither of which matches the records above it — the trailers are the file’s own integrity check, so a reader that skips them cannot see truncation. And a 16 transaction carries type code 720, which sits in the 700–799 loan range: it is neither a credit (100–399) nor a debit (400–699), so its direction cannot be inferred and it is dropped rather than guessed at — which is why the balance no longer reconciles either.

Transactions2

The defects it carries

  • TypeCodeAccount 0037284159: transaction with type code "720" skipped (direction cannot be inferred from this code). Totals below exclude it.
  • Trailer-49Account 0037284159: trailer control total (11999999) ≠ sum of the 03/16 amount fields (12000000).
  • Trailer-49Account 0037284159: trailer record count (4) ≠ actual records incl. continuations (5).
  • BalanceAccount 0037284159: opening ± turnover (57500) ≠ closing balance (52500).

Quoted verbatim from the validator, not paraphrased.

Last verified: License: CC-BY-4.0

Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.

File content

01,071000013,ACMECORP,260711,0800,6,80,10,2/
02,ACMECORP,071000013,1,260710,2400,USD,2/
03,0037284159,USD,010,5000000,,,015,5250000,,/
16,165,1000000,,ACH20260710H,CUSTOMER-PAY,PREAUTHORIZED ACH CREDIT CONTOSO LLC/
16,720,500000,,LOAN00000031,LOAN-31,LOAN PAYMENT PRINCIPAL AND INTEREST/
16,475,250000,,CHK00010061,CHECK-10061,CHECK PAID 10061/
49,11999999,4/
98,11999999,1,7/
99,11999999,1,9/

How we know these results hold

Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.

BAI2 statement (US / Canada)