US payments QA · NACHA

ACH test file generator with returns and NOCs

Generate a NACHA ACH file (PPD or CCD, credits or debits), then the return file and Notification of Change your bank would send back for chosen entries. Every reply carries the original trace number, so you can test how your system matches returns and corrections to payments. Synthetic data, reproducible with a seed.

1. File settings

Same settings and seed always give the same files.

2. Bank replies

Test data only. Do not send these files to a real ACH operator or bank.

3. Files

Choose the settings and press Generate ACH files. You will get the originated file plus the return and NOC files for the entries you picked.

Need returns and NOCs in your CI?

We are building an API that answers your test ACH files like an RDFI: returns, NOCs, reversals and ISO 20022 equivalents, per bank. Tell us what you integrate with and get early access. For Stripe-specific outcome checks see the ACH QA pack.

FAQ

What does the ACH test file generator create?

A NACHA-formatted originated file (PPD or CCD, credits or debits), a return file for the entries you choose with R-codes such as R01 or R03, and a Notification of Change (COR) file with C-codes such as C01. Each return and NOC addenda carries the original trace number, so you can test how your system matches replies to payments.

Are the files valid NACHA files?

They follow the NACHA record layout (94-character records, blocking factor 10, batch and file control totals and entry hashes) and pass the open-source Moov ACH validator in our tests. They are synthetic test files: do not send them to a real ACH operator or bank.

Which routing and account numbers are used?

Receiving banks use public, checksum-valid routing numbers of large US banks; account numbers, names and company IDs are synthetic. Use a seed to get the same files every time for regression fixtures.

What is the difference between a return and a NOC?

A return (R-code) sends the money back because the entry could not be posted, for example R01 insufficient funds or R03 no account. A Notification of Change (C-code) posts the entry but tells the originator to correct the account or routing data for future entries.

Related: US bank account & routing number generator · routing number checker · pain.002 / camt.054 generator

IBANgen provides synthetic QA data. Generated files do not reflect how any real bank or ACH operator processes entries.