What is e-Faktura
The UJP e-invoicing system, who must use it, what Bilify does with it today and what the built-in simulator means for you.
e-Faktura is the central e-invoicing system of the Public Revenue Office of North Macedonia (UJP). This article explains what the system does, who has to use it, and what Bilify does for you when it is switched on.
What the UJP system does
Every invoice a business issues through e-Faktura is checked by UJP, gets a unique identifier (EUID, in Macedonian ЕИФ) and a timestamp, and must carry that EUID and a QR verification link on its printed or PDF form. The buyer then has a deadline to accept or reject it. Mistakes are fixed with a new document that references the original (a storno or a correction), never by deleting or editing the registered invoice.
Requests to UJP are signed with the qualified electronic certificate of the company, so the system knows who issued each document.
Who has to use it
The Law on e-Invoice phases the obligation in. At the time of writing, the published draft foresees voluntary use from 1 October 2026, mandatory use for VAT-registered businesses from 1 April 2027, and everyone performing transactions from 1 January 2028, with other groups in between. Dates in a draft law can change: check the current text with UJP or your accountant.
e-Faktura is only offered to companies registered in North Macedonia. If your company is in another country, these articles and screens do not appear in your app.
What Bilify does
When you switch the module on under Settings > e-Faktura, Bilify works with UJP for the document types that are fiscal invoices: Invoice, Invoice (Article 32 reverse charge) and Advance Invoice. Offers and pro-forma invoices never go to UJP.
| Area | What you get |
|---|---|
| Sending | A Send to UJP button on every issued invoice, or automatic sending at issue if you switch that on. Bilify signs the request with your certificate and checks UJP's arithmetic first. |
| Status | The invoice page shows the UJP status (sent, accepted, rejected, voided, corrected) with Refresh status, or automatic refresh every 15 minutes. |
| Storno and correction | Storno issues a reversing document; Correct creates a replacement draft. Both are registered with UJP and linked to the original. |
| EUID and QR | Once registered, the print view, the PDF and the client portal show the EUID, the UJP timestamp and the QR verification link. |
| Received invoices | An inbox of invoices other companies issued to you, with the decision deadline, Accept / Reject, booking as an expense and the deductible VAT declaration. |
| Attention | Bell notifications for failed sends, rejections and new received invoices, plus a dashboard card. |
Each exchange with UJP can run automatically or stay manual. See Automatic or manual.
Current status: the simulator
The production connection to UJP is not live yet
Today Bilify runs e-Faktura against a built-in simulator. The settings page says so: Running against the built-in simulator; nothing reaches UJP. The simulator applies UJP's published checks (tax numbers, arithmetic, code lists, storno references) and returns an EUID and a QR link, but those identifiers are not registered with UJP.
What this means for you:
- Invoices you "send" from Bilify are not legally registered with UJP yet, even when they show Sent to UJP. Keep meeting your obligations the way you do today.
- The EUID and QR link printed on a simulated invoice point to UJP's test address and will not verify.
- The inbox only shows invoices produced inside the simulator, not invoices your suppliers really sent you through UJP.
- You can still prepare: fill in your identity, upload the certificate, check that your company and client data pass UJP's checks with the Check button, and decide which automations you want.
When the live connection is available, the same settings and buttons will talk to UJP. The choice between UJP test system and UJP production system on the settings page is already there for that moment.
Where to go next
- Before you start: what you need from UJP and a certificate provider.
- Connect e-Faktura: fill in the settings page.
- Send invoices to UJP and Received invoices.
Was this page helpful?
Related articles
Still stuck?
Write to us and we will get back to you within one working day.