- A return is a transfer the receiving bank sends back, for reasons like a closed account, insufficient funds, or an unauthorized debit. You can return transfers you receive, and transfers you originate can be returned to you.
- A reversal is a correcting entry you initiate to recover funds from a transfer you originated by mistake, such as a duplicate or a wrong amount.
- A Notification of Change (NOC) is a message from the receiving bank that accepts your transfer but tells you a detail was incorrect, with the corrected value to use on future transfers.
Returns
You can return an ACH transfer you received for any valid reason withPOST /v2/ach/{ach_id}/return. External banks can likewise return transfers you originate. Either way, the return is recorded on the original transfer. Its status moves through the return chain. A new entry is added to returns[] with the return_code, a short reason, and any details the returning bank sent. After the return posts, it also includes the core_transaction_id of the ledger entry that moved the funds back. See The returns block and ACH Statuses.
The deadline depends on the return reason:
- Standard returns must be available to the originating depository financial institution (ODFI) by the opening of business on the second business day after the original settlement date. A business day is a weekday that isn’t a Federal Reserve holiday.
- Unauthorized debit returns (R05, R07, R10, R11) have until the opening of business on the 60th calendar day after settlement. They also need a signed Written Statement of Unauthorized Debit (WSUD). Get the WSUD before you start the return, and keep it for at least one year from the settlement date.
posted. Lead accepts the return request immediately, but doesn’t send it to the Fed until the original transfer posts.
Return codes
The endpointPOST /v2/ach/{ach_id}/return handles every step of a return dispute, and the return_code you pass tells Lead which step you mean. A standard code starts a return. A dishonor code disputes a return you received. A contest code answers a dishonor of a return you sent. Whichever step you’re on, you call the endpoint against the original transfer’s ach_id, and the code has to fit where the transfer is in the return chain. The request body also accepts metadata.
Standard return codes initiate a return against a transfer you received:
A return can itself be disputed, and both sides of that dispute run through the same endpoint. Submitting a dishonor or contest code moves the original transfer through the corresponding return chain statuses (
pending_dishonored_return, return_dishonored, pending_contested_return, return_contested). It also adds another entry to returns[] with type dishonored_return or contested_return.
Dishonored return codes dishonor a return you received against a transfer you originated. Submit within 5 business days of the return settling:
Contested dishonored return codes contest a dishonor of a return you issued. Submit within 2 business days of the dishonor settling:
Late returns
If you suspect an unauthorized debit after the return window has passed, contact Lead promptly with documentation that shows the authorization is invalid. Lead reviews the request and, if appropriate, asks the ODFI for permission to make a late return. A receiver can ask for a late return of a debit you originated. Nacha requires the originator, which is you, to keep proof of authorization for two years after the settlement date of the last debit. Keep these records ready so you can support or dispute a late return request.Reversals
Use a reversal to correct a transfer you originated in error: a duplicate payment, a wrong amount, or a wrong receiver. Initiate it withPOST /v2/ach/{ach_id}/reverse within five business days of the original settlement date. Reversals are only for genuine mistakes. Never use them to recover a transaction you believe is unauthorized.
The request body takes reason, one of duplicate, receiver_incorrect, amount_incorrect, debit_too_early, or credit_too_late, plus optional metadata.
How reversals behave:
- A reversal is a separate ACH transfer in the opposite direction for the same amount, with its own lifecycle and the same statuses as any other transfer. Lead sets its
statement_descriptortoREVERSAL. - Both transfers carry a
reversalblock with thereasonand the other transfer’s ID inlinked_ach_id. See The reversal block. - No webhooks fire on the original transfer when a reversal is created. Watch the reversal transfer for status webhooks.
- A reversal can itself be returned by the receiving bank. The return appears in the reversing transfer’s
returns[]. - Lead can reject a reversal in review, for example when it is requested after the five-business-day limit. The reversing transfer moves to
rejectedwith arejectionblock, and the original is unaffected.
Return or reversal?
Who made the mistake decides which action you use. If you originated it, reverse it. If you received it, return it.Notifications of Change
A receiving depository financial institution (RDFI) doesn’t have to return a transfer with a wrong detail. It can post the transfer and send back a Notification of Change (NOC), which says what was wrong and gives the right value to use from then on. You don’t need to parse Nacha change codes. Lead normalizes each NOC into acorrection block on the original ACH transfer, containing only the fields that changed. At least one field is present:
"correction": {
"account_number": "1234567899",
"routing_number": "123456789",
"account_type": "checking"
}
account_number: the corrected counterparty account number.routing_number: the corrected counterparty routing number.account_type: the corrected counterparty account type,checkingorsavings.
ach.corrected webhook or the Return/NOC file.
What you must do
Do the following:- The transfer that triggered the NOC processes as usual; no action is needed on it.
- Update your counterparty records with the corrected values. Do this within six business days of receiving the correction, or before your next transfer to that receiver.
- Do not keep using the old details. Lead might reject a subsequent transfer to a corrected counterparty with a
rejection.detailsthat references the ACH that carried the correction. Lead also monitors NOC activity and might reach out if the same correction keeps arriving.
Mapping to Nacha change codes
If you reconcile against raw Nacha data, such as the Return/NOC file, the common change codes map tocorrection fields as follows:

