# Clone customer payment information across connected accounts Reuse payment information across multiple connected accounts that share customers. > The content of this page describes a *legacy* (Technology that's no longer recommended) feature. Support for it might end without notice, so if you use this feature, update your integration to use the current process for reusing payment information across connected accounts. For more information, see [Share payment methods across multiple accounts](https://docs.stripe.com/connect/direct-charges-multiple-accounts.md#clone-and-create-direct-charges). For some business models, it’s helpful to reuse your customers’ payment information across connected accounts. For example, a customer who makes a purchase from one of your connected sellers shouldn’t need to re-enter their credit card or bank account details to purchase from another seller. With *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), you can accomplish this by following three steps: 1. [Storing customers](https://docs.stripe.com/connect/cloning-customers-across-accounts.md#storing-customers), with a payment method, on the platform account. 1. [Creating tokens](https://docs.stripe.com/connect/cloning-customers-across-accounts.md#creating-tokens) to clone the payment method when it’s time to charge the customer on behalf of a connected account. 1. [Creating charges](https://docs.stripe.com/connect/cloning-customers-across-accounts.md#creating-charges) using the new tokens. ## Storing customers Cloning saved payment methods is only relevant when [creating direct charges on connected accounts](https://docs.stripe.com/connect/direct-charges.md). It’s not necessary when making charges on your platform account. When not cloning payment methods, you save the Stripe [Customer objects](https://docs.stripe.com/api.md#customers) on each individual connected Stripe account. When cloning payment methods, you instead save them on the platform Stripe account. This is an [API call](https://docs.stripe.com/api.md#create_customer) but be sure to use your own secret and publishable keys instead of the connect account’s. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ --data-urlencode "email=paying.user@example.com" \ -d source=tok_mastercard ``` ## Creating tokens > If your platform uses the Sources API, you must [create a Source from that customer](https://docs.stripe.com/sources.md) rather than creating a token. If your platform uses the [Payment Methods API](https://docs.stripe.com/payments/payment-methods.md), you must [create a PaymentMethod from that customer](https://docs.stripe.com/connect/direct-charges-multiple-accounts.md#clone-and-create-direct-charges). After following either of these guides, proceed to [Creating charges](https://docs.stripe.com/connect/cloning-customers-across-accounts.md#creating-charges) without creating a token. When you’re ready to create a charge on a connected account using a customer saved on your platform account, [create a new token](https://docs.stripe.com/api.md#create_card_token) for that purpose. You’ll need: - The Stripe account ID of the connected account (for example, `acct_orWziM4j7CiRL8J4`) that you’re creating the charge for - The ID of the customer in your platform account (for example, `cus_orWziM4j7CiRL8`) being charged - The card or bank account ID for that customer, if you want to charge a specific card or bank account rather than the default ```curl curl https://api.stripe.com/v1/tokens \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "customer={{CUSTOMER_ID}}" ``` ## Creating charges With the token generated in the previous step, [attach this token to a customer](https://docs.stripe.com/api.md#create_customer) on the connected account. > Charges that are made on the cloned customer aren’t reflected on the original customer. This feature is intended for multiple connected accounts that need to charge the same user. > If your platform uses the [Payment Methods API](https://docs.stripe.com/payments/payment-methods.md), you must pass the payment method ID as the `payment_method` parameter instead of passing the `source` parameter. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "source={{TOKEN_ID}}" ``` Then, use the customer ID (for example, `cus_orWziM4j7CiRL8`) and the payment method ID (for example, `card_orWziM4j7CiRL8`) returned by the `customers.create` call to charge the customer. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d amount=999 \ -d currency=usd \ -d "payment_method_types[]=card" \ -d "customer={{CUSTOMER_ID}}" \ -d "payment_method={{PAYMENTMETHOD_ID}}" ``` ## See also - [Creating charges](https://docs.stripe.com/connect/charges.md) - [Creating direct charges](https://docs.stripe.com/connect/direct-charges.md)