How to transfer funds from a Stripe Test Account using the Bubble Stripe Plugin?

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…

Screenshot 2023-07-18 110127

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?

You can’t mix and match test and live accounts (Stripe won’t let you, and you’ll get an error).

As for your problem here, the error is telling you what the the issue is (i.e. you’re trying to transfer funds that you don’t have in your account).

If you’re 100% certain that your test account does have enough balance, then something is wrong and you’d be best to contact Stripe directly.

I’d be very surprised if that is the case though.

Are you 100% certain your Stripe balance doesn’t have enough funds for the transfer?

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.

1 Like

Thanks Adam
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…

I wonder as @nocodejordan has said below, whether the test card I’ve used (Visa 4242 4242 4242 4242) has a long delay on the payout. I’m trying to find out how long it might take…

Hopefully it’s as simple as delays. Stripe seems pretty reliable to me and they also know more about what they’re doing than I do so it could still be user error.

All the best

Thank you for this. I’ve been using test Visa 4242 4242 4242 4242 and on the strength of your information I’m trying to establish if the payout in a test environment is delayed.

All the best

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.

What does your test balance actually say?

Well, by my understanding, this seems to explain things…

It’s surprising to me that, assuming I’ve understood this correctly, I have to wait a week to see if I can transfer funds in a test environment…

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:

Creating separate charges and transfers | Stripe Documentation

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.

1 Like

Hi Adam and @georgecollier

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

1 Like

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.