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.
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 Network | Hold Expiry |
---|---|
Same-day ACH | 2 business days |
Standard ACH | 4 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 Network | Cut-off Time |
---|---|
Same-day ACH Origination | 10:00 am CT |
Standard ACH Origination | 8: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.
Updated over 2 years ago