← User guide

Fio banka — Payment Orders

Builds Fio XML payment orders from an OCA payment order or an Enterprise batch payment and sends them to Fio banka over the API, for authorisation in internet banking.

Version19.0.1.4.0
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresaccount_payment_order, account_fio, account_fio_base

What it is for

Instead of downloading a payment file and uploading it in internet banking, you send the payment batch from Odoo to Fio banka with one button. Fio stores it as an unauthorised batch; someone with signing rights then confirms it in Fio internet banking (by SMS or Fio signature). Nothing in Odoo moves money on its own.

The file is Fio's own XML (importIB.xsd), the only Fio upload format that carries the variable, constant and specific symbols as real fields — pain.001 is EUR only and ABO is CZK domestic only. The module works from an OCA payment order (account_payment_order); on Enterprise, account_payment_fio_batch (delivered separately) does the same from a batch payment — see below.

It needs the connection from account_fio with a submit token on the journal.

Three kinds of order

Each payment line becomes one of three Fio orders, chosen automatically:

Beneficiary's account Fio order Notes
Czech: a CZ IBAN or [prefix-]number/bank code domestic payment any currency Fio allows between its own accounts; VS, KS, SS, message for the beneficiary
EUR to an IBAN in a SEPA country (including Slovakia) Europlatba (SEPA) VS, KS, SS; beneficiary's name required
anything else foreign payment BIC, the beneficiary's name, street, city and country, a payment reference and a platební titul all required

On a payment order, Priority (Urgent sends a priority payment) and Charge Bearer (for foreign payments) are set on each line; they default to standard and shared.

The orders are written domestic first, then Europlatba, then foreign, as Fio requires. The file is named FIO-<journal code>-<date and time>.xml.

Setting it up

  1. The bank journal: its bank account is the Fio account the money leaves — a CZ or SK IBAN, or number/2010 (Fio CZ) or number/8330 (Fio SK). It needs a Fio Submit Token (see account_fio).
  2. A payment mode (Accounting → Configuration → Accounting → Payment Modes) with the payment method Fio XML (Fio banka API) and that journal.
  3. Partners: a bank account for everyone you pay; for foreign payments also the address, the BIC of their bank, and the Platební titul on the partner (tab Sales & Purchase) so it fills in by itself.
  4. Recommended: l10n_cssk_payment_symbols, so each bill's VS/KS/SS reaches the payment lines on its own (see account_abo).

Paying

  1. Accounting → Vendors → Payment Orders, New, choose the Fio payment mode, Create Payment Lines from Journal Items.
  2. Check the lines: Variable Symbol, Constant Symbol, Specific Symbol and Platební titul sit next to Communication. An empty symbol is taken from a VS: / KS: / SS: token in the Communication.
  3. Confirm Payments. This is where everything is checked (below).
  4. Generate Payment File, then Send to Fio.
  5. Authorise the batch in Fio internet banking.

When Fio accepts the batch, the order shows Sent to Fio as batch … with Fio's batch number and moves on to the uploaded state by itself — there is no need to press File Successfully Uploaded. Fio's answer, including any warnings per order, is posted in the order's chatter.

What is checked

At Confirm Payments the whole order is checked and every problem is listed in one message (This payment order cannot be sent to Fio yet):

The platební titul is the three-digit payment reason from the Czech National Bank's code list. On a payment line it defaults from the partner.

Send to Fio

Send to Fio appears on any payment order whose file has been generated and not yet sent. It recognises the file type from the file itself, so it also sends:

as long as the journal is a Fio account with a submit token. Fio rejects files over 2 MB; split the order then.

If the answer is lost. When the file left Odoo but no answer came back, nobody knows whether Fio holds the batch. The order then goes to Unknown — check the bank and shows a red warning; sending again is blocked, because a second batch, if both were authorised, would pay everything twice. Look in Fio internet banking for an unauthorised batch and record what you found:

A batch that Fio rejects stays Not sent; the reasons appear on screen and in the chatter, and you can correct and send again.

Enterprise batch payments

account_payment_fio_batch (delivered separately) builds the same Fio XML from an Enterprise batch payment and sends it with the same button and the same Unknown safeguard.

Both modules can be installed side by side.

Limitations