#jacob_api
1 messages Β· Page 1 of 1 (latest)
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
π Welcome to your new thread!
β²οΈ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
β±οΈ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
π This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1271429097301606462
π Have more to share? Add more details, code, screenshots, videos, etc. below.
Also, here's the checkout session code. Could be something to do with the transfer_data or on_behalf_of?
hi there!
that subscription was created as a Destination Charge, which means the platform pays the Stripe fee
if you want the connected account to pay the Stripe fee, you need to be using Direct Charges
you can learn more about this here: https://docs.stripe.com/connect/charges
note that your connected account is Express, so we don't recommend using Direct Charges
Hmm. Ok what's the best way to go about this then?
one quick solution is to try to guess the Stripe fee (since it depends on the payment method used and country), and reduce the amount transfered to the connected account with https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-subscription_data-application_fee_percent
And also, I need to update existing subscriptions to remove the platform fee.
what I shared above works for new and existing subscriptions.
Ok, but is there any significant downside to having express accounts?
you can learn more about the different account types here: https://docs.stripe.com/connect/accounts
I mean for Direct Charges specifically
This really isn't ideal.
Is it possible to convert destination charges to direct charges?
no, you would need to re-create the Subscriptions. also to use Direct Charge, you would need to re-onboard your connected account as Standard accounts.
Is it possible for me to onboard as standard accounts from my side for existing express accounts?
Or does the customer have to do it
your platform would create the new Standard connected account, and your customers will have to do the onboarding.
Alternatively, is there a reliable way to calculate Stripe fees using express accounts? This would be the fastest and most convenient option for us right now, still giving us flexibility.
If you could link me an article that gives a reliable way to calculate based on country and payment type
Alternatively, is there a reliable way to calculate Stripe fees using express accounts?
You can't know them in advance, but as soon as the first Subscription payment was done, you can check the fee with the API, and update theapplication_fee_percentthat will be applied to the next payments
If you could link me an article that gives a reliable way to calculate based on country and payment type
sorry we don't have this, except the pricing page: https://stripe.com/pricing
Not a bad idea, what's the base average fees for Stripe. 2.9% + 30c?
we know nothing about pricing here, I recommend checking https://stripe.com/pricing or asking Stripe support https://support.stripe.com/contact
Ok
Here's a test subscription I sent through using a dummy platform fee assuming 2.9% + 30c fees: sub_1PlrVSL9hM4stiLFRZMNCTJz
Can you please confirm:
- Total platform fee
- Total Stripe fee
- Total sent to connected account
Just trying to verify on my side.
having a look. note that this is how to get the Stripe fee for a given payment: https://docs.stripe.com/expand/use-cases#stripe-fee-for-payment
total amount: 799
Stripe fee: 78
amoaunt you kept on the platform: 53
What amount was transferred to the connected account?
That's the number I can't find
if you look on the Payment page: https://dashboard.stripe.com/test/payments/pi_3PlrVSL9hM4stiLF0mAxoz3v
there is a link to the Transfer: https://dashboard.stripe.com/test/connect/transfers/tr_3PlrVSL9hM4stiLF0wywN00s
Right, but wouldn't that mean 783 was transferred to the connected account?
How is 53 kept on the platform?
notice that the currencies are different. the original amount was in $USD, the transfer is in $NZD.
What are the currencies of these?
also I recommend checking this diagram, as this will help understand what is going on: https://docs.stripe.com/connect/destination-charges?platform=web&ui=stripe-hosted#flow-of-funds-app-fee
basically the full amount is sent to the connected account, and they you get back the application_fee (in this case 53)
Ahhhh got it.
so in this example the platform end up with +53 (application fee) - 78 (Stripe fee) = -25
and the connected account with the full amount minus the application fee.
Ok cool. What's the easier way to update the platform fee for upcoming payments on a subscription?
you would update the application_fee_percent of the Subscription: https://docs.stripe.com/api/subscriptions/update#update_subscription-application_fee_percent
the currency of the transfer will depend on the default currency of the connected account. that's not something you directly control.
Is there an additional fee for the transfer? Ideally, I'd be able to get the total fee and calculate the percentage so that I can update the application fee percent
Is there an additional fee for the transfer?
no
Just testing something, please keep this thread open π
noted. but if this thread gets closed due to inactivity, feel free to reopen a new one in #help
So I have a slightly unique issue here. I need to get the fee that was charged. However, in some cases there are multiple line items (eg. a one-time initiation fee + a first subscription payment). Is there a way to separate the fees in this scenario?
Eg. Check out this in_1PlsAtL9hM4stiLFdhH4txIv
This includes two line items with a total fee of 718
you can get more details about the Stripe fee here: https://docs.stripe.com/api/balance_transactions/object#balance_transaction_object-fee_details
but if you have one Invoice, then the Stripe fee will be computed on the total amount, not item by item.
Dang
In this case, we will only effectively be able to charge the correct fee at month 3.
First transaction could have multiple line items. Second month will only have the subscription payment which means we can calculate the fee.
Is there a way I can simulate the second month charging so I can retrieve the webhook data?
Hi taking over here
Test clocks should allow you to advance time for a susbcription if that's what you're trying to test: https://docs.stripe.com/billing/testing/test-clocks
Hi, is there a way I could recieve funds directly to my platform instead of flow of funds going through the connected account first?
Yeah that would be a destination charge: https://docs.stripe.com/connect/destination-charges. Those are only recommended on Custom and Express account types though
Ok, does this mean I could trigger a once-per-month payout to a connected account for a set amount?
This would solve the dynamic fees issue.
You mean transfer?
Yes transfer
Like you want the funds to just sit on your platform
Yes
That would be this flow instead: https://docs.stripe.com/connect/separate-charges-and-transfers
Same thing
Express and Custom are really only recommended
Got it. Essentially, I need to know the exact net amount to transfer to the connected account. Which method would you recommend?
It could be automatic or a manual trigger each month to transfer.
Destination charges v Separate Charges And Transfers
Destination charges doesn't do what you want
It automatically transfers a portion after each payment
Sounds like you want separate charges and transfers
That's fine if only the net balance is transferred to the connected account.
Is this the case? Or would it send the gross transaction value to the connected account?
Ok then I recommend doing destination charges if that works for you
It's a way simpler flow
You can either transfer a specific amount or the entire thing
But then platform pays the fees on it
So this is my current checkout session setup. What would this flow be called officially on Stripe?
Because this seems like a destination charge flow...? Currently, the platform pays the fee and the connected account keeps the full transaction value.
Yep that's a destination charge
So you want the connect account to pay the fee?
Express
Darn ok
separate charges and transfers gonna be a better option?
Up to you
You could start specifying an amount in the destination charge: https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-payment_intent_data-transfer_data-amount
So that way you don't transfer the full amount to the connect account
The problem is I don't know the Stripe fee for the transaction
Because it hasn't happened yet.
Are you open to using Standard Accounts?
Potentially if that's the only option.
With standard accounts you can do direct charges, which have the following fund flow: https://docs.stripe.com/connect/direct-charges?platform=web&ui=stripe-hosted#flow-of-funds-with-fees
That's more of what you're looking for
But you need to use Standard accounts to do that
Ok, question on standard accounts. Are they still tied to my platform? Ideally, the accounts can't be transferred away with their subscriptions to another competitor.
Yep, thought so.
Ok, I might be leaning towards one bulk job each month that pays out all connected express accounts
Does Separate Charges & Transfers support specifying specific transfer amounts to specific connected accounts?
Basic question, but better double check haha
yes it's in that doc i sent you
Do you know if it's possible to remove the transfer_data property from any existing subscriptions?
Ideally, I could prevent any upcoming subscription payments from being auto transferred to the connected accounts.
Cool, lastly I can't remember why I specifically added the on_behalf_of property to my charges. Can you help me understand its primary use?
Ah right, so I'd probably want to remove that too?
Well that's entirely up to you and your business
Depends who you want the settlement merchant specified as
Ah got it. As in merchant of record type thing?
yeah read that doc i sent
What about this scenario?
My platform is based in USD. Many express accounts are from various countries
Likely you'll want to keep on_behalf_of then
That restriction was in place with destination charges as well
Got it.
How can I get the total stripe fee from a payment intent ID?
Hi there π jumping in as my teammate needed to step away. To find the fees, you'll want to find the Balance Transaction for the Payment Intent.
The Payment Intent's latest_charge field contains the ID of the related Charge object.
The Charge's balance_transaction field contains the ID of the related Balance Transaction object.
The Balance Transaction's fee and fee_details fields explain whether the fee assessed is a stripe_fee and how much it was for.
Great, got it.
What's the easiest way to make a one-off transfer from my platform account to a connected account? Even if it's cross border
AH found this
That a bit of a loaded question. The easiest way is to create a Transfer object to move funds from your Platform account to your Connected Account.
However, if the Connected Account is cross-border then it will have needed to be onboarded using a recipient service agreement in order to be able to receive the Transfer. If that wasn't done, you won't be able to make a Transfer to the account.
But is it required to use a transfer_group?
Nope. All supported fields, along with clarification on which ones are required, can be found in our API reference:
https://docs.stripe.com/api/transfers/create
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Ok, so I'm using the on_behalf_of key in my checkout session creation. Does this solve that issue?
Re: the cross border transfers
Wait, what you're showing there is a Destination Charge, since you're providing the Connected Account's ID in the transfer_data.destination parameter. (this flow: https://docs.stripe.com/connect/destination-charges)
You don't need to create your own Transfer objects there.
Destination Charges using on_behalf_of don't support Cross Border Payouts:
https://docs.stripe.com/connect/cross-border-payouts#:~:text=destination charges with the on_behalf_of parameter arenβt supported
Yes, so I've now removed that because I don't want the automatic transfer to the connected account.
This is because we don't know what the end fee will be for a transaction and the platform is responsible to pay.
I've been ending up with negative fees in some cases and it's been a game of guessing the stripe fee essentially.
The new plan is to stop auto-transferring to connected accounts, and instead do one bulk job each month to transfer the balances to connected accounts.
Gotcha, so you're switching to Separate Charges and Transfers.
Here's what we look like now.
Yep.
My question is, is my plan possible with the cross border situation? In a discussion here #1271429097301606462 message it seemed like it should be good to go
Using on_behalf_of does not change how the Connected Account was onboarded though, or what service agreement they accepted as part of that onboarding.
If you're onboarding accounts using the recipient service agreement as explained in the Cross-border Payouts doc, then you should be good to go.
Ok. How can I find out which one users have been accepting during signup? This is quite a significant change we're having to make
You can retrieve the Account object of the Connected Account and check the tos_acceptance.service_agreement field to see which type of service agreement was accepted:
https://docs.stripe.com/api/accounts/object#account_object-tos_acceptance
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I did a quick search on the UI. I'm assuming full terms agreement is good?
No, that means they used the full service agreement, not the recipient one.
Dang, this is wild
All I want is to transfer the balance of a transaction to a connected account. Automatically / manually - however works.
Payment success into platform --> Stripe fee taken --> Balance auto sent to connected account.
What is your recommendation? This is just getting a bit crazy.