#fabianoarruda
1 messages ยท Page 1 of 1 (latest)
Hi there ๐ can you share more context about what you're seeing versus what you were expecting to see?
Sure. I can show you an example in production.
This is the connected account I'm sending funds to, which has payouts schedule set to manually, and a valid bank account eligible for instant payouts: acct_1O0TR6R5lyMrQujx
Im charging customer in my platform and creating a transfer to that connected account.
In this example, here is a recent transfer which I did, with a source_transaction that is a charge made with credit card. So it is supposed to be cleared in same day, right? transfer: tr_3OC2haJ1MQq8DQLk0v0Dusiq
But still not showing as available balance on the connected account.
When you're looking at the Balance, are you looking at the available hash, or the instant_available hash?
I'm listening for balance.available event on the connect account, and fetching the instant_available hash on Balance API
It's intriguing to me that when I look at the dashboard, I see this:
seems like the same amount appearing on both at same time. But it's not available as instant when fetching from API
Also, there is no balance.available event yet, which indicates the transaction is in fact, not available for instant yet.
last event on the connect account was evt_1OC2heR5lyMrQujxuyBO3Lue (payment.created)
We spend most of our time looking at the API, so I'm not as familiar with how the dashboard represents this.
But so far I'm not spotting a problem. The External Account on the Connected Account seems like it supports Instant Payouts.
Ok, I just fetched the api and looks like the balance is showing on instant_available. it seems the problem now is that the event balance.available is not being sent
I'm relying on that event to know if I can initiate the instant payout
๐ stepping in as toby needs to step away
Yeah that Event won't fire except when funds become available
Not every time they are instant_avialable
So that won't be a reliable way to know that
So what is the correct way of knowing?
What types of Connected Accounts are you working with? Custom?
Custom
Yep okay, and I assume you are going to show your Connected Accounts some sort of Dashboard that you built so that they then trigger an Instant Payout?
I do show a Dashbaord for them in my system, but my goal is to send payouts automatically as they become instant available. I dont want the user to be responsible of manually triggering the payout.
I used to have payout schedule set to be automatic, but since it's not possible to use instant payout with that, I had to set the schedule to manual and try to automate on my end.
Ah, well then you would retrieve the balance each time a transfer is made to the Connected Account
and what if the the source_transaction in the transfer is not cleared yet?
That is what Instant Payouts are for
To be able to payout before the funds become available
So, you telling me that immediatelly after calling Stripe::Transfer.create, I can call the Balance endpoint and it should be a instant_available balance there?
If the type of payment and Connected Account qualifies, then yes. See: https://stripe.com/docs/connect/instant-payouts?dashboard-or-api=api
Ok thanks. I think I know what I need to do now. As a suggestion, maybe would be useful having a event like instant_balance.available, or something like that?
I can file a feature request internally for something like that. No guarantee on it being built though
It sems that depending on the type of the source charge, for example ACH, that availability can be delayed, right?
From the link you provided:
"Funds acquired from card payments are available for Instant Payouts as soon as the charge is complete. ACH or bank debits are only available for Instant Payouts after the payment has settled."
What happens in that case? If I create a transfer with transaction_source being a charge paid with ACH, and try fetch the Balance of the connected account? There will be a delay right?
Yeah those funds won't appear in instant_available
So in this case how can I know when it become available on instant_available?
Well you need to know when the ACH payment actually settled, which you can see the timing for here: https://stripe.com/docs/payments/ach-debit#timing
Seems like I would have to listen for events on the charge, or something like that
Yep, I had assumed you already had a Webhook handler set up for fulfillment to begin with.
an instant_banlance.available would be really useful here ๐
Yeah, but really most folks don't just create Instant Payouts by default.
The other option would be to poll the API every x amount of minutes, to check the balance of the Connected Account
Makes sense. I do the most I can to not having to rely on pooling the API manually. But this case sounds like an exception ๐ค
Yep for sure
I wouldn't recommend it if there was an easy clean way
But yeah, in this case, that might be easier to just poll every 10 mins or so. Really though this depends on the scale you are working at
You need to be careful about hitting rate limits if you have a lot of Connected Accounts
See: https://stripe.com/docs/rate-limits for info there
About the scale, for now is a "beta" feature I'm offering for a limited group of providers, that want to be able to receive funds instantly.
A last question I have: You say that a 1% fee is charged for instant payouts. I made a few tests and didn't found where or when this fee is collected. will it appear on my platform balance?
I think it is taken right out of the payout? But really I'm not sure about that and we know next to nothing about fees here since we just focus on the API. I'd recommend reaching out to our Support team to confirm that
You can contact them via https://support.stripe.com/contact/login
Ok. Thank you very much for all the help! have a nice day!