Get in touch
Payments · OpenCart

Instalment Payments — PrivatBank, monobank and A-Bank for OpenCart 2.3, 3 and 4

Покупець ділить замовлення на 2–25 щомісячних платежів на сторінці ПриватБанку, а магазин отримує всю суму одразу. Безкоштовна версія приймає оплати з перевіркою підпису, звіркою статусу з банком і тестовим режимом; Pro додає журнал заявок, вибір кількості платежів покупцем і резерв із підтвердженням.

Download for free
Version
v1.2.0 (OpenCart 4)
v1.2.0 (OpenCart 3.x)
v1.2.0 (OpenCart 2.3)
Compatibility
OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 та 4.0.2 – 4.1.x
Platform
OpenCart
Instalment Payments — PrivatBank, monobank and A-Bank for OpenCart 2.3, 3 and 4

What each licence includes

Feature Free Pro
Three banks in one payment method: PrivatBank, monobank and A-Bank
A-Bank: 2–24 payments, approval in the Abank24 app
A-Bank: delivery confirmation, cancellation and returns
The shopper picks the bank themselves at checkout
Privatbank: programmes II, PP, IA and PB — matched to your agreement
Privatbank: 2–25 payments, bank page with confirmation
monobank: 3–25 payments, confirmation in the app with no redirect
monobank: a waiting page brings the order to success on its own
A hint of "approximately N UAH a month" from the order total
The shopper chooses the number of payments at checkout
Signature verification for every notification from both banks
Status double-checked with the bank, rather than trusting the notification
Separate order statuses: awaiting, paid, reserved, declined
A repeated notification doesn't duplicate anything
A paid order can't be sent to the bank a second time
Privatbank: reserve with confirmation — the bank holds it, you charge it
monobank: manual confirmation of goods handed over, or by status
monobank: full and partial refunds from the log
Application log for both banks
Test modes on both banks' public sandboxes
No ionCube, no changes to core files

Instalment Payments with PrivatBank, monobank and A-Bank adds a single payment method to OpenCart in which the buyer picks the bank themselves. PrivatBank takes them to its own page and offers 2–25 instalments; monobank does not redirect anywhere — a push notification in the app, a confirmation, and the buyer is already on the thank-you page. In both cases the shop receives the full amount at once. There are three builds: for OpenCart 4.0.2 – 4.1.x, 3.0.2 – 3.0.5.0 and 2.3.0.x; the functionality is identical, only the package differs.

What it looks like for the shopper

“Privatbank Instalment Payment” appears in the list of payment methods. Next to it, the approximate monthly amount is shown — calculated from the order total including delivery, not from the product price alone. After confirming, the shopper lands on the bank’s page, logs into Privat24 and arranges the instalment plan; the result is returned to the shop.

The payment method is only shown when the bank will actually accept it: an order total within 300–50,000 UAH, in hryvnia. If the cart falls outside those bounds, the method doesn’t appear at all — the shopper doesn’t waste time on a payment the bank would reject.

Instalment payment at OpenCart checkout: choosing the number of payments and the monthly amount
Checkout: the shopper picks the number of payments and immediately sees the monthly amount.
Privatbank page with order line items and the instalment total
The Privatbank page with order line items and the total — test mode.

monobank: confirmation in the app

With monobank the buyer splits the order into 3–25 payments and confirms the purchase right in the app, without going to the bank’s page. Meanwhile the shop shows a waiting page that carries the order to its final status on its own — the buyer does not have to refresh anything by hand.

The signature of every notification from both banks is verified, and after that the status is checked against the bank again: the decision is made from the API response, not from whatever arrived on the webhook. A repeated notification duplicates nothing, and an order that has already been paid cannot be sent to the bank a second time.

A-Bank: instalments confirmed in Abank24

The third bank works like monobank: the buyer picks A-Bank, enters their phone number and approves the request in the Abank24 app. The shop waits on its own page and completes the order by itself, and if the number is not an A-Bank customer or the request is declined, the buyer sees a clear reason right away.

A-Bank does not sign its notifications, so the module treats them only as a signal: on each notification it asks the bank for the application status itself and changes the order only based on that answer. A forged “paid” request changes nothing.

A-Bank instalments option at OpenCart checkout
OpenCart 4 checkout on a phone: A-Bank next to PrivatBank and monobank.

The bank programme is yours

In the settings you choose the programme your agreement covers: II — instant instalment, the shop pays the fee; PP — payment by instalments, the shopper pays the fee; IA and PB — the bank’s promotional variants. You also set a default number of payments, and in Pro, an upper limit within which the shopper picks the term themselves at checkout.

Verify first, then set the status

The bank reports the outcome two ways: a notification to your site, and the shopper’s return. The module doesn’t take either on trust — every notification is verified by its signature, and after the shopper returns, the application’s status is additionally requested from the bank. So a forged notification can’t mark an order as paid, and a lost one can’t leave a paid order stuck “awaiting payment”.

Order statuses are configured separately: awaiting payment, paid, amount reserved, declined. A repeated notification doesn’t duplicate anything, and an already-paid order can’t be sent to the bank a second time.

Reserve with confirmation

If a product still needs checking in stock, turn on reserve: the bank holds the amount and only charges it once you move the order to “paid” or click “Charge” in the log. If you don’t confirm, the reserve is released and the shopper pays nothing.

Application log

Every application is stored: the order, the bank’s application number, the amount, the number of payments, the bank’s status and message. From the log you can refresh the status from the bank, charge or cancel the reserve — without going into Privat24.

Instalment payment application log with bank statuses
Application log: bank status, application number, and actions to charge or cancel the reserve (Pro).

Test mode

Turn on test mode, and applications go to Privatbank’s official test shop from the documentation. No real funds are taken and no agreement is required, but the whole path — creating the application, the bank page, notifications, statuses — is walked through in full. Handy for checking the integration before you’ve even signed the agreement with the bank.

What’s included in the licence

The licence is issued for one domain and is perpetual. A single purchase covers all three OpenCart branches — 2.3.0.x, 3.0.2 – 3.0.5.0 and 4.0.2 – 4.1.x — so moving the shop to a new version costs nothing extra. The code is open, ionCube isn’t required, and no core files are changed.

The free version accepts payments in full: the same signature check, the same statuses and the same test mode. Pro adds the application log with reserve confirmation and cancellation, the shopper’s choice of number of payments, and reserve mode.

Settings for the Privatbank Instalment Payment module in the OpenCart admin
Module settings: bank programme, number of payments, amount bounds and order statuses.

Technical requirements

OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 or 4.0.2 – 4.1.x, PHP 7.0 – 8.3, cURL, a “Payment by Instalments” or “Instant Instalment” agreement with Privatbank (no agreement needed for test mode). Installation is standard: Admin → Extensions → Installer → Upload, then activation in the list of payment methods.

Why a shop needs this

Privatbank’s “Payment by Instalments” is the most familiar way for a Ukrainian shopper to buy something pricier than they’d planned today. The shop, meanwhile, receives the full amount straight away and extends no credit itself.

The complexity isn’t in the button itself, but in what happens after it: the bank’s notification might not arrive, the shopper might close the tab, and the order still needs to close correctly in any of these scenarios.

How it works, step by step

1. The shopper chooses “Payment by Instalments” and the number of payments.

2. The module creates an application and sends the shopper to the bank’s page.

3. The bank returns the result; the module verifies the signature, then double-checks the status with a request to the bank — and only then changes the order.

4. With reserve and confirmation, the bank holds the amount, and you charge it — once the item is actually shipped.

5. Everything that happened is recorded in the application log.

Price

The licence costs 1,490 UAH, for one domain. The licence is perpetual: you pay once, with no annual fees.

Under the hood

Only a result double-checked with the bank changes the order status — for the module, a notification is a signal to “go and check”, not a command. That’s exactly why an order closes correctly even when the notification gets lost.

A repeated notification is processed once, and an already-paid order can’t be sent to the bank a second time.

How to install

1. Upload the archive via “Extensions → Installer” and install the module.

2. Enter the shop ID and password from your agreement, and choose the programme.

3. Turn on test mode and run an order through the bank’s sandbox.

4. Turn test mode off — you’re ready to accept payments.

Version history

1.2.0 — A-Bank instalments added as the third bank in every build (OpenCart 4, 3 and 2.3): application approved in Abank24, waiting page, status reconciliation with the bank, a separate phone field. Pro adds delivery confirmation (manual or on an order status), cancellation and returns for A-Bank. The checkout method title now lists only the enabled banks.

1.1.0 — Privatbank instalment payment with a choice of number of payments, signature verification, status double-check with the bank, reserve with confirmation, application log, test mode on the bank’s sandbox.

Frequently asked questions

Do I need a separate agreement with the bank?

Yes. For Privatbank — a "Payment by Instalments" or "Instant Instalment" agreement (the bank issues a shop ID and password); for monobank — a "Purchase by Instalments" agreement (store ID and secret key). No agreement is needed for test mode: both banks have public sandboxes.

How is monobank different from Privatbank at checkout?

Privatbank redirects the shopper to its own page. monobank doesn't redirect anywhere: the shopper gets a push notification in the app, while the shop shows a waiting page that brings the order to success on its own as soon as the bank responds.

When does the shop get the money for monobank?

Right after the application is approved — the bank charges the first payment and the full amount is paid out to the shop. The instalment plan becomes active once the shop confirms the goods were handed over: with a button in the log, or automatically based on a chosen order status.

Who pays the bank's fee?

For Privatbank it depends on the programme: in II and IA — the shop; in PP and PB — the shopper. For monobank the shop always pays the fee, and the shopper pays no interest.

What happens if the bank's notification doesn't arrive?

The module doesn't rely on the notification: after the shopper returns (Privatbank) or while waiting (monobank), it requests the application's status from the bank itself, so a paid order won't stay stuck "awaiting payment".

Can someone forge a notification and get an order marked "paid"?

No. Privatbank signs notifications with the shop's password, monobank with HMAC-SHA256 using the secret key. With an invalid signature, the notification is rejected with a 400 code and changes nothing.

Does it work with amounts over 50,000 UAH?

Not for Privatbank — that's the bank's own limit, and the module simply doesn't show that bank. monobank has no upper limit; the bank sets the limit for a particular shopper.

Is one licence enough for 2.3, 3.x and 4.x?

Yes, the licence includes builds for all three OpenCart branches, and both banks in each.

How does A-Bank work?

The buyer enters a phone number and approves the request in the Abank24 app while the shop waits on its own page. You need an A-Bank instalments contract (store ID, secret key, point of sale). A-Bank notifications are not signed, so the module changes the order only based on the bank's answer to a status request.

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