Testing & Sandbox
ACH Return Simulation
Trigger specific NACHA return codes in the Cresora sandbox.
Use these test routing numbers to simulate ACH return scenarios in the sandbox.
Triggering returns
| Test routing number | Return code | Reason |
|---|---|---|
021000021 | (none — approval) | Payment succeeds |
999999999 | R01 | Insufficient funds |
111111118 | R10 | Customer advises not authorized |
021000089 | R02 | Account closed |
021000046 | R29 | Corporate customer advises not authorized |
Return webhook
When a return is triggered, Cresora fires ach.return.received:
{
"event": "ach.return.received",
"payment_id": "pay_xxxxxxxxxxxx",
"merchant_id": "mrch_xxxxxxxxxx",
"return_code": "R01",
"return_reason": "Insufficient funds",
"returned_at": "2026-05-30T09:00:00Z"
}Testing Reg E re-notification
To trigger an ach.renotification_required event in the sandbox, create a recurring ACH subscription and advance the billing date past the re-notification threshold using the sandbox time controls in the Partner Portal under Sandbox → Time Controls.
Simulating return timing
In production, ACH returns can arrive up to 60 days after the original debit (depending on the return code). In the sandbox, returns are simulated within minutes of the payment being created.