{"id":370268,"date":"2026-09-23T11:14:48","date_gmt":"2026-09-23T11:14:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/catcode-card-payments-with-easypay-for-woocommerce\/"},"modified":"2026-09-23T11:14:17","modified_gmt":"2026-09-23T11:14:17","slug":"catcode-card-payments-with-easypay-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/catcode-card-payments-with-easypay-for-woocommerce\/","author":23504569,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"CatCode Card Payments with EasyPay for WooCommerce","header_author":"CatCode","header_description":"Accept card, Apple Pay and Google Pay payments through the EasyPay payment page: the order is confirmed by a signed notification and re-checked with EasyPay, the status is reconciled when the buyer returns, sandbox with the public EasyPay test merchant.","assets_banners_color":"798ba7","last_updated":"2026-09-23 11:14:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/catcode.com.ua\/modules\/easypay-for-woocommerce\/","header_author_uri":"https:\/\/catcode.com.ua","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"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":"catcodestudio","date":"2026-09-23 11:14:17","revision":3709163}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3709176,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3709176,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3709176,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3709176,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[48566,232007,274662,133922,6593],"plugin_category":[],"plugin_contributors":[271712],"plugin_business_model":[],"class_list":["post-370268","plugin","type-plugin","status-publish","hentry","plugin_tags-apple-pay","plugin_tags-232007","plugin_tags-274662","plugin_tags-easypay","plugin_tags-payment-gateway","plugin_contributors-catcodestudio","plugin_committers-catcodestudio"],"banners":{"banner":"https:\/\/ps.w.org\/catcode-card-payments-with-easypay-for-woocommerce\/assets\/banner-772x250.png?rev=3709176","banner_2x":"https:\/\/ps.w.org\/catcode-card-payments-with-easypay-for-woocommerce\/assets\/banner-1544x500.png?rev=3709176","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/catcode-card-payments-with-easypay-for-woocommerce\/assets\/icon-128x128.png?rev=3709176","icon_2x":"https:\/\/ps.w.org\/catcode-card-payments-with-easypay-for-woocommerce\/assets\/icon-256x256.png?rev=3709176","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>An independent WooCommerce payment gateway for EasyPay (easypay.ua, Ukraine), built on the EasyPay Merchant API. The buyer is sent to the secure EasyPay payment page, and the order is confirmed automatically once EasyPay reports the payment.<\/p>\n\n<p>EasyPay is a third-party product; this plugin is an independent integration, not affiliated with or endorsed by EasyPay. You need your own EasyPay merchant account to accept live payments.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Creates an EasyPay order and sends the buyer to the EasyPay payment page: Visa\/Mastercard, Apple Pay and Google Pay \u2014 whatever is connected for your merchant. Card data never touches your site.<\/li>\n<li>Confirms the order from the EasyPay notification: the <code>Sign<\/code> header is verified, and the payment status is then requested from EasyPay itself before the order is marked paid.<\/li>\n<li>Reconciles the status when the buyer returns to the shop, in case the notification is late.<\/li>\n<li>Guards against double charging: the browser \"Back\" button after a payment, a notification racing the buyer's return, and a paid amount lower than the order total.<\/li>\n<li>Sandbox with the public EasyPay test merchant from the EasyPay documentation \u2014 test the whole flow without a contract.<\/li>\n<li>\"Check keys\" button that verifies PartnerKey, ServiceKey and the signature without creating an order.<\/li>\n<li>Optional EasyPay reminder about an unpaid order (SMS or Viber) to the buyer's phone.<\/li>\n<li>Optional filter that accepts notifications only from the EasyPay IP addresses.<\/li>\n<li>SecretKey stored encrypted; classic and block checkout; HPOS compatible.<\/li>\n<\/ul>\n\n<h4>\u041e\u043f\u0438\u0441 \u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u043e\u044e<\/h4>\n\n<p>\u041f\u043b\u0430\u0442\u0456\u0436\u043d\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c EasyPay \u0434\u043b\u044f WooCommerce: \u043e\u043f\u043b\u0430\u0442\u0430 \u043a\u0430\u0440\u0442\u043a\u043e\u044e Visa\/Mastercard, Apple Pay \u0456 Google Pay \u043d\u0430 \u0437\u0430\u0445\u0438\u0449\u0435\u043d\u0456\u0439 \u0441\u0442\u043e\u0440\u0456\u043d\u0446\u0456 EasyPay. \u0417\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0443\u0454\u0442\u044c\u0441\u044f \u043f\u0456\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u043c \u0441\u043f\u043e\u0432\u0456\u0449\u0435\u043d\u043d\u044f\u043c, \u0430 \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u043f\u043b\u0430\u0442\u0438 \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u044f\u0454\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0438\u0442\u043e\u043c \u0434\u043e EasyPay. \u0404 \u043f\u0456\u0441\u043e\u0447\u043d\u0438\u0446\u044f \u0437 \u043f\u0443\u0431\u043b\u0456\u0447\u043d\u0438\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u0438\u043c \u043c\u0435\u0440\u0447\u0430\u043d\u0442\u043e\u043c, \u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0438 \u043a\u043b\u044e\u0447\u0456\u0432, \u0437\u0432\u0456\u0440\u043a\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u043f\u0456\u0441\u043b\u044f \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u043f\u043e\u043a\u0443\u043f\u0446\u044f, \u0437\u0430\u0445\u0438\u0441\u0442 \u0432\u0456\u0434 \u043f\u043e\u0434\u0432\u0456\u0439\u043d\u043e\u0457 \u043e\u043f\u043b\u0430\u0442\u0438, \u043a\u043b\u0430\u0441\u0438\u0447\u043d\u0438\u0439 \u0456 \u0431\u043b\u043e\u043a\u043e\u0432\u0438\u0439 \u0447\u0435\u043a\u0430\u0443\u0442, \u0441\u0443\u043c\u0456\u0441\u043d\u0456\u0441\u0442\u044c \u0437 HPOS. \u0412\u0430\u043b\u044e\u0442\u0430 \u2014 \u0433\u0440\u0438\u0432\u043d\u044f (UAH).<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the EasyPay Merchant API (<code>https:\/\/merchantapi.easypay.ua<\/code>), operated by EasyPay (easypay.ua). The connection is required for the gateway to work: without it no payment can be created or verified.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li>When a customer places an order with this gateway: a session request (<code>\/api\/system\/createApp<\/code>, <code>\/api\/system\/createPage<\/code>) with your PartnerKey, then <code>\/api\/merchant\/createOrder<\/code> with your ServiceKey, the EasyPay order number built from the order ID, the amount, the order description (order number and shop name), the return and notification URLs of your site, the customer's e-mail address and \u2014 only if the \"Unpaid order reminder\" option is on \u2014 the customer's phone number.<\/li>\n<li>When EasyPay sends a notification, when the customer returns from the payment page, on the thank-you page and when you press \"Check keys\": <code>\/api\/merchant\/orderState<\/code> with your ServiceKey and the EasyPay order number, to read the current payment status.<\/li>\n<\/ul>\n\n<p>Every request is signed with your SecretKey, which never leaves your server. The customer enters card details on the EasyPay page; card data is never sent to or stored by your site. Nothing is sent to EasyPay unless a payment is started, a status is checked, or you press \"Check keys\".<\/p>\n\n<p>Service provider: EasyPay (easypay.ua).\nPublic offer (terms): https:\/\/cdn.easypay.ua\/marketing\/rules\/public_offer_generalkd__.pdf\nPersonal data processing: https:\/\/cdn.easypay.ua\/docs\/Personal_data_and_use_phone.pdf<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> and activate it (WooCommerce must be active).<\/li>\n<li>Go to WooCommerce \u2192 Settings \u2192 Payments \u2192 EasyPay.<\/li>\n<li>Leave the sandbox on to try it with the EasyPay test merchant (test cards are listed in the EasyPay Merchant API documentation), or turn it off and enter the PartnerKey, ServiceKey and SecretKey issued by your EasyPay manager.<\/li>\n<li>Press \"Check keys\".<\/li>\n<li>The notification URL is sent with every order, so nothing has to be configured in the EasyPay account.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20contract%20with%20easypay%3F\"><h3>Do I need a contract with EasyPay?<\/h3><\/dt>\n<dd><p>For real payments, yes. The sandbox works without one.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>Hryvnia (UAH) only. The gateway hides itself when the store currency is different.<\/p><\/dd>\n<dt id=\"the%20buyer%20paid%20but%20the%20order%20is%20still%20pending.\"><h3>The buyer paid but the order is still pending.<\/h3><\/dt>\n<dd><p>Make sure the site is reachable from the internet over HTTPS and the SecretKey is right (\"Check keys\"). The order is also reconciled when the buyer returns to the shop.<\/p><\/dd>\n<dt id=\"does%20card%20data%20pass%20through%20my%20site%3F\"><h3>Does card data pass through my site?<\/h3><\/dt>\n<dd><p>No. The card is entered on the EasyPay page; the shop receives only a signed notification.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20checkout%3F\"><h3>Does it work with the block checkout?<\/h3><\/dt>\n<dd><p>Yes, both the classic shortcode checkout and the block-based checkout are supported.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Accept card, Apple Pay and Google Pay payments in WooCommerce through the EasyPay payment page, with signed notifications and status re-checks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370268","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=370268"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/catcodestudio"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370268"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370268"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370268"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370268"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370268"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}