Sandbox Simulation
Move test ACH transfers through their full lifecycle and receive the same webhooks you’ll see in production.In production, an ACH transfer moves through its lifecycle automatically based on network timing. In sandbox, transfers are not submitted to the Federal Reserve, so they don’t progress on their own. Instead, you advance each transfer manually using simulation endpoints. Each status change fires the same webhook you’ll receive in production, so you can test your webhook handling, status polling, and reconciliation logic end to end. Before testing, review ACH Statuses so you know which statuses to expect at each step.
Simulation Endpoints
These endpoints exist only in the sandbox. They return404 in production.
A transfer in the
under_review status cannot be advanced. This applies to all transfers, incoming and outgoing, including returns. Manual review is not simulated in the sandbox, so a transfer that enters under_review will stay there. If this happens, create a new test transfer, and see Validations & best practices for how to avoid triggering a review.Test an Outgoing ACH
- Create the transfer with the standard endpoint:
POST /v1/ach. The transfer enters thescheduledstatus and stays there until you advance it. - Advance it with
POST /v1/simulate/ach/{ach_id}/advance. Each call moves the transfer to the next status in the production lifecycle:scheduled → processing → submitted → posted. Three advance calls take a transfer fromscheduledtoposted. - Confirm you receive the expected webhook after each advance before making the next call.
Test an Incoming ACH
UsePOST /v1/simulate/ach/incoming_ach to create an incoming transfer to one of your accounts. In production, this is a transfer another institution originates, so there is no standard endpoint to create one yourself.
Test Returns
UsePOST /v1/simulate/ach/{ach_id}/incoming_return to simulate a return initiated by the other institution. To initiate a return yourself, use the standard return endpoint described in Returns, Reversals, & Exceptions.
What Is and Isn’t Real
- No funds move, and Fed processing windows don’t apply. You control timing entirely through the advance endpoint.
- Everything else behaves like production: statuses, webhooks, and validation behavior match what your integration will see live.

