
e-Factura ANAF для OpenCart — е-фактури RO e-Factura в ANAF (SPV) прямо із замовлень
Румунські е-фактури RO e-Factura із замовлень OpenCart 4: UBL 2.1 під CIUS-RO 1.0.1, відправка напряму в API ANAF (SPV) через ваш власний OAuth-застосунок, без бухгалтерського SaaS. Індекс завантаження, статус і підписана відповідь ANAF — у замовленні, поле CUI з перевіркою на чекауті, повіти й сектори Бухареста, TEST і PRODUCTION. Pro — B2C, кредит-ноти, покупці з ЄС і поза ЄС, валюти з курсом BNR, друкований рахунок для клієнта. Ліцензія назавжди.
- Сумісність
- OpenCart 4.0.2+ і 4.1 · PHP 8.0+ · штатний чекаут OpenCart · UBL 2.1 / CIUS-RO 1.0.1 · API RO e-Factura (OAuth)
- Ліцензія
- один сайт, назавжди
- Тріал
- 7 днів, без картки, один на сайт
- Оновлено
- вересень 2026
Що є в Free,
а що дає Pro
Безкоштовна версія працює без обмеження в часі. Pro додає решту функцій з таблиці.

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

Один ключ — один сайт
Переносите магазин — відв’яжіть ліцензію на старому домені й активуйте на новому самі. Якщо наш сервер недоступний, Pro працює ще 14 днів. Для студій — ключі на 5, 25 сайтів або без обмежень.
Технічні вимоги
OpenCart 4.0.2.0+ або 4.1 (перевірено 4.0.2.3 і 4.1.0.3, драйвери mysqli і pdo). Збірок для OpenCart 3 і 2.3 немає.
PHP 8.0+ з cURL, OpenSSL і ZipArchive
Кваліфікований сертифікат особи з правами SPV для CUI продавця
Застосунок ANAF для сервісу «E-Factura» з адресою колбеку вітрини (index.php?route=extension/cc_efactura/efactura.oauth). Чи приймає ANAF адресу колбеку з параметрами, живцем не перевірено; якщо ні — токени з Postman можна вставити в налаштуваннях вручну.
Валюта: RON у Free; інші валюти з курсом BNR — у Pro
Чекаут: штатний чекаут OpenCart. Сторонні чекаути й теми, що перемальовують сторінку замовлення, не перевірялись.
Мови модуля: англійська і румунська. Українською інтерфейс не перекладено — модуль зроблено для румунських магазинів.
Історія версій
Для OpenCart 4.0.2+ і 4.1: UBL 2.1 / CIUS-RO 1.0.1, OAuth ANAF, upload, stareMesaj, descarcare, підписана відповідь у базі, відхилені рахунки й «Regenerate and send», поле CUI з перевіркою,…
Разом з e-Factura ANAF для 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
Повний опис модуля
e-Factura ANAF для OpenCart — модуль для магазинів у Румунії на OpenCart 4, які мусять передавати рахунки в національну систему RO e-Factura (SPV) податкової служби ANAF. Модуль перетворює замовлення на електронний рахунок у форматі UBL 2.1 за румунською специфікацією CIUS-RO 1.0.1 і сам надсилає його в API ANAF через ваш власний OAuth-застосунок — без бухгалтерського SaaS посередині й без щомісячної підписки. Індекс завантаження, статус ANAF і підписана відповідь Міністерства фінансів зберігаються з рахунком.
Що потрібно від вас. Фірма, зареєстрована в SPV; кваліфікований електронний сертифікат особи з правами SPV для CUI фірми; власний застосунок ANAF для сервісу «E-Factura», зареєстрований на порталі ANAF з адресою колбеку, яку показує модуль. OpenCart 4.0.2+ або 4.1.
Чесно про перевірку. Модуль перевірено на локальних магазинах OpenCart 4.1.0.3 і 4.0.2.3 (драйвери бази mysqli і pdo), де відповіді ANAF змодельовано за офіційною документацією API (upload, stareMesaj, descarcare, uploadb2c) і прикладами Мінфіну Румунії: встановлення штатним інсталятором, чекаут гостем, рахунки B2B, B2C, кредит-ноти, EUR з курсом BNR, покупець з ЄС, відмова і повторна відправка. XML з тестових замовлень пройшли офіційний валідатор ANAF (XSD UBL 2.1 + схематрон CIUS-RO 1.0.9); документ покупця з ЄС офлайн-валідатор ідентифікувати не вміє (extern=DA), він пройшов XSD і схематрон. З живим ANAF, тестовим чи робочим, ми модуль ще не запускали: потрібен сертифікат румунської фірми. Почніть із середовища TEST у 7-денному тріалі Pro — якщо ANAF відповість не так, як описано в документації, виправимо оперативно.
Відповідальність за зміст рахунку лишається за магазином. Модуль будує рахунок з даних замовлення OpenCart і з налаштувань ПДВ, які ви обираєте: категорії рядків без ПДВ, режим неплатника, «TVA la încasare», звітування B2C, курс BNR для валют. Це рішення вашого бухгалтера — покажіть йому налаштування до переходу на PRODUCTION.
Що отримує адмін
- Extensions → Modules → e-Factura ANAF: вкладки «Invoices», «Settings», «Tools» і «Licence».
- Журнал рахунків: номер, замовлення, покупець з CUI, сума й валюта, статус («In SPV», «Rejected by ANAF», «Not delivered»), індекс завантаження або повідомлення ANAF; фільтр і пошук. «Send queued invoices now» надсилає чергу одразу.
- Сторінка рахунку: XML, підписана відповідь ANAF, перевірка й PDF через публічні сервіси ANAF, «Regenerate and send» для відхиленого рахунку.
- Повідомлення вгорі модуля: немає з’єднання або воно закінчилось, рахунки давно не дійшли в SPV.
На сторінці замовлення в адмінці — панель «e-Factura»: податковий номер покупця з результатом перевірки, поле, щоб виправити CUI для рахунку (дані покупця не змінюються), і рахунки замовлення зі статусом ANAF. Відхилений рахунок показує список помилок з відповіді ANAF; після виправлення — «Regenerate and send» з тим самим номером.
Невизначене завантаження. Якщо ANAF не відповів після старту завантаження (таймаут), модуль не надсилає рахунок повторно наосліп — інакше в SPV міг би з’явитися дубль. Рахунок стає «Not delivered», а кнопка «Send again as it is» надсилає той самий XML після того, як ви перевірили в SPV, що перший не дійшов.
Як це виглядає для покупця
На штатному чекауті OpenCart з’являється поле «CUI / CIF (company)» — власне поле OpenCart (Customers → Custom Fields), яке модуль створює кнопкою в налаштуваннях. Заповнювати його необов’язково: без CUI замовлення — звичайне, для фірми з CUI буде рахунок у RON. Приймаються записи «14399840», «RO14399840» і «RO 14399840».
Румунський CUI з хибною контрольною цифрою не пройде: помилка з’являється під полем, і замовлення не оформлюється, доки номер не виправлено. Номери платників ПДВ інших країн ЄС і іноземні податкові номери поле приймає.
Як це працює — крок за кроком
- Застосунок ANAF. На порталі ANAF у розділі розробників реєструєте застосунок для сервісу «E-Factura» з адресою колбеку з налаштувань модуля; ANAF видає Client ID і Client Secret.
- Підключення. Settings → Connection to ANAF: Client ID і Client Secret, «Connect with ANAF», вибір кваліфікованого сертифіката, «Check the connection».
- Продавець. CUI, назва, адреса, повіт або сектор Бухареста, платник ПДВ чи ні, серія номерів; кнопка «Create the CUI field».
- Статус замовлення. Замовлення отримує статус, який ви обрали (наприклад, «Complete»), — модуль будує XML з наступним номером і ставить у чергу.
- Відправка. Рахунок завантажується в ANAF одразу після зміни статусу; планувальник OpenCart перевіряє чергу щогодини, а для швидших статусів додайте на хостингу крон з адресою з вкладки «Tools» кожні 5 хвилин.
- Відповідь. Прийнято — статус «In SPV», індекс і підписана відповідь ANAF у рахунку; відхилено — список помилок і «Regenerate and send».
- Збої. ANAF недоступний — рахунок чекає в черзі й іде пізніше; невизначене завантаження чекає вашого рішення.
Pro. Статус «Refunded» (або обраний вами) дає повну кредит-ноту 381 з посиланням на рахунок; часткову кредит-ноту створюєте вручну по рядках або сумою. Замовлення без CUI звітуються через uploadb2c з CNP (окреме поле за бажанням) або 13 нулями. Покупці з ЄС з VAT-номером отримують категорію K, поза ЄС — G, обидва з extern=DA. Замовлення в EUR, USD та інших валютах отримують рахунок з курсом BNR і сумою ПДВ у RON.
Що під капотом
- UBL 2.1, CustomizationID CIUS-RO 1.0.1: рахунок 380 і кредит-нота 381; повіти в коді ISO 3166-2:RO, сектори Бухареста як SECTOR1–6.
- OAuth ANAF: authorization code на logincert.anaf.ro, token_content_type=jwt, state проти підробки колбеку. Токени й Client Secret зберігаються зашифрованими; ключ шифрування — у теці storage магазину.
- API RO e-Factura: upload / uploadb2c, stareMesaj, descarcare з урахуванням лімітів ANAF — опитування з наростаючою паузою, відповідь завантажується один раз.
- Відповіді ANAF зберігаються в базі даних магазину, а не файлами в теці сайту: за прямим посиланням їх не відкрити, завантаження — лише з адмінки.
- Події OpenCart (зміна статусу замовлення, чекаут, панель замовлення) і завдання планувальника OpenCart — без правки файлів ядра.
- Журнал
cc_efactura.logу теці логів магазину, перегляд у вкладці «Tools». - Видалення: без «Delete data» реєстр рахунків і лічильники лишаються для бухгалтерії; з «Delete data» прибираються також створені модулем поля CUI/CNP.
Як встановити
- Extensions → Installer → Upload:
cc_efactura.ocmod.zip, потім Install. - Extensions → Extensions → Modules → e-Factura ANAF → Install → Edit.
- Зареєструйте застосунок «E-Factura» на порталі ANAF з адресою колбеку з вкладки «Settings».
- Вставте Client ID і Client Secret, «Connect with ANAF», увійдіть сертифікатом, «Check the connection».
- Заповніть дані продавця, натисніть «Create the CUI field», увімкніть рахунки, лишіть середовище TEST.
- Оформіть тестове замовлення з CUI і переведіть у «Complete» — рахунок з’явиться в журналі зі статусом ANAF.
- Покажіть налаштування ПДВ бухгалтеру і перемкніть середовище на PRODUCTION. Для Pro — ключ з листа після оплати або 7-денний тріал.
Питання
про модуль
Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.
Що потрібно, щоб почати?
Фірма, зареєстрована в SPV, кваліфікований електронний сертифікат особи з правами SPV для її CUI і власний застосунок для сервісу «E-Factura», зареєстрований на порталі ANAF з адресою колбеку, яку показує модуль. Client ID і Client Secret вставляються в налаштування, далі — вхід сертифікатом.
На чому модуль перевірено?
На локальних магазинах OpenCart 4.1.0.3 і 4.0.2.3 (драйвери бази mysqli і pdo), де відповіді ANAF змодельовано за офіційною документацією API. XML з тестових замовлень пройшли офіційний валідатор ANAF (схематрон CIUS-RO 1.0.9). З живим ANAF модуль ще не працював: для цього потрібен сертифікат румунської фірми. Спробуйте в середовищі TEST на своїй фірмі в 7-денному тріалі Pro.
Чи є збірки для OpenCart 3 і 2.3?
Ні, лише OpenCart 4.0.2+ і 4.1.
Як часто треба входити сертифікатом?
Токен доступу діє 90 днів і оновлюється модулем, refresh-токен — 365 днів. Раз на рік треба увійти сертифікатом знову; модуль попереджає заздалегідь.
Хто відповідає за зміст рахунку?
Магазин. Модуль будує рахунок з даних замовлення і з налаштувань ПДВ, які ви обираєте. Категорії ПДВ, «TVA la încasare», звітування B2C, курс BNR для валют — рішення вашого бухгалтера; покажіть йому налаштування перед переходом на PRODUCTION.
Ліцензія на рік?
Ні. Для OpenCart ліцензія назавжди: одна оплата, без щорічних платежів.
Поки що жодного відгуку. Будьте першим.
Поки питань немає. Запитай — ми відповімо протягом 24 годин.
Не той варіант, що шукаєте?
Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.
Замовити кастомний модуль
Купівля модуля
—


