← User guide

Slovakia — Peppol BIS Billing 3.0 (eFaktúra)

Produces Slovak electronic invoices in Peppol BIS Billing 3.0, identifies Slovak parties on Peppol by their DIČ, and puts the variable symbol where the payer's bank looks for it.

Version19.0.3.4.0
EditionCommunity and Enterprise
LicenceAGPL-3
Installs itself when these are installedaccount_edi_ubl_cii, l10n_sk, l10n_sk_base

What it is for

Odoo can write an invoice as a Peppol BIS Billing 3.0 file (UBL 2.1, EN 16931), but out of the box it neither offers that format for Slovak customers nor identifies Slovak parties on the Peppol network correctly. This module fills those gaps:

The file itself is plain Peppol BIS Billing 3.0, with no national extension. The module creates the file; sending it over Peppol needs an access point, for example Odoo's own Peppol service or edi_base_peppol with a provider such as edi_epostak_peppol. Reporting the invoice data to Finančná správa is the access point's job, not this module's.

The module installs itself once the Slovak chart of accounts and Odoo's UBL/CII module are both installed.

Electronic invoicing becomes mandatory for domestic supplies in Slovakia on 1 January 2027, by § 85o of the VAT Act in the wording effective from that date (the consolidated text in force today contains only the parts of § 85o already effective):

Whether a particular invoice falls under the mandate is a question of the law, not of the format: the module offers the format for every Slovak contact and leaves the choice of what to send to you.

Setting it up

  1. Record the DIČ on your company and on your Slovak contacts: the field DIČ from l10n_sk_base. It is never derived from the IČ DPH — the module used to do that and stopped, because a wrong derivation produces a valid-looking identifier that belongs to somebody else.
  2. Check the contact's Peppol address. Invoicing tab of the contact (Fakturácia), group Customer Invoices: Peppol e-address (EAS) should read SK Tax identification number (DIČ) (code 0245) with the DIČ next to it. The format field, eInvoice format, is shown only in developer mode and is filled automatically.
  3. Your company's bank account should be the IBAN the customer is to pay to; it goes into the file as usual.
  4. Variable symbol. With l10n_cssk_payment_symbols installed, its variable symbol is used — see payment symbols on invoices.

The Peppol identifier: 0245 + DIČ

How a Slovak contact (one whose country, or VAT prefix, is Slovakia) gets its Peppol address:

Contact Peppol address
New, with a DIČ 0245 : DIČ — also for a company created on the company form with its DIČ filled in
New, without a DIČ what Odoo computes — 9950 : IČ DPH for a VAT payer — until a DIČ is recorded; the export is refused meanwhile
On 9950 when its first DIČ is recorded moved to 0245 : DIČ as the DIČ is saved, unless its endpoint was typed by hand
Already on 0245 the endpoint follows the DIČ when you change it
On 9950 or another scheme chosen with the DIČ already recorded left alone — the module does not overwrite a scheme somebody may have chosen on purpose

While a contact has no DIČ, 0245 is impossible, so its 9950 is what Odoo fell back to rather than a choice: recording the DIČ — by hand or from the register — moves it. A DIČ written past the form (an import into the database, an older module version) does not, and for those contacts the move is a deliberate, repeatable step: select the contacts in Contacts (list or form) and run Actions → Peppol: use 0245 + DIČ. It is available to accounting administrators (Accounting / Administrator). It moves every selected Slovak contact that has a DIČ and whose endpoint is either empty or exactly what Odoo derived from the VAT number; a hand-typed endpoint and a contact without a DIČ are left as they are. The same move ran once automatically when the module was upgraded to version 19.0.2.0.0, before most DIČs had been recorded, so run it after recording missing DIČs (for example with partner_autocomplete_orsf_sk). It is also how to fix a company that was created on 9950 before version 19.0.3.2.0: run it on the company's contact.

When a company is created, the module applies the same move to the contact Odoo creates for it, so a company saved with its DIČ lands on 0245 at once. A company created for an existing contact keeps that contact's scheme.

What the file contains

Before the file is created, the export checks that your company and the customer, where they are Slovak, have a DIČ. If not, it stops with a message naming the contact and the scheme it is currently published under. A contact registered under another scheme passes, as long as its DIČ is recorded.

Limitations