Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer tools
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
    Pay with Stripe balance
    Crypto
    Bank debits
      ACH Direct Debit
        Accept a payment
        Save bank details
        Migrating from the Charges API
        Migrating from another processor
        Blocked bank accounts
        SEC codes
      Bacs Direct Debit
      Pre-authorised debit in Canada
      Australia BECS Direct Debit
      New Zeland BECS Direct Debit
      SEPA Direct Debit
    Bank redirects
    Bank transfers
    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 debitsACH Direct Debit

Migrating from another processor

Migrate verified bank accounts from another payment processor with the Payment Methods API.

Copy page

If you have verified bank accounts that you’ve used to process ACH Direct Debit payments on another processor, you can migrate them to Stripe to begin accepting payments.

You and Stripe both share responsibility for maintaining proof of authorisation to debit, as well as verification of the bank account.

Request a data migration with Stripe

Stripe works with you and your current payment processor to migrate data into your Stripe account. After the import completes, Stripe provides you with a CSV or JSON Mapping File to help you match the old customer IDs to the imported Stripe object IDs.

To request this option, submit an intake form and select the ACH payment type.

Manually migrate bank accounts from another payment processor

If you choose to migrate yourself, Stripe temporarily allows you to bypass bank account verification. To request this temporary capability, contact Stripe support and include details about how your business:

  • Collects authorisation from customers
  • Verifies customer bank accounts

After Stripe enables this option, process each bank account and create a SetupIntent for each account:

  1. Create a new Customer object or retrieve an existing one to associate with this bank account.
Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
  1. Create and confirm a SetupIntent with your saved bank account details and the date of your customer’s original authorisation to debit the account.
Command Line
cURL
curl https://api.stripe.com/v1/setup_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment_method_types[]"=us_bank_account \ -d customer={{CUSTOMER_ID}} \ -d confirm=true \ -d "payment_method_options[us_bank_account][verification_method]"=skip \ -d "payment_method_data[type]"=us_bank_account \ -d "payment_method_data[billing_details][name]"={{ACCOUNT_HOLDER_NAME}} \ -d "payment_method_data[us_bank_account][routing_number]"={{ROUTING_NUMBER}} \ -d "payment_method_data[us_bank_account][account_number]"={{ACCOUNT_NUMBER}} \ -d "payment_method_data[us_bank_account][account_holder_type]"=individual \ -d "mandate_data[customer_acceptance][type]"=offline \ -d "mandate_data[customer_acceptance][accepted_at]"=1692821946
  1. Retrieve and store the PaymentMethod ID from the response to use for future payments. You can also retrieve it by listing all PaymentMethods for the customer.
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access programme.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc