ACH return reason code
R90 return code: Entry Returned Due to RDFI's Sanctions Compliance Obligations
From March 17, 2028: the RDFI returns the entry because its sanctions compliance obligations require it, the part of R16 that covers OFAC today.
What R90 means
R90 is the return reason code Entry Returned Due to RDFI's Sanctions Compliance Obligations
. From March 17, 2028: the RDFI returns the entry because its sanctions compliance obligations require it, the part of R16 that covers OFAC today.
It is sent by the RDFI as a return entry: the original entry goes back to the ODFI with an addenda record carrying R90, and the ODFI passes the return on to the Originator.
Typical causes
- From March 17, 2028: the RDFI returns an entry because its sanctions compliance obligations require it — after screening against the US Treasury’s OFAC lists, for example.
- Until that date such returns use R16 (Account Frozen/Entry Returned per OFAC Instruction); on March 17, 2028 R16 becomes Account Frozen only.
Return timeframe
Available to the ODFI by opening of business on the 2nd banking day after the RDFI’s sanctions compliance determination.
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.
What the Originator can do next
- Don’t reinitiate the entry; involve your compliance team, as for an OFAC-related R16 today.
- Update return-code tables, reconciliation rules and reports to recognize R90 before March 17, 2028, and expect sanctions returns there instead of under R16.
How R90 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 R90 return |
|---|---|---|
| 1 | Record Type Code | 7 (addenda) |
| 2–3 | Addenda Type Code | 99 (return) |
| 4–6 | Return Reason Code | R90 |
| 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 R90 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/R90?set=ach-return'{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "lookup_payment_code",
"arguments": {
"code": "R90",
"set": "ach-return"
}
}
}{
"code": "R90",
"set": "ach-return",
"found": true,
"matches": [
{
"set": "ach-return",
"code": "R90",
"name": "Entry Returned Due to RDFI's Sanctions Compliance Obligations",
"description": "From March 17, 2028: the RDFI returns the entry because its sanctions compliance obligations require it, the part of R16 that covers OFAC today.",
"details": {
"category": "return",
"timeframe": "Available to the ODFI by opening of business on the 2nd banking day after the RDFI’s sanctions compliance determination",
"timeframeKind": "banking-days",
"timeframeDays": 2,
"timeframeFrom": "sanctions-determination",
"account": "any",
"accountNote": null,
"writtenStatement": false,
"initiatedBy": "RDFI",
"note": null,
"effectiveFrom": "2028-03-17",
"upcomingChange": null,
"caveat": "Adopted by Nacha with effect from March 17, 2028, and not used before then: until that date a return for OFAC reasons uses R16. Confirm the details in the Rules once it is in force."
}
}
]
}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=R90 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.