{"id":139734,"date":"2021-04-19T19:27:33","date_gmt":"2021-04-19T19:27:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bsd-woo-stripe-connect-split-pay\/"},"modified":"2026-07-21T21:29:14","modified_gmt":"2026-07-21T21:29:14","slug":"bsd-woo-stripe-connect-split-pay","status":"publish","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/bsd-woo-stripe-connect-split-pay\/","author":16742394,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.8.1","stable_tag":"3.8.1","tested":"7.0.2","requires":"5.2.3","requires_php":"7.4","requires_plugins":null,"header_name":"Split Pay for Stripe Connect","header_author":"Gaucho Plugins","header_description":"Split payments made in WooCommerce stores between a Stripe Connected Account and a Stripe Platform Account","assets_banners_color":"61b5ff","last_updated":"2026-07-21 21:29:14","external_support_url":"https:\/\/splitpayplugin.com\/support\/","external_repository_url":"","donate_link":"https:\/\/splitpayplugin.com","header_plugin_uri":"","header_author_uri":"https:\/\/gauchoplugins.com","rating":5,"author_block_rating":0,"active_installs":100,"downloads":13688,"num_ratings":20,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.0.0":{"tag":"3.0.0","author":"paulmiller3000","date":"2021-04-19 19:27:15"},"3.0.1":{"tag":"3.0.1","author":"brandonfire","date":"2023-09-20 12:26:48"},"3.1.0":{"tag":"3.1.0","author":"paulmiller3000","date":"2021-04-21 19:01:12"},"3.2.0":{"tag":"3.2.0","author":"brandonfire","date":"2022-07-11 21:14:52"},"3.2.1":{"tag":"3.2.1","author":"brandonfire","date":"2022-07-21 22:42:24"},"3.2.10":{"tag":"3.2.10","author":"brandonfire","date":"2023-07-12 17:51:47"},"3.2.2":{"tag":"3.2.2","author":"brandonfire","date":"2022-09-21 21:55:38"},"3.2.3":{"tag":"3.2.3","author":"brandonfire","date":"2023-03-07 20:20:45"},"3.2.4":{"tag":"3.2.4","author":"brandonfire","date":"2023-03-09 20:29:54"},"3.2.5":{"tag":"3.2.5","author":"brandonfire","date":"2023-04-07 17:19:11"},"3.2.6":{"tag":"3.2.6","author":"brandonfire","date":"2023-04-13 20:17:26"},"3.2.7":{"tag":"3.2.7","author":"brandonfire","date":"2023-04-19 23:06:22"},"3.2.8":{"tag":"3.2.8","author":"brandonfire","date":"2023-05-31 20:40:29"},"3.2.9":{"tag":"3.2.9","author":"brandonfire","date":"2023-06-20 22:04:53"},"3.3":{"tag":"3.3","author":"brandonfire","date":"2023-07-21 08:32:26"},"3.3.1":{"tag":"3.3.1","author":"brandonfire","date":"2023-09-19 15:55:37"},"3.3.10":{"tag":"3.3.10","author":"brandonfire","date":"2024-03-28 03:43:48"},"3.3.11":{"tag":"3.3.11","author":"brandonfire","date":"2024-04-23 10:10:22"},"3.3.2":{"tag":"3.3.2","author":"brandonfire","date":"2023-09-22 10:30:48"},"3.3.3":{"tag":"3.3.3","author":"brandonfire","date":"2023-09-25 19:19:57"},"3.3.4":{"tag":"3.3.4","author":"brandonfire","date":"2023-10-02 08:43:59"},"3.3.5":{"tag":"3.3.5","author":"brandonfire","date":"2023-12-05 08:31:08"},"3.3.6":{"tag":"3.3.6","author":"brandonfire","date":"2023-12-05 18:13:05"},"3.3.7":{"tag":"3.3.7","author":"brandonfire","date":"2024-01-30 03:36:23"},"3.3.8":{"tag":"3.3.8","author":"brandonfire","date":"2024-01-31 06:19:36"},"3.3.9":{"tag":"3.3.9","author":"brandonfire","date":"2024-02-27 08:35:06"},"3.4":{"tag":"3.4","author":"brandonfire","date":"2024-05-20 11:26:34"},"3.4.1":{"tag":"3.4.1","author":"brandonfire","date":"2024-06-05 10:36:45"},"3.4.2":{"tag":"3.4.2","author":"brandonfire","date":"2024-06-06 09:22:58"},"3.4.3":{"tag":"3.4.3","author":"brandonfire","date":"2024-06-21 19:19:27"},"3.4.4":{"tag":"3.4.4","author":"brandonfire","date":"2024-07-18 15:20:22"},"3.4.5":{"tag":"3.4.5","author":"brandonfire","date":"2024-07-22 10:36:20"},"3.4.6":{"tag":"3.4.6","author":"brandonfire","date":"2024-07-22 12:47:33"},"3.4.7":{"tag":"3.4.7","author":"brandonfire","date":"2024-08-13 12:21:52"},"3.4.8":{"tag":"3.4.8","author":"brandonfire","date":"2024-09-06 12:18:56"},"3.4.9":{"tag":"3.4.9","author":"brandonfire","date":"2024-10-08 19:01:19"},"3.5.0":{"tag":"3.5.0","author":"brandonfire","date":"2024-10-16 00:13:06"},"3.5.1":{"tag":"3.5.1","author":"brandonfire","date":"2024-10-23 13:45:57"},"3.5.2":{"tag":"3.5.2","author":"brandonfire","date":"2024-11-21 10:26:21"},"3.5.3":{"tag":"3.5.3","author":"brandonfire","date":"2025-01-27 11:21:54"},"3.5.4":{"tag":"3.5.4","author":"brandonfire","date":"2025-04-21 22:27:28"},"3.5.5":{"tag":"3.5.5","author":"brandonfire","date":"2025-05-07 20:09:02"},"3.5.6":{"tag":"3.5.6","author":"brandonfire","date":"2025-07-25 04:21:34"},"3.5.7":{"tag":"3.5.7","author":"brandonfire","date":"2025-09-10 16:05:06"},"3.5.8":{"tag":"3.5.8","author":"brandonfire","date":"2025-12-16 15:47:04"},"3.5.9":{"tag":"3.5.9","author":"brandonfire","date":"2026-02-13 14:20:43"},"3.6.0":{"tag":"3.6.0","author":"brandonfire","date":"2026-02-27 22:21:22"},"3.6.1":{"tag":"3.6.1","author":"brandonfire","date":"2026-03-05 05:59:47"},"3.6.2":{"tag":"3.6.2","author":"brandonfire","date":"2026-03-05 17:31:55"},"3.6.3":{"tag":"3.6.3","author":"brandonfire","date":"2026-04-01 22:22:47"},"3.6.4":{"tag":"3.6.4","author":"brandonfire","date":"2026-04-07 20:54:43"},"3.7.0":{"tag":"3.7.0","author":"brandonfire","date":"2026-05-15 22:47:36"},"3.7.1":{"tag":"3.7.1","author":"brandonfire","date":"2026-05-18 00:41:01"},"3.7.2":{"tag":"3.7.2","author":"brandonfire","date":"2026-05-18 20:41:42"},"3.7.3":{"tag":"3.7.3","author":"brandonfire","date":"2026-05-20 02:25:05"},"3.7.4":{"tag":"3.7.4","author":"brandonfire","date":"2026-05-24 11:36:49"},"3.7.5":{"tag":"3.7.5","author":"brandonfire","date":"2026-06-07 08:48:24"},"3.8.0":{"tag":"3.8.0","author":"brandonfire","date":"2026-07-20 08:32:49"},"3.8.1":{"tag":"3.8.1","author":"brandonfire","date":"2026-07-21 21:29:14"}},"upgrade_notice":{"3.7.4":"<p>Critical stability + data-loss-prevention release. Fixes a long-standing class of bug that silently erased product Split Pay settings (vendor + percentage\/amount + shipping) on product saves that didn&#039;t include the SPP tab&#039;s fields \u2014 affects simple products AND product variations AND every release from 3.7.0 back through earlier 3.6.x. Includes an automatic one-time recovery migration that reconstructs erased settings from the transfer log for every product that ever had a successful Stripe transfer, a perpetual per-product Recover button on every product Split Pay tab for on-demand future recovery, and closes the last 18 admin <code>\\WC_Stripe_Logger::log()<\/code> call sites that could fatal under Payment Plugins&#039; Stripe gateway. Strongly recommended for all 3.6+ installs.<\/p>","3.7.3":"<p>Fixes a 3.7.2 fatal on sites using Payment Plugins&#039; Stripe gateway, a Name-Your-Price percentage calculation regression, a vendor-save regression on the product Split Pay tab, and a Transfers admin tab visibility regression introduced in 3.7.0. Strongly recommended for all 3.7.x users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":20},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2788400,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2788400,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2788399,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2788399,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3617717,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Split Pay \\u2014 Live Preview\",\"description\":\"Try Split Pay in your browser. Split WooCommerce\\\/FluentCart payments across multiple connected Stripe accounts. WooCommerce is pre-installed so you can explore the integration immediately.\",\"author\":\"Gaucho Plugins\",\"categories\":[\"Plugin\"]},\"landingPage\":\"\\\/wp-admin\\\/plugins.php\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"progress\":{\"weight\":5},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"}},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"progress\":{\"weight\":3},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"bsd-woo-stripe-connect-split-pay\"}},{\"step\":\"runPHP\",\"code\":\"<?php include 'wordpress\\\/wp-load.php'; delete_transient( '_wc_activation_redirect' );\"}]}"}},"all_blocks":[],"tagged_versions":["3.0.0","3.0.1","3.1.0","3.2.0","3.2.1","3.2.10","3.2.2","3.2.3","3.2.4","3.2.5","3.2.6","3.2.7","3.2.8","3.2.9","3.3","3.3.1","3.3.10","3.3.11","3.3.2","3.3.3","3.3.4","3.3.5","3.3.6","3.3.7","3.3.8","3.3.9","3.4","3.4.1","3.4.2","3.4.3","3.4.4","3.4.5","3.4.6","3.4.7","3.4.8","3.4.9","3.5.0","3.5.1","3.5.2","3.5.3","3.5.4","3.5.5","3.5.6","3.5.7","3.5.8","3.5.9","3.6.0","3.6.1","3.6.2","3.6.3","3.6.4","3.7.0","3.7.1","3.7.2","3.7.3","3.7.4","3.7.5","3.8.0","3.8.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3005502,"resolution":"1","location":"assets","locale":"","width":2608,"height":570},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3005502,"resolution":"2","location":"assets","locale":"","width":2016,"height":802},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3005502,"resolution":"3","location":"assets","locale":"","width":636,"height":308},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3005502,"resolution":"4","location":"assets","locale":"","width":3284,"height":1112},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3005502,"resolution":"5","location":"assets","locale":"","width":666,"height":696}},"screenshots":{"1":"Multiple Connected Accounts \u2014 Split payments across multiple vendor Stripe accounts","2":"Product-level Transfers \u2014 Set unique commission rates per product","3":"Transfer Shipping Fees \u2014 Route shipping revenue to vendor accounts","4":"View Transfers \u2014 Track all split payment transactions in your WordPress admin","5":"Onboarding Vendors \u2014 Vendors connect their Stripe account with one click"}},"plugin_section":[],"plugin_tags":[131941,163080,256759,256760,22905],"plugin_category":[45],"plugin_contributors":[168740,78154,183974],"plugin_business_model":[216238],"class_list":["post-139734","plugin","type-plugin","status-publish","hentry","plugin_tags-multi-vendor-marketplace","plugin_tags-split-payments","plugin_tags-stripe-connect","plugin_tags-vendor-payout","plugin_tags-woocommerce-marketplace","plugin_category-ecommerce","plugin_contributors-brandonfire","plugin_contributors-freemius","plugin_contributors-gauchoplugins","plugin_business_model-commercial","plugin_committers-brandonfire","plugin_support_reps-brandonfire","plugin_support_reps-gauchoplugins"],"banners":{"banner":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/banner-772x250.png?rev=2788399","banner_2x":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/banner-1544x500.png?rev=2788399","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/icon-128x128.png?rev=2788400","icon_2x":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/icon-256x256.png?rev=2788400","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/screenshot-1.png?rev=3005502","caption":"Multiple Connected Accounts \u2014 Split payments across multiple vendor Stripe accounts"},{"src":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/screenshot-2.png?rev=3005502","caption":"Product-level Transfers \u2014 Set unique commission rates per product"},{"src":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/screenshot-3.png?rev=3005502","caption":"Transfer Shipping Fees \u2014 Route shipping revenue to vendor accounts"},{"src":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/screenshot-4.png?rev=3005502","caption":"View Transfers \u2014 Track all split payment transactions in your WordPress admin"},{"src":"https:\/\/ps.w.org\/bsd-woo-stripe-connect-split-pay\/assets\/screenshot-5.png?rev=3005502","caption":"Onboarding Vendors \u2014 Vendors connect their Stripe account with one click"}],"raw_content":"<!--section=description-->\n<p><strong>Split Pay<\/strong> is the leading WordPress split payments plugin powered by <strong>Stripe Connect<\/strong>. Automatically split payments between your platform and one or more connected Stripe accounts \u2014 perfect for <strong>multi-vendor marketplaces<\/strong>, <strong>vendor payouts<\/strong>, <strong>commission management<\/strong>, and <strong>business partner revenue sharing<\/strong>.<\/p>\n\n<p>Split Pay works with multiple e-commerce platforms including <strong>WooCommerce<\/strong> and <strong>FluentCart<\/strong>, with support for multiple Stripe payment gateways per platform. Whether you're building a multi-vendor marketplace, managing supplier payments, running an affiliate storefront, or sharing revenue with business partners, Split Pay handles the entire payment splitting workflow so you can focus on growing your store.<\/p>\n\n<h3>How It Works<\/h3>\n\n<p>Split Pay uses the <strong>Stripe Connect Transfers API<\/strong> to automatically route a percentage or fixed amount of every sale to one or more connected Stripe accounts. It integrates with the Stripe payment gateway configured in your e-commerce platform \u2014 transfers appear in the Stripe Dashboard and are fully trackable from your WordPress admin.<\/p>\n\n<h3>Supported Platforms &amp; Gateways<\/h3>\n\n<ul>\n<li><strong>WooCommerce<\/strong> with <a href=\"https:\/\/wordpress.org\/plugins\/woocommerce-gateway-stripe\/\">WooCommerce Stripe Payment Gateway<\/a> (official)<\/li>\n<li><strong>WooCommerce<\/strong> with <a href=\"https:\/\/wordpress.org\/plugins\/woo-stripe-payment\/\">Payment Plugins for Stripe WooCommerce<\/a><\/li>\n<li><strong>FluentCart<\/strong> with FluentCart's built-in Stripe integration<\/li>\n<\/ul>\n\n<p>Each gateway is configured independently on the Integrations tab with its own platform secret keys, webhook syncing, and connected account management.<\/p>\n\n<h3>Who Is Split Pay For?<\/h3>\n\n<ul>\n<li><strong>Multi-vendor marketplace<\/strong> owners who need automatic vendor payouts<\/li>\n<li><strong>Business partnerships<\/strong> where revenue is shared between parties<\/li>\n<li><strong>Supplier and vendor relationships<\/strong> with automated commission payments<\/li>\n<li><strong>Affiliate or referral storefronts<\/strong> that split sales with partners<\/li>\n<li><strong>Service platforms<\/strong> that distribute payments to service providers<\/li>\n<li><strong>Subscription businesses<\/strong> that share recurring revenue with vendors<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>At least one supported e-commerce plugin: <a href=\"https:\/\/wordpress.org\/plugins\/woocommerce\/\">WooCommerce<\/a> or <a href=\"https:\/\/fluentcart.com\/\">FluentCart<\/a><\/li>\n<li>A Stripe payment gateway plugin configured for your chosen platform<\/li>\n<li>Your Stripe platform secret key (entered in the Integrations tab per gateway)<\/li>\n<li>Minimum transfer amount of $1 per Stripe limitations<\/li>\n<li>Transfers between Stripe accounts in the same country\/region (cross-border support coming soon)<\/li>\n<\/ul>\n\n\n\n<h3>\ud83c\udd93 Free Features<\/h3>\n\n<h3>\uff05 PERCENTAGE-BASED SPLIT PAYMENTS<\/h3>\n\n<p>Transfer a percentage of every sale to a single connected Stripe account. Define a global split percentage and every payment is automatically divided \u2014 no manual payouts required. Works with WooCommerce and FluentCart.<\/p>\n\n<h3>\ud83d\udcb1 CURRENCY AGNOSTIC PAYMENTS<\/h3>\n\n<p>Accept payments in any currency supported by Stripe. Split payment calculations happen automatically regardless of your store currency \u2014 USD, EUR, GBP, AUD, CAD, and 100+ more.<\/p>\n\n<h3>\ud83d\udd27 INTEGRATIONS TAB WITH GUIDED SETUP<\/h3>\n\n<p>The Integrations tab auto-detects your installed e-commerce plugins and Stripe gateways. Configure platform secret keys, check webhook endpoints, and manage connected accounts per gateway \u2014 all from one place. Supports WooCommerce (two Stripe gateways) and FluentCart simultaneously.<\/p>\n\n\n\n<h3>\u2b50 PRO Features<\/h3>\n\n<h3>\ud83d\udd00 SPLIT PAYMENTS ACROSS MULTIPLE VENDOR ACCOUNTS<\/h3>\n\n<p>Split payments across multiple connected Stripe accounts simultaneously. Onboard unlimited vendors, suppliers, or service providers and configure individual transfer amounts for each connected account. Works with both WooCommerce and FluentCart orders.<\/p>\n\n<h3>\ud83c\udfe2 VENDOR ONBOARDING &amp; SELF-REGISTRATION<\/h3>\n\n<p>Invite vendors directly or let them self-register through a dedicated vendor registration page. Vendors connect their Stripe account to your platform with a single click \u2014 no technical configuration needed. Assign any WordPress user role as a vendor role for maximum flexibility.<\/p>\n\n<h3>\ud83d\udd0d PRODUCT-LEVEL COMMISSION RATES<\/h3>\n\n<p>Set transfer percentages globally or override them at the product level. For example, split all sales at 10% globally, but set Product A at 20% and Product B at 5%. Fine-grained commission control for every product in your catalog \u2014 available for both WooCommerce products and FluentCart products.<\/p>\n\n<h3>\ud83d\udcca GLOBAL &amp; PRODUCT-LEVEL FIXED AMOUNT TRANSFERS<\/h3>\n\n<p>Configure fixed transfer amounts globally or per product. Transfer $5 from every sale, or set $10 for Product X and $25 for Product Y. Mix and match with percentage-based splits across your store.<\/p>\n\n<h3>\ud83c\udccf COMBINE PERCENTAGES AND FIXED AMOUNTS<\/h3>\n\n<p>Use percentage-based commissions for some products and fixed-amount payouts for others \u2014 all in the same store. Transfer $10 from Product X sales and 25% from Product Y sales simultaneously.<\/p>\n\n<h3>\ud83c\udf52 VARIABLE PRODUCT SUPPORT<\/h3>\n\n<p>Full support for WooCommerce variable products. Set unique transfer values, transfer types, and connected accounts for each product variation. Percentages and fixed amounts can be combined across variations.<\/p>\n\n<h3>\ud83d\udd01 WOOCOMMERCE SUBSCRIPTIONS SUPPORT<\/h3>\n\n<p>Fully compatible with the official <a href=\"https:\/\/woocommerce.com\/products\/woocommerce-subscriptions\/\">WooCommerce Subscriptions<\/a> plugin. Every recurring subscription payment automatically triggers the same split payment transfer \u2014 so recurring revenue is shared with your connected vendors or partners on every billing cycle.<\/p>\n\n<h3>\ud83d\udea2 SHIPPING FEE TRANSFERS<\/h3>\n\n<p>Transfer a percentage or fixed amount of shipping fees to connected vendor accounts. Ideal for marketplaces where vendors handle their own product fulfillment and shipping.<\/p>\n\n<h3>\ud83d\udcb8 TAX TRANSFERS<\/h3>\n\n<p>Transfer 100% of collected taxes to connected vendor accounts, or transfer partial taxes proportionally based on product-level transfer values. Full control over how tax revenue is distributed.<\/p>\n\n<h3>\ud83d\udcb3 ALL STRIPE PAYMENT METHODS SUPPORTED<\/h3>\n\n<p>Works with every payment method available through your Stripe gateway \u2014 credit cards, debit cards, Apple Pay, Google Pay, SEPA, iDEAL, Bancontact, and more. Supports the official WooCommerce Stripe Payment Gateway, Payment Plugins for Stripe WooCommerce, and FluentCart Stripe. Deferred payment methods automatically wait for settlement before transferring.<\/p>\n\n<h3>\u21a9\ufe0f AUTOMATIC REFUND HANDLING<\/h3>\n\n<p>When a refund is processed in WooCommerce, Split Pay automatically reverses the proportional transfer amounts to each connected vendor account. Supports both full and partial refunds with detailed order notes.<\/p>\n\n<h3>\ud83d\udd04 RETRY FAILED TRANSFERS<\/h3>\n\n<p>Encountered a failed transfer? Use the \"Retry Transfers\" order action to reprocess transfers directly from the order edit screen. No need to manually recreate transfers in Stripe.<\/p>\n\n<h3>\ud83d\udcc3 TRANSFER DASHBOARD &amp; CSV EXPORT<\/h3>\n\n<p>The Transfers tab in your WordPress admin displays a complete history of all split payment transactions across all integrations. Filter by source (WooCommerce \/ FluentCart), search, paginate, and export to CSV for accounting, reporting, or reconciliation.<\/p>\n\n<h3>\u23e9 HIGH-PERFORMANCE ORDER STORAGE (HPOS) COMPATIBLE<\/h3>\n\n<p>Fully tested and compatible with WooCommerce High-Performance Order Storage. Rest assured that all your split payment transfers work reliably at scale with the latest WooCommerce architecture.<\/p>\n\n<h3>\ud83d\udd5c BULK EDITOR FOR PRODUCTS<\/h3>\n\n<p>Manage transfer settings for hundreds or thousands of products with a spreadsheet-style bulk editor. Supports both WooCommerce and FluentCart products with source identification. Filter by category, product name, SKU, or attributes \u2014 then update transfer values and connected accounts in bulk.<\/p>\n\n<h3>\u2709\ufe0f TRANSFER CONFIRMATION EMAILS<\/h3>\n\n<p>Automatically send transfer confirmation emails detailing every split payment amount, links to transfers in the Stripe Dashboard, and any failures that occurred. Keep stakeholders informed on every transaction.<\/p>\n\n<h3>\ud83d\udee1\ufe0f ROBUST SETUP VALIDATION<\/h3>\n\n<p>API key format validation, incomplete configuration warnings, high transfer percentage alerts (97%+), and connected account country mismatch detection. Catch configuration issues before they affect your payments.<\/p>\n\n<h3>\ud83d\udd0c DEVELOPER-FRIENDLY WITH HOOKS &amp; FILTERS<\/h3>\n\n<p>Extensive WordPress filter hooks for customizing transfer behavior \u2014 modify transfer metadata, override connected accounts, adjust calculations, and integrate with custom workflows. Full documentation available for developers.<\/p>\n\n\n\n<h3>\ud83c\udf31 <a href=\"https:\/\/splitpayplugin.com\/\">WEBSITE &amp; PRICING<\/a><\/h3>\n\n<h3>\ud83d\udcd5 <a href=\"https:\/\/docs.splitpayplugin.com\/\">DOCUMENTATION<\/a><\/h3>\n\n<h3>\ud83d\udcac <a href=\"https:\/\/wordpress.org\/support\/plugin\/bsd-woo-stripe-connect-split-pay\/\">SUPPORT<\/a><\/h3>\n\n\n\n<h3>Compatibility<\/h3>\n\n<ul>\n<li><strong>WooCommerce<\/strong> \u2014 Full integration with WooCommerce orders, products, and admin<\/li>\n<li><strong>FluentCart<\/strong> \u2014 Full integration with FluentCart orders, products, and SPA admin<\/li>\n<li><strong>WooCommerce Stripe Payment Gateway<\/strong> \u2014 Official Stripe gateway for WooCommerce<\/li>\n<li><strong>Payment Plugins for Stripe WooCommerce<\/strong> \u2014 Alternative Stripe gateway for WooCommerce<\/li>\n<li><strong>FluentCart Stripe<\/strong> \u2014 FluentCart's built-in Stripe payment integration<\/li>\n<li><strong>WooCommerce Subscriptions<\/strong> \u2014 Recurring split payments for subscription products<\/li>\n<li><strong>WooCommerce HPOS<\/strong> \u2014 High-Performance Order Storage fully supported<\/li>\n<li><strong>WooCommerce Bundles<\/strong> \u2014 Split payments work with bundled products<\/li>\n<li><strong>Advanced Product Fields<\/strong> \u2014 Compatible with custom product field plugins<\/li>\n<li><strong>WordPress Multisite<\/strong> \u2014 Supports multisite installations<\/li>\n<\/ul>\n\n\n\n<h3>Roadmap:<\/h3>\n\n<ul>\n<li>Cross-border Stripe Connect transfer support (currently same country\/region only).<\/li>\n<\/ul>\n\n\n\n<h3>GAUCHO PLUGINS PORTFOLIO<\/h3>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/payment-page\/\">Payment Page<\/a><\/strong>: Start accepting payments in a beautiful payment form in less than 60 seconds<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/bsd-woo-stripe-connect-split-pay\/\">Split Pay Plugin<\/a><\/strong>: Split WooCommerce payments across multiple connected Stripe accounts.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/login-stripe-customer-portal\/\">Login for Stripe Customer Portal<\/a><\/strong>: Create an Account login area for your Stripe customers.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/gyta-buyback\/\">Gyta Buyback<\/a><\/strong>: Create a trade-in \/ buyback business using WooCommerce.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/version-info\/\">Version Info<\/a><\/strong>: Show WP, PHP, MySQL &amp; Web Server Versions in the WP-Admin Dashboard.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/wp-stripe-global-payments\/\">China Payments Plugin<\/a><\/strong>: Accept WeChat Pay and Alipay payments from Chinese customers.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/blocked-in-china\/\">Blocked in China<\/a><\/strong>: Check if your website is available in the Chinese mainland.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/speed-in-china\/\">Speed in China<\/a><\/strong>: Check your website\u2019s speed in the Chinese mainland.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>bsd-split-pay-stripe-connect-woo.zip<\/code> through the <strong>Plugins &gt; Add New &gt; Upload<\/strong> menu in WordPress.<\/li>\n<li>Click <strong>Activate<\/strong> to enable the plugin.<\/li>\n<li>Navigate to <strong>Split Pay &gt; Integrations<\/strong> to configure your gateway settings.<\/li>\n<li>For each detected Stripe gateway, enter your platform secret key (test and\/or live) and click \"Sync Connected Accounts.\"<\/li>\n<li>Go to <strong>Split Pay &gt; Global Transfer Settings<\/strong> to add connected accounts and set your global transfer percentage or fixed amount.<\/li>\n<li>Process a test payment to verify your split payment configuration.<\/li>\n<li>Check out our <a href=\"https:\/\/docs.splitpayplugin.com\">documentation<\/a> for detailed setup guides and configuration options.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20split%20pay%20and%20how%20does%20it%20work%3F\"><h3>What is Split Pay and how does it work?<\/h3><\/dt>\n<dd><p>Split Pay is a WordPress plugin that uses the Stripe Connect Transfers API to automatically split payments between your Stripe platform account and one or more connected Stripe accounts. It works with WooCommerce and FluentCart. When a customer makes a purchase, the payment is collected by your platform and a configured percentage or fixed amount is automatically transferred to the connected vendor account(s).<\/p><\/dd>\n<dt id=\"what%20plugins%20are%20required%20for%20split%20pay%20to%20work%3F\"><h3>What plugins are required for Split Pay to work?<\/h3><\/dt>\n<dd><p>Split Pay requires at least one supported e-commerce plugin with a Stripe payment gateway. Supported combinations include: WooCommerce with the <a href=\"https:\/\/wordpress.org\/plugins\/woocommerce-gateway-stripe\/\">WooCommerce Stripe Payment Gateway<\/a>, WooCommerce with <a href=\"https:\/\/wordpress.org\/plugins\/woo-stripe-payment\/\">Payment Plugins for Stripe WooCommerce<\/a>, or <a href=\"https:\/\/fluentcart.com\/\">FluentCart<\/a> with its built-in Stripe integration. You can run multiple platforms and gateways simultaneously.<\/p><\/dd>\n<dt id=\"can%20i%20use%20split%20pay%20to%20build%20a%20multi-vendor%20marketplace%3F\"><h3>Can I use Split Pay to build a multi-vendor marketplace?<\/h3><\/dt>\n<dd><p>Yes! Split Pay is designed to power multi-vendor marketplaces on WooCommerce or FluentCart. With the Pro version, you can onboard multiple vendors, allow them to self-register and connect their Stripe accounts, set product-level commissions, and automatically split every payment across vendor accounts.<\/p><\/dd>\n<dt id=\"what%20payment%20methods%20are%20supported%20for%20split%20payments%3F\"><h3>What payment methods are supported for split payments?<\/h3><\/dt>\n<dd><p>Split Pay supports every payment method available through your Stripe gateway, including credit cards, debit cards, Apple Pay, Google Pay, SEPA Direct Debit, iDEAL, Bancontact, and more. It works with the official WooCommerce Stripe Payment Gateway, Payment Plugins for Stripe WooCommerce, and FluentCart Stripe. Deferred payment methods automatically wait for settlement before the transfer is processed.<\/p><\/dd>\n<dt id=\"does%20split%20pay%20work%20with%20woocommerce%20subscriptions%3F\"><h3>Does Split Pay work with WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Yes, Split Pay is fully compatible with the official WooCommerce Subscriptions plugin. When a subscription renewal payment is processed, the same split payment transfer is automatically triggered \u2014 so recurring revenue is shared with your connected vendors or partners on every billing cycle.<\/p><\/dd>\n<dt id=\"can%20i%20set%20different%20commission%20rates%20for%20different%20products%3F\"><h3>Can I set different commission rates for different products?<\/h3><\/dt>\n<dd><p>Absolutely. With Split Pay Pro, you can set transfer percentages or fixed amounts globally and then override them at the product level. You can even set different transfer values for each variation of a variable product. Mix percentage-based and fixed-amount commissions across your entire product catalog.<\/p><\/dd>\n<dt id=\"how%20do%20vendors%20connect%20their%20stripe%20account%20to%20my%20woocommerce%20store%3F\"><h3>How do vendors connect their Stripe account to my WooCommerce store?<\/h3><\/dt>\n<dd><p>Vendors can self-register through a dedicated vendor registration page or be invited by the store admin. Once registered, vendors see a \"Connect with Stripe\" button on their dashboard page. Clicking it initiates the Stripe Connect onboarding flow \u2014 no technical setup required from the vendor. You can assign any WordPress user role as a vendor role.<\/p><\/dd>\n<dt id=\"does%20split%20pay%20handle%20refunds%20automatically%3F\"><h3>Does Split Pay handle refunds automatically?<\/h3><\/dt>\n<dd><p>Yes. When you process a full or partial refund in WooCommerce, Split Pay Pro automatically calculates the proportional transfer amount and reverses it from each connected vendor account. Detailed notes about the reversal are added to the order for a complete audit trail.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20transfer%20fails%3F\"><h3>What happens if a transfer fails?<\/h3><\/dt>\n<dd><p>If a transfer fails due to a Stripe error or configuration issue, Split Pay logs the failure and adds a note to the order. With Pro, you can use the \"Retry Transfers\" order action to reprocess failed transfers directly from the order edit screen \u2014 no need to log into the Stripe Dashboard.<\/p><\/dd>\n<dt id=\"can%20i%20transfer%20shipping%20fees%20and%20taxes%20to%20vendor%20accounts%3F\"><h3>Can I transfer shipping fees and taxes to vendor accounts?<\/h3><\/dt>\n<dd><p>Yes. Split Pay Pro allows you to transfer a percentage or fixed amount of shipping fees to connected vendor accounts. You can also transfer 100% of collected taxes or distribute taxes proportionally based on each product's transfer value \u2014 giving you full control over how fees and taxes are shared with vendors.<\/p><\/dd>\n<dt id=\"is%20split%20pay%20compatible%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is Split Pay compatible with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes, Split Pay is fully tested and compatible with WooCommerce HPOS (High-Performance Order Storage). Whether you're using the legacy post-based storage or the new HPOS tables, split payments work reliably.<\/p><\/dd>\n<dt id=\"can%20i%20export%20my%20transfer%20history%3F\"><h3>Can I export my transfer history?<\/h3><\/dt>\n<dd><p>Yes. The Transfers tab in your WordPress admin dashboard shows a complete log of all split payment transactions across all integrations. You can filter by source (WooCommerce or FluentCart), search for specific transfers, and export the full dataset to CSV for accounting, bookkeeping, or reconciliation.<\/p><\/dd>\n<dt id=\"what%20is%20the%20minimum%20transfer%20amount%3F\"><h3>What is the minimum transfer amount?<\/h3><\/dt>\n<dd><p>The minimum transfer amount is $1 (or equivalent in your currency), which is a limitation set by Stripe. Transfer amounts below this threshold cannot be processed.<\/p><\/dd>\n<dt id=\"can%20i%20split%20payments%20to%20stripe%20accounts%20in%20different%20countries%3F\"><h3>Can I split payments to Stripe accounts in different countries?<\/h3><\/dt>\n<dd><p>Currently, Stripe Connect transfers can only be made between accounts in the same country or region, though payments can be accepted in any Stripe-supported currency. Cross-border transfer support is on our roadmap for a future release.<\/p><\/dd>\n<dt id=\"is%20there%20a%20bulk%20way%20to%20manage%20transfer%20settings%20for%20many%20products%3F\"><h3>Is there a bulk way to manage transfer settings for many products?<\/h3><\/dt>\n<dd><p>Yes. Split Pay Pro includes a spreadsheet-style bulk editor that lets you filter products by category, name, SKU, or attributes, and then update transfer values and connected accounts for multiple products at once. It's designed for stores with hundreds or thousands of products.<\/p><\/dd>\n<dt id=\"does%20split%20pay%20work%20with%20woocommerce%20bundles%20or%20other%20product%20types%3F\"><h3>Does Split Pay work with WooCommerce Bundles or other product types?<\/h3><\/dt>\n<dd><p>Yes. Split Pay is compatible with WooCommerce Bundles and supports simple, variable, and third-party product types. For FluentCart, it supports all FluentCart product types including products with multiple variations. The plugin integrates at the order level, so it works with most product configurations.<\/p><\/dd>\n<dt id=\"can%20i%20use%20multiple%20stripe%20gateways%20at%20the%20same%20time%3F\"><h3>Can I use multiple Stripe gateways at the same time?<\/h3><\/dt>\n<dd><p>Yes. Split Pay supports running multiple Stripe gateways simultaneously. For example, you can have the official WooCommerce Stripe Payment Gateway and Payment Plugins for Stripe WooCommerce both active, along with FluentCart's Stripe integration. Each gateway is configured independently with its own platform secret keys on the Integrations tab.<\/p><\/dd>\n<dt id=\"does%20split%20pay%20work%20without%20woocommerce%3F\"><h3>Does Split Pay work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. As of v3.7.0, Split Pay works with FluentCart as a standalone integration. You do not need WooCommerce installed if you are using FluentCart with its built-in Stripe payment gateway.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20documentation%20and%20setup%20guides%3F\"><h3>Where can I find documentation and setup guides?<\/h3><\/dt>\n<dd><p>Full documentation including setup guides, configuration tutorials, webhook setup instructions, and troubleshooting is available at <a href=\"https:\/\/docs.splitpayplugin.com\/\">docs.splitpayplugin.com<\/a>. For plugin support, visit the <a href=\"https:\/\/wordpress.org\/support\/plugin\/bsd-woo-stripe-connect-split-pay\/\">WordPress.org support forum<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.8.1<\/h4>\n\n<ul>\n<li>Fixed: the Connected Stripe Account selector on Global Transfer Settings could show \"[object Object]\" instead of the business name on some sites (typically sites cloned from a template, or where another plugin loads its own copy of the dropdown library). The name and its Live\/Test indicators now render correctly everywhere.<\/li>\n<li>Fixed: the Transfer Confirmation email's \"Tax Transfer to\" line displayed the product commission percentage instead of the tax transfer percentage \u2014 the transferred amount was always correct; only the label was wrong. It now shows the correct percentage (100% when Tax Transfer is set to \"All\").<\/li>\n<li>Fixed: vendor Stripe accounts connected in Test mode now register in Split Pay. Completing the test-mode connect link records the account immediately, and \"Refresh from Stripe\" now reads the same keys the connect link used, so a test-connected account no longer stays \"Not connected.\"<\/li>\n<li>Added: a \"Reset \/ reconnect accounts\" control so you can clear and re-sync your connected accounts without uninstalling the plugin. \"Refresh from Stripe\" now also prunes accounts that no longer exist in Stripe, so deleted\/phantom accounts disappear cleanly.<\/li>\n<li>Fixed: the Connect Status \"some vendors aren't connected in both modes\" warning no longer appears on stores that only use Live mode (or only Test) \u2014 it now only asks for the modes you actually have a platform key for.<\/li>\n<li>Fixed: the vendor onboarding page now shows a clear, actionable message instead of a raw Stripe error (\"Connect platforms cannot create new accounts\u2026\") when the saved key is scoped to a connected account rather than a platform account.<\/li>\n<li>Fixed: the WCFM \"double-pay risk\" banner is now mode-aware \u2014 it confirms when Guard mode is neutralizing WCFM's payouts instead of always alarming, and reports WCFM's true payout configuration. Added a clear notice when the WCFM integration is off but its settings have been changed.<\/li>\n<li>Added: set the Connected Account, Transfer Amount and Shipping Transfer Value once at the product level for a variable product and have them applied to every variation automatically \u2014 any per-variation values you set still take precedence. Clearer section labeling in the variation editor, and an inline hint when a product's vendor isn't connected to Stripe yet.<\/li>\n<li>Added: Split Pay now honors a vendor's WCFM per-vendor commission override (not just membership-tier plans) when the WCFM commission source is enabled.<\/li>\n<li>Fixed: an order that WooCommerce auto-cancelled (for example, an unpaid order cancelled by the hold-stock timer) but whose card was charged later now has its vendor split completed, instead of the transfer being silently missed. Paid-but-cancelled orders are also flagged and can be retried manually.<\/li>\n<li>Fixed: per-product shipping transfers now apportion the order's shipping charge across its line items by quantity, so each product routes only its own quantity-weighted share and every item's share adds up to exactly the shipping you collected \u2014 a cent-level correction on orders with more than one line item. The product Shipping Transfer fields now explain how the share is calculated, and the shipping field's \"Global Transfer Value\" link label is corrected to \"Global Shipping Transfer Value\".<\/li>\n<li>Fixed: vendor self-onboarding via the [split_pay_vendor_connect] shortcode and the \"Connect with Stripe\" button now use the same platform key you save on the Integrations tab. This resolves cases where onboarding failed outright with \"Could not start Stripe onboarding\" (admin) or a \"$config must be a string\" error (vendor).<\/li>\n<li>Fixed: per-product shipping transfers are now calculated by Split Pay itself instead of depending on a WooCommerce Analytics helper \u2014 so stores with the Analytics feature turned off now get the correct per-item shipping share instead of $0.00.<\/li>\n<li>Fixed: refunding shipping now reverses the correct portion of each vendor's shipping transfer. Previously a shipping-only refund could reverse too little (and a goods-only refund too much) because shipping and product transfers were reversed by the same overall ratio.<\/li>\n<li>Fixed: line-item refunds now reverse the correct vendor transfer even for WPML\/Polylang-translated products, parent-level splits on variable products, and WCML variations \u2014 cases where the ordered product differs from the one the split was configured on, which previously could reverse nothing.<\/li>\n<li>Fixed: retrying transfers on an order is now double-pay-safe. A retry seeds its ceiling from Stripe's own record of what was already sent for the charge (rather than the local log, which can under-count), and if a recomputed payout no longer matches what a vendor was already paid, the retry stops before sending anything and leaves an order note to reconcile.<\/li>\n<li>Added: when a vendor transfer is planned but can't be sent \u2014 for example a per-product shipping transfer below Stripe's $1 minimum, or an add-on with no connected account \u2014 Split Pay now records the reason in the order notes and shows an honest \"N of M transfers sent\" badge instead of a green all-clear.<\/li>\n<li>Added: a dedicated \"split-pay\" log under WooCommerce \u2192 Status \u2192 Logs (with a \"View log\" link on the Transfers tab), so transfer activity and any skipped legs are readable even when WooCommerce-Stripe's own logging is off.<\/li>\n<li>Changed: the Stripe webhook status is now verified against Stripe rather than a cached flag, so a store whose webhook endpoint was removed no longer shows a false \"configured\" checkmark. The Connect Status tab now shows each mode's webhook health and when its last event was received.<\/li>\n<li>Changed: corrected admin guidance that incorrectly implied Stripe fees cap transfers at about 97% of a sale. Split Pay routes transfers on the charge (source_transaction), so up to 100% can go to vendors; the notice now explains this. The genuine over-100% validation error is unchanged.<\/li>\n<li>Added: a pre-flight warning when product splits total 100% (or more) while \"Adjust transfers for coupons\" is off, so a coupon can't quietly push planned transfers past what the order actually charged. Notice only \u2014 payouts are unchanged.<\/li>\n<li>Added: optional order-fee routing. Map a WooCommerce order fee by name to a connected account (with a percentage, default 100%) on the Global Transfer Settings tab, and Split Pay routes that fee to the vendor alongside the product splits. Off by default and ignored entirely when unconfigured; negative\/zero fees are never transferred; fees route ex-tax.<\/li>\n<li>Fixed: \"Sync connected accounts\" on the Integrations tab now pulls in both your Test and Live vendors in one click whenever you have a key saved for both modes. Previously it only ever looked at the mode your store was currently switched to, so a live store whose vendors had onboarded in test just reported \"Synced 0\" with no hint that they existed. The result now tells you how many were found in each mode, and if one mode can't be reached the other still syncs.<\/li>\n<li>Added: choose the type of Stripe connected account vendors get when they onboard \u2014 Standard (default) or Express \u2014 under Vendor Onboarding. Express gives vendors the Stripe-hosted Express Dashboard and suits platforms configured for Express; both use Stripe-hosted onboarding. Existing accounts are unaffected, and developers can still select Custom \/ Accounts v2 via the spp_account_create_args filter.<\/li>\n<li>Fixed: FluentCart refunds now reverse the vendor's Split Pay transfers. The refund webhook handler required a payload field FluentCart never sends, so refunds never clawed anything back \u2014 the merchant absorbed every refund while the vendor kept their split. Full refunds reverse each transfer in full; partial refunds reverse each vendor's share of that specific refund (never double-counting earlier partials). If a partial refund's amount can't be determined from Stripe, nothing is reversed and an order note tells you to reverse manually \u2014 the safe direction.<\/li>\n<li>Added: FluentCart chargebacks now reverse vendor transfers automatically. A dispute that withdraws funds reverses each vendor's share of the disputed amount at creation; a dispute inquiry (no funds withdrawn) only adds a note, and if it later closes as lost the reversal runs then. Winning a dispute leaves an explanatory note. One dispute can never reverse twice, and a re-delivered webhook is ignored.<\/li>\n<li>Changed: the webhook buttons are now read-only checks. \"Check Webhook\" (Stripe Configuration) verifies the WooCommerce Stripe endpoint exists; \"Check webhooks\" (Integrations tab) counts the active endpoints on each key. Split Pay no longer adds transfer.* events to any webhook endpoint: nothing consumed them (transfers are order-driven), the Integrations sync edited every endpoint on the Stripe account including other sites' endpoints, and on WooCommerce Stripe the modification caused the gateway to rebuild its endpoint (rotating the webhook secret) on its next plugin update. Events previously added are harmless and are cleaned up by WooCommerce Stripe itself over time.<\/li>\n<li>Fixed: the Connect Status \"Last Stripe event received\" reading always showed \"No events recorded yet\" \u2014 it read a WooCommerce Stripe option name that has never existed. It now reads the gateway's real webhook-monitoring timestamps.<\/li>\n<li>Fixed: the automatic transfer retry no longer pays vendors on an order that was fully refunded while the retry was waiting. A refunded order now goes through the same charge-payability check as cancelled\/failed orders, which refuses to send anything when the charge shows a refund.<\/li>\n<\/ul>\n\n<h4>3.8.0<\/h4>\n\n<p><strong>Behavior changes when updating \u2014 please read before upgrading a live store:<\/strong>\n* Transfers now fire for ANY order that carries a Stripe charge from your platform account, whichever Stripe-backed gateway took the payment \u2014 previously only the official WooCommerce Stripe gateway and Payment Plugins for Stripe triggered transfers. Charges that are not in your platform account are detected and skipped with a clear order note, so a transfer is never misfired. If you use a third-party Stripe gateway and have been paying those vendors manually, stop after updating \u2014 Split Pay handles those orders now.\n* FluentCart subscription renewals are now split automatically (details below) \u2014 recurring charges pay the vendor their configured percentage with no setting change.\n* Per-product shipping transfers and Product Extras (PEWC) add-on transfers now actually fire when configured \u2014 both were silently broken in earlier releases. If you configured them in the past, those transfers begin with this update.\n* The Transfer Confirmation email (enabled by default, but silently broken since 3.7.0) resumes sending; disable it in settings if you no longer want it.\n* The WCFM and Dokan marketplace integrations are fully OPT-IN: nothing changes on a marketplace site until you turn on the integration's master switch on the Integrations tab.<\/p>\n\n<ul>\n<li>Added: a first-run setup wizard that walks a new install from zero to its first automatic transfer \u2014 enter your Stripe platform key, confirm your platform account, sync connected accounts and set a default split, then a readiness check \u2014 reachable on activation and from the Get Started links.<\/li>\n<li>Added: WCFM Marketplace integration (opt-in \u2014 enable it on the Integrations tab) \u2014 vendors who register through WCFM are automatically given the Split Pay vendor role, so Stripe Connect onboarding triggers with no admin action and their splits run.<\/li>\n<li>Added: a \"Connect with Stripe\" button right inside the WCFM vendor dashboard, and new vendor products are auto-linked to that vendor's connected Stripe account (with a one-click back-fill for products created before the vendor connected).<\/li>\n<li>Added: optionally drive each vendor's payout percentage from their WCFM membership tier (transfer % = 100 \u2212 the plan's commission %), resolved automatically at order time and updated whenever a vendor upgrades or downgrades \u2014 no per-product edits.<\/li>\n<li>Added: a Marketplaces section on the Integrations tab showing WCFM status, how many vendors are connected, products linked, and an always-on double-pay safety check with selectable coexistence modes (warn \/ reconcile \/ guard).<\/li>\n<li>Added: Vendor Automation (PRO, opt-in) \u2014 automatically create a product for each vendor the moment they finish Stripe onboarding, assigned to their connected account at a configurable vendor share percentage. Works hands-off with Name Your Price plugins so customers can pay any amount.<\/li>\n<li>Added: Vendor payment QR codes (PRO, opt-in) \u2014 each vendor gets a downloadable QR code linking to their product, shown on their dashboard and via the new <code>[split_pay_vendor_qr]<\/code> shortcode. Generated in the browser, no external services.<\/li>\n<li>Added: Transaction emails (PRO, opt-in) \u2014 notify the vendor when a transfer to their account succeeds and\/or the customer when their money has been sent.<\/li>\n<li>Added: Customizable order-received message (PRO, opt-in) for orders containing split-pay products, with a <code>{vendor_name}<\/code> placeholder.<\/li>\n<li>Added: <code>spp_vendor_onboarding_completed<\/code> and <code>spp_vendor_disconnected<\/code> action hooks for developers.<\/li>\n<li>Improved: every payout Split Pay creates is now tagged in Stripe with metadata (split_pay=1), so the plugin's own transfers can be identified with certainty during reconciliation and reporting.<\/li>\n<li>Fixed: the front-end <code>[split_pay_vendor_connect]<\/code> flow now confirms onboarding completion when the vendor returns from Stripe \u2014 previously vendors kept seeing the \"Resume Stripe Onboarding\" state until an admin-side sync.<\/li>\n<li>Added: visibility for failed vendor bank payouts \u2014 if a vendor's automatic Stripe payout to their bank bounces (closed or invalid account, etc.), Split Pay now records it and lists it on the Status tab so you can ask the vendor to fix their bank details. The transferred funds are not lost (they return to the vendor's Stripe balance) and Split Pay takes no money action; previously a bounced payout was completely invisible.<\/li>\n<li>Added: FluentCart subscription renewals are now split, not just the first order \u2014 every recurring renewal charge automatically pays the vendor their configured percentage, using the same per-product split settings already in place. Each renewal is paid exactly once, and PayPal renewals are left untouched.<\/li>\n<li>Added: automatic refund reclaim (PRO, opt-in) \u2014 when a refund can't be fully clawed back because the vendor's Stripe balance is too low, Split Pay reverses what it can immediately and records the rest as outstanding debt, then deducts it from that vendor's future transfers until cleared. Balances are shown per connected account, mode and currency on the Status tab, with a one-click write-off; tracking is per-currency and per-mode, idempotent, and never over-charges a vendor. Off by default.\n\n<ul>\n<li>Fixed: a single un-renderable transfer record can no longer white-screen the admin. Each row in the Transfers (and other admin) tables now renders inside a safety net \u2014 if one row hits an unexpected error it is replaced with a small \"could not be displayed\" placeholder and logged, while the rest of the table loads normally, instead of taking down the whole page with a fatal.<\/li>\n<\/ul><\/li>\n<li>Fixed: on stores running both WooCommerce and FluentCart, a WooCommerce refund could reverse a FluentCart vendor's transfer when the two platforms' independent order-id sequences collided on the same number \u2014 refund reversals are now strictly scoped to the platform the refund belongs to.<\/li>\n<li>Fixed: coupon discounts are now applied to vendor transfers from WooCommerce's stored, post-discount line totals. Edge cases such as two or more stacked coupons, or a coupon later edited or whose type was translated (e.g. by WPML), can no longer cause a transfer to be computed on more than the discounted amount actually captured.<\/li>\n<li>Fixed: orders placed in a secondary language reliably pay the vendor configured on the original product, with an added WooCommerce Multilingual variation-link fallback for cases where WPML's own resolver isn't available at order time.<\/li>\n<li>Fixed: a genuinely live connected account is no longer mislabeled \"TEST-mode account, unavailable in LIVE mode\" after upgrading \u2014 account modes are now repaired automatically from your own transfer history, with no Stripe key required.<\/li>\n<li>Improved (safety): a built-in ceiling guarantees the sum of all vendor transfers for an order can never exceed the captured charge, preventing partial-payout failures from any misconfiguration.<\/li>\n<li>Improved: accidental duplicate vendor rows (the same vendor at the same rate on one product or variation) are collapsed when you save, preventing double payouts, with a dismissible heads-up.<\/li>\n<\/ul>\n\n<h4>3.7.5.1<\/h4>\n\n<ul>\n<li>Fixed: orders no longer get stuck in \"Pending payment\" after a successful card payment \u2014 the Stripe payment notification is now matched to the order even before WooCommerce records the charge.<\/li>\n<li>Fixed: a refund now reliably reverses the vendor's payout, including on FluentCart orders.<\/li>\n<li>Improved: the Stripe payment-notification handler is more resilient to incomplete or repeated events.<\/li>\n<\/ul>\n\n<h4>3.7.5<\/h4>\n\n<ul>\n<li>Fixed: vendors are never paid \u2014 or refunded \u2014 twice, even when a payment or refund notification arrives more than once.<\/li>\n<li>Added: automatic payout reversal if a delayed bank payment (ACH\/SEPA) fails after vendors were already paid.<\/li>\n<li>Improved: clearer test-vs-live mode handling, reliable vendor-split saving, and a faster, more dependable Transfers tab.<\/li>\n<li>Improved: compatibility with other Stripe plugins, accessibility, security, and complete data cleanup on uninstall (incl. multisite).<\/li>\n<\/ul>\n\n<h4>3.7.4<\/h4>\n\n<ul>\n<li>Fixed: Product Split Pay settings (vendor, percentage \/ amount, shipping) no longer get silently erased on saves that don't include the Split Pay tab fields (variable parent save, REST\/API saves, third-party product saves, etc.).<\/li>\n<li>Fixed: Same erasure protection for product variations; vendor-only variation saves no longer wipe the selected vendor.<\/li>\n<li>Added: One-time upgrade migration rebuilds erased product settings from the transfer log (skips products that already have a vendor).<\/li>\n<li>Added: Perpetual per-product \"Recover Split Pay settings from transfer log\" tool on the WooCommerce product Split Pay tab (optional force-overwrite).<\/li>\n<li>Fixed: Per-product Recover panel is visible on the Split Pay tab (wrapper no longer uses WooCommerce's reserved <code>panel<\/code> class; now <code>spp-recovery-wrap<\/code>).<\/li>\n<li>Fixed: Admin paths no longer fatal with <code>WC_Stripe_Logger::log()<\/code> when only Payment Plugins' Stripe gateway is installed.<\/li>\n<li>Fixed: Transfers tab no longer fatals when a logged payment method doesn't map to an active gateway object.<\/li>\n<li>Fixed: Saved vendor stays visible on the product tab even when the account isn't in the synced-accounts list (orphan option shown).<\/li>\n<li>Fixed: Migrations no longer warn\/fatal under wp-cron or CLI on some hosts.<\/li>\n<\/ul>\n\n<h4>3.7.3<\/h4>\n\n<ul>\n<li>Fixed: <code>WC_Stripe_Logger::log()<\/code> fatals on Payment Plugins-only sites (namespaced 3.7.0 code paths now guarded).<\/li>\n<li>Fixed: Percentage splits on Name Your Price \/ customer-chosen-price orders use the paid line subtotal, not the catalog base price.<\/li>\n<li>Fixed: Vendor selection on the product Split Pay tab persists when percentage and amount are left empty.<\/li>\n<li>Fixed: Transfers tab empty while Stripe transfers succeeded (<code>stripe_mode<\/code> and related columns now written; <code>migration-373<\/code> backfills 3.7.0+ rows).<\/li>\n<\/ul>\n\n<h4>3.7.2<\/h4>\n\n<ul>\n<li>Fixed: Removed blocking \"above 97%\" confirm popup on product save (could cancel saves).<\/li>\n<li>New: 97% \/ 100% aggregate transfer warnings show as dismissible admin notices instead.<\/li>\n<\/ul>\n\n<h4>3.7.1<\/h4>\n\n<ul>\n<li>Compat: Tested up to WordPress 7.0.<\/li>\n<li>Fixed: <code>WC_Stripe_Logger::log()<\/code> fatals on Payment Plugins-only sites (legacy class paths guarded).<\/li>\n<\/ul>\n\n<h4>3.7.0<\/h4>\n\n<ul>\n<li>New: FluentCart support.<\/li>\n<li>New: Integrations tab (per-gateway keys, webhook sync, account sync).<\/li>\n<li>New: Top-level Split Pay admin menu.<\/li>\n<li>New: Payment Plugins for Stripe WooCommerce gateway support.<\/li>\n<li>New: <code>[split_pay_vendor_connect]<\/code> vendor onboarding shortcode.<\/li>\n<li>New: Delayed Transfers (PRO) \u2014 hold transfers until order is Completed.<\/li>\n<li>New: Transfer log source column (WooCommerce \/ FluentCart).<\/li>\n<li>New: <code>spp_integrations<\/code>, <code>spp_register_integrations<\/code>, <code>spp_product_data_tab_classes<\/code> hooks.<\/li>\n<li>Improved: Activates with FluentCart only (WooCommerce not required).<\/li>\n<li>Improved: Shared connected accounts across integrations; unified TransferEngine for WC shipping\/tax\/product transfers.<\/li>\n<li>Fixed: Multi-account global percentage math restored to pre-3.7.0 behaviour.<\/li>\n<li>Fixed: Activation no longer requires the official WooCommerce Stripe gateway.<\/li>\n<li>Fixed: Transfer order notes use the order currency symbol.<\/li>\n<\/ul>\n\n<h4>3.6.4<\/h4>\n\n<ul>\n<li>Fix webhook sync failing when stored endpoint IDs are stale, deleted, or mode-mismatched.<\/li>\n<li>Added URL-based fallback to find the correct webhook endpoint automatically.<\/li>\n<li>Fixed scoping bug with API key in live mode webhook sync path.<\/li>\n<\/ul>\n\n<h4>3.6.3<\/h4>\n\n<ul>\n<li>Fix to multiple product transfers.<\/li>\n<li>Fix PEWC (Product Extra Options) transfer to use instance-based Stripe client.<\/li>\n<li>Freemius update.<\/li>\n<\/ul>\n\n<p>See our full changelog in our <a href=\"https:\/\/docs.splitpayplugin.com\/support\/changelog\">documentation<\/a>.<\/p>","raw_excerpt":"Split payments between multiple Stripe Connected Accounts using Stripe Connect. Works with WooCommerce and FluentCart.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/139734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=139734"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brandonfire"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=139734"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=139734"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=139734"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=139734"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=139734"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=139734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}