Skip to main content
By default, all ACHs created in the sandbox environment are moved through the normal ACH workflow, eventually ending up with the status, sent. This accelerated processing happens at the top of every hour. ACH simulations allow developers to manually trigger an ACH into various states that may arise in the course of production money movement. Developers can better understand the flow of funds by manually updating an ACH’s status to sent or returned at an accelerated timeline, as defined in the “Simulation Types” table below. The corresponding impact to an account’s balance, transaction(s), and hold(s) (if applicable) can also be observed by calling the various respective endpoints. Note that when using ACH simulations in Sandbox, the service field on the ACH object will be ignored and will not impact the simulation. The three ACH simulation types are listed below.
ACH Simulations are representative of ACH behavior on Treasury Prime ledger accounts. They may not exactly reflect on-core activity at every bank.

ACH Simulation Types

Preparing for an ACH Simulation

To simulate a sent or returned ACH, an ACH object must be first be created via a POST request to the /ach endpoint with the following parameters included in the userdata field:
Example Request

Create a Sent or Returned ACH Simulation

Initiate either an ach.processing_sent or an ach.processing_returned simulation.

Sent or Returned ACH Simulation Request Body

Simulation Sub-Object

Example Request
Success Response
There will be no response body. The response code will be a 202 - accepted.
Error Response

Example: How to Simulate a Sent ACH

A common flow for an ACH simulation is creating an ACH, and then calling the simulation endpoint with the id of the ACH. See ACH for example ACH requests. The following calls outline simulating an ACH sent simulation with a debit ACH.
Create ACH Request
Simulation Request
Simulation Response
No response body is returned. A 202 HTTP status indicates a successful simulation.

Verifying a Successful Simulation

To ensure that the simulation was run successfully, call the GET /ach/:id endpoint to confirm that the status of the ACH has been updated to sent or returned. The funds should have been moved to/from an account and a corresponding transaction should appear.

Create an Incoming ACH Simulation

Initiate an ach.incoming_ach simulation. Simulates an ACH that was originated externally from a different bank by creating a transaction on an account.

Simulation Request Body

Example Request
The following call outlines simulating an incoming credit ACH.
Success Response
There will be no response body. The response code will be a 202 - Accepted.
Error Response