E-commerce

Are there open-source crypto payment plugins for e-commerce platforms?

Short answer: Yes. Payzum publishes 29 open-source crypto payment plugins at github.com/payzum-dev — WooCommerce, Magento 2, PrestaShop, Shopware 6, Shopify, WHMCS, GiveWP, Medusa and more — under MIT, GPL or OSL 3.0 licenses. Every one is non-custodial: stablecoin payments settle to your own wallet, and anyone can read how the webhook is verified.

Key takeaways

  • 29 official integrations, all public under github.com/payzum-dev: 10 e-commerce carts, 4 headless commerce frameworks, 4 hosting-billing systems, 3 WordPress donation, membership and download plugins, 6 more for forms, courses, ERP, accounting, ticketing and .NET, and 2 payment libraries.
  • Every repository carries an OSI-approved license — 23 MIT, 5 GPL (the four WordPress plugins and Akaunting) and 1 OSL 3.0 (Magento) — so you can read, fork and patch the code that runs your checkout.
  • Why it matters: the payment plugin is the code that decides an order is paid. With the source open, your developer can check how the webhook signature is verified and confirm there is no wallet address in the code: the funds go to the wallet you set in your own dashboard.
  • Install paths as of 29 September 2026: 19 plugins ship a packaged release zip, 10 are published on Packagist, npm or PyPI (four have both), Shopify, Wix and BigCommerce deploy as small self-hosted apps, and Saleor installs from a hosted app manifest. None is listed in a platform marketplace yet.
  • Below: the full list by platform, a 15-minute audit checklist, and the install sequence from staging to live.

The payment plugin is the most trusted code in your store

Every plugin in an online store runs with roughly the same permissions, but only one of them decides money. The payment plugin holds your API key, receives the callback that says "this order is paid", and changes the order status that triggers shipping, a licence key, a course enrolment or a hosting account. If it gets that one decision wrong, you ship goods for nothing.

It is also third-party code, and third-party code is where breaches increasingly start. Verizon's 2025 Data Breach Investigations Report (April 2025) found that the share of breaches involving a third party doubled in one year, from 15% to 30%. Black Duck's 2026 Open Source Security and Risk Analysis (February 2026) audited 947 commercial codebases: 87% contained at least one vulnerability, and 65% of organizations reported a software supply chain attack in the previous year.

For a store, the plugin ecosystem is the supply chain. WordPress alone runs 40.2% of all websites (W3Techs, 29 September 2026), and a WooCommerce store adds a payment gateway the same way it adds a contact form: upload, activate, trust.

With a closed payment plugin, "trust" is the whole security model. The same goes for one that ships obfuscated or only half its logic. You cannot see whether it checks a signature at all, whether it marks orders paid when the buyer's browser comes back, or where the buyer's money actually goes.

What you can't see in a closed payment plugin can cost you

Orders marked paid by a forged request. A plugin that trusts the buyer's return URL, or accepts a webhook without verifying its signature, can be told "status: paid" by anyone who learns the callback address. The goods ship; the money never arrived.

The same order fulfilled twice. Payment providers redeliver webhooks whenever a store is slow to answer. A handler that does not deduplicate sends two confirmation emails, reduces stock twice and grants the download twice.

Funds routed somewhere you did not choose. Many crypto gateway plugins exist to move your buyer's money into the gateway's own balance. You learn the payout schedule, the reserve and the freeze policy later, and nothing in the plugin tells you where the money flows.

Abandonware at checkout. A closed plugin that stops being maintained breaks on the next major platform release, and you cannot patch it, fork it or pay someone else to fix it. Your checkout waits on someone else's roadmap.

A security review you cannot pass. Enterprise buyers, investors and your own security team increasingly ask which third-party code touches payments. "It's a vendor plugin, we don't know" is not an answer that closes the review.

Why most crypto payment plugins are closed, custodial or both

None of this is malice. It follows from how the processors behind the plugins are built.

With a custodial gateway, the plugin is a funnel. The logic that matters (deposit addresses, confirmations, the balance) lives on the gateway's servers, next to your money. Even when the plugin code is readable, it cannot show you the part you care about, because the funds never pass through it: they land in the gateway's wallet and come back to you as a payout.

A self-hosted open-source processor is the opposite trade-off. Everything is auditable, but you run the processor, its database and often a node, and you own the uptime. That is a good fit for teams with operations capacity. It is a lot to take on for a store with one part-time developer.

Card gateway plugins are often open source, but the rail isn't. You can read the WooCommerce plugin of a card processor, but the acquirer still holds the funds for days and can reverse a payment for around 120 days after the sale.

What most merchants actually want is the combination nobody used to offer: the plugin is open, the processor is non-custodial, and there is no server to run.

Payzum's 29 open-source crypto payment plugins, by platform

Payzum is a non-custodial, stablecoin-first crypto payment processor: payments settle directly to wallets the merchant controls. Each integration lives in its own repository under github.com/payzum-dev, named <platform>-payzum. Seven follow their ecosystem's naming convention instead: medusa-payment-payzum, saleor-app-payment-payzum, vendure-plugin-payzum, sylius-payzum-plugin, django-payments-payzum, omnipay-payzum and frappe-payzum. We checked every row below against the live organization, its licenses, releases and package registries, on 29 September 2026.

E-commerce carts (10)

PlatformRepositoryLicenseHow to install
WooCommercewoocommerce-payzumGPL-2.0Release zip → Plugins → Upload. Supports block checkout and HPOS. Setup guide.
Magento 2 / Adobe Commercemagento2-payzumOSL-3.0Release zip, or Composer: payzum/module-crypto-payments. Setup guide.
PrestaShop 1.7 and 8prestashop-payzumMITRelease zip (module upload). Needs PHP 8.1, so PrestaShop 8 in practice. Setup guide.
Shopware 6shopware6-payzumMITRelease zip, or Composer: payzum/shopware6-crypto-payments
OpenCartopencart-payzumMITOCMOD release zip
Zen Cartzencart-payzumMITRelease zip
Ecwidecwid-payzumMITSelf-hosted PHP payment app (release zip)
BigCommercebigcommerce-payzumMITSelf-hosted Node.js app (Orders API), from source
Wixwix-payzumMITSelf-hosted Node.js app (Payments SPI), from source
Shopifyshopify-payzumMITSelf-hosted Payments App, from source. Needs Shopify's payments-partner approval.

Headless commerce (4)

PlatformRepositoryLicenseHow to install
Medusa v2medusa-payment-payzumMITnpm: @payzum/medusa-payment-payzum
Saleor 3.20+saleor-app-payment-payzumMITHosted app manifest, or self-host the Next.js app
Vendurevendure-plugin-payzumMITnpm: @payzum/vendure-plugin-payzum
Sylius 2.xsylius-payzum-pluginMITComposer: payzum/sylius-payzum-plugin

Hosting and billing (4)

PlatformRepositoryLicenseHow to install
WHMCSwhmcs-payzumMITRelease zip (gateway module). Setup and renewals guide, covering the Blesta, HostBill and ClientExec modules too.
Blestablesta-payzumMITRelease zip
HostBillhostbill-payzumMITRelease zip
ClientExecclientexec-payzumMITRelease zip

Donations, memberships and digital downloads (3)

PlatformRepositoryLicenseHow to install
GiveWPgivewp-payzumGPL-2.0Release zip → Plugins → Upload. One-time gifts; needs PHP 8.1. Setup guide.
Paid Memberships Propaid-memberships-pro-payzumGPL-2.0Release zip → Plugins → Upload
Easy Digital Downloadseasy-digital-downloads-payzumGPL-2.0Release zip → Plugins → Upload

Forms, courses, ERP, accounting, ticketing and .NET (6)

PlatformRepositoryLicenseHow to install
Fluent Formsfluent-forms-payzumMITRelease zip
Tutor LMStutor-lms-payzumMITRelease zip
ERPNext / Frappefrappe-payzumMITbench get-app from the repo (also on PyPI as payzum-payments)
Akauntingakaunting-payzumGPL-3.0Release zip, or Composer: payzum/module-payzum
pretix (ticketing)pretix-payzumMITpip install pretix-payzum
nopCommerce 4.70 (.NET 8)nopcommerce-payzumMITSource release zip, built with your nopCommerce solution

Payment libraries (2)

LibraryRepositoryLicenseHow to install
Omnipay (PHP)omnipay-payzumMITcomposer require payzum/omnipay-payzum
django-payments (Python)django-payments-payzumMITpip install django-payments-payzum

The same organization holds the official SDKs (Node.js/TypeScript, PHP, Python and Rust) and payzum-openapi. That repository contains the OpenAPI contract for the API and a shared corpus of webhook-signature test vectors, which every SDK is validated against. The WooCommerce plugin, for example, bundles the official PHP SDK and hands signature checks to its verifier instead of hand-rolling its own. If your platform is not in the tables, you do not need a plugin: the three-step integration works with anything that can call an API.

What the source lets you check: where the funds go

We scanned all 29 repositories on 29 September 2026: none contains a wallet address. A Payzum plugin never decides where money goes. It creates a payment from your server with the order total, the currency, an order reference and your callback URLs, then sends the buyer to the hosted checkout. The receiving wallet is the one you set in your own Payzum dashboard.

The buyer pays from their wallet straight to yours. That confirms in about 0.4 seconds on Solana and around two seconds on Base or Polygon, and Payzum never holds the funds. If you price in dollars, optional auto-convert to USDC or USDT is available on most supported networks. The full model is explained in what a non-custodial crypto payment processor is.

What the source lets you check: how the webhook is verified

Open the WooCommerce plugin's gateway class and the whole decision fits in under a hundred lines you can read:

  • It reads the raw request body before parsing anything.
  • It verifies an HMAC-SHA-512 signature over those raw bytes, taken from a fixed header, using a constant-time comparison. The header is x-nowpayments-sig, because the payment IPN uses a NOWPayments-compatible format.
  • It rejects events outside a 10-minute replay window on the signed timestamp.
  • It ignores duplicates by event ID, under a per-order lock so two concurrent deliveries cannot both mark the order paid.
  • It answers 401 to anything unsigned and leaves the order untouched.

Only then does it map the payment status onto the order: finished becomes processing or completed, partially paid goes on hold, expired cancels, failed fails. Nothing is inferred from the buyer's browser.

How to audit an open-source crypto payment plugin in 15 minutes — then install it

This works for any payment plugin, not just ours. The WooCommerce plugin is the worked example; swap the paths for your platform.

  1. Find the official repository. Use the tables above and confirm the repository sits under github.com/payzum-dev, not in a fork or a lookalike account.
  2. Read the license and the latest release. MIT, GPL and OSL all let you read, modify and fork the code. Download the packaged zip from Releases, not GitHub's "Download ZIP" button: that one unpacks to a <repo>-main/ folder the platform will not recognise.
  3. Open the webhook handler and run the five checks below. On WooCommerce it is includes/class-wc-gateway-payzum.php, method handle_ipn(); on WHMCS it is the gateway's callback/ file.
  4. Check where the money goes. Search the code for wallet addresses and for what the plugin sends out. You should find no address, and an outgoing payload of total, currency, order reference and callback URLs, with no customer personal data.
  5. Install on staging. Upload the release zip or install from the registry, paste a staging API key and webhook secret, and copy the IPN URL from the settings screen into the webhook settings of your Payzum dashboard.
  6. Test the failure path first. Send an unsigned request to your IPN URL (below) and expect a 401. Then place a real staging order, pay it on the hosted checkout, and watch the order move to processing only when the signed webhook lands. Underpay once and confirm the order goes on hold.
  7. Go live. Switch to the production key, enable the method, and publish the refund terms the buyer accepts at checkout. On-chain payments are final, so refunds are payments you send under your own policy.
# Must be rejected: no signature header, so the order is not touched
curl -i -X POST https://your-store.example/wc-api/wc_gateway_payzum \
  -H 'Content-Type: application/json' \
  -d '{"order_id":"123","payment_status":"finished"}'
# Expected: HTTP 401 (bad signature)

Five things to check in any payment plugin's webhook handler

  1. It reads the raw body and verifies the signature before trusting a single field.
  2. It uses an HMAC signature from a fixed header with a constant-time comparison, not a plain string equality.
  3. It has a replay window and deduplicates by event ID.
  4. It never marks an order paid from the buyer's return URL.
  5. It keeps the API key and webhook secret server-side, with nothing secret in the checkout page's JavaScript.

The engineering behind each check, with code for Node.js, PHP and Python, is in signed webhooks for crypto payments. What the plugin does at checkout, step by step, is in the pillar guide crypto payment plugin: a drop-in checkout for your cart.

Use cases: who installs open-source crypto payment plugins, and why

The license matters most to the people who have to answer for the checkout.

  • The agency with 40 client stores on three carts. It runs WooCommerce, PrestaShop and Shopware for clients in a dozen countries. It audits the plugin once per platform, pins the release version in its deployment scripts and rolls it out store by store. Each client connects its own wallet in its own dashboard, so the agency never touches client funds, and an update is a diff it can read before shipping it.
  • The hosting company on WHMCS. Its security review asks which code can mark an invoice paid. The developer reads the gateway module and its callback, sends the unsigned test request, gets a 401, and closes the review in an afternoon. The business case for stablecoins in hosting is in accepting crypto payments as a web hosting provider.
  • The nonprofit on GiveWP with a volunteer developer. Donors ask where their gift goes, and now the answer is checkable: no address in the plugin, and every donation lands in the organization's own wallet, confirmed on-chain with a reference. The volunteer can review a GPL-licensed plugin, which is also the license WordPress itself uses.
  • The headless team on Medusa or Saleor. Its B2B flow needs an approval step before payment, which no stock plugin offers. Under the MIT license the team forks the provider, adds the step, and keeps merging upstream releases, instead of rewriting a payment integration from scratch.
  • The finance team on ERPNext or Akaunting. Invoices to overseas clients are paid in USDC, and the signed callback marks them paid in the ledger. Reconciliation works from an order reference and an on-chain transaction instead of a wire memo someone typed by hand.

Open-source vs closed crypto payment plugins: comparison

What to compareClosed or custodial gateway pluginSelf-hosted open-source processorPayzum open-source plugins
Can you read the plugin code?Sometimes; often partial or obfuscatedYesYes: all 29, under MIT, GPL or OSL 3.0
Where the funds settleThe gateway's balance, paid out on its scheduleYour walletYour wallet, non-custodial
Server to runNoneProcessor, database, often a nodeNone for the plugins; on Shopify, Wix, BigCommerce and Ecwid the integration is a small app you host
Webhook verification you can inspectRarelyYesYes: HMAC signature, replay window and dedup, in the source
If the vendor stops maintaining itYou wait or migrateThe community or youYou can fork and patch it under the license
NetworksVaries by gatewayVaries by setupBitcoin, Ethereum, Solana, Polygon, Base, Arbitrum, Optimism, BNB Chain, Avalanche
ChargebacksNone on crypto; card rails reversible for monthsNoneNone: payments are final on-chain
Marketplace listingOften listedVariesNot yet; install from GitHub releases or package registries

Common objections, answered

"It's not in the WordPress or Shopify marketplace. Is installing from GitHub safe?"

A marketplace review checks one snapshot, once, with criteria you do not see. Open source lets you check every line of the version you actually install, and every diff after it. Pin a tagged release, read the webhook handler, run the unsigned-request test, and you know more about this plugin than about most listed ones. The Packagist, npm and PyPI packages are published from the same public repositories.

"If the code is public, can't attackers read it too?"

They can, and it does not help them. Signature verification is designed to be public: its security rests on your webhook secret, not on hiding the algorithm. An attacker who reads the code learns the header name. Without your secret, they cannot produce a signature the plugin accepts, and without a signature the order does not move.

"My platform isn't on the list."

Then use the API directly. One server-side call creates the payment, the response gives you a hosted checkout URL, and the signed webhook tells you when it is paid. The official SDKs cover Node.js, PHP, Python and Rust. The developer walkthrough is in REST API crypto payment gateway.

"We don't have a developer to audit anything."

The checklist takes a developer about fifteen minutes, and a freelancer can run it for you. If you would rather see it done, book a call and we'll walk through the plugin for your platform on screen.

Frequently asked questions

Are there open-source crypto payment plugins for e-commerce platforms?

Yes. Payzum publishes 29 open-source crypto payment plugins at github.com/payzum-dev, covering carts such as WooCommerce, Magento 2, PrestaShop, Shopware 6, OpenCart and Shopify, headless frameworks such as Medusa, Saleor, Vendure and Sylius, and billing, donation, membership, ERP and ticketing platforms. They are licensed under MIT, GPL or OSL 3.0, and payments settle non-custodially to the merchant's own wallet.

Is there a crypto payment plugin for WooCommerce, Magento 2 or PrestaShop?

Yes. woocommerce-payzum (GPL-2.0) supports the block checkout and HPOS, magento2-payzum (OSL-3.0) targets Magento 2.4 and Adobe Commerce and is also on Packagist, and prestashop-payzum (MIT) targets PrestaShop 1.7 and 8. All three install from a packaged release zip and mark orders paid only from Payzum's signed webhook.

Is there a crypto payment plugin for WHMCS, Medusa, Saleor or GiveWP?

Yes. whmcs-payzum covers WHMCS, with sibling modules for Blesta, HostBill and ClientExec. Medusa v2 installs from npm as @payzum/medusa-payment-payzum, Saleor 3.20+ uses saleor-app-payment-payzum, and GiveWP donations use givewp-payzum. Vendure and Sylius also have official plugins.

What license are Payzum's plugins released under?

All 29 use OSI-approved open-source licenses: 23 are MIT; WooCommerce, GiveWP, Paid Memberships Pro and Easy Digital Downloads are GPL-2.0, matching WordPress; Akaunting is GPL-3.0; and Magento 2 is OSL-3.0, the license Magento itself uses. You may read, modify and fork them under those terms.

Are Payzum's plugins listed on WordPress.org or the Shopify App Store?

Not as of 29 September 2026. The code is public on GitHub. 19 plugins ship a packaged release zip, and 10 are published on Packagist, npm or PyPI, four of them with a zip as well. The Shopify, Wix and BigCommerce integrations deploy from source as small self-hosted apps (Shopify also requires its payments-partner approval), and Saleor installs from a hosted app manifest.

Does a Payzum plugin ever hold my funds, and how can I check?

No. The plugin only creates a payment with the order total, currency, reference and callback URLs; the buyer pays straight to the wallet you configured in your Payzum dashboard. You can check it yourself: none of the 29 repositories contains a wallet address, and the webhook handler that marks orders paid is readable in each repository.

Book 20 minutes and we'll pick the plugin for your platform

Tell us your platform (or all of them, if you run several) and what your checkout does today. We'll point you to the right repository, walk your developer through the webhook handler and the install, and run the staging order with you. Then we'll set up how stablecoin payments reach a wallet you control: non-custodial, final, with nothing for anyone to freeze.

If the calendar does not load, book directly here · [email protected]

This article is general information, not legal, financial or security advice. Each plugin is provided under the license in its repository; review the code and test on staging before using it in production. Refund rules, accounting treatment and tax vary by jurisdiction and remain your responsibility, so confirm them with your own advisers.