Skip to main content
An ACH transfer passes through two stages. Before submission it waits for anything that has to happen first: approval, a scheduled time, or the recipient’s bank details. Submission and settlement then covers the transfer from the moment it is queued for the ACH network until it reaches a final status.

Before submission

Approval, scheduling, and queuing each add a status before submission, always in this order. A transfer skips any that don’t apply:
  • pending_approval while a required approver has not acted
  • scheduled while waiting for the scheduled time. Transfers created through the API are never scheduled; this status appears for transfers scheduled in the dashboard.
  • pending then pending_destination for a queued payment: pending while Slash places a hold on the source account, then pending_destination once the funds are held and until the recipient answers the information request and claims the payment
A queued payment is pending twice. First, Slash is placing a hold on the source account and nothing has been sent to the ACH network. After the recipient claims the payment, it is pending again, now queued for ACH submission. If the hold can’t be placed, the transfer becomes failed.
ACH transfer before submissionACH transfer before submission

Combinations

Each row is one combination and the statuses a transfer passes through before it is queued for ACH submission.

Submission and settlement

This chart picks up where the one above ends: at pending, queued for ACH submission. From there the transfer can pause in in_review during Slash review before it settles, fails, or is canceled.
ACH transfer submission and settlementACH transfer submission and settlement
settled, canceled, and failed are final for submission. A receiving bank can still return a settled transfer later, moving it to returned and adding a return Transaction id to transactionIds.
ACH transfer after settlementACH transfer after settlement

Canceling

Cancel with POST /v2/transfers/ach/{transferId}/cancel while the transfer is still pre-submission, including destination, approval, review, and scheduling holds. If network submission wins the race, cancellation returns 409. Cancellation is idempotent after it succeeds. A rejected approval also ends the transfer as canceled, and Slash can cancel a transfer before submission.

Tracking status

Poll GET /v2/transfers/ach/{transferId} or consume aggregated_transaction.create and aggregated_transaction.update webhooks. The webhook’s entityId is a Transaction id. Retrieve that Transaction, read its transferId, and then retrieve the current Transfer.