The Automated Clearing House (ACH) is a payment network governed by the National Automated Clearing House Association (NACHA), which facilitates electronic bank-to-bank transfers.
ACH is a high-volume, low cost, batch based network for electronically transferring funds. ACH supports a majority of the transactions for consumers, businesses, and governments in the US. Rules and regulations governing the ACH network are established by the National Automated Clearing House Association (NACHA) and the Federal Reserve. Victor currently supports credit and debit ACH transactions, including CCD, PPD, WEB and CTX Sec Codes. Learn more about SEC Codes here: What Are SEC Codes?
ACH Debits are transactions that withdraw or pull money from the receiving account. For example: A client needs to pay you for a monthly service, but they want you to debit their account automatically each month. In this case, the client provides you with their account details, and you initiate the debit transaction to pull the funds from their account. Because the transaction is initiated from your end, you are the originator and your client is the receiver of the debit transaction.
ACH Credits are transactions that deposit, or push money into the receiving account. For example: You need to pay your employees electronically using direct deposit. In this case, the employee provides you with their account details and you send a credit transaction to deposit the paycheck into their account. Because the transaction is initiated from your end, you are the originator and your employee is the receiver of the credit transaction.
Unlike wires, which are constantly processed through the day, the ACH network has set payment processing windows. Payments sent through the network are bundled into batches and sent to each individual receiving bank during the next processing window. The receiving banks then distribute the transactions in order to credit or debit the receiver accounts. In the case of debit transactions, the bank collects the funds from the receiver account and forwards them to the originator of the ACH transaction. Because of this, the exact timing around the settlement of ACH transactions varies depending on the financial institutions involved. The cutoff for Victor ACH Payments can be found here: Cutoff Times
Since ACH is a batch process that runs on set processing windows, the Victor Platform batches and transmits payment requests to the financial institution ahead of the institution's processing cutoff times. As a result, ACH payments progress through a specific flow that can be tracked using the following statuses:
cancelled- ACH transfers submitted into the system, but are subsequently cancelled will show as being in a
cancelledstate after the object is initially created, but before the next ACH cutoff time.
pending- ACH transfers are in a
pendingstate after the object is initially created, but have not yet been processed by the sponsor bank for origination.
onhold- The transfer is
onholdwhen it is awaiting an operational task that has been configured in the system i.e., an OFAC screening.
processing- Transfers are briefly in a
processingstate when they are transmitted to the sponsor bank for origination.
sent- ACH transfers are in a
sentstate after being transmitted to the financial institution for submission to the Fed ACH network. A
sentstatus does not confirm that the transfer has been originated on the ACH network.
failed- Transfers are failed due to an issue while being processed. ACH transfers that are returned by the receiving institution while in the
sentstate will be transitioned to the
success- Transfers are marked as
successafer the transaction has been confirmed received by the ACH network. Successful ACH transfers can still receive a Return.
A Note on Returns
ACH Returns are similar to check returns or credit card chargebacks. When you originate an ACH payment, either the receiving bank or the receiving account holder can return the payment for various reasons. When this happens, you will receive a debit or credit transaction to offset the original ACH transaction you sent.
Some common scenarios are:
- The transaction was sent using an incorrect routing or account number.
- A transaction was sent to debit an account that has insufficient funds.
- The receiving account has ACH Blocks.
ACH payment rejections that happen while in
Sentstatus will cause the original ACH transfer to be marked as
Failed. Once an ACH transfer reaches the
Successstatus, this means the ACH has left the originating bank, however, it can still be returned by the receiving bank. If this happens, a corresponding ACH Return transaction will be generated.
In some cases, the receiving bank will send you a Notification of Change (NOC) instead of returning the transaction. This notification lets you know that even though the receiving bank was able to post the payment successfully, certain receiver details are incorrect or have recently changed. The notification includes a change code that lets you know which details to correct before sending any future payments. Common scenarios are:
- The account number or routing number has an incorrect digit (In these cases, the receiving bank is able to determine the correct account and post the payment).
- A checking account Transaction Code (22) was used instead of a savings account code (32), or viceversa.
We recommend that you consume both the ACH NOC and the ACH Return Transaction Webhooks so you can be informed of these events. You can see a comprehensive list of Return and NOC reasons here: NOC-and-Return-ACH-Codes.
ACH Object Description
An ACH Object within the Victor Platform has the following fields:
|amount||number||Amount of the transfer to two decimal precisions (for example #####.##)|
|client_reference_id||String||Unique transaction identifier passed in by the client. Victor does not guarantee uniqueness of this identifier|
|counterparty_reference||String||ID of the Counterparty receiving the transfer. Counterparty object must contain ACH details|
|description||String||Optional 10 character description which appears on the receiver's statement|
|direction||String||Direction of the funds movement. Either CREDIT (outgoing to a counterparty) or DEBIT (incoming from counterparty)|
|originating_account_number||String||Account number of the account originating the transfer|
|schedule||String||Specifies whether this is to be sent same-day or next day.|
|sec_code||String||Transfer type according to NACHA rules. Either CCD, PPD, or WEB|
|transfer_date||String||If the ACH is set to be sent for a day in the future, this field specifies the date when this ACH is to be sent.|
Updated 5 months ago