Connect
Create a charge

Create a charge

Accept payments and specify how these funds should be split between your platform and your connected account by creating charges.

When accepting a payment from a customer, you need to create a charge. The type of charge you choose to 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 type Use when Examples
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 transfers
    Any 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

Typically, a single approach is appropriate, but your platform can use more than one approach, or switch approaches should the business change.

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.

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 will be debited for the cost of the Stripe fees, refunds, and chargebacks.

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 will be debited for the cost of the Stripe fees, refunds, and chargebacks.

Using separate charges and transfers will require 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.

Because the transfer amount can be greater than the charge amount, or the transfer can be made before the payment is processed, you must monitor your account balance carefully to make sure there’s enough to cover the transfer amount.

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 Types Pending 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

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.