Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
Build an advanced integration
Build an in-app integration
Payment methods
Add payment methods
    Overview
    Payment method integration options
    Manage default payment methods in the Dashboard
    Payment method types
    Cards
    Bank debits
    Bank redirects
    Bank transfers
      Accept a payment
      Customer balance
        Reconciliation
        Funding instructions
        Virtual bank account numbers
        Migrating from ACH Credit Transfer Sources
          Migrate with Invoicing or Billing
          Migrate from the Sources API
          Migrate your Standard Connect integration
          Automatic migration to Bank Transfers
      Refunds
    Credit transfers (Sources)
    Buy now, pay later
    Real-time payments
    Vouchers
    Wallets
    Enable local payment methods by country
    Custom payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsAdd payment methodsBank transfersCustomer balance

Migrating from Sources-based Credit Transfers

Learn how to migrate your Sources-based ACH Credit Transfer payment method to USD Bank Transfers.

Copy page

Warning

We deprecated the Sources API and plan to remove support for local payment methods. If you currently integrate with ACH Credit Transfer payments using the Sources API, you must migrate to the Payment Methods API. We’ll send email communications with more information about this end of support.

For information about migrating to USD Bank Transfer supported by the current APIs, refer to the documentation below.

Reasons to migrate

The bank transfers payment method adds many improvements compared to ACH Credit Transfers. It’s compatible with Stripe PaymentIntents, supports Stripe Checkout, and the Payment Element, and takes less effort to operate, reconcile, and refund.

Impact of not migrating

Stripe plans to disable support for payment methods in the Sources API. If you handle any payment methods using the Sources API, you must migrate them to the Payment Methods API. We’ll provide further information about this end of support through email.

Impact on ACH Credit Transfers customers

When you migrate, Stripe keeps the same bank account information for customers when you add bank transfers, making the process seamless for them. If you don’t migrate, customers can still send funds using the legacy ACH Credit Transfer product.

Credit transfers versus Bank transfers

The following table details the differences between the new bank transfers payment method and ACH Credit Transfers:

FeatureACH Credit TransferBank transfers
Checkout SupportNo Yes
Payment Element SupportNo Yes
Dynamic payment methods supportNo Yes
RefundsRequire customer actionPartially automated
Funds land inSourceCash balance
APISourcesPayment Intents
Unreconciled balancesMoved to your balanceReturned to the customer

How Stripe migrates objects to support bank transfers

When you activate bank transfers, Stripe automatically enables your customer objects to support the new cash balance, one of the primary features of the bank transfers product.

  • For a customer with no attached Credit Transfer Sources, Stripe provisions a new virtual account number for the cash balance.
  • For a customer with attached Credit Transfer Sources, Stripe consumes the Credit Transfer Source object and moves the full remaining amount into the customer’s cash balance. See new transfers sent by the customer to the Source bank account number in the customer’s cash balance instead. The virtual account number stays consistent throughout the migration process, and you don’t need to communicate any new destinations to the customer. Single customers are automatically migrated after you perform one of the following actions:
    • Request of Customer Balance Funding Instructions (recommended if you’re upgrading your integration)
    • Confirmation of a customer_balance Payment Intent
    • Creation of an invoice or subscription using bank transfers
    • In testing environments, simulation of a funding transaction
  • After the migration process is complete, it’s no longer possible to delete the customer. In return, we guarantee that funds sent to the virtual account at any point in the future are added to the correct customer cash balance.

Migrating your Connect integration

Account properties

Connected accounts can be configured with properties that determine how the account will behave. Account types can be mapped to their corresponding properties.
This content applies to connected accounts that have full Stripe Dashboard access. This includes Standard accounts.

If your Connect platform integrates with Standard connected accounts using ACH Credit Transfers, follow the steps in the Connect integration guide.

Migrating for Invoicing or Billing

If you’re using ACH Credit Transfer payments with Invoicing or Billing and want to migrate, follow the steps in the Invoicing migration guide.

Migration for a direct integration with the Sources or Charges API

If you’re using ACH Credit Transfers using the Sources API, follow the steps in the Sources migration guide.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc