ACH return reason code
R17 return code: File Record Edit Criteria/Entry Initiated Under Questionable Circumstances/Return of Improperly-Initiated Reversal
The entry fails the RDFI’s edit criteria, the RDFI believes it is fraudulent or otherwise questionable (QUESTIONABLE in the addenda), or it is an improperly initiated reversal.
What R17 means
R17 is the return reason code File Record Edit Criteria/Entry Initiated Under Questionable Circumstances/Return of Improperly-Initiated Reversal
. The entry fails the RDFI’s edit criteria, the RDFI believes it is fraudulent or otherwise questionable (QUESTIONABLE in the addenda), or it is an improperly initiated reversal.
It is sent by the RDFI as a return entry: the original entry goes back to the ODFI with an addenda record carrying R17, and the ODFI passes the return on to the Originator.
Typical causes
- The entry fails the RDFI’s edit criteria — data it cannot post.
- The RDFI believes the entry is fraudulent or otherwise questionable (a payment sent under false pretenses, for example) and returns it, before or after posting; the Addenda Information then says QUESTIONABLE. Since October 1, 2024 the Rules allow, but don’t require, this for any entry the RDFI thinks is fraudulent, not only one with an invalid account number.
- The entry is a reversal the RDFI considers improperly initiated; the Addenda Information then says IMPROPER REVERSAL.
Return timeframe
Available to the ODFI by opening of business on the 2nd banking day after the settlement date of the original entry.
Banking days are the Federal Reserve’s business days: weekends and Fed holidays don’t count, so a holiday in the window pushes the deadline out by a day.
Worked example
For an entry that settled on Wednesday, November 25, 2026, the day before Thanksgiving: must be available to the ODFI by opening of business on Monday, November 30, 2026.
What the Originator can do next
- Read the Addenda Information field of the return: it says which use applies.
- A QUESTIONABLE return means the Receiver’s bank suspects fraud: check how the payment instruction reached you (a changed vendor or payroll account, for example) and confirm it through a channel you already trust before sending anything else.
- R17 returns follow the general 2-banking-day timeframe; some uses carry conditions of their own, so check the Rules for the one that applies.
How R17 appears in a NACHA file
A return is the original entry detail record (type 6) sent back with a return transaction code — 21 or 26 for a checking account, 31 or 36 for savings (21 and 31 return a credit, 26 and 36 a debit) — the original amount, and an addenda record of type 99 that carries the reason. The batch keeps the original entry’s SEC code.
| Positions | Field | In an R17 return |
|---|---|---|
| 1 | Record Type Code | 7 (addenda) |
| 2–3 | Addenda Type Code | 99 (return) |
| 4–6 | Return Reason Code | R17 |
| 7–21 | Original Entry Trace Number | Trace number of the entry being returned |
| 22–27 | Date of Death | YYMMDD for R14 and R15; blank otherwise |
| 28–35 | Original Receiving DFI Identification | First 8 digits of the original entry’s RDFI routing number |
| 36–79 | Addenda Information | Free text from the RDFI |
| 80–94 | Trace Number | The return entry’s own trace number |
To read a return file record by record, open the file in NACHA Navigator, a free sister site that parses NACHA files in your browser without uploading them.
Look up R17 from code or an AI agent
The code table on this page is the one behind the REST API and the MCP server, so a script or an AI agent gets the same answer as JSON. No key and no account.
curl -s 'https://payopskit.com/api/v1/codes/R17?set=ach-return'{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "lookup_payment_code",
"arguments": {
"code": "R17",
"set": "ach-return"
}
}
}{
"code": "R17",
"set": "ach-return",
"found": true,
"matches": [
{
"set": "ach-return",
"code": "R17",
"name": "File Record Edit Criteria/Entry Initiated Under Questionable Circumstances/Return of Improperly-Initiated Reversal",
"description": "The entry fails the RDFI’s edit criteria, the RDFI believes it is fraudulent or otherwise questionable (QUESTIONABLE in the addenda), or it is an improperly initiated reversal.",
"details": {
"category": "return",
"timeframe": "Available to the ODFI by opening of business on the 2nd banking day after the settlement date of the original entry",
"timeframeKind": "banking-days",
"timeframeDays": 2,
"timeframeFrom": "original-settlement",
"account": "any",
"accountNote": null,
"writtenStatement": false,
"initiatedBy": "RDFI",
"note": null,
"effectiveFrom": null,
"upcomingChange": null,
"caveat": "R17 has several uses, each with its own Addenda Information wording. Since October 1, 2024 the Rules let (but don’t require) an RDFI return an entry it believes is fraudulent with R17 and QUESTIONABLE, whatever the account number, and since January 1, 2026 whether it decides before or after posting. Confirm the timeframe for each use in the Rules."
}
}
]
}The MCP server is at /mcp (Streamable HTTP, no key); the API and MCP docs show how to connect Claude, Cursor or VS Code.
The deadline for a settlement date: GET /api/v1/ach/return-deadline?settlement_date=2026-11-25&code=R17 or the MCP tool ach_return_deadline.
Source: Nacha Operating Rules, Appendix Four (Return Entries). The code’s title is the Rules’ own; the rest is this site’s plain-language summary. It is informational and not a substitute for the Rules, your ACH Operator’s schedule or your ODFI agreement.