{"id":255532,"date":"2025-11-07T00:32:45","date_gmt":"2025-11-07T00:32:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/icpay\/"},"modified":"2026-02-08T20:30:05","modified_gmt":"2026-02-08T20:30:05","slug":"icpay-payments","status":"publish","type":"plugin","link":"https:\/\/kn.wordpress.org\/plugins\/icpay-payments\/","author":23379150,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.8","stable_tag":"1.3.8","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Instant Crypto Payments","header_author":"ICPay, Ltd.","header_description":"Accept crypto payments (Bitcoin, ICP, stablecoins) with ICPay. Drop-in pay button, tip jar, paywall & ecommerce widgets; Gutenberg block, shortcodes, webhooks, automatic sync, and admin reporting.","assets_banners_color":"727c92","last_updated":"2026-02-08 20:30:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/icpay.org","rating":0,"author_block_rating":0,"active_installs":0,"downloads":529,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.23":{"tag":"1.0.23","author":"kristijanzivcec","date":"2025-11-14 22:27:32"},"1.0.24":{"tag":"1.0.24","author":"kristijanzivcec","date":"2025-11-14 22:00:54"},"1.0.25":{"tag":"1.0.25","author":"kristijanzivcec","date":"2025-11-14 22:27:46"},"1.2.1":{"tag":"1.2.1","author":"kristijanzivcec","date":"2025-11-23 21:32:27"},"1.2.2":{"tag":"1.2.2","author":"kristijanzivcec","date":"2025-11-23 21:32:50"},"1.2.4":{"tag":"1.2.4","author":"kristijanzivcec","date":"2025-12-09 16:39:11"},"1.2.5":{"tag":"1.2.5","author":"kristijanzivcec","date":"2025-12-09 16:52:22"},"1.3.2":{"tag":"1.3.2","author":"kristijanzivcec","date":"2026-01-20 10:28:12"},"1.3.3":{"tag":"1.3.3","author":"kristijanzivcec","date":"2026-01-29 08:44:32"},"1.3.5":{"tag":"1.3.5","author":"kristijanzivcec","date":"2026-02-01 00:22:30"},"1.3.8":{"tag":"1.3.8","author":"kristijanzivcec","date":"2026-02-08 20:30:05"}},"upgrade_notice":{"1.0.25":"<p>Security and guideline compliance updates; recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3395974,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3395974,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"icpay\/widget":{"name":"icpay\/widget","title":"ICPay Widget"}},"tagged_versions":["1.0.23","1.0.24","1.0.25","1.2.1","1.2.2","1.2.4","1.2.5","1.3.2","1.3.3","1.3.5","1.3.8"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Editor block for configuring widgets","2":"Payments list with filters","3":"Payment detail view"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1886,21057,5800,1887,12688],"plugin_category":[45],"plugin_contributors":[250400],"plugin_business_model":[],"class_list":["post-255532","plugin","type-plugin","status-publish","hentry","plugin_tags-bitcoin","plugin_tags-crypto","plugin_tags-donations","plugin_tags-payments","plugin_tags-paywall","plugin_category-ecommerce","plugin_contributors-kristijanzivcec","plugin_committers-kristijanzivcec"],"banners":{"banner":"https:\/\/ps.w.org\/icpay-payments\/assets\/banner-772x250.png?rev=3395974","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/icpay-payments\/assets\/icon-256x256.png?rev=3395974","icon_2x":"https:\/\/ps.w.org\/icpay-payments\/assets\/icon-256x256.png?rev=3395974","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Why icpay?<\/p>\n\n<p>Instant settlement to your wallet with no intermediaries or withdrawal delays. Customers pay, you receive - that simple.\n0.5% transaction fees. Free to use. Start earning crypto in minutes.\nMulti-chain support including Base, x402, and Internet Computer means your customers can pay using their preferred network and token.<\/p>\n\n<p>Perfect for:<\/p>\n\n<ul>\n<li>E-commerce stores wanting to tap into crypto-native customers<\/li>\n<li>Digital products and services<\/li>\n<li>SaaS businesses<\/li>\n<li>International payments without currency conversion fees<\/li>\n<\/ul>\n\n<p>Key Features:<\/p>\n\n<ul>\n<li>Seamless WooCommerce integration<\/li>\n<li>Support for 50+ cryptocurrencies and tokens<\/li>\n<li>Real-time payment confirmations<\/li>\n<li>Developer-friendly with extensive documentation<\/li>\n<li>Secure, non-custodial - funds go directly to your wallet<\/li>\n<li>Optional X402 (Coinbase) payment support enabled<\/li>\n<\/ul>\n\n<p>Built for developers, loved by merchants.\nGet started in minutes at icpay.org<\/p>\n\n<p>This plugin:<\/p>\n\n<ul>\n<li>Provides a Gutenberg block and shortcodes for all icpay payment widgets (Pay Button, Amount Input, Tip Jar, Premium Content, Article Paywall, Donation Thermometer, Coffee Shop)<\/li>\n<li>Enqueues the ICPay payments widget script locally<\/li>\n<li>Adds admin settings for publishable and secret keys<\/li>\n<li>Receives icpay payments webhooks to update local data<\/li>\n<li>Syncs payments from icpay payments (manual and cron)<\/li>\n<li>Stores payments in a local table with enriched data (amountUsd, amountUnits, ledgerSymbol (token), pluginSource, wp user)<\/li>\n<li>Shows an admin list with filters, pagination, and detail view<\/li>\n<li>Adds Tools action to clear local ICPay payment history (with confirmation)<\/li>\n<\/ul>\n\n<p>Requires an icpay account and API keys.<\/p>\n\n<p>Frontend widgets use the publishable key; server tasks use the secret key.<\/p>\n\n<p>To obtain keys, create an account on https:\/\/icpay.org and generate them in your dashboard.<\/p>\n\n<h3>Source code and build<\/h3>\n\n<p>This plugin includes a minified frontend script for the widget: assets\/js\/icpay-embed.min.js.<\/p>\n\n<p>Widget source (primary): https:\/\/github.com\/icpay\/icpay-widget\nSDK source (dependency): https:\/\/github.com\/icpay\/icpay-sdk\nBuild notes (recommended): The minified icpay-embed.min.js is built from the open-source icpay-widget repository.<\/p>\n\n<p>To reproduce:\n1. Clone icpay-widget and install deps (pnpm\/yarn\/npm supported): pnpm install\n2. Build: pnpm build\n3. Copy the generated minified widget bundle to this plugin at assets\/js\/icpay-embed.min.js.<\/p>\n\n<h3>External service disclosure<\/h3>\n\n<p>This plugin connects to the ICPay service operated by icpay, Inc. to process payments:\n- What: Payment creation and status updates.\n- When: When rendering the widget (publishable key) and when receiving webhooks; when syncing payments from your dashboard.\n- Data sent: Payment amounts, selected crypto asset, and optional metadata you configure (e.g., order ID). Webhook payloads contain payment status updates.\nPrivacy Policy: https:\/\/icpay.org\/privacy\nTerms of Service: https:\/\/icpay.org\/terms<\/p>\n\n<h4>Additional third-party services used by the widget (optional)<\/h4>\n\n<ul>\n<li>Identity (authentication): <code>https:\/\/identity.ic0.app<\/code> \u2014 opened only when a user chooses Internet Identity. No static assets are offloaded; it is an external login service.<\/li>\n<li>On-ramp provider: <code>https:\/\/global.transak.com<\/code> (or <code>https:\/\/global-stg.transak.com<\/code> in non-production) \u2014 used only when the on-ramp modal is triggered. No static assets are offloaded; it is a payment service.<\/li>\n<\/ul>\n\n<p>No JS\/CSS\/images are loaded from remote CDNs by this plugin. All static assets (scripts, styles, and images) used by the plugin UI are bundled and served locally within the plugin. The build script enforces this by rejecting known disallowed remote asset references.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>icpay-payments<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or upload the zip via Plugins \u2192 Add New \u2192 Upload.<\/li>\n<li>Activate the plugin through the \u2018Plugins\u2019 menu in WordPress.<\/li>\n<li>Go to Instant Crypto Payments \u2192 Settings and enter your Publishable and Secret keys.<\/li>\n<li>(Optional) Configure global defaults.<\/li>\n<li>Use the Instant Crypto Payments block in the editor to insert widgets, or shortcodes if preferred.<\/li>\n<li>Add a webhook endpoint in your ICPay account pointing to <code>\/wp-json\/icpay-payments\/v1\/webhook<\/code>. This endpoint is public by design but securely verified using an HMAC-SHA256 signature header.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20my%20secret%20key%20on%20the%20frontend%3F\"><h3>Do I need my secret key on the frontend?<\/h3><\/dt>\n<dd><p>No. Only the publishable key is exposed on the frontend. The secret key is used on the server for sync and API calls.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20the%20wordpress.org%20directory%3F\"><h3>Does it work without the WordPress.org directory?<\/h3><\/dt>\n<dd><p>Yes, you can install from a zip. For automatic updates via WordPress.org, submit the plugin to the official directory.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.8<\/h4>\n\n<ul>\n<li>Payments list: column \"Amount (USD)\" renamed to \"Amount\". Amount column now shows the payment in its fiat currency when the widget used a non-USD currency (e.g. \"10.00 GBP\" instead of always \"$12.00\"). Fiat currency and amount-in-fiat are stored from the payment intent on sync.<\/li>\n<li>Payment detail view: when the intent used a non-USD fiat, the amount is shown in that currency (e.g. \"10.00 GBP\") in addition to or instead of the USD equivalent where appropriate.<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>New: Payment currency (fiat) option for all widgets. Block editor shows a \"Payment currency\" dropdown (USD default; other currencies from API). Use a different fiat (e.g. EUR) for amount display and balance checks. When not set or set to USD, the option is omitted from the widget config.<\/li>\n<li>Block editor: \"Amount (USD)\" label renamed to \"Amount\" for the Pay Button.<\/li>\n<li>Shortcodes: all widget shortcodes now accept an optional <code>fiat_currency<\/code> attribute (e.g. <code>fiat_currency=\"EUR\"<\/code>).<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>New: Solana chain support.<\/li>\n<li>New: Relay mode with per\u2011chain recipient addresses (IC, EVM, Solana).<\/li>\n<li>New: Theme\/overlay hardening so the wallet selector reliably appears above site UI.<\/li>\n<li>New: X402 v2 improvements and UX updates.<\/li>\n<li>Fix: Webhook and recheck verification now enforce relay rules and report terminal mismatches.<\/li>\n<li>Fix: Amount USD inputs accept any positive decimal; validation moved to on\u2011blur.<\/li>\n<li>Fix: Various minor compatibility and stability issues.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Block editor: replaced \u201cAccepted tokens\u201d toggles with a searchable multi\u2011select \u201cFilter allowed tokens (optional)\u201d UI.<\/li>\n<li>Block editor: now shows chain name in brackets next to token symbol; selected tokens are sorted by chain then symbol.<\/li>\n<li>Block editor: \u201cAmount (USD)\u201d accepts arbitrary decimals (step=any), e.g. 0.0005 or 1.12.<\/li>\n<li>Block editor: label renamed \u201cComponent\u201d \u2192 \u201cWidget Type\u201d; default button label uses \u201ccrypto\u201d.<\/li>\n<li>Shortcodes\/block render: removed deprecated \u201cDisable button\u201d and \u201cDisable after success\u201d flags.<\/li>\n<li>Settings: added Tools section with \u201cClear ICPay payment history\u201d button (with confirmation) to truncate local synced icpay payment records.<\/li>\n<li>API\/SDK integration: enriched public tokens response to include chain metadata used by the editor (chainName, chainShortcode, chainType, nativeSymbol, rpcChainId).<\/li>\n<li>Documentation: note optional support for X402 (Coinbase) payments where enabled.<\/li>\n<\/ul>\n\n<h4>1.0.25<\/h4>\n\n<ul>\n<li>Compliance updates: source links in headers\/readme, nonce checks, SQL prepare fix, progress bar defaulting, moved Sync button to Payments page, webhook namespace switched to icpay-payments.<\/li>\n<\/ul>","raw_excerpt":"Accept crypto payments (ICP, Bitcoin, stablecoins) with Instant Crypto Payments. Charity, donations, paywall, tips, webhooks, sync, reports.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/255532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=255532"}],"author":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kristijanzivcec"}],"wp:attachment":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=255532"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=255532"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=255532"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=255532"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=255532"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=255532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}