ACH via API
Integrate ACH into your payment flow.
ACH (Automated Clearing House) is a US network that powers electronic funds transfers. It processes financial transactions for consumers, businesses, and federal, state, and local governments. ACH processes large volumes of credit and debit transactions in batches. You can accept and send ACH transfers using the Create Transaction API.
In addition to sending ACH transactions via batch files, TabaPay Clients can send individual ACH transactions via the Create Transaction API. This makes for an easier integration and adoption of ACH from a Client's perspective.
To learn more about the full ACH process please visit our Overview of ACH.
Use Cases
- Mobile payment application: Use the Create Transaction API to send P2P or Me2Me ACH payments.
- Business invoicing: Use the Create Transaction API to offer ACH through your invoicing portal.
- Industry focused platform: Use the Create Transaction API to build an industry targeted platform to send or accept ACH payments (e.g. gym subscriptions, AI platforms, streaming service).
ACH API Payment Flow
ACH via the API supports Next Day and Same Day ACH transactions.
- When a TabaPay client sends a Create Transaction request, the API will "batch" that transaction.
- Once the cut-off for Same Day, or Next Day transactions is met, the "batched" transactions will be processed by TabaPay.
- "Processed" means we construct a NACHA file and pass it on to the bank.
- A client would receive a Transactions report with the status of each transaction for both ACH-Debit and ACH-Credit.
- If there are any ACH returns you will find them in the Exceptions Report. This contains a list of returned transactions, and can come back 6 to 7 days later.
ACH Returns
Contact TabaPay Support to receive ACH Returns listed in Exceptions (Daily). This will include the corresponding ACH Return Code.
- Any transactions that are received by the system after the cut-off time will be processed during the following "Next Day" window.
How Does ACH API Work
Integration
ACH API integration can be broken up into two components:
- Backend integration -> Integrating with the TabaPay Create Transaction API.
- If you are using the Create Transaction API, then you do NOT need to send in an Input file.
- SFTP/File based integration -> You will need to be setup to receive files from TabaPay. Here is a list of the files you would receive from TabaPay ACH response and processed files.
- You can use the Retrieve Transaction API to retrieve the status of a "batched" or "processed" transaction. In the future, we will extend this functionality to support other status types (i.e. "returned", etc.).
Step 1: Create "ACH" Transaction
Request endpoint
You will be using the Create Transaction API.
Body Parameters
All ACH transactions are pulling or pushing funds to a bank account.
- One key field for you to include is the
achOptions
field.N
is used for Next Day ACH andS
for Same Day ACH (RTP is also supported using the same field). - The other key field for you to include is the
achEntryType
field. This is a new field, 3 characters long with only three options:CCD
,PPD
,WEB
- For a pull ACH transaction, you would fill in the
bank
object in the source account object. - For a push ACH transaction, you would fill in the
bank
object in the destination account object. - There are other additional fields common to all transactions (e.g. amount, etc.).
What is the bank object?
The bank
object is available for the sourceAccount
and destinationAccount
objects. It contains the following information:
routingNumber
string
required
ABA routing transit numberaccountNumber
string
required
Bank Account NumberaccountType
string
required
Bank Account Type.- S Savings
- C Checking
- A Business Savings
- B Business Checking
- L Loan
Additional field:
achOptions
string
requiredN
-> Next DayS
-> Same Day
achEntryType
string
requiredCCD
PPD
WEB
Step 2: TabaPay processes ACH transactions
- All transactions since last batch are processed.
- Cut-off times:
- Same day and Next day: 12:00 PM PT (Same window)
- SaIf a transaction missed the cutoff they will be moved to next window
Reviewing the Processed File
Clients should check the processed file to see which transactions were successfully submitted to the bank and which transactions were rejected by TabaPay (along with the corresponding error codes).
Step 3: TabaPay 'ACH Files'
TabaPay pushes ACH files via SFTP
Get in touch with us via [email protected] to get your setup going.
Security options can include:
- Merchant whitelists TabaPay IP
- SFTP ID and Password
- TabaPay public key for SFTP security (ID or ID+PW)
- File encryption using Merchant public PGP key
Additional details
ACH Files
For file formats of the various ACH-related files TabaPay provides, please refer:
For return codes go to ACH Return Codes.
TabaPay output files, processed files, return files:
- Merchant pickup return files, Processed files, and Output files in the 'Outbox'
- Processed file delivered within minutes of ACH files being processed by bank; one file for each merchant batch.
- [Optional] Output file delivered next business day; same format as Processed file - with Trace ID and processed time from bank
Step 4: Retrieve Transaction Status (Optional)
You can use the TabaPay generated transactionID
to retrieve the current status of a transaction using the Retrieve Transaction API. transactionID
is only returned in the Create Transaction response.
Supported Status Types
Retrieve Transaction API currently supports "BATCH" and "COMPLETE" statuses. If the API response includes a "COMPLETE" status, that means that the transaction has been processed. You should check the subsequent
processed.csv
file to see if the transaction was sent off to the bank or rejected by TabaPay (e.g. "over the limit").Currently you will need to receive the ACH response and processed files to see if a transaction was successfully processed or not.
In the future, Retrieve Transaction will support additional status types like "rejected", "returned", etc.
Status | Description |
---|---|
"BATCH" | The transaction is stored in our database, but it has not been processed yet. |
"COMPLETE" | If the API response includes a "COMPLETE" status, that means that the transaction has been processed. You should check the subsequent processed.csv file to see if the transaction was sent off to the bank or rejected by TabaPay (e.g. "over the limit"). |
Recipes
Learn how the ACH API works in recipes.
Updated 8 days ago