| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1274 |
| Technical Name |
bank_bai2_writer |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1274 |
| Technical Name |
bank_bai2_writer |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
US BAI2 File Writer
Produce bank-grade BAI2 (BAI Version 2) cash-management statement files from your Odoo bank journals and transactions
US BAI2 File Writer turns the bank transactions you already
hold in Odoo into a clean, fully balanced BAI2 cash-management
file â the BAI Cash Management Balance Reporting Specification,
Version 2 format that US corporate treasury workstations and
ERP cash-positioning tools consume. Build the file in a few clicks,
review every record, and download a ready-to-load .bai
file. Everything runs inside your database: no external service, no
per-file fee, your bank data never leaves Odoo.
Complete, well-formed record set
Every BAI2 record type is written in the correct order with the correct fields:
- Type 01 â File Header: sender/receiver id, creation date and time, file id, BAI version 2.
- Type 02 â Group Header: originator, ultimate receiver, group status, as-of date/time and currency.
- Type 03 â Account Identifier: account number, currency and repeating balance triplets (type code, amount, item count, funds type).
- Type 16 â Transaction Detail: type code, amount, funds type, bank and customer references, free text.
- Type 49 / 98 / 99 â Trailers: account, group and file trailers with control totals and record counts.
Correct control totals & counts
A BAI2 file is rejected on load if any trailer total or record count is wrong. This module re-derives them exactly the way a receiving workstation does:
- Signed control totals in integer cents â credits positive, debits negative â summed account → group → file.
- Record counts that include the trailer itself at each level (49 counts 03+16â¦+49, 98 counts 02â¦+98, 99 counts the whole file).
- Amounts in minor units (cents) with no decimal point and round-half-up cent handling to avoid float drift.
- Negative / overdraft balances written with a leading minus sign per the specification.
Build straight from bank transactions
- One-click wizard turns a date range of bank statement lines from one or many bank journals into a BAI2 file.
- Opening (010) and closing (015) ledger balances are computed from the prior balance plus the period net.
- Each statement line maps to a credit (108) or debit (409) transaction by the sign of its amount, carrying the reference and description.
Full BAI2 type-code library
- Curated status/balance codes (010 Opening Ledger, 015 Closing Ledger, 045 Closing Available, and more).
- Curated transaction codes across the credit (100-399) and debit (400-699) ranges â lockbox, ACH, wire, check paid, service charge, interest and others.
- Automatic credit/debit classification and human-readable descriptions from the published numbering scheme.
Feature overview
| Area | What you get |
|---|---|
| Records | Type 01, 02, 03, 16, 49, 98, 99 â full hierarchy |
| Balances | Opening / closing ledger and available balances as Type 03 status triplets |
| Transactions | Type 16 detail with type code, funds type, bank and customer references, free text |
| Integrity | Signed control totals and inclusive record counts at account, group and file level |
| Sources | Manual entry or one-click build from bank statement lines across multiple journals |
| Output | Downloadable .bai file with in-app preview
and draft / generated / sent workflow |
| Privacy | 100% in-database â no external transmission, no gateway, no per-file fees |
How it works
- Set your BAI2 Sender, Receiver and Originator ids in Settings.
- Create a BAI2 file manually, or run Build from Transactions over a journal and date range.
- Review the accounts, balances and transactions, then Generate the file.
- Inspect the live preview, confirm the control totals, and
Download the
.baifile to upload to your treasury system or bank portal.
Disclosure: this module only builds the BAI2 text file from your own Odoo data for you to load into your own treasury workstation or bank portal. It transmits nothing to any external service and makes no accreditation claim. Compatible with Odoo 18 and Odoo 19.
Screenshots
Build From Transactions
Bai2 Files
Settings
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module