{"id":378007,"date":"2026-11-08T20:32:32","date_gmt":"2026-11-08T20:32:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/payzum-crypto-stablecoin-payments-for-woocommerce\/"},"modified":"2026-11-08T20:31:59","modified_gmt":"2026-11-08T20:31:59","slug":"payzum-crypto-payments","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/payzum-crypto-payments\/","author":23576161,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.2","stable_tag":"1.5.2","tested":"7.1.4","requires":"5.6","requires_php":"8.1","requires_plugins":null,"header_name":"Payzum Crypto & Stablecoin Payments for WooCommerce","header_author":"Payzum","header_description":"Accept crypto and stablecoins (USDC\/USDT, multi-chain) in WooCommerce with Payzum. Buyers choose the coin on the Payzum checkout. Non-custodial \u2014 funds settle to your own wallet.","assets_banners_color":"070a12","last_updated":"2026-11-08 20:31:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/payzum-dev\/woocommerce-payzum","header_author_uri":"https:\/\/payzum.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":106,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.2":{"tag":"1.5.2","author":"payzum","date":"2026-11-08 20:31:59","revision":3791485}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3791484,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3791484,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3791484,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3791484,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[12611,6593,231844,209195,286],"plugin_category":[45],"plugin_contributors":[291553],"plugin_business_model":[],"class_list":["post-378007","plugin","type-plugin","status-publish","hentry","plugin_tags-cryptocurrency","plugin_tags-payment-gateway","plugin_tags-stablecoin","plugin_tags-usdc","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-payzum","plugin_committers-payzum"],"banners":{"banner":"https:\/\/ps.w.org\/payzum-crypto-payments\/assets\/banner-772x250.png?rev=3791484","banner_2x":"https:\/\/ps.w.org\/payzum-crypto-payments\/assets\/banner-1544x500.png?rev=3791484","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/payzum-crypto-payments\/assets\/icon-128x128.png?rev=3791484","icon_2x":"https:\/\/ps.w.org\/payzum-crypto-payments\/assets\/icon-256x256.png?rev=3791484","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Payzum lets your WooCommerce store accept cryptocurrency and stablecoin payments (USDC\/USDT and\nmore, across multiple chains). Payments are <strong>non-custodial<\/strong>: funds settle directly to your own\nwallet \u2014 Payzum never takes custody.<\/p>\n\n<p>At checkout the buyer is redirected to a secure Payzum hosted checkout (QR + deposit address, live\nstatus). Your order is marked paid automatically from a signed IPN webhook, so a closed browser tab\nnever loses a paid order.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Crypto &amp; stablecoin checkout (USDC\/USDT, multi-chain).<\/li>\n<li>Non-custodial \u2014 settles to your wallet.<\/li>\n<li>Hosted checkout \u2014 no card data or crypto handling on your server.<\/li>\n<li>Signed IPN webhooks (HMAC-SHA-512) verify every payment server-side.<\/li>\n<li>No chargebacks.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Payzum API to create payment invoices and receive payment\nnotifications. It is required for the gateway to work.<\/p>\n\n<ul>\n<li>What it sends: when a buyer chooses Payzum at checkout, the plugin sends the order total,\ncurrency, order id and your store's callback\/return URLs to Payzum to create the invoice.\nPayment confirmations arrive as signed webhooks from Payzum; the plugin verifies their\nsignature before updating the order. No customer personal data is sent by the plugin.<\/li>\n<li>When: only when the gateway is enabled and a buyer pays (or the store owner tests the\nconnection from the settings screen).<\/li>\n<li>Endpoints: <code>https:\/\/merchant.payzum.com<\/code> (production) or <code>https:\/\/staging.payzum.com<\/code>\n(staging), as selected in the plugin settings.<\/li>\n<li>Service provider: Payzum \u2014 <a href=\"https:\/\/payzum.com\/terms\">terms<\/a>, <a href=\"https:\/\/payzum.com\/privacy\">privacy<\/a>.<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<p>Coin icons are from the open-source cryptocurrency-icons set (MIT license, spothq);\na few network icons are original monograms bundled with this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>payzum-crypto-payments<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip via\nPlugins \u2192 Add New \u2192 Upload.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to WooCommerce \u2192 Settings \u2192 Payments \u2192 Payzum and enable it.<\/li>\n<li>Paste your <strong>API key<\/strong> and <strong>Webhook secret<\/strong> from your Payzum dashboard.<\/li>\n<li>Copy the <strong>IPN URL<\/strong> shown on the settings screen into your Payzum webhook settings. The IPN\nsignature header is fixed (<code>x-nowpayments-sig<\/code>) \u2014 no configuration needed.<\/li>\n<li>Save. Place a test order to confirm the flow.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20custodial%3F\"><h3>Is it custodial?<\/h3><\/dt>\n<dd><p>No. Funds settle directly to your own wallet.<\/p><\/dd>\n<dt id=\"which%20coins%20are%20supported%3F\"><h3>Which coins are supported?<\/h3><\/dt>\n<dd><p>USDC\/USDT and other crypto across supported chains. Which coins your store accepts is configured\nin your Payzum dashboard (Merchants \u2192 Settings \u2192 Accepted tokens); the buyer picks one of those\non the Payzum checkout.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20write%20code%3F\"><h3>Do I need to write code?<\/h3><\/dt>\n<dd><p>No. Enter your API key and webhook secret and you are live.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Renamed the internal settings-migration function so its name reflects what it does\n(it removes settings made obsolete in 1.1.0 and renders nothing). No functional change.<\/li>\n<li>The internal version constant now matches the plugin version (1.5.1 left it at 1.5.0).<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Plugin URI now points at the plugin's own repository, so it differs from the Author URI as\nthe plugin directory requires. No functional change.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>The IPN now verifies the amount and currency paid against the order before it is completed.\nNothing was compared before, so a payment for any amount completed the order in full; a mismatch\nnow puts the order on hold for review instead.<\/li>\n<li>An amount that cannot be read (missing, empty, or not a number) counts as a mismatch. The first\nversion of this check treated an unreadable amount as \"nothing to compare\" and completed the\norder unverified.<\/li>\n<li>A payment reference whose order suffix does not match the order it claims to pay is rejected.<\/li>\n<li>The transition to complete is serialised with a database lock, so two deliveries arriving at once\ncannot both complete the order.<\/li>\n<li>Lock names are scoped to the site's database, table prefix and plugin. Lock names are global to\nthe MySQL server, so the previous ones collided: two stores on one server blocked each other, and\nthis plugin generated the same name as the Easy Digital Downloads and Paid Memberships Pro\ngateways.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Rebuilt on the official <code>payzum\/payzum-php<\/code> SDK (bundled in <code>vendor\/<\/code>): HTTP client, webhook\nsignature verification, decimal-exact amounts and the payment-status vocabulary now live in one\ntested library instead of plugin code.<\/li>\n<li>IPN deliveries are deduplicated by their event id \u2014 retries can no longer add duplicate notes or\nre-fire the paid transition.<\/li>\n<li>New Environment setting (production \/ staging) for end-to-end testing against the sandbox.<\/li>\n<li>Order totals are sent with every digit intact (no float rounding on the wire).<\/li>\n<li>Requires PHP 8.1 (the SDK's floor).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Cart &amp; Checkout blocks support; HPOS compatibility declared.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Modal and inline render modes via the Payzum widget; crypto currency mode\n(<code>pricing_mode: \"direct\"<\/code>).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>The buyer picks the coin on the Payzum hosted checkout (<code>pay_currency: \"all\"<\/code>); dropped the\nin-store coin picker.<\/li>\n<li>IPN signature read from the fixed <code>x-nowpayments-sig<\/code> header.<\/li>\n<li>Zero-total orders complete without an invoice; repeated IPNs no longer duplicate order notes;\nrecurring signups are refused instead of being charged once.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: hosted-checkout gateway with signed IPN verification.<\/li>\n<\/ul>","raw_excerpt":"Accept crypto and stablecoins (USDC\/USDT, multi-chain) in WooCommerce with Payzum. Non-custodial \u2014 funds settle to your own wallet.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/378007","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=378007"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/payzum"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=378007"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=378007"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=378007"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=378007"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=378007"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=378007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}