---
title: "How Stripe Transfers Work"
description: "Understand how the Stripe Transfers API works with the Split Pay Plugin. Learn about platform vs connected accounts, the payment flow, and how transfers differ from direct and destination charges."
url: "https://docs.splitpayplugin.com/getting-started/how-stripe-transfers-work/"
---
## Platform vs Connected accounts

Stripe Connect uses a two-tier account model. Understanding this model is key to understanding how Split Pay works.

*   **Platform account** — This is *your* Stripe account. It's the account connected to your Stripe gateway adapter (the official WooCommerce Stripe Payment Gateway, Payment Plugins for Stripe, or FluentCart's built-in Stripe module) that processes customer payments. When a customer checks out, the charge is created on your platform account, and Stripe deducts its processing fees from this account.
*   **Connected accounts** — These are Stripe accounts belonging to your vendors, suppliers, partners, or anyone else you need to send money to. They are linked to your platform through [Stripe Connect](https://docs.stripe.com/connect). Each connected account has its own Stripe Dashboard, balance, and payout schedule.

Think of it this way: your platform is the hub, and connected accounts are the spokes. Money flows from customers into the hub, and your transfer rules determine how much flows out to each spoke.

## Payment flow

Here's what happens when a customer completes a purchase on your storefront (WooCommerce or FluentCart) with Split Pay configured:

Customer Pays

→

Stripe Platform Receives Payment

→

Stripe Fees Deducted

→

Split Pay Creates Transfer(s)

→

Connected Account(s) Receive Funds

Let's walk through a concrete example. Suppose a customer buys a $100 product, and you've configured Split Pay to transfer 70% to a vendor:

1.  **Customer pays $100** at checkout via Stripe.
2.  **Stripe charges $100** to the customer and places it in your platform's pending balance.
3.  **Stripe deducts its processing fee** (e.g., $3.20 for a 2.9% + $0.30 standard US fee) from your platform account.
4.  **Split Pay creates a transfer of $70** (70% of the $100 product total) from your platform's pending balance to the vendor's connected account.
5.  **Your platform keeps $26.80** ($100 − $3.20 fee − $70 transfer).

**Stripe fees are always deducted from the platform account.** Connected accounts receive the exact transfer amount you configure — Stripe does not deduct additional fees from the transfer itself. This is an important distinction from Direct Charges, where the connected account pays the fees.

## The transfers API vs direct & destination charges

Stripe Connect offers three ways to move money between accounts. Split Pay uses the **Transfers API** (also called "separate charges and transfers"). Here's how it compares to the other two approaches:

| Approach | Who processes the payment? | Who pays Stripe fees? | When is the split defined? |
| --- | --- | --- | --- |
| **Transfers API** (Split Pay uses this) | Platform | Platform | After the charge succeeds — transfers can be created at any time |
| **Destination Charges** | Platform | Platform or connected account | At the time of the charge — the split is defined in the charge request |
| **Direct Charges** | Connected account | Connected account | At the time of the charge — customer pays the connected account directly |

### Why the transfers API?

The Transfers API is the most flexible approach for WooCommerce *and* FluentCart stores because:

*   **Decoupled from the charge.** Transfers happen after the payment succeeds, which means your e-commerce platform handles checkout normally. There are no changes to the customer-facing payment flow on either WooCommerce or FluentCart.
*   **Multiple recipients.** A single charge can fund transfers to multiple connected accounts — ideal for orders with products from different vendors.
*   **Platform controls fees.** Your platform absorbs Stripe's processing fees, so you have full control over your pricing and margin calculations.
*   **Flexibility.** Transfer amounts can be calculated dynamically based on product rules, percentages, fixed amounts, or custom logic via developer filters.

Because the platform pays Stripe's processing fees, you should account for those fees when setting your transfer percentages. For example, if you transfer 100% of the product price, your platform will lose money on every transaction equal to the Stripe fee.

## Use cases

The Transfers API is well suited for a variety of business models. Here are the most common scenarios:

### Marketplace commission

You sell products on behalf of vendors and keep a commission on each sale. The vendor receives their share automatically after the payment is processed.

**Example:** You sell a concert ticket for **$50**. You want to keep a **15% commission** and send the rest to the event organizer.

*   Customer pays: **$50.00**
*   Stripe processing fee (2.9% + $0.30): **−$1.75**
*   Transfer to organizer (85% of $50): **−$42.50**
*   Your platform keeps: **$5.75** ($7.50 commission minus $1.75 in Stripe fees)

Notice that your effective commission is $5.75, not $7.50, because your platform absorbs the Stripe fee. Factor this into your commission rates when planning your pricing.

### Vendor & supplier payouts

You sell your own products but need to pay a vendor or supplier a fixed amount per sale — for manufacturing, fulfillment, drop-shipping, or licensing.

**Example:** You sell a custom phone case for **$35**. The manufacturer costs **$12 per unit**, so you configure a fixed $12 transfer.

*   Customer pays: **$35.00**
*   Stripe processing fee: **−$1.32**
*   Transfer to manufacturer (fixed): **−$12.00**
*   Your platform keeps: **$21.68**

### Partnerships & revenue sharing

You and a business partner co-run a store and split revenue. You can configure percentage-based transfers to divide the proceeds.

**Example:** You co-sell an online course for **$200**. Your partner created the content and receives **60%**.

*   Customer pays: **$200.00**
*   Stripe processing fee: **−$6.10**
*   Transfer to partner (60% of $200): **−$120.00**
*   Your platform keeps: **$73.90**

### Fundraising & donations

You accept donations or fundraising payments through WooCommerce and forward the funds to the receiving organization.

**Example:** A supporter donates **$25**. You transfer **100%** to the nonprofit's connected account (absorbing the Stripe fee yourself as the platform operator).

*   Donor pays: **$25.00**
*   Stripe processing fee: **−$1.03**
*   Transfer to nonprofit (100% of $25): **−$25.00**
*   Your platform covers: **−$1.03** (the Stripe fee)

Transferring 100% of the product price means your platform's Stripe balance will go negative by the amount of the processing fee. Make sure your Stripe account can cover this or adjust the transfer percentage to account for fees (e.g., 97% instead of 100%).

## Region restrictions

Stripe Connect transfers require your platform and connected accounts to be in the same country or region. However, Stripe supports **cross-border transfers** between the **US, Canada, UK, EEA, and Switzerland**. Transfers outside this corridor (e.g., US to Australia) will fail.

Split Pay automatically detects connected accounts in different countries and displays a warning on the **Integrations** tab (top-level **Split Pay** menu, 3.7.0+). See [International Transfers](../../faqs/international-transfers/) for the full list of supported regions and workarounds.

## Best fit for the transfers API

The Stripe Transfers API — and by extension, Split Pay — works best in scenarios where:

*   Your platform **processes the payment** and then distributes funds to other parties.
*   You need to **split a single payment** across multiple recipients.
*   You want **full control** over how much each party receives, independent of Stripe fees.
*   You're paying **vendors, suppliers, or partners** rather than having customers pay them directly.

**The Transfers API is ideal for vendor/supplier payout models** where your platform is the merchant of record. If you need customers to pay connected accounts directly (and have those accounts pay Stripe fees), consider Stripe’s Direct Charges instead — but note that this approach is **not** supported by Split Pay, as it requires a fundamentally different checkout integration.

Now that you understand how transfers work, you're ready to configure your first transfer rule.

[How to Transfer Payments ›](../../features/how-to-transfer-payments/)
