Automated Clearing House (ACH) payment is a Push & Pull payment method supported by the Solid platform. An ACH payment occurs when the transaction originator instructs the ACH network to push money to or pull money from an external bank in the US. Unlike Intra Account transactions, ACH transactions go through multiple states in their lifecycle before the transaction finally settles:

  • Originated: when an ACH transaction is created.
  • Pending: when a transaction is waiting to be sent to the bank.
  • Clearing: when a transaction has been sent to the bank in the NACHA file.
  • Cleared: when the bank has processed the transaction and given Solid the production trace number. The trace number is a unique number used to locate the transaction if required.
  • Settled: when a transaction is marked as settled to indicate the completion of the ACH transaction.
  • Returned: When the originating ACH transaction is returned by the RDFI.

While ACH transactions can be somewhat complex, understanding the possible types of ACH transactions is essential. See scenatios below on originating outgoing (push/pull) and receiving incoming (push/pull) ACH transactions.

1. Originating ACH Transactions

Note that ACH payments can only originate from a Sub Account, not from a Master Account.

Steps to originate an ACH payment transaction:


Create Counterparty

Via the Dashboard or the API, Create a Counterparty with the beneficiary account details in the ach sub-object.


Originate an ACH Payment Transaction

Via the Dashboard or the API, Originate an ACH Push (where money is pushed to an external Bank Account) or Originate an ACH Pull (where money is pulled from an external Bank Account)


Pass Parameters

Pass the necessary parameters (originating sub_account_id, counterparty_id, amount) and other optional parameters as needed.

  "sub_account_id": "sub_bda1e562657c41e553104b10aad3fe70",
  "counterparty_id": "ctp_8e5541c8a9e50c3af3b0daacf9175130",
  "amount": "500.00",
  "description": "May Rent",
  "same_day": "true",
  "effective_date": "2024-04-05",
  "company_entry_description": "Payment",
  "external_reference_id": "123-9088-2"
Congratulations, you have now successfully Originated an ACH payment transaction!

2. Receiving ACH Transactions

ACH Transactions received in the Sub Account with an incoming message include essential instructions such as amount, credit/debit, method, and type. Transactions are received via ACH Payment webhooks.

3. ACH Cut-off Times

Below are the cut-off times for originating ACH Credit & Debit Transactions (basically, 1a and 1b) on banking days.

  • 5:15 am PT
  • 8:15 am PT
  • 12:15 pm PT
  • 4:15 pm PT
For same-day ACH, transfers must be sent before the 12:15 pm cut-off. Anything sent after that will be treated as a next-day ACH. If you are receiving ACH Credit and debit Transactions (basically, 2a and 2b), we will credit the funds to and debit from Master Account / Sub Account as soon as the RDFI receives the ACH instruction.

4. ACH Returns & Reversals

Next, we dive into the different scenarios surrounding ACH Returns and Reversals.

But first, let’s understand the financial institutions (FIs) involved in an ACH transaction:

  • ODFI (Originating Depository Financial Institution)
  • RDFI (Receiving Depository Financial Institution)

Most banks can do both, meaning they can act as ODFI (that originates the ACH transaction on behalf of their Account Holder) and RDFI (that receives the ACH transaction intended for their Account Holder).

ACH Returns
ACH Return is filed by the RDFI to return an ACH payment that was previously originated by an ODFI. ACH Returns are filed in the following scenarios:

See a list of ACH Return Codes.

ACH Reversals
The ODFI files an ACH Reversal to reverse the ACH payment that the ODFI previously originated, most likely due to an error (such as an incorrect amount, duplicate transaction, or incorrect account). ACH Reversals are filed in the following scenarios:

ACH Reversals are not guaranteed to be honored by the RDFI, as the funds have already been debited or credited and may not exist in the account at the RDFI. The RDFI has 48 hours to respond to the ACH Reversal request.