{"id":359750,"date":"2026-08-26T18:11:48","date_gmt":"2026-08-26T18:11:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/catcode-card-payments-with-mono-for-woocommerce\/"},"modified":"2026-08-26T18:51:11","modified_gmt":"2026-08-26T18:51:11","slug":"catcode-card-payments-with-mono-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/catcode-card-payments-with-mono-for-woocommerce\/","author":23504569,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"CatCode Card Payments with Mono for WooCommerce","header_author":"CatCode","header_description":"Accept card payments in WooCommerce through monobank acquiring: invoice creation, redirect to the secure monobank payment page, automatic order confirmation by webhook with ECDSA signature verification. Works with a test token, no contract required.","assets_banners_color":"e4e4e5","last_updated":"2026-08-26 18:51:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/catcode.com.ua\/modules\/mono-acquiring-for-woocommerce\/","header_author_uri":"https:\/\/catcode.com.ua","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"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-08-26 18:30:18","revision":3667631},"1.0.1":{"tag":"1.0.1","author":"catcodestudio","date":"2026-08-26 18:51:11","revision":3667659}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3667607,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3667607,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3667607,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3667607,"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":3667659,"resolution":"1","location":"assets","locale":"","width":476,"height":414},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3667659,"resolution":"2","location":"assets","locale":"","width":1380,"height":1259},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3667659,"resolution":"3","location":"assets","locale":"","width":1400,"height":560},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3667659,"resolution":"4","location":"assets","locale":"","width":1476,"height":1082}},"screenshots":{"1":"The monobank payment method in the WooCommerce checkout.","2":"Gateway settings: tokens, test mode and the connection check.","3":"The monobank payment page the buyer is redirected to.","4":"A paid order with the monobank payment notes."}},"plugin_section":[],"plugin_tags":[219088,277711,232007,274662,277710],"plugin_category":[],"plugin_contributors":[271712],"plugin_business_model":[],"class_list":["post-359750","plugin","type-plugin","status-publish","hentry","plugin_tags-219088","plugin_tags-277711","plugin_tags-232007","plugin_tags-274662","plugin_tags-277710","plugin_contributors-catcodestudio","plugin_committers-catcodestudio"],"banners":{"banner":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/banner-772x250.png?rev=3667607","banner_2x":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/banner-1544x500.png?rev=3667607","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/icon-128x128.png?rev=3667607","icon_2x":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/icon-256x256.png?rev=3667607","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/screenshot-1.png?rev=3667659","caption":"The monobank payment method in the WooCommerce checkout."},{"src":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/screenshot-2.png?rev=3667659","caption":"Gateway settings: tokens, test mode and the connection check."},{"src":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/screenshot-3.png?rev=3667659","caption":"The monobank payment page the buyer is redirected to."},{"src":"https:\/\/ps.w.org\/catcode-card-payments-with-mono-for-woocommerce\/assets\/screenshot-4.png?rev=3667659","caption":"A paid order with the monobank payment notes."}],"raw_content":"<!--section=description-->\n<p>A WooCommerce payment gateway for <strong>monobank acquiring<\/strong> (Monobank Acquiring API).<\/p>\n\n<p>The customer pays on the secure monobank page and comes back to a confirmed order \u2014 the confirmation itself arrives over a webhook whose ECDSA signature is verified against the merchant public key, so a forged callback cannot mark an order as paid.<\/p>\n\n<ul>\n<li>Invoice creation and redirect to the monobank payment page.<\/li>\n<li>Automatic order confirmation through the webhook, with <strong>ECDSA signature verification<\/strong> (X-Sign).<\/li>\n<li>Status re-check when the buyer returns to the thank-you page, in case the webhook is delayed.<\/li>\n<li>The paid amount and currency are compared with the order before it is completed.<\/li>\n<li>Cart contents (basketOrder) are sent with the invoice, so the receipt lists real items.<\/li>\n<li>Classic checkout and block checkout (Checkout Blocks), HPOS compatible.<\/li>\n<li>Test mode with a separate test token \u2014 the whole flow can be checked without a contract.<\/li>\n<li>Merchant tokens are stored encrypted at rest.<\/li>\n<\/ul>\n\n<h4>Tokens<\/h4>\n\n<p>The live token is issued in the monobank merchant dashboard after the acquiring contract is signed. A test token is free and is created at https:\/\/api.monobank.ua\/ with the \"Create test token\" button.<\/p>\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 \u0448\u043b\u044e\u0437 \u0434\u043b\u044f WooCommerce, \u0449\u043e \u043f\u0440\u0438\u0439\u043c\u0430\u0454 \u043e\u043f\u043b\u0430\u0442\u0443 \u043a\u0430\u0440\u0442\u043a\u043e\u044e \u0447\u0435\u0440\u0435\u0437 \u0435\u043a\u0432\u0430\u0439\u0440\u0438\u043d\u0433 monobank.<\/p>\n\n<ul>\n<li>\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0440\u0430\u0445\u0443\u043d\u043a\u0443 \u0456 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f \u043f\u043e\u043a\u0443\u043f\u0446\u044f \u043d\u0430 \u0437\u0430\u0445\u0438\u0449\u0435\u043d\u0443 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0443 \u043e\u043f\u043b\u0430\u0442\u0438 monobank.<\/li>\n<li>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0435 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0432\u0435\u0431\u0445\u0443\u043a\u043e\u043c \u0437 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u043e\u044e ECDSA-\u043f\u0456\u0434\u043f\u0438\u0441\u0443 (X-Sign).<\/li>\n<li>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u0430 \u0437\u0432\u0456\u0440\u043a\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u043f\u0440\u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u0456 \u043f\u043e\u043a\u0443\u043f\u0446\u044f \u2014 \u043d\u0430 \u0432\u0438\u043f\u0430\u0434\u043e\u043a \u0437\u0430\u0442\u0440\u0438\u043c\u043a\u0438 \u0432\u0435\u0431\u0445\u0443\u043a\u0430.<\/li>\n<li>\u0421\u0443\u043c\u0430 \u0456 \u0432\u0430\u043b\u044e\u0442\u0430 \u043e\u043f\u043b\u0430\u0442\u0438 \u0437\u0432\u0456\u0440\u044f\u044e\u0442\u044c\u0441\u044f \u0456\u0437 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f\u043c \u043f\u0435\u0440\u0435\u0434 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f\u043c.<\/li>\n<li>\u0421\u043a\u043b\u0430\u0434 \u043a\u043e\u0448\u0438\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0454\u0442\u044c\u0441\u044f \u0443 \u0440\u0430\u0445\u0443\u043d\u043e\u043a (basketOrder) \u2014 \u0443 \u0447\u0435\u043a\u0443 \u0432\u0438\u0434\u043d\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u0456 \u043f\u043e\u0437\u0438\u0446\u0456\u0457.<\/li>\n<li>\u041a\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.<\/li>\n<li>\u0422\u0435\u0441\u0442\u043e\u0432\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u0437 \u043e\u043a\u0440\u0435\u043c\u0438\u043c \u0442\u043e\u043a\u0435\u043d\u043e\u043c \u2014 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0456\u044e \u043c\u043e\u0436\u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0431\u0435\u0437 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0443.<\/li>\n<li>\u0422\u043e\u043a\u0435\u043d\u0438 \u043c\u0435\u0440\u0447\u0430\u043d\u0442\u0430 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u044e\u0442\u044c\u0441\u044f \u0432 \u0431\u0430\u0437\u0456 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u043c\u0438.<\/li>\n<\/ul>\n\n<p>monobank \u2014 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0456\u0439 \u0441\u0435\u0440\u0432\u0456\u0441. \u0426\u0435\u0439 \u043f\u043b\u0430\u0433\u0456\u043d \u0454 \u043d\u0435\u0437\u0430\u043b\u0435\u0436\u043d\u043e\u044e \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0456\u0454\u044e \u0432\u0456\u0434 CatCode \u0456 \u043d\u0435 \u0430\u0444\u0456\u043b\u0456\u0439\u043e\u0432\u0430\u043d\u0438\u0439 \u0437 monobank \u0447\u0438 Universal Bank.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the monobank acquiring API so the store can create payment\ninvoices and confirm orders. Nothing is sent anywhere else.<\/p>\n\n<p><strong>monobank Acquiring API<\/strong> (https:\/\/api.monobank.ua)<\/p>\n\n<ul>\n<li>When an order is placed with this gateway, the plugin sends the order amount, order\nnumber, currency, the cart line items (name, quantity, price), the return URL and the\nwebhook URL, so monobank can create the invoice and redirect the buyer to its payment page.<\/li>\n<li>When the buyer returns, or when the webhook fires, the plugin asks the API for the\ninvoice status and the merchant public key used to verify the callback signature.<\/li>\n<li>The \"Check the token\" button in the settings requests the merchant details to confirm\nthe token works.<\/li>\n<li>API documentation: https:\/\/api.monobank.ua\/docs\/acquiring.html<\/li>\n<li>monobank terms, public offers and personal data documents: https:\/\/monobank.ua\/terms<\/li>\n<\/ul>\n\n<p>No customer data is sent to CatCode or to any other third party.<\/p>\n\n<p>monobank is a third-party service. This plugin is an independent integration built by\nCatCode; it is not affiliated with, endorsed by or sponsored by monobank or Universal Bank.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> and activate it.<\/li>\n<li>Go to WooCommerce \u2192 Settings \u2192 Payments \u2192 <strong>Mono Acquiring<\/strong>.<\/li>\n<li>Enable the method, paste a token (test or live) and save.<\/li>\n<li>The webhook URL is set automatically with every payment \u2014 nothing to configure by hand.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20monobank%20contract%3F\"><h3>Do I need a monobank contract?<\/h3><\/dt>\n<dd><p>For real payments, yes \u2014 the live token comes from the merchant dashboard. For testing,\na free test token is enough and needs no contract.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>UAH is the primary currency; USD and EUR are handled as well if the merchant account has them.<\/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. The gateway registers a Checkout Blocks payment method and also works with the\nclassic checkout shortcode.<\/p><\/dd>\n<dt id=\"can%20a%20fake%20callback%20mark%20an%20order%20as%20paid%3F\"><h3>Can a fake callback mark an order as paid?<\/h3><\/dt>\n<dd><p>No. Every webhook is verified against the merchant public key published by monobank\n(ECDSA over the raw request body); an unsigned or mismatched callback is rejected.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: the \"Check the token\" button on the settings screen did nothing \u2014 the\nscript and the AJAX endpoint behind it were missing from the build.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: invoice creation, redirect payment, webhook with ECDSA signature\nverification, thank-you page reconciliation, cart contents in the invoice, block\ncheckout and HPOS support, encrypted token storage.<\/li>\n<\/ul>","raw_excerpt":"Card payments in WooCommerce through monobank acquiring: invoice, redirect to the secure payment page, webhook confirmation with signature checking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359750","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=359750"}],"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=359750"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359750"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359750"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359750"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359750"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}