{"article":{"id":32881797799575,"url":"https://plaid.zendesk.com/api/v2/help_center/en-us/articles/32881797799575.json","html_url":"https://support.plaid.com/hc/en-us/articles/32881797799575-What-are-the-common-ACH-return-codes","author_id":5390778350871,"comments_disabled":true,"draft":false,"promoted":false,"position":2,"vote_sum":0,"vote_count":0,"section_id":32456223710615,"created_at":"2025-06-17T20:46:03Z","updated_at":"2026-06-03T20:43:28Z","name":"What are the common ACH return codes?","title":"What are the common ACH return codes?","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-03T20:43:28Z","user_segment_id":null,"permission_group_id":1121774,"content_tag_ids":[],"label_names":[],"body":"<p>The most common return codes are listed below. You can find a list of all return codes in the <a href=\"https://www.nachaoperatingrulesonline.org\">Nacha Operating Rules</a>. Return codes are essential for identifying and resolving issues quickly.</p>\n<p>Unless otherwise noted, the return timeframe is <strong>2 banking days from the settlement date of the original debit</strong>.</p>\n<h2>Overall Returns</h2>\n<h3>R01 – Insufficient Funds</h3>\n<p>The available balance in your end-customer's bank account is not enough to cover the ACH debit.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Initiate a Retry Payment when the end-customer has sufficient funds. Follow the Retry Payment requirements.</li>\n<li>Debits returned with the R01 code can be reinitiated for up to 180 days following the original transfer's settlement date, as per Nacha (ACH) rules.</li>\n<li>A new authorization from the end-customer is not required for a retry.</li>\n<li>Compliance with retry payment rules is necessary.</li>\n<li>Detailed instructions on initiating a retry payment are available in <a href=\"https://plaid.com/docs/transfer/troubleshooting/\">Transfer - Errors and troubleshooting</a>.</li>\n</ol>\n<h3>R08 – Stop Payment</h3>\n<p>Your end-customer has placed a Stop Payment on the ACH debit.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Contact your end-customer and determine the reason for the stop payment return. The transaction can be re-initiated if your customer re-authorizes the debit, but you have to confirm the stop payment has been lifted or else it will be returned again.</li>\n<li>In the case of a debit that was returned as part of a recurring (pre-authorized) debit, all entries included in the preauthorization will be returned if a debit is attempted. It is important that you request evidence that the stop payment has been lifted to avoid additional returns.</li>\n</ol>\n<h3>R09 – Uncollected Funds</h3>\n<p>A sufficient balance exists in your end-customer's bank account, but the available balance is not enough to cover the dollar amount of the ACH debit.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Initiate a Retry Payment when the end-customer has sufficient funds. Follow the Retry Payment requirements.</li>\n<li>Debits returned with the R09 code can be reinitiated for up to 180 days following the original transfer's settlement date, as per Nacha (ACH) rules.</li>\n<li>A new authorization from the end-customer is not required for a retry.</li>\n<li>Compliance with retry payment rules is necessary.</li>\n<li>Detailed instructions on initiating a retry payment are available in <a href=\"https://plaid.com/docs/transfer/troubleshooting/\">Transfer - Errors and troubleshooting</a>.</li>\n</ol>\n<h3>R16 – Account Is Frozen, or the Debit Was Returned per OFAC Instruction</h3>\n<p>The debit was returned because the bank account was frozen due to action taken by the RDFI or legal action, OR the debit was returned by OFAC's instruction.</p>\n<p><strong>Recommended approach:</strong></p>\n<p>This return code warrants attention. If the account is in a \"frozen\" status and a debit is re-initiated without contacting the customer, it is highly likely that the debit will be returned again.</p>\n<ol>\n<li>\n<strong>Contact the Customer:</strong> Initiate communication to gather more details.</li>\n<li>\n<strong>Verify Unfrozen Account (if applicable):</strong><ul>\n<li>If the customer states the account is no longer frozen, request supporting documentation.</li>\n<li>Upon confirmation, secure a new debit authorization.</li>\n</ul>\n</li>\n</ol>\n<h3>R17 – Questionable Transaction</h3>\n<p>The debit was originated with an invalid account number leading the RDFI to believe it was originated under questionable circumstances.</p>\n<p><strong>Recommended approach:</strong></p>\n<p>Plaid's Auth Product typically prevents \"Invalid Account Number\" returns, which signify that the receiving financial institution (RDFI) does not recognize the account number used in the ACH transaction. If this type of return occurs:</p>\n<ol>\n<li>Verify the accuracy of the entered account information.</li>\n<li>Mark and investigate the transaction for potential fraudulent activity, as it could be an attempt to solicit valid bank account details.</li>\n<li>If the end-customer provided incorrect account details, request a new authorization.</li>\n</ol>\n<h3>R20 – Non-Transaction Account</h3>\n<p>The ACH entry is destined for a non-transaction account, for example an IRA or General Ledger account.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Your end-customer may have linked a bank account that does not accept ACH transactions or specifically ACH debits.</li>\n<li>Reach out to your customer and have them provide a new bank account along with a new authorization to debit.</li>\n</ol>\n<h2>Administrative Returns</h2>\n<p>Returns in this category consist of three types. Validating account and routing details, along with verifying end-customer identity, can greatly decrease these return types.</p>\n<h3>R02 – Account Closed</h3>\n<p>A previously active account is now closed by action of the account holder or their financial institution.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Disable this account from your end-customer's profile.</li>\n<li>Obtain a new authorization with updated account and routing information.</li>\n</ol>\n<p>If an account is closed, it will not be re-opened, so debits returned with this code should never be re-initiated.</p>\n<h3>R03 – No Account / Unable to Locate Account</h3>\n<p>The account number structure is valid, but the account number does not correspond to the individual identified in the transaction, or the account number provided does not correspond to an existing account. The RDFI is not obligated to check whether the name on the transaction matches the name on the account, but they may do so at their discretion. The RDFI may have also included the reason for the R03 return in the addenda record of the return entry.</p>\n<p><strong>Recommended approach:</strong></p>\n<p>This return code indicates a high-risk scenario, potentially stemming from compromised account details and unauthorized usage. Upon receiving this type of return, the following actions should be taken:</p>\n<ol>\n<li>Freeze or disable the account from your end-customer's profile.</li>\n<li>Review the Customer Profile and make sure the name on your customer's profile matches the name on the linked bank account.</li>\n<li>If you are able to contact the end-customer, determine that the reason for the return is an error and not fraud-related.</li>\n<li>Add a new bank account and make sure the name on the account matches the name of your end-customer.</li>\n</ol>\n<h3>R04 – Invalid Account Number Structure</h3>\n<p>The account number in the ACH transfer is incorrect or improperly formatted.</p>\n<p><strong>Recommended approach:</strong></p>\n<p>For a debit initiated to a Chase Bank account, check if the return webhook reason is <code style=\"border:none;background:#f1f3f5;padding:1px 4px;border-radius:3px;font-size:0.9em;\">USER_PERMISSION_REVOKED</code> to determine if the TAN was revoked.</p>\n<p>If the return is from another bank:</p>\n<ol>\n<li>Verify the return wasn't due to an error on your part. If so, correct it and reinitiate the transfer if the authorization is still valid.</li>\n<li>If the return wasn't your error, disable the account in the end-customer's profile.</li>\n<li>Obtain a new authorization with updated account and routing details.</li>\n</ol>\n<h2>Unauthorized Debit Returns</h2>\n<p>Once an unauthorized debit return is received, it cannot be disputed or contested through the ACH network, even in cases of suspected friendly fraud. Any disputes regarding unauthorized debit returns must be resolved outside of the ACH network, such as through legal action.</p>\n<p>Unauthorized ACH debits are often assumed to be fraudulent, but the reality is more complex. These returns can stem from various issues, including actual fraud, a customer revoking authorization, consumer confusion about charges, misunderstandings regarding payments, or failures to adhere to authorization regulations by you, the originator of the transaction.</p>\n<p>Customers may return debits as unauthorized for several reasons:</p>\n<ol>\n<li>\n<strong>Fraud</strong> — may result in an R10 coded return:<ul>\n<li>First-Party Fraud: The account holder is the fraudster.</li>\n<li>Third-Party Fraud: An individual's identity or account information is used without their consent for the fraudster's financial gain.</li>\n</ul>\n</li>\n<li>\n<strong>Revoked Authorization</strong> — may result in an R07 coded return:<ul>\n<li>The customer followed the instructions on the authorization form to revoke authorization, but the debit was still initiated.</li>\n</ul>\n</li>\n<li>\n<strong>Authorization Terms Not Followed</strong> — may result in an R11 coded return:<ul>\n<li>Incorrect Amount: A different amount was debited than authorized.</li>\n<li>Incorrect Date: The debit occurred on a different date than authorized.</li>\n</ul>\n</li>\n<li>\n<strong>Unrecognized Company Name</strong> — may result in an R10 coded return:<ul>\n<li>The customer does not recognize the \"Originator or Company Name\" on their bank statement as the authorized entity. For clarity, the name used should be easily recognizable to customers (e.g., using the app name \"PAYTHATRENT\" instead of the legal entity name \"ABC Rentals Inc.\").</li>\n</ul>\n</li>\n<li>\n<strong>Misunderstanding of Fees and Charges</strong> — may result in an R10 or R11 coded return:<ul>\n<li>Customers may dispute valid fees if they are not clearly disclosed or if the cancellation process is not easily accessible. Clear disclosures and easy cancellation processes can help prevent these returns.</li>\n</ul>\n</li>\n</ol>\n<h3>R05 – Unauthorized Debit to Consumer Account Using the Corporate SEC Code</h3>\n<p>A consumer disputed an ACH debit to their bank account, claiming it was unauthorized. The transaction was coded as business-to-business. Consequently, the RDFI returned the debit with an R05 code, indicating the account is not a business account and the consumer (owner) did not authorize the debit.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>\n<strong>Flag the end-customer account</strong> in your platform or app.</li>\n<li>\n<strong>Verify name matching:</strong> Ensure the name on the account aligns with the transaction details.</li>\n<li>\n<strong>Disable the linked bank account.</strong> Do not reinitiate a debit to a consumer account returned as unauthorized without a new authorization.</li>\n<li><strong>Review the account for potential fraud indicators.</strong></li>\n</ol>\n<h3>R07 – Authorization Revoked by Consumer</h3>\n<p>The customer returned the unauthorized debit, claiming they revoked permission with you beforehand, indicating a potential timing issue between revocation and debit processing. Investigation is needed.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Disable the linked bank account.</li>\n<li>Contact the end-customer to understand the cause.</li>\n<li>If the customer made an error, obtain a new authorization before attempting the debit again.</li>\n</ol>\n<h3>R10 – Consumer Advises the Debit Is Unauthorized</h3>\n<p>The account holder does not recognize the debiting party, has no relationship with them, or did not authorize the debit to their bank account.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>\n<strong>Flag the end-customer account</strong> in your platform or app.</li>\n<li>\n<strong>Verify name matching:</strong> Ensure the name on the account aligns with the transaction details.</li>\n<li>\n<strong>Check your company name:</strong> Ensure your end-customers recognize the name displayed on their bank statement, especially if your legal entity name differs from your DBA.</li>\n<li>\n<strong>Disable the linked bank account.</strong> Do not reinitiate a debit to a consumer account returned as unauthorized without a new authorization.</li>\n<li><strong>Review the account for potential fraud indicators.</strong></li>\n</ol>\n<h3>R11 – Consumer Advises That the Debit Is Not in Accordance with the Terms of the Authorization</h3>\n<p>The end-customer, having acknowledged authorizing the debit, is disputing it as unauthorized, claiming a breach of the agreed-upon terms. An ACH debit can be disputed as unauthorized if the debit date or amount is incorrect.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>\n<strong>Examine the Authorization:</strong> Carefully review the original authorization to verify the debit date and amount match what was agreed upon with the customer.</li>\n<li>\n<strong>Authorization Terms Followed?</strong><ul>\n<li>If the authorization terms were correctly followed, contact the customer to understand the reason for the return. It is also recommended to secure a new debit authorization from the customer.</li>\n</ul>\n</li>\n<li>\n<strong>Error Identified and Corrected?</strong><ul>\n<li>If an error was found and rectified, the debit can be resubmitted. This resubmission must occur within 60 days of the original R11 settlement date. Do not use the Retry Payment format for this resubmission.</li>\n</ul>\n</li>\n</ol>\n<h3>R29 – Non-Consumer Customer Advises That a Specific Debit Transaction Has Not Been Authorized</h3>\n<p>The business entity has not given the Originator permission to debit their account, or hasn't authorized the debit amount or date.</p>\n<p><strong>Return window:</strong> 2 banking days from the settlement date — unlike the consumer unauthorized return codes above (R05, R07, R10, R11), R29 applies to corporate accounts and uses the shorter administrative return window, not the 60-day consumer window.</p>\n<p><strong>Recommended approach:</strong></p>\n<ol>\n<li>Reach out to your business customer to understand why the debit was returned.</li>\n<li>Confirm whether or not your business customer has a block on their account for incoming ACH Debits.</li>\n<li>If necessary, disable the account and obtain a new authorization to debit agreement.</li>\n</ol>\n<h3>R51 – Item Related to RCK Entry Is Ineligible, or RCK Entry Is Improper</h3>\n<p>An RCK entry is considered to be ineligible or improper.</p>\n<p>This return code is not applicable to Transfers, as RCK coded debits are not supported.</p>","user_segment_ids":[]}}