Guide: Specific use for Croatia
This is a guide to using Transaction Services for specific requirements for document handling in Croatia.
Work in progress
Page updates are in progress regarding MLRs and eMLRs.
For general guidance on working with JSON metadata, please refer to MAPI Guided Tour -- Transaction Services.
- For working with raw XML, please refer to MAPI Guided Tour – Message Services .
- Even when working with XML documents, these routes descibed below are applicable.
Service overview
The following services are offered by Unimaze:
-
Sending and receiving on the Croatian network.
-
Perform tax reporting and other fiscalization activities on behalf of the client.
-
Look up if receiver is eligible to receive an invoice electronically and, in that case, register and outbound invoice as a fiscal evidence, otherwise as a taxable delivery.
-
Register an inbound invoice as fiscal evidence.
-
Supplier must register a payment
A supplier has the legal obligation to register a payment for an e-invoice once it has received.
A supplier party registers the payment using POST /messaging/:mid/compliance/hr/register-payment with a payload looking like this:
{
"paymentDate": "2025-11-18",
"chargedAmount": 100.12,
"paymentMethod": "SettlementPayment"
}Another option is to do this independently of the message using POST /compliance/hr/register-payment. This is not recommended unless doing a migration where the invoices/credit notes don't exist on our service, since link between messages will be lost.
In this case the payload looks like this:
{
"documentNumber": "INV1002",
"issueDate": "2025-11-01",
"supplierIdentifier": "11223344556", // own OIB number
"supplierName":"Supplier d.o.o.",
"customerIdentifier": "99887766554",
"customerName":"customer d.o.o.",
"paymentDate": "2025-11-18",
"chargedAmount": 100.12,
"paymentMethod": "SettlementPayment"
}Customer may register a rejection
A customer has the legal obligation to register a rejection of an e-invoice before the 20th of the subsequent month after the invoice was issued.
A customer party can register using POST /messaging/:mid/compliance/hr/register-payment with a payload looking like this:
{
"rejectionType": "MismatchAffectingTaxes",
"rejectionReason": "Did not receive goods too"
}
Another option is to do this independently of the message using POST /compliance/hr/register-rejection. This is not recommended unless doing a migration where the invoices/credit notes don't exist on our service, since link between messages will be lost.
In this case the payload looks like this:
{
"documentNumber": "INV1002",
"issueDate": "2025-11-01",
"customerIdentifier": "11223344556", // own OIB number
"customerName":"customer d.o.o",
"supplierIdentifier": "99887766554",
"supplierName":"supplier d.o.o.",
"rejectionType": "MismatchAffectingTaxes",
"rejectionReason": "Did not receive goods too"
}Processing tax feedback
Integrators must handle all incoming messages, included extended MLRs containing information about fiscal actions.
An overview of the flow is detailed here: ERP Tax Integration Flow
-
A good practice is to filter inbound messages using actions e.g. invoke
GET /messages?status=pendingdelivery&transfer=inbound&transactionGroup=SubmitInvoice,CorrectWithCredit,SubmitMessageResponseand differentiate between regular MLRs and extended MLRs (with document parameters and attachments) based on transaction information.\NOTE
At the moment the transaction group filter only supports a single value, so essentially theGET /messagescall would EITHER have to be made three times OR do aGET /messages?status=pendingdelivery&transfer=inboundand handle based on theActiontype. -
Implementors should at least mark these as delivered (once detected by the ERP).
-
IN PROCESS
- Add section to explain what eMLR tells about the fiscal action (reference to another page maybe?)
- Add link to GET /... that will fetch the eMLR along with its parameters.
Profile types and document types
Two parameters in JSON for POST /transactions/submit-invoice and POST /transactions/correct-with-credit are used for determining which profile to use:
-
profileTypedescribes the actual profile e.g.P1,P2, ...,P12as described in PDF Opis poslovnih procesa (from source Fiskalizacija 2.0 / eRačun) -
documentTypehas enumeration values likeCommercialInvoice,PrepaidInvoice,FactoredInvoice. For most networks and process specifications this has no meaning, since no distinction is made and onlyCommercialInvoiceis supported.
Neither of these values is mandatory and will be set to default if omitted (P1 and CommercialInvoice), whereas specifying only one of them will map to the most appropriate default value for the other. When both are set an error will be returned, in case they are in conflict.
Extended tax information
Extra information, provided in the so called HRUBLExtensions are created automatically in Transaction Services (JSON) but must be included in documents sent via the Messaging Service (XML).
Product classification
Every product or service item on an invoice or credit note (except pre-payment invoices) must contain a classification code according to the Klasus KPD2025 classification system.
They must be presented in this format <root category\>.\<sub category\>.\<item category\>.
Companies must map their product and service items to classification codes.
For many smaller businesses in service industry, they may be using 3-10 classification codes, but for others depending on the nature of the business (such as in retail, manufacture or wholesale) far more codes could be used.
Further information can be found here:
-
General information from the tax administration office and details on how to use these codes: Klasifikacija proizvoda (KPD 2025).
The source of information, full code list from the Bureau of Statistics: KLASUS - Osnovne informacije
-
Information on how to navigate and find the code list: KLASUS_slikovni_prikaz.pdf
Updated 19 days ago
