Import ACH data
When migrating ACH data from your previous processor, we can import the ACH records into Stripe using the default bank account (ba_
) object or a payment method (pm_
) object representation.
Before the first charge with ACH direct debit, a business must get permission from the customer to debit their bank account by presenting a mandate to the customer. To import ACH records as pm_
objects, we need your confirmation that you hold mandates for the bank accounts you’re importing. If you’re unsure, consult with your previous payment service provider. If you don’t hold the mandates, we import the ACH records with the ba_
object representation.
After determining mandate status for all, some, or none of the bank accounts, inform us. Based on your response, we’ll then provide instructions on the next steps you need to take.
ACH validation status![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
You must confirm the WEB debit accounts’ validation status by choosing one of the options below:
- All WEB debit accounts were debited before the Nacha WEB Debit Account Validation Rule took effect on March 19, 2022.
- All WEB debit accounts have been validated according to Nacha’s Web Debit Account Validation rule by your previous payment service provider.
- Some WEB debit accounts were debited before Nacha’s WEB Debit Account Validation Rule became effective on March 19, 2022, or complied with the rule through your previous provider. You must provide a list of validated and non-validated records.
- None of the WEB debit accounts were processed before the effective date of the Nacha WEB Debit Account Validation Rule on March 19, 2022, nor successfully validated by your previous provider. Stripe must validate these accounts. (An instant verification fee applies per bank account validation.)
How it works![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
![Shows the ACH record import process](https://b.stripecdn.com/docs-statics-srv/assets/dm-ach.6b9d5e4b6efa67df8e0fa76331a1e904.jpg)
ACH emails![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
In our intake form, choose whether to import the mandates as bank account (ba_
) or payment method (pm_
) objects.
- If you choose bank accounts, we don’t notify your customers about the migration.
- If you choose payment methods and provide customer emails, we’ll automatically send your customers an email to confirm the mandate in accordance with Nacha requirements after the import. Your customers don’t need to do anything after receiving the emails.
ACH file guidance![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
- A processor can provide a number of different fields.
- We advise your processor to provide a full export of all customer and payment method data to Stripe.
- Stripe can filter out any unnecessary fields from the previous processor’s data as needed.
- Stripe can merge multiple received files if either the old customer ID or the old source ID is present in both files.
File formatting requirements![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Export data files must meet the following data standards for us to proceed with an import:
- The file must be in CSV format.
- The file must be UTF-8 encoded.
- Delimit rows by a single newline character
\n
(not\r\n
). - Delimit columns by
,
- You must wrap all fields containing commas in double quotes
"
. We recommend wrapping all fields in double quotes. - Leave empty fields entirely empty (no character in between delimiters). You must not denote a missing field with
NULL
,N/A
, or any other value. - Escape any double quotes that are part of the content with another double quote per the CSV RFC. For example:
"``William
""``Bard of Avon``""
Shakespeare``"
- Fields can’t contain newline characters (
\r
or\n
) within a field. Example of what to avoid:101 1st Ave\nApt 1
- All rows must have the same number of columns.
- Columns support any order.
- You must encrypt sensitive data files with our PGP key before submitting through SFTP.
ACH data fields![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Field | Required | Additional info |
---|---|---|
Old customer ID | Required | We create a customer ID for each unique old customer ID provided. |
Routing number | Required | Must be 9 digits in length and include leading zeros. |
Account number | Required | Most bank account numbers have between 8 and 12 digits, though they can range from 5 to 17 digits. |
Account holder type | Required | Specifies individual or company as the type of business. |
Account type | Required | Specifies a checking or savings account. Unspecified account are imported as checking . |
Account name | Required | First and last name of account holder or company name. |
Optional* | Additional metadata *If importing ACH records as payment methods and providing customer emails, we’ll automatically send your customers an email to confirm the mandate in accordance with Nacha requirements after the import. Your customers don’t need to do anything after receiving the emails. | |
City | Optional | Additional metadata |
Postal | Optional | Additional metadata |
Country | Optional | Provide in ISO 2 letter country code format. |
Phone | Optional | Additional metadata |
Address line 1 | Optional | Additional metadata |
State | Optional | Additional metadata |
Stripe customer ID | Optional | Additional metadata |
Old source ID | Optional | Additional metadata |
Customer/ACH Metadata | Optional | Any additional metadata |
ACH Data Migration Certification and Disclaimer Language![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
By submitting the ACH Data Migration intake form, you certify that all of the following statements are true and that you have authority to make these statements.
You agree to comply with Section 2.3 of the Nacha Operating Rules in connection with collecting authorizations when using Stripe services to process ACH Debit transactions.
You understand that you, as the Originator (as defined in the Nacha Operating Rules), are solely responsible for collecting and retaining ACH Debit authorizations from your customers that comply with the Nacha Operating Rules and Stripe’s ACH Payment Method Terms. For recommended text, see the Stripe ACH documentation.
If you do not meet the Nacha Operating Rules requirements for the authorization of debits, you understand that you must collect new authorizations before processing ACH Debit transactions on Stripe.
For authorizations collected prior to migration to Stripe, you must provide Stripe with evidence of any relevant authorization for ACH Debits upon request. When contesting a dispute, you are solely responsible for providing a copy of the authorization.