ACH transfers

Learn how to create payments that directly involve external bank accounts using the Automated Clearing House (ACH) network.

ACH transfers are electronic funds transfers between two financial institutions that can both push funds (ACH credits) and pull funds (ACH debits). Moov does not move money directly between external bank accounts. All funds move through the Moov platform on the way to their final destination. In practice, money must move into Moov before it can move out.

ACH processing flow diagram

The flow shown above can be achieved in a single transfer when the source and destination are both external bank accounts linked to a Moov account. ACH can also be used to add or withdraw funds from a Moov wallet. Below is a list of transfer types that use the ACH process:

  • Bank-to-bank: Requires both the debit and credit portion of the ACH process
  • Bank-to-wallet: Requires the debit portion of the ACH process
  • Wallet-to-bank: Requires the credit portion of the ACH process

In order to facilitate any type of ACH transfer with Moov, you will need to ensure the source and destination accounts have the necessary capabilities and payment methods.

Our open source community has built projects like moov-io/ach, a reader, writer, and validator for ACH files. The open source tools are there for you to use, test, and build upon.

Payment methods

Before initiating a transfer, you will need to set appropriate payment method types for debits (money in) and credits (money out).

Money in

Moov pulls funds into the Moov platform using ACH debits. ACH debits can be created using a payment method with one of the following types:

  • ach-debit-fund: Represents a “push” flow (for example, payout or disbursement, topping up a wallet)
  • ach-debit-collect: Represents the first stage of a “pull” flow (for example,collections or billing)
A bank account must be verified using micro-deposits or one of Moov’s verification partners before it can be debited.

Money out

Funds leave the Moov platform with ACH credits. You can specify the processing speed using a payment method with one of the following types:

  • ach-credit-same-day: Payment is processed with “same-day” ACH processing
  • ach-credit-standard: Payment is processed with standard “next-day” ACH processing

Moov processes in all same-day windows listed below:

Processing speed Cutoff time Expected time posted to bank
Same-day window 1 10:00 AM ET Early afternoon
Same-day window 2 2:15 PM ET End of day
Same-day window 3 4:15 PM ET End of day
Standard 5:30 PM ET Next day
A source account will see Moov on their statement, and a destination account will see the source’s displayName on their bank statement. You can customize the name and description an account sees by using the achDetails fields. See the customized ACH statement descriptors section for more information.

ACH processing and holds

Moov offers both standard ACH processing and faster ACH processing. Three main factors determine the processing speed of a transfer:

  • The type of transfer (for example, bank-to-bank)
  • ACH payment method type (for example, ach-credit-same-day)
  • Cutoff times

For standard bank-to-bank transfers, Moov holds funds that enter the platform via an ACH debit for two to three banking days before making the funds available, even when using “same-day” processing. The purpose of the hold is to account for the lag in time it takes to hear back about returns or processing issues.

For faster bank-to-bank transfers, Moov removes the hold on ACH debits. The ACH credit process starts within hours of the transfer being initiated, allowing for transfers to fully complete within one day as long as the transfer is initiated before certain cutoff times. Accounts must be approved by Moov to use faster ACH processing.

ACH payments are processed in batches and must be uploaded to Moov’s partner financial institutions before certain cutoff times. See the processing speed document for more information on processing speed, cutoff timetables, and examples of transfer timelines.

For information on how to see transfer details and status information, see the ACH details document.

Transfer limits

The current limit for ACH transfers with Moov is $100,000. The Moov team must qualify each customer for any exceptions to these limits. If you have a question with regards to your account’s specific limits, please connect with your Moov account manager.

Customized ACH statement descriptors

You have the option to set a customized ACH statement descriptor when creating a transfer. If you’d like to provide more clarity or context for an individual transfer, you can utilize the following fields:

  • achDetails.companyEntryDescription: describe the purpose of the transaction
  • achDetails.originatingCompanyName: set how you want the company name to appear on the statement

The string you provide in those fields will override the default Nacha file entry. If you’d like to set custom descriptors, you can use these fields for both the source and destination, or just one.

In a transfer where the source and the destination are the same Moov account, your account’s ACH company name will be used as the default originating company name. You can override this value by setting the achDetails.originatingCompanyName field for either the source or the destination in the create a transfer POST request.

SEC codes

You have the option of specifying an SEC code in certain ACH transfer request scenarios. If none is provided, Moov will handle the SEC code on your behalf.

SEC code Authorization type Description
CCD         Corporate credit or debit An ACH debit between two business accounts, such as vendor payments or funding payroll.
PPD Prearranged payment and deposit An ACH transaction involving an individual account to make or collect a payment.
WEB Internet initiated/mobile entries Moov allows WEB transactions for debit entries from an individual to a business account. Authorization is obtained via the internet or a wireless network (not including oral authorization over a telephone).
TEL Telephone initiated entries An ACH debit from an individual to a business account with authorization obtained orally through a telephone, and recorded. See Nacha’s TEL guidance for use-cases and authorization requirements.

Individual to business transactions

You have the option of specifying an SEC code on an ACH transaction that has an individual account as the source and a business account as the destination. The following SEC codes can be provided in source.achDetails when making a transfer POST request: WEB, TEL, PPD. If no SEC code is provided, the SEC code will be set as WEB.

Other transaction scenarios

If the source and destination of an ACH transaction are both business accounts, the SEC code will be set as CCD. If the source is a business account and the destination is an individual account, the SEC code will be set as PPD.


Articles in this section
Summary Beta