Available now · For developers and software houses

e-Faktura API for UJP — issue and receive e-invoices from any software

Build once, stay compliant. When UJP changes the e-Faktura specification, formats or rules, Merot absorbs the change behind a stable, versioned API — your integration keeps working.

A sandbox is included for testing before production.

Windows · macOS · Linux
10-year archive
Frankfurt or Macedonia — your choice
Support in MK / SQ / EN
How it works

Electronic invoicing (e-Faktura) over an API — from your software to UJP

01 · youYour softwarePOST /v1/einvoices with a simple JSON — header, parties, lines, VAT.
02Merot APIValidates against UJP's rules and the buyer registry before it goes any further.
03Merot BridgeSigns locally with your own qualified certificate — on Windows, macOS or Linux.
04UJPReceives it, queued against rate limits; we retry when needed — you don't track any of it.
05Archive + inboxEvery document, kept 10 years. Incoming invoices flow back into the same API.

An incoming invoice from your supplier? Accept or reject it before the 10th of next month — after that it is auto-accepted.

Benefits

Built to survive every UJP change

Build once, stay compliant

When UJP changes the specification, formats or rules, Merot absorbs the change behind one stable, versioned API. Breaking changes only ever land in a new API version — never unannounced.

Every document type

Every UJP e-invoice document type, including storno and correction (docStorno 1/2), with a reason code and a reference to the original.

Validation before UJP

A full UJP rule check and buyer-registry pre-flight, before the document ever leaves.

An inbox with deadlines

Incoming invoices in one place, with an alert ahead of the 10th-of-next-month deadline.

A 10-year archive

UJP itself keeps documents only 2 years; the law requires 10. Merot keeps them for 10, on every plan.

Webhooks, sandbox, 6 languages

Status and inbox events as webhooks, a sandbox against UJP's own test system, code samples in 6 languages.

Your certificate never leaves

Merot Bridge signs locally on your own device — on Windows, macOS AND Linux. Most tools are Windows-only.

Comparison

Build it yourself vs. Merot

AreaBuild it yourselfWith Merot
UJP JSON and document typesYou track every UJP change yourselfKept current behind one versioned API
Qualified signing (JWS)Your own PKCS#11/token integration, per OSMerot Bridge — ready on all three; the certificate never leaves your device
Rate limits & retriesBuild your own queue and backoff logicHandled for you
Storno / correctionImplement the docStorno rules yourselfBuilt in, with reason codes
Incoming-invoice deadlinesTrack the 10th-of-month rule yourselfInbox + deadline alerts
10-year archiveBuild and maintain WORM storageIncluded on every plan, hosted in Frankfurt or Macedonia, your choice
Developer experience

Built for integrators

5-minute quickstart

Your first document in the sandbox, with a real code example.

Read more →

A sandbox for testing

Test against a simulator or directly against UJP's own test system, without real documents.

Read more →

Webhooks

einvoice.submitted/accepted/rejected, inbox.received and deadline alerts — signed, with retries.

Read more →

OpenAPI + SDKs

A full OpenAPI specification; official SDKs for TypeScript and C#.

Read more →
cURLNode.jsPythonPHPC#Java

Versioning →

Pricing

Per-document pricing, at any volume

Sent and received documents count together; the archive is included on every plan. Annual billing: pay 10 months, use 12.

Start
up to 100 documents/mo
990 MKD/mo
Get API keys
Business
up to 1,000 documents/mo
2.990 MKD/mo
Get API keys
Scale
up to 10,000 documents/mo · 99.9% SLA
9.900 MKD/mo
Get API keys
Vendor
3 MKD up to 10,000/mo · 2 MKD up to 100,000/mo · 1.5 MKD above that · minimum 4,990 MKD/mo
3 / 2 / 1,5 MKD/document
For software vendors: resell wholesale, or through a 20% commission / 12-month referral.
Get API keys

99.9% SLA on Scale and Vendor: credits of 10% below 99.9%, 25% below 99.0%, 50% below 95% (UJP outages excluded).

Support

Directly to the Merot team

Contact form

Reply during business hours.

Languages

Support in Macedonian, Albanian and English.

FAQ

Frequently asked questions

What is e-Faktura?

e-Faktura is North Macedonia's UJP e-invoicing system for electronic invoice exchange: a proprietary JSON format, signed as a JWS with a qualified certificate — not UBL/EN 16931.

When does e-Faktura become mandatory?

The law has not been adopted yet (October 2026), so the voluntary phase planned for 01.10.2026 did not start. The draft makes it mandatory for VAT payers from 01.04.2027, then phased in through 01.01.2028 for everyone; the dates may move.

See the timeline →
Do I need a digital certificate?

Yes — a qualified electronic signature (QES) in your name. Merot Bridge keeps it on your own device and signs locally; the key never leaves.

Does it work on Mac?

Yes. Merot Bridge runs identically on Windows, macOS and Linux — most signing tools are Windows-only.

What happens when UJP changes the specification?

Merot absorbs the change behind the API. Your integration keeps working; breaking changes only ship in a new version, per the versioning policy.

Versioning policy →
Is there a free trial?

There are no free trials or free plans. There is a sandbox for testing, included with every account.

How long are invoices archived?

10 years, hosted in Frankfurt (EU) or in North Macedonia — your choice. UJP itself keeps them only 2 years.

Can I storno or correct an invoice?

Yes — with a storno/correction reason (docStorno 1/2) and a reference to the original EUID, fully built into the API.

Does pricing depend on the number of client companies?

Not per company — per document, across your whole account. The Vendor plan is built for exactly this: many client companies under one account.

Are there SDKs?

Yes — official SDKs for TypeScript and C#, plus code samples in 4 more languages (cURL, Python, PHP, Java).

Related reading

For context around e-Faktura

Get your API keys

Build with the UJP e-invoice API once. When UJP changes, we carry the load instead of you.

We use your details to reply to you. Privacy policy

Browse the API reference →