EasyPay for WooCommerce — Card, Apple Pay and Google Pay Payments
Take WooCommerce payments through EasyPay: card, Apple Pay and Google Pay on a secure page, automatic confirmation by a signed notification with a status check, sandbox. Pro — refunds, hold, payment journal and a choice of payment methods.
What each licence includes
| Feature | Free | Pro |
|---|---|---|
| Payment on the EasyPay page: Visa/Mastercard card, Apple Pay, Google Pay | ✔ | ✔ |
| Automatic order confirmation by a signed EasyPay notification | ✔ | ✔ |
| The payment status is checked with EasyPay, not taken from the notification | ✔ | ✔ |
| Paid amount matched against the order total | ✔ | ✔ |
| Status check when the customer returns to the store | ✔ | ✔ |
| Protection against double charges and repeat payment via the Back button | ✔ | ✔ |
| Sandbox with the public test merchant and a one-click key check | ✔ | ✔ |
| EasyPay reminder about an unpaid order (SMS/Viber) | ✔ | ✔ |
| SecretKey stored encrypted in the database | ✔ | ✔ |
| Classic and block WooCommerce checkout, HPOS compatible | ✔ | ✔ |
| Refunds to the order's card, full and partial | — | ✔ |
| Two-step payment with funds on hold and capture on completion | — | ✔ |
| Payment journal with the EasyPay status and one-click re-check | — | ✔ |
| Choice of payment methods on the EasyPay page | — | ✔ |
EasyPay for WooCommerce is a payment plugin that takes payments through EasyPay: Visa/Mastercard cards, Apple Pay and Google Pay. The customer goes to the secure EasyPay page, pays, and the order in your store confirms itself. EasyPay sends a signed notification, the plugin checks the signature, separately asks EasyPay for the payment status and matches the amount. Only then is the order marked as paid. No need to reconcile payments by hand in the EasyPay dashboard.
The base version is free. Taking payments, automatic confirmation and status reconciliation work without a license and without a time limit. Pro adds refunds to the order’s card, two-step payment with funds on hold, a payment journal and a choice of payment methods on the EasyPay page.
Live demo
You don’t need an EasyPay contract to see the plugin in action. Install the free version and leave “Sandbox” on: the plugin works with the public test merchant from the EasyPay documentation. Place an order in your store and you’ll be sent to a real EasyPay test payment page with your order number and amount. EasyPay lists test cards in its Merchant API documentation.
The “Check keys” button in the settings shows right away that your store’s server can reach EasyPay. No order is created.
What the customer sees


A customer who didn’t finish paying returns to the order payment page and can try again. No new order is needed: the plugin gives EasyPay a new attempt number itself. If you turn on the reminder, EasyPay sends the customer an SMS or Viber message about the unpaid order after 15–20 minutes.
What the admin gets

- “Check keys” sends a signed status request. The plugin names the error precisely: EasyPay doesn’t know the PartnerKey, doesn’t know the ServiceKey, or rejects the signature, meaning a wrong SecretKey. You find out about a problem in the admin, not from a customer.
- Order notes: the EasyPay order number, transaction, decline with the bank’s reason, refund, hold and capture.
- Status after payment: “Processing” or straight to “Completed”.
- Pro payment journal: every EasyPay payment in one list, with the amount, refunds, the EasyPay status next to the order status and the transaction number. The status can be re-checked in one click.


How it works, step by step
- At checkout the customer picks EasyPay and places the order.
- The plugin creates an order in EasyPay: number, amount, description, notification URL and return pages. Every request is signed with your SecretKey.
- The customer pays on the EasyPay page with a card, Apple Pay or Google Pay.
- EasyPay sends a notification to your site. The plugin checks the signature. An unsigned or forged request is rejected and the order stays as it was.
- The plugin asks EasyPay for the status of that payment itself. The notification body is used only to find the order, so a fake request can’t “pay” it.
- The amount is matched against the order total. If less was paid, the order goes to “On hold” with a note to check it, not to “Processing”.
- If the notification is late, the status is also checked when the customer returns to the store. A paid order won’t be left “pending”.
- With Pro in hold mode the funds are only blocked on the card. They are captured when you move the order to “Completed”, and cancelling the order releases them. Handy when the goods need to be packed or stock checked first.
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 come by email. The license term pays for updates and support. When it ends, the Pro features you bought keep working; only new versions stop arriving.
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 needed. The trial never starts by itself: a fresh install is the plain Free version. After the trial only the Pro features switch off, and payments keep working.
Requirements
- WooCommerce 6.0+ with the classic or block checkout, HPOS compatible
- WordPress 6.2+ · PHP 7.4+
- Store currency — Ukrainian hryvnia. EasyPay accepts UAH only, so with any other currency the payment method hides itself and the customer is never charged a wrong amount.
- The site is reachable from the internet over HTTPS, so EasyPay notifications can get through.
- An EasyPay contract for real payments: your EasyPay manager issues the PartnerKey, ServiceKey and SecretKey. Hold mode for the terminal is enabled by EasyPay support.
Under the hood
- Signatures both ways: base64(SHA-256) of the SecretKey and the request body. Notifications with a wrong signature are rejected.
- The status comes from EasyPay (orderState), not from the notification. Optionally, notifications can be accepted from EasyPay IP addresses only.
- Double-charge protection: the notification and the customer’s return arrive at the same time but are processed one after another under a lock. “Payment received” is recorded once even with several parallel notifications. A customer who hits “Back” after paying won’t create a second order in EasyPay.
- Unique order numbers for EasyPay: a store prefix, plus a -2, -3 suffix for a repeat attempt. If a number is already taken, the plugin picks the next one itself.
- Refunds without overpaying (Pro): before refunding, the plugin asks EasyPay how much can still be refunded. Refunds made in the EasyPay dashboard are counted too.
- The SecretKey is stored encrypted, and saving the settings again doesn’t corrupt it, even with special characters.
- A Pro gate that doesn’t brick the store: when the trial ends, only the Pro features stop, and taking payments doesn’t break.
How to install
- Plugins → Add New → Upload Plugin: choose
easypay-for-woocommerce-1.0.0.zipand activate. - Open WooCommerce → Settings → Payments → EasyPay and enable the payment method.
- To test, leave “Sandbox” on and click “Check keys”.
- For real payments turn the sandbox off, enter the PartnerKey, ServiceKey and SecretKey from EasyPay, save and click “Check keys” again. The plugin sends the notification URL with every order itself, nothing needs setting up in the EasyPay dashboard.
- For Pro: paste the license key from the email you get after payment, or start the 7-day trial.
Version history
- 1.0.0 — September 2026
- First release: EasyPay order with a redirect to the payment page (card, Apple Pay, Google Pay), signed notifications with a repeat status check in EasyPay, amount matching, status check when the customer returns, sandbox with the public test merchant, key check, EasyPay reminder about an unpaid order, classic and block checkout, HPOS. Pro: full and partial refunds from the admin, two-step payment (hold), payment journal, choice of payment methods on the EasyPay page.
Frequently asked questions
Do I need a contract with EasyPay?
For real payments, yes. For testing, the sandbox with EasyPay's public test merchant is enough — it's a single checkbox.
Which currencies are supported?
Only Ukrainian hryvnia. If the store currency is different, the EasyPay payment method isn't shown and the customer is never charged a wrong amount.
The customer paid, but the order is still "pending".
Check that the site is reachable over HTTPS and that "Check keys" shows success. The status is picked up when the customer returns to the store, and with Pro — from the journal in one click.
Do card details pass through my site?
No. The card is entered on the EasyPay page; your server only receives a signed notification.
What if I don't want to pay for Pro?
Taking payments, automatic confirmation and status reconciliation 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.
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
—