Open Banking LATAM — Your Bank Movements in Odoo, Automatically, From Any Latin American Bank
Connect Odoo to Belvo, the open finance API of Latin America. Transactions land in the right journal, deduplicated by the bank's own id, ready for Odoo's reconciliation — Mexico, Colombia, Brazil, Chile, Peru and more. This is the bank feed Community never had. Optional AI. Bring your own API key.
The whole bank feed on one screen — and whether it can be trusted today.
- Somebody logs into the bank, exports, imports, every single day
- A movement imported twice quietly doubles a balance
- Nobody notices the feed stopped until the month does not close
- Movements arrive on their own, in the right journal
- Never a duplicate — every line carries the bank's own transaction id
- The gap between the bank and your books, on screen, every day
Talks to Belvo directly, from your instance, with your own keys.
From the bank to your books
Pick the institution and connect. Belvo holds the connection and keeps it fresh.
Each bank account gets its own Odoo journal. One account, one journal — the app enforces it.
The movements are statement lines like any other. Odoo's own reconciliation does the rest.
Your bank password never touches Odoo
It is handed to Belvo once, over TLS, and discarded — it is never written to the database, never logged, and gone from memory when the connection is made. What Odoo keeps is the link id, which is useless to anybody who does not also hold your Belvo keys. And those keys are encrypted at rest and visible only to a system administrator.
When a bank asks for a one-time code or a password changes, the link says so — instead of going quiet.
The gap is the whole point
Every account shows the balance the bank reports, the balance Odoo has booked, and the difference. Zero is what you want. Anything else means a movement never arrived — and the call log tells you whether Belvo ever sent it. A feed that goes quiet is the failure nobody notices until the month does not close.
Set up in one screen
Your Belvo Secret ID and password go in once, encrypted at rest. Sandbox and production are separate, as Belvo intends. Register the webhook URL and Belvo tells this Odoo the moment fresh movements are ready, so you do not wait for the daily sync.
AI analysis — optional, your own key
Add your own Anthropic Claude or OpenAI key and get a treasury read of the feed — the balances, the gap against your books, what is still unreconciled, which links are broken — and the single highest-impact thing to fix, in your language. The module calls the provider directly from your Odoo: no data goes through a third party, and you control the model and the cost. It never posts or changes anything.
Features
- Any Latin American bank Belvo reaches — Mexico, Colombia, Brazil, Chile, Peru, Argentina and more. The institution list comes from your own Belvo account.
- Transactions become statement lines in the journal you map the account to — date, description, counterparty and amount, ready for Odoo's reconciliation.
- Never a duplicate — every line carries Belvo's own transaction id, so a re-sync, a retry or a webhook that fires twice can never import the same movement again.
- The direction comes from the bank, not from the sign — an outflow is booked as an outflow, so a payment never lands as income.
- Balances, side by side — what the bank says, what Odoo has booked, and the gap. Zero is what you want.
- One account, one journal — enforced. Two accounts in the same journal would make both balances meaningless, so the app refuses it.
- Automatic — a daily sync, plus Belvo's webhook for the moment fresh data is ready.
- Broken links, surfaced — when a bank asks for a one-time code or a password changed, the cockpit says so instead of the feed going quiet.
- Your bank password is never stored — handed to Belvo once and discarded. Odoo keeps only the link id.
- Full call log — every call sent and every webhook received. When a movement is missing, this is where you prove whether Belvo ever sent it.
- Demo mode — a sample bank, two accounts and a month of realistic movements land in a bank journal, so you can walk the whole flow before signing up.
- AI analysis (optional) — Anthropic Claude or OpenAI, your own key; the treasury read and the top action, in your language.
- Multi-company — every account and movement belongs to its company; nothing leaks between them.
- Works on Odoo Community — and Enterprise. This is the bank feed Community never had.
- Multilingual — English, Spanish and Portuguese (BR).
Each account, its journal, and the exact difference between what the bank says and what you booked.
Perfect for accountants, controllers and finance teams in Latin America who are still importing a bank file by hand every morning — and for anyone on Odoo Community, where there is no bank sync at all.
Keywords: open banking, open finance, Belvo, bank feed, bank synchronization, bank statements, automatic bank statement import, bank reconciliation, statement lines, LATAM banking, Mexico, Colombia, Brazil, Chile, Peru, Argentina, Odoo Community bank sync, treasury, cash management, bank balance vs book balance, AI treasury analysis, Claude AI, OpenAI.
Palabras clave: banca abierta, finanzas abiertas, Belvo, extractos bancarios automáticos, sincronización bancaria, conciliación bancaria, líneas de extracto, movimientos bancarios, tesorería, saldo del banco contra saldo contable, México, Colombia, Brasil, Chile, Perú, Argentina, Odoo Community, análisis de tesorería con IA, Claude, OpenAI.
Permissions & data security
This app touches a bank. It is built accordingly.
- 🔒 Your bank credentials are never stored. They are passed to Belvo once, over TLS, to establish the link, and then discarded — never written to the database, never logged. A database backup carries nothing an attacker could use at your bank.
- 🔑 Belvo keys encrypted & admin-only. The Secret ID and password are stored encrypted at rest (Fernet / AES) — the plaintext is never saved — and are readable or editable only by a system administrator.
- 📜 The webhook carries no money data. It only tells this Odoo to go and ask Belvo. The worst a stranger who guessed the URL could do is make Odoo re-read its own bank feed.
- 🏢 Multi-company isolation. Every link, account and movement is tagged to its company; a user only ever sees the data of the companies they are allowed into.
- 👤 Role-based access. Accounting users see the feed; only an accounting manager links a bank or maps a journal. No portal or public exposure.
Requires the Accounting/Invoicing app and a Belvo account (they have a free sandbox). Works with Odoo Community and Enterprise.
More from the author: Aski — ask your Odoo in natural language by chat or voice, and get real figures from your phone. https://aski.dev
Questions, or want a quick personalized demo? Email me at jhonrojas.dev@gmail.com — I am happy to answer questions or set up a short demo.
Support: jhonrojas.dev@gmail.com · License: OPL-1
About the author
Jhon Jairo Rojas Ortiz
Odoo developer · custom modules, integrations & business intelligence
5+ years of hands-on Odoo experience — building and shipping real modules, integrations and analytics for companies across LATAM and Europe. Every app I publish is maintained and supported personally.
Custom Odoo modulesIntegrations & APIsBI & analyticsOdoo 16–19
inConnect on LinkedIn →| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 2004 |
| Technical Name |
jjro_belvo |
| License | OPL-1 |
| Website | https://aski.dev |
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