ACH transfers

What is an ACH transfer and how do we use them?

ACH is a method of transferring money electronically between banks without the need for paper checks, cards, or wire transfers. Common examples of ACH transfers include payroll systems which issue ACH credit transactions to pay employees by direct deposits, or utility providers which issue ACH debit transactions to request direct payments from the consumer's bank account.

Every transfer or attempted transfer is defined by its ACH return code.

ACH transfer requests are sent from the bank acting as the ODFI and are received by the bank acting as the RDFI. Successful transfer requests move funds between an Originator account at the ODFI and a Receiver account at the RDFI. The ODFI sends a batch of ACH files representing ACH requests to the ACH Operator. The ACH Operator then processes the requests and sends them to the appropriate RDFI. The RDFI credits or debits the Receiver account.

The diagram below shows this flow.

776

The ODFI always initiates the ACH transactions, so the request must specify the direction of the transfer:

  • An ACH Credit "push" transaction credits the Receiver account, pushing funds from the Originator.
  • An ACH Debit "pull" transaction debits the Receiver account, pulling funds to the Originator.

A standard ACH transfer takes approximately 4 business days to be marked as completed and for funds to be applied to the account.

For transfers initiated as same-day ACH, the transaction is marked as completed in 2 business days, which is also when funds are made available.

Bond handles the creation and transmission of the ACH file formatted with appropriate parameters to the ACH operator.

ACH class code

Every ACH transaction is classified with a single, 3-letter, ACH SEC code. The SEC code is a mandatory parameter that identifies the transaction type in an ACH transfer request. It identifies the ACH file format and specifies the authorization method for the Receiver account. SEC codes distinguish between consumer and commercial usage categories.

NACHA, the regulatory body governing the ACH network, maintains and provides the complete list of SEC codes.

Balance check

Prior to creating an ACH transfer, we check the customer's account balance to ensure there are sufficient funds. For an ACH credit, we confirm that the card account balance is sufficient before attempting to pull funds from the card. For an ACH debit, we check the customer's external bank account balance. This, however, can only be checked if the account was connected via Plaid Link and if the account's institute supports it; otherwise, the transfer will still be created.

Fund authorization

Following an ACH credit request, when funds are pushed from the card account and credited to the customer's external account, a pre-authorization hold is placed on the card account, equal to the amount of the ACH transfer. The table below summarizes the hold time.

ACH NetworkHold Expiry
Same-day ACH2 business days
Standard ACH4 business days

ACH submission cut-off times

ACH transfers must be submitted before certain cut-off times to ensure that the transfers are included in the appropriate NACHA batch files. The table below summarizes the cut-off times depending on the network.

ACH NetworkCut-off Time
Same-day ACH Origination10:00 am CT
Standard ACH Origination8:00 pm CT

If same-day ACH transfers are sent between the above cut-off times, the transfer will be treated as a standard ACH transfer. The receiving bank will receive the transfer first thing the following morning, and it will be available to the receiver at the open of business.

If same-day ACH transfers are sent after the standard ACH cut-off, the transfer will process as a same day ACH transfer on the following business day.

ACH transfer state

The ACH transfer status may be:

  • pending
  • completed
  • failed
  • returned

For more information, see Transaction states.

A created transfer will be pending and becomes completed after it posts. If a transfer is failed, a failure_reason is shown. After a transfer has posted, it might still be returned. This reversal can only ever happen after a transaction has already completed.

If a transfer is returned, in addition to the failure_reason there will also be an ach_return_code. These ACH return codes are standard and described in ACH return codes.

Reversing a transaction after it has reached the ODFI can only be done under specific circumstances. A reversal must occur within 5 business days of the transaction and is only considered for the following reasons:

  • The transaction was for the wrong amount.
  • The provided account number was incorrect.
  • The transaction is a duplicate.