Skip to content

Commit afe9f16

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

3 files changed

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

0 commit comments

Comments
 (0)