Mono Acquiring — monobank card payments for OpenCart 2.3, 3.x and 4.x
Еквайринг monobank для OpenCart 4: оплата карткою на сторінці банку, автопідтвердження замовлення вебхуком з ECDSA-підписом, тестовий режим без договору. Pro — журнал, hold, повернення, картка в 1 клік, автофіскалізація.
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.




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
- At checkout, the customer chooses monobank card payment and confirms the order.
- 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.
- 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. - 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.
- 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_orderandcc_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
- Upload
mono_acquiring.ocmod.zipvia Extensions → Installer in the OpenCart admin. For 3.0.x takemono_acquiring-oc3.ocmod.zip, for 2.3 takemono-oc2.ocmod.zipand upload theupload/folder’s contents to the store root over SFTP. - 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.
- Open the settings, paste the token (test or live) and click “Test token” — you’ll see your merchant name.
- Choose the payment type (charge immediately or hold), the order statuses, and save.
- The module shows the webhook URL in its settings and passes it to the bank automatically when creating an invoice.
- 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.
No reviews yet. Be the first — right below.
Leave a review
Reviews are moderated before publication, which usually takes up to 24 hours.
No questions yet. Ask one — we answer within 24 hours.
Ask a question
We usually reply within 24 hours during working hours.
Buying the module
—