# Migrate to USD bank transfers from ACH Credit Transfers with Invoicing or Billing Learn how to migrate ACH Credit Transfers with Invoicing or Billing to Stripe USD Bank Transfers. > We deprecated the Sources API and plan to remove support for local payment methods. If you currently integrate with ACH Credit Transfers, you must [migrate to the Payment Methods API](https://docs.stripe.com/payments/payment-methods/transitioning.md). > > For information about migrating to USD Bank Transfer supported by the current APIs, refer to the documentation below. See [Migrating from Sources-based Credit Transfers](https://docs.stripe.com/payments/customer-balance/migrating-from-sources.md) if you want to learn about the reasons to migrate. ## Before you begin Confirm if you’re currently using the *legacy* (Technology that's no longer recommended) ACH Credit Transfers product using the Dashboard or the API: #### Dashboard If ACH Credit Transfer is toggled on in your [Invoice Template Settings](https://dashboard.stripe.com/settings/billing/invoice), then you’re using ACH Credit Transfers. #### API - If you create invoices or subscriptions without passing explicit payment method types, check to see if ACH Credit Transfer is toggled on in your [Invoice Template Settings](https://dashboard.stripe.com/settings/billing/invoice). - If you create an invoice or subscription with explicit payment method types, check to see if you pass the `ach_credit_transfer` type as part of the `payment_settings.payment_method_types` array. If you’re not using ACH Credit Transfers, you can skip this guide because it doesn’t apply to you. ## Activate USD bank transfers To turn on bank transfer payments, go to your [Payment methods settings](https://dashboard.stripe.com/settings/payment_methods). ## Optional: Test bank transfers with a single customer To test bank transfers with an individual invoice or subscription before enabling bank transfers, use the Dashboard or API: #### Dashboard 1. To create a new customer, go to the [**Customers**](https://dashboard.stripe.com/customers) tab, and click **Add Customer**. 1. After creating the customer, click the row of the customer to go to the customer view page. 1. Create an invoice or subscription for the applicable customer by clicking **Actions** in the top right of the page. 1. Under the **Payment Collection** section, add **ACH credit transfer**, and confirm the invoice or subscription. If you’re testing subscriptions, you need to wait for a new invoice to be issued or use [Billing test-clocks](https://docs.stripe.com/billing/testing/test-clocks.md). 1. From the Invoice view page, go to the **Details** section, and click the **Payment page**. 1. In the hosted payment page, find the Credit Transfer bank details. Make note of these details. 1. On the same customer, create another invoice or subscription. Under the **Payment Collection** section, click add **Bank transfer**, and confirm the invoice or subscription. 1. Open the payment page of the bank transfer invoice, and compare the bank details with the Credit Transfer bank details you noted earlier—the migration is complete. #### API 1. Create a test customer: ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d name="Jenny Rosen" \ --data-urlencode email="jenny.rosen@example.com" ``` 1. Create a Credit Transfer invoice or subscription for the above customer by explicitly passing the `ach_credit_transfer` payment method type: ```curl curl https://api.stripe.com/v1/invoiceitems \ -u "<>:" \ -d amount=1234 \ -d currency=usd \ -d customer="$CUSTOMER_ID" \ -d description="Professional services" ``` ```curl curl https://api.stripe.com/v1/invoices \ -u "<>:" \ -d customer="$CUSTOMER_ID" \ -d "payment_settings[payment_method_types][]"=ach_credit_transfer \ -d collection_method=send_invoice ``` ```curl curl -X POST https://api.stripe.com/v1/invoices/$INVOICE_ID/finalize \ -u "<>:" ``` Or for the Subscriptions API: ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d unit_amount=1234 \ -d currency=usd \ -d "recurring[interval]"=month \ -d "product_data[name]"=shoes ``` ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer="$CUSTOMER_ID" \ -d "items[0][price]"="$PRICE_ID" \ -d collection_method=send_invoice \ -d days_until_due=30 \ -d "payment_settings[payment_method_types][0]"=ach_credit_transfer ``` If testing Subscriptions, you must wait for the subscription to generate and finalize its first invoice. Use [Billing test-clocks](https://docs.stripe.com/billing/testing/test-clocks.md) to speed up this process. 1. View the PDF or Hosted Invoice Page of the invoice to make note of the customer’s Credit Transfer bank details. 1. Build the new Bank Transfers integration on [Invoicing](https://docs.stripe.com/invoicing/bank-transfer.md) or [Subscriptions](https://docs.stripe.com/billing/subscriptions/bank-transfer.md) using the bank transfer integration guide. You must use the same test customer created above when following the guide. Your integration now supports Bank Transfers, in addition to the existing implementation on Sources. 1. After you [test](https://docs.stripe.com/invoicing/bank-transfer.md#testing) and confirm that the integration works with the test customer, open the PDF or Hosted Invoice Page of the bank transfer invoice. Confirm the bank transfer bank details match the Credit Transfer bank details. The customer has been successfully migrated. ## Turn on bank transfers for all customers After you’ve tested on an individual customer in testing environments, attach the payment method on individual invoices or subscriptions in live mode. To enable Bank transfers for all of your invoices and subscriptions, go to the [Invoice Template Settings](https://dashboard.stripe.com/settings/billing/invoice), toggle on **Bank transfers**, and toggle off **ACH credit transfer**. ## Optional: Migrate from the Sources API to the Payment Intents API If you suspect you’re using the Sources API separately from the Billing API to handle source operations, like attachment, creation, deletion, retrieval, or update requests, check the following endpoints: - [Update Source](https://docs.stripe.com/api/sources/update.md) - [Create Source](https://docs.stripe.com/api/sources/create.md) - [Attach Source](https://docs.stripe.com/api/sources/attach.md) - [Detach Source](https://docs.stripe.com/api/sources/detach.md) - [Retrieve Source](https://docs.stripe.com/api/sources/retrieve.md) If the endpoints don’t generate any volume, you’re not using the Sources API. In this case, create or retrieve funding instructions. This approach lets you display bank account details to your customers before they make their first payment through the Dashboard or API. To learn more, see [Funding instructions](https://docs.stripe.com/payments/customer-balance/funding-instructions.md).