Verified invoice and e-SLOG boundaries
Checked on October 9, 2026, against addon version 18.0.1.1.0 and its current
dependencies. At this implementation stage the module is not deployed; no
migration was added.
Authorities and scope
- FURS invoice guidance applies the same invoice-content rules to paper and electronic invoices. Its linked detailed guidance requires VAT bases by rate/exemption, tax-exclusive unit prices, discounts, VAT rates and VAT amounts. It does not define e-SLOG XML.
- EPOS e-SLOG documentation defines the actual XML mapping. The bundled August 2020 English mapping, segment 95, requires exactly one SG34 VAT classification per invoice line: BT-151 category and BT-152 rate. The generic XSD's larger repetition limit is not permission to stack VAT taxes.
- UJP's retirement notice
retires e-SLOG 1.6 and 1.6.1 for UJP exchange from October 1, 2020.
This does not establish a universal private-sector ban on older formats.
The old addon namespace
urn:eslog:invoice:1.0was an unverified synthetic structure, not those official historical profiles. It has been removed.
Statutory clauses
The December 2024 tax-code guidance coauthored by FURS and UJP requires the appropriate legal clauses for exemptions and reverse charge, and a cash-accounting mention when that regime applies. The generator now exports fiscal-position Notes, with tax Legal Notes and VAT Exemption Reason as fallbacks, into the official AGM free-text segment for E/AE/K/G/O. Other tax legal notes and the cash-accounting mention use GEN segments. Cash accounting is detected from Odoo's tax-exigibility setting.
Configure the actual legal basis; the addon does not guess exemption articles. For categories E, K, G, and O, missing fiscal-position notes, tax legal notes, and VATEX configuration block export. The established reverse-charge phrase is emitted for AE when no more specific configured clause exists. K/G use their configured VATEX reference when available. Different exemption texts are combined in the single invoice-level AGM; its optional VATEX code is included only when unambiguous. Text exceeding the mapped 512-character field is rejected, not truncated.
The current l10n_si_account_tax_unece supplies UNECE type/category metadata
without assigning tax clauses. Fiscal-position tax mappings classify the shared
S-KEU as AE for EU B2B services and O for non-EU supplies outside VAT scope;
the shared tax has no global category. Lines and summaries use the mapping's
category before tax-level defaults. Tripartite roles require explicit configuration.
The mapping addon refreshes metadata on every module update and fills only missing
mapping categories, preserving configured overrides and notes. Configure the actual
clause on the invoice's fiscal position, since multiple fiscal positions can
share a tax while requiring different legal text. HTML-empty notes are skipped.
When fiscal-position Notes supply the text, a shared tax's optional VATEX code
is omitted to avoid assigning a code for a different exemption. Existing tax
notes are preserved as fallbacks; a generic tax Description is not Legal Notes.
Category Z is not a substitute for an exemption and is not applicable to domestic Slovenian supplies under that guidance. The addon does not infer the place of taxation from partner addresses: select categories from the actual transaction.
VAT bases are not stacked VAT classifications
FURS's VAT-base explanation explicitly includes excise and other duties, excluding VAT, in the VAT base under ZDDV-1 Article 36. This is a real tax requirement, not a reason to emit several VAT classifications on one e-SLOG line.
Represent applicable duties in the tax-exclusive taxable price, or in separately modeled taxable invoice items, using the legally appropriate VAT classification. Automatic conversion of arbitrary Odoo fixed or compounded tax configurations is not implemented: such configurations are rejected rather than silently losing charges or producing inconsistent bases. Confirm the accounting model before use.
Each product line requires an explicit VAT classification, including untaxed lines. Supported reverse-charge groups remain an accounting representation of one VAT classification, not multiple charged VAT rates. The Slovenian reverse-charge informational summary extension is retained.
Structural XSD validation is not a claim of complete FURS compliance or recipient acceptance. Receiver-specific semantic validation and full invoice-content checks remain acceptance responsibilities; transport and fiscal cash-register reporting are separate workflows.