Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Overview
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
    Overview
    Get started
    Collect payments then pay out
    Enable other businesses to accept payments directly
    Pay out money
    Explore Connect
    Onboard your accounts
    Choose your account type
    Standard
    Express
    Custom
    Service agreement types
    Payment methods
    Account capabilities
    Additional verifications
    Update verified info
    Connect embedded UIs
    Quickstart
    Get started with Connect embedded UIs
    Accept payments
    Create a charge
      Direct charges
      Destination charges
      Separate charges and transfers
    Create a payments page
    Create payment links with Connect
    Connect integration guide
    Automatic payment methods
    Set statement descriptors
    Connect platforms using the Payment Methods API
    Create subscriptions
    Create invoices
    Debit Express and Custom connected accounts
    Pay out
    Set bank and debit card payouts
    Bank accounts
    Manage payout schedule
    Manual payouts
    Payout reversals
    Instant Payouts
    Cross-border payouts
    Crypto payouts
    Manage funds
    Add money to your platform balance
    Account balance
    Handle multiple currencies
    Manage accounts
    Best practices
    Listen for updates
    Dashboard account management
    Understanding risk offerings
    Platform controls for Standard accounts
    Make API calls for connected accounts
    Set MCCs
    Testing
    Manage tax forms
    Overview
    Get started with tax reporting
    1099 Tax Support and Communication Guide
    Tax form settings
    Calculation methods
    File tax forms
    File tax forms with states
    Identify forms with missing information
    Update tax forms
    Deliver tax forms
    E-delivery for 1099 tax forms
    Correct tax forms
    Split tax forms
    Tax year changeover
    What's new for tax year 2022
After the payment
Add payment methods
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
Connect
·
HomePaymentsMultiparty payments

Create a charge

Learn how to create a charge and split payments between your platform and your sellers or service providers when you accept payments.

To accept a payment from a customer, you must first create a charge. The type of charge you create—direct, destination, or separate charges and transfers—determines how these funds are split among all parties involved, impacts how the charge appears on the customer’s bank or billing statement (with your platform’s information or your user’s), and determines who will be debited for refunds and chargebacks.

Charge types

There are many factors to consider when choosing a charge type, as listed in the table below. Your platform’s business model is particularly important because it can affect how funds flow through Stripe. To know which charge type is recommended for your business, refer to your platform profile.

Charge typeUse whenExamples
Direct charges
  • Customers directly transact with your user, often unaware of your platform’s existence
  • A single user is involved in the transaction
  • An e-commerce platform like Shopify or Squarespace
  • An accounting platform that enables invoice payments like Freshbooks
Destination charges
  • Customers transact with your platform for products or services provided by your user
  • A single user is involved in the transaction
  • A ride-hailing service like Lyft
  • A services platform like Thumbtack
Separate charges and transfersAny one of these instances:
  • Multiple users are involved in the transaction
  • A specific user isn’t known at the time of charge
  • Transfer can’t be made at the time of charge
  • An e-commerce marketplace that allows a single shopping cart for goods sold by multiple businesses
  • A scooter-sharing platform like Bird, where scooters are rented by people who want to ride them, and recharged by people who want to get paid for doing that

You can use a single approach, more than one approach, or switch approaches as appropriate for your organization.

Direct charges

When using Standard accounts, Stripe recommends that you create direct charges. Though uncommon, there are times when it’s appropriate to use direct charges on Express or Custom accounts. With this charge type:

  • You create a charge on your user’s account so the payment appears as a charge on the connected account, not in your account balance.
  • The connected account’s balance increases with every charge.
  • Your account balance increases with application fees from every charge.
  • The connected account’s balance will be debited for the cost of Stripe fees, refunds, and chargebacks.

Only connected accounts with the card_payments capability can be directly charged.

Destination charges

When using Express or Custom accounts, Stripe recommends that you create destination charges. With this charge type:

  • You create a charge on your platform’s account so the payment appears as a charge on your account. Then, you determine whether some or all of those funds are transferred to the connected account.
  • Your account balance is debited for the cost of the Stripe fees, refunds, and chargebacks.

Destination charges are only supported if both your platform and the connected account are in the same region (for example, both in the US). For cross-region support, you must specify the settlement merchant to the connected account using the on_behalf_of attribute on the charge or see other valid scenarios at Cross-border Transfers.

Separate charges and transfers

For Express and Custom accounts, Stripe recommends that you create separate charges and transfers if destination charges don’t meet your business needs. With this charge type:

  • You create a charge on your platform’s account and also transfer funds to your user’s account. The payment appears as a charge on your account and there’s also a transfer to a connected account (amount determined by you), which is withdrawn from your account balance.
  • You can transfer funds to multiple connected accounts.
  • Your account balance is debited for the cost of the Stripe fees, refunds, and chargebacks.

Separate charges and transfers are supported only if both your platform and the connected account are in the same region. For example, both are in Europe or the US.

Using separate charges and transfers requires a more complex Connect integration. You can use this charge type if your business has any of these traits:

  • A one-to-many relationship. For example, a payment made to a delivery service needs to be split between the store (the source of the items being delivered) and the delivery person.
  • A many-to-one relationship. For example, a carpool trip with a ride-hailing service.
  • It’s unknown at charge time which connected account should receive the funds. For example, a janitorial service could process a payment immediately but not know which janitor will be doing the cleaning.
  • Need to transfer funds before receiving a payment, or while the charge is pending. For example, an ad network needs to purchase ad space before they can sell ad time or before receiving any payment from customers.
  • A transfer could be for a greater amount than the associated payment. For example, a platform provides a discount to the customer but still pays their user the full amount.

In some cases, the transfer amount is greater than the charge amount, or the transfer is made before the payment is processed. You must monitor your account balance carefully to make sure there are enough funds available to cover the transfer amount.

on_behalf_of parameter

To make the connected account the business of record for the payment use the on_behalf_of parameter. When on_behalf_of is set to the ID of the connected account, Stripe automatically:

  • Settles charges in the country of the specified account, thereby minimizing declines and avoiding currency conversions.
  • Uses the fee structure for the connected account’s country.
  • Uses the connected account’s statement descriptor.
  • If the account is in a different country than the platform, the connected account’s address and phone number shows up on the customer’s credit card statement (as opposed to the platform’s).
  • The number of days that a pending balance is held before being paid out depends on the delay_days setting on the connected account.

Stripe fees

There are two components to Stripe payment fees with Connect: which pricing plan applies to the payment and which account pays Stripe payment fees.

Direct charges use the connected account’s pricing plan and are assessed on the connected account.

Destination charges and separate charges and transfers typically use the platform’s pricing plan and are assessed on the platform. The only exception is when on_behalf_of is set, where the country of the connected account is used to determine the pricing plan and fee instead.

For more information on Connect fees and how to request custom pricing, please see Connect pricing.

Refunds

You can issue a refund to pay back the money spent on the returned good or to compensate for unsatisfactory service. Below describes how refunds are handled for each charge type:

Charge Types Account TypesPending Refunds
  • Direct charges
  • Separate charges and transfers
  • Standard
If the connected account’s balance is sufficiently negative at creation time, the refund object is set to a status of pending. When enough funds are available in the connected account’s balance, Stripe automatically processes any refunds with a pending status and updates the status to successful.
  • Express
  • Custom
If the connected account’s balance and your platform’s account balance are sufficiently negative at creation time, the refund object is set to a status of pending. When enough funds become available in your connected account’s or platform’s balance, Stripe automatically processes the refunds with a pending status and updates their status to successful.
  • Destination charges
  • Standard
  • Express
  • Custom
If your platform’s account balance is sufficiently negative at creation time, the refund object is set to a status of pending. When enough funds become available in your platform’s balance, Stripe automatically processes the refunds with a pending status and updates their status to successful.

Disputes and chargebacks

For payments created on Standard accounts using direct charges, those accounts are responsible for disputes and any funds are withdrawn from their account balance (not your platform’s).

For disputes where payments were created on Express or Custom accounts, Stripe attempts to debit their balance first. If this fails, your platform is ultimately liable for the disputed amount and associated fee. If the connected account turns out to be fraudulent, it’s unlikely Stripe’s attempt to debit the card issuer account will be successful and the required amount and fee is then deducted from your account balance.

For disputes where payments were created on your platform using destination charges or separate charges and transfers with or without on_behalf_of, your account balance is automatically debited for the disputed amount and fee. When this happens, your platform can attempt to recover funds from the connected account by reversing the transfer either through the Dashboard or by creating a transfer reversal.

If there is a negative balance on the connected account, Stripe attempts to debit its card issuer account only if debit_negative_balances is set to true.

For more details, see Disputes and fraud and Dispute categories.

See also

  • Create direct charges
  • Create destination charges
  • Create separate charges and transfers
  • Set statement descriptors
  • Supported payment methods
Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Charge types
Stripe fees
Refunds
Disputes and chargebacks
See also
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$