Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
Get started with Connect
Design your integration
    SaaS platform
    Marketplace
      Quickstart
      Essential tasks
        Create a connected account
        Set up Dashboard access
        Onboard a connected account
        Enable payment methods
        Accept a payment
        Collect application fees
        Pay out to connected accounts
        Handle refunds and disputes
Integration fundamentals
Example integrations
Account management
Onboard accounts
Configure account Dashboards
Work with connected account types
Payment processing
Accept payments
Pay out to accounts
Platform administration
Manage your Connect platform
Tax forms for your Connect platform
United States
English (United Kingdom)
HomePlatforms and marketplacesDesign your integrationMarketplaceEssential tasks

Collect application fees

Monetise your marketplace by collecting application fees from transactions.

As a marketplace, you’re responsible for paying Stripe fees. These include transaction fees, per-connected account fees and dispute fees. To offset these fees and ensure that you make a profit, you collect application fees from each transaction rather than transferring the full amount to your connected account. Since you handle Stripe fees, the application fee is the only fee that your connected accounts see.

Stripe fees are automatically debited from your Stripe balance. To ensure your balance doesn’t go negative and you have a healthy payments margin, ensure that you charge a large enough application fee.

Collect fees when using destination charges

When a payment is processed, rather than transfer the full amount of the transaction to a connected account, your platform can decide to take a portion of the transaction amount in the form of fees. You can set fee pricing in two different ways:

  • Use the platform pricing tool in the Dashboard to set and test application fee pricing rules.
  • Set your pricing rules in-house, specifying fees directly in a PaymentIntent using the application_fee_amount parameter. Fees set with this method override the pricing logic specified in the Platform Pricing Tool.

When creating charges with an application_fee_amount, the full charge amount is immediately transferred from the platform to the transfer_data[destination] account after the charge is captured. The application_fee_amount (capped at the full amount of the charge) is then transferred back to the platform.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=1000 \ -d "line_items[0][quantity]"=1 \ -d "payment_intent_data[application_fee_amount]"=123 \ -d "payment_intent_data[transfer_data][destination]"=
"{{CONNECTED_ACCOUNT_ID}}"
\ -d mode=payment \ --data-urlencode success_url="https://example.com/success"

After the application fee is collected, an Application Fee object is created. You can view a list of application fees in the Dashboard, with the application fees, or in Sigma. You can also use the amount property on the application fee object for itemised fee reporting.

When using an application_fee_amount, know that:

  • The application_fee_amount is capped at the total transaction amount.
  • The application_fee_amount is always computed in the same currency as the transaction.
  • The application fee settles in the same currency as the connected account’s settlement currency. For cross-border destination charges, this might differ from your platform’s settlement currency.
  • Your platform pays the Stripe fee after the application_fee_amount is transferred to your account.
  • No additional Stripe fees are applied to the amount.
  • Your platform can use built-in application fee reporting to reconcile fees collected.
  • In Stripe-hosted dashboards or components such as the Payment details component, your connected account can view both the total amount and the application fee amount.

Flow of funds with destination charges

With the above code, the full charge amount (10.00 USD) is added to the connected account’s pending balance. The application_fee_amount (1.23 USD) is subtracted from the charge amount and is transferred to your platform. Stripe fees (0.59 USD) are subtracted from your platform account’s balance. The application fee amount minus the Stripe fees (1.23 USD - 0.59 USD = 0.64 USD) remains in your platform account’s balance.

Flow of funds for destination charges

The application_fee_amount becomes available on the platform account’s normal transfer schedule, just like funds from regular Stripe charges.

Collect fees when using separate charges and transfers

When using separate charges and transfers, you can collect fees on a charge by reducing the amount you transfer to the destination accounts. For example, consider a restaurant delivery service transaction that involves payments to the restaurant and to the driver:

  1. The customer pays a 100 USD charge.
  2. Stripe collects a 3.20 USD fee and adds the remaining 96.80 USD to the platform account’s pending balance.
  3. The platform transfers 70 USD to the restaurant’s connected account and 20 USD to the driver’s connected account.
  4. A platform fee of 6.80 USD remains in the platform account.

You typically need a ledger to keep track of where to route funds, especially if you are holding the funds for more than a short amount of time. For example, if a ticketing platform holds on to a payment and sends the funds only after a concert is over, they need to have a ledger or some other way to keep track of that logic.

Application fees with funds segregation

Funds segregation is a private preview feature that allows you to debit application fees directly from allocated funds during transfer, providing clean accounting separation. Contact your Stripe account manager to request access.

Flow of funds with separate charges and transfers

How a charge is divided into fees for the platform account and transfers for the connected accounts

To learn about processing payments in multiple currencies with Connect, see working with multiple currencies.

Next steps

Next, learn how to pay out money to your connected accounts.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc