Get in touch
  • WordPress
  • Payments
  • v1.0.2

iPay.ua for WooCommerce — card payments via internet acquiring

Accept card payments in WooCommerce through iPay.ua: secure payment page, automatic confirmation with status double-check, background reconciliation, sandbox. Pro — refunds, pre-authorisation, fiscal receipts and a payment log.

Download Free
Pro · one-year licence The more sites, the less each one costs
Compatibility
WooCommerce 6.0+ · WordPress 6.2+ · PHP 7.4+
Licence
two sites, annual
Trial
7 days, no card, one per site
Updated
23.09.2026
Or all 178 Pro modules with All Access — 4 990 ₴ / year

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Visa / Mastercard card payments on the secure iPay.ua page ✔ ✔
Automatic order confirmation: every notification is double-checked with a Status request to iPay.ua ✔ ✔
Paid amount checked against the order total — underpayment doesn't go through ✔ ✔
Status reconciliation on the customer's return and in the background every 10 minutes ✔ ✔
Protection against double payment and a repeat payment via the "Back" button ✔ ✔
Sandbox at sandbox-checkout.ipay.ua and a one-click credentials check ✔ ✔
Payment page language follows the site language, store name, payment link lifetime ✔ ✔
Classic and block WooCommerce checkout, HPOS compatible ✔ ✔
Refunds from the order screen: Reversal on the payment day, full and partial Refund — ✔
Pre-authorisation: capture on "Completed", release on "Cancelled" — ✔
Fiscal receipts (PRRO) through iPay.ua with a link in the order — ✔
Payment log with the iPay.ua status and one-click reconciliation — ✔

What it looks like

iPay.ua payment method at WooCommerce checkout
Checkout gets a “Card payment (iPay.ua)” option. It works in both the classic and the block WooCommerce checkout, on phones too. The screenshots show the Ukrainian interface of our test store.
Order received page after paying through iPay.ua
After paying on the iPay.ua page, the customer is automatically returned to the store’s “Order received” page. The plugin takes the payment page language (Ukrainian, Russian, English) from the site language, and you set the store name in the settings.
iPay.ua settings in WooCommerce
WooCommerce → Settings → Payments → iPay.ua: sandbox, Merchant ID and signing key separately for test and live modes, a “Check credentials” button, payment link lifetime, order status after payment and the Pro settings.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • WooCommerce 6.0+ with the classic or block checkout, HPOS compatible
  • WordPress 6.2+ · PHP 7.4+
  • Store currency — Ukrainian hryvnia (UAH). With any other currency the payment method hides itself, so the customer is never charged the wrong amount.
  • A contract with iPay.ua and Checkout API credentials: mch_id and sign_key. Sandbox test credentials are also issued by iPay.ua.
  • For pre-authorisation — pre-authorisation mode enabled for your merchant in iPay.ua. For fiscal receipts — a cashier and a cash register connected in iPay.ua. For refunds on later days — access to Refund, which iPay.ua grants on request.

Version history

v1.0.2 Current 23.09.2026

The fiscal receipt can no longer exceed the amount charged.

v1.0.1 18.09.2026

Stored access keys are now encrypted with AES-256-CBC and HMAC instead of the old XOR obfuscation, which some hosting antivirus scanners flagged and deleted.

v1.0.0 First release September 2026

IPay.ua payment creation with a redirect to the payment page, HMAC-SHA512 signed requests, notifications double-checked through Status, reconciliation on the customer’s return and in the…

Frequently bought with iPay.ua for WooCommerce

4 modules in one order — 40% cheaper than separately

“Store starter” bundle iPay.ua Nova Poshta Premium Mono Acquiring Telegram notifications and Viber/SMS for customers Need more — all 178 modules in All Access for 4 990 ₴.
2 390 ₴ / year instead of 4 060 UAH bought separately
Buy the bundle →

Full module description

iPay.ua for WooCommerce is a payment plugin that accepts card payments through iPay.ua internet acquiring (Checkout API). The customer goes to the secure iPay.ua page, pays with a Visa or Mastercard card, and the order in your store confirms itself. The plugin doesn’t take a notification at its word: for every one it separately asks iPay.ua for the payment status and checks the amount, so nobody can “pay” an order with a forged request.

What the customer sees

If the payment fails, the customer clicks “Return to the site” and lands on the order payment page with an explanation and the option to try again or pick another method. The order isn’t lost.

What the admin gets

  • “Check credentials” — the plugin sends a signed status request for a non-existent payment. iPay.ua confirms valid credentials and rejects invalid ones, and no payment is created.
  • Sandbox at sandbox-checkout.ipay.ua with the test cards from the iPay.ua documentation — you test the integration before real money moves.
  • Notification URL is shown at the bottom of the settings — send it once to your iPay.ua manager, because iPay.ua configures the notification address on its side.
  • Order status after payment is your choice: “Processing” or straight to “Completed”.

How it works, step by step

  1. At checkout the customer picks “Card payment (iPay.ua)” and places the order.
  2. The plugin creates a payment in iPay.ua (PaymentCreate) with the amount in kopecks, the description “Order No. …”, a unique ext_id and return links. The request is signed with your key using HMAC-SHA512.
  3. The customer pays on the secure iPay.ua page. Card data never passes through your site.
  4. iPay.ua sends a notification. The plugin checks the signature and then makes a separate Status request to iPay.ua for the real payment state — and only then updates the order. The amount from iPay.ua is compared with the order total: if less was paid, the order goes “On hold” with a note.
  5. The customer returns to the store — the status is checked once more, so “Order received” only appears when the money has actually arrived.
  6. Background reconciliation every 10 minutes picks up payments whose notification never arrived: for example, while iPay.ua hasn’t yet connected your notification URL.
  7. With Pro refunds are made right from the order screen: on the payment day as a cancellation (Reversal), on later days as a refund (Refund), full or partial.

Under the hood

  • A notification is only a trigger. The Checkout API signature covers only the “salt”, not the notification body, so the plugin never takes the status from the request body: the order changes only on iPay.ua’s answer to a Status request. An intercepted and altered notification pays for nothing.
  • Double-payment protection. The notification, the customer’s return and the background reconciliation can arrive in the same second — an atomic lock guarantees a single “payment received” note and a single stock reduction. The “Back” button after paying doesn’t create a second payment.
  • Final statuses never roll back: a late “failed” response won’t turn a paid order into an unpaid one.
  • The signing key is stored encrypted in the database, and re-saving the settings doesn’t corrupt it, even when the key contains special characters.
  • The fiscal receipt adds up to the kopeck: lines are built from order line totals with discounts, shipping and fees, and the rounding difference is accounted for explicitly.
  • Safe XML parsing with no external entities and no network requests.
  • A Pro gate that doesn’t brick the store: when the trial ends, only the Pro features stop and accepting payments keeps working; after a paid license term ends, Pro keeps working and only updates and support stop.

How to install

  1. Plugins → Add New → Upload Plugin: choose ipay-ua-for-woocommerce-1.0.2.zip and activate it.
  2. Open WooCommerce → Settings → Payments → iPay.ua.
  3. For testing, enable “Sandbox” and enter the test Merchant ID and signing key from iPay.ua. Save and click “Check credentials”.
  4. Copy the notification URL from the bottom of the settings page and send it to your iPay.ua manager.
  5. For real payments, disable the sandbox, enter the live Merchant ID and signing key, save and check the credentials again.
  6. For Pro: paste the license key from the email you get after payment into the license field, or start the 7-day trial.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Do I need a contract with iPay.ua?

Yes. iPay.ua issues both live and test credentials (mch_id and sign_key).

Which currencies are supported?

Ukrainian hryvnia. If the store currency is different, the iPay.ua payment method isn't shown, so the customer is never charged the wrong amount.

The customer paid, but the order is still "Pending payment".

Background reconciliation will pick up the payment within 10 minutes. If it keeps happening, check that iPay.ua has connected the notification URL from the plugin settings.

Does card data pass through my site?

No. The card is entered on the iPay.ua page, and the plugin double-checks every payment notification with a request to iPay.ua.

What if I don't want to pay for Pro?

Accepting payments, automatic confirmation, background reconciliation and the sandbox are free with no time limit.

Not quite what you are looking for?

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

Order a custom module