Зв'язатись
  • OpenCart
  • Payments
  • v1.0.0

KSeF E-Invoicing для OpenCart — е-фактури FA(3) у польський KSeF прямо із замовлень

Структуровані е-фактури FA(3) для польського KSeF із замовлень OpenCart 4, 3 і 2.3: відправка напряму в API KSeF 2.0 вашим токеном, без SaaS-підписки. Номер KSeF, UPO і QR-код — у замовленні, поле NIP на чекауті, черга з повторами, TEST/DEMO/PROD. Pro — коригувальні фактури, покупці з ЄС і поза ЄС, B2C, валюти з курсом NBP, лист клієнту з QR. Ліцензія назавжди.

Завантажити Free
Pro · ліцензія назавжди Чим більше сайтів, тим дешевше кожен
Сумісність
OpenCart 4.0.2 – 4.1.x, 3.0.x і 2.3.0.2 (перевірено на 4.1.0.3, 4.0.2.3, 3.0.5.0, 2.3.0.2) · штатний чекаут і One Page Checkout (CatCode) · KSeF API 2.0, FA(3)
Версія
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Ліцензія
один сайт, назавжди
Тріал
7 днів, без картки, один на сайт
Оновлено
вересень 2026
Або всі 144 Pro-модулів з All Access — 4 990 ₴ / рік

Що є в Free,
а що дає Pro

Безкоштовна версія працює без обмеження в часі. Pro додає решту функцій з таблиці.

Функція Free Pro
Фактура FA(3) (схема 1-0E) із замовлення: продавець, покупець з NIP, товари з опціями, SKU і EAN, доставка, збори, ПДВ за ставками, оплата ✔ ✔
Автовиставлення, коли замовлення отримує обрані статуси (за замовчуванням — «виконані» статуси магазину); кнопка «Issue KSeF invoice» на сторінці замовлення ✔ ✔
Купони й знижки розкладаються по ставках ПДВ товарів; ПДВ з податків OpenCart, ставка, включена в ціни, або продавець без ПДВ (zw) ✔ ✔
Пряма відправка в API KSeF 2.0 вашим токеном KSeF: онлайн-сесія, шифрування AES-256, без сторонніх сервісів ✔ ✔
Номер KSeF, офіційне UPO і QR-код перевірки (KOD I) у замовленні; завантаження XML і UPO ✔ ✔
Поле NIP на чекауті (власне поле OpenCart, створюється кнопкою) з перевіркою контрольної суми — штатний чекаут і One Page Checkout ✔ ✔
Черга з автоматичними повторами: KSeF недоступний — фактури чекають і йдуть пізніше ✔ ✔
Захист від дублікатів: той самий файл ніколи не дає другої фактури, чужий номер KSeF не прив'язується до замовлення ✔ ✔
Причини відмов текстом KSeF, «Regenerate and send» після виправлення, «Discard» ✔ ✔
Середовища TEST, DEMO і PRODUCTION з окремими лічильниками номерів ✔ ✔
Власний формат номера: {YYYY}/{MM}/{DD}/{N}, скидання щомісяця, щороку або ніколи ✔ ✔
Реєстр фактур з пошуком і фільтром, панель KSeF на сторінці замовлення, NIP для фактури можна виправити з адмінки ✔ ✔
Токен KSeF зашифрований, ключ — у файлі поза базою; відправка одразу після зміни статусу, планувальником OpenCart 4 або cron-адресою ✔ ✔
Збірки для OpenCart 4.x, 3.x і 2.3; мови модуля: English, polski ✔ ✔
Коригувальні фактури (KOR): повна — за статусом повернення, часткова — по рядках і/або сумою, з номером KSeF оригіналу — ✔
Покупці з інших країн ЄС (VAT UE, 0 % WDT) і поза ЄС (експорт, 0 % EX) — ✔
Фактури споживачам (B2C) у KSeF за вашим вибором — ✔
Валюти EUR, USD та інші з курсом NBP і ПДВ у злотих у XML — ✔
Лист клієнту «Your invoice is in KSeF» з QR-кодом, блок у кабінеті покупця і друкована фактура — ✔
Фактури для минулих замовлень (за ID або періодом), CSV-реєстр для бухгалтера, листи про відхилені фактури — ✔

Як це виглядає

Поле NIP для фактури з помилкою контрольної суми на чекауті OpenCart
Чекаут OpenCart 4 (One Page Checkout): поле «NIP (for a VAT invoice)» з хибною контрольною сумою — «NIP (for a VAT invoice) is not a valid input!». Порожнє поле замовлення не зупиняє.
Помилка NIP на чекауті OpenCart
Чекаут OpenCart із полем NIP: номер із неправильною контрольною сумою не приймається — помилка одразу під полем.
Друкована фактура VAT з номером KSeF і QR-кодом перевірки з телефона
Pro: друкована фактура з телефона — продавець, покупець з NIP, рядки з доставкою, підсумки за ставками, курс NBP для EUR і QR-код для перевірки фактури в KSeF.

Тріал стартує, коли ви попросите

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

Один ключ — один сайт

Переносите магазин — відв’яжіть ліцензію на старому домені й активуйте на новому самі. Якщо наш сервер недоступний, Pro працює ще 14 днів. Для студій — ключі на 5, 25 сайтів або без обмежень.

Технічні вимоги

  • OpenCart 4.0.2 – 4.1.x (перевірено на 4.1.0.3 і 4.0.2.3), 3.0.x (перевірено на 3.0.5.0) або 2.3.0.2 (перевірено на PHP 7.0)
  • PHP — той, що потрібен вашій версії OpenCart, з OpenSSL; сторонніх бібліотек модуль не потребує. MySQL / MariaDB, драйвери mysqli і pdo.
  • Токен KSeF для NIP продавця з Aplikacja Podatnika KSeF того середовища, в якому працюєте (TEST, DEMO або PRODUCTION). При переході з TEST на PRODUCTION токен треба замінити.
  • Податки OpenCart з польськими ставками (23 %, 8 %, 5 % …) у класах податків товарів і доставки, або режим «ставка включена в ціни», або zw. Ставки не з польського переліку і фіксовані податки (тип F, eco tax) фактуру не дають — модуль пояснить чому.
  • Валюта — PLN для Free; інші валюти з курсом NBP — у Pro.
  • Чекаут: штатний і One Page Checkout (CatCode). Сторонні чекаути з власними шаблонами полів не перевірялись.
  • Для швидких статусів — PHP-FPM або cron-адреса з вкладки «Tools» кожні 5 хвилин. Без них статуси й UPO оновлюються щогодини (OpenCart 4) або при відкритті адмінки.
  • Мови модуля: англійська і польська. Українською інтерфейс не перекладено — модуль зроблено для польських магазинів.

Історія версій

v1.0.0 Поточна вересень 2026

Для OpenCart 4.x, 3.x і 2.3: FA(3) 1-0E, API KSeF 2.0 з токеном KSeF, черга з повторами, UPO, QR-код KOD I, захист від дублікатів, поле NIP з перевіркою на штатному чекауті й One Page…

Разом з KSeF E-Invoicing для OpenCart купують

4 модулі одним замовленням — на 40% дешевше, ніж окремо

Набір «Старт магазину» KSeF E-Invoicing Nova Poshta Premium LiqPay Telegram-сповіщення і Viber/SMS покупцям Потрібно більше — усі 144 модулі в All Access за 4 990 ₴.
3 590 ₴ назавжди замість 5 960 ₴ поштучно
Купити набір →

Повний опис модуля

KSeF E-Invoicing для OpenCart — модуль для магазинів у Польщі, які виставляють фактури компаніям. З 2026 року польські платники ПДВ передають фактури B2B через Національну систему е-фактур (Krajowy System e-Faktur, KSeF). Модуль перетворює замовлення OpenCart на структуровану фактуру в офіційному форматі FA(3) і надсилає її прямо в API KSeF 2.0 — без бухгалтерського SaaS посередині й без щомісячної підписки. Номер KSeF, офіційне підтвердження прийняття (UPO) і QR-код перевірки зберігаються в замовленні. Збірки — для OpenCart 4.x, 3.x і 2.3.

Що потрібно від вас. Токен KSeF для NIP вашої компанії: його генерують в Aplikacja Podatnika KSeF обраного середовища (розділ «Tokeny», дозволи на виставлення і перегляд фактур). Чесно про перевірку: модуль перевірено на офіційному тестовому середовищі KSeF Міністерства фінансів на OpenCart 4.1, 4.0.2, 3.0.5 і 2.3 — фактури прийнято з реальними номерами KSeF і UPO, а кожен XML валідний за офіційною XSD-схемою FA(3). У DEMO і PRODUCTION ми його ще не запускали: там той самий API, але потрібна справжня компанія. Спробуйте на своєму NIP у 7-денному тріалі Pro — якщо KSeF відповість інакше, ніж на тесті, виправимо оперативно.

Відповідальність за зміст фактури лишається за магазином: модуль будує FA(3) з даних замовлення OpenCart (товари, рядки підсумків, податки, адреси, NIP). Податкові рішення — як розкладати купон по ставках, коли 0 % WDT чи EX, коли замовлення вважається оплаченим, тип корекції — зроблено за логікою OpenCart і документацією Міністерства фінансів; перед переходом на PRODUCTION варто показати налаштування вашому бухгалтеру.

Як це виглядає для покупця

Модуль додає до магазину власне поле OpenCart «NIP (for a VAT invoice)» — його створює кнопка «Create the NIP field» у налаштуваннях. Поле показують штатний чекаут, реєстрація, сторінки акаунта і One Page Checkout (CatCode). Заповнювати його необов’язково: без NIP замовлення оформлюється як звичайне, і фактура в KSeF не створюється. Якщо NIP введено, модуль перевіряє контрольну суму — хибний номер зупиняє оформлення з помилкою біля поля. Приймаються записи «5265877635», «526-587-76-35» і «PL5265877635», а також номери VAT інших країн ЄС (для фактури таким покупцям потрібен Pro).

На телефоні все так само: помилка з’являється під полем, решта чекауту не змінюється. Покупець, який уже має акаунт в OpenCart 4, бачить поле NIP у своєму кабінеті, а не на чекауті, — так OpenCart показує поля акаунта. Для таких замовлень NIP можна вписати на сторінці замовлення в адмінці (див. нижче).

У Pro покупець отримує лист «Your invoice is in KSeF» з номером KSeF і QR-кодом, блок фактури на сторінці замовлення в кабінеті і друковану фактуру за захищеним посиланням. Друкована фактура — інформаційна копія; юридично чинна — XML у KSeF.

Що отримує адмін

  • Extensions → Modules → KSeF E-Invoicing: вкладки «Invoices», «Settings», «Tools» і «Licence».
  • Токен KSeF зберігається зашифрованим, а ключ шифрування лежить у файлі storage/cc_ksef.key.php, не в базі; у формі видно лише «saved». Можна задати токен і константою CC_KSEF_API_TOKEN у config.php.
  • «Check the connection to KSeF» проходить повну автентифікацію і пише, з яким NIP і в якому середовищі все працює, або показує помилку KSeF текстом (наприклад, 450 для хибного токена).
  • Середовище — TEST, DEMO або PRODUCTION; поки увімкнено TEST чи DEMO, вгорі сторінки висить нагадування, що фактури не мають юридичної сили.
  • Статуси, при яких виставляється фактура, продавець (Podmiot1) з KRS / REGON / BDO, формат номера, джерело ПДВ, одиниця виміру, префікс рядка доставки, рядки підсумків, які є оплатою (подарункові сертифікати, бонусний рахунок), термін оплати і IBAN для банківського переказу.
  • Реєстр фактур: номер, замовлення, покупець з NIP, сума, статус, номер KSeF або текст відмови; фільтр за статусом, пошук і пагінація.
  • «Send queued invoices now» надсилає чергу одразу, включно з фактурами, що чекають повтору.
  • Нотатки в історії замовлення: «створено і поставлено в чергу», «прийнято, номер KSeF …» або причина відмови.

Панель KSeF на сторінці замовлення: NIP покупця з позначкою про перевірку, поле, щоб вписати або виправити NIP саме для фактури (поле клієнта при цьому не змінюється), статус, номер KSeF, QR-код KOD I і посилання на деталі. Для замовлення без фактури — кнопка «Issue KSeF invoice», а якщо фактури немає з певної причини (наприклад, замовлення споживача), панель пише, чому.

Сторінка фактури: дата, статус, номер KSeF, сесія, SHA-256 файлу, кнопки «Download XML», «Download UPO», друкована фактура, QR-код і повний XML FA(3), який бачив KSeF. Відхилена фактура показує текст KSeF польською і кнопки «Regenerate and send» (після виправлення даних) та «Discard». У Pro тут же — коригувальна фактура: кількості повернутих товарів по рядках і/або зменшення ціни, розкладене по ставках; модуль не дасть скоригувати більше, ніж лишилось.

Номер уже зайнято іншою програмою. Якщо на тому ж NIP ви виставляєте фактури ще й в іншій програмі або в іншому магазині з таким самим шаблоном номера, KSeF відмовить у другій фактурі з тим самим номером (код 440). Модуль звіряє файл з UPO оригіналу: свій файл (наприклад, коли загубилась відповідь KSeF) приймається з його номером KSeF, а чужий — ніколи. Така фактура стає «Rejected by KSeF» з поясненням і номером KSeF чужого документа; змініть формат номера (наприклад, префікс SKLEP/) і натисніть «Regenerate and send» — фактура отримає новий номер. Поки оригінал не вдається порівняти, фактура до 24 годин лишається в статусі обробки і перевіряється кожні 2 хвилини.

Як це працює — крок за кроком

  1. Налаштування. Токен KSeF → «Check the connection to KSeF» → дані продавця → «Create the NIP field» → увімкнути «Issue KSeF invoices». Почніть із середовища TEST.
  2. Чекаут. Покупець-компанія вводить NIP. Хибний NIP не пройде; без NIP — звичайне замовлення без фактури.
  3. Статус замовлення. Замовлення отримує обраний статус (за замовчуванням — «виконані» статуси магазину) — модуль будує фактуру FA(3) з наступним номером і ставить її в чергу. Рядки — з товарів замовлення і рядків підсумків: доставка, збори, купони (розкладені по ставках).
  4. Відправка. На сервері з PHP-FPM фактура йде одразу після відповіді адмінці; крім того, чергу перевіряють планувальник OpenCart 4 (щогодини), cron-адреса з ключем з вкладки «Tools» (радимо кожні 5 хвилин) і відкриття адмінки.
  5. Статус KSeF. Прийнято — номер KSeF і QR-код у замовленні, UPO з’являється в KSeF трохи пізніше за номер і підтягується наступним проходом; відхилено — текст причини в реєстрі, на сторінці фактури й в історії замовлення.
  6. Збої. KSeF недоступний, 429 чи 503 — фактура чекає й повторюється сама; той самий XML байт-у-байт, тож другої фактури не буде.
  7. Повернення (Pro). Замовлення отримує статус корекції (за замовчуванням Refunded / Reversed) — повна коригувальна фактура KOR з номером KSeF оригіналу; часткова — вручну на сторінці фактури.
  8. Клієнт (Pro). Лист «Your invoice is in KSeF» з номером KSeF і QR-кодом KOD I, блок у кабінеті і друкована фактура.

Що під капотом

  • FA(3), схема 1-0E — порядок елементів строго за XSD Міністерства фінансів; усі фактури з тестових прогонів на OpenCart 4, 3 і 2.3 (B2B з кількома ставками, купони, EUR, ЄС, B2C, KOR) валідні за офіційною схемою.
  • API KSeF 2.0 без сторонніх бібліотек: автентифікація токеном (RSA-OAEP SHA-256), онлайн-сесія, AES-256-CBC, опитування статусу, UPO. Access- і refresh-токени кешуються; 401 — повторна автентифікація.
  • Суми як у замовленні. Купони й знижки розкладаються по ставках пропорційно нетто товарів, податок доставки і зборів береться з рядків податків замовлення, а залишок округлення потрапляє в найбільший рядок — P_15 фактури дорівнює сумі замовлення, і в злотих, і в другій валюті.
  • Оплата: накладений платіж → форма 1, банківський переказ → форма 6 з IBAN з налаштувань; «оплачено» — за обраними статусами, інакше термін оплати.
  • XML не змінюється після створення. Повтор — той самий файл, тож загублена відповідь KSeF дає 440 з оригінальним номером, а не другу фактуру. Дублікат 440 приймається лише для власного файлу (SkrotDokumentu з UPO оригіналу або SHA-256 файлу з KSeF).
  • Нумерація з блокуванням (MySQL GET_LOCK): два замовлення в ту саму секунду не отримають однаковий номер.
  • Курс NBP (Pro) — таблиця A за останній робочий день перед датою продажу; у XML — KursWaluty і ПДВ у злотих (P_14_xW). Друкована фактура в EUR показує курс, а ПДВ у злотих є в XML.
  • Свої таблиці (cc_ksef_invoice, cc_ksef_order, cc_ksef_kv) і події OpenCart — без правок файлів ядра: install.xml у збірках 3.x і 2.3 не містить жодної модифікації.
  • Офлайн-режими KSeF (offline24, аварійний, KOD II) не реалізовано: коли KSeF недоступний, фактури чекають у черзі.
  • Видалення модуля. OpenCart сам стирає налаштування модуля, тож після перевстановлення токен і дані продавця вводяться знову; реєстр фактур, лічильники і ліцензія лишаються. Перемикач «Delete data on uninstall» прибирає й реєстр.

Як встановити

  1. OpenCart 4: Extensions → Installer → завантажте cc_ksef.ocmod.zip (ім’я архіву не змінюйте) і натисніть «Install». OpenCart 3: Extensions → Installer → cc_ksef-oc3.ocmod.zip. OpenCart 2.3: залийте вміст папки upload/ з cc_ksef-oc2.ocmod.zip у корінь магазину (FTP або файловий менеджер хостингу) — штатний інсталятор 2.3 вимагає FTP-доступу, ручне заливання простіше.
  2. Extensions → Extensions → Modules → KSeF E-Invoicing → «Install», потім «Edit».
  3. Середовище TEST, токен з Aplikacja Podatnika KSeF того ж середовища, «Check the connection to KSeF».
  4. Дані продавця, формат номера (власний префікс, якщо є інша програма фактурування) і джерело ПДВ; «Create the NIP field»; увімкніть «Issue KSeF invoices».
  5. Оформіть тестове замовлення з NIP і переведіть його в статус «Complete» — за хвилину на сторінці замовлення буде номер KSeF.
  6. Переходите на PRODUCTION — перемкніть середовище і вставте токен PRODUCTION.
  7. Для Pro: вкладка «Licence» — ключ з листа після оплати або 7-денний тріал.

Питання
про модуль

Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.

@catcode_support Налаштування, сумісність, активація
Що потрібно, щоб почати?

Токен KSeF для NIP вашої компанії. Його генерують в Aplikacja Podatnika KSeF (розділ «Tokeny») з дозволами на виставлення і перегляд фактур і вставляють у Extensions → Modules → KSeF E-Invoicing → Settings. Окремого договору чи SaaS-акаунта не треба.

На чому модуль перевірено?

На офіційному тестовому середовищі KSeF Міністерства фінансів (TEST) — на OpenCart 4.1.0.3, 4.0.2.3, 3.0.5.0 і 2.3.0.2: фактури B2B, B2C, ЄС у EUR, коригувальні, відмова з поясненням, UPO, дублікати — з реальними номерами KSeF. У DEMO і PRODUCTION модуль ще не запускали: там той самий API, але потрібні дані справжньої компанії.

Я переходжу з TEST на PRODUCTION. Що змінити?

Токен. Токен KSeF діє лише в тому середовищі, де його згенеровано, тож після перемикання вставте токен з Aplikacja Podatnika PRODUCTION. Лічильники номерів у кожного середовища свої.

Я виставляю фактури ще й в іншій програмі на той самий NIP.

Дайте магазину власний формат номера, наприклад SKLEP/{YYYY}/{MM}/{N}. Якщо інша програма вже зайняла такий самий номер, KSeF відмовить, а модуль позначить фактуру як відхилену з поясненням і не прив'яже чужий номер KSeF до замовлення. Після зміни формату — «Regenerate and send».

Ліцензія справді назавжди?

Так. Для OpenCart ліцензія — одна оплата без щорічних платежів. Pro-функції лишаються у вашому магазині назавжди.

Що як KSeF не працює?

Фактури лишаються в черзі й надсилаються автоматично, щойно KSeF відповідає. Нічого не губиться, двічі не надсилається.

Не той варіант, що шукаєте?

Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль