The ACH API enables your platform to both originate and receive payments through the Federal Reserve ACH network. This guide will provide a high-level overview of how ACHQ handles various payment functions as well as some useful information on the daily operational processes involving ACH payments.
Your software issues a specific request to the ACHQ API to accomplish your desired task and the gateway will send back a formatted response to your command indicating the success or failure of that task along with any information necessary to resolve or understand why a command may have failed.
With full control over your platform's payment functions, your end users never have to juggle various applications to get a full handle on their revenue and reconciliation. Your platform becomes the center of their financial picture.
ACH debit is a payment type used to pull funds from an account, typically as payment for goods or services. It's helpful to think of an ACH debit as a Charge.
ACHQ merchants receive money via charges
The Originator (merchant) pulls funds out of the Receiver's account. For example:
- Service fee for a monthly software subscription
- Mortgage or other loan repayment
- Purchase of goods from a website
- Membership dues for a health club
ACH credit is a payment type used to push funds from a merchant's account to an outside account. It's helpful to think of an ACH credit as a Payout.
ACHQ merchants send money via payouts
The originator pushes funds into the receiver’s account. For example:
- A direct deposit to an employee for payroll
- Funding a borrower's account for a loan
- Disbursing funds to a vendor
- Issuing a refund
These terms are simplified in the ACHQ API via the PaymentDirection parameter within the Create a Payment endpoint:
|PaymentDirection||ACH Payment Type||Results|
|FromCustomer||ACH Debit (Charge)||Merchant pulls funds from customer's account|
|ToCustomer||ACH Credit (Payout)||Merchant sends funds to customer's account|
Unlike credit card payments, ACH transactions are processed asynchronously via a batch and report system. This means each payment will undergo several status events as it progresses through the system.
|Event||ACHQ Status||Description||Possible Actions|
|Created||Scheduled||Payment is pending delivery to the Fed||Cancel a payment , Update a payment , Hold a payment|
|Submitted||In-process||Payment has been sent to Fed||None|
|Cleared||Cleared||Merchant or Receiver has been paid||Refund a payment|
|Failed / NSF||Returned-NSF||Payment failed due to the receiver not having enough funds to cover the debit||Create a payment|
|Failed / admin||Returned-Other||Payment failed due to administrative reasons (account closed, frozen, etc)||None (contact customer)|
|Charged-back||Charged Back||ACH return received after deposit was made||None (contact customer)|
|Bad bank account||Rejected||Bank account failed verification (pre-processing)||None (contact customer)|
For a more detailed look at ACH return codes, check out the return codes guide
As illustrated in the table above, your platform may use the various API endpoints to interact/update/modify any payment with a status of Scheduled. Once a scheduled payment is delivered by ACHQ to the Fed (ACH Operator) for processing, we are unable to stop or modify the record. The cut-off time for a given payment can vary depending on the API request parameters associated with the transaction. If you are not utilizing Same-Day ACH then the calculation becomes pretty simple:
|Same-Day ACH||9:00 AM EST|
|Same-Day ACH||11:15 AM EST|
|Same-Day ACH||2:15 PM EST|
|Standard (overnight) ACH||7:00 PM EST|
If you are utilizing the same-day ACH functionality, please review the previously linked documentation for more details about the various processing windows.
Updated over 1 year ago