ACH transfers created using the endpoint are referred to as “API originated” ACH transfers as they are originated by the Treasury Prime platform. They support both credit and debit transfers, allowing funds to be sent (credited) to a recipient’s account, or pulled (debited) from another account. Beyond this, originated ACH transfers support two levels of service— and —which impacts the amount of time required for the transfer to settle.
Field | Description |
---|---|
account_id | For ACH credits, this will be the id of the account funding the transfer. For ACH debits, this will be the id of the account where the funds will be deposited. |
amount | The amount of money to be transferred. |
counterparty_id | The id of the counterparty receiving the transfer. For both credits and debits, the Counterparty will contain information about the account from which the funds will either be sent or debited accordingly. |
direction | The value supplied in this field determines the direction of this ACH transfer (either credit or debit ). |
sec_code | The SEC code describes how a payment was authorized by the consumer or business receiving an ACH transaction. One of ccd , ppd , or web . |
status
of pending
.status
transitions to processing
, the initial hold is released, and a withdrawal is made from the funding account.status
of the ACH transitions to sent
and the NACHA file containing the ACH is sent to the bank for processing.status
of pending
.status
transitions to processing
.status
of the ACH is updated to sent
and the scheduled_settlement
value is set.standard
and sameday
—which ultimately determine how fast the ACH will settle. While the type of ACH (credit
or debit
), and the processes defined by the Receiving Depository Financial Institution (RDFI) also play a role in settlement time, the general timelines for standard and sameday ACH processing are as follows:
Service | Settlement Time |
---|---|
Standard | 1-3 business days |
Sameday | 0-1 business days |
Processing Window | Cut-off Time | Service |
---|---|---|
11:30 | 11:00 | sameday |
12:30 | 12:00 | sameday |
5:30 | 5:00 | standard |
sameday
ACHs are generally released to the recipient after 48 business hours, and standard
ACHs after 72 business hours.
For ACH debit transfers originating from Treasury Prime ledger accounts, the ACH object will be populated with a scheduled_settlement
value defining when the funds are expected to become available in the recipient’s account. This value is set when the ACH reaches a status
of processed
and will take into account the service level selected and any other variables involved in the ACH settlement timing.
created_at
property of the ACH object is used to determine which transactions are included within the rolling 24-hour limit. Canceled ACH transactions do not count toward this limit.
description
and addenda
fields are passed with the transaction; however, whether this information is displayed to the recipient is solely up to the RDFI. As shown in the example below, the recipient of the ACH might see “Test ACH” show up in their banking application, or they might not. It’s up to the RDFI.
status
field of the ACH object represents the current status of the ACH transfer. You can monitor changes to this status (and thus the processing of the ACH) by subscribing to the ach.update
webhook. It’s important to note that unless an ACH is returned or encounters an error during processing then sent
will be its terminal status. This is because the ACH network does not support sending updates to confirm the receipt of funds or the successful completion of a transfer after it has been sent for processing. If an error is encountered or an ACH is returned, then the status
will be updated accordingly. Otherwise, a successful ACH will end in a status
of sent
.
status
of pending
. Once the ACH transitions from pending
to processing
, then it may no longer be canceled. To cancel an ACH, update its status to canceled
as outlined below.
pending
ACH can also be done directly in the Treasury Prime Dashboard app for users with the required permissions.
trace_id
, can be used to surface all transactions related to a particular ACH (including hold
, hold_release
, withdrawal
, and deposit
transactions).
The second field, ach_id
is used to identify only transactions that resulted in the movement of funds (a withdrawal or deposit). For transactions that did not result in funds movement (such as a hold
, or hold_release
) the ach_id
field will be null.
trace_id
and ach_id
fields will be the id
of the originating ACH object.id
of “ach_1234”.
deposit
, a hold
, and a hold_release
. Reviewing these three transactions, we can see that:
deposit
transaction (which deposits $100 into the account) contains both a trace_id
and ach_id
each with the same value of “ach_1234”.hold
and hold_release
(which do not result in funds movement) have a trace_id
of “ach_1234”. In all three instances, the value “ach_1234” matches the id
the originating ACH, allowing us to map these objects./transaction
endpoint to return all transaction results, then filter on either trace_id
or ach_id
depending on which result set you are looking for. In both cases, the value supplied will be the id
of originating ACH (ex: ach_1234
).
trace_id
ach_1234
:
ach_id
ach_1234
:
deposit
Transactionach_id
= “ach_1234”
trace_id
= “ach_1234”
hold
Transactiontrace_id
= “ach_1234”
hold_release
Transactiontrace_id
= “ach_1234”