Exchange files directly with your banks from Odoo, with no portal and nobody logging in.
EBICS, the Electronic Banking Internet Communication Standard, is the channel European banks open to companies that want their software to talk to the bank. Bank statements are downloaded on a schedule and payment files are uploaded from Odoo, authenticated by your own cryptographic keys instead of a login page.
This module implements that protocol in Odoo. It has been developed and maintained by Noviat since 2015, on every major version of Odoo from 8.0 onwards, which matters when a bank connection has to survive your next migration.
If you are still working out whether EBICS is the right channel for you, we explain it without the jargon, with screen recordings of the flow in Odoo, on noviat.com/ebics.
EBICS 2.4, EBICS 2.5 and EBICS 3.0 are supported. EBICS 3.0, the current specification since December 2022, names what is exchanged with BTF instead of the country-specific order type codes of EBICS 2.x. Many banks still run 2.4 or 2.5 in parallel.
We do not process MT940 statements: the format carries bank and country specific variations, and the Odoo community stopped maintaining a general parser for it after Odoo 10. Where a bank publishes camt.053 alongside it, which is now the usual case, that is the format to use.
Any bank that publishes an EBICS access point can be connected. The standard is maintained by EBICS SC, a company held by the German, French, Swiss and Austrian banking bodies (DK, CFONB, SIX and PSA), and it is the standard corporate channel in those countries.
To check a specific bank before you start, joonis publishes a public directory at joonis.de/en/fintech/banks. Enter a BIC and it returns the SEPA services the bank offers, the EBICS versions it supports and its Host-ID.
A bank missing from that directory is not a no: it is joonis' own list, not an official register. Ask your bank whether it publishes an EBICS access point.
This module is free software, published under LGPL-3. There is no licence fee, no subscription and no per-connection charge from Noviat.
It does however rely on the fintech library from joonis, and that library requires a commercial licence for production use: as soon as you upload SEPA files with more than five transactions, retrieve statements older than the last three days, or use the distributed signature. The licence is contracted directly with joonis, not with Noviat.
joonis charges a one-off setup fee plus a monthly fee per EBICS user id. Current pricing is published on joonis.de.
Your bank may also charge a subscription for the EBICS channel itself. It varies from one bank to another and is billed by the bank, separately from anything on the Odoo side.
The module depends upon
Because the connection needs a Python library and your key files on the server, it runs on Odoo.sh or on an on-premise installation.
Remark:
The EBICS 'Test Mode' for uploading orders requires fintech 4.3.4 or higher for EBICS 2.x and fintech 7.2.7 or higher for EBICS 3.0.
SWIFT 3SKey support requires fintech 6.4 or higher.
If you have a valid fintech.ebics license, you should add the following licensing parameters to the [options] section of the odoo server configuration file:
The name of the licensee.
The keycode of the licensed version.
; fintech fintech_register_name = MyCompany fintech_register_keycode = AB1CD-E2FG-3H-IJ4K-5L
account_ebics_oe
Required if you are running Odoo Enterprise
account_ebics_batch
This module adds a cron job for the automated import of EBICS files.
account_ebics_batch_payment
Recommended if you are using the Odoo Enterprise account_batch_payment module
account_ebics_payment_order
Required if you are using the OCA account_payment_order module.
account_usability
Recommended if you have multiple financial journals. This module adds a number of accounting menu entries such as bank statement list view which allows to see all statements downloaded via the ir.cron automated EBICS download.
account_statement_import_fr_cfonb
Required to handle french CFONB files.
account_statement_import_camt
Required to handle camt.052 and camt.054 files.
The configuration on the Odoo side takes fifteen to thirty minutes. What sets the pace of a project is the bank, and it is almost never for a technical reason:
Count in weeks per bank rather than days, and start the contract and the paperwork early.
Go to Settings > Users
Add the users that are authorised to maintain the EBICS configuration to the 'EBICS Manager' Group.
Go to Accounting > Configuration > Miscellaneous > EBICS > EBICS File Formats
Check if the EBICS File formats that you want to process in Odoo are defined.
Most commonly used formats for which support is available in Odoo should be there already.
Please open an issue on https://github.com/Noviat/account_ebics to report missing EBICS File Formats.
For File Formats of type 'Downloads' you can also specify a 'Download Process Method'.
This is the method that will be executed when hitting the 'Process' button on the downloaded file.
The following methods are currently available:
All these methods require complimentary modules to be installed (cf. Companion modules supra).
You'll get an error message when the required module is not installed on your Odoo instance.
Go to Accounting > Configuration > Miscellaneous > EBICS > EBICS Configuration
Configure your EBICS configuration according to the contract with your bank.
Go to Accounting > Bank and Cash > EBICS Processing
Downloaded files are listed there and can be processed into bank statements. Uploads are launched from the payment batch or payment order, and the file, its format and the order type are taken from the EBICS configuration rather than chosen by the user.
Add the following to your Odoo config file in order to diagnose issues with the EBICS connection with your bank:
log_handler = fintech.ebics:DEBUG
During the processing of your EBICS upload/download, your bank may return an Error Code, e.g.
EBICS Functional Error: EBICS_NO_DOWNLOAD_DATA_AVAILABLE (code: 90005)
A detailed explanation of the codes can be found on http://www.ebics.org. You can also find this information in the doc folder of this module (file EBICS_Annex1_ReturnCodes).
Where your bank supports EBICS T, Odoo prepares the file and holds no signing credentials at all: the payment is approved in your own signing application, which is what a segregation of duties policy usually demands. Where it does not, which happens with German and Swiss banks, the signing key sits on your Odoo server, and you can protect it with a separate signature passphrase that is never stored and is asked for every signed transaction.
External signing apps include BankingVEU:
Issues and pull requests are welcome on https://github.com/Noviat/account_ebics.
This module is developed and maintained by Noviat, an Odoo partner in Belgium specialised in accounting and finance since 2009.
We implement it, we configure the connection with your banks and we support you through the first cycles. If you want help getting a bank online, tell us which banks you use on noviat.com/ebics and we will tell you what it takes.