{"id":363559,"date":"2026-09-06T18:46:18","date_gmt":"2026-09-06T18:46:18","guid":{"rendered":"https:\/\/uk.wordpress.org\/plugins\/payment-gateway-for-liqpay\/"},"modified":"2026-09-06T21:52:14","modified_gmt":"2026-09-06T21:52:14","slug":"vitaliihura-checkout-for-liqpay","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vitaliihura-checkout-for-liqpay\/","author":23113904,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"VitaliiHura Checkout for LiqPay","header_author":"Vitalii Hura","header_description":"Accept payments in WooCommerce through LiqPay: hosted checkout, refunds and status recovery.","assets_banners_color":"435d53","last_updated":"2026-09-06 21:52:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/vitaliihura\/vitaliihura-checkout-for-liqpay-pb","header_author_uri":"https:\/\/github.com\/vitaliihura","rating":0,"author_block_rating":0,"active_installs":0,"downloads":63,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"vitaliihura","date":"2026-09-06 18:45:44","revision":3683833},"1.0.1":{"tag":"1.0.1","author":"vitaliihura","date":"2026-09-06 21:52:14","revision":3683978}},"upgrade_notice":{"1.0.1":"<p>Text of the plugin page only. Nothing changed in how the plugin works.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3683833,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3683833,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3683833,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3683833,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3683833,"resolution":"1","location":"assets","locale":"","width":2562,"height":2490},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3683833,"resolution":"2","location":"assets","locale":"","width":1882,"height":1880}},"screenshots":{"1":"The settings screen: connection state, the name and description customers see, live and sandbox keys.","2":"What LiqPay is asked to do: the methods on its page, the payment purpose in every site language, the link lifetime and the reference prefix."}},"plugin_section":[],"plugin_tags":[218233,274663,25671,25675,286],"plugin_category":[45],"plugin_contributors":[238949],"plugin_business_model":[],"class_list":["post-363559","plugin","type-plugin","status-publish","hentry","plugin_tags-218233","plugin_tags-274663","plugin_tags-liqpay","plugin_tags-privat24","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-vitaliihura","plugin_committers-vitaliihura"],"banners":{"banner":"https:\/\/ps.w.org\/vitaliihura-checkout-for-liqpay\/assets\/banner-772x250.png?rev=3683833","banner_2x":"https:\/\/ps.w.org\/vitaliihura-checkout-for-liqpay\/assets\/banner-1544x500.png?rev=3683833","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vitaliihura-checkout-for-liqpay\/assets\/icon-128x128.png?rev=3683833","icon_2x":"https:\/\/ps.w.org\/vitaliihura-checkout-for-liqpay\/assets\/icon-256x256.png?rev=3683833","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vitaliihura-checkout-for-liqpay\/assets\/screenshot-1.png?rev=3683833","caption":"The settings screen: connection state, the name and description customers see, live and sandbox keys."},{"src":"https:\/\/ps.w.org\/vitaliihura-checkout-for-liqpay\/assets\/screenshot-2.png?rev=3683833","caption":"What LiqPay is asked to do: the methods on its page, the payment purpose in every site language, the link lifetime and the reference prefix."}],"raw_content":"<!--section=description-->\n<p>A complete LiqPay integration for WooCommerce. Customers pay on the LiqPay page and come back to your shop; the plugin verifies the notification LiqPay sends, updates the order and records the transaction details a shop needs for accounting and support.<\/p>\n\n<p>This plugin is not affiliated with, endorsed by or built by LiqPay or PrivatBank.<\/p>\n\n<h4>What it does<\/h4>\n\n<p>Customers are handed to the LiqPay page and pay there with whatever you have enabled: card, Apple Pay, Google Pay or Privat24. You can narrow that list per shop or leave the choice to your LiqPay account. The credit, QR code, cash and invoice methods LiqPay also offers are not available yet.<\/p>\n\n<p>Refunds work from the WooCommerce order screen, in full or in part. A full refund made inside the LiqPay account is picked up and recorded against the order; LiqPay does not report a partial refund made there, so that one has to be recorded by hand. The order screen shows what was charged, what LiqPay took as commission and how much of it went back.<\/p>\n\n<p>Marketplaces can split a payment between several recipients through a filter.<\/p>\n\n<p>Notifications from LiqPay are verified against your private key, deduplicated, and processed under a per-order database lock, so two notifications arriving at once cannot both change the same order. A confirmation is refused unless it names the currency and an amount that covers the order, and a test-mode payment can never settle a live order. Every status LiqPay documents is recognised, including the ones where the customer still has something to do.<\/p>\n\n<p>If a notification never arrives, the shop asks LiqPay itself the moment the customer lands back on the order received page, and an hourly check covers the customers who never came back. There is also a button on the order screen to do it on demand.<\/p>\n\n<p>Multilingual shops get per-language fields for everything a customer reads: the payment method name, its description and the payment purpose. The language switch appears only when the site actually has more than one language, and an empty translation falls back to the default one. The language list is read from Polylang, WPML or TranslatePress, and the values are resolved from the language of the order rather than the language of whoever is looking at the order, so a customer who bought in English does not find a Ukrainian line on their card statement.<\/p>\n\n<p>Test mode uses a separate key pair and can be limited to shop managers, so you can try it on a live shop without customers seeing the method. The gateway works with High-Performance Order Storage and with both the block based and the classic checkout.<\/p>\n\n<p>The settings screen opens with whether the connection works, which mode the shop is in and when LiqPay last called, and there is a button to check the keys without taking a payment. Settings are grouped by subject with an index beside them, and the screen works on a phone.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WooCommerce 8.2 or newer.<\/li>\n<li>A LiqPay merchant account with a public and private key.<\/li>\n<li>Payments in UAH, USD or EUR, and the merchant account has to be enabled for the one you sell in. LiqPay accepts no other currency.<\/li>\n<\/ul>\n\n<p>Split payments have to be switched on for your merchant account by LiqPay before they work. The plugin surfaces the error LiqPay returns when a feature is not available.<\/p>\n\n<h4>Development<\/h4>\n\n<p>The source lives at https:\/\/github.com\/vitaliihura\/vitaliihura-checkout-for-liqpay-pb. Bug reports and patches are welcome there.<\/p>\n\n<h3>Third-Party Services<\/h3>\n\n<p>This plugin connects your shop to LiqPay, a payment service operated by PrivatBank, so that it can process payments. Payments cannot be taken without contacting it.<\/p>\n\n<p>Data is sent to LiqPay only after you enter your own LiqPay API keys and enable the payment method, and only for orders a customer chooses to pay with this method.<\/p>\n\n<p>When a customer pays, the plugin sends to <code>https:\/\/www.liqpay.ua\/api\/3\/checkout<\/code> and <code>https:\/\/www.liqpay.ua\/api\/request<\/code>: your public key, the order reference, the amount, the currency, the payment purpose text, the language, and the return and notification addresses of your site. Depending on the settings you enable, it may additionally send the billing name and address, and the product names and the order link.<\/p>\n\n<p>LiqPay sends back, and the plugin stores on the order, a payment status, its own payment identifiers, the payment method used, a masked card number, the card brand and issuing bank, the acquirer identifier, the authorisation code, the retrieval reference number and the commission.<\/p>\n\n<p>Notifications from LiqPay are received at an address on your site and are accepted only when the signature made with your private key matches.<\/p>\n\n<p>Wording you can paste into your own privacy policy is added under Tools, Privacy, Policy Guide. When a customer asks for their data to be removed, the masked card number and the issuing bank are cleared from the order along with the rest of the personal data WooCommerce removes.<\/p>\n\n<ul>\n<li>Service: https:\/\/www.liqpay.ua\/<\/li>\n<li>Terms of use: https:\/\/www.liqpay.ua\/en\/information\/terms<\/li>\n<li>Privacy policy: https:\/\/privatbank.ua\/personal-information<\/li>\n<li>API documentation: https:\/\/www.liqpay.ua\/en\/doc<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to WooCommerce, Settings, Payments and open LiqPay.<\/li>\n<li>Enter the public and private key from your LiqPay merchant account and enable the method.<\/li>\n<li>To try it first, tick Test mode and enter the sandbox key pair. Sandbox keys always begin with <code>sandbox_<\/code>.<\/li>\n<li>Place a test order. The notification address is sent with every payment, so there is nothing to configure on the LiqPay side.<\/li>\n<\/ol>\n\n<p>If another LiqPay plugin is already configured on the site, an offer to copy its keys and settings appears on the WooCommerce settings screen.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20paste%20a%20callback%20url%20into%20my%20liqpay%20account%3F\"><h3>Do I need to paste a callback URL into my LiqPay account?<\/h3><\/dt>\n<dd><p>No. The address is sent with every payment. It is shown under the settings if you need it for troubleshooting.<\/p><\/dd>\n<dt id=\"an%20order%20stayed%20pending%20although%20the%20customer%20paid.\"><h3>An order stayed pending although the customer paid.<\/h3><\/dt>\n<dd><p>Usually it does not get that far. When the customer lands back on the order received page the shop asks LiqPay for the status straight away, so a lost notification is repaired within a second and without anyone noticing. If the customer closed the tab before returning, status recovery picks the order up on its hourly pass. You can also press Refresh from LiqPay on the order screen at any time.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>LiqPay accepts UAH, USD and EUR, and the payment method hides itself when the shop currency is anything else. Whether your own account can take dollars or euro is a matter of your agreement with LiqPay: many accounts are opened for hryvnia alone. If the shop sells in a currency the account does not hold, LiqPay refuses the payment and the reason appears on the order.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20based%20checkout%3F\"><h3>Does it work with the block based checkout?<\/h3><\/dt>\n<dd><p>Yes, and with the classic shortcode checkout.<\/p><\/dd>\n<dt id=\"i%20run%20a%20multilingual%20shop.%20what%20do%20i%20have%20to%20do%3F\"><h3>I run a multilingual shop. What do I have to do?<\/h3><\/dt>\n<dd><p>Nothing beyond filling in the fields. When Polylang, WPML or TranslatePress is active, the title, the description and the payment purpose gain a language switch, and each language gets its own value. Leave a language empty and customers see the default one. The plugin does not register these strings in the string translation screen of your multilingual plugin, so there is only ever one place to edit them.<\/p><\/dd>\n<dt id=\"which%20multilingual%20plugins%20are%20supported%3F\"><h3>Which multilingual plugins are supported?<\/h3><\/dt>\n<dd><p>Polylang, WPML and TranslatePress are read directly for the language list. Weglot and other translation layers that work on the finished page need nothing from the plugin. On a shop with one language nothing changes and no switch appears.<\/p><\/dd>\n<dt id=\"where%20are%20the%20logs%3F\"><h3>Where are the logs?<\/h3><\/dt>\n<dd><p>WooCommerce, Status, Logs. Errors are always recorded. Everything else only while logging is switched on in the settings. Card numbers, tokens and phone numbers are never written to the log.<\/p><\/dd>\n<dt id=\"i%20want%20to%20join%20the%20ukrainian%20national%20cashback%20programme.%20what%20does%20the%20plugin%20do%20for%20it%3F\"><h3>I want to join the Ukrainian national cashback programme. What does the plugin do for it?<\/h3><\/dt>\n<dd><p>Nothing on its own, because the programme is settled between the seller, the tax service and the acquiring bank rather than by the shop software. The plugin's part is the fiscal receipt: switch fiscalisation on so every paid order reaches the LiqPay software cash register.<\/p>\n\n<p>The rest happens outside WooCommerce. The seller has to be on the general taxation system, run a cash register that reports to the tax service daily, and file an application for the sellers list through the Diia portal, signed with a qualified electronic signature. That application asks for the fiscal number of the cash register together with the Merchant ID and the Terminal ID of the bank terminal behind it. LiqPay issues that pair for the virtual terminal of your shop: ask for it in the \"Help Online\" chat of your LiqPay account, registration takes about a day. The fiscal number of the cash register is in the LiqPay account under the cash register menu, trading points.<\/p>\n\n<p>These identifiers belong in that application, not in the shop settings, which is why the plugin does not ask for them.<\/p><\/dd>\n<dt id=\"why%20is%20the%20liqpay%20logo%20not%20included%3F\"><h3>Why is the LiqPay logo not included?<\/h3><\/dt>\n<dd><p>The plugin ships neutral payment marks rather than someone else's trademark. If you want the LiqPay logo at checkout, download it from the LiqPay brand book, upload it to your media library and point the icon setting at it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The description on the plugin page no longer breaks mid sentence.<\/li>\n<li>Tags now match what shop owners actually search for.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Accept card, Apple Pay, Google Pay and Privat24 payments in WooCommerce through the LiqPay payment service.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/363559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=363559"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vitaliihura"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=363559"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=363559"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=363559"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=363559"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=363559"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=363559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}