LiqPay — Card Payments for OpenCart 2.3, 3.x and 4.x
Приймання оплати карткою Visa/Mastercard, Apple Pay та Google Pay через LiqPay в OpenCart. Автопідтвердження замовлення serviceUrl-вебхуком з перевіркою HMAC-MD5-підпису. Pro — журнал платежів, двоетапна оплата і повернення з адмінки.
What each licence includes
| Feature | Free | Pro |
|---|---|---|
| Card payment via Visa/Mastercard, Apple Pay, Google Pay through the LiqPay page | ✔ | ✔ |
| Order auto-confirmation via a serviceUrl webhook with HMAC-MD5 signature verification | ✔ | ✔ |
| Transaction status reconciliation when the customer returns (Status API) | ✔ | ✔ |
| Test mode on sandbox keys — a full test payment before signing the contract | ✔ | ✔ |
| The private key is stored encrypted in the database | ✔ | ✔ |
| UAH, USD, EUR currencies; status and geo-zone settings | ✔ | ✔ |
| Request logging to the OpenCart log | ✔ | ✔ |
| Payment log — status, amount, masked card, transaction number; one-click reconciliation | — | ✔ |
| Two-stage payment — AUTH hold and SETTLE capture when the order is fulfilled | — | ✔ |
| Refunds — full and partial, straight from the log | — | ✔ |
LiqPay for OpenCart is a payment module that accepts card payments (Visa/Mastercard, Apple Pay and Google Pay) through the secure LiqPay payment page. Once the customer pays, LiqPay sends a signed serviceUrl webhook, the module verifies the HMAC-MD5 signature and moves the order to the correct status itself. There’s no manual “paid or not” reconciliation — the status only changes once the money has actually gone through.
The base version is free. Download: liqpay.ocmod.zip (OpenCart 4.x) or liqpay-oc3.ocmod.zip (OpenCart 3.x). Free covers card payment acceptance and webhook-based order auto-confirmation; Pro adds a payment log with status reconciliation, two-stage payment (AUTH + SETTLE), and full and partial refunds straight from the admin panel.
What the admin gets



How it works — step by step
- At checkout the customer chooses “Card payment (LiqPay)” and confirms the order.
- The module builds a signed request and redirects the customer to the secure LiqPay payment page — card, Apple Pay or Google Pay. Card details are entered on LiqPay’s side and never reach your store.
- After payment, LiqPay sends a serviceUrl webhook to the
extension/liqpay/payment/liqpay.callbackroute. The module verifies the HMAC-MD5 signature against the raw request body and sets the order to the chosen “paid” status. - When the customer returns to the store, the status is additionally reconciled via the Status API — the order is only completed if the transaction genuinely succeeded.
- With Pro: under the two-stage scheme, funds are only held (AUTH), and captured (SETTLE) automatically once you move the order to the “paid” status. Refunds — full or partial — are issued from the payment log.
Pricing
1,490 UAH — one-off purchase. The licence is perpetual: you pay once, and updates and technical support are included in the price. One key covers 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 covers one domain; if you move your store, deactivate the licence on the old domain and activate it on the new one yourself.
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 after. 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 settings, enter your email and get a 7-day key (also sent by email). That means you can check the transaction log, AUTH/SETTLE and refunds on your own store before buying — which is exactly why refunds after purchase aren’t offered.
Installation
- Admin panel → Extensions → Installer → upload
liqpay.ocmod.zipand click “Install”. - Admin panel → Extensions → Payment → find LiqPay and click “+” (this creates the module’s table, event and permissions).
- Click “Edit”: enable the module, enter the keys from your LiqPay account. For testing, leave “Test mode” on and enter a pair of keys with the
sandbox_prefix. - There’s no need to register a webhook URL in your LiqPay account — the module passes it with every payment.
Technical requirements
- OpenCart 3.0.2 – 3.0.5.0 (the
liqpay-oc3.ocmod.zipbuild) or 4.0.2 – 4.1.x (theliqpay.ocmod.zipbuild) - PHP 7.4+
- LiqPay public and private key — from your LiqPay account; testing requires a separate pair of
sandbox_keys
Under the hood
- The signature is verified against the raw request body — OpenCart HTML-escapes POST data, so the webhook reads `php://input` directly; otherwise the signature wouldn’t match.
- Double payment verification: a signed webhook plus a Status API reconciliation when the customer returns.
- Idempotency — a repeated webhook doesn’t change the status a second time and doesn’t downgrade an already-confirmed order.
- The private key is encrypted with a key derived from the store’s path and database name — settings copied to another site won’t decrypt.
LiqPay is a trademark of JSC CB “PrivatBank”. This module is an independent integration and is not affiliated with LiqPay or PrivatBank.
Version history
- 1.0.4 — 2 August 2026
- Fixed an underpayment issue: a callback for an amount less than the order total is no longer stored as a successful payment — the order stays unpaid with an underpayment note, and the next callback for the full amount correctly moves it to “Paid”. The licence now survives catcode.com.ua being unreachable: a network error is no longer treated as an “invalid key” response, so Pro doesn’t switch off during an outage (the 14-day grace period finally works). Partial refunds in the log are now totalled cumulatively — the remaining balance is correct after several refunds. The trial only starts on your own click; a fresh install is a clean free version.
- 1.0.1 — 23 July 2026
- Fixed a checkout conflict on OpenCart 4.0.2.x: the geo-zone check no longer loads a catalog model missing in that version and no longer blocks the payment method selection.
- 1.0.0 — July 2026
- First public release.
Frequently asked questions
What do I need to connect it?
The public and private keys from your LiqPay account. Enter them in the payment method settings in the OpenCart admin panel — and your store accepts cards.
Is the order confirmed automatically?
Yes. LiqPay sends a signed webhook to the serviceUrl, the module verifies the HMAC-MD5 signature and moves the order to the paid status only once the payment has actually gone through.
Does the module work on OpenCart 3?
Yes, two builds are included: one for OpenCart 3.0.2 – 3.0.5.0 and one for 4.0.2 – 4.1.x.
How does Pro differ from the free version?
Free accepts payments and confirms orders automatically. Pro adds a payment log with status reconciliation, two-stage payment, and refunds straight from the admin panel.
Are you affiliated with LiqPay or PrivatBank?
No, this is an independent CatCode module built on the public LiqPay API. There is no affiliation with LiqPay or PrivatBank.
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
—