1. Introduction: Why Contractor Payouts Are Technically Non-Trivial
Paying contractors at scale isn’t just a feature - it’s infrastructure. Whether you're building a delivery app, a field services marketplace, a gig platform, or an ecommerce site that includes professional installation or fulfilment—like garage systems or home repairs—taking online payments is just one side of the equation. You also need to reliably, securely, and compliantly pay out to your contractors or service partners—often within minutes of job completion.
But splitting payments isn’t trivial. You’re dealing with:
-
Multiple stakeholders (contractor, platform, sometimes a third party)
-
Revenue share logic that varies by job or region
-
Legal, tax, and financial compliance across jurisdictions
Stripe Connect offers a ready-made solution to these challenges. It lets platforms route money from customers to contractors, apply platform fees, and automate compliance processes. Instead of building custom payout systems with cron jobs and spreadsheet audits, Connect gives you a programmable API-first platform to automate and scale contractor payments.
In this guide, we’ll break down how Stripe Connect handles split payments under the hood, how to implement it securely, and when to use which model. If you’re looking for a conceptual overview of split payments before diving in, check out What Are Split Payments and How Do They Work in Field Services?.
Update (December 2025): Start new platforms on the Accounts V2 API. In December 2025, Stripe shipped a new Accounts V2 API, now the recommended integration path for new platforms. V2 replaces the Standard/Express/Custom account types with composable configurations (
merchant,customer,recipient) and gives each connected account a single unified identity across Stripe, so you no longer maintain a separateCustomerobject mapped to each account. The V1 API is not going away and existing integrations keep working unchanged, so there is no forced migration. If you are building something new, build it on V2 and skip the V1-to-V2 rework later. Throughout this guide we show the V2 approach first and note the V1 equivalent where it helps.
Next, we’ll look at how Stripe Connect actually models multiparty payments.
2. Stripe Connect Models for Split Payments
Stripe Connect isn’t just one API. It’s a set of building blocks for handling multi-party payments. Before you start sending money to contractors, you need to understand the key account types and charge flows.
2.1 Connected Accounts: Configurations (V2) and Account Types (V1)
Each contractor needs a Stripe "connected account" under your platform. How you model that account depends on which API version you build on.
On the Accounts V2 API (recommended for new platforms): you create one Account and assign it composable configurations instead of picking a fixed account type. Each configuration unlocks a set of capabilities:
-
merchant: lets the account accept payments from customers. Includes thecard_paymentsandstripe_balance.payoutscapabilities. -
recipient: lets the account receive transfers from your platform. Includes thestripe_balance.stripe_transferscapability, which is required for indirect charges like destination charges and separate charges and transfers. -
customer: lets you charge the account as a customer, replacing the separateCustomerobject you needed in V1.
Dashboard access is now a separate dashboard setting (full, express, or none), so you choose the level of Stripe-hosted UI independently of the account's capabilities. For most field service and gig-style platforms, a recipient (and where relevant merchant) configuration with express dashboard access gives contractors Stripe-hosted onboarding and payouts while you keep control over payout timing and fee logic.
On the Accounts V1 API (still supported): you pick one of three fixed account types:
-
Standard: The contractor uses their own Stripe account. They onboard and manage settings via Stripe. Your control is limited.
-
Express: Stripe handles onboarding, identity checks, and payouts via a lightweight Stripe-hosted dashboard. You control when and how money moves.
-
Custom: You manage the full onboarding flow and have full control, but you also take on more compliance and complexity.
If you maintain an existing V1 integration, Express remains the balanced choice. For anything new, the V2 recipient configuration is the closer equivalent and the path Stripe now recommends.
2.2 Choosing the Right Charge Type
Stripe supports different models for how money flows:
-
Destination Charges: The platform charges the customer, and Stripe sends part of the payment to the contractor. Ideal when your platform is the merchant of record.
-
Separate Charges and Transfers: The platform charges the customer, then transfers the appropriate share to each contractor. More flexible for complex split logic or multiple contractors.
-
Direct Charges: The contractor charges the customer directly, and you collect a fee. Less control, and typically used with Standard accounts.
Most marketplaces and hybrid platforms will choose Destination Charges for simplicity or Separate Charges and Transfers for flexibility (especially when splitting among multiple parties).
The charge models themselves are unchanged in V2. Stripe now groups Destination Charges and Separate Charges and Transfers under the term indirect charges, and both require the connected account to hold the recipient configuration so it can receive transfers.
Next: we’ll walk through implementation—onboarding contractors, handling payments, and scheduling payouts.
- Implementing Stripe Split Payments Step by Step
Once you’ve selected your account and charge type, the real work starts: integrating it into your backend. Here’s how the full split payment flow works.
3.1 Onboard Contractors
Every service provider or contractor needs to be represented as a connected account in your Stripe environment.
On V2, use the POST /v2/core/accounts API to create the account and request the recipient configuration (add merchant if the account also accepts payments)
On V1, the equivalent call is POST /v1/accounts with the account type set to Express
Use account_links to generate a hosted onboarding form
Contractors fill in tax, ID, and bank info via Stripe’s secure UI
A minimal V2 account creation call looks like this:
curl -X POST https://api.stripe.com/v2/core/accounts \
-H "Authorization: Bearer <YOUR_SECRET_KEY>" \
--json '{
"contact_email": "contractor@example.com",
"display_name": "Jane Contractor",
"dashboard": "express",
"identity": { "country": "us", "entity_type": "individual" },
"configuration": {
"recipient": {
"capabilities": {
"stripe_balance": { "stripe_transfers": { "requested": true } }
}
}
}
}'
The result is a verified account ID you’ll use for future payouts. You don’t store sensitive info, Stripe handles the KYC flow.
3.2 Accept Customer Payments with Split Logic
When a customer pays for a job or product+service bundle, your backend creates a PaymentIntent or Charge object.
If using destination charges:
"amount": 10000,
"currency": "usd",
"payment_method": "pm_123",
"transfer_data": {
"destination": "acct_contractor123"
},
"application_fee_amount": 2000
}
destination sends funds to the contractor’s account
application_fee_amount sends your platform fee to your Stripe balance
Stripe handles the split and settles the balances instantly.
3.3 Payout to Contractor’s Bank
The connected account’s balance will be paid out based on your config:
-
Default: daily rolling payouts (with delay)
-
Custom: weekly, monthly, or on-demand via POST /v1/payouts
-
Optionally offer Instant Payouts to debit cards (extra fee)
Use webhooks (payout.paid, payout.failed) to track payout status.
3.4 Handle Refunds and Chargebacks
Stripe will automatically:
-
Reverse the payout if funds were already sent
-
Deduct the contractor’s share proportionally
-
Refund the customer
Your job: listen to events like charge.refunded and notify users as needed.
3.5 Monitor and Reconcile
Use:
-
GET /v1/balance_transactions
-
GET /v1/transfers
-
GET /v1/payouts
Track every penny from charge to payout. Attach your own metadata (e.g. job_id, order_id) to each transaction to sync with your internal systems.
Coming up: how Stripe Connect handles tax and compliance - so you don’t have to.
4. Built-In Tax and Compliance Handling
Payout logic isn’t complete without tax and identity verification. Stripe Connect helps you stay on the right side of the law while scaling contractor payments.
4.1 KYC and Identity Verification
Stripe handles Know Your Customer (KYC) checks during onboarding:
-
Government ID, DOB, address, SSN (US) or local equivalent
-
Adaptive verification depending on volume and region
-
Dynamic prompts if more info is needed later
You don’t need to store or validate sensitive identity info—Stripe does.
4.2 Tax Reporting (1099-NEC, 1099-K)
For US-based contractors, Stripe can generate and file:
-
1099-NEC for service providers paid over $600
-
1099-K for platforms with >$20K and >200 transactions (legacy threshold)
Stripe tracks earnings, validates TINs, and issues forms automatically. Contractors access their forms via Stripe Express.
Learn more in How to Pay 1099 Contractors and Stay Compliant with IRS Rules.
4.3 Global Payout Compliance
Stripe supports payouts in 100+ countries with local banking rails. It handles:
-
Currency conversion
-
Local tax ID collection
-
Sanctions list checks
This makes it possible to expand internationally without building region-specific payout logic.
4.4 Avoiding Money Transmitter Risk
Because Stripe directly routes customer funds to connected accounts, your platform typically avoids being classified as a money transmitter.
-
You’re not holding user funds
-
Stripe is the regulated payment entity
-
Reduces licensing and compliance burden significantly
Up next: real-world examples of how platforms actually implement these flows in production.
5. Real-World Integration Examples
5.1 Gig Delivery Platform
A regional courier app allows businesses to book same-day deliveries. Each job is completed by a gig driver.
-
Contractors are onboarded via Express accounts
-
Customer pays at booking; Stripe splits payment instantly
-
Drivers receive daily payouts; optional Instant Payouts enabled for VIPs
-
Charge model: Destination Charges
5.2 Home Services Marketplace
A platform selling home upgrades (e.g. smart thermostats, water heaters) also coordinates local installers.
-
Product sold online via Stripe Checkout
-
Service component split to installer via transfer
-
Installer is paid post-job, on Net-1 payout schedule
-
Charge model: Separate Charges and Transfers
5.3 Ecommerce + Installation Model
A retail brand offers installation as an add-on service. Customers buy shelving systems, then choose an install time.
-
Stripe Checkout used for both product + service in one charge
-
Installer’s fee calculated and transferred after order confirmation
-
Platform keeps product margin and a coordination fee
This hybrid model benefits heavily from programmable splits.
6. Final Thoughts: Should You Use Stripe Connect?
If your platform relies on contractor payouts—whether for services, delivery, installation, or anything in between—Stripe Connect is one of the most developer-friendly ways to do it right.
It handles:
-
Identity verification and banking logic
-
Real-time split payments
-
Global payouts and currency handling
-
1099 form generation (U.S.)
You still write business logic. But the compliance, money movement, and edge-case nightmares? Covered.
We’ve helped multiple platforms implement and scale Stripe Connect, from marketplace MVPs to high-volume service networks. If you want to move fast without reinventing payments infrastructure—reach out to Brocoders. We know our way around Connect.
FAQ: Stripe Split Payments and Connect for Contractor Payouts
Stripe Connect lets platforms pay out to third-party contractors, sellers, or providers while automating identity checks, split payments, and compliance.
When a customer pays, Stripe can automatically route funds to both the contractor and the platform using destination charges or separate transfers, all in one transaction.
Standard gives the contractor full control via their own Stripe account, Express offers Stripe-hosted onboarding and dashboards with platform-controlled payouts, and Custom gives the platform full control (and full compliance responsibility).
Use destination charges if you’re the merchant of record and want simplicity. Use separate charges and transfers if you need flexibility to pay multiple contractors or handle delayed payouts.
Yes. Stripe supports instant payouts to debit cards, which can be triggered programmatically and settled within minutes, even on weekends.
Yes. Stripe can generate and file 1099-NEC and 1099-K forms for U.S.-based contractors, handling TIN collection and validation.
Stripe handles KYC, global payout regulations, tax form issuance, and reduces your exposure to money transmitter licensing.
Absolutely. If you sell products and coordinate third-party services (like installation), Connect can automate payments and split logic across both flows.