A complete bank payments API, designed for scale
ACHQ Payments API
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.
- Tokenizing bank data
- Sending and receiving money
- Issue refunds
- Update or hold existing 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.
With the ACHQ API you can extend incoming and outgoing payment functionality to your platform users via ACH Debit and Credit
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 9 months ago