Get in touch
Payments · OpenCart

Mono Acquiring — monobank card payments for OpenCart 2.3, 3.x and 4.x

Еквайринг monobank для OpenCart 4: оплата карткою на сторінці банку, автопідтвердження замовлення вебхуком з ECDSA-підписом, тестовий режим без договору. Pro — журнал, hold, повернення, картка в 1 клік, автофіскалізація.

Download for free
Version
v1.1.0 (OpenCart 4)
v1.1.0 (OpenCart 3.x)
v1.1.0 (OpenCart 2.3)
Compatibility
OpenCart 2.3.0.x · 3.0.2 – 3.0.5 · 4.0.2 – 4.1.x
Platform
OpenCart
Mono Acquiring — monobank card payments for OpenCart 2.3, 3.x and 4.x

What each licence includes

Feature Free Pro
Visa/Mastercard payments on the monobank page
Automatic order confirmation by a webhook with ECDSA signature verification
Separate statuses for paid, failed and refunded orders
Test mode with a separate test token — no bank agreement needed
A "Test token" button — instantly shows the connection works
Method restriction by geo-zone, configurable invoice lifetime
API request logging
A payment log — date, amount, monobank status and order status, invoice number, masked card, RRN
Two-stage payment (hold) — holding funds with a later charge
Refunds — full, partial and repeated, from the log in the admin
Saved card — one-click repeat payment via a monobank wallet token
An auto-fiscalisation event — fires for PRRO modules (Checkbox, Vchasno.Kasa, etc.) after payment

Mono Acquiring for OpenCart 4 is a payment module that adds monobank acquiring card payments to your store. The module creates an invoice via the bank’s API, sends the customer to monobank’s secure payment page, and after payment accepts a webhook, checks its ECDSA signature and changes the order status itself. The admin doesn’t need to manually check who paid — statuses in OpenCart update automatically.

Mono Acquiring for OpenCart — settings, free version
A fresh install is a clean free version: Pro fields are visible but greyed out, with a badge and a line about what they give you.
Mono Acquiring for OpenCart — trial period modal
Seven days of Pro only start with your click: enter an email and the key is issued for this store and duplicated by email.
Mono Acquiring for OpenCart — payment log
The payment log: monobank status and order status side by side, masked card, RRN, refund amount and a refund button.
Mono Acquiring for OpenCart — Pro active
With an active key the fields unlock: two-stage payment, saved card, auto-fiscalisation, log.

The basic version is free. Download it from the official OpenCart marketplace: opencart.com/…/extension_id=48694. A Pro licence adds a payment log with status reconciliation, two-stage payment (hold), partial and repeat refunds, saved customer cards for one-click payment, and an auto-fiscalisation receipt event for PRRO.

How it works, step by step

  1. At checkout, the customer chooses monobank card payment and confirms the order.
  2. The module calls the monobank API, creates an invoice with a set lifetime and redirects the customer to the bank’s payment page — the card is entered on monobank’s side, not in your store.
  3. The bank sends a webhook to extension/mono_acquiring/payment/mono.callback. The module verifies the ECDSA signature (the X-Sign header) and sets the order status you chose in the settings — separately for a successful payment, a failed/expired one, and a refund.
  4. With two-stage payment (Pro), funds are first held on the card and charged only once you confirm the order — handy when you need to check stock before charging.
  5. Refunds (Pro) are done from the payment log in the admin: in full or for a specified amount, without logging into the bank’s dashboard.

Pricing

1,490 UAH — a one-off purchase. The licence is perpetual: pay once, updates and technical support are included in the price. One key, one domain and its subdomains.

Moving your store to another domain? Deactivate the licence on the old one and activate it on the new one yourself in your account.

The licence is perpetual — nothing expires or switches off. One key, one domain; moving your store means deactivating the licence on the old domain and activating it on the new one yourself.

One key, one domain. Moving your store? Deactivate the licence on the old domain and activate it on the new one yourself, no need to contact support.

Trial first, payment later. A fresh install is the free version: Pro doesn’t switch itself on and nothing shuts off after a week. When you want to try Pro, click “Try Pro” in the module’s settings, enter an email and get a 7-day key (also sent by email). So you can check the operations log, hold and refunds on your own store before buying — that’s exactly why refunds after payment aren’t offered.

Technical requirements

  • OpenCart 4.x — a native extension, installed with the standard installer; separate builds are included for 3.0.x and 2.3.0.x (2.3 is uploaded as files, since that version’s stock installer only supports FTP)
  • A monobank token: a live one (X-Token) from the merchant dashboard after signing an agreement; a test one, free at api.monobank.ua
  • The store must be reachable from the internet over HTTPS — otherwise the bank’s webhook won’t arrive

Under the hood

  • Cryptographic webhook verification: the X-Sign signature (base64 ECDSA-SHA256) is checked against the merchant’s public key — the module rejects a faked “order paid” request.
  • Dedicated tables cc_mono_order and cc_mono_card — payments and card wallet tokens are stored separately and don’t touch OpenCart’s standard tables.
  • A full monobank API client: creating an invoice with cart contents (basketOrder), a status request, finalise for hold payments, refunds.
  • A bilingual admin — Ukrainian and English localisation out of the box.
  • Auto-fiscalisation via an OpenCart event — a PRRO module subscribes to the event and issues a receipt right after successful payment.

How to install

  1. Upload mono_acquiring.ocmod.zip via Extensions → Installer in the OpenCart admin. For 3.0.x take mono_acquiring-oc3.ocmod.zip, for 2.3 take mono-oc2.ocmod.zip and upload the upload/ folder’s contents to the store root over SFTP.
  2. In Extensions → Payments, find Mono Acquiring and click “Install” — the module will create its tables. Pro isn’t switched on by this: the trial is only issued by clicking “Try Pro” in the settings.
  3. Open the settings, paste the token (test or live) and click “Test token” — you’ll see your merchant name.
  4. Choose the payment type (charge immediately or hold), the order statuses, and save.
  5. The module shows the webhook URL in its settings and passes it to the bank automatically when creating an invoice.
  6. For Pro, after purchase paste the licence key from the email into the “Pro licence” field.

Version history

1.1.0 (OpenCart 3.x) — 10 August 2026
The OpenCart 3.0.x build was rebuilt from scratch to match the 4.x and 2.3 versions: the same Free/Pro model with a one-click trial, payment log, refunds from the admin, two-stage payment, saved cards and auto-fiscalisation. Compared with the old 1.0.5 build, two money bugs were fixed: the refund amount is now converted into the monobank invoice’s currency (previously a $150 request refunded 150 UAH), and a partial refund no longer closes the order — monobank marks the invoice “reversed” even when only part is refunded, so the remainder stayed unrefunded. Verified with live payments on the test merchant: card payment, partial and full refund, webhook signature. ⚠️ Two-stage payment (hold) in monobank is only available for hryvnia.
1.1.0 (OpenCart 2.3) — 7 August 2026
A build for OpenCart 2.3.0.x: the same Free/Pro model and one-click trial, log, refunds, two-stage payment, saved cards and auto-fiscalisation. Fixed compared with older builds: the refund amount is now converted into the monobank invoice’s currency (previously a $150 request refunded 150 UAH); a partial refund no longer closes the order — monobank marks the invoice “reversed” even when only part is refunded, so the remainder stayed unrefunded; a late “processing” webhook no longer overwrites the final status in the log; card data is no longer wiped when charging held funds. ⚠️ Two-stage payment (hold) in monobank is only available for hryvnia.
1.1.0 — 2 August 2026
Rebuilt Free/Pro: a fresh install is a clean free version, the 7-day trial only starts with your click and is issued as a real key by email. The Pro boundary is now visible in place: two-stage payment, saved card, auto-fiscalisation and the log stay on screen but greyed out, with an explanation of the benefit. Fixed: the event for charging held funds was registered with a dot instead of “*” — on OpenCart 4, two-stage payment didn’t work at all; a callback with an understated amount is no longer saved as a successful payment (previously this permanently blocked the next full one); a full refund is no longer written to history twice; partial refunds are now totalled cumulatively, and an excessive amount is rejected before calling the API; the licence survives catcode.com.ua being unreachable (a 14-day grace period).
1.0.3 — 23 July 2026
Fixed a conflict at checkout on OpenCart 4.0.2.x: the geo-zone check no longer loads a catalog model missing in that version and no longer blocks selecting a payment or shipping method.
1.0.1 — July 2026
Fixed installation on OpenCart 4.1: the event for charging a hold was registered in the OpenCart 4.0 format, which broke module installation with an error.
1.0.0 — July 2026
First public release: payment on the monobank payment page, webhook confirmation with ECDSA signature verification, test mode, status and geo-zone settings; in Pro — payment log, two-stage payment (hold), refunds, saved cards, auto-fiscalisation event.

Frequently asked questions

Do I need an agreement with monobank to try it?

No. A test token is created for free at api.monobank.ua — you can run through a full payment cycle without an agreement. Real payments need a live token from the merchant dashboard.

Does the module change my checkout or theme?

No. It's a standard OpenCart payment method: it appears in the list of payment options, and the card is entered on monobank's page. The theme and checkout stay unchanged.

What happens after I delete the module?

Standard OpenCart orders aren't affected. Payment history in the cc_mono_order and cc_mono_card tables stays in the database — you can remove it manually if needed.

Can I move the licence to another domain?

Yes. The licence works on one active domain, and you can move it yourself: in the module's settings on the old domain click "Deactivate" — the slot frees up instantly, then activate the same key on the new domain. No extra charge; if you no longer have access to the old site, contact us and we'll free the slot manually.

Does the licence need renewing?

No. For OpenCart the licence is perpetual: one payment, and the Pro features stay with you. Only the 7-day trial ends — after it Pro switches off and the free version keeps working.

Why use hold if you can charge right away?

Hold reserves the customer's money but charges it only after your confirmation. If a product turns out to be out of stock, simply don't confirm and the funds are released with no refund process needed.

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