e-Faktura API
Known issues with UJP
This page lists what we have seen UJP’s e-Faktura system do in live tests that differs from UJP’s own documentation, or that blocks a document type. Each entry says what happens, what Merot does about it, and what you can do meanwhile. We remove an entry as soon as UJP resolves it; changes are also noted in the changelog.
Important
Observed on UJP’s TEST environment on 30 September 2026. Production behaviour has not been verified yet. We have reported these to UJP.
Storno is refused by UJP
What happens: every storno (POST /v1/einvoices/{id}/storno) is refused by UJP with
E1025 — Invalid void request: Invalid reference for this document type, returned as HTTP 500.
Our storno follows UJP’s published storno example field by field, and the same reference to the
original (its EUID) is accepted by UJP on debit notes. We tested self-issued and third-party
invoices, and both a new and the original document id.
What Merot does: the storno ends in status invalid, with UJP’s exact message in
lastError and in GET /v1/einvoices/{id}/errors, and an einvoice.ujp_error webhook. It is not
retried and does not ask for a second signature. The original invoice is untouched and stays
valid at UJP.
Meanwhile: corrections (POST /v1/einvoices/{id}/correction) are accepted by UJP and work
normally.
Credit note (110) cannot be issued with sales tax indicators
What happens: UJP’s live codebook that pairs document types with tax indicators allows only
DDV-22, DDV-24 and DDV-26 on a credit note (documentType: "110"), while UJP’s own credit
note example uses DDV-A.
What Merot does: validation follows UJP’s live codebook, so a 110 with DDV-A (or another
sales indicator) is refused with 422 validation_failed on lines[].taxIndicator, before anything
is signed or sent. Debit notes (120) are accepted by UJP with sales indicators and a reference
to the original invoice.
Undocumented field length limits
UJP documents no maximum length for some fields but refuses longer values with E4024 … exceeds the character limit. Measured live:
| Field | Accepted | Refused |
|---|---|---|
Document number (number) | 20 characters | 40 |
Line description (lines[].description) | 255 characters | 500 |
Notes (notes) | 250 characters | 500 |
Merot enforces these limits in its own validation (422 before signing), so you see the problem
immediately instead of after a signature.