#khalil-connect-transfers

1 messages · Page 1 of 1 (latest)

strange knot
#

Hello @lament silo. Transfers succeed instantly as the funds are transferred immediately by default so there's no "failure"

lament silo
#

Hi @strange knot , I am using source_transaction. Doing so implies the transfer itself only occurs once the charge’s funds become available. So how do I know if it was able to transfer in this case since it will only do so when the charge funds become available

strange knot
#

The original Charge you use for source_transaction has funds available in X days, and the Transfer takes the same delay

#

you look those up on the BalanceTransaction associated with each, the available_on property there tells you

lament silo
#

hmm - I'll rephrase my question to make sure we're talking about the same thing. I want to make sure that my connected got paid and mark it then as "Paid" in my database.

If I use source_transaction do I have the guarantee that my connected account will get paid 100% of the time? If yes, then I can just mark it paid right then and there.

If not, then you are suggesting to listen to BalanceTransaction? I was thinking of listening to webhooks on my connected accounts

strange knot
#

a Transfer moves money in their Stripe account, that's it

#

Being paid is when a Payout happens, that's when money moved from their Stripe account to their bank account

#

I'm sorry, it's hard to see what part you know and don't know

#

but really when the transfer is created, it will tell you when the funds will be available in their account balance, right there on the BalanceTransaction object I mentioned

lament silo
#

do I have 100% guarantee that money will successfully move to their stripe account if I execute a transfer with a source_transaction (even if the charge hasn't succeeded yet) or are there cases where that won't happen?

#

Appreciate your help, just trying to clarify my ask

strange knot
#

It depends on the payment method you use. Card payments yes. Others no, SEPA Debit can fail async and that would reverse the Transfer so you'd listen to the relevant Event on your webhook endpoint to catch those failures

lament silo
#

Ah! got it! So I should assume transfer succeeded right then and there and change it to "failed" if I receive a transfer.reversed

#

(And the transfer will be reversed automatically in this case)

strange knot
#

yes

lament silo
#

Cool. I understand better now. The last thing I am still a bit confused by is the following bit from stripe documentation:

When a payment used as a source_transaction fails, funds from your platform’s account balance are transferred to the connected account to cover the payment. To recover these funds, reverse the transfer associated with the failed source_transaction.
#

My understanding from this is that if a payment fails, then it won't reverse the transfer automatically, but will pay from my platform's balance

strange knot
#

I think it depends on the payment method too unfortunately

#

some will reverse and others won't

#

Ah I think I see, Separate Charges and Transfers won't reverse, only Destination Charges would

#

so yeah my bad, you need to notice the original payment failed and then reverse yourself

#

if you only accept card payments, it's not an issue though as those don't fail asynchronously

lament silo
#

Sounds good! Thanks for the help @strange knot!