Get in touch
Payments · WordPress

IBAN Smart Invoice — QR + Monobank auto-detect for WooCommerce

Покажіть EPC QR + Monobank/Privat24 deep-links на Thank You — і Monobank API сам закриє оплачені замовлення.

Download for free
Version
v1.0.0
Platform
WordPress
IBAN Smart Invoice — QR + Monobank auto-detect for WooCommerce

What each licence includes

Feature Free Pro
An EPC SCT (BCD v002) QR code to the NBU standard
IBAN / amount / reference on the Thank You page + copy buttons
A "Open in Monobank" / "Open in Privat24" deep link
E-mail instructions with the payment details in the "On-hold" e-mail
HPOS compatibility + Cart/Checkout Blocks
Ukrainian and English localisations
Automatic order closing via a Monobank webhook
An "IBAN Payments" admin log (Unmatched / Matched / Partial / Overpaid)
Manually linking a payment to any order in one click
Handling overpayments and partial payments
A live payment status on the Thank You page (no reload)

IBAN Smart Invoice is a WooCommerce plugin that shows an EPC QR code for payment and Monobank/Privat24 deep-link buttons right on the Thank You page. The customer scans the QR code in their banking app — the payment details fill in by themselves. The Pro version also automatically detects the incoming payment via the Monobank Personal API and closes the order itself.

It can be downloaded for free. It’s a single build: the QR invoice, payment details, bank buttons and the customer e-mail all work with no key, and Pro features are visible in place — greyed out, with an explanation of what they give you. A key or the 7-day trial switches on automatic payment detection via Monobank, a payment log, partial payments and overpayments, and a live status on the thank-you page. There’s a separate, simplified version in the WordPress.org directory: wordpress.org/plugins/catcode-iban-smart-invoice — it has no automatic detection at all.

What the customer sees

Thank You page with a QR code and IBAN details
After placing the order, the customer sees the QR code, an “Open in banking app” button, and the payment details with copy buttons. In Pro, below it there’s a “Waiting for payment” indicator that changes itself to “Received”.

What the admin gets

Admin IBAN Payments — All / Pending / Unmatched / Matched / Partial / Overpaid tabs
Pro: the “IBAN Payments” page — the full payment history with “Pending / Unmatched / Matched / Partial / Overpaid” tabs. A payment with no reference is linked to an order with one click.
Settings page: IBAN, recipient, Monobank token, toggles
Settings on a single page: IBAN, recipient, EDRPOU/tax ID, a payment-reference template, a Monobank token (encrypted), and toggles for the QR code and bank buttons.

How it works, step by step

  1. The customer chooses the “Pay to IBAN / card” method at checkout.
  2. On the Thank You page they see the QR code, deep-link buttons and the payment details.
  3. They scan the QR code in their banking app — the transfer fills in automatically, and all that’s left is to confirm it.
  4. Pro: within 5–30 seconds a Monobank webhook arrives, the plugin matches the amount and reference — the order moves to “Processing” by itself.
  5. Free: you see the transfer in your bank and move the order to “Processing” manually.

Pricing

890 UAH — a one-year licence. A year of updates, technical support and access to all Pro features. No auto-renewal: you always renew manually, and we don’t store card details.

You can take a longer term right away — the longer the term, the cheaper it is per year:

  • 1 year — 890 UAH
  • 2 years — 1,690 UAH (−5%, 845 UAH per year)
  • 3 years — 2,350 UAH (−12%, 783 UAH per year)
  • 4 years — 2,920 UAH (−18%, 730 UAH per year)
  • 5 years — 3,340 UAH (−25%, 668 UAH per year)

When the term expires, only updates and new features stop — Pro features keep working, the free version keeps running, and your settings and data don’t go anywhere. To unlock Pro again, just renew the licence in your account. You’ll get reminders by e-mail 14, 7, 3 and 1 day before expiry.

One key covers one domain. If you move your store, deactivate the licence on the old domain and activate it on the new one yourself, without contacting support.

Trial first, payment later. The trial period doesn’t start by itself: there’s a “Try Premium free for 7 days” button in the payment method’s settings — enter an e-mail, and the key arrives by e-mail and activates immediately, with no card needed. After 7 days, Premium simply switches off, and the rest of the plugin keeps working. That’s exactly why refunds after payment are not offered — you see the module at work before you pay.

Technical requirements

  • WordPress 6.5+, WooCommerce 8.0+
  • PHP 8.2+ (required by the QR-code generation library)
  • A Ukrainian IBAN (UA format)
  • For Pro — a Monobank Personal API token, obtained for free in the Monobank app

Under the hood

  • The Monobank token is encrypted via sodium_secretbox with a key derived from wp_salt('auth') — it’s never stored in the database in plain text.
  • One build instead of two plugins: Pro features are gated by a server-side licence, not a separate archive. The key is checked against catcode.com.ua once a day, with a 14-day grace period in case our server is unavailable.
  • The Order Matcher matches payments by reference and amount; partial payments are accumulated, and a “Received N UAH of M UAH” hint appears on the Thank You page.
  • Passed the Plugin Check audit$wpdb->prepare(), escaped admin output, nonce checks; the plugin has been approved by WordPress.org reviewers.

How to install

  1. Plugins → Add New → Upload Plugin → choose iban-smart-invoice-1.0.0.zip → Install → Activate.
  2. If the simplified version from the WordPress.org directory is installed, deactivate it — this build includes everything it does. Settings and orders are kept.
  3. WooCommerce → Settings → Payments → IBAN Smart Invoice → enable the method, enter the IBAN, recipient, EDRPOU/tax ID.
  4. Premium: in the “Premium licence” block, paste the key and click “Activate licence” — or “Try Premium free for 7 days”.
  5. Paste in the Monobank Personal API token and click “Connect Monobank” — the bank will start sending statement data, and orders will start closing themselves.

Version history

1.0.0 — 11 August 2026
The Premium build: automatic payment detection, the “IBAN Payments” log, partial payments and overpayments, and a live status on the thank-you page are now in one plugin instead of a separate add-on. The trial period no longer starts by itself — only via the button, issuing a real key by e-mail. Premium fields stay visible with no licence: greyed out, with a “Pro” badge and a line about what they give you. The Monobank token is encrypted at rest and isn’t wiped by saving the form.
0.2.2 — 16 July 2026
A full Ukrainian interface translation added to the package (114 strings, uk locale). No code changes.
0.2.1 — 15 July 2026
The plugin was published in the official WordPress.org directory under the slug catcode-iban-smart-invoice. Releases 0.1.6–0.2.1 were compliance edits following the WordPress.org review: unifying function/option/hook prefixes, updating the text domain and name. No functional changes.
0.1.1–0.1.5 — May 2026
The Pro line: a Monobank webhook + Order Matcher (matching by reference and amount), an admin “IBAN Payments” log with tabs and one-click linking, handling partial payments with a hint on the Thank You page, splitting Pro into a separate add-on, a licence client reconciling with catcode.com.ua and deactivating the slot from the admin panel.
0.1.0 — 15 May 2026
Initial release: a QR code to the NBU standard (EPC SCT, BCD v002), Monobank/Privat24 deep-link buttons, copy buttons for the payment details, a WC payment gateway, Cart/Checkout Blocks, HPOS compatibility.

Frequently asked questions

Is it safe to store the Monobank token?

Yes. The token is encrypted via sodium_secretbox with a key derived from wp_salt('auth'). The admin field only shows that a token is set, without revealing its value.

What if the customer overpays or pays partially?

Pro: an overpayment is recorded in meta with a note to check, and a partial payment is accumulated — the order waits for the remainder, and the customer sees "Received N UAH of M UAH". Free: you handle it manually from the bank statement.

What if the customer pays with no reference?

Pro: the payment lands in the "Unmatched" tab on the IBAN Payments page — you link it to the order with one click. Free: you reconcile the bank statement manually.

Can I test on staging and then move to production?

Yes. On staging, click "Deactivate on this site" — the slot frees up instantly, and you enter the key on production. No need to contact support.

Can I get a refund if it doesn't suit me?

There's a 7-day free Pro trial before you buy — you test every feature and only then decide. Details are in the Refund Policy.

Questions about the module?

Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.

@catcode_support

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about your task and we will prepare an estimate.

Order a custom module