{"id":326641,"date":"2026-06-16T08:37:48","date_gmt":"2026-06-16T08:37:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/allscale-checkout\/"},"modified":"2026-06-16T08:37:11","modified_gmt":"2026-06-16T08:37:11","slug":"allscale-checkout","status":"publish","type":"plugin","link":"https:\/\/ewe.wordpress.org\/plugins\/allscale-checkout\/","author":23512682,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Allscale Checkout","header_author":"AllScale community","header_description":"Accept crypto payments \u2014 0.6% fees (min $0.10), instant USDT settlement directly to your wallet. Non-custodial: your funds are never held by a third party. Requires an <a href=\"https:\/\/allscale.io\">Allscale account<\/a>.","assets_banners_color":"e6f6f4","last_updated":"2026-06-16 08:37:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/allscale-io\/allscale-wordpress-plugin","header_author_uri":"https:\/\/allscale.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"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":"allscaleio","date":"2026-06-16 08:37:11"}},"upgrade_notice":{"1.0.0":"<p>First stable release. Safe drop-in upgrade from 0.0.x \u2014 no settings or data changes required.<\/p>","0.0.1":"<p>First v0 release. Sandbox mode has been retired \u2014 use test-store credentials. If you&#039;re coming from the 0.1.x community beta, the first activation will show a one-time notice if your previous environment setting was sandbox.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3574209,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3574209,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3574209,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3574209,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3574209,"resolution":"1","location":"assets","locale":"","width":1280,"height":320},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3574209,"resolution":"2","location":"assets","locale":"","width":1280,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3574209,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3574209,"resolution":"4","location":"assets","locale":"","width":440,"height":540}},"screenshots":{"1":"The \"needs WooCommerce\" notice that appears if the plugin is activated on a site that doesn't yet have WooCommerce \u2014 one click installs or activates it.","2":"The gateway settings page in its healthy steady state: credentials verified, connection confirmed, webhook receiving.","3":"The setup wizard's third step \u2014 copy your webhook URL into your Allscale dashboard. This is the only step Allscale's API can't automate.","4":"The per-order Allscale Payment meta box: tx hash with explorer link, paid\/fee\/net breakdown, chain, payment method, intent ID."}},"plugin_section":[],"plugin_tags":[21057,6593,231844,204245,286],"plugin_category":[45],"plugin_contributors":[267337],"plugin_business_model":[],"class_list":["post-326641","plugin","type-plugin","status-publish","hentry","plugin_tags-crypto","plugin_tags-payment-gateway","plugin_tags-stablecoin","plugin_tags-usdt","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-allscaleio","plugin_committers-allscaleio"],"banners":{"banner":"https:\/\/ps.w.org\/allscale-checkout\/assets\/banner-772x250.png?rev=3574209","banner_2x":"https:\/\/ps.w.org\/allscale-checkout\/assets\/banner-1544x500.png?rev=3574209","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/allscale-checkout\/assets\/icon-128x128.png?rev=3574209","icon_2x":"https:\/\/ps.w.org\/allscale-checkout\/assets\/icon-256x256.png?rev=3574209","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/allscale-checkout\/assets\/screenshot-1.png?rev=3574209","caption":"The \"needs WooCommerce\" notice that appears if the plugin is activated on a site that doesn't yet have WooCommerce \u2014 one click installs or activates it."},{"src":"https:\/\/ps.w.org\/allscale-checkout\/assets\/screenshot-2.png?rev=3574209","caption":"The gateway settings page in its healthy steady state: credentials verified, connection confirmed, webhook receiving."},{"src":"https:\/\/ps.w.org\/allscale-checkout\/assets\/screenshot-3.png?rev=3574209","caption":"The setup wizard's third step \u2014 copy your webhook URL into your Allscale dashboard. This is the only step Allscale's API can't automate."},{"src":"https:\/\/ps.w.org\/allscale-checkout\/assets\/screenshot-4.png?rev=3574209","caption":"The per-order Allscale Payment meta box: tx hash with explorer link, paid\/fee\/net breakdown, chain, payment method, intent ID."}],"raw_content":"<!--section=description-->\n<p>Allscale Checkout is a WordPress plugin (built as a WooCommerce payment gateway) that lets your customers pay with crypto while funds settle instantly as USDT stablecoin directly to your wallet \u2014 Allscale never holds your money.<\/p>\n\n<h4>Why use Allscale?<\/h4>\n\n<ul>\n<li><strong>Non-custodial.<\/strong> Funds go straight to your wallet. No third party holds your money. No account freezes.<\/li>\n<li><strong>Low fees.<\/strong> 0.6% per transaction with a $0.10 minimum (vs. ~3% on traditional processors).<\/li>\n<li><strong>Instant settlement.<\/strong> On-chain USDT \u2014 no waiting days for payouts.<\/li>\n<li><strong>Permissionless setup.<\/strong> Sign up, paste your credentials, start accepting payments.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Native WooCommerce payment gateway.<\/li>\n<li>HMAC-SHA256 request signing and webhook verification (timing-safe).<\/li>\n<li>Test-connection button + automatic credential validation on save.<\/li>\n<li>Per-order Allscale Payment meta box: tx hash with block-explorer link, payment-method type, paid \/ fee \/ net breakdown.<\/li>\n<li>Webhook health observation: last-received timestamp, first-webhook celebration, stale-webhook warning.<\/li>\n<li>HPOS compatible. Block-based checkout compatible.<\/li>\n<li>Full i18n with text domain <code>allscale-checkout<\/code>.<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8+<\/li>\n<li>WooCommerce 6.0+<\/li>\n<li>PHP 7.4+<\/li>\n<li>An <a href=\"https:\/\/allscale.io\">Allscale account<\/a> with Commerce enabled<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to <strong>Allscale's API at <code>https:\/\/openapi.allscale.io<\/code><\/strong> so your customers' payments can be created, confirmed, and settled to your wallet. Specifically:<\/p>\n\n<p><strong>What is sent to Allscale, and when:<\/strong><\/p>\n\n<ul>\n<li><em>On settings save and on every \"Test connection\" click:<\/em> the API key and a signed <code>GET \/v1\/test\/ping<\/code> request \u2014 verifies the credentials are correct without sending order data.<\/li>\n<li><em>When a customer clicks \"Place order\" with Allscale selected:<\/em> a signed <code>POST \/v1\/checkout_intents\/<\/code> with the order's total amount in cents, currency (or stable-coin enum), your store's order number, an order description (the names of items in the cart, truncated), the customer's WooCommerce user ID and billing name, and the WooCommerce thank-you URL to redirect them back to after payment.<\/li>\n<li><em>When the customer lands back on the thank-you page:<\/em> a signed <code>GET \/v1\/checkout_intents\/{id}<\/code> to read the on-chain transaction details and reconcile the order.<\/li>\n<\/ul>\n\n<p><strong>What Allscale sends back, and when:<\/strong><\/p>\n\n<ul>\n<li><em>Hosted checkout URL<\/em> \u2014 the page your customer is redirected to to actually pay.<\/li>\n<li><em>Webhook callbacks<\/em> \u2014 when an on-chain payment confirms, Allscale POSTs a signed message to <code>https:\/\/your-site.com\/wc-api\/allscale_checkout<\/code> containing the transaction hash, chain ID, the on-chain settled amount in USDT, and the payment method type. The plugin verifies the HMAC-SHA256 signature before applying any state change.<\/li>\n<\/ul>\n\n<p><strong>Service terms and privacy:<\/strong><\/p>\n\n<ul>\n<li>Allscale's terms of service: <a href=\"https:\/\/www.allscale.io\/agreement\">https:\/\/www.allscale.io\/agreement<\/a><\/li>\n<li>Allscale's privacy policy: <a href=\"https:\/\/www.allscale.io\/policy\">https:\/\/www.allscale.io\/policy<\/a><\/li>\n<\/ul>\n\n<p>Using this plugin makes your WooCommerce store an integration partner of Allscale. By installing and configuring it, you agree to Allscale's terms.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin does not collect any analytics, telemetry, or user data on its own. It does not \"call home\" to allscale-io or any third party other than the Allscale API documented above.<\/p>\n\n<p><strong>Personal data this plugin transmits to Allscale<\/strong> for the purpose of processing each order:<\/p>\n\n<ul>\n<li>The customer's WooCommerce user ID (an internal numeric ID, only if they're a logged-in customer)<\/li>\n<li>The customer's billing first + last name<\/li>\n<li>The order number and total amount<\/li>\n<li>A short description of the items in the order (product names, truncated to 200 characters)<\/li>\n<\/ul>\n\n<p><strong>Personal data this plugin stores locally<\/strong> in the WordPress database, on each order:<\/p>\n\n<ul>\n<li>The Allscale checkout intent ID<\/li>\n<li>The on-chain transaction hash (public blockchain data)<\/li>\n<li>The settled amount, fee, and net amount in USDT<\/li>\n<li>The chain ID and payment-method type<\/li>\n<\/ul>\n\n<p>No card numbers, no wallet seed phrases, no private keys, and no email addresses are sent or stored by this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <em>WooCommerce \u2192 Settings \u2192 Payments \u2192 Allscale Checkout<\/em>.<\/li>\n<li>Paste your API key and secret from your Allscale dashboard.<\/li>\n<li>Click <strong>Test connection<\/strong>, then <strong>Save changes<\/strong>.<\/li>\n<li>Copy the webhook URL shown in settings and paste it into your Allscale store's webhook field.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20sandbox%20mode%20work%3F\"><h3>Does sandbox mode work?<\/h3><\/dt>\n<dd><p>Sandbox mode has been retired. To test without real payments, create a <strong>test store<\/strong> in your Allscale dashboard and use its credentials. Both test and production stores share the same <code>openapi.allscale.io<\/code> base URL.<\/p><\/dd>\n<dt id=\"can%20the%20plugin%20configure%20the%20webhook%20url%20automatically%3F\"><h3>Can the plugin configure the webhook URL automatically?<\/h3><\/dt>\n<dd><p>No \u2014 Allscale does not expose webhook-management API endpoints. The merchant must paste the URL into the Allscale dashboard manually. The plugin shows when a webhook was last received so misconfigurations surface quickly.<\/p><\/dd>\n<dt id=\"are%20automatic%20refunds%20supported%3F\"><h3>Are automatic refunds supported?<\/h3><\/dt>\n<dd><p>No. Allscale is non-custodial; funds settle directly to your wallet. To refund a customer, send the amount back from your wallet, then update the order status in WooCommerce.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>USD, AUD, CAD, CNY, EUR, GBP, HKD, JPY, SGD. You can also enable <strong>native USDT pricing<\/strong> for crypto-first stores.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First stable release. The plugin is now considered production-ready after the v0 hardening cycle. No breaking changes from 0.0.5 \u2014 existing settings, credentials, and order meta carry over untouched.<\/li>\n<li>Plugin name simplified to \"Allscale Checkout\" (dropped the redundant \"for WordPress\" suffix). Slug, class names, namespaces, option keys, hook names, and the text domain are unchanged.<\/li>\n<li>Compatibility verified with WordPress 7.0 and WooCommerce 10.8.<\/li>\n<li>Hardening: admin asset-enqueue now unslashes and sanitizes the <code>$_GET<\/code> page-detection values.<\/li>\n<li>Plugin Check pass: form-control output now routed through <code>wp_kses<\/code> allowlist, translator comments repositioned for i18n linting, removed the discouraged <code>load_plugin_textdomain<\/code> call (WordPress.org auto-loads translations) and the now-unused <code>Domain Path<\/code> header, and trimmed the readme short description to 150 characters.<\/li>\n<li>Review prep: moved the thank-you polling and setup-wizard inline scripts into enqueued JS files, removed the default customer-facing \"Powered by\" attribution from the gateway description (admins can add their own), and corrected the terms\/privacy URLs.<\/li>\n<\/ul>\n\n<h4>0.0.5<\/h4>\n\n<ul>\n<li>Packaging hygiene: release ZIPs now exclude dev-only content (<code>.wordpress-org\/<\/code> marketplace assets, internal <code>docs\/<\/code>, dev-facing <code>README.md<\/code>) via a <code>.distignore<\/code> file. v0.0.4 ZIPs accidentally bundled all of that \u2014 merchants now get only the runtime code. No code-behavior changes.<\/li>\n<\/ul>\n\n<h4>0.0.4<\/h4>\n\n<ul>\n<li>WordPress.org submission prep: added <code>== External services ==<\/code> and <code>== Privacy ==<\/code> readme sections required by WordPress.org for any plugin that communicates with an external API. Added <code>== Screenshots ==<\/code> section referencing the four images in <code>.wordpress-org\/<\/code>. No code-behavior changes.<\/li>\n<\/ul>\n\n<h4>0.0.3<\/h4>\n\n<ul>\n<li><strong>Renamed<\/strong>: plugin headline framing changed from \"for WooCommerce\" to \"for WordPress\". The plugin still requires WooCommerce (and still ships as a WC payment gateway under the hood) \u2014 that's now positioned as a dependency rather than the marketing headline. Class names, namespaces, option keys, hook names, and the text domain are unchanged.<\/li>\n<li>GitHub repository renamed from <code>allscale-checkout-woocommerce<\/code> to <code>allscale-wordpress-plugin<\/code>. Old URLs continue to redirect via GitHub's rename mechanism.<\/li>\n<\/ul>\n\n<h4>0.0.2<\/h4>\n\n<ul>\n<li>Remove <code>Api_Client::get_intent_status()<\/code> \u2014 dead code, never called (the return-URL fallback uses <code>get_intent_details<\/code> for full fields). Restore in 5 lines if a future polling path needs it.<\/li>\n<li>Documentation accuracy: clarify in architecture.md that <code>Admin::render_notices<\/code> ships 4 notice types (settings save result, first webhook, sandbox migration, credentials missing) and the other 3 from the design brief live in their own surfaces (WC-required notice in <code>Plugin<\/code>, currency-unsupported inline on the settings page, activation\/get-started via the setup wizard).<\/li>\n<\/ul>\n\n<h4>0.0.1<\/h4>\n\n<p>First pre-release of the AllScale Checkout rewrite. Deliberately labeled v0 \u2014 not yet production-stable, expect rough edges.<\/p>\n\n<p>Major changes vs the prior 0.1.x community beta:<\/p>\n\n<ul>\n<li>Sandbox toggle removed (Allscale API consolidated to one base URL \u2014 use test-store credentials to test).<\/li>\n<li>Status enum expanded from 6 to all 12 documented Allscale states.<\/li>\n<li>Return-URL fallback now reads full intent details (the 0.1.x fallback used the wrong endpoint and never worked correctly).<\/li>\n<li><code>redirect_url<\/code> moved to top level; <code>user_id<\/code> \/ <code>user_name<\/code> now sent.<\/li>\n<li>Allscale error codes mapped to user-facing copy.<\/li>\n<li>0.1 USDT minimum payment enforced up-front.<\/li>\n<li>Settings save validates credentials via <code>\/v1\/test\/ping<\/code> before storing them.<\/li>\n<li>New: 4-step setup wizard on first activation.<\/li>\n<li>New: Test connection button in settings (AJAX-backed).<\/li>\n<li>New: Allscale Payment meta box on each order \u2014 status pill, paid\/fee\/net breakdown, tx hash with block-explorer link, payment-method type, chain badge.<\/li>\n<li>New: Front-end thank-you status block (confirmed \/ pending with auto-refresh \/ failed).<\/li>\n<li>New: Webhook health observation (last-received timestamp, first-webhook celebration, stale-after-7-days warning).<\/li>\n<li>New: Native USDT pricing opt-in for crypto-first stores.<\/li>\n<li>New: Branded \"needs WooCommerce\" notice with one-click Install or Activate CTA.<\/li>\n<li>Fixed: Webhook handler now registered unconditionally on <code>init<\/code>, no longer dependent on the gateway constructor running.<\/li>\n<li>Fixed: <code>mb_strimwidth<\/code> for order descriptions \u2014 CJK \/ emoji product names no longer get sliced mid-character.<\/li>\n<li>Fixed: Order_Locker mutex around state mutations \u2014 webhook + return-URL fallback can't race.<\/li>\n<li>Fixed: Late failure-state webhooks no longer revert already-paid orders.<\/li>\n<li>Fixed: <code>cancelled<\/code> added to terminal-status exclusion.<\/li>\n<li>Fixed: Gateway and Blocks_Integration classes now lazy-loaded after their WooCommerce parents are confirmed available \u2014 avoids a fatal when this plugin loads before WooCommerce.<\/li>\n<li>Full i18n with text domain <code>allscale-checkout<\/code>.<\/li>\n<\/ul>","raw_excerpt":"Accept crypto payments with 0.6% fees (min $0.10) and instant USDT settlement to your own wallet. Non-custodial. Requires WooCommerce.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326641"}],"author":[{"embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/allscaleio"}],"wp:attachment":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326641"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326641"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326641"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326641"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326641"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}