Розділ 01
Загальні питання
Це платіжний плагін для WooCommerce, який генерує QR-коди за стандартом НБУ (Національного банку України, постанова №97). Покупець сканує QR-код у своєму банківському додатку (Монобанк, ПриватБанк, ПУМБ тощо) і оплачує замовлення звичайним банківським переказом на ваш рахунок.
QR-код стандарту НБУ підтримують усі українські банки. Повний список банків доступний на bank.gov.ua/ua/qr. Для зручності покупця на сторінці оплати відображаються кнопки швидкого переходу в додаток конкретного банку. Автоматична перевірка оплати (синхронізація виписок) працює для Монобанку (ФОП та ТОВ) і ПриватБанку.
Ні. Плагін працює через звичайний розрахунковий рахунок (IBAN). Жодних додаткових договорів з банком не потрібно — ви приймаєте звичайні банківські перекази.
Плагін не стягує жодних комісій. Банки зазвичай не стягують комісію за перекази між картками/рахунками в межах України, але це залежить від тарифів конкретного банку покупця.
Плагін сумісний з WooCommerce 9.0+ (протестовано до 9.6). Вимагає WordPress 6.7+ та PHP 8.2+. Підтримує WooCommerce HPOS (High-Performance Order Storage) та WooCommerce Blocks.
Розділ 02
Встановлення
- Завантажте архів nbu-qr-pay.zip
- В адмін-панелі WordPress перейдіть Плагіни → Додати новий → Завантажити плагін
- Оберіть zip-файл і натисніть «Встановити зараз»
- Активуйте плагін
- Перейдіть WooCommerce → Налаштування → Платежі → NBU QR Pay для налаштування
- WordPress 6.7+
- WooCommerce 9.0+
- PHP 8.2 або вище
- Розширення PHP gd або imagick (для генерації QR-кодів)
Переконайтесь, що WooCommerce встановлений та активований — плагін не працює без нього. Перевірте, чи активований сам плагін у розділі Плагіни. Перейдіть WooCommerce → Налаштування → Платежі — NBU QR Pay повинен бути у списку.
Розділ 03
Налаштування
- Назва отримувача — назва вашого ФОП або ТОВ (до 140 символів)
- IBAN — розрахунковий рахунок у форматі UA + 27 цифр
- ЄДРПОУ — код ЄДРПОУ (8 цифр) або ІПН (10 цифр)
- Тип банку — оберіть ваш банк: Монобанк ФОП, Монобанк ТОВ або ПриватБанк
- Увімкніть плагін (галочка «Увімкнути/Вимкнути»)
Це текст, який підставляється в призначення платежу QR-коду. За замовчуванням: Оплата замовлення #{order_id}. Тег {order_id} автоматично замінюється на номер замовлення. Саме за цим текстом система знаходить відповідне замовлення при перевірці виписки.
Важливо: Не змінюйте шаблон після того, як почали приймати оплати. Якщо змінити — система не зможе зіставити нові платежі зі старими замовленнями.
- 002 — стандартний формат НБУ (кодування Win1251, домен bank.gov.ua). Підтримується більшістю банків.
- 003 — розширений формат (UTF-8, домен qr.bank.gov.ua). Краще працює з кирилицею, але підтримується не всіма банками.
- UCT — стандартний кредитовий переказ (рекомендовано)
- ICT — миттєвий переказ
- XCT — будь-який тип
У вкладці Банки (в налаштуваннях плагіна) ви можете увімкнути/вимкнути конкретні банки та задати порядок їх відображення. Покупець побачить кнопки тільки тих банків, які ви увімкнули.
Є два статуси:
- Статус при створенні QR — замовлення автоматично отримує статус «На утриманні» (on-hold) після генерації QR-коду
- Статус підтвердження оплати — присвоюється після успішної перевірки платежу (за замовчуванням: «В обробці»)
- Загальні — основні реквізити (отримувач, IBAN, ЄДРПОУ, тип банку, статус підтвердження)
- QR налаштування — назва методу на чекауті, опис, розмір QR, версія формату, тип переказу, інструкції
- Банки — список 27 банків з можливістю увімкнення/вимкнення та сортування
- Монобанк ФОП — токен API, підключення webhook, синхронізація виписок
- Монобанк ТОВ — корпоративний токен, синхронізація виписок
- ПриватБанк — токен API, синхронізація виписок
Розділ 04
Монобанк
- Отримайте API-токен на сайті api.monobank.ua (для ФОП) або через корпоративний API (для ТОВ)
- У налаштуваннях плагіна перейдіть на вкладку Монобанк ФОП або Монобанк ТОВ
- Вставте токен у відповідне поле
- Натисніть «Підключити виписки» — система автоматично зареєструє webhook
Webhook — це автоматичне сповіщення від Монобанку. Коли на ваш рахунок надходить переказ, Монобанк миттєво надсилає повідомлення вашому магазину через REST API. Плагін перевіряє суму та призначення платежу і автоматично підтверджує замовлення. Покупцю надходить лист про успішну оплату.
Можливі причини:
- Невірне призначення платежу — покупець змінив текст призначення і система не змогла знайти номер замовлення
- Невірна сума — сума переказу не збігається з сумою замовлення (допуск ±0.01 грн)
- Webhook не підключений — перевірте, чи натискали ви кнопку «Підключити виписки»
- Замовлення вже підтверджене — якщо замовлення вже має статус підтвердження, повторна обробка пропускається
- ФОП — використовує персональний API (api.monobank.ua). Токен отримується на сайті api.monobank.ua. Підтримує webhook та синхронізацію виписок.
- ТОВ — використовує корпоративний API (corp-api.monobank.ua). Токен видається через корпоративний кабінет. Використовує IBAN напряму для запиту виписок.
Монобанк обмежує частоту запитів до API. Рекомендуємо робити синхронізацію не частіше ніж раз на хвилину. При синхронізації ви можете обрати діапазон дат.
Розділ 05
ПриватБанк
- Увійдіть у Приват24 для бізнесу
- Перейдіть у розділ Інтеграція (AutoClient) → Налаштування API
- Отримайте токен API
- У налаштуваннях плагіна на вкладці ПриватБанк вставте токен
Ні. ПриватБанк не надає webhook. Перевірка оплат відбувається через ручну синхронізацію виписок у налаштуваннях плагіна. Система завантажує список транзакцій з API ПриватБанку, знаходить вхідні платежі та зіставляє їх із замовленнями.
- Проміжні (interim) — транзакції за поточний день. Оновлюються в реальному часі, але можуть бути неостаточними.
- Фінальні (final) — підтверджені транзакції за обраний діапазон дат. Використовуйте для звірки за минулі дні.
Розділ 06
Фронтенд (що бачить покупець)
- При оформленні замовлення покупець обирає спосіб оплати «Банківський переказ через QR-код (НБУ)»
- Натискає «Оформити замовлення»
- Відкривається сторінка подяки з QR-кодом та реквізитами оплати
- Покупець сканує QR у банківському додатку або натискає кнопку свого банку
- Підтверджує переказ у додатку банку
На мобільному замість інструкції «відскануйте QR» показується спрощений інтерфейс:
- Кнопки швидкого переходу в додатки Монобанку та ПриватБанку
- Кнопка «Обрати банк» з повним списком банків (спливаюче вікно з логотипами 27 банків)
- QR-код стає клікабельним — натискання відкриває сервіс НБУ qr.bank.gov.ua, який автоматично перенаправляє в потрібний додаток
Так. Під QR-кодом відображається таблиця з усіма реквізитами: отримувач, IBAN, ЄДРПОУ, сума, призначення платежу. Кожне поле має кнопку копіювання — один клік і дані в буфері обміну.
Так. Планшети з шириною екрану до 1024px показують мобільну версію з двома кроками. На екранах ширше 1024px — десктопну версію з трьома кроками.
Так. Плагін повністю сумісний з новим блоковим чекаутом WooCommerce Blocks. Метод оплати коректно відображається як у класичному shortcode-чекауті, так і в блоковому.
- Якщо підключений webhook Монобанку — підтвердження зазвичай приходить миттєво. Перевірте історію замовлення в адмінці WooCommerce.
- Якщо webhook не працює або використовується ПриватБанк — зробіть ручну синхронізацію виписок у налаштуваннях плагіна.
- Якщо покупець змінив призначення платежу — зіставлення не відбудеться автоматично. Підтвердіть замовлення вручну.
Розділ 07
Безпека
Так. Кожен webhook захищений унікальним 32-символьним секретним ключем, який генерується автоматично. Запити без правильного ключа відхиляються. Порівняння ключа виконується через timing-safe алгоритм (hash_equals), що захищає від атак на час виконання.
Ні. Плагін не збирає і не зберігає жодних банківських даних покупців. Зберігаються лише ваші реквізити (IBAN, ЄДРПОУ) та дані згенерованих QR-кодів.
Так. Плагін повністю сумісний з WooCommerce High-Performance Order Storage (HPOS). Дані замовлень зберігаються коректно як у класичному режимі (post meta), так і в режимі HPOS (custom order tables).
Розділ 08
Усунення проблем
Перевірте, чи встановлено PHP-розширення gd або imagick. Без них генерація зображення QR-коду неможлива.
- Перевірте правильність IBAN (формат UA + 27 цифр)
- Спробуйте змінити версію QR з 003 на 002
- Переконайтесь, що банківський додаток покупця оновлений до останньої версії
Перевірте, чи увімкнені потрібні банки у вкладці Банки в налаштуваннях плагіна.
- Переконайтесь, що плагін увімкнений (галочка «Увімкнути/Вимкнути» в налаштуваннях)
- Перевірте, що WooCommerce активований
- Плагін не показується для замовлень з нульовою сумою
- Переконайтесь, що версія PHP не нижче 8.2
- Перевірте, що версія WooCommerce не нижче 9.0
- Деактивуйте та активуйте плагін повторно — це оновить таблицю бази даних, якщо потрібно
Дані зберігаються у двох місцях: у мета-полях замовлення WooCommerce (сумісно з HPOS) та у спеціальній таблиці бази даних wp_nbu_qr_payments, яка створюється автоматично при активації плагіна.
Не знайшли відповідь?
Зверніться до нас — допоможемо з будь-яким питанням щодо встановлення та налаштування.