# Sending an ACH Transfer

[ACH Transfers](/documentation/fedach) are the dominant low-value transfer mechanism in the US. Increase processes billions of dollars of ACH transfers each year using our [ACH Transfer API](/documentation/api/ach-transfers).

## Lifecycle

![ACH Transfer statuses](/images/docs-ach-status.png)

| Status               | Description                                                                                                                             |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `pending_approval`   | The transfer requires approval from a member of your team.                                                                              |
| `pending_reviewing`  | The transfer is pending review by Increase.                                                                                             |
| `pending_submission` | The transfer is pending submission to the Federal Reserve.                                                                              |
| `submitted`          | The transfer has been submitted to the Federal Reserve                                                                                  |
| `returned`           | The transfer has been returned by the receiver. There will be a second Transaction for the return.                                      |
| `canceled`           | The transfer has been canceled.                                                                                                         |
| `rejected`           | The transfer was not submitted because Increase or our partner bank declined it. See [Reviews and rejections](#reviews-and-rejections). |
| `requires_attention` | The transfer requires attention from an Increase operator.                                                                              |

You can find additional details about [sending an ACH Debit Transfer](/documentation/sending-ach-debit-transfers) and [receiving an ACH Transfer](/documentation/receiving-ach-transfers).

## Sending an ACH credit with Increase

Originating an ACH credit via the Increase API kicks off several steps involving you, Increase, the Federal Reserve, and the receiving bank.

1. You make a `POST /ach_transfers` call with the [details](/documentation/api/ach-transfers#create-an-ach-transfer) of how much you'd like to send and data about the recipient.
1. A Transaction is immediately created for the full amount of the transfer.
1. When the file is submitted to the Federal Reserve, Increase updates the ACH Transfer object with its `submission` [details](/documentation/api/ach-transfers#ach-transfer-object.submission).
1. When the Federal Reserve acknowledges the file (usually within fifteen minutes of file submission), Increase updates the ACH Transfer object with its `acknowledgement` [details](/documentation/api/ach-transfers#ach-transfer-object.acknowledgement).
1. The Federal Reserve forwards the transfer details to the receiving bank several times per day. The predicted settlement time is in `submission.expected_funds_settlement_at`. There may be delays and processing time required at the receiving bank, however.

ACH transfers work based on a principle of assumed success. There's no positive acknowledgement from a receiving bank confirming that they've received and allocated the transfer to one of their customer's accounts.

## Settlement

FedACH acknowledges Increase's submission within minutes, but money doesn't settle right away. Funds move between the originating and receiving banks' settlement accounts at the Federal Reserve at fixed times during the day according to the [FedACH processing schedule](/documentation/fedach#timing).

Since FedACH doesn't confirm when a transfer settles, Increase calculates the expected settlement time from the submission window and reports it on the ACH Transfer as `submission.expected_funds_settlement_at`. The ACH Transfer therefore has no `settled` status.

A transfer always settles, even when the receiving bank returns it. After acknowledging the transfer, FedACH forwards it to the receiving bank, which may return it for reasons like an unrecognized account number, insufficient funds, or a closed account. If the return arrives before the expected settlement time, Increase still settles the transfer first and creates a second Transaction for the return to offset it. The two Transactions match what happened at the Federal Reserve, where money moved to the receiving bank's account and then moved back.

To simulate a return in Sandbox, use the [ACH Transfer return simulation](/documentation/api/ach-transfers#sandbox-return-an-ach-transfer). There's no simulation for a transfer that submits but never settles, because once FedACH acknowledges a transfer, Increase settles it automatically at the expected settlement time.

## Approvals

For transfers that require approval from another team member, the ACH Transfer is created with a status of `pending_approval` and a Pending Transaction is created to hold funds.

If the transfer is approved, the ACH Transfer object updates with its `approval` [details](/documentation/api/ach-transfers#ach-transfer-object.approval) and the status is changed to `pending_reviewing`. Once the transfer is submitted, the Pending Transaction status updates to `complete` and a new Transaction is created to remove funds from your Account. After this point, the transfer cannot be canceled.

If the transfer is not approved, the ACH Transfer object updates with its `cancellation` [details](/documentation/api/ach-transfers#ach-transfer-object.cancellation) and the status is changed to `canceled`. The Pending Transaction status updates to `complete` but no additional Transaction is created.

## Reviews and rejections

A transfer is `rejected` when Increase or our partner bank decides not to submit it. This is rare and typically happens for suspected fraud. No Transaction is created on your Account. There are two ways this can happen, both of which route the transfer through `pending_reviewing` before it moves to `pending_submission` (approved) or `rejected` (not approved):

1. An Increase operator pulls the transfer for review.
2. The transfer would breach Increase's limits with our partner bank, so the partner bank reviews it.

`rejected` is different from `returned`. A rejection happens before the transfer leaves Increase, while a return comes from the receiving bank after settlement. There's no Sandbox simulation for `rejected` because it requires a reviewer at Increase or our partner bank to decline the transfer.
