#mark.at.deco
1 messages · Page 1 of 1 (latest)
Hi there, let me take a look
When creating a refund, you shall set reverse_transfer=false so that the destination account keeps the fund
but then if the refund suceeds, wont the connected account keep the money?
That's the default behaviour. It goes to platform because the reverse_transfer was set to true. https://dashboard.stripe.com/test/logs/req_gGogyBZXjwu6eT
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
hmm.. ill give it a test with reverse_transfer=false and see if it behaves as I expect.. I'll update this thread/chat in a few minutes
I'm a but confused by your solution..
I tested a normal refund scenario (success)
Payment Intent: pi_3M6SMlFmiG7YTVO21MBkI6WI, refund: re_3M6SMlFmiG7YTVO218FhKXyx
Once its finished, the money is taken from the platform account, but the connected account gets to keep the money..
this seems even stranger behavior.. why would you ever want to let the connected account keep the money?
Am I meant to manually reverse the transfer or something?
Could you clarify your requirement? I'm under the impression that you want the destination account to keep the fund ?
only when the refund fails
I'm testing failed asynchronous refunds
so it suceeds, then fails
when it fails, the money does not go back to the connected account
Can you share with me the ID of the failed refund?
from above:
Payment Intent: pi_3M6RlYFmiG7YTVO20sRT8HqQ, refund: re_3M6RlYFmiG7YTVO20eZGz6tw
This refund was succeeded (see https://dashboard.stripe.com/test/logs/req_gGogyBZXjwu6eT)
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
then it later failed: see https://dashboard.stripe.com/test/payments/pi_3M6RlYFmiG7YTVO20sRT8HqQ
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
That's because the reverse_transfer=true that I've explained before.
Setting reverse_transfer=true allows the platform to reverse transfer the funds from connected accounts to platform to cover the refund.
yes.. but when the refund later fails, then money goes back to the platform account, without any trnasfer to the connected account
so the platform account needs to somehow give the money back to the connected account... do you follow that logic?
It's really up to you. If you think the platform should transfer the funds to connected account in the event of failed refund, you can use the Transfers API to send the funds from platform to the connected account.
thats what i was doing, but that only works when the connected account is in the same region as the platform account
otherwise you get a "Funds can't be sent to accounts located in AT when the account is under the full service agreement. To learn more, see https://stripe.com/docs/connect/service-agreement-types."
because the money is now in the platforms account, and cannot be transfered back to the connected account, is it assumed the platform needs to contact the customer and organise the refund outside of stripe? or give the money back to the connected account outside of stripe?
seems like odd behaviour...
Hm. Can you try this. Set reverse_transfer=false so that the funds stays in connected account, and use account debit (https://stripe.com/docs/connect/account-debits) to charge the connected account when you want to move funds from connected account to platform?
similar to transfers, "The connected account and the platform must be in the same region" (from that page)
I'm guessing this is just a limitation of the platform? if so.. I hope failed asynchronous refunds are rare...
Did you use the charges API or transfers API to perform an account debit?
I created a transfer (https://stripe.com/docs/api/transfers/create) but specified the original charge as the source_transaction
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Can you try using charges API? https://stripe.com/docs/connect/account-debits#charging-a-connected-account
but as per that page, the connected and platform account must be in the same region.. I already have it working in the same region using transfers.. i only get an error when they are in different regions..
I'll try and create a charge to that connected account and see if its even possible...
There's a link you can use to contact the sales team. Do you want to reach out to them and see if they can help you on this?