I’m using the Bubble Stripe Plugin.
I’m testing my marketplace app at the moment.
Every time I try to transfer funds to a seller, I get an error message telling me I have insufficient funds as follows…
Thing is, my app isn’t live yet so I’m only using Test data in Stripe. That has lots of “Test money” in it from successful Test payments but when my workflow runs to transfer funds to a Seller, how do I know (and ensure) that it’s transferring “Test” funds to the seller rather than trying to transfer actual, live funds (of which there are zero)? For clarity, everything I’m doing needs to be done in a test set up at the moment. Is it as simple as ensuring that the switch on my Stripe dashboard is switched to “Test” or is there something else I need to do to instruct the Transfer action to use Test funds as the Source of the funds?
Even though you may have money from transactions in your test account, do check that these funds are available to payout instantly. It depends on which test card you use for transactions, do check that as well. some test cards payout instantly, others take time for the balance to be available.
I’m pretty confident that my test account has enough funds. I’ve been in touch with Stripe and they’re looking into it. I’m only trying to make transfers of a few pounds albeit in pence so £5.75 = 575 which Stripe views as pounds (so £575) but, even so, I’ve made a few very large transactions to accommodate that as per this screenshot…
Your balance should be topped up immediately on successful payment - the card used is irrelevant (if the payment was successful it will be added to your balance). There is no delay in adding funds to your balance.
Indeed… although payments are added to your balance immediately, you can’t use those funds for separate transfers until the funds are available… (although, if the transfer is linked to a charge you can transfer funds immediately, irrespective of available balance).
So, if you really need to use separate transfers (as opposed to regular transfers at the point of transaction), try ensuring you link the transfer to whatever transaction it came from:
You use a test API key. The switch in the dashboard is just for the dashboard and doesn’t affect the API. Make sure the API key in the editor for dev mode starts with sk-test and pk-test
Stripe sees 575 as £5.75, not £575 (1 = £0.01).
I might be wrong but it looks like you’re calculating transfers manually in Bubble Don’t make a transaction and then use Bubble to calculate ‘oh well we have platform fee of 30%, so 0.3*£100 = £30, now let’s create a transfer to the seller account’. Use Stripe’s native support for this. (Stripe API reference – Create a Checkout Session – curl)
The rough idea is:
Create checkout session with the relevant prices
Specify the seller account to transfer to
Specify the amount your platform takes (e.g 500 = £5)
Then, once the checkout session is completed the the seller will receive their money and can manage that from a Stripe express dashboard. You don’t need to transfer funds from your application to the seller, Stripe will do that. This is a ‘transfer’ (your platform Stripe balance to a seller’s Stripe balance)
The other thing is that ‘payouts’ are not transfers. The ‘payout’ refers to transferring money from the seller’s Stripe balance to their personal bank account. Your message says
…which is what leads me to think that you’ve got transfers and payouts confused.
I was wondering the same thing… (maybe there is some confusion between pay-outs and transfers here…)
But I think (based on previous posts), that’s not the case, and there is some specific reason for not letting Stripe handle the transfers as part of the transaction in this case (but I don’t know what that is)…
In which case there are only 2 options:
Either link each transfer to a charge - so it can be transferred immediately (although, unless there’s a very specific use case that warrants it, I can’t really see the point of that).
Or, just wait until the funds have become ‘available’ in your account before making the transfers - if the whole reason for not letting Stripe handle all of this is that you don’t want the transfers to be made immediately (for some reason), then there’s no issue in waiting a few days for the funds to become available to transfer.
Many thanks for your input. I think I’m on the path to getting this resolved with better understanding…
I admit that I am finding it challenging getting my head around the language required here in terms of Payouts, Transfers, Charges etc so please forgive me if I’ve got confused.
This is my understanding.
Payout = Money moving from my Stripe account to my bank account. Transfer = Money moving from my Stripe Account to someone else’s Stripe account Charge = An amount of money I request (and hopefully get) from someone who buys something on my app and that goes from their bank account/CC etc to my Stripe Account.
Here’s a whole transaction in my app…it’s a marketplace app that enables users to buy things for other people. So Person A can log into the app and order Item A from Seller A’s shop for Person B.
Let’s say that the price charged by the shop for that item is £5.
I add 10% commission and then there are Stripe fees (IIRC they’re 30p + 1.5%) so they’ll actually pay £5 + £0.50 + £0.30 + 1.3% = £5.88)
They pay for it on the app. and £5.50 will appear in my Stripe account… Person B then receives an email saying “Hey, Person A has bought you something and it’s waiting for you at Seller A’s shop for the next three months”. Person B then goes along to collect the item.
When they collect it, £5 is transferred from my Stripe account to Seller A’s stripe account and Person B is handed their item.
(I am indeed calculating the amount of this transfer by having my app pull out the cost of the item that the shop sells it for which is an amount free of my commissions and Stripe fees etc)
If Person B doesn’t collect their item within a fixed period of time, then it becomes “Expired”. At this point, the value of their item (£5) is donated to a charity. This is why the transfer doesn’t happen at the point of purchase because then Seller A gets the value of the item even if it’s never collected (which is nice for them!) but that prevents the charity from benefitting. The point is that Person B can think “Actually, it’s a really nice thought to be bought this thing but I don’t need/want it and I’d rather it goes to this awesome charity and I have to do literally nothing for that to happen”.
So I’ve got it all set up and almost working apart from transferring the amount to the Seller’s Stripe Account which I’m unable to do because, I’m told, “there aren’t sufficient funds in my Stripe account”. As I’m only in Test Mode at the moment as nothing’s live, I wondered if that’s the issue but I’m not sure. Stripe are looking into it but I don’t know where the problem lies.
Any assistance is therefore much appreciated.
All the best
P.S. My apologies for the edits above, I wasn’t aware that Ctrl + Enter = “Post” on this forum. (I am now!)
No, Stripe fees come out of your Stripe balance. £5 charge with £0.30 + 1.3% means the user pays £5, but Stripe will take £0.30 + 1.3% before it hits your Stripe balance.
Why add commission and not just include the commission in the price like other P2P platforms like eBay?
Okay, so what you have is an escrow problem where you want the user to pay now but the seller to be paid later. See here. You should still transfer the balance to the seller’s Stripe account as soon as the buyer pays, but just set a payout duration of 90 days.
Then if it expires, reverse the transfer to the Seller account so it goes into your platform Stripe balance. Then you can withdraw to your platform bank account and pay whatever charities you want. The only thing is that Stripe fees aren’t refundable.