Username – Email or ID provided by MER
Password – Login password
CompanyId – Sender Identification Number (OIB or VATNr. if Sender is non-Croatian company)
CompanyBu – Sender Business Unit (only if it is registered in MER)
SoftwareID – ERP identifier provided by MER
– Checks whether the service is up and running.
– Can be used for basic connectivity and availability checks.
GET https://www.moj-eracun.hr/apis/v2/Ping/
{
"Status": "ok",
"Message": "Service is up"
}
– Uploads and submits an electronic invoice/document to the moj-eRačun platform.
– Performs validation and processing.
– XML needs to be JSON escaped format
– After submission, the recipient immediately receives the document. Fiscalization starts afterwards, so both sender and recipient need to track fiscalization status to confirm success.
– Use QUERY INBOX/OUTBOX to check whether the document has been received.
Header: content-type: application/json; charset: utf-8
Live – POST https://www.moj-eracun.hr/apis/v2/send
Demo – POST https://demo.moj-eracun.hr/apis/v2/send
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"File": {
"description": "Utf-8 encoded and JSON escaped XML file",
"type": "string",
"mandatory": true
}
}
{
"Username": 1083,
"Password": "test123",
"CompanyId": "99999999927",
"CompanyBu": "",
"SoftwareId": "Test-002",
"File": "<?xml version="1.0" encoding="UTF-8"?>..."
}
{
"ElectronicId": 3239400,
"DocumentNr": "e26000007/1/2",
"DocumentTypeId": 1,
"DocumentTypeName": "Račun",
"StatusId": 20,
"StatusName": "Obrađen",
"RecipientBusinessNumber": "99999999927",
"RecipientBusinessUnit": "",
"RecipientBusinessName": "Test Klising d.o.o.",
"Created": "2026-02-11T11:32:43.8254386+01:00",
"Sent": "2026-02-11T11:32:43.9174186+01:00",
"Modified": "2026-02-11T11:32:43.9174186+01:00",
"Delivered": null
}
– Retrieves incoming documents/invoices from the platform.
– Only one document can be received with this API, using ElectronicID.
– Returns document in the XML format.
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/apis/v2/receive
Demo – POST https://demo.moj-eracun.hr/apis/v2/receive
{
"Username": {
"description": "Receiver Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Receiver Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Receiver Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Business Unit name (used only if it is registered in MER)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Electronic Document Id",
"type": "int",
"mandatory": true
}
}
{
"Username": "test@moj-eracun.hr",
"Password": "test123",
"CompanyId": "99999999927",
"SoftwareId": "Test-002",
"ElectronicId": "123456"
}
– Outbox: Lists all sent invoices/documents with status.
– Inbox: Lists all received invoices/documents.
– Supports filtering by date, Electronic ID, or status.
– Returns a list (array) of documents.
– Tracking whether a document was successfully: sent, delivered ,received.
– It does not include Payment status, Rejection reasons, Business process state
Header: “content-type:application/json; charset:utf-8”
OUTBOX
Live – POST https://www.moj-eracun.hr/apis/v2/queryOutbox
Demo – POST https://demo.moj-eracun.hr/apis/v2/queryOutbox
INBOX
Live – POST https://www.moj-eracun.hr/apis/v2/queryInbox
Demo – POST https://demo.moj-eracun.hr/apis/v2/queryInbox
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Filters single document",
"type": "int",
"mandatory": false
},
"StatusId": {
"description": "Filters status based on the status code.",
"type": "int",
"mandatory": false
},
"From": {
"description": "YYYY-MM-DDThh:mm:ss or YYYY-MM-DD",
"type": "ISO datetime",
"mandatory": false
},
"To": {
"description": "YYYY-MM-DDThh:mm:ss or YYYY-MM-DD",
"type": "ISO datetime",
"mandatory": false
}
}
{
"Username": "test@moj-eracun.hr",
"Password": "test123",
"CompanyId": "99999999927",
"SoftwareId": "Test-002",
"StatusId": "30"
}
Outbox Response
{
"ElectronicId": 394167,
"DocumentNr": "20156256",
"DocumentTypeId": 1,
"DocumentTypeName": "Račun",
"StatusId": 20,
"StatusName": "Obrađen",
"RecipientBusinessNumber": "99999999927",
"RecipientBusinessUnit": "",
"RecipientBusinessName": "Test d.o.o.",
"Created": "2026-01-28T15:18:54.5458301",
"Updated": "2026-01-29T08:03:20.0566665",
"Sent": "2026-01-28T15:18:56.4864434",
"Delivered": "2026-01-29T07:06:38.1786133",
"Issued": "2026-01-28T00:00:00",
"Imported": false
}
Inbox Response
{
"ElectronicId": 394167,
"DocumentNr": "20156256",
"DocumentTypeId": 1,
"DocumentTypeName": "Račun",
"StatusId": 20,
"StatusName": "Obrađen",
"SenderBusinessNumber": "99999999927",
"SenderBusinessUnit": "",
"SenderBusinessName": "Test d.o.o.",
"Updated": "2026-01-29T08:03:20.0566665",
"Sent": "2026-01-28T15:18:56.4864434",
"Delivered": "2026-01-29T07:06:38.1786133",
"Imported": false
}
– Retrieves Tax Administration (TA) responses exclusively for actions initiated by the user themselves (based on the username and company OIB), while insight into the actions of the other party is not possible.
– Used to check the TA response regarding the successful recording of an outbound invoice payment (markPaid) and the successful recording of an inbound invoice rejection (reject).
– When sending an invoice, the type of reporting depends on the recipient’s registration in the AMS. If both parties are in the AMS, the document is fiscalized. If the recipient is not in the AMS, e-Reporting is performed. In both cases, the API returns the TA’s response on the success of that processing.
– The MessageType parameter defines for which exact action the status is retrieved: 0 (fiscalization as sender), 1 (fiscalization as receiver), 2 (rejection status), 3 (payment status), or 4 (eReporting status).
– The ChannelType parameter additionally indicates through which channel the document was reported to the Tax Administration: 0 (Fiscalization) or 1 (eReporting).
– The Status parameter displays the final result of processing that specific request by the Tax Administration: 0 (Success), 1 (Failed), or 2 (Pending).
Header: “content-type:application/json; charset:utf-8”
OUTBOX
Live – POST https://www.moj-eracun.hr/api/fiscalization/statusOutbox
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/statusOutbox
INBOX
Live – POST https://www.moj-eracun.hr/api/fiscalization/statusInbox
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/statusInbox
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Filters single document",
"type": "int",
"mandatory": false
},
"MessageType": {
"description": "Filters by MessageType in the table below",
"type": "string",
"mandatory": false
},
"DateFrom": {
"description": "YYYY-MM-DDThh:mm:ss or YYYY-MM-DD",
"type": "ISO datetime",
"mandatory": false
},
"DateTo": {
"description": "YYYY-MM-DDThh:mm:ss or YYYY-MM-DD",
"type": "ISO datetime",
"mandatory": false
},
"ByUpdateDate": {
"description": "If true, filters by document update date; otherwise filters by insert date",
"type": "boolean",
"mandatory": false
},
"FiscalizationRequestID": {
"description": "Filters single document based on FiscalizationRequestID",
"type": "string",
"mandatory": false
},
"Status": {
"description": "Filters by Status in the table below",
"type": "int",
"mandatory": false
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "22222222222",
"SoftwareId": "Test-002",
"MessageType": 1,
"DateFrom": "2025-10-20",
"DateTo": "2025-10-25",
"ByUpdateDate": true,
"ElectronicId": 11221122,
"FiscalizationRequestId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"Status": 1
}
[
{
"electronicID": "100",
"recipientIdentificationValue": "11111111111",
"recipientName": "Kompanija d.o.o.",
"channelType": 0,
"channelTypeDescription": "Fiskalizacija",
"businessStatusReason": "Some reason",
"messages": {
"status": 2,
"statusDescription": "Na čekanju",
"fiscalizationRequestId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"dateOfFiscalization": "2025-06-20T16:45:30Z",
"encodedXml": "PD94bWwgdmVyc2lvbj0iMS4wIiB…",
"errorCode": "S001",
"errorCodeDescription": "Sistemska greška prilikom obrade zahtjeva",
"messageType": 0,
"messageTypeDescription": "Kao POŠILJATELJ dohvati status fiskalizacijske poruke"
}
}
]
– Used only by sender.
– If you have an ElectronicID, always use the API that includes ElectronicID as a parameter.
– APIs without an ElectronicID will be recorded in the tax system, but they will not be visible in the Mer service.
– After receiving payment for an invoice, sender notifies the tax authority via API that the invoice has been paid.
Bulk processing behavior:
– A single bulk request can contain up to 100 invoices.
– If any invoice in the bulk request fails, the Tax Authority rejects the entire request and no invoices are marked as paid.
– The Tax Authority does not provide details about which invoice caused the bulk operation to fail.
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/markPaid
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/markPaid
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Electronic Document Id",
"type": "int",
"mandatory": true
},
"PaymentDate": {
"description": "Payment date",
"type": "date",
"mandatory": true
},
"PaymentAmount": {
"description": "Payment amount",
"type": "decimal",
"mandatory": true
},
"PaymentMethod": {
"description": "Filters by PaymentMethod in the table below",
"type": "string",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "11111111111",
"CompanyBU": null,
"SoftwareId": "software-123",
"ElectronicId": 101,
"PaymentDate": "2024-06-01T00:00:00",
"PaymentAmount": 500.00,
"PaymentMethod": "T"
}
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/bulkMarkPaid
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/bulkMarkPaid
{
"username": "user@mail.com",
"password": "mystrongpass",
"companyId": "11111111111",
"companyBU": null,
"softwareId": "software-123",
"invoices": [
{
"electronicId": 101,
"paymentDate": "2024-06-01T00:00:00",
"paymentAmount": 500.00,
"paymentMethod": "T"
},
{
"electronicId": 102,
"paymentDate": "2024-06-02T00:00:00",
"paymentAmount": 250.50,
"paymentMethod": "O"
},
{
"electronicId": 103,
"paymentDate": "2024-06-03T00:00:00",
"paymentAmount": 100.99,
"paymentMethod": "Z"
}
]
}
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/markPaidWithoutElectronicID
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/markPaidWithoutElectronicID
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"DateOfFiscalization": {
"description": "Date when the fiscalization was done for the eInvoice",
"type": "date",
"mandatory": false
},
"InternalMark": {
"description": "Fiscaliscal invoice number",
"type": "string",
"mandatory": true
},
"IssueDate": {
"description": "Issue date of the document from XML file (not date of sending the document to MER)",
"type": "date",
"mandatory": true
},
"SenderIdentifierValue": {
"description": "Sender identification number (OIB or GLN)",
"type": "string",
"mandatory": true
},
"RecipientIdentifierValue": {
"description": "Recipient identification number (OIB or GLN)",
"type": "string",
"mandatory": true
},
"PaymentDate": {
"description": "Payment date",
"type": "date",
"mandatory": true
},
"PaymentAmount": {
"description": "Payment amount",
"type": "decimal",
"mandatory": true
},
"PaymentMethod": {
"description": "Filters by PaymentMethod in the table below",
"type": "string",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "11111111111",
"CompanyBU": null,
"AoftwareId": "software-123",
"DateOfFiscalization": "2024-06-01",
"InternalMark": "INV-001",
"IssueDate": "2024-05-30",
"SenderIdentifierValue": "12345678901",
"RecipientIdentifierValue": "10987654321",
"PaymentDate": "2024-06-01",
"PaymentAmount": 500.00,
"PaymentMethod": "T"
}
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/bulkMarkPaidWithoutElectronicId
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/bulkMarkPaidWithoutElectronicId
{
"username": "user@mail.com",
"password": "mystrongpass",
"companyId": "11111111111",
"companyBU": null,
"softwareId": "software-123",
"invoices": [
{
"dateOfFiscalization": "2024-06-01T10:00:00",
"internalMark": "INV-001",
"issueDate": "2024-05-30T00:00:00",
"senderIdentifierValue": "12345678901",
"recipientIdentifierValue": "10987654321",
"paymentDate": "2024-06-01T10:00:00",
"paymentAmount": 500.00,
"paymentMethod": "T"
},
{
"dateOfFiscalization": "2024-06-02T11:00:00",
"internalMark": "INV-002",
"issueDate": "2024-05-31T00:00:00",
"senderIdentifierValue": "12345678901",
"recipientIdentifierValue": "10987654321",
"paymentDate": "2024-06-02T11:00:00",
"paymentAmount": 250.50,
"paymentMethod": "O"
},
{
"dateOfFiscalization": "2024-06-03T12:00:00",
"internalMark": "INV-003",
"issueDate": "2024-06-01T00:00:00",
"senderIdentifierValue": "12345678901",
"recipientIdentifierValue": "10987654321",
"paymentDate": "2024-06-03T12:00:00",
"paymentAmount": 100.99,
"paymentMethod": "Z"
}
]
}
{
"fiscalizationTimestamp": "2025-06-15T14:30:25Z",
"encodedXml": "PD94bWwgdmVyc2lvbj0iMS4wIiB …",
"fiscalizationRequestId": "d290f1ee-6c54-4b01-90e6-d701748f0851"
}
– Used only by recipient.
– If you have an ElectronicID, always use the API that includes ElectronicID as a parameter.
– APIs without an ElectronicID will be recorded in the tax system, but they will not be visible in the Mer service.
– Recipient can reject an invoice/document and specify a reason.
Bulk processing behavior:
– A single bulk request can contain up to 100 invoices.
– If any invoice in the bulk request fails, the Tax Authority rejects the entire request and no invoices are rejected.
– The Tax Authority does not provide details about which invoice caused the bulk operation to fail.
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/reject
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/reject
{
"Username": {
"description": "Receiver Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Receiver Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Receiver Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Receiver Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Electronic Document Id",
"type": "int",
"mandatory": true
},
"RejectionDate": {
"description": "Date when rejection of the electronic document is performed",
"type": "date",
"mandatory": true
},
"RejectionReasonType": {
"description": "Type of rejection, see table 5.2.",
"type": "string",
"mandatory": true
},
"RejectionReasonDescription": {
"description": "Text description with rejection note",
"type": "string",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "11111111111",
"CompanyBU": null,
"SoftwareId": "software-123",
"ElectronicId": 201,
"RejectionDate": "2024-06-01T10:05:00",
"RejectionReasonType": "N",
"RejectionReasonDescription": "Data mismatch without tax impact"
}
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/bulkReject
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/bulkReject
{
"username": "user@mail.com",
"password": "mystrongpass",
"companyId": "11111111111",
"companyBU": null,
"softwareId": "software-123",
"invoices": [
{
"electronicId": 201,
"rejectionDate": "2024-06-01T10:00:00",
"rejectionReasonType": "N",
"rejectionDescription": "Data mismatch without tax impact"
},
{
"electronicId": 202,
"rejectionDate": "2024-06-02T11:00:00",
"rejectionReasonType": "U",
"rejectionDescription": "Data mismatch with tax impact"
},
{
"electronicId": 203,
"rejectionDate": "2024-06-03T12:00:00",
"rejectionReasonType": "O",
"rejectionDescription": "Other reason"
}
]
}
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/rejectWithoutElectronicID
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/rejectWithoutElectronicID
{
"Username": {
"description": "Receiver Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Receiver Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Receiver Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Receiver Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"DateOfFiscalization": {
"description": "Date when the fiscalization was done for the eInvoice",
"type": "date",
"mandatory": false
},
"InternalMark": {
"description": "Fiscaliscal invoice number",
"type": "string",
"mandatory": true
},
"IssueDate": {
"description": "Issue date of the document from XML file (not date of sending the document to MER)",
"type": "date",
"mandatory": true
},
"SenderIdentifierValue": {
"description": "Sender identification number (OIB or GLN)",
"type": "string",
"mandatory": true
},
"RecipientIdentifierValue": {
"description": "Recipient identification number (OIB or GLN)",
"type": "string",
"mandatory": true
},
"RejectionDate": {
"description": "Date when rejection of the electronic document is performed",
"type": "date",
"mandatory": true
},
"RejectionReasonType": {
"description": "Filter by RejectionReasonType in the table below",
"type": "string",
"mandatory": true
},
"RejectionReasonDescription": {
"description": "Text description with rejection note",
"type": "string",
"mandatory": true
}
}
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/bulkRejectWithoutElectronicId
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/bulkRejectWithoutElectronicId
{
"username": "user@mail.com",
"password": "mystrongpass",
"companyId": "11111111111",
"companyBU": null,
"softwareId": "software-123",
"invoices": [
{
"dateOfFiscalization": "2024-06-01T10:00:00",
"internalMark": "INV-001",
"issueDate": "2024-05-30T00:00:00",
"senderIdentifierValue": "HR12345678901",
"recipientIdentifierValue": "HR10987654321",
"rejectionDate": "2024-06-01T10:05:00",
"rejectionReasonType": "N",
"rejectionReasonDescription": "Data mismatch without tax impact"
},
{
"dateOfFiscalization": "2024-06-02T11:00:00",
"internalMark": "INV-002",
"issueDate": "2024-05-31T00:00:00",
"senderIdentifierValue": "HR12345678901",
"recipientIdentifierValue": "HR10987654321",
"rejectionDate": "2024-06-02T11:10:00",
"rejectionReasonType": "U",
"rejectionReasonDescription": "Data mismatch with tax impact"
},
{
"dateOfFiscalization": "2024-06-03T12:00:00",
"internalMark": "INV-003",
"issueDate": "2024-06-01T00:00:00",
"senderIdentifierValue": "HR12345678901",
"recipientIdentifierValue": "HR10987654321",
"rejectionDate": "2024-06-03T12:15:00",
"rejectionReasonType": "O",
"rejectionReasonDescription": "Other reason"
}
]
}
{
"fiscalizationTimestamp": "2025-06-15T14:30:25Z",
"encodedXml": "PD94bWwgdmVyc2lvbj0iMS4wIiB …",
"fiscalizationRequestId": "d290f1ee-6c54-4b01-90e6-d701748f0851"
}
– Used to update the processing status of an incoming document by the recipient.
– Only statuses 0, 1, 2, and 3 can be set via the API.
POST https://www.moj-eracun.hr/apis/v2/UpdateDokumentProcessStatus
Header: content-type: application/json; charset:utf-8
{
"Username": {
"description": "Recipient Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Recipient Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Recipient Company Id (OIB)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Recipient Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (ERP) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Electronic ID of the document for which the process status is updated",
"type": "int",
"mandatory": true
},
"StatusId": {
"description": "Document process status. Allowed values: 0, 1, 2, 3",
"type": "int",
"mandatory": true
},
"RejectReason": {
"description": "Reason for rejection (required when StatusId = 1)",
"type": "string",
"mandatory": false
},
"RejectReasonCode": {
"description": "Type of rejection, see options below",
"type": "string",
"mandatory": false
}
}
{
"Username": "test@moj-eracun.hr",
"Password": "test123",
"CompanyId": "99999999999",
"SoftwareId": "software-123",
"ElectronicId": 4439122,
"StatusId": 1,
"RejectReason":"Rejection reason",
"RejectionReasonCode": "O"
}
{
"ElectronicId": 4439122,
"DokumentProcessStatus": 0,
"UpdateDate": "2019-04-04T19:05:04.3818381+02:00"
}
Status codes 4 and 99 cannot be modified via API and are managed exclusively by the service provider.
– Used to track the life cycle of a document after delivery.
– Checks whether the document is: paid, rejected, or fiscalized.
– Feedback includes: all basic document identification data, DocumentProcessStatus (e.g., Paid, Rejected), rejection reason (if applicable), and additional document statuses.
Header: “content-type:application/json; charset:utf-8”
OUTBOX
Live – POST https://www.moj-eracun.hr/apis/v2/queryDocumentProcessStatusOutbox
Demo – POST https://demo.moj-eracun.hr/apis/v2/queryDocumentProcessStatusOutbox
INBOX
Live – POST https://www.moj-eracun.hr/apis/v2/queryDocumentProcessStatusInbox
Demo – POST https://demo.moj-eracun.hr/apis/v2/queryDocumentProcessStatusInbox
{
"Username": {
"description": "Sender or Recipient Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Login password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Company Id (OIB)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (ERP) Id",
"type": "string",
"mandatory": true
},
"ElectronicId": {
"description": "Filters a single document",
"type": "int",
"mandatory": false
},
"StatusId": {
"description": "Filters by document process status",
"type": "int",
"mandatory": false
},
"InvoiceYear": {
"description": "Filters by invoice year",
"type": "int",
"mandatory": false
},
"InvoiceNumber": {
"description": "Filters by invoice number",
"type": "string",
"mandatory": false
},
"From": {
"description": "YYYY-MM-DDThh:mm:ss or YYYY-MM-DD",
"type": "ISO datetime",
"mandatory": false
},
"To": {
"description": "YYYY-MM-DDThh:mm:ss or YYYY-MM-DD",
"type": "ISO datetime",
"mandatory": false
},
"ByUpdateDate": {
"description": "If true, filters by document update date; otherwise by insert date",
"type": "boolean",
"mandatory": false
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "22222222222",
"DoftwareId": "software-123",
"From": "2025-10-20",
"To": "2025-10-25",
"ByUpdateDate": true,
"ElectronicId": 11221122
}
{
"ElectronicId": 394162,
"DocumentNr": "3-1-1",
"DocumentTypeId": 1,
"DocumentTypeName": "Račun",
"StatusId": 30,
"StatusName": "Poslano",
"IssueDate": "2016-04-18T08:13:03.177",
"SenderBusinessNumber": "99999999999",
"SenderBusinessUnit": "",
"SenderBusinessName": "Test d.o.o.",
"Sent": "2016-04-18T08:13:03.177",
"Delivered": null,
"IssueDate": "2016-04-18T00:00:00",
"DocumentProcessStatusId": 99,
"DocumentProcessStatusName": "Zaprimljen",
"AdditionalDokumentStatusId": null,
"RejectReason": null,
"OutboundFiscalizationStatus": 2
}
– NEW API (02-04-2026)
– Retrieves business branches of public entities.
– If the business entity has branches, it returns a list of branches. If not, it returns only the company’s OIB.
– If the entity is not registered on the Central Platform (CP), an empty response is received.
– The schemeName tag defines the identifier type: “0088” indicates GLN, while “9934” indicates OIB.
– In the businessBranchCode field, the part coming after the HR99: tag represents the business unit code.
Header: content-type: application/json; charset: utf-8
Live – POST https://www.moj-eracun.hr/apis/V2/GetReceiversByOib
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"VatNumber": {
"description": "Receiver Vat Number (Oib) to check",
"type": "string",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "11111111111",
"SoftwareId": "software-123",
"VatNumber": "12345678901"
}
[
{
"receiverId": "12345678901",
"schemeName": "9934",
"receiptTypes": null,
"businessBranchCode": "9934:12345678901",
"businessBranchName": "Testna Tvrtka d.o.o.",
"address": {
"streetName": "Glavna ulica 3",
"buildingNumber": null,
"postalCode": "10000",
"cityName": "Zagreb",
"country": "Republika Hrvatska",
"addressLine": "Glavna ulica 3, 10000, Zagreb, Republika Hrvatska"
},
"activity": "1"
},
{
"receiverId": "12345678901",
"schemeName": "9934",
"receiptTypes": null,
"businessBranchCode": "9934:12345678901::HR99:088",
"businessBranchName": "Testna Poslovnica 1",
"address": {
"streetName": "Testna ulica 1",
"buildingNumber": null,
"postalCode": "10000",
"cityName": "Zagreb",
"country": "Republika Hrvatska",
"addressLine": "Testna ulica 1, 10000, Zagreb, Republika Hrvatska"
},
"activity": "1"
},
{
"receiverId": "12345678901",
"schemeName": "9934",
"receiptTypes": null,
"businessBranchCode": "9934:12345678901::HR99:ZZ079",
"businessBranchName": "Testna Poslovnica 2",
"address": {
"streetName": "Testna ulica 2",
"buildingNumber": null,
"postalCode": "10000",
"cityName": "Zagreb",
"country": "Republika Hrvatska",
"addressLine": "Testna ulica 2, 10000, Zagreb, Republika Hrvatska"
},
"activity": "1"
},
{
"receiverId": "3851234567890",
"schemeName": "0088",
"receiptTypes": null,
"businessBranchCode": "3851234567890",
"businessBranchName": "Testna tvrtka",
"address": {
"streetName": "Glavni trg 18",
"buildingNumber": null,
"postalCode": "10000",
"cityName": "Zagreb",
"country": "Republika Hrvatska",
"addressLine": "Glavni trg 18, 10000, Zagreb, Republika Hrvatska"
},
"activity": "1"
}
]
– Retrieves detailed AS4 exchange error messages when document exchange is performed between different access points.
– This API is intended to be used only for documents with status 50 (Unsuccessful).
– It returns technical and business-level error messages generated during AS4 message exchange.
– The API is queried using InternalMark (invoice number) and IssueDate, not ElectronicId.
– Using InternalMark allows retrieving exchange statuses and error details for all send attempts of the same invoice,
even when multiple ElectronicIds were generated due to repeated sending.
Header: “content-type:application/json; charset:utf-8”
LIVE – POST https://www.moj-eracun.hr/apis/as4details/queryexchangeErrorDetails
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (OIB)",
"type": "string",
"mandatory": true
},
"SoftwareId": {
"description": "Business Software (ERP) Id",
"type": "string",
"mandatory": true
},
"InternalMark": {
"description": "Invoice number",
"type": "string",
"mandatory": true
},
"IssueDate": {
"description": "Issue date of an invoice",
"type": "date",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "22222222222",
"SoftwareId": "Test-002",
"InternalMark": "1/1/1",
"IssueDate": "2026-01-22"
}
{
"items": [
{
"shortErrorDetail": "Greška od drugog informacijskog posrednika.",
"errorCode": 6,
"errorCodeDescription": "EBMS_0004",
"errorDetail": "Document not valid: Element Invoice/AccountingSupplierParty/SellerContact/ID mora sadržavati ispravan OIB operatera",
"role": 1,
"roleDescription": "Zaprimanje",
"timestamp": "2026-01-22T08:44:19",
"recipientAccessPoint": "Recipient Access Point Name",
"recipientFriendlyName": "Recipient Access Point Name",
"ElectronicId": 1212121212
},
{
"shortErrorDetail": "Neuspješno slanje prema pristupnoj točki 'Recipient Access Point Name'. Molimo Vas da ponovite slanje.",
"errorCode": 7,
"errorCodeDescription": "EBMS_0005",
"errorDetail": "Error dispatching message to https://prod.as4.eposlovanje.hr/services/msh",
"role": 0,
"roleDescription": "Slanje",
"timestamp": "2026-01-22T08:44:19",
"recipientAccessPoint": "Recipient Access Point Name",
"recipientFriendlyName": "Recipient Access Point Name",
"ElectronicId": 1212121212
}
]
}
– Used only if the recipient does not exist in the AMS.
– The same document sent via the SEND method can be sent to eReporting in JSON-escaped format.
– The status for eReporting can be retrieved via FISCALIZATION STATUS.
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/api/fiscalization/eReporting
Demo – POST https://demo.moj-eracun.hr/api/fiscalization/eReporting
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"File": {
"description": "JSON escaped XML",
"type": "string",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "22222222222",
"CompanyBU": null,
"File": "<?xml version="1.0" ...>"
}
{
"ElectronicId": 394167,
"DocumentNr": "20156256",
"DocumentTypeId": 1,
"DocumentTypeName": "Račun",
"StatusId": 20,
"StatusName": "In validation",
"RecipientBusinessNumber": "99999999999",
"RecipientBusinessUnit": "",
"RecipientBusinessName": "Test d.o.o.",
"Created": "2016-04-18T08:23:08.5879877+02:00",
"Sent": "2016-04-18T08:23:09.6730491+02:00",
"Modified": "2016-04-18T08:23:09.6840519+02:00",
"Delivered": null
}
– Checks whether a given identifier is registered in the AMS system.
– If the identifier is found, the API returns a 200 OK status.
– If the identifier is not found or an error occurs, an appropriate 4xx or 5xx status is returned.
– This endpoint is typically used to verify recipient registration before sending documents but it is not necessary.
Header: “content-type:application/json; charset:utf-8”
POST https://www.moj-eracun.hr/api/mps/check
{
"Username": {
"description": "Sender Username",
"type": "string",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"IdentifierType": {
"description": "For possible values of identifier type, check below",
"type": "string",
"mandatory": true
},
"IdentifierValue": {
"description": "Identifier under which the organization is registered in AMS",
"type": "string",
"mandatory": true
}
}
{
"Username": "user@mail.com",
"Password": "mystrongpass",
"CompanyId": "22222222222",
"CompanyBU": null,
"SoftwareId": "Test-002",
"IdentifierType": "0",
"IdentifierValue": "99999999927"
}
200 OK No response body is returned when the identifier is registered.
{
"traceId": "b5feb4c7-5c58-49a9-84fe-891f4f76e659",
"message": "Some error message"
}
– Used by ERP systems to notify Moj-eRačun that a document has been successfully imported.
– This endpoint does not change the document status or content.
– It is intended to prevent duplicate imports and to improve traceability.
– Usage of this endpoint is optional.
Header: “content-type:application/json; charset:utf-8”
POST https://www.moj-eracun.hr/apis/v2/notifyimport/{DocumentId}
Example https://www.moj-eracun.hr/apis/v2/notifyimport/189919
{
"Username": {
"description": "Receiver Username",
"type": "integer",
"mandatory": true
},
"Password": {
"description": "Receiver Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Receiver Company Id (OIB)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Receiver GLN Code / Moj-eRačun Subject ID / Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Receiver software Id",
"type": "string",
"mandatory": true
}
}
{
"Username": 1083,
"Password": "test123",
"CompanyId": "99999999927",
"CompanyBu": "",
"SoftwareId": "Test-001"
}
– Allows searching classification data by a specific code or by a descriptive keyword.
– Search can be performed using a full or partial classification code (e.g. 01.45).
– Search can also be performed using a keyword (e.g. ovce).
Authentication:
– All requests must include the X-API-KEY header.
– Contact Moj-eRačun support to request an API key.
Request parameters:
– searchString – value used for searching (code or keyword)
GET https://www.moj-eracun.hr/api/Fiscalization/GetKpdData?searchString=01.45.1
Header:
X-API-KEY: <your-api-key>
{
"status": "success",
"results": [
{
"code": "01.45.1",
"name": "Ovce i koze, žive"
},
{
"code": "01.45.11",
"name": "Ovce, žive"
},
{
"code": "01.45.12",
"name": "Koze, žive"
}
]
}
GET https://www.moj-eracun.hr/api/Fiscalization/GetKpdData?searchString=ovce
Header:
X-API-KEY: <your-api-key>
[
{
"code": "01.45",
"name": "Ovce i koze, žive; sirovo ovčje i kozje mlijeko i šišana ovčja i kozja vuna"
},
{
"code": "01.45.1",
"name": "Ovce i koze, žive"
},
{
"code": "01.45.11",
"name": "Ovce, žive"
}
]
To use the API methods below, it is necessary to sign an NDA (Non-Disclosure Agreement), which can be requested from the integration support department. The agreement is signed by the company maintaining the software solution. For certain API methods, it is necessary to have the mer BI service activated.
– The mer BI service must be activated to use the API.
– Blockade status: Displays information on whether the business entity is currently blocked or has been blocked in the last 180 days.
– Ownership structure: Returns a list of authorized representatives, company founders, and supervisory board members.
– Financial data (GFI): Displays multi-year historical data on income, expenses, profit, number of employees, credit rating, and average payment time.
– Entity search is performed by OIB (OibToQuery).
– Used for Business Intelligence checking of business partners and business risk assessment.
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/apis/v2/GetSubjectBIDetails
{
"Username": {
"description": "Sender Username",
"type": "integer",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"OibToQuery": {
"description": "Company ID (OIB) of a customer",
"type": "string",
"mandatory": true
}
}
{
"Username": 1083,
"Password": "test123",
"CompanyId": "99999999927",
"SoftwareId": "Test-001",
"OibToQuery": "99999999927"
}
Success Response Example
{
"Data": {
"OIB": "99999999927",
"CompanyShortName": "Test d.o.o.",
"IsBlocked": false,
"BlockedOn": null,
"WasBlockedInLast180Days": false,
"SubjectFullDetailsOwnersStructure": {
"CompanyAuthorizedRepresentatives": [
{
"OIB": "99999997799",
"Name": "Pero Maric",
"Function": "direktor"
}
],
"CompanyFoundingMembers": [
{
"OIB": "99999997799",
"Name": "Pero Maric",
"Function": "jedini osnivač d.o.o."
}
],
"CompanySupervisoryBoard": []
},
"SubjectFullDetailsGFIItems": [
{
"Year": 2017,
"TotalIncome": 321,
"TotalExpense": 321,
"TotalProfit": 321,
"EBITDAMargin": 0.1913584,
"AverageNumberOfEmployees": 11,
"IncomePerEmployee": 321.55,
"AverageNetSalary": 123.235,
"LongTermBusinessRating": "A",
"VendorPaymentTime": 123
},
{
"Year": 2018,
"TotalIncome": 1,
"TotalExpense": 1,
"TotalProfit": 1,
"EBITDAMargin": 0.095269352,
"AverageNumberOfEmployees": 11,
"IncomePerEmployee": 1.64,
"AverageNetSalary": 1.689,
"LongTermBusinessRating": "D",
"VendorPaymentTime": 2
},
{
"Year": 2019,
"TotalIncome": 1,
"TotalExpense": 1,
"TotalProfit": 1,
"EBITDAMargin": 0.18612383,
"AverageNumberOfEmployees": 1,
"IncomePerEmployee": 21.82,
"AverageNetSalary": 2.098,
"LongTermBusinessRating": "CCC-",
"VendorPaymentTime": 1
}
]
},
"Message": "Success",
"Success": true
}
Error Response Example
{
"Error": "Error",
"Message": "Greška servera",
"Success": false
}
– The mer BI service must be activated to use the API.
– Blockade status: This API method is used exclusively to check if the business entity (buyer) is currently blocked.
– Entity search is performed by OIB (OibToQuery).
– Returns the exact date of the last check/information (InformationDate).
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/apis/v2/isSubjectBlocked
{
"Username": {
"description": "Sender Username",
"type": "integer",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"OibToQuery": {
"description": "Company ID (OIB) of a customer",
"type": "string",
"mandatory": true
}
}
{
"Username": 1083,
"Password": "test123",
"CompanyId": "99999999999",
"SoftwareId": "Test-001",
"OibToQuery": "99999999999"
}
Success Response Example
{
"ResponseType": "SubjectBlockedResponse",
"ResponseContent": {
"Oib": "99999999999",
"Blocked": false,
"InformationDate": "2020-10-07T00:00:00"
}
}
Error Response Example
{
"ResponseType": "ErrorResponse",
"ResponseContent": {
"Code": 0,
"Message": "Blockade info on subject with OIB 99999999999 can't be retrieved. Service response: {\"type\":\"https://tools.ietf.org/html/rfc7231#section-6.5.4\",\"title\":\"Not Found\",\"status\":404,\"traceId\":\"|f915b6f2-4dfa5fe24d129990.\"}"
}
}
– General information: This API method is used to retrieve basic information about the business entity.
– Returns data such as company name, address, city, and contact email addresses.
– Additional information: Displays whether the entity is registered as an eInvoice receiver (IsReceiver) and whether it is a public entity (IsPublicEntity).
– Entity search is performed by OIB (SubjectVatNumber).
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/apis/v2/GetSubjectGeneralInformation
{
"Username": {
"description": "Sender Username",
"type": "integer",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"SubjectVatNumber": {
"description": "Company ID (VatNumber,OIB)",
"type": "string",
"mandatory": true
}
}
{
"Username": 1083,
"Password": "test123",
"CompanyId": "99999999999",
"SoftwareId": "Test-001",
"SubjectVatNumber": "99999999999"
}
Success Response Example
{
"ResponseType": "SubjectGeneralInformation",
"ResponseContent": {
"VatNumber": "99999999999",
"Name": "Test d.o.o.",
"Address": "Ulica Test 8",
"City": "10000 Zagreb",
"Email": "mail@mail.com;mail2@mail.com",
"IsReceiver": true,
"IsPublicEntity": false
}
}
Error Response Example
{
"ResponseType": "ErrorResponse",
"ResponseContent": {
"Code": 0,
"Message": "Subject with VatNumber (OIB): 99999999999 does not exists!"
}
}
– Receiver status: This API method is used to check if the business entity is registered as a receiver on the moj-eracun.hr service.
– Returns data on contact email addresses (multiple addresses separated by ‘;’) and boolean values indicating whether the entity is a receiver (IsReceiver) and whether it is a public entity (IsPublicEntity).
– Business units: Returns a list of the entity’s business units (BusinessUnits) along with their respective name, ID, and address.
– Entity search is performed by OIB (SubjectVatNumber).
Header: “content-type:application/json; charset:utf-8”
Live – POST https://www.moj-eracun.hr/apis/v2/GetSubjectReceivingInformation
{
"Username": {
"description": "Sender Username",
"type": "integer",
"mandatory": true
},
"Password": {
"description": "Sender Password",
"type": "string",
"mandatory": true
},
"CompanyId": {
"description": "Sender Company Id (Oib)",
"type": "string",
"mandatory": true
},
"CompanyBu": {
"description": "Sender Business Unit (PJ)",
"type": "string",
"mandatory": false
},
"SoftwareId": {
"description": "Business Software (Erp) Id",
"type": "string",
"mandatory": true
},
"SubjectVatNumber": {
"description": "Company ID (VatNumber,OIB)",
"type": "string",
"mandatory": true
}
}
{
"Username": 1083,
"Password": "test123",
"CompanyId": "99999999999",
"SoftwareId": "Test-001",
"SubjectVatNumber": "99999999999"
}
Success Response Example
{
"ResponseType": "SubjectReceivingInformation",
"ResponseContent": {
"Email": "mail@mail.com;mail2@mail.com",
"IsReceiver": true,
"IsPublicEntity": false,
"BusinessUnits": [
{
"Name": "odjel 1",
"BusinessUnitId": null,
"Address": "Ulica 13, Zagreb"
},
{
"Name": "odjel 2",
"BusinessUnitId": null,
"Address": "Ulica 13, Zagreb"
},
{
"Name": "odjel 3",
"BusinessUnitId": "3851111111111",
"Address": "Ulica 13, Zagreb"
},
{
"Name": "odjel 4",
"BusinessUnitId": null,
"Address": "Ulica 13, Zagreb"
},
{
"Name": "racunovodstvo",
"BusinessUnitId": "3855123456789",
"Address": "Ulica 13, Zagreb"
}
]
}
}
Error Response Example
{
"ResponseType": "ErrorResponse",
"ResponseContent": {
"Code": 0,
"Message": "Subject with VatNumber (OIB): 99999999929 does not exists!"
}
}