> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ACH Return Overview

> The features documented here are in a beta state, and this documentation is considered draft material subject to frequent change.

<Note>
  For field names, types, and descriptions, see the response schema on each endpoint page, such as [Read ACH Return](/api-reference/platform-api/v20260929/reference/ach-return/read-ach-return) and [List ACH Returns](/api-reference/platform-api/v20260929/reference/ach-return/list-ach-returns).
</Note>

Using our Platform API, you can securely submit ACH Returns to reduce your ACH return rates and automate your ACH return process.

You can query the status and outcomes of your submitted ACH returns to track progress and access resolution details.

## SEC Codes

| Code | Data Type | Title |
| :- | :- | :- |
| `SEC_CODE_UNSPECIFIED` | String | Used if no other SEC code is set. |
| `PPD` | String | Prearranged Payment and Deposit |
| `PPD_PLUS` | String | Prearranged Payment and Deposit, with addenda record |
| `CCD` | String | Corporate Credit or Debit |
| `CCD_PLUS` | String | Corporate Credit or Debit, with addenda record |
| `CTX` | String | Corporate Trade Exchange |
| `WEB` | String | Internet Initiated/Mobile Entry |
| `TEL` | String | Telephone-Initiated Entry |
| `ARC` | String | Accounts Receivable Entry |
| `BOC` | String | Back Office Conversion Entry |
| `POP` | String | Point-of-Purchase Entry |
| `IAT` | String | International ACH Transaction |
| `COR` | String | Notification of Change |
| `CIE` | String | Customer Initiated Entries |
| `RCK` | String | Re-presented Check Entries |
| `POS` | String | Point of Sale |

## Resolution Codes

| Code | Data Type | Description |
| :- | :- | :- |
| `DATA_UPDATED` | String | The resolution involved updating account data. |
| `JOB_REQUIRED` | String | A new Instant Account Verification aggregation is required for resolution. |
| `ACCOUNT_LIMITATION` | String | The return is due to an account-level limitation (for example, account type, transaction limits). |
| `NOTICE_OF_CHANGE` | String | The return is a Notice of Change (NOC) - informational, but contains corrected data. |
| `UNRESOLVABLE_RETURN` | String | The return could not be resolved by MX. |
| `CLIENT_ACTION_REQUIRED` | String | Client action is needed. |
| `INVALID_SUBMISSION` | String | The API submission was invalid. |

## Return Codes

| Code | Data Type | Title |
| :- | :- | :- |
| `RETURN_CODE_UNSPECIFIED` | String | Use to create an ACH return if you don't have a return code for an ACH return. |
| `R01` | String | Insufficient Funds |
| `R02` | String | Account Closed |
| `R03` | String | No Account / Unable to Locate Account |
| `R04` | String | Invalid Account Number Structure |
| `R05` | String | Unauthorized Consumer Debit using Corporate SEC Code |
| `R06` | String | ODFI Requested Return |
| `R07` | String | Customer Revoked Authorization |
| `R08` | String | Payment Stopped |
| `R09` | String | Uncollected Funds |
| `R10` | String | Originator not known and/or not authorized to Debit Receiver's Account |
| `R11` | String | Customer advises not within Authorization Terms |
| `R12` | String | Account Sold to Another DFI |
| `R13` | String | Invalid ACH Routing No. |
| `R14` | String | Representative Payee Deceased |
| `R15` | String | Beneficiary / Account Holder Deceased |
| `R16` | String | Account Frozen / Returned per OFAC |
| `R17` | String | File Record Edit Criteria / Suspicious Entry with Invalid Account No. / Return of Improperly-Initiated Reversal |
| `R18` | String | Improper Effective Date |
| `R19` | String | Amount Field Error |
| `R20` | String | Non-Transaction Account |

## Return Status

| Status | Data Type | Description |
| :- | :- | :- |
| `RETURN_STATUS_UNSPECIFIED` | String | Used if no other return status is set. |
| `SUBMITTED` | String | The initial status after you successfully submit ACH return data using the API. |
| `PENDING` | String | The submitted return is queued and awaiting automated processing. |
| `PROCESSING` | String | The return is currently being actively processed, either by the automated system or by manual review. |
| `RESOLVED_DATA_UPDATED` | String | The automated system successfully resolved the return by updating account data in the MX system. |
| `RESOLVED_JOB_REQUIRED` | String | The automated system determined that a new Instant Account Verification (IAV) aggregation is required to resolve the return. |
| `RESOLVED_INFORMATIONAL` | String | After automated or manual investigation, it's determined that the return reason is due to client-side issues or informational (like account restrictions) and no MX data fix is needed. |
| `RESOLVED_UNRESOLVABLE` | String | After thorough automated and/or manual investigation, no resolution is found within MX systems or via data providers. |
| `PENDING_CLIENT_ACTION` | String | MX requires action from you to proceed with the return investigation or resolution. This could occur if there was missing data in the submission. |
| `REJECTED` | String | The initial API submission was rejected due to errors in the data you provided. |
