Implement a complete ACH return code handler covering R01 through R29 with correct retry and notification logic

domain: nacha.org · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Subscribe to your ACH originator or bank API's return webhook or poll for return entries; parse the return reason code from the addenda record
  2. Classify codes into three buckets: hard failures that require no retry (R02 account closed, R03 no account, R04 invalid account number, R07/R10 authorization revoked), soft failures that may retry once (R01 insufficient funds, R09 uncollected funds), and administrative codes requiring data correction (R04, R05, R08)
  3. For R01/R09 soft failures, implement a single retry no sooner than 1 banking day later; NACHA rules prohibit retrying an NSF return more than 2 times on the original authorization
  4. For R07, R10, R29, and R23 codes that indicate authorization revoked or not authorized, immediately stop all future debits on that account and notify the customer; do not retry
  5. For R11 (check truncation entry return) and R14/R15 (representative payee deceased/unable), treat as requiring human review before any further action

Known gotchas

Related routes

Implement ACH return code handling for R01, R02, R03, and R04 with correct retry and customer notification logic
nacha.org · 6 steps · unrated
Handle ACH returns (R-codes) and notifications of change (C-codes)
nacha.org · 5 steps · unrated
handle ACH returns: NACHA return codes, timing windows, and retry rules
banking-general · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans