← User guide

Fio banka — Connection

The Fio banka API tokens on the bank journal, a connection test, the 30-second call limit and warnings before a token expires.

Version19.0.2.2.4
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresaccount, account_fio_base
Extended byaccount_payment_fio, account_payment_fio_batch, account_statement_fio

What it is for

Fio banka — in the Czech Republic and through its Slovak branch — lets its customers connect accounting software to their accounts through the Fio API with a token generated in internet banking. This module holds those tokens on the bank journal and provides what every Fio feature shares: the connection test, the call limit and the expiry warnings.

On its own it moves no money and imports nothing. The features are:

Tokens

A Fio token:

Use two tokens per account: a read token for the statement pull and a separate submit token for payment orders. The read token is used every hour, so it is the one most exposed — and a token that can only read cannot pay anyone. Each token also has its own call limit (below).

Setting it up

  1. Open the bank journal: Accounting → Configuration → Accounting → Journals. Its bank account must be the Fio account the tokens belong to.
  2. In the Fio banka section, under the bank account number, fill in the fields in the table below.
Field
Fio Read Token the read token (64 characters)
Fio Read Token Expires its expiry date, copied from internet banking
Fio Submit Token the submit token, if you will send payments
Fio Submit Token Expires its expiry date
Fio Download Format Fio XML (default) or Fio JSON; leave it at XML

Only users with administrator rights (Settings) can see and enter the tokens. Other users see only whether a token is set.

Then press Test connection. Odoo makes one call, stores what Fio reports about the account (account number, bank code, IBAN, BIC, currency, shown under What Fio reports about this account) and posts a note in the journal's chatter. A token that belongs to a different account than the journal's IBAN, or an account in a different currency than the journal's, is refused — importing it would book another account's movements here.

Accounting → Configuration → Accounting → Fio banka lists every journal that has a read token, with both expiry dates; a date already past shows in red.

Expiring tokens

The Fio API never reports when a token expires, which is why the two expiry fields are filled in by hand. A daily scheduled action, Fio: warn about expiring tokens, creates a to-do activity on the journal 14 days before a recorded expiry date, assigned to an accounting administrator of the company.

An empty expiry date means no warning — the statement feed or the payment upload then simply stops working on the day the token dies.

The call limit

Fio allows one call per token every 30 seconds, for reading or writing, in any format. Odoo keeps track of the last call per token (Fio Last Read Call, Fio Last Submit Call) and serialises all Fio calls of a journal:

Platební titul on partners

Fio requires a platební titul — the payment reason from the Czech National Bank's code list — on every foreign payment, and from an account at the Slovak branch also on a SEPA payment over EUR 50 000. This module adds the field Platební titul to the partner (tab Sales & Purchase, under the vendor payment terms), per company. It is the default for payments to that partner; see account_payment_fio.

The API client

The protocol itself — the REST calls, the Fio XML and JSON statement formats, the payment-order XML (importIB.xsd) and the bank's answers — lives in account_fio_base, written against FIO API BANKOVNICTVÍ version 1.9 of 16 October 2025. Fio carries the token in the web address of each call, so the client removes it from every error message and log line it produces.

Limitations