Connect fees - Is it possible to charge a flat fee on top of % fee for subscriptions?

Viewed 278

I can charge a % fee to connect accounts using Subscription requests, but cannot find a way to include a flat fee in this charge.

For example:

5% +$0.30 per transaction.

application_fee_percent:- takes care of the 5%. But there is no way to include an additional flat fee it seems.

Has anyone been able to find a way to include the $0.30 per subscription transaction when using connect accounts?

2 Answers

It's not possible to do this via the API unfortunately today as it requires application_fee_percent and can't be combined with a flat fee.

What you need to do instead is recalculate the exact fee percentage to take based on the Subscription's total amount. For example, if the Subscription is for $100 you want to charge $5.3 so you just need to set application_fee_percent: 5.3 while if the Subscription is for $200 you want to charge $10.3 which means you need to set application_fee_percent: 5.15 on that one.

The problem is that if the Subscription's billed amount changes every cycle, you might end up over or under charging by mistake. In that world, the best option is to dynamically change the application fee on a per invoice basis. The idea is that you listen for invoice.created events on your platform to be aware of every invoice creation. For each one, you can calculate the exact fee you want to take based on the invoice's amount details and then use the Update Invoice API and set the application_fee_amount parameter to the exact fee you want to charge. You can automate all of this in code to ensure you take the right amount!

The only case that wouldn't work is when the invoice is for $0, or less than total fee you want to charge. It's not possible on Stripe for a platform to take a larger share of the payment than the total payment itself. Invoices that are for $0 would not let you have a $0.30 fee.

For anyone wanting an official answer to this question, here is the response from Stripe.

tl;dr - It's not possible to add a flat fee to the first subscription of an invoice. You can however seperately debit a connect account a flat fee on each transaction (https://stripe.com/docs/connect/account-debits#charging-a-connected-account)

Currently not possible to include an application_fee_amount​ to the first invoice of a subscription as the first invoice finalizes immediately leading to an un-editable invoice.

A potential workaround would be to follow the immediate finalisation behaviour of the subscription. Once the subscription has been created and the payment is successful, you can manually debit the connected account in question through creating a charge while passing the connected account's ID as a source​.

To assist with this, you can set up a webhook which listens in on invoice.payment_succeeded events. Whenever a notification is received this way, you can set up a webhook response which lists out all invoices under the corresponding subscription. If there is only invoice, you can debit your connected account.

Related