Get in touch
Payments · WordPress

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 for free
Version
v1.0.0
Compatibility
WooCommerce 6.0+ · WordPress 6.2+ · PHP 7.4+
Platform
WordPress
iPay.ua for WooCommerce — card payments via internet acquiring

What each licence includes

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

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.

The base version is free. Accepting payments, automatic confirmation, background status reconciliation and the sandbox work without a license and with no time limit. Pro adds refunds from the order screen, capturing and releasing pre-authorised payments, fiscal receipts through iPay.ua and a payment log.

What the customer sees

iPay.ua payment method at WooCommerce checkout on a phone
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.

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

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.
WooCommerce order with iPay.ua payment details
Every order shows the iPay.ua payment ID, its status, the masked card and a link to the receipt, and the order notes keep the history: payment created, paid, refunded.
iPay.ua Pro payment log
Pro payment log: all iPay.ua payments in one list — amount, status in iPay.ua and order status, card, receipts and fiscal receipts, one-click status reconciliation.
  • “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.

Pricing

890 UAH — a one-year license. A year of updates, support and all Pro features.

You can take a longer term straight away — the longer it is, the cheaper it works out per year:

  • 1 year — 890 UAH
  • 2 years — 1,690 UAH (−5%, 845 UAH per year)
  • 3 years — 2,350 UAH (−12%, 783 UAH per year)
  • 4 years — 2,920 UAH (−18%, 730 UAH per year)
  • 5 years — 3,340 UAH (−25%, 668 UAH per year)

No auto-charges: renewal is manual, and reminders arrive by email. When the term expires, only the Pro features switch off, and accepting payments keeps working.

One key covers one domain. If you move the store, deactivate the license on the old domain and activate it on the new one.

Trial first, payment after. A free 7-day Pro trial is switched on with a button in the plugin settings, no card required. The trial never starts by itself: a fresh install is a clean Free version.

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.

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 or license ends, only the Pro features stop, and accepting payments keeps working.

How to install

  1. Plugins → Add New → Upload Plugin: choose ipay-ua-for-woocommerce-1.0.0.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.

Version history

1.0.0 — September 2026
First release: 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 background every 10 minutes, underpayment and double-payment protection, sandbox and credentials check, classic and block checkout, HPOS, Ukrainian translation. Pro: refunds (Reversal / Refund, partial), pre-authorisation with capture and release, fiscal receipts through iPay.ua, payment log.

Frequently asked questions

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.

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