Slovenia e-SLOG e-Invoicing
Language / Jezik: English | Slovenščina
Slovenian e-SLOG 2.0 electronic invoice import/export for Odoo 18.
Current addon version: 18.0.1.3.0. Documentation checked against the working tree on October 9, 2026.
See the illustrated user manual for configuration, invoice and credit-note workflows, import review, and current limitations.
Features
Export posted customer invoices and credit notes to e-SLOG 2.0 INVOIC v200 XML.
Import e-SLOG 2.0 XML into draft vendor bills/refunds. PDF attachment scanning uses PyPDF2.PdfReader and reads embedded-file name trees and catalog associated files.
Attach generated XML plus a normalized JSON payload; log export/import in the chatter.
Automatic XSD validation against the bundled eSLOG20_INVOIC_v200.xsd for documents using the e-SLOG 2.0 namespace, including prefixed XML. Invalid documents and a missing bundled schema raise an error.
Uses OCA transmit methods (code eslog) and supports HTTP transmit when configured.
Uses UNECE tax type/category and UoM codes for tax and unit mapping (l10n_si_account_tax_unece, uom_unece).
Configuration
The module requires account, account_invoice_export, account_invoice_import, l10n_si_account_tax_unece, l10n_si_config, and uom_unece.
Select transmit method e-SLOG on customer partners.
The Generate e-SLOG XML button requires the e-Invoice User group; company e-SLOG settings require e-Invoice Manager access. Manager does not itself imply User; assign both for configuration and generation.
Ensure company and customer have name, country, street, and VAT/tax number. VAT with a country prefix is exported as VA (AHP is also emitted); without a prefix only AHP is used. When all product-line tax categories are O, the generator suppresses VA references.
Configure the UNECE category on fiscal-position Tax Mapping rows via l10n_si_account_tax_unece. Lines and summaries use this category before tax-level defaults; the same S-KEU tax can represent EU AE or non-EU O service transactions. Unmapped 0% taxes require an explicit category.
Configure Notes on the invoice's fiscal position for the applicable statutory clause. These take precedence over tax Legal Notes, supported parent-group notes, and VAT Exemption Reason. HTML-empty notes are skipped. Fiscal positions sharing a tax can therefore export different clauses. XML includes these clauses and cash-accounting mentions. Missing reasons for E, K, G, and O block export; AE falls back to "Reverse charge". The tax addon supplies UNECE metadata and maps EU S-KEU service mappings to AE; review the legal basis of the actual transaction. Z is not a domestic Slovenian exemption category.
Set UNECE UoM codes on units of measure if you need unit codes in output (uom_unece).
PDF parsing requires PyPDF2, listed in the repository requirements.
The read-only company e-SLOG Version field displays 2.0. The partner e-SLOG Recipient ID is used as the XML party identifier, taking precedence over Reference and VAT. The buyer comes from the customer's commercial partner; configure the identifier there, not just on a child invoice contact. It does not configure an HTTP destination or recipient directory.
Usage
Open a posted customer invoice or credit note whose transmit method is e-SLOG.
Select Generate e-SLOG XML to attach XML and its normalized JSON payload without transmitting it. The standard invoice email workflow also includes the applicable e-SLOG XML attachment.
Use Send eBill for the export workflow. HTTP transmission occurs only when the transmit method enables it and specifies a destination URL.
Use the vendor bill import wizard to load e-SLOG XML or a PDF containing XML.
Generating an attachment does not establish delivery or acceptance by a recipient. Without an HTTP destination, Send eBill generates attachments and marks invoice_exported locally and leaves invoice_export_confirmed false. Opening the standard invoice send workflow can also create or reuse the XML attachment; that path does not attach the normalized JSON or log the manual-generation chatter message.
Export content and limitations
XML includes invoice/credit-note identity, issue and due dates, parties, currency, product lines, discounts, tax summaries, totals, and residual amount. Payment references, the reversed invoice reference, narration, and supplier bank details are included when available.
Each invoice line requires one VAT classification. XML unit prices exclude tax, including when Odoo prices include tax. Supported groups contain one percentage child or an equal-and-opposite percentage reverse-charge pair with UNECE category AE. Unsupported tax combinations and non-percentage taxes raise export errors.
Only the official e-SLOG 2.0 structure is supported. The former synthetic urn:eslog:invoice:1.0 parser was not an official historical e-SLOG profile.
The PDF scanner supports attachment interfaces and direct embedded-file name trees, nested name-tree nodes, and catalog associated files. Tests extract and import XML from real synthetic PDFs with the installed PyPDF2 reader. Plain PDFs without embedded XML still delegate to the configured PDF fallback.
Import is not a lossless reversal of export: due dates, payment/bank details, legal clauses, and separate invoice-level charges are not fully mapped inbound. Header totals can be replaced by totals recomputed from lines. Review draft bills, matched purchase taxes, defaults, and adjustment lines before posting.
HTTP confirmation means status 200, not parsed business acceptance. There is no automatic exchange polling or retry scheduler supplied by this addon.
Verified requirements and standard boundaries are documented in Requirements. VAT bases may include other duties; this does not permit stacking several VAT classifications on a single XML line.
Official reference files
The XML examples and XSD files in docs/official are official reference templates. Preserve their content, including unused namespace declarations and the XML Signature schema's original DOCTYPE; do not rewrite them to satisfy linters or IDE inspections. Only nonfunctional, narrowly scoped inspection suppression comments may be added where needed.
Unused namespace warnings are suppressed in the XML examples. PyCharm's Xerces validator still warns about the official XML Signature DTD's namespace declaration; tag-level suppression comments do not silence this DTD-prolog diagnostic. Treat it as an intentional vendor-file exception, not permission to alter the schema. Runtime XSD validation remains enabled.
Every XML example in docs/official/primeri_davcne_kode has an individual schema-validation and parser test for its VAT categories and rates. An inventory test fails if an example is added or removed without updating the test cases.
TODO
Validate receiver-specific business rules beyond the bundled structural XSD.
Receiver-specific delivery and business acceptance require a configured service and a separate integration contract; local generation does not establish them.
Bug Tracker
Bugs are tracked on PMISuite Repository Issues. Before opening a new issue, check whether it has already been reported. Include the module and Odoo versions, steps to reproduce, and expected and actual results. Use synthetic examples and redact sensitive information.
Credits
Contributors
Matjaz Mozetic
Maintainers
Current maintainer:
This module is maintained by Luxim d.o.o., a company dedicated to the development of program management tools and solutions, as a part of PMISuite.com project.
Luxim is an active member of OCA (Odoo Community Association).






