Skip to content

Commit cd8146d

Browse files
antoine162afma-odoo
authored andcommitted
[ADD] Fiscal Localizations / Croatia
Document e-invoicing with MojEracun task-4925745 closes #17243 X-original-commit: b232b01 Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
1 parent e72b537 commit cd8146d

3 files changed

Lines changed: 201 additions & 5 deletions

File tree

content/applications/finance/accounting/customer_invoices/electronic_invoicing/croatia.rst

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,29 @@ e-invoicing in public procurement. Under these regulations, all businesses invol
1818
(business-to-government)` transactions are required to use electronic invoicing via the :abbr:`CIS
1919
(Central Invoice System)`, Croatia’s official platform for public sector e-invoicing. Croatia is
2020
also part of the Peppol network, facilitating standardized cross-border e-invoicing within the
21-
European Union. Furthermore, e-invoicing is increasingly encouraged for B2B transactions, promoting
22-
greater transparency and tax compliance.
21+
European Union. Furthermore, e-invoicing through the e-Račun platform is mandatory for B2B
22+
transactions as of 1 January 2026.
2323

2424
Compliance with Croatian e-invoicing regulations
2525
================================================
2626

2727
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
2828
invoices. Here is how Odoo ensures compliance:
2929

30+
- **Integrations**: Odoo can send invoices and report payments to the e-Račun platform via an
31+
integration with third-party provider `moj-eRačun <https://moj-eracun.hr>`_. As an accredited
32+
provider, mojeRačun is designed to handle the differing technical requirements of the two parallel
33+
systems:
34+
35+
- **For Fiscalization 1.0 (B2C):** MojeRačun supports the real-time reporting of receipts to the
36+
Croatian Tax Administration for all payment types (cash, cards, and bank transfers).
37+
- **For Fiscalization 2.0 (B2B/B2G):** MojeRačun facilitates the exchange of mandatory structured
38+
e-invoices (XML) through certified access points, ensuring automatic fiscalization and real-time
39+
reporting to the Croatian Tax Administration.
3040
- **Supported formats**: Odoo supports standard e-invoice formats, such as PDF with digital
3141
signatures and XML in :abbr:`UBL (Universal Business Language)` format, which are fully compatible
32-
with Croatia's :abbr:`CIS (Central Invoice System)` for public procurement transactions.
42+
with Croatia's :abbr:`CIS (Central Invoice System)` for public procurement transactions and
43+
e-Račun platform for B2B transactions.
3344
Additionally, Odoo enables transmission of e-invoices through any platform connected to the Peppol
3445
network, as the *Servis eRačun za državu* reached via Peppol, ensuring compliance with both
3546
Croatian and EU standards.
@@ -41,10 +52,14 @@ invoices. Here is how Odoo ensures compliance:
4152
that each invoice follows the legal format for both B2B and :abbr:`B2G (business-to-government)`
4253
transactions.
4354

55+
.. seealso::
56+
:doc:`Croatian fiscal localization documentation
57+
<../../../fiscal_localizations/croatia>`
58+
4459
.. admonition:: Disclaimer
4560

4661
This page provides an overview of Croatian e-invoicing laws and how Odoo Invoicing supports
4762
compliance with the Fiscalization Act, Peppol standards, and other relevant regulations. It does
48-
not constitute legal adviceWe recommend consulting with a tax advisor or legal professional
63+
not constitute legal advice. We recommend consulting with a tax advisor or legal professional
4964
familiar with Croatian e-invoicing regulations to ensure compliance tailored to your specific
5065
business needs.

content/applications/finance/fiscal_localizations.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Fiscal localization modules are available for the countries listed below.
6767
- Comoros
6868
- Congo
6969
- Costa Rica
70-
- Croatia
70+
- :doc:`Croatia <fiscal_localizations/croatia>`
7171
- Cyprus
7272
- Czech Republic
7373
- Democratic Republic of the Congo
@@ -160,6 +160,7 @@ Fiscal localization modules are available for the countries listed below.
160160
fiscal_localizations/canada
161161
fiscal_localizations/chile
162162
fiscal_localizations/colombia
163+
fiscal_localizations/croatia
163164
fiscal_localizations/denmark
164165
fiscal_localizations/ecuador
165166
fiscal_localizations/egypt
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
=======
2+
Croatia
3+
=======
4+
5+
.. |MER| replace:: :abbr:`MER (Moj-eRačun)`
6+
.. |KPD category| replace:: :abbr:`KPD category (Klasifikacija proizvoda po djelatnostima)`
7+
.. |OIB| replace:: :abbr:`OIB (Osobni identifikacijski broj)`
8+
9+
.. _localizations/croatia/modules:
10+
11+
Modules
12+
=======
13+
14+
The following modules related to the Croatian localization are available:
15+
16+
.. list-table::
17+
:header-rows: 1
18+
19+
* - Name
20+
- Technical name
21+
- Description
22+
* - :guilabel:`Croatia - Accounting`
23+
- `l10n_hr`
24+
- Default :ref:`fiscal localization package <fiscal_localizations/packages>`
25+
* - :guilabel:`Croatia - Accounting Reports`
26+
- `l10n_hr_reports`
27+
- Country-specific reports
28+
* - :guilabel:`Croatia - e-invoicing`
29+
- `l10n_hr_edi`
30+
- E-invoicing via mojeRačun
31+
32+
.. note::
33+
The localization's core modules are installed automatically with the localization. The rest can
34+
be manually :ref:`installed <general/install>`.
35+
36+
.. seealso::
37+
:doc:`Documentation on e-invoicing’s legality and compliance in Croatia
38+
<../accounting/customer_invoices/electronic_invoicing/croatia>`
39+
40+
.. _localizations/croatia/mojeracun:
41+
42+
E-invoicing via mojeRačun
43+
=========================
44+
45+
Odoo can connect to the national eRačun platform via the third-party provider `mojeRačun
46+
<https://moj-eracun.hr>`_ to send and receive e-invoices.
47+
48+
.. note::
49+
The :guilabel:`Croatia - e-invoicing` (`l10n_hr_edi`) module must be :ref:`installed
50+
<general/install>` to be able to configure e-invoicing via mojeRačun.
51+
52+
.. important::
53+
To use this integration, an account and `invoice package
54+
<https://portal.moj-eracun.hr/podrska/cjenik/>`_ from mojeRačun are needed. The rest of this
55+
documentation assumes that one has already been obtained.
56+
57+
.. _localizations/croatia/configuration:
58+
59+
Configuration
60+
-------------
61+
62+
Follow these steps to set up e-invoicing via mojeRačun in Odoo.
63+
64+
.. _localizations/croatia/configuration/company:
65+
66+
Company configuration
67+
~~~~~~~~~~~~~~~~~~~~~
68+
69+
Go to :menuselection:`Accounting --> Configuration --> Settings` and scroll down to
70+
:guilabel:`MojEracun E-invoicing`. Fill the :guilabel:`Username` field with the numeric username and
71+
the :guilabel:`Password` field with the password provided by mojeRačun.
72+
73+
.. note::
74+
Alternatively, the :guilabel:`Username` can be set to the e-mail address used to register on
75+
mojeRačun.
76+
77+
Ensure that the :guilabel:`Company ID (OIB or GIN)` and :guilabel:`Company Business Unit (PJ)`
78+
fields are correctly filled in, matching the data used to register on mojeRačun.
79+
80+
The :guilabel:`Business Software (ERP) ID` should be set to `Saodoo-001`.
81+
82+
Optionally, specify the :guilabel:`Incoming E-Invoices Journal` where invoices received via |MER|
83+
should be created. If left unset, the default purchase journal will be used.
84+
85+
Set the :guilabel:`MojEracun Operating Mode` to :guilabel:`Production` to send and receive invoices
86+
on the production network.
87+
88+
.. note::
89+
Using the :guilabel:`Test` mode connects to a MER demo server that requires separate credentials
90+
and is not relevant for most end users.
91+
92+
Then click :guilabel:`Activate` to activate the connection with mojeRačun.
93+
94+
.. _localizations/croatia/configuration/journal:
95+
96+
Journal configuration
97+
~~~~~~~~~~~~~~~~~~~~~
98+
99+
Go to :menuselection:`Accounting --> Configuration --> Journal` and click the :guilabel:`Customer
100+
Invoices` journal to open its configuration.
101+
102+
In the :guilabel:`Fiscalization (HR)` section, complete the :guilabel:`Business premises label`,
103+
:guilabel:`Issuing device label`, :guilabel:`Business premises label (refund approval)`, and
104+
:guilabel:`Issuing device label (refund approval)` fields.
105+
106+
The :guilabel:`Business premises label` and :guilabel:`Issuing device label` are used to generate
107+
invoice names. The :guilabel:`Business premises label (refund approval)` and :guilabel:`Issuing
108+
device label (refund approval)` fields are used to generate credit note names.
109+
110+
.. _localizations/croatia/sending:
111+
112+
Sending an e-invoice
113+
--------------------
114+
115+
To send an e-invoice, follow the :ref:`standard e-invoicing <accounting/e-invoicing/generation>`
116+
workflow. Be sure to select :guilabel:`by MojEracun` when sending the e-invoice.
117+
118+
The following invoice fields must be set before sending to mojeRačun:
119+
120+
- **Invoice sequence:** Ensure the invoice sequence is in the format
121+
`{Journal code}-{Year}-{Sequence}/{Business premises label}/{Issuing device label}`. If the
122+
journal is configured :ref:`as instructed above <localizations/croatia/configuration/journal>`,
123+
Odoo automatically formats invoice names to fit this format.
124+
- :guilabel:`KPD category`: Set the :guilabel:`KPD category` on every invoice line.
125+
126+
.. tip::
127+
The |KPD category| can also be set on the product record, which will then automatically apply
128+
it on invoice lines when the product is used. To do so, go to :menuselection:`Accounting ->
129+
Customers -> Products`, click the product, and set the :guilabel:`KPD category`.
130+
131+
In the :guilabel:`Croatia: Fiscalization 2.0` tab of invoices:
132+
133+
- :guilabel:`Business process type`: Set the :guilabel:`Business Process Type` as appropriate. If
134+
:guilabel:`P99: Customer-defined process` is selected, complete the :guilabel:`Custom Process
135+
Name` field.
136+
- :guilabel:`Fiscal user` and :guilabel:`Operator OIB`: The Croatian government expects the user who
137+
sends the invoice to be identified via their personal |OIB| number. The fiscal user defaults to
138+
the user who confirms the invoice and is identified under :guilabel:`Fiscal User`.
139+
140+
The user's |OIB| can be set on the user's contact record. To do so, follow these steps:
141+
142+
#. Go to :menuselection:`Settings --> Users & Companies --> Users` and click the user in the
143+
list view.
144+
#. Activate the :ref:`developer mode <developer-mode>`.
145+
#. Click the :guilabel:`Related Partner` link to access the user's :guilabel:`Contact` form.
146+
#. In the :guilabel:`Sales & Purchase` tab, set the :guilabel:`Personal OIB` in the
147+
:guilabel:`Misc` section.
148+
149+
Once an invoice has been sent:
150+
151+
- **Invoice fiscalization information:** The :guilabel:`Fiscalization status`,
152+
:guilabel:`Fiscalization request ID`, :guilabel:`Payment amount already reported to Tax
153+
Authority`, and :guilabel:`MojeRačun document ElectronicId` can be viewed in the
154+
:guilabel:`Croatia: Fiscalization 2.0` tab.
155+
- **Fetching status updates:** Odoo periodically checks for any updates to the invoice's status
156+
(e.g., rejection by |MER|, the eRačun system, or the recipient). To manually check for updates, go
157+
to the :menuselection:`Accounting` dashboard, and in the :guilabel:`Customer Invoices` (sales)
158+
journal, click the :guilabel:`MER: Fetch status` button.
159+
- **Reporting a payment:** The Croatian government expects to be notified once payment has been
160+
received for an invoice. To send this notification, click the :guilabel:`MER: Report payments`
161+
button on the invoice form view, which appears if the invoice has unreported payments.
162+
163+
.. tip::
164+
To report multiple payment notifications at once, select multiple invoices from the invoice list
165+
view and click the :guilabel:`MER: Report payments` button.
166+
167+
.. _localizations/croatia/receiving:
168+
169+
Receiving e-invoices
170+
--------------------
171+
172+
Odoo periodically checks for new invoices received via mojeRačun. New invoices received via
173+
mojeRačun appear in the :guilabel:`Incoming E-Invoices Journal` specified in the :ref:`settings
174+
<localizations/croatia/configuration/company>`.
175+
176+
Rejecting an invoice
177+
~~~~~~~~~~~~~~~~~~~~
178+
179+
To reject an incoming invoice, click the :guilabel:`MER: Reject eRacun` button on the invoice form
180+
view. This notifies the eRačun system and the sender that the invoice is rejected.

0 commit comments

Comments
 (0)