POST/ach_transfers

Create an ACH transfer

Creates an ACH transfer between an Increase account and an account accessible through the ACH network. Supply account_id, amount, and statement_descriptor; use either an external account or receiver account details, and select the preferred effective date when needed.

  • IdempotentThe SDK sends Idempotency-Key, so a retried request is only applied once.

18 body fields

ACH transfer details. account_id, amount, and statement_descriptor are required. Provide either external_account_id or receiver account details.

account_idstringrequired
The Increase identifier for the account that will send the transfer.
account_numberstringoptional
The receiver's account number. For credit transfers (positive `amount`) this is the account that funds will be sent to. For debit transfers (negative `amount`) this is the account that funds will be pulled from.
addendaobjectoptional
Additional information passed through to the receiving bank with the transfer. Most ACH transfers do not need this. Only set this if your recipient has asked for addendum data, typically unstructured remittance information. Corporate Trade Exchange (CTX) flows can carry structured X12 remittance advice instead.
amountintegerrequired
The transfer amount in USD cents. A positive amount originates a credit transfer pushing funds to the receiving account. A negative amount originates a debit transfer pulling funds from the receiving account.
company_descriptive_datestringoptional
A description of the transfer date (typically `YYMMDD`), sent in the company batch header. This value is informational and does not affect funds movement, settlement timing, or returns. Only set this if your recipient has asked for it.
company_discretionary_datastringoptional
Custom data sent in the company batch header. This value is informational and does not affect funds movement, settlement timing, or returns. Most ACH transfers do not need this. Only set this if your recipient has asked for it.
company_entry_descriptionstringoptional
A short description sent in the company batch header. Most receivers do not surface this. Only set this if your recipient has asked for a specific value or if Nacha mandates one for your Standard Entry Class (SEC) code and use case. For example, Prearranged Payment and Deposit (PPD) payroll credits must use `PAYROLL`, and reversals must use `REVERSAL`.
company_namestringoptional
The name by which the recipient knows you, sent in the company batch header. We recommend setting this on every transfer; if you do not, we fall back to the ACH company name configured on your account.
destination_account_holderstringoptional
The type of entity that owns the receiver's account.
Allowed:businessindividualunknown
external_account_idstringoptional
The ID of an External Account to initiate a transfer to. If this parameter is provided, `account_number`, `routing_number`, and `funding` must be absent.
fundingstringoptional
The type of the receiver's bank account.
Allowed:checkingsavingsloangeneral_ledgerDefault:checking
individual_idstringoptional
Your internal identifier for the transfer recipient. This value is informational and not verified by the recipient's bank. Most callers can leave this unset.
individual_namestringoptional
The name of the transfer recipient. This value is informational and not verified by the recipient's bank.
preferred_effective_dateobjectoptional
Configuration for how the effective date of the transfer will be set. This determines same-day vs future-dated settlement timing. If not set, defaults to a `settlement_schedule` of `same_day`. If set, exactly one of the child attributes must be set.
require_approvalbooleanoptional
Whether the transfer requires explicit approval via the dashboard or API.
routing_numberstringoptional
The American Bankers' Association (ABA) Routing Transit Number (RTN) of the receiver's bank.
standard_entry_class_codestringoptional
The [Standard Entry Class (SEC) code](/documentation/ach-standard-entry-class-codes) to use for the transfer. If not provided, the default is `corporate_credit_or_debit`.
Allowed:corporate_credit_or_debitcorporate_trade_exchangeprearranged_payments_and_depositinternet_initiated
statement_descriptorstringrequired
A description you choose to give the transfer. This will be saved with the transfer details, displayed in the dashboard, and returned by the API. If `individual_name` and `company_name` are not explicitly set by this API, the `statement_descriptor` will be sent in those fields to the receiving bank to help the customer recognize the transfer. You are highly encouraged to pass `individual_name` and `company_name` instead of relying on this fallback.

3 status codes
200Returns the created ACH transfer object, including its amount, account details, currency, approval state, and creation time.
account_idstringrequired
The Account to which the transfer belongs.
account_numberstringrequired
The receiver's account number.
acknowledgementobjectrequired
After the transfer is acknowledged by FedACH, this will contain supplemental details. The Federal Reserve sends an acknowledgement message for each file that Increase submits.
addendaobjectrequired
Additional information that will be sent to the recipient.
amountintegerrequired
The transfer amount in USD cents. A positive amount indicates a credit transfer pushing funds to the receiving account. A negative amount indicates a debit transfer pulling funds from the receiving account.
approvalobjectrequired
If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval.
cancellationobjectrequired
If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation.
company_descriptive_datestringrequired
The description of the date of the transfer.
company_discretionary_datastringrequired
The data you chose to associate with the transfer.
company_entry_descriptionstringrequired
The description of the transfer you set to be shown to the recipient.
company_idstringrequired
The company ID associated with the transfer.
company_namestringrequired
The name by which the recipient knows you.
created_atstringrequired
The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was created.
created_byobjectrequired
What object created the transfer, either via the API or the dashboard.
currencystringrequired
The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transfer's currency. For ACH transfers this is always equal to `usd`.
Allowed:USD
destination_account_holderstringrequired
The type of entity that owns the receiver's account.
Allowed:businessindividualunknown
external_account_idstringrequired
The identifier of the External Account the transfer was made to, if any.
fundingstringrequired
The type of the receiver's bank account.
Allowed:checkingsavingsloangeneral_ledger
idstringrequired
The ACH transfer's identifier.
idempotency_keystringrequired
The idempotency key you chose for this object. This value is unique across Increase and is used to ensure that a request is only processed once. Learn more about [idempotency](https://increase.com/documentation/idempotency-keys).
inbound_funds_holdobjectrequired
Increase will sometimes hold the funds for ACH debit transfers. If funds are held, this sub-object will contain details of the hold.
individual_idstringrequired
Your internal identifier for the transfer recipient. This value is informational and not verified by the recipient's bank.
individual_namestringrequired
The name of the transfer recipient. This value is informational and not verified by the recipient's bank.
networkstringrequired
The transfer's network.
Allowed:ach
notifications_of_changearray<ACHTransferACHNotificationOfChange>required
If the receiving bank notifies that future transfers should use different details, this will contain those details.
pending_transaction_idstringrequired
The ID for the pending transaction representing the transfer. A pending transaction is created when the transfer [requires approval](https://increase.com/documentation/transfer-approvals#transfer-approvals) by someone else in your organization.
preferred_effective_dateobjectrequired
Configuration for how the effective date of the transfer will be set. This determines same-day vs future-dated settlement timing. If not set, defaults to a `settlement_schedule` of `same_day`. If set, exactly one of the child attributes must be set.
returnobjectrequired
If your transfer is returned, this will contain details of the return.
routing_numberstringrequired
The American Bankers' Association (ABA) Routing Transit Number (RTN) of the receiver's bank.
settlementobjectrequired
A subhash containing information about when and how the transfer settled at the Federal Reserve.
standard_entry_class_codestringrequired
The [Standard Entry Class (SEC) code](/documentation/ach-standard-entry-class-codes) to use for the transfer.
Allowed:corporate_credit_or_debitcorporate_trade_exchangeprearranged_payments_and_depositinternet_initiated
statement_descriptorstringrequired
The descriptor that will show on the recipient's bank statement.
statusstringrequired
The lifecycle status of the transfer.
Allowed:pending_approvalpending_transfer_session_confirmationcanceledpending_submissionpending_reviewingrequires_attentionrejectedsubmittedreturned
submissionobjectrequired
After the transfer is submitted to FedACH, this will contain supplemental details. Increase batches transfers and submits a file to the Federal Reserve roughly every 30 minutes. The Federal Reserve processes ACH transfers during weekdays according to their [posted schedule](https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html).
transaction_idstringrequired
The ID for the transaction funding the transfer.
typestringrequired
A constant representing the object's type. For this resource it will always be `ach_transfer`.
Allowed:ach_transfer
4XXReturned when the request results in a client error.
5XXReturned when the request results in a server error.

Error handling

account_id, amount, and statement_descriptor are required. amount must be between -9,999,999,999 and 9,999,999,999 cents; account_number must contain 1 to 17 alphanumeric characters, and external_account_id cannot be combined with receiver account details. When addenda is provided, its category determines which corresponding detail object is required.