Documentation

SEF e-invoices

E-invoices via SEF

Updated 10/10/2026

Connecting

In Settings → E-invoices and e-delivery notes turn on “I send e-invoices via SEF” (SEF is Serbia’s national e-invoicing system) and enter your company’s API key (obtained on the SEF portal: efaktura.mfin.gov.rs → account settings). You also choose the environment: demo (for testing) or production.

Sending

The SEF panel appears on the page of an issued document. The following are sent:

  • an invoice (Invoice),
  • an advance invoice,
  • a credit note (CreditNote, with a reference to the original invoice).

Before sending, the programme asks for confirmation — a sent document cannot be withdrawn or edited; a mistake is corrected by cancelling or with a credit note. After sending, the “Refresh status” button tracks the state: sent, approved, rejected…

What the customer sees

The programme automatically embeds the PDF of your document in every e-invoice (the same one as “Download PDF”, with the logo) — the customer opens it on SEF as an attachment and sees the document exactly as you made it, with the descriptions, the reference and the note. The line item description also goes into the line item name itself in the e-invoice, so it is visible in SEF’s own view and in the customer’s software too — in the description write what tells the customer what they are paying for (e.g. the basis of the advance). Because of the embedded PDF, there is room for 2 more attachments of yours with the e-invoice (SEF accepts 3 in total).

The “Sending” status — be patient

Immediately after sending, the invoice is in the “Sending” status: SEF has received it and has yet to deliver it to the recipient. That can take up to half a day — it is normal for SEF, nothing is stuck. When SEF delivers the invoice, the status changes to “Sent”, and from there on it depends on the customer (approved/rejected).

If “Sending” stays for longer than one working day, click “Check recipient” in the SEF panel — the programme checks in the official register whether the PIB (tax ID) from the invoice is registered on SEF at all (the most common cause of a permanently stuck invoice is a wrongly entered customer PIB).

Rules the programme keeps for you

  • The date of supply must not be after the date of issue.
  • A VAT-registered company sends line items with the 10% and 20% rates. A line item with 0% must have a basis for 0% VAT — the field appears on the line item as soon as you choose 0%: you choose from the official SEF code list (e.g. construction services to another VAT payer = “AE 20% · PDV-RS-10-2-3”, the recipient pays the tax; export of goods = “Z · PDV-RS-24-1-2”; a service to a foreign taxable person = “O · PDV-RS-12-4”). The programme sends the category and the code in the e-invoice, and prints the statutory note explaining why VAT was not charged on the PDF and on the document page. Without a basis the document is saved, but sending to SEF is refused, with instructions.
  • A document sent to SEF can no longer be edited in the programme — a correction goes through cancellation or a credit note.

Invoice to a public-sector customer — CRF (Central Invoice Register)

Every invoice issued to a user of public funds (a school, hospital, municipality, public enterprise…) must by law be registered in the CRF of the Treasury Administration — the Treasury cannot pay an invoice that is not registered. Registration goes through the same sending to SEF, without a separate account or key.

How it works in the programme:

  1. On the customer’s card enter their JBKJS (the unique public-sector budget user code, exactly 5 digits — the customer gives it to you, and it is also in the register on the Treasury website). The programme immediately checks whether the PIB and the JBKJS match in the official register.
  2. On an invoice to such a customer the “Central Invoice Register (CRF)” section appears, with the registration option turned on in advance. Turn it off only if you register the liability some other way.
  3. If you have a contract with the customer, enter the contract number — with some public-sector customers the CRF requires it; if it is mandatory and not entered, SEF will refuse the sending with a clear message, so you add the number and send again.
  4. When sending to SEF the programme shows the customer, the JBKJS and the amount once more. After sending, next to the invoice status the SEF panel also shows the CRF status of the liability (registered, partially settled, settled) — refreshed with the “Refresh status” button.

Important rules:

  • Only an invoice goes to the CRF — an advance invoice and a credit note are not registered (that is how SEF works, not the programme).
  • A credit note does not reduce a registered liability automatically. If you issue a credit note against an invoice registered in the CRF, you enter the reduction of the liability manually on the Treasury Administration portal (crf.trezor.gov.rs) — the programme reminds you of that on the credit note page.
  • If sending to SEF breaks so that the outcome is unknown (the connection dropped), the document cannot be edited until the outcome is clarified — on the document page repeat the sending (it is safe: a duplicate invoice cannot arise, the programme repeats the same request). This applies to the whole document, including the attachments and the CRF choice.

Cancelling a sent invoice

You cancel an invoice sent to SEF with the “Cancel document” button on the document page — the programme does everything in one go, both on SEF and in your records. You enter a cancellation number and a cancellation comment (the same fields as on the SEF portal); the customer gets a notification in their SEF account. Cancellation works for every sent invoice — both while it awaits the customer’s reply and after approval or rejection. The details and everything that happens on cancellation: Issuing documents.

The customer’s deadline to reply

The customer replies to a received e-invoice within 15 days. The same deadline applies to you for received invoices.

Payment reference in the e-invoice

The payment reference you enter on the document now travels into the e-invoice itself, not only onto the PDF. The customer’s software composes the payment order from it, so the payment arrives with your reference — and that is exactly what the bank statement import uses to match the payment with the invoice automatically.

If you leave the Payment reference field empty, the number of the document itself is used — both on the PDF and in the e-invoice. The same goes for an invoice you made from a delivery note or a work order: the payment reference is the number of the invoice, because the customer pays the invoice.