# 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 or collects payment from their external bank account. 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.

### 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 and must have both the merchant and customer *configurations* (Account configurations represent role-based functionality that you can enable for accounts, such as merchant, customer, or recipient). If your connected accounts use the Accounts v1 API and you want to use gross settlement, contact the [sales team](https://stripe.com/contact/sales) to migrate them to v2.

### 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"}'
```

## 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)
