If your product touches employment in North Macedonia — an HR platform, accounting software, an Employer-of-Record, or an internal tool — you eventually hit the same wall: payroll compliance. It isn't just gross-minus-a-percentage. You need the exact contribution split, the personal-income-tax base, sick-leave handling, the contribution floor and ceiling, and then the two files the Public Revenue Office (UJP) actually accepts: МПИН and e-PDD. Getting any of it slightly wrong means rejected filings.
Merot runs a payroll engine in production for its own HRS product. That same engine is available as a REST API — so you don't have to rebuild Macedonian payroll from scratch.
What it does
Two groups of endpoints:
- Calculation. Gross→net (and net→gross inversion) with the current contribution rates, the personal allowance, the minimum contribution basis, and the 16× average-salary ceiling — for one employee or a batch.
- File generation. Produces the UJP files in the exact accepted shape: МПИН XML and TXT, and e-PDD ГИ XML (for contractor / друг личен доход). Sick-leave rows (боледување), overtime, night, holiday and corrections are all handled.
Built for any legal entity
The service is stateless — every request carries its own data, and nothing about a specific company is hard-coded. You pass the employer block (ЕДБ / даночен број, ЕМБС, name, address, municipality) per request, so one integration files for one tenant or a thousand. Authentication is a simple X-API-Key header.
POST /api/v1/generators/mk/mpin-xml
X-API-Key: <your-key>
{ "periodMonth": 6, "periodYear": 2026, "vidObvrska": "110",
"employer": { "taxId": "4030007636033", "name": "…", "vidObvrznik": "101" },
"records": [ { "embg": "…", "grossSalary": 65000, "netSalary": 47268, … } ] }
→ 200 application/xml
The per-employee sick-leave fields, bank accounts and municipality are all per record. The identity gross − contributions − tax = net is validated, so you can't emit an invalid file by accident.
Who it's for
- HR / payroll software entering the MK market without building УЈП compliance in-house.
- Accounting platforms that need to generate МПИН and e-PDD alongside their own outputs.
- EOR / staffing platforms running Macedonian payroll for client companies.
- Internal tools at companies that want a reliable engine behind a spreadsheet.
Why not roll your own
The rules move (the 2026 contribution split was redistributed while keeping the 28% total), the file formats are exact, and sick-leave and correction handling is where most in-house implementations break. A shared, tested engine that already matches accepted UJP files is cheaper to integrate than to reverse-engineer — and it stays current as the rules change.
The same engine powers Merot HRS, so what you integrate is what's already filing real payroll.
Get started
The full endpoint reference, request shapes and the legal-entity contract are in the Merot Payroll API documentation. Keys are issued per integrator — reach out and we'll help wire your system in.
