Skip to main content
Typically, the Receiving Depository Financial Institution (RDFI) has 1 business day from the effective date to issue a return for incoming ACH transfers. Treasury Prime supports returning incoming ACH transfers that were originated by third parties using the supported return codes listed below.

How to return an incoming ACH

Incoming ACH Returns availability varies by bank partner and requires bank approval. Contact your relationship manager to discuss availability and any associated costs.
To return an incoming ACH transfer, use the Update an Incoming ACH endpoint. This feature must be enabled for your organization. If it is not enabled, contact the Support Team at support@treasuryprime.com and include the transaction id associated with the incoming ACH, the reason the return is being requested, and any other relevant information. A successful return results in an additional transaction being posted to the account to reverse the original transaction.
Incoming ACH transfers can only be returned if the effective date is within the configured return window (defaults to 1 business day, configurable via API). Returns requested outside this window are rejected.

Incoming ACH return codes

Treasury Prime supports the following return codes for incoming ACH transfers:
CodeReasonDescription
R29Corporate customer advises not authorizedRDFI has been notified by business account holder that a specific transaction is unauthorized.
R10Originator not known to / not authorized by ReceiverThe RDFI has been notified by the recipient that the recipient does not know the identity of the originator, has no relationship with the originator, or has not authorized the originator to debit their account.
R20Non-transaction AccountPolicies or regulations (such as Regulation D) prohibit or limit activity to the receiving account based on its type.

Example request to return an incoming ACH

curl -X PATCH \
  -u $API_KEY_ID:$API_KEY_VALUE \
  {% api-endpoint /%}/incoming_ach/inach_11jdq4073ea9k \
  -H 'Content-Type: application/json' \
  -d '{
    "status": "return",
    "return_code": "R29",
    "description": "Returned as unauthorized"
  }'

Example response for returned incoming ACH

{
  "id": "inach_11jdq4073ea9k",
  "account_id": "acct_11jbx6ve3c8an",
  "account_number": "1371971315",
  "account_type": "checking",
  "amount": "100.00",
  "bank_id": "bank_treasuryprime",
  "company_desc": null,
  "company_id": "000000000",
  "company_name": "Prime of Treasury Inc.",
  "created_at": "2023-08-15T14:47:35Z",
  "description": "Returned as unauthorized",
  "direction": "credit",
  "effective_date": "2023-08-15",
  "status": "returned",
  "return_code": "R29"
}

Transactions for returned incoming ACH transfers

An incoming ACH return results in the reversal of any funds movement that occurred from the original incoming ACH. For incoming ACH credits that resulted in a deposit, a corresponding withdrawal is made. For incoming ACH debits that resulted in a withdrawal, a deposit is made to reverse the transaction. These updates to the account balance result in the account.update webhook firing.