ACH Tracking and Troubleshooting
This guide describes identifiers used to track outgoing and incoming ACH. It also describes statuses that indicate a failed outgoing ACH request.
Using identifiers to track ACH transactions
The tables below show how the ACH-related identifiers are represented across Galileo systems. The variety in identifier names is a reflection of the complexity in back-end systems and databases.
Note
The labels for these identifiers in the Events API messages may differ according to the arrangements you made with Galileo. For example, some of these identifiers could be labeled
tran_id
ortrans_id
instead of the identifier shown below. You may also need to request that some fields be added to your events.
Trace numbers
Every ACH transaction has a 15-digit trace number, which is generated by the transaction originator. Trace numbers have this format:
- 8-digit prefix, which is the originating bank routing number minus the check digit.
- Seven additional digits, which are generated in sequence.
Because a trace number cannot have more than 15 digits, the counter for the last seven digits resets after it reaches 9999999, which means that trace numbers are not universally unique. All Galileo clients use the same counter, so depending on the volume of outgoing ACH transactions on the Galileo platform, a single Nacha file can end up having the same trace number more than once. Likewise, trace numbers generated by external banks will reset to 0000000 periodically, depending on how many ACH transactions their customers originate, and so the incoming Nacha files might also have repeated trace numbers.
The trace number is the only transaction identifier that is passed in a Nacha file. The other identifiers that Galileo generates are not included. For that reason, Galileo identifiers cannot be used to track returned transactions.
You can find the official trace number in these places:
- Outgoing ACH —
TRACE NUMBER
field of the Posted Transactions RDF andORIG_TRACE
in the Outgoing ACH RDF - Incoming ACH —
ach_source_trace
, as indicated in the Incoming ACH identifiers table
Outgoing ACH identifiers
An outgoing ACH transaction is initiated by the Create ACH Transaction endpoint, which returns these two fields:
ach_transaction_id
— Unique ID for an outgoing ACH transaction.transaction_id
— Echo of thetransactionId
in the endpoint request.
Later, when the transaction is posted to the account, it is assigned a pmt_id
if the funds go into the local account and an adj_id
if the funds are removed.
Use these three identifiers to track the transaction through the Galileo system.
Data source | ACH transaction ID | External transaction ID | Payment/Adjustment ID |
---|---|---|---|
Create ACH Transaction request | — | transactionId | — |
Create ACH Transaction response | ach_transaction_id | transaction_id | — |
BPMT: pmt or BADJ: adj | ach_trans_id | ext_trans_id * | pmt_id or adj_id |
Posted Transactions RDF | SOURCE TRACE | EXTERNAL TRANSACTION ID | SOURCE ID AUTHORIZATION CODE |
Outgoing ACH RDF | SOURCE_TRACE | — | ADJ_ID |
ACH Returns RDF | Trace | — | Trans ID |
Get ACH Transaction History | ach_transaction_id | — | — |
Get All Transaction History | ach_trans_id | external_trans_id | source_id |
Get Transaction History | ach_transaction_id | external_trans_id | source_id |
CST | Trans ID | — | ID |
FACH: ach_credit_return | ach_trans_id * | ext_trans_id | payment_id |
ACRT: ach_return | ach_trans_id * | — | — |
* Available by request
Troubleshooting outgoing ACH
This table lists ACH transaction statuses that prevent an outgoing transaction from being completed, as well as the next step to take.
Status | Description | Next step |
---|---|---|
D | Deleted by account holder | Wait for the account holder to request a new transaction. |
E | Error | Return or cancel the transaction and notify the originator. |
L | Canceled due to violation of debit limit | Notify the originator that the transaction was canceled and that it is outside of the allowed range. |
R | Bad routing number | For outgoing ACH, obtain the correct routing number from the customer. |
X | On hold | Determine whether to post or return the transaction. |
l | Pending approval, limit exceeded | Notify the originator that the transaction is outside of the allowed range. |
Incoming ACH identifiers
An incoming ACH transaction is initiated when Galileo processes an incoming Nacha file. Galileo uses this ID:
ach_source_trace
— Assigned by the ODFI, included in the Nacha file.
Later, when the transaction is posted to the account, it is assigned a pmt_id
if the funds go into the local account and an adj_id
if the funds are removed.
Use these two identifiers to track the transaction through the Galileo system.
Data source | ACH source trace | Payment/Adjustment ID |
---|---|---|
BPMT: pmt or BADJ: adj | ach_source_trace * | pmt_id or adj_id |
Posted Transactions RDF | ACH TRACE NUMBER SOURCE TRACE | SOURCE ID AUTHORIZATION CODE |
Incoming ACH RDF | Trace Number | Authorization Code |
Early ACH RDF | Trace Number | Transaction ID |
Incoming ACH Manual Review RDF | TRACE_NUMBER | TRANS_ID |
Get Pending Deposits | ach_trans_id | — |
Get Deposit History | ach_trans_id | — |
Modify Pending Deposit Status | depositTransactionId | — |
Get All Transaction History | ach_trans_id | source_id |
Get Transaction History | ach_transaction_id | source_id |
CST | Trace No | ID |
ACHC: ach_credit_fail | ach_source_trace * | — |
ACHR: ach_debit_fail | ach_source_trace * | — |
* Available by request
Updated about 7 hours ago