=== Split Pay – Stripe Connect Split Payments & Multi-Vendor Marketplace for WooCommerce & FluentCart ===
Contributors: gauchoplugins, brandonfire, freemius
Donate link: https://splitpayplugin.com
Tags: stripe connect, split payments, multi-vendor marketplace, vendor payout, woocommerce marketplace
Requires at least: 5.2.3
Tested up to: 7.0
Stable tag: 3.7.2
Requires PHP: 7.0
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0

Split payments between multiple Stripe Connected Accounts using Stripe Connect. Works with WooCommerce and FluentCart.

== Description ==

**Split Pay** is the leading WordPress split payments plugin powered by **Stripe Connect**. Automatically split payments between your platform and one or more connected Stripe accounts — perfect for **multi-vendor marketplaces**, **vendor payouts**, **commission management**, and **business partner revenue sharing**.

Split Pay works with multiple e-commerce platforms including **WooCommerce** and **FluentCart**, 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.

### How It Works

Split Pay uses the **Stripe Connect Transfers API** 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 — transfers appear in the Stripe Dashboard and are fully trackable from your WordPress admin.

### Supported Platforms & Gateways

* **WooCommerce** with [WooCommerce Stripe Payment Gateway](https://wordpress.org/plugins/woocommerce-gateway-stripe/) (official)
* **WooCommerce** with [Payment Plugins for Stripe WooCommerce](https://wordpress.org/plugins/woo-stripe-payment/)
* **FluentCart** with FluentCart's built-in Stripe integration

Each gateway is configured independently on the Integrations tab with its own platform secret keys, webhook syncing, and connected account management.

### Who Is Split Pay For?

* **Multi-vendor marketplace** owners who need automatic vendor payouts
* **Business partnerships** where revenue is shared between parties
* **Supplier and vendor relationships** with automated commission payments
* **Affiliate or referral storefronts** that split sales with partners
* **Service platforms** that distribute payments to service providers
* **Subscription businesses** that share recurring revenue with vendors

### Requirements

* At least one supported e-commerce plugin: [WooCommerce](https://wordpress.org/plugins/woocommerce/) or [FluentCart](https://fluentcart.com/)
* A Stripe payment gateway plugin configured for your chosen platform
* Your Stripe platform secret key (entered in the Integrations tab per gateway)
* Minimum transfer amount of $1 per Stripe limitations
* Transfers between Stripe accounts in the same country/region (cross-border support coming soon)

---

## 🆓 Free Features

### ％ PERCENTAGE-BASED SPLIT PAYMENTS
Transfer a percentage of every sale to a single connected Stripe account. Define a global split percentage and every payment is automatically divided — no manual payouts required. Works with WooCommerce and FluentCart.

### 💱 CURRENCY AGNOSTIC PAYMENTS
Accept payments in any currency supported by Stripe. Split payment calculations happen automatically regardless of your store currency — USD, EUR, GBP, AUD, CAD, and 100+ more.

### 🔧 INTEGRATIONS TAB WITH GUIDED SETUP
The Integrations tab auto-detects your installed e-commerce plugins and Stripe gateways. Configure platform secret keys, sync webhooks, and manage connected accounts per gateway — all from one place. Supports WooCommerce (two Stripe gateways) and FluentCart simultaneously.

---

## ⭐ PRO Features

### 🔀 SPLIT PAYMENTS ACROSS MULTIPLE VENDOR ACCOUNTS
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.

### 🏢 VENDOR ONBOARDING & SELF-REGISTRATION
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 — no technical configuration needed. Assign any WordPress user role as a vendor role for maximum flexibility.

### 🔍 PRODUCT-LEVEL COMMISSION RATES
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 — available for both WooCommerce products and FluentCart products.

### 📊 GLOBAL & PRODUCT-LEVEL FIXED AMOUNT TRANSFERS
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.

### 🃏 COMBINE PERCENTAGES AND FIXED AMOUNTS
Use percentage-based commissions for some products and fixed-amount payouts for others — all in the same store. Transfer $10 from Product X sales and 25% from Product Y sales simultaneously.

### 🍒 VARIABLE PRODUCT SUPPORT
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.

### 🔁 WOOCOMMERCE SUBSCRIPTIONS SUPPORT
Fully compatible with the official [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/) plugin. Every recurring subscription payment automatically triggers the same split payment transfer — so recurring revenue is shared with your connected vendors or partners on every billing cycle.

### 🚢 SHIPPING FEE TRANSFERS
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.

### 💸 TAX TRANSFERS
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.

### 💳 ALL STRIPE PAYMENT METHODS SUPPORTED
Works with every payment method available through your Stripe gateway — 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.

### ↩️ AUTOMATIC REFUND HANDLING
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.

### 🔄 RETRY FAILED TRANSFERS
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.

### 📃 TRANSFER DASHBOARD & CSV EXPORT
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.

### ⏩ HIGH-PERFORMANCE ORDER STORAGE (HPOS) COMPATIBLE
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.

### 🕜 BULK EDITOR FOR PRODUCTS
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 — then update transfer values and connected accounts in bulk.

### ✉️ TRANSFER CONFIRMATION EMAILS
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.

### 🛡️ ROBUST SETUP VALIDATION
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.

### 🔌 DEVELOPER-FRIENDLY WITH HOOKS & FILTERS
Extensive WordPress filter hooks for customizing transfer behavior — modify transfer metadata, override connected accounts, adjust calculations, and integrate with custom workflows. Full documentation available for developers.

---

### 🌱 [WEBSITE & PRICING](https://splitpayplugin.com/)
### 📕 [DOCUMENTATION](https://docs.splitpayplugin.com/)
### 💬 [SUPPORT](https://wordpress.org/support/plugin/bsd-woo-stripe-connect-split-pay/)

---

### Compatibility

* **WooCommerce** — Full integration with WooCommerce orders, products, and admin
* **FluentCart** — Full integration with FluentCart orders, products, and SPA admin
* **WooCommerce Stripe Payment Gateway** — Official Stripe gateway for WooCommerce
* **Payment Plugins for Stripe WooCommerce** — Alternative Stripe gateway for WooCommerce
* **FluentCart Stripe** — FluentCart's built-in Stripe payment integration
* **WooCommerce Subscriptions** — Recurring split payments for subscription products
* **WooCommerce HPOS** — High-Performance Order Storage fully supported
* **WooCommerce Bundles** — Split payments work with bundled products
* **Advanced Product Fields** — Compatible with custom product field plugins
* **WordPress Multisite** — Supports multisite installations

---

## GAUCHO PLUGINS PORTFOLIO

**[Payment Page](https://wordpress.org/plugins/payment-page/)**: Accept payments in a beautiful payment form in less than 60 seconds.

**[Split Pay Plugin](https://wordpress.org/plugins/bsd-woo-stripe-connect-split-pay/)**: Split WooCommerce payments across multiple connected Stripe accounts.

**[Login for Stripe Customer Portal](https://wordpress.org/plugins/login-stripe-customer-portal/)**: Create an account login area for your Stripe customers.

**[Gyta Buyback](https://wordpress.org/plugins/gyta-buyback/)**: Create a trade-in / buyback business using WooCommerce.

**[Version Info](https://wordpress.org/plugins/version-info/)**: Show WP, PHP, MySQL & Web Server Versions in the WP-Admin Dashboard.

**[China Payments Plugin](https://wordpress.org/plugins/wp-stripe-global-payments/)**: Accept WeChat Pay and Alipay payments from Chinese customers.

**[Blocked in China](https://wordpress.org/plugins/blocked-in-china/)**: Check if your website is available in the Chinese mainland.

== Installation ==

1. Upload `bsd-split-pay-stripe-connect-woo.zip` through the **Plugins > Add New > Upload** menu in WordPress.
2. Click **Activate** to enable the plugin.
3. Navigate to **Split Pay > Integrations** to configure your gateway settings.
4. For each detected Stripe gateway, enter your platform secret key (test and/or live) and click "Sync Connected Accounts."
5. Go to **Split Pay > Global Transfer Settings** to add connected accounts and set your global transfer percentage or fixed amount.
6. Process a test payment to verify your split payment configuration.
7. Check out our [documentation](https://docs.splitpayplugin.com) for detailed setup guides and configuration options.

== Frequently Asked Questions ==

= What is Split Pay and how does it work? =

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).

= What plugins are required for Split Pay to work? =

Split Pay requires at least one supported e-commerce plugin with a Stripe payment gateway. Supported combinations include: WooCommerce with the [WooCommerce Stripe Payment Gateway](https://wordpress.org/plugins/woocommerce-gateway-stripe/), WooCommerce with [Payment Plugins for Stripe WooCommerce](https://wordpress.org/plugins/woo-stripe-payment/), or [FluentCart](https://fluentcart.com/) with its built-in Stripe integration. You can run multiple platforms and gateways simultaneously.

= Can I use Split Pay to build a multi-vendor marketplace? =

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.

= What payment methods are supported for split payments? =

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.

= Does Split Pay work with WooCommerce Subscriptions? =

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 — so recurring revenue is shared with your connected vendors or partners on every billing cycle.

= Can I set different commission rates for different products? =

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.

= How do vendors connect their Stripe account to my WooCommerce store? =

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 — no technical setup required from the vendor. You can assign any WordPress user role as a vendor role.

= Does Split Pay handle refunds automatically? =

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.

= What happens if a transfer fails? =

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 — no need to log into the Stripe Dashboard.

= Can I transfer shipping fees and taxes to vendor accounts? =

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 — giving you full control over how fees and taxes are shared with vendors.

= Is Split Pay compatible with WooCommerce High-Performance Order Storage (HPOS)? =

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.

= Can I export my transfer history? =

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.

= What is the minimum transfer amount? =

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.

= Can I split payments to Stripe accounts in different countries? =

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.

= Is there a bulk way to manage transfer settings for many products? =

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.

= Does Split Pay work with WooCommerce Bundles or other product types? =

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.

= Can I use multiple Stripe gateways at the same time? =

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.

= Does Split Pay work without WooCommerce? =

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.

= Where can I find documentation and setup guides? =

Full documentation including setup guides, configuration tutorials, webhook setup instructions, and troubleshooting is available at [docs.splitpayplugin.com](https://docs.splitpayplugin.com/). For plugin support, visit the [WordPress.org support forum](https://wordpress.org/support/plugin/bsd-woo-stripe-connect-split-pay/).

== Screenshots ==

* Multiple Connected Accounts — Split payments across multiple vendor Stripe accounts
* Product-level Transfers — Set unique commission rates per product
* Transfer Shipping Fees — Route shipping revenue to vendor accounts
* View Transfers — Track all split payment transactions in your WordPress admin
* Onboarding Vendors — Vendors connect their Stripe account with one click

== Changelog ==

= 3.7.2 =
* Fixed: Per-product transfer-percentage validator no longer fires a blocking native popup that could abort save. Customers running account-per-product workflows (where each connected account is intentionally configured at 100% of its product's payment) were blocked from saving by the "above 97%" confirm dialog added in 3.7.0. The popup has been removed; save always proceeds.
* New: When the aggregate transfer percentage crosses 97% (warning) or 100% (error), the plugin now surfaces a dismissible WordPress admin notice on the next page load instead of a modal popup. The notice is informational only and is cleared once dismissed.
* Note: The underlying multi-account aggregate validation math is being reworked for 3.7.3 to better handle account-per-product routing setups where per-account percentages are intentionally independent rather than slices of a single payment.

= 3.7.1 =
* Compat: WP 7.0 readiness (Tested up to 7.0).
* Fixed: Resolved a fatal error ("Call to undefined method WC_Stripe_Logger::log()") on sites running Payment Plugins' Stripe Payment Gateway for WooCommerce (woo-stripe-payment) WITHOUT the official WooCommerce Stripe Payment Gateway. All 155 legacy WC_Stripe_Logger::log() call sites now route through a guarded safe_wcs_log() helper that falls back to WC_Stripe_Logger::debug() and then PHP error_log() when needed.

= 3.7.0 =
* Fixed: Multi-account global pool math regression — percentages now apply to the order subtotal independently per account, matching pre-3.7.0 (3.6.x) behaviour.
* New: Integrations tab with live detection of all supported e-commerce platforms and Stripe gateways.
* New: FluentCart integration for splitting FluentCart orders via Stripe Connect.
* New: Payment Plugins for Stripe WooCommerce gateway support alongside the official WooCommerce Stripe Payment Gateway.
* New: Top-level Split Pay admin menu visible regardless of which platform is active.
* New: Transfer log tracks integration source (WooCommerce / FluentCart) with filterable source column.
* New: Modular adapter architecture for streamlined future integrations.
* New: Delayed Transfers (PRO) -- optional setting to hold the Stripe Transfer until the WooCommerce order is marked Completed.
* New: Front-end vendor onboarding shortcode [split_pay_vendor_connect] for self-registered vendors.
* New: Developer filter spp_integrations and action spp_register_integrations to register additional integrations from third-party code.
* New: Developer filter spp_product_data_tab_classes to opt non-simple WooCommerce product types into the Split Pay product data tab.
* Improved: Plugin no longer requires WooCommerce to activate -- works with FluentCart standalone.
* Improved: Connected accounts shared across all integrations.
* Improved: Consistent upgrade prompts linking to the in-dashboard pricing page.
* Improved: WooCommerce payment_complete handler now uses the unified TransferEngine for shipping, tax, and product transfers.
* Improved: Hardened redirect/i18n/capability checks across the admin onboarding flow.
* Fixed: Activation no longer fails when WooCommerce Stripe Payment Gateway is not installed.
* Fixed: Currency symbol in transfer order notes now respects the order currency instead of hardcoded "$".

= 3.6.4 =
* Fix webhook sync failing when stored endpoint IDs are stale, deleted, or mode-mismatched.
* Added URL-based fallback to find the correct webhook endpoint automatically.
* Fixed scoping bug with API key in live mode webhook sync path.

= 3.6.3 =
* Fix to multiple product transfers.
* Fix PEWC (Product Extra Options) transfer to use instance-based Stripe client.
* Freemius update.

See our full changelog in our [documentation](https://docs.splitpayplugin.com/support/changelog).

== Upgrade Notice ==
