Skip to main content
Cresora Commerce
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 numberReturn codeReason
021000021(none — approval)Payment succeeds
999999999R01Insufficient funds
111111118R10Customer advises not authorized
021000089R02Account closed
021000046R29Corporate 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.