Serbia SEF e-Faktura
Sistem e-Faktura (SEF) UBL 2.1 electronic invoicing for Odoo — send, sync & CRF references on every customer invoice
Connect Odoo to Serbia's Sistem e-Faktura (SEF), operated by the Ministry of Finance. Sales invoices and credit notes are built to the national UBL 2.1 CIUS, submitted to the SEF public API with your own API key, and the assigned SEF invoice id and status are stored on the move and kept in sync.
Public-API submission & status sync
Import the UBL invoice, poll status, change status and accept/reject received documents over the documented SEF public API. Demo and production endpoints are editable; requests retry with exponential backoff and every call is logged.
CRF (Centralni registar faktura)
Public-sector (B2G) invoices carry the Central Invoice Registry registration id and the public-funds order, contract and JBKJS references, and are routed to the CIR on import.
Accurate UBL 2.1 CIUS document
Lines are bucketed into the Serbian VAT categories — 20% standard, 10% reduced, zero-rated, exempt, out-of-scope and small-taxpayer — with mandatory exemption reasons, PIB endpoints (scheme 9948) and credit-note referencing of the original invoice.
Real PIB & Matični broj validation
A 9-digit PIB validator using the ISO 7064 MOD 11,10 check-digit algorithm and an 8-digit APR Matični broj validator (weighted modulo 11) run on the company and partners — typos are caught before a document reaches SEF.
Business-rule validation
A Serbia rule set layered on the engine's EN 16931-style core checks seller/buyer PINs, VAT categories, exemption reasons, RSD currency and the CRF reference on public-sector invoices before anything is submitted.
Bring-your-own-key
Your SEF API key — generated in the SEF web portal — lives on the connection record, restricted to the system group, never in the module. It is transmitted only to the SEF endpoint you configure.
Guided onboarding
A wizard captures your PIB, Matični broj, budget-beneficiary status and API key, validates the identifiers, optionally tests the public API and leaves the company ready to issue SEF invoices. Optional crons drain posted documents to SEF and refresh their status in batches.
Compatible with Odoo 18 and Odoo 19.
Disclosure
This module transmits invoice data only to the SEF endpoint you configure. Your API key is stored solely on your own database and is never sent anywhere else.
Screenshots
Posted Rs Invoice With Sef S
Sef Ubl E Invoice Document G
Update date: 2026-07-02