#att89-connect
1 messages · Page 1 of 1 (latest)
yes, if you want to use Direct Charges on the connected accounts, the payment details need to exist on the connected account. So that can mean cloning them (https://stripe.com/docs/connect/cloning-customers-across-accounts + https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods (tokens aren't actually involved, the docs are just confusing) from the platform yes.
There's no easy way to know what you're asking unless you store that in your database or as metadata on the objects. There is absolutely zero link in the API objects to show that a customer on a connected account is 'actually' a clone of one on the platform.
It's quite complex to have that setup where you create customers on the connected account and try to keep them in sync. What I usually suggest is you just have a Customer on the platform account only and keep that one up-to-date and managed by the end-user, and then, on-demand when you need to do a charge with a connected account, clone their active PaymentMethod and charge it in a one-off PaymentIntent there without using any customers on the connected account.
Thank you for your very quick response. That's a very good advice, thank you so much!
The only thing i am not yet sure about it: At the moment, when i create a payment intent, i also request all stored payment methods of the customer and send this information along with the client secret back to the client. So the customer can choose which one he wants to use for the charge. Than the payment intent will be executed with the confirm method on the client.
This should still work, when i create the payment intent with a customer token without pre-setting the payment method, right?
It would really heavily depend on what you built and how, but I don't expect it would work easily. If you do it my way, the list of saved payment method is all on the platform account; and presumably your PaymentIntent is on a connected account. You can't pass one of those platform PaymentMethod pm_xxxs to that PaymentIntent, you'll get a 404 error. So if you want to do that, you need to be clever enough to show the platform list, then when the user picks one, go to your backend with that ID, clone that ID to the connected account, return the ID of the newly-created clone one, and pass that to the confirm function locally with the PaymentIntent client-secret.
Aah, I got it, thank you!
One last question, because you said the docs are confusing and they not involving tokens now: the section "Cloning PaymentMethods" says: "Cloning supports PaymentMethods of card type only.". Is this still right? So i can't copy a sepa_debit-PaymentMethod for example?
that part is correct, it's only cards that can be copied between accounts
OK, i thank you very much for your time and help!!