mirror of
https://github.com/brain-tec/account_ebics.git
synced 2026-10-17 16:29:06 +00:00
[IMP] account_ebics - rework readme
This commit is contained in:
1 parent
f0a3fc944a
commit
6ea607e0d4
23 files changed
+655
-187
No files matched your search
+223
-80
@@ -3,16 +3,111 @@
|
||||
:alt: License: LGPL-3
|
||||
|
||||
======================
|
||||
EBICS banking protocol
|
||||
EBICS Banking Protocol
|
||||
======================
|
||||
|
||||
Implementation of the EBICS banking protocol.
|
||||
**Exchange files directly with your banks from Odoo, with no portal and nobody logging in.**
|
||||
|
||||
This module facilitates the exchange of files with banks via the EBICS protocol.
|
||||
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 <https://www.noviat.com/ebics>`_.
|
||||
|
||||
|
|
||||
|
||||
Installation
|
||||
.. image:: https://raw.githubusercontent.com/Noviat/account_ebics/19.0/account_ebics/static/description/ebics_flow.png
|
||||
:alt: Statements come down as camt.053 or camt.052 files, payment files go up as pain.001 or pain.008, and your keys stay on your own server
|
||||
:width: 100%
|
||||
|
||||
|
|
||||
|
||||
What you get
|
||||
============
|
||||
|
||||
- **Statements that arrive on their own.** A scheduled task collects the files your bank
|
||||
publishes, for every account, and processes them into bank statements.
|
||||
- **Payments that leave the same way.** A payment batch or a payment order is uploaded to
|
||||
the bank in the format the bank expects, without exporting a file and re-uploading it
|
||||
somewhere else.
|
||||
- **Several companies, one connection.** Keys are held per bank rather than per company:
|
||||
when fifteen entities bank with the same institution, the bank sends a single daily file
|
||||
carrying fifteen statements and the module puts each statement in the right company.
|
||||
- **No bank credentials in Odoo.** The connection uses your own company keys, generated on
|
||||
your side and kept on your server. Access to the EBICS configuration is a permission of
|
||||
its own ('EBICS Manager'), separate from ordinary accounting rights.
|
||||
- **A test mode, where your bank offers one.** French banks accept a test flag, so a file
|
||||
can be submitted and validated before anything is switched to production. German and
|
||||
Swiss banks generally do not: there the first payment is a real one, kept small and sent
|
||||
to an account you control.
|
||||
- **A trace of every exchange.** Each download and each upload is a record, with the file
|
||||
it carried, the moment it happened and the user behind it.
|
||||
|
||||
**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.
|
||||
|
||||
|
|
||||
|
||||
What travels over the link
|
||||
==========================
|
||||
|
||||
- **Coming in:** camt.053 for the end of day statement, camt.052 for intraday movements
|
||||
where the bank offers them, and national formats such as the French CFONB.
|
||||
- **Going out:** pain.001 for credit transfers and pain.008 for direct debits, generated by
|
||||
Odoo from your payment batches.
|
||||
|
||||
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.
|
||||
|
||||
|
|
||||
|
||||
Which banks
|
||||
===========
|
||||
|
||||
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 <https://www.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.
|
||||
|
||||
|
|
||||
|
||||
What it costs
|
||||
=============
|
||||
|
||||
**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 <https://pypi.python.org/pypi/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 <https://www.joonis.de/en/fintech/prices/>`_.
|
||||
|
||||
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.
|
||||
|
||||
|
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
The module depends upon
|
||||
@@ -20,6 +115,9 @@ The module depends upon
|
||||
- https://pypi.python.org/pypi/fintech
|
||||
- https://pypi.python.org/pypi/cryptography
|
||||
|
||||
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
|
||||
@@ -29,77 +127,6 @@ SWIFT 3SKey support requires fintech 6.4 or higher.
|
||||
|
||||
|
|
||||
|
||||
We also recommend to consider the installation of the following modules:
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_oe
|
||||
|
||||
Required if you are running Odoo Enterprise
|
||||
|
||||
Cf. https://github.com/Noviat/account_ebics
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_batch
|
||||
|
||||
This module adds a cron job for the automated import of EBICS files.
|
||||
|
||||
Cf. https://github.com/Noviat/account_ebics
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_batch_payment
|
||||
|
||||
Recommended if you are using the Odoo Enterprise account_batch_payment module
|
||||
|
||||
Cf. https://github.com/Noviat/account_ebics
|
||||
|
||||
|
|
||||
|
||||
- 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.
|
||||
|
||||
Cf. https://github.com/OCA/account-financial-tools
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_payment_order
|
||||
|
||||
Required if you are using the OCA account_payment_order module.
|
||||
|
||||
Cf. https://github.com/OCA/bank-payment
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_oca_statement_import
|
||||
|
||||
Required if you are using the OCA Bank Statement import modules.
|
||||
|
||||
https://github.com/OCA/bank-statement-import
|
||||
|
||||
|
|
||||
|
||||
- account_statement_import_fr_cfonb
|
||||
|
||||
Required to handle french CFONB files.
|
||||
|
||||
Cf. https://github.com/OCA/l10n_france
|
||||
|
||||
|
|
||||
|
||||
- account_statement_import_camt
|
||||
|
||||
Required to handle camt.052 and camt.054 files.
|
||||
|
||||
Cf. https://github.com/OCA/bank-statement-import
|
||||
|
||||
|
|
||||
|
||||
|
||||
Fintech license
|
||||
---------------
|
||||
|
||||
@@ -127,7 +154,87 @@ The keycode of the licensed version.
|
||||
|
||||
|
|
||||
|
||||
Cf. https://www.joonis.de/en/fintech/prices/
|
||||
Companion modules
|
||||
=================
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_oe
|
||||
|
||||
Required if you are running Odoo Enterprise
|
||||
|
||||
Cf. https://github.com/Noviat/account_ebics
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_batch
|
||||
|
||||
This module adds a cron job for the automated import of EBICS files.
|
||||
|
||||
Cf. https://github.com/Noviat/account_ebics
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_batch_payment
|
||||
|
||||
Recommended if you are using the Odoo Enterprise account_batch_payment module
|
||||
|
||||
Cf. https://github.com/Noviat/account_ebics
|
||||
|
||||
|
|
||||
|
||||
- account_ebics_payment_order
|
||||
|
||||
Required if you are using the OCA account_payment_order module.
|
||||
|
||||
Cf. https://github.com/OCA/bank-payment
|
||||
|
||||
|
|
||||
|
||||
- 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.
|
||||
|
||||
Cf. https://github.com/OCA/account-financial-tools
|
||||
|
||||
|
|
||||
|
||||
- account_statement_import_fr_cfonb
|
||||
|
||||
Required to handle french CFONB files.
|
||||
|
||||
Cf. https://github.com/OCA/l10n_france
|
||||
|
||||
|
|
||||
|
||||
- account_statement_import_camt
|
||||
|
||||
Required to handle camt.052 and camt.054 files.
|
||||
|
||||
Cf. https://github.com/OCA/bank-statement-import
|
||||
|
||||
|
|
||||
|
||||
Getting your bank online
|
||||
========================
|
||||
|
||||
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:
|
||||
|
||||
- **The bank opens the access.** You receive the host ID, the address of the access point,
|
||||
your partner and user identifiers, and a letter carrying the hash values of the bank's keys.
|
||||
- **INI and HIA.** Odoo generates your key pairs for signature, authentication and encryption,
|
||||
sends the public keys to the bank and produces the initialisation letters, which you print,
|
||||
sign and send. The bank compares them by hand with the keys it received online.
|
||||
- **HPB.** Once the bank has activated your access, you retrieve its public keys and compare
|
||||
their hash values with the letter it sent you. That comparison is what makes the channel
|
||||
trustworthy.
|
||||
- **The first exchange.** Statements come down first. Payments follow, as a test file where
|
||||
the bank supports the test flag, otherwise as a real transfer of a small amount.
|
||||
|
||||
Count in weeks per bank rather than days, and start the contract and the paperwork early.
|
||||
|
||||
|
|
||||
|
||||
@@ -159,7 +266,7 @@ The following methods are currently available:
|
||||
- camt.052
|
||||
- camt.054
|
||||
|
||||
All these methods require complimentary modules to be installed (cf. Installation section supra).
|
||||
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.
|
||||
|
||||
@@ -171,11 +278,27 @@ Configure your EBICS configuration according to the contract with your bank.
|
||||
|
||||
|
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/Noviat/account_ebics/19.0/account_ebics/static/description/ebics_download.png
|
||||
:alt: A downloaded camt.053 statement file in Odoo, before processing
|
||||
:width: 100%
|
||||
|
||||
|
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
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.
|
||||
|
||||
|
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/Noviat/account_ebics/19.0/account_ebics/static/description/ebics_upload.png
|
||||
:alt: Uploading a pain.001 SEPA credit transfer file over EBICS 3.0, with the test mode option
|
||||
:width: 100%
|
||||
|
||||
|
|
||||
|
||||
Diagnostics
|
||||
@@ -204,16 +327,36 @@ You can also find this information in the doc folder of this module (file EBICS_
|
||||
Electronic Distributed Signature (EDS)
|
||||
--------------------------------------
|
||||
|
||||
This is supported via external signing apps, e.g. BankingVEU:
|
||||
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:
|
||||
|
||||
- https://play.google.com/store/apps/details?id=subsembly.bankingveu
|
||||
- https://apps.apple.com/de/app/bankingveu/id1578694190
|
||||
|
||||
|
|
||||
|
||||
Known Issues / Roadmap
|
||||
======================
|
||||
Roadmap
|
||||
=======
|
||||
|
||||
- The end user is currently not able to change his passphrases (only the users with 'EBICS Manager' rights can do so).
|
||||
- Add support to import externally generated keys & certificates (currently only 3SKey signature certificate).
|
||||
- Add support for SWIFT 3SKey signing javascript lib (SConnect, cf https://www2.swift.com/3skey/help/sconnect.html).
|
||||
|
||||
Issues and pull requests are welcome on https://github.com/Noviat/account_ebics.
|
||||
|
||||
|
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
This module is developed and maintained by `Noviat <https://www.noviat.com>`_, 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 <https://www.noviat.com/ebics>`_ and we will tell you what it takes.
|
||||
Reference in new issue
Block a user