# Collect application fees Charge merchants a transaction fee for payments through your platform. ## Collect fees As a platform, you can charge your connected accounts a portion of each transaction in the form of application fees. You can set application fee pricing in the following ways: - Use the [Platform Pricing Tool](https://docs.stripe.com/connect/platform-pricing-tools.md) to set and test pricing rules. This no-code feature in the Stripe Dashboard is currently only available for platforms responsible for paying Stripe fees. - Specify application fees directly in a [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md). Fees set with this method override the pricing logic specified in the Platform Pricing Tool. Your platform can take an application fee with the following limitations: - The value of `application_fee_amount` must be positive and less than the amount of the charge. The application fee collected is capped at the captured amount of the charge. - There are no additional Stripe fees on the application fee itself. - In line with Brazilian regulatory and compliance requirements, platforms based outside of Brazil with Brazilian connected accounts can’t collect application fees through Stripe. - The currency of `application_fee_amount` depends upon a few [multiple currency](https://docs.stripe.com/connect/currencies.md) factors. The resulting charge’s [BalanceTransaction](https://docs.stripe.com/api.md#balance_transaction_retrieve) includes a detailed fee breakdown of both the Stripe and application fees. To provide a better reporting experience, collecting a fee generates an [ApplicationFee](https://docs.stripe.com/api/application_fees/object.md) object. Use the `amount` property on the `ApplicationFee` object for reporting. You can view application fees in the [Collected fees](https://dashboard.stripe.com/connect/application_fees) section of the Dashboard. > Application fees for direct charges are created asynchronously by default. If you expand the `application_fee` object in a charge creation request, the application fee is created synchronously as part of that request. Only expand the `application_fee` object if you must, because it increases the latency of the request. > > To receive notifications of asynchronously created `ApplicationFee` objects, listen for the [application_fee.created](https://docs.stripe.com/api/events/types.md#event_types-application_fee.created) webhook event. ## Net settlement By default, Stripe uses *net settlement* for payments. That means we deduct your application fees from each transaction before its funds settle in the connected account’s balance. For example, for a charge of 10 USD with a 1.23 USD application fee, Stripe transfers 1.23 USD to your platform account and 8.77 USD to the connected account. If you process payments in multiple currencies, read [how Connect handles currencies](https://docs.stripe.com/connect/currencies.md). ## Gross settlement (Private preview) Alternatively, you can configure individual connected accounts to use *gross settlement*. That means we settle the full amount of each transaction to the connected account and collect your platform fees later. Platform fees include application fees, [network cost passthrough fees](https://docs.stripe.com/connect/network-cost-passthrough-platforms.md), and Stripe passthrough fees. Each month, Stripe records platform fees as they accrue, then invoices the connected account’s external bank account to collect them. The bank account used to pay platform fees can be the same as the payout bank account, or a separate account. > Using gross settlement introduces a risk that your connected accounts fail to pay fees at the end of the month. ### Interested in gross settlement for platforms? Enter your email and we'll reach out if you're eligible for the private preview. ```bash curl https://docs.stripe.com/preview/register \ -X POST \ -H "Content-Type: application/json" \ -H "Referer: https://docs.stripe.com/connect/saas/tasks/app-fees" \ -d '{"email": "EMAIL", "preview": "gross_settlement_for_platforms_preview"}' ``` ### Eligibility Gross settlement requires the following conditions: - Your platform charges your connected accounts at least one of the following types of platform fees: application fees, network cost passthrough fees, or Stripe passthrough fees. - Your platform and the connected account must be in the US or Canada. - The connected account must use the [Accounts v2](https://docs.stripe.com/connect/accounts-v2.md) API. Contact the [sales team](https://stripe.com/contact/sales) to migrate v1 connected accounts to use gross settlement. ### Enable gross settlement 1. In the **Fee Collection** section of the [connected account’s details page](https://dashboard.stripe.com/connect/accounts) of your Dashboard, select **Edit Fee Collection**. You can also enable gross settlement programmatically using the [Fee Config Scheme](https://docs.stripe.com/api/fee-config-scheme.md). 2. Change the timing from **Immediate fee collection** to **End of billing window**. 3. Choose whether to automatically debit or send an invoice to your connected account at the end of the billing window. 4. If you select **Bank Debit**, select an existing bank account to debit funds. You can also select **Add** or **Request a new bank account** to pay fees. 5. Confirm billing preferences, including billing email, billing cycle, and billing date. - Successful debit: Stripe sends a receipt to the billing email after funds settle to your platform account. - No bank account or failed debit: Stripe sends an invoice to the billing email instead. 6. Choose a **Start date** at least one day in the future. The change takes effect at midnight UTC of the selected date. > #### Fixed billing period > > Regardless of the start date, the billing aggregation window always aligns with the calendar month, starting at midnight in the UTC time zone. ### Collect payment bank account information during onboarding To enable gross settlement for new connected accounts, first collect payment bank account information at the time of onboarding, then [enable gross settlement](https://docs.stripe.com/connect/saas/tasks/app-fees.md#enable-gross-settlement). #### Hosted If you use [Stripe hosted onboarding](https://docs.stripe.com/connect/hosted-onboarding.md?accounts-namespace=v2#create-account-link), set `payment_method_collection=always` when you [create a new connected account](https://docs.stripe.com/connect/hosted-onboarding.md?accounts-namespace=v2#create-account) to automatically collect bank account information. ```curl curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-06-24.preview" \ --json '{ "contact_email": "user@example.com", "configuration": { "customer": {}, "merchant": { "gross_settlement": { "payment_method_collection": "always" } } } }' ``` Then [create an account link](https://docs.stripe.com/connect/hosted-onboarding.md?accounts-namespace=v2#create-account-link) to give to your connected account to complete onboarding. During this flow, Stripe asks the connected account to set up a bank account for paying fees and automatically saves this information. #### API If you onboard connected accounts through a custom API flow, collect payment bank account information yourself and save it to the connected account’s merchant profile. ```curl curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-06-24.preview" \ --json '{ "configuration": { "merchant": { "gross_settlement": { "payment_method": "pm_xxxx" } } } }' ``` ### Set application fee pricing You can continue to set application fee pricing in the Dashboard using the [platform pricing tool](https://docs.stripe.com/connect/platform-pricing-tools.md) or programmatically when creating a charge, payment intent, subscription, or invoice. ### End of month billing Stripe automatically creates an invoice at the end of the month to charge a connected account’s default payment method for accrued platform fees. You can customize the invoice on the [Invoicing settings page](https://dashboard.stripe.com/settings/billing/invoices/general) of the Dashboard. ### Reporting and reconciliation Use the following reports to track platform fees collected through gross settlement. - [Connect Margin Report](https://docs.stripe.com/connect/margin-reports.md): View platform fees charged to your connected accounts, regardless of whether fees are collected immediately (net settlement) or at the end of the billing window (gross settlement). - [Balance Summary Report](https://docs.stripe.com/reports/balance.md): View platform balance changes over time, including when transactions are gross-settled, Stripe fees are deducted, and platform fees are collected via invoice. - [Application Fee](https://docs.stripe.com/api/application_fees.md): Tie each gross-settled application fee to a specific invoice for reconciliation. You can use data from these reports to provide gross-settled platform fee details to your connected accounts. ## Next steps - If you plan to charge a subscription fee for using your platform, learn how to use Billing to [charge a service fee](https://docs.stripe.com/connect/saas/tasks/service-fee.md). - When your connected accounts can accept payments and you’ve configured your monetization, [set up payouts](https://docs.stripe.com/connect/saas/tasks/payout.md) so your connected account can transfer their Stripe balance to their external account. - [Handle application fee refunds](https://docs.stripe.com/connect/saas/tasks/refunds-disputes.md)