About this plugin
Why ICPay?
- Instant settlement to your wallet with no intermediaries or withdrawal delays. Customers pay, you receive – that simple.
- 0.5% transaction fees. Free to use. Start earning crypto in minutes.
- Multi-chain support including Base, X402, and Internet Computer means your customers can pay using their preferred network and token.
Key Features:
- Seamless WooCommerce gateway integration (Checkout + Order Pay pages)
- Support for 50+ cryptocurrencies and tokens
- Optional X402 (Coinbase) payment support enabled
- Real-time payment confirmations via webhooks
- Developer-friendly with extensive documentation
- Secure, non-custodial – funds go directly to your wallet
- Compatible with HPOS (High-Performance Order Storage) and Cart/Checkout Blocks
- Express Checkout button (optional) for Cart and Checkout
This plugin:
- Adds an ICPay payment gateway for WooCommerce checkout
- Renders a pay button at checkout / order-pay
- Updates order status automatically when payment completes or fails (webhooks and verification)
- Reuses the Publishable Key from the ICPay plugin (if installed) or set keys locally
- Provides Settings for:
- Filter allowed tokens (optional) using searchable multi-select by token shortcode
- Metadata editor (key/value) merged into widget metadata (orderId is added automatically)
- Progress bar is always enabled for a smooth checkout experience
Source code and build
This plugin includes minified frontend bundles:
js (ICPay widget)
js (optional WalletConnect adapter UMD for the widget)
Public source (maintained and human-readable):
com/icpay/icpay-widget (MIT)
com/icpay/icpay-sdk (MIT)
com/WalletConnect/walletconnect-monorepo
Exact mapping of distributed files to source:
com/icpay/icpay-widget (package “@ic-pay/icpay-widget”).
– Primary sources live under /src in that repository.
js for this plugin distribution.
– Example tagged release used: see icpay-widget releases matching this plugin version. Repository includes full TS sources and sourcemaps.
js by the build script.
Build instructions (reproducible):
com/icpay/icpay-widget
2) Install dependencies (pnpm, yarn, or npm):
– pnpm install
3) Build the library (produces ESM, IIFE embed, and UMD adapter):
– pnpm build:embed
js
4) Copy artifacts into this plugin:
js
map
js
Notes:
com/icpay/icpay-sdk; the SDK sources are not vendored into this plugin but are bundled into the distributed widget file as part of the upstream open-source build.
org accepts either shipping unminified sources with the plugin or providing public, maintained source links (as above).
External services
This plugin connects to the ICPay service operated by ICPay, Ltd. to process payments. Details below list what is used, when, what data is sent, and links to each provider’s terms and privacy policies.
org) — operated by ICPay, Ltd.
– What/why: Create and manage a payment and receive payment status updates.
– When: When rendering the pay button (client-side widget load) and when receiving payment webhooks or running order payment verification.
, orderId). Webhook payloads contain payment status updates for the order.
org/terms
org/privacy
Additional third-party services used by the widget (optional)
org) — provided by WalletConnect
– What/why: Facilitate mobile wallet connections via WalletConnect.
– When: Only if the WalletConnect adapter is enabled AND the shopper chooses WalletConnect.
– Data sent: Wallet session metadata and JSON-RPC requests needed to complete a payment.
com/terms
com/privacy
3) Wallet vendor websites and app deeplinks — shown only if the WalletConnect adapter is enabled and the shopper chooses a wallet. Navigation happens only on explicit user action; the plugin does not send data to these vendors automatically.
app/privacy
com/privacy-policy
com/legal/privacy
com/en/privacy
4) On-ramp provider (optional and disabled in this plugin build)
com). In this plugin distribution, on-ramp is disabled by default; no requests are made to this provider.
– When: Only if a developer explicitly enables on-ramp in the widget configuration and the shopper chooses to open it.
– Data sent: None by default in this plugin. If enabled by a developer, the provider’s own site and terms will apply.
com (please refer to the vendor site for terms and privacy)
Remote assets and CDN fallbacks
- This plugin bundles all primary JS/CSS/images locally and does not offload required assets to remote CDNs.
- The optional WalletConnect adapter may reference external vendor logos or pages provided by those vendors. We ship local icons where possible; any navigation to vendor sites occurs only when the shopper explicitly chooses that wallet. No plugin settings or secrets are transmitted by simply rendering the checkout page.