← User guide

ABO Payment Files

Domestic CZK credit transfers exported as an ABO file for upload to the bank, from an OCA payment order or an Enterprise batch payment.

Version19.0.2.1.0
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresaccount_payment_order, account_cz_bankfile_base, base_iban

What it is for

ABO is the fixed-layout text file that Czech banks accept for a batch of domestic credit transfers (hromadný příkaz k úhradě). Instead of keying payments into internet banking one by one, you collect the vendor bills you want to pay in Odoo, generate one ABO file and upload it to the bank.

This module writes that file from an OCA payment order (account_payment_order), so it works on Community without any Enterprise module. On Enterprise, account_abo_batch (delivered separately) writes the same file from a batch payment instead — see below.

What it writes:

Record type credit transfers (úhrady), ABO data type 1501
Arrangement batch: the payer's account is stated once, in the group header
Currency CZK only
Accounts Czech accounts only — a CZ IBAN or [prefix-]number/bank code
Encoding Windows-1250, CR LF line ends; characters it cannot hold are reduced to plain ASCII
File name ABO-<journal code>-<date and time>.abo

The file is not sent anywhere: you download it and upload it in your bank's internet or direct banking yourself. With Fio banka you can also send it from Odoo — see account_payment_fio.

Setting it up

  1. The bank journal (Accounting → Configuration → Accounting → Journals) must have its bank account filled in, as a Czech IBAN or as prefix-number/bank code. This is the account the money leaves.
  2. A payment mode (Accounting → Configuration → Accounting → Payment Modes): choose the payment method ABO (Czech credit transfer) and the bank journal from step 1.
  3. Every vendor you pay needs a bank account in Odoo, again as a Czech IBAN or prefix-number/bank code.
  4. Recommended: install l10n_cssk_payment_symbols. Its add-on l10n_cssk_payment_symbols_payment_order then installs itself and copies each bill's variable, constant and specific symbol onto the payment order lines, so you do not have to type them.

Paying bills with a payment order

  1. Accounting → Vendors → Payment Orders, New, choose the ABO payment mode.
  2. Create Payment Lines from Journal Items and pick the bills to pay.
  3. Check the lines. Each has Variable Symbol, Constant Symbol and Specific Symbol next to Communication.
  4. Confirm Payments, then Generate Payment File. The .abo file is attached to the order.
  5. Upload the file in your bank, authorise it there, and mark the order with File Successfully Uploaded.

Where the symbols come from

For every line, each symbol is taken from, in this order:

  1. the symbol field on the payment line;
  2. a token in the line's Communication: VS:12345, VS 12345, VS=12345 (likewise KS: and SS:);
  3. nothing — the file then carries 0.

A symbol field accepts digits only, up to 10 for VS and SS and 4 for KS. How the symbols get onto the bills in the first place is described in l10n_cssk_payment_symbols.

The Communication also becomes the message for the beneficiary: whitespace collapsed, characters that banks reject in ABO messages (such as @ # ; § ! & _ * = + ? [ ]) removed, and cut to 35 characters.

What is checked

Generating the file stops with a message when:

The payment order stops at the first problem; fix it and generate again. The Enterprise variant lists every problem at once — see below.

Enterprise batch payments

account_abo_batch (delivered separately) produces the identical file from an Enterprise batch payment (account_batch_payment).

Both modules can be installed side by side.

The shared builder

The ABO and MultiCash writers live in account_cz_bankfile_base, so the Community and Enterprise variants produce byte-identical files. The same module reads Czech account numbers in both spellings (IBAN and prefix-number/bank code) for the KB BEST and Fio modules and for the MT940 and KB statement imports. It has no screen of its own.

Limitations