
Fiskalizacija HR для OpenCart — фискализация чеков в CIS Porezne uprave (ZKI, JIR, QR)
Хорватская фискализация чеков для OpenCart 4, 3 и 2.3: защитный код ZKI, подписанный запрос в сервис CIS налоговой (Porezna uprava) вашим сертификатом, JIR и QR-код в заказе, в печатном чеке и в кабинете клиента. Нумерация без пропусков, НДС по ставкам, поздняя доставка, когда CIS недоступен, реестр чеков. Pro — storno-чеки, OIB покупателя на чекауте, чек письмом, другие валюты, CSV и уведомления. Лицензия — одна оплата, навсегда.
- Совместимость
- OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3 с драйвером pdo) · OpenCart 3.0.x (проверено на 3.0.5.0) · OpenCart 2.3.0.2 · PHP 7.0+ с OpenSSL и DOM · CIS: спецификация v2.7, WSDL/XSD 1.10
- Версия
-
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3) - Лицензия
- один сайт, навсегда
- Триал
- 7 дней, без карты, один на сайт
- Обновлено
- октябрь 2026
Что есть во Free,
а что даёт Pro
Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Триал стартует, когда вы попросите
Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт
Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Для студий — ключи на 5, 25 сайтов или без ограничений.
Технические требования
OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3, с драйвером базы mysqli и pdo), 3.0.x (проверено на 3.0.5.0) или 2.3.0.2 (проверено на PHP 7.0).
PHP 7.0+ с OpenSSL и DOM, исходящие соединения с сервером на порт 8449 (TLS 1.2+).
Сертификат для фискализации на ваш OIB: DEMO для теста, рабочий для продакшна. Старые .p12 с шифрованием RC2 PHP с OpenSSL 3 не открывает — модуль покажет команду, как один раз перепаковать файл в .pem.
Пословный простор интернет-магазина, зарегистрированный в ePorezna; налоговые классы OpenCart с хорватскими ставками (25/13/5/0 %).
Крон: в OpenCart 4 повторы запускает планировщик OpenCart; в 3.x и 2.3 добавьте адрес из вкладки «Tools» в cron хостинга (раз в 5 минут). Без крона повторы идут только при просмотрах страниц.
Не делает: eRačun и Fiskalizacija 2.0 между фирмами, eIzvještavanje, регистрацию пословного простора, PNP и смену способа оплаты методом promijeniPodatkeRacuna (вместо неё — storno и новый чек).
Языки модуля: английский и хорватский. На русский интерфейс не переведён — модуль сделан для хорватских магазинов.
История версий
Для OpenCart 4.x, 3.x и 2.3: фискализация чеков в CIS по спецификации v2.7 и WSDL/XSD 1.10.
Вместе с Fiskalizacija HR для OpenCart покупают
4 модуля одним заказом — на 40% дешевле, чем по отдельности


Nova Poshta Premium — модуль Новая Почта для OpenCart 2.3, 3.x и 4.x

LiqPay — оплата картой для OpenCart 2.3, 3.x и 4.x

Telegram-уведомления и Viber/SMS покупателям для OpenCart
Полное описание модуля
Fiskalizacija HR для OpenCart — модуль для интернет-магазинов в Хорватии на OpenCart 4, 3 и 2.3. В Хорватии каждый чек конечному покупателю должен быть фискализирован, как бы он ни платил. Магазин считает защитный код ZKI, отправляет подписанный чек в сервис фискализации CIS налоговой (Porezna uprava) и печатает на чеке идентификатор JIR и QR-код. Модуль делает это для заказов OpenCart напрямую в CIS вашим сертификатом, без стороннего сервиса посередине и без ежемесячной подписки.
Магазин на WooCommerce? Для него есть отдельная версия — Fiskalizacija HR для WooCommerce, с той же подписью, ZKI и форматом запроса.
Что нужно от вас. OIB фирмы или обрта; интернет-магазин, зарегистрированный как пословный простор в ePorezna (модуль этого не делает — нужно только обозначение помещения, например WEB1); сертификат для фискализации, выданный на ваш OIB, например FINA «Fiskal». Тестовая среда CIS принимает только DEMO-сертификаты, рабочая — только рабочие.
Честно о проверке. Модуль сделан и проверен по официальной технической спецификации CIS «Tehnička specifikacija za korisnike» v2.7 и схеме FiskalizacijaSchema / WSDL 1.10: каждый сгенерированный запрос — обычные чеки, поздняя доставка, storno с минусами, чеки с OIB покупателя — прошёл официальную XSD и независимую проверку подписи, ZKI пересчитан отдельно. Полный прогон шёл на локальных магазинах OpenCart 4.1.0.3, 4.0.2.3 (драйвер pdo), 3.0.5.0 и 2.3.0.2 на PHP 7.0 с моделью ответов CIS: успех, отказы, недоступность. Настоящий тестовый сервер CIS отвечал нам только без DEMO-сертификата: для него нужен хорватский OIB, которого у CatCode нет. Поэтому живой JIR вы получите в своём 7-дневном триале Pro с DEMO-сертификатом FINA. Если CIS ответит не так, как описано в спецификации, исправим оперативно.
Ответственность за данные чека остаётся за магазином. Модуль берёт суммы и налоги из заказа OpenCart, а систему НДС, обозначения помещения и устройства, оператора, способы оплаты и категорию для строк без НДС — из ваших настроек. Сверьте эти настройки с бухгалтером до перехода на рабочую среду.
Как это выглядит для покупателя
Покупатель получает чек: данные магазина и OIB, номер в формате broj/prostor/uređaj, дата и время по хорватскому времени, оператор, способ оплаты, позиции со ставками НДС, разбивка НДС, ZKI, JIR и QR-код со ссылкой на проверку чека на porezna.gov.hr. Страница чека открывается только по ссылке с ключом и печатается кнопкой «Print».
В кабинете клиента, в истории заказа, появляется блок «Fiscal receipt» с QR-кодом, номером, суммой, ZKI, JIR и ссылкой на чек. Чужих чеков клиент не видит; на телефоне блок без горизонтальной прокрутки.
Pro. Фирма, которая платит картой или наличными, может вписать свой OIB в поле «Company OIB» на чекауте — штатном и One Page Checkout CatCode. Модуль проверяет контрольную цифру: неверный OIB останавливает оформление возле поля. После JIR клиент получает чек письмом.
Что получает админ
- Расширения → Модули → CatCode Fiskalizacija HR с вкладками «Receipts», «Settings», «Tools» и «Licence» (в хорватской админке — на хорватском).
- Реестр чеков: номер и время, заказ, покупатель и его OIB, сумма, способ оплаты, статус («Fiscalised», ждёт JIR, отклонён, поздняя доставка), JIR и ZKI; фильтр по статусу и поиск по номеру, JIR, ZKI, OIB или заказу.
- «Send receipts without a JIR now» отправляет очередь сразу, «Send again» — отклонённый чек после исправления настроек.
- Вверху страницы видна среда (TEST или PRODUCTION) и предупреждения: сертификат просрочен или заканчивается, OIB в сертификате не совпадает с настройками, DEMO-сертификат в рабочей среде, чеки без JIR дольше 30 минут.
Страница чека показывает всё, что ушло в CIS и вернулось: номер, статус, ZKI, JIR, проверена ли подпись ответа, количество попыток, строки чека и разбивку НДС, все чеки этого заказа, а ниже — подписанный запрос и ответ XML. В тестовой среде есть проверка provjera — CIS сверяет чек без фискализации.
На странице заказа — панель «Fiscal receipt» с чеками и storno этого заказа, кнопкой «Issue and fiscalise the receipt» и полем OIB покупателя для следующего чека (Pro). Каждый шаг пишется в историю заказа.
Как это работает — шаг за шагом
- Сертификат. Загрузите .p12 с паролем или .pem. Модуль показывает владельца, издателя, OIB и срок действия, хранит закрытый ключ зашифрованным (ключ шифрования — в
system/storage, не в базе) и берёт OIB из сертификата в настройки. «Check the connection» проверяет связь с CIS методом echo. - Обвезник и нумерация. OIB, в системе ли вы НДС, название и адрес для чека, обозначение помещения, номер устройства, последовательность (по помещению P или устройству N), «первый номер года», если продолжаете серию из другой программы, OIB и обозначение оператора (пусто — OIB обвезника и «WEB»).
- Оплаты и налоги. Для каждого платёжного модуля — код G, K, T или O; категория строк без НДС; коды итогов, которые являются оплатой, а не продажей (по умолчанию voucher и credit).
- Заказ. Когда заказ получает выбранный статус, модуль проверяет суммы и ставки локально, только тогда берёт следующий номер, считает ZKI, строит и подписывает RacunZahtjev и отправляет его в CIS. Повторный статус второго чека не создаёт.
- Ответ. CIS возвращает JIR — модуль проверяет подпись ответа и сохраняет JIR. Ошибка s001–s005 или s013 — чек «Refused», причина видна в реестре, «Send again» после исправления.
- Сбой связи. CIS не ответил — чек уже действителен с ZKI, а модуль доставляет его позже с отметкой NakDost и новым идентификатором сообщения, с нарастающей паузой от 1 до 360 минут.
НДС берётся из налоговых строк заказа и группируется по ставке — 25 %, 13 %, 5 % или 0 %. Ставку, которую CIS не принимает, модуль останавливает ещё до отправки с пояснением, номер не расходуется. Купоны раскладываются между ставками, доставка считается по её налогу, а копейки округления модуль сводит так, чтобы сумма чека совпадала с суммой заказа. Строки без налога по умолчанию идут как освобождение от НДС, товар с реальной ставкой 0 % — как НДС 0 %; другие категории можно задать принудительно.
Pro. Возврат даёт storno-чек с минусовыми суммами по тем же ставкам — автоматически на статусах «Refunded» и «Reversed» (можно изменить) или кнопкой. OIB покупателя уходит в CIS только с оплатой G или K, как требует спецификация. Заказ в другой валюте получает чек в евро по курсу магазина, старые заказы можно фискализировать пакетом по ID, реестр выгружается в CSV, а владелец получает письмо, когда чек отклонён или после 5 попыток всё ещё без JIR.
Что под капотом
- CIS: RacunZahtjev (фискализация), ProvjeraZahtjev (проверка, только тест), echo (связь); адреса cistest.apis-it.hr:8449 и cis.porezna-uprava.hr:8449, SOAP 1.1.
- ZKI — MD5 от подписи RSA-SHA256 строки OIB + дата и время + номер + помещение + устройство + сумма, как в разделе 12 спецификации v2.7.
- Подпись запроса — enveloped XMLDSig: Exclusive C14N, RSA-SHA256. RSA-SHA1 не используется: тестовый CIS отклоняет его с 1 июля 2026, рабочий — с 1 января 2027.
- TLS и ответ: соединение проверяется по вложенным сертификатам FINA (Fina RDC 2020, Fina Demo CA 2020), подпись ответа — по сертификату сервиса.
- Нумерация с блокировкой: параллельные заказы не получают одинакового номера и не оставляют дыр; отдельные счётчики для теста и продакшна. Проверено на 40 параллельных заказах и реестре на 3 000 чеков.
- События OpenCart: модуль не меняет файлы ядра — работает через события, поэтому совместим с One Page Checkout CatCode (проверено на 4.1 и 3.0).
- Удаление модуля: OpenCart убирает настройки и сертификат, а реестр и счётчики остаются как налоговые записи; опция «Delete data on uninstall» убирает и их.
Как установить
- OpenCart 4: Расширения → Установщик → загрузите
cc_fiskalhr.ocmod.zip(имя архива не меняйте) и нажмите «Установить». OpenCart 3: Расширения → Установщик →cc_fiskalhr-oc3.ocmod.zip. OpenCart 2.3: залейте содержимое папкиupload/изcc_fiskalhr-oc2.ocmod.zipв корень магазина (FTP или файловый менеджер хостинга). - Расширения → Модули → CatCode Fiskalizacija HR → «Установить» → «Редактировать».
- Settings: загрузите DEMO-сертификат, нажмите «Check the connection», заполните OIB, обозначение помещения, устройство, оператора и способы оплаты, включите фискализацию в среде TEST.
- Оформите тестовые заказы, проверьте чеки в реестре и проверкой provjera.
- Покажите настройки бухгалтеру, переключите среду на PRODUCTION и загрузите рабочий сертификат.
- Для Pro: вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал во вкладке «Licence».
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Что нужно, чтобы начать?
OIB вашей фирмы или обрта, интернет-магазин, зарегистрированный как пословный простор в ePorezna, и сертификат для фискализации на ваш OIB (например, FINA). Для тестовой среды CIS — DEMO-сертификат, для рабочей — рабочий. Чеки выдаются в EUR.
На чём проверен модуль?
По официальной технической спецификации CIS v2.7 и схеме XSD/WSDL 1.10: сгенерированные запросы прошли официальную XSD и независимую проверку подписи, ZKI пересчитан отдельно. Ответы CIS в тесте моделировались. Живой JIR вы получите в своём 7-дневном триале Pro с DEMO-сертификатом FINA — без хорватского OIB он нам недоступен.
Лицензия на год?
Нет. Для OpenCart это одна оплата, лицензия навсегда, одна на все три сборки: 4.x, 3.x и 2.3. Триал Pro стартует только по вашей кнопке, после триала чеки фискализируются дальше.
Кто отвечает за данные чека?
Магазин. Модуль берёт суммы и налоги из заказа, а систему НДС, обозначения помещения и устройства, оператора, способы оплаты и категорию строк без НДС — из ваших настроек. Сверьте их с бухгалтером до перехода на рабочую среду.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—



