# ACH Transfers
> ACH transfers move funds between your Increase account and any other account accessible by the Automated Clearing House (ACH).

[Events](https://increase.com/documentation/events.md) will be generated for this resource. The possible event categories are: `ach_transfer.created` and `ach_transfer.updated`.

## The ACH Transfer object
### Example
```json
{
  "account_id": "account_in71c4amph0vgo2qllky",
  "account_number": "987654321",
  "acknowledgement": {
    "acknowledged_at": "2020-01-31T23:59:59Z"
  },
  "addenda": null,
  "amount": 100,
  "approval": {
    "approved_at": "2020-01-31T23:59:59Z",
    "approved_by": null
  },
  "cancellation": null,
  "company_descriptive_date": null,
  "company_discretionary_data": null,
  "company_entry_description": null,
  "company_id": "1234987601",
  "company_name": "National Phonograph Company",
  "created_at": "2020-01-31T23:59:59Z",
  "created_by": {
    "category": "user",
    "user": {
      "email": "user@example.com"
    }
  },
  "currency": "USD",
  "destination_account_holder": "business",
  "external_account_id": "external_account_ukk55lr923a3ac0pp7iv",
  "funding": "checking",
  "id": "ach_transfer_uoxatyh3lt5evrsdvo7q",
  "idempotency_key": null,
  "inbound_funds_hold": null,
  "individual_id": null,
  "individual_name": "Ian Crease",
  "network": "ach",
  "notifications_of_change": [],
  "pending_transaction_id": null,
  "preferred_effective_date": {
    "date": null,
    "settlement_schedule": "same_day"
  },
  "return": null,
  "routing_number": "101050001",
  "settlement": null,
  "standard_entry_class_code": "corporate_credit_or_debit",
  "statement_descriptor": "Statement descriptor",
  "status": "returned",
  "submission": {
    "administrative_returns_expected_by": "2020-02-05T11:00:00Z",
    "effective_date": "2020-01-31",
    "expected_funds_settlement_at": "2020-02-03T13:30:00Z",
    "expected_settlement_schedule": "future_dated",
    "submitted_at": "2020-01-31T23:59:59Z",
    "trace_number": "058349238292834"
  },
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "type": "ach_transfer"
}
```
### Attributes
- `account_id` (string)
  The Account to which the transfer belongs.

- `account_number` (string)
  The destination account number.

- `acknowledgement` (dictionary, nullable)
  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.

  - `acknowledgement.acknowledged_at` (string)
    When the Federal Reserve acknowledged the submitted file containing this transfer.

- `addenda` (dictionary, nullable)
  Additional information that will be sent to the recipient.

  - `addenda.category` (enum)
    The type of the resource. We may add additional possible values for this enum over time; your application should be able to handle such additions gracefully.
    Cases:
    * `freeform` (Unstructured `payment_related_information` passed through with the transfer.)
    * `payment_order_remittance_advice` (Structured ASC X12 820 remittance advice records. Please reach out to [support@increase.com](mailto:support@increase.com) for more information.)
    * `other` (Unknown addenda type.)

  - `addenda.freeform` (dictionary, nullable)
    Unstructured `payment_related_information` passed through with the transfer.

      - `addenda.freeform.entries` (array of objects)
        Each entry represents an addendum sent with the transfer.

            - `addenda.freeform.entries.payment_related_information` (string)
              The payment related information passed in the addendum.

  - `addenda.payment_order_remittance_advice` (dictionary, nullable)
    Structured ASC X12 820 remittance advice records. Please reach out to [support@increase.com](mailto:support@increase.com) for more information.

      - `addenda.payment_order_remittance_advice.invoices` (array of objects)
        ASC X12 RMR records for this specific transfer.

            - `addenda.payment_order_remittance_advice.invoices.invoice_number` (string)
              The invoice number for this reference, determined in advance with the receiver.

            - `addenda.payment_order_remittance_advice.invoices.paid_amount` (integer)
              The amount that was paid for this invoice in the minor unit of its currency. For dollars, for example, this is cents.

- `amount` (integer)
  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.

- `approval` (dictionary, nullable)
  If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval.

  - `approval.approved_at` (string)
    The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was approved.

  - `approval.approved_by` (string, nullable)
    If the Transfer was approved by a user in the dashboard, the email address of that user.

- `cancellation` (dictionary, nullable)
  If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation.

  - `cancellation.canceled_at` (string)
    The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the Transfer was canceled.

  - `cancellation.canceled_by` (string, nullable)
    If the Transfer was canceled by a user in the dashboard, the email address of that user.

- `company_descriptive_date` (string, nullable)
  The description of the date of the transfer.

- `company_discretionary_data` (string, nullable)
  The data you chose to associate with the transfer.

- `company_entry_description` (string, nullable)
  The description of the transfer you set to be shown to the recipient.

- `company_id` (string)
  The company ID associated with the transfer.

- `company_name` (string, nullable)
  The name by which the recipient knows you.

- `created_at` (string)
  The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was created.

- `created_by` (dictionary, nullable)
  What object created the transfer, either via the API or the dashboard.

  - `created_by.api_key` (dictionary, nullable)
    If present, details about the API key that created the transfer.

      - `created_by.api_key.description` (string, nullable)
        The description set for the API key when it was created.

  - `created_by.category` (enum)
    The type of object that created this transfer.
    Cases:
    * `api_key` (An API key. Details will be under the `api_key` object.)
    * `oauth_application` (An OAuth application you connected to Increase. Details will be under the `oauth_application` object.)
    * `user` (A User in the Increase dashboard. Details will be under the `user` object.)

  - `created_by.oauth_application` (dictionary, nullable)
    If present, details about the OAuth Application that created the transfer.

      - `created_by.oauth_application.name` (string)
        The name of the OAuth Application.

  - `created_by.user` (dictionary, nullable)
    If present, details about the User that created the transfer.

      - `created_by.user.email` (string)
        The email address of the User.

- `currency` (enum)
  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`.
  Cases:
  * `USD` (US Dollar (USD))

- `destination_account_holder` (enum)
  The type of entity that owns the account to which the ACH Transfer is being sent.
  Cases:
  * `business` (The External Account is owned by a business.)
  * `individual` (The External Account is owned by an individual.)
  * `unknown` (It's unknown what kind of entity owns the External Account.)

- `external_account_id` (string, nullable)
  The identifier of the External Account the transfer was made to, if any.

- `funding` (enum)
  The type of the account to which the transfer will be sent.
  Cases:
  * `checking` (A checking account.)
  * `savings` (A savings account.)
  * `general_ledger` (A bank's general ledger. Uncommon.)

- `id` (string)
  The ACH transfer's identifier.

- `idempotency_key` (string, nullable)
  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_hold` (dictionary, nullable)
  Increase will sometimes hold the funds for ACH debit transfers. If funds are held, this sub-object will contain details of the hold.

  - `inbound_funds_hold.amount` (integer)
    The held amount in the minor unit of the account's currency. For dollars, for example, this is cents.

  - `inbound_funds_hold.automatically_releases_at` (string)
    When the hold will be released automatically. Certain conditions may cause it to be released before this time.

  - `inbound_funds_hold.created_at` (string)
    The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the hold was created.

  - `inbound_funds_hold.currency` (enum)
    The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the hold's currency.
    Cases:
    * `USD` (US Dollar (USD))

  - `inbound_funds_hold.held_transaction_id` (string, nullable)
    The ID of the Transaction for which funds were held.

  - `inbound_funds_hold.pending_transaction_id` (string, nullable)
    The ID of the Pending Transaction representing the held funds.

  - `inbound_funds_hold.released_at` (string, nullable)
    When the hold was released (if it has been released).

  - `inbound_funds_hold.status` (enum)
    The status of the hold.
    Cases:
    * `held` (Funds are still being held.)
    * `complete` (Funds have been released.)

  - `inbound_funds_hold.type` (string)
    A constant representing the object's type. For this resource it will always be `inbound_funds_hold`.

- `individual_id` (string, nullable)
  Your identifier for the transfer recipient.

- `individual_name` (string, nullable)
  The name of the transfer recipient. This value is informational and not verified by the recipient's bank.

- `network` (string)
  The transfer's network.

- `notifications_of_change` (array of objects)
  If the receiving bank accepts the transfer but notifies that future transfers should use different details, this will contain those details.

  - `notifications_of_change.change_code` (enum)
    The required type of change that is being signaled by the receiving financial institution.
    Cases:
    * `incorrect_account_number` (The account number was incorrect.)
    * `incorrect_routing_number` (The routing number was incorrect.)
    * `incorrect_routing_number_and_account_number` (Both the routing number and the account number were incorrect.)
    * `incorrect_transaction_code` (The transaction code was incorrect. Try changing the `funding` parameter from checking to savings or vice-versa.)
    * `incorrect_account_number_and_transaction_code` (The account number and the transaction code were incorrect.)
    * `incorrect_routing_number_account_number_and_transaction_code` (The routing number, account number, and transaction code were incorrect.)
    * `incorrect_receiving_depository_financial_institution_identification` (The receiving depository financial institution identification was incorrect.)
    * `incorrect_individual_identification_number` (The individual identification number was incorrect.)
    * `addenda_format_error` (The addenda had an incorrect format.)
    * `incorrect_standard_entry_class_code_for_outbound_international_payment` (The standard entry class code was incorrect for an outbound international payment.)
    * `misrouted_notification_of_change` (The notification of change was misrouted.)
    * `incorrect_trace_number` (The trace number was incorrect.)
    * `incorrect_company_identification_number` (The company identification number was incorrect.)
    * `incorrect_identification_number` (The individual identification number or identification number was incorrect.)
    * `incorrectly_formatted_corrected_data` (The corrected data was incorrectly formatted.)
    * `incorrect_discretionary_data` (The discretionary data was incorrect.)
    * `routing_number_not_from_original_entry_detail_record` (The routing number was not from the original entry detail record.)
    * `depository_financial_institution_account_number_not_from_original_entry_detail_record` (The depository financial institution account number was not from the original entry detail record.)
    * `incorrect_transaction_code_by_originating_depository_financial_institution` (The transaction code was incorrect, initiated by the originating depository financial institution.)

  - `notifications_of_change.corrected_data` (string)
    The corrected data that should be used in future ACHs to this account. This may contain the suggested new account number or routing number. When the `change_code` is `incorrect_transaction_code`, this field contains an integer. Numbers starting with a 2 encourage changing the `funding` parameter to checking; numbers starting with a 3 encourage changing to savings.

  - `notifications_of_change.created_at` (string)
    The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the notification occurred.

- `pending_transaction_id` (string, nullable)
  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_date` (dictionary)
  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.

  - `preferred_effective_date.date` (string, nullable)
    A specific date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format to use as the effective date when submitting this transfer.

  - `preferred_effective_date.settlement_schedule` (enum, nullable)
    A schedule by which Increase will choose an effective date for the transfer.
    Cases:
    * `same_day` (The chosen effective date will be the same as the ACH processing date on which the transfer is submitted.
    This is necessary, but not sufficient for the transfer to be settled same-day:
    it must also be submitted before the last same-day cutoff
    and be less than or equal to $1,000.000.00.
    )
    * `future_dated` (The chosen effective date will be the business day following the ACH processing date on which the transfer is submitted. The transfer will be settled on that future day.)

- `return` (dictionary, nullable)
  If your transfer is returned, this will contain details of the return.

  - `return.created_at` (string)
    The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was created.

  - `return.raw_return_reason_code` (string)
    The three character ACH return code, in the range R01 to R85.

  - `return.return_reason_code` (enum)
    Why the ACH Transfer was returned. This reason code is sent by the receiving bank back to Increase.
    Cases:
    * `insufficient_fund` (Code R01. Insufficient funds in the receiving account. Sometimes abbreviated to "NSF.")
    * `no_account` (Code R03. The account does not exist or the receiving bank was unable to locate it.)
    * `account_closed` (Code R02. The account is closed at the receiving bank.)
    * `invalid_account_number_structure` (Code R04. The account number is invalid at the receiving bank.)
    * `account_frozen_entry_returned_per_ofac_instruction` (Code R16. This return code has two separate meanings. (1) The receiving bank froze the account or (2) the Office of Foreign Assets Control (OFAC) instructed the receiving bank to return the entry.)
    * `credit_entry_refused_by_receiver` (Code R23. The receiving bank refused the credit transfer.)
    * `unauthorized_debit_to_consumer_account_using_corporate_sec_code` (Code R05. The receiving bank rejected because of an incorrect Standard Entry Class code. Consumer accounts cannot be debited as `corporate_credit_or_debit` or `corporate_trade_exchange`.)
    * `corporate_customer_advised_not_authorized` (Code R29. The corporate customer at the receiving bank reversed the transfer.)
    * `payment_stopped` (Code R08. The receiving bank stopped payment on this transfer.)
    * `non_transaction_account` (Code R20. The account is not eligible for ACH, such as a savings account with transaction limits.)
    * `uncollected_funds` (Code R09. The receiving bank account does not have enough available balance for the transfer.)
    * `routing_number_check_digit_error` (Code R28. The routing number is incorrect.)
    * `customer_advised_unauthorized_improper_ineligible_or_incomplete` (Code R10. The customer at the receiving bank reversed the transfer.)
    * `amount_field_error` (Code R19. The amount field is incorrect or too large.)
    * `authorization_revoked_by_customer` (Code R07. The customer revoked their authorization for a previously authorized transfer.)
    * `invalid_ach_routing_number` (Code R13. The routing number is invalid.)
    * `file_record_edit_criteria` (Code R17. The receiving bank is unable to process a field in the transfer.)
    * `enr_invalid_individual_name` (Code R45. A rare return reason. The individual name field was invalid.)
    * `returned_per_odfi_request` (Code R06. The originating financial institution asked for this transfer to be returned. The receiving bank is complying with the request.)
    * `limited_participation_dfi` (Code R34. The receiving bank's regulatory supervisor has limited their participation in the ACH network.)
    * `incorrectly_coded_outbound_international_payment` (Code R85. The outbound international ACH transfer was incorrect.)
    * `account_sold_to_another_dfi` (Code R12. A rare return reason. The account was sold to another bank.)
    * `addenda_error` (Code R25. The addenda record is incorrect or missing.)
    * `beneficiary_or_account_holder_deceased` (Code R15. A rare return reason. The account holder is deceased.)
    * `customer_advised_not_within_authorization_terms` (Code R11. A rare return reason. The customer authorized some payment to the sender, but this payment was not in error.)
    * `corrected_return` (Code R74. A rare return reason. Sent in response to a return that was returned with code `field_error`. The latest return should include the corrected field(s).)
    * `duplicate_entry` (Code R24. A rare return reason. The receiving bank received an exact duplicate entry with the same trace number and amount.)
    * `duplicate_return` (Code R67. A rare return reason. The return this message refers to was a duplicate.)
    * `enr_duplicate_enrollment` (Code R47. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `enr_invalid_dfi_account_number` (Code R43. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `enr_invalid_individual_id_number` (Code R44. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `enr_invalid_representative_payee_indicator` (Code R46. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `enr_invalid_transaction_code` (Code R41. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `enr_return_of_enr_entry` (Code R40. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `enr_routing_number_check_digit_error` (Code R42. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
    * `entry_not_processed_by_gateway` (Code R84. A rare return reason. The International ACH Transfer cannot be processed by the gateway.)
    * `field_error` (Code R69. A rare return reason. One or more of the fields in the ACH were malformed.)
    * `foreign_receiving_dfi_unable_to_settle` (Code R83. A rare return reason. The Foreign receiving bank was unable to settle this ACH transfer.)
    * `iat_entry_coding_error` (Code R80. A rare return reason. The International ACH Transfer is malformed.)
    * `improper_effective_entry_date` (Code R18. A rare return reason. The ACH has an improper effective entry date field.)
    * `improper_source_document_source_document_presented` (Code R39. A rare return reason. The source document related to this ACH, usually an ACH check conversion, was presented to the bank.)
    * `invalid_company_id` (Code R21. A rare return reason. The Company ID field of the ACH was invalid.)
    * `invalid_foreign_receiving_dfi_identification` (Code R82. A rare return reason. The foreign receiving bank identifier for an International ACH Transfer was invalid.)
    * `invalid_individual_id_number` (Code R22. A rare return reason. The Individual ID number field of the ACH was invalid.)
    * `item_and_rck_entry_presented_for_payment` (Code R53. A rare return reason. Both the Represented Check ("RCK") entry and the original check were presented to the bank.)
    * `item_related_to_rck_entry_is_ineligible` (Code R51. A rare return reason. The Represented Check ("RCK") entry is ineligible.)
    * `mandatory_field_error` (Code R26. A rare return reason. The ACH is missing a required field.)
    * `misrouted_dishonored_return` (Code R71. A rare return reason. The receiving bank does not recognize the routing number in a dishonored return entry.)
    * `misrouted_return` (Code R61. A rare return reason. The receiving bank does not recognize the routing number in a return entry.)
    * `no_errors_found` (Code R76. A rare return reason. Sent in response to a return, the bank does not find the errors alleged by the returning bank.)
    * `non_acceptance_of_r62_dishonored_return` (Code R77. A rare return reason. The receiving bank does not accept the return of the erroneous debit. The funds are not available at the receiving bank.)
    * `non_participant_in_iat_program` (Code R81. A rare return reason. The receiving bank does not accept International ACH Transfers.)
    * `permissible_return_entry` (Code R31. A rare return reason. A return that has been agreed to be accepted by the receiving bank, despite falling outside of the usual return timeframe.)
    * `permissible_return_entry_not_accepted` (Code R70. A rare return reason. The receiving bank had not approved this return.)
    * `rdfi_non_settlement` (Code R32. A rare return reason. The receiving bank could not settle this transaction.)
    * `rdfi_participant_in_check_truncation_program` (Code R30. A rare return reason. The receiving bank does not accept Check Truncation ACH transfers.)
    * `representative_payee_deceased_or_unable_to_continue_in_that_capacity` (Code R14. A rare return reason. The payee is deceased.)
    * `return_not_a_duplicate` (Code R75. A rare return reason. The originating bank disputes that an earlier `duplicate_entry` return was actually a duplicate.)
    * `return_of_erroneous_or_reversing_debit` (Code R62. A rare return reason. The originating financial institution made a mistake and this return corrects it.)
    * `return_of_improper_credit_entry` (Code R36. A rare return reason. Return of a malformed credit entry.)
    * `return_of_improper_debit_entry` (Code R35. A rare return reason. Return of a malformed debit entry.)
    * `return_of_xck_entry` (Code R33. A rare return reason. Return of a destroyed check ("XCK") entry.)
    * `source_document_presented_for_payment` (Code R37. A rare return reason. The source document related to this ACH, usually an ACH check conversion, was presented to the bank.)
    * `state_law_affecting_rck_acceptance` (Code R50. A rare return reason. State law prevents the bank from accepting the Represented Check ("RCK") entry.)
    * `stop_payment_on_item_related_to_rck_entry` (Code R52. A rare return reason. A stop payment was issued on a Represented Check ("RCK") entry.)
    * `stop_payment_on_source_document` (Code R38. A rare return reason. The source attached to the ACH, usually an ACH check conversion, includes a stop payment.)
    * `timely_original_return` (Code R73. A rare return reason. The bank receiving an `untimely_return` believes it was on time.)
    * `trace_number_error` (Code R27. A rare return reason. An ACH return's trace number does not match an originated ACH.)
    * `untimely_dishonored_return` (Code R72. A rare return reason. The dishonored return was sent too late.)
    * `untimely_return` (Code R68. A rare return reason. The return was sent too late.)

  - `return.trace_number` (string)
    A 15 digit number that was generated by the bank that initiated the return. The trace number of the return is different than that of the original transfer. ACH trace numbers are not unique, but along with the amount and date this number can be used to identify the ACH return at the bank that initiated it.

  - `return.transaction_id` (string)
    The identifier of the Transaction associated with this return.

  - `return.transfer_id` (string)
    The identifier of the ACH Transfer associated with this return.

- `routing_number` (string)
  The American Bankers' Association (ABA) Routing Transit Number (RTN).

- `settlement` (dictionary, nullable)
  A subhash containing information about when and how the transfer settled at the Federal Reserve.

  - `settlement.settled_at` (string)
    When the funds for this transfer have settled at the destination bank at the Federal Reserve.

- `standard_entry_class_code` (enum)
  The [Standard Entry Class (SEC) code](/documentation/ach-standard-entry-class-codes) to use for the transfer.
  Cases:
  * `corporate_credit_or_debit` (Corporate Credit and Debit (CCD) is used for business-to-business payments.)
  * `corporate_trade_exchange` (Corporate Trade Exchange (CTX) allows for including extensive remittance information with business-to-business payments.)
  * `prearranged_payments_and_deposit` (Prearranged Payments and Deposits (PPD) is used for credits or debits originated by an organization to a consumer, such as payroll direct deposits.)
  * `internet_initiated` (Internet Initiated (WEB) is used for consumer payments initiated or authorized via the Internet. Debits can only be initiated by non-consumers to debit a consumer’s account. Credits can only be used for consumer to consumer transactions.)

- `statement_descriptor` (string)
  The descriptor that will show on the recipient's bank statement.

- `status` (enum)
  The lifecycle status of the transfer.
  Cases:
  * `pending_approval` (The transfer is pending approval.)
  * `pending_transfer_session_confirmation` (The transfer belongs to a Transfer Session that is pending confirmation.)
  * `canceled` (The transfer has been canceled.)
  * `pending_submission` (The transfer is pending submission to the Federal Reserve.)
  * `pending_reviewing` (The transfer is pending review by Increase.)
  * `requires_attention` (The transfer requires attention from an Increase operator.)
  * `rejected` (The transfer has been rejected.)
  * `submitted` (The transfer is complete.)
  * `returned` (The transfer has been returned.)

- `submission` (dictionary, nullable)
  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).

  - `submission.administrative_returns_expected_by` (string)
    The timestamp by which any administrative returns are expected to be received by. This follows the NACHA guidelines for return windows, which are: "In general, return entries must be received by the RDFI’s ACH Operator by its deposit deadline for the return entry to be made available to the ODFI no later than the opening of business on the second banking day following the Settlement Date of the original entry.".

  - `submission.effective_date` (string)
    The ACH transfer's effective date as sent to the Federal Reserve. If a specific date was configured using `preferred_effective_date`, this will match that value. Otherwise, it will be the date selected (following the specified settlement schedule) at the time the transfer was submitted.

  - `submission.expected_funds_settlement_at` (string)
    When the transfer is expected to settle in the recipient's account. Credits may be available sooner, at the receiving bank's discretion. The FedACH schedule is published [here](https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html).

  - `submission.expected_settlement_schedule` (enum)
    The settlement schedule the transfer is expected to follow. This expectation takes into account the `effective_date`, `submitted_at`, and the amount of the transfer.
    Cases:
    * `same_day` (The transfer is expected to settle same-day.)
    * `future_dated` (The transfer is expected to settle on a future date.)

  - `submission.submitted_at` (string)
    When the ACH transfer was sent to FedACH.

  - `submission.trace_number` (string)
    A 15 digit number recorded in the Nacha file and transmitted to the receiving bank. Along with the amount, date, and originating routing number, this can be used to identify the ACH transfer at the receiving bank. ACH trace numbers are not unique, but are [used to correlate returns](https://increase.com/documentation/ach-returns#ach-returns).

- `transaction_id` (string, nullable)
  The ID for the transaction funding the transfer.

- `type` (string)
  A constant representing the object's type. For this resource it will always be `ach_transfer`.

## List ACH Transfers
GET /ach_transfers

### Example
```curl
curl \
  --url "${INCREASE_URL}/ach_transfers?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
```

### Query Parameters
- `cursor` (string, optional)
  Return the page of entries after this one.

- `limit` (integer, optional)
  Limit the size of the list that is returned. The default (and maximum) is 100 objects.

- `account_id` (string, optional)
  Filter ACH Transfers to those that originated from the specified Account.

- `external_account_id` (string, optional)
  Filter ACH Transfers to those made to the specified External Account.

- `idempotency_key` (string, optional)
  Filter records to the one with the specified `idempotency_key` you chose for that 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).

- `status.in` (array of enums, optional)
  Return results whose value is in the provided list. For GET requests, this should be encoded as a comma-delimited string, such as `?in=one,two,three`.
  Cases:
  * `pending_approval` (The transfer is pending approval.)
  * `pending_transfer_session_confirmation` (The transfer belongs to a Transfer Session that is pending confirmation.)
  * `canceled` (The transfer has been canceled.)
  * `pending_submission` (The transfer is pending submission to the Federal Reserve.)
  * `pending_reviewing` (The transfer is pending review by Increase.)
  * `requires_attention` (The transfer requires attention from an Increase operator.)
  * `rejected` (The transfer has been rejected.)
  * `submitted` (The transfer is complete.)
  * `returned` (The transfer has been returned.)

- `created_at.after` (string, optional)
  Return results after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp.

- `created_at.before` (string, optional)
  Return results before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp.

- `created_at.on_or_after` (string, optional)
  Return results on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp.

- `created_at.on_or_before` (string, optional)
  Return results on or before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp.

### Returns a ACH Transfer List object:
```json
{
  "data": [
    {
      "account_id": "account_in71c4amph0vgo2qllky",
      "account_number": "987654321",
      "acknowledgement": {
        "acknowledged_at": "2020-01-31T23:59:59Z"
      },
      "addenda": null,
      "amount": 100,
      "approval": {
        "approved_at": "2020-01-31T23:59:59Z",
        "approved_by": null
      },
      "cancellation": null,
      "company_descriptive_date": null,
      "company_discretionary_data": null,
      "company_entry_description": null,
      "company_id": "1234987601",
      "company_name": "National Phonograph Company",
      "created_at": "2020-01-31T23:59:59Z",
      "created_by": {
        "category": "user",
        "user": {
          "email": "user@example.com"
        }
      },
      "currency": "USD",
      "destination_account_holder": "business",
      "external_account_id": "external_account_ukk55lr923a3ac0pp7iv",
      "funding": "checking",
      "id": "ach_transfer_uoxatyh3lt5evrsdvo7q",
      "idempotency_key": null,
      "inbound_funds_hold": null,
      "individual_id": null,
      "individual_name": "Ian Crease",
      "network": "ach",
      "notifications_of_change": [],
      "pending_transaction_id": null,
      "preferred_effective_date": {
        "date": null,
        "settlement_schedule": "same_day"
      },
      "return": null,
      "routing_number": "101050001",
      "settlement": null,
      "standard_entry_class_code": "corporate_credit_or_debit",
      "statement_descriptor": "Statement descriptor",
      "status": "returned",
      "submission": {
        "administrative_returns_expected_by": "2020-02-05T11:00:00Z",
        "effective_date": "2020-01-31",
        "expected_funds_settlement_at": "2020-02-03T13:30:00Z",
        "expected_settlement_schedule": "future_dated",
        "submitted_at": "2020-01-31T23:59:59Z",
        "trace_number": "058349238292834"
      },
      "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
      "type": "ach_transfer"
    }
  ],
  "next_cursor": "v57w5d"
}
```

## Create an ACH Transfer
POST /ach_transfers

### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/ach_transfers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "account_number": "987654321",
    "amount": 100,
    "routing_number": "101050001",
    "statement_descriptor": "New ACH transfer"
  }'
```

### Body Parameters
- `account_id` (string, required)
  The Increase identifier for the account that will send the transfer.

- `account_number` (string, optional)
  The account number for the destination account.

- `addenda` (dictionary, optional)
  Additional information that will be sent to the recipient. This is included in the transfer data sent to the receiving bank.

  - `addenda.category` (enum, required)
    The type of addenda to pass with the transfer.
    Cases:
    * `freeform` (Unstructured `payment_related_information` passed through with the transfer.)
    * `payment_order_remittance_advice` (Structured ASC X12 820 remittance advice records. Please reach out to [support@increase.com](mailto:support@increase.com) for more information.)

  - `addenda.freeform` (dictionary, optional)
    Unstructured `payment_related_information` passed through with the transfer. Required if and only if `category` is `freeform`.

      - `addenda.freeform.entries` (array of objects, required)
        Each entry represents an addendum sent with the transfer. In general, you should send at most one addendum–most ACH recipients cannot access beyond the first 80 characters sent. Please reach out to [support@increase.com](mailto:support@increase.com) to send 2 or more addenda to a recipient expecting a specific addendum format.

            - `addenda.freeform.entries.payment_related_information` (string, required)
              The payment related information passed in the addendum.

  - `addenda.payment_order_remittance_advice` (dictionary, optional)
    Structured ASC X12 820 remittance advice records. Please reach out to [support@increase.com](mailto:support@increase.com) for more information. Required if and only if `category` is `payment_order_remittance_advice`.

      - `addenda.payment_order_remittance_advice.invoices` (array of objects, required)
        ASC X12 RMR records for this specific transfer.

            - `addenda.payment_order_remittance_advice.invoices.invoice_number` (string, required)
              The invoice number for this reference, determined in advance with the receiver.

            - `addenda.payment_order_remittance_advice.invoices.paid_amount` (integer, required)
              The amount that was paid for this invoice in the minor unit of its currency. For dollars, for example, this is cents.

- `amount` (integer, required)
  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_date` (string, optional)
  The description of the date of the transfer, usually in the format `YYMMDD`. This is included in the transfer data sent to the receiving bank.

- `company_discretionary_data` (string, optional)
  The data you choose to associate with the transfer. This is included in the transfer data sent to the receiving bank.

- `company_entry_description` (string, optional)
  A description of the transfer, included in the transfer data sent to the receiving bank. Standardized formatting may be required, for example `PAYROLL` for payroll-related Prearranged Payments and Deposits (PPD) credit transfers.

- `company_name` (string, optional)
  The name by which the recipient knows you. This is included in the transfer data sent to the receiving bank.

- `destination_account_holder` (enum, optional)
  The type of entity that owns the account to which the ACH Transfer is being sent.
  Cases:
  * `business` (The External Account is owned by a business.)
  * `individual` (The External Account is owned by an individual.)
  * `unknown` (It's unknown what kind of entity owns the External Account.)

- `external_account_id` (string, optional)
  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.

- `funding` (enum, optional)
  The type of the account to which the transfer will be sent.
  Cases:
  * `checking` (A checking account.)
  * `savings` (A savings account.)
  * `general_ledger` (A bank's general ledger. Uncommon.)

- `individual_id` (string, optional)
  Your identifier for the transfer recipient.

- `individual_name` (string, optional)
  The name of the transfer recipient. This value is informational and not verified by the recipient's bank.

- `preferred_effective_date` (dictionary, optional)
  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.

  - `preferred_effective_date.date` (string, optional)
    A specific date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format to use as the effective date when submitting this transfer.

  - `preferred_effective_date.settlement_schedule` (enum, optional)
    A schedule by which Increase will choose an effective date for the transfer.
    Cases:
    * `same_day` (The chosen effective date will be the same as the ACH processing date on which the transfer is submitted. This is necessary, but not sufficient for the transfer to be settled same-day: it must also be submitted before the last same-day cutoff and be less than or equal to $1,000.000.00.)
    * `future_dated` (The chosen effective date will be the business day following the ACH processing date on which the transfer is submitted. The transfer will be settled on that future day.)

- `require_approval` (boolean, optional)
  Whether the transfer requires explicit approval via the dashboard or API.

- `routing_number` (string, optional)
  The American Bankers' Association (ABA) Routing Transit Number (RTN) for the destination account.

- `standard_entry_class_code` (enum, optional)
  The [Standard Entry Class (SEC) code](/documentation/ach-standard-entry-class-codes) to use for the transfer.
  Cases:
  * `corporate_credit_or_debit` (Corporate Credit and Debit (CCD) is used for business-to-business payments.)
  * `corporate_trade_exchange` (Corporate Trade Exchange (CTX) allows for including extensive remittance information with business-to-business payments.)
  * `prearranged_payments_and_deposit` (Prearranged Payments and Deposits (PPD) is used for credits or debits originated by an organization to a consumer, such as payroll direct deposits.)
  * `internet_initiated` (Internet Initiated (WEB) is used for consumer payments initiated or authorized via the Internet. Debits can only be initiated by non-consumers to debit a consumer’s account. Credits can only be used for consumer to consumer transactions.)

- `statement_descriptor` (string, required)
  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.

- `transaction_timing` (enum, optional)
  The timing of the transaction.
  Cases:
  * `synchronous` (A Transaction will be created immediately.)
  * `asynchronous` (A Transaction will be created when the funds settle at the Federal Reserve.)

## Retrieve an ACH Transfer
GET /ach_transfers/{ach_transfer_id}

### Example
```curl
curl \
  --url "${INCREASE_URL}/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer.

## Approve an ACH Transfer
POST /ach_transfers/{ach_transfer_id}/approve
> Approves an ACH Transfer in a pending_approval state.
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/approve" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer to approve.

## Cancel a pending ACH Transfer
POST /ach_transfers/{ach_transfer_id}/cancel
> Cancels an ACH Transfer in a pending_approval state.
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/cancel" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the pending ACH Transfer to cancel.

## Sandbox: Acknowledge an ACH Transfer
POST /simulations/ach_transfers/{ach_transfer_id}/acknowledge
> Simulates the acknowledgement of an [ACH Transfer](#ach-transfers) by the Federal Reserve. This transfer must first have a `status` of `submitted`. In production, the Federal Reserve generally acknowledges submitted ACH files within 30 minutes. Since sandbox ACH Transfers are not submitted to the Federal Reserve, this endpoint allows you to skip that delay and add the acknowledgement subresource to the ACH Transfer.
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/acknowledge" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer you wish to become acknowledged.

## Sandbox: Create a Notification of Change for an ACH Transfer
POST /simulations/ach_transfers/{ach_transfer_id}/create_notification_of_change
> Simulates receiving a Notification of Change for an [ACH Transfer](#ach-transfers).
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/create_notification_of_change" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "change_code": "incorrect_routing_number",
    "corrected_data": "123456789"
  }'
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer you wish to create a notification of change for.

### Body Parameters
- `change_code` (enum, required)
  The reason for the notification of change.
  Cases:
  * `incorrect_account_number` (The account number was incorrect.)
  * `incorrect_routing_number` (The routing number was incorrect.)
  * `incorrect_routing_number_and_account_number` (Both the routing number and the account number were incorrect.)
  * `incorrect_transaction_code` (The transaction code was incorrect. Try changing the `funding` parameter from checking to savings or vice-versa.)
  * `incorrect_account_number_and_transaction_code` (The account number and the transaction code were incorrect.)
  * `incorrect_routing_number_account_number_and_transaction_code` (The routing number, account number, and transaction code were incorrect.)
  * `incorrect_receiving_depository_financial_institution_identification` (The receiving depository financial institution identification was incorrect.)
  * `incorrect_individual_identification_number` (The individual identification number was incorrect.)
  * `addenda_format_error` (The addenda had an incorrect format.)
  * `incorrect_standard_entry_class_code_for_outbound_international_payment` (The standard entry class code was incorrect for an outbound international payment.)
  * `misrouted_notification_of_change` (The notification of change was misrouted.)
  * `incorrect_trace_number` (The trace number was incorrect.)
  * `incorrect_company_identification_number` (The company identification number was incorrect.)
  * `incorrect_identification_number` (The individual identification number or identification number was incorrect.)
  * `incorrectly_formatted_corrected_data` (The corrected data was incorrectly formatted.)
  * `incorrect_discretionary_data` (The discretionary data was incorrect.)
  * `routing_number_not_from_original_entry_detail_record` (The routing number was not from the original entry detail record.)
  * `depository_financial_institution_account_number_not_from_original_entry_detail_record` (The depository financial institution account number was not from the original entry detail record.)
  * `incorrect_transaction_code_by_originating_depository_financial_institution` (The transaction code was incorrect, initiated by the originating depository financial institution.)

- `corrected_data` (string, required)
  The corrected data for the notification of change (e.g., a new routing number).

## Sandbox: Return an ACH Transfer
POST /simulations/ach_transfers/{ach_transfer_id}/return
> Simulates the return of an [ACH Transfer](#ach-transfers) by the Federal Reserve due to an error condition. This will also create a Transaction to account for the returned funds. This transfer must first have a `status` of `submitted`.
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/return" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{}'
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer you wish to return.

### Body Parameters
- `reason` (enum, optional)
  The reason why the Federal Reserve or destination bank returned this transfer. Defaults to `no_account`.
  Cases:
  * `insufficient_fund` (Code R01. Insufficient funds in the receiving account. Sometimes abbreviated to "NSF.")
  * `no_account` (Code R03. The account does not exist or the receiving bank was unable to locate it.)
  * `account_closed` (Code R02. The account is closed at the receiving bank.)
  * `invalid_account_number_structure` (Code R04. The account number is invalid at the receiving bank.)
  * `account_frozen_entry_returned_per_ofac_instruction` (Code R16. This return code has two separate meanings. (1) The receiving bank froze the account or (2) the Office of Foreign Assets Control (OFAC) instructed the receiving bank to return the entry.)
  * `credit_entry_refused_by_receiver` (Code R23. The receiving bank refused the credit transfer.)
  * `unauthorized_debit_to_consumer_account_using_corporate_sec_code` (Code R05. The receiving bank rejected because of an incorrect Standard Entry Class code. Consumer accounts cannot be debited as `corporate_credit_or_debit` or `corporate_trade_exchange`.)
  * `corporate_customer_advised_not_authorized` (Code R29. The corporate customer at the receiving bank reversed the transfer.)
  * `payment_stopped` (Code R08. The receiving bank stopped payment on this transfer.)
  * `non_transaction_account` (Code R20. The account is not eligible for ACH, such as a savings account with transaction limits.)
  * `uncollected_funds` (Code R09. The receiving bank account does not have enough available balance for the transfer.)
  * `routing_number_check_digit_error` (Code R28. The routing number is incorrect.)
  * `customer_advised_unauthorized_improper_ineligible_or_incomplete` (Code R10. The customer at the receiving bank reversed the transfer.)
  * `amount_field_error` (Code R19. The amount field is incorrect or too large.)
  * `authorization_revoked_by_customer` (Code R07. The customer revoked their authorization for a previously authorized transfer.)
  * `invalid_ach_routing_number` (Code R13. The routing number is invalid.)
  * `file_record_edit_criteria` (Code R17. The receiving bank is unable to process a field in the transfer.)
  * `enr_invalid_individual_name` (Code R45. A rare return reason. The individual name field was invalid.)
  * `returned_per_odfi_request` (Code R06. The originating financial institution asked for this transfer to be returned. The receiving bank is complying with the request.)
  * `limited_participation_dfi` (Code R34. The receiving bank's regulatory supervisor has limited their participation in the ACH network.)
  * `incorrectly_coded_outbound_international_payment` (Code R85. The outbound international ACH transfer was incorrect.)
  * `account_sold_to_another_dfi` (Code R12. A rare return reason. The account was sold to another bank.)
  * `addenda_error` (Code R25. The addenda record is incorrect or missing.)
  * `beneficiary_or_account_holder_deceased` (Code R15. A rare return reason. The account holder is deceased.)
  * `customer_advised_not_within_authorization_terms` (Code R11. A rare return reason. The customer authorized some payment to the sender, but this payment was not in error.)
  * `corrected_return` (Code R74. A rare return reason. Sent in response to a return that was returned with code `field_error`. The latest return should include the corrected field(s).)
  * `duplicate_entry` (Code R24. A rare return reason. The receiving bank received an exact duplicate entry with the same trace number and amount.)
  * `duplicate_return` (Code R67. A rare return reason. The return this message refers to was a duplicate.)
  * `enr_duplicate_enrollment` (Code R47. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `enr_invalid_dfi_account_number` (Code R43. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `enr_invalid_individual_id_number` (Code R44. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `enr_invalid_representative_payee_indicator` (Code R46. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `enr_invalid_transaction_code` (Code R41. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `enr_return_of_enr_entry` (Code R40. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `enr_routing_number_check_digit_error` (Code R42. A rare return reason. Only used for US Government agency non-monetary automatic enrollment messages.)
  * `entry_not_processed_by_gateway` (Code R84. A rare return reason. The International ACH Transfer cannot be processed by the gateway.)
  * `field_error` (Code R69. A rare return reason. One or more of the fields in the ACH were malformed.)
  * `foreign_receiving_dfi_unable_to_settle` (Code R83. A rare return reason. The Foreign receiving bank was unable to settle this ACH transfer.)
  * `iat_entry_coding_error` (Code R80. A rare return reason. The International ACH Transfer is malformed.)
  * `improper_effective_entry_date` (Code R18. A rare return reason. The ACH has an improper effective entry date field.)
  * `improper_source_document_source_document_presented` (Code R39. A rare return reason. The source document related to this ACH, usually an ACH check conversion, was presented to the bank.)
  * `invalid_company_id` (Code R21. A rare return reason. The Company ID field of the ACH was invalid.)
  * `invalid_foreign_receiving_dfi_identification` (Code R82. A rare return reason. The foreign receiving bank identifier for an International ACH Transfer was invalid.)
  * `invalid_individual_id_number` (Code R22. A rare return reason. The Individual ID number field of the ACH was invalid.)
  * `item_and_rck_entry_presented_for_payment` (Code R53. A rare return reason. Both the Represented Check ("RCK") entry and the original check were presented to the bank.)
  * `item_related_to_rck_entry_is_ineligible` (Code R51. A rare return reason. The Represented Check ("RCK") entry is ineligible.)
  * `mandatory_field_error` (Code R26. A rare return reason. The ACH is missing a required field.)
  * `misrouted_dishonored_return` (Code R71. A rare return reason. The receiving bank does not recognize the routing number in a dishonored return entry.)
  * `misrouted_return` (Code R61. A rare return reason. The receiving bank does not recognize the routing number in a return entry.)
  * `no_errors_found` (Code R76. A rare return reason. Sent in response to a return, the bank does not find the errors alleged by the returning bank.)
  * `non_acceptance_of_r62_dishonored_return` (Code R77. A rare return reason. The receiving bank does not accept the return of the erroneous debit. The funds are not available at the receiving bank.)
  * `non_participant_in_iat_program` (Code R81. A rare return reason. The receiving bank does not accept International ACH Transfers.)
  * `permissible_return_entry` (Code R31. A rare return reason. A return that has been agreed to be accepted by the receiving bank, despite falling outside of the usual return timeframe.)
  * `permissible_return_entry_not_accepted` (Code R70. A rare return reason. The receiving bank had not approved this return.)
  * `rdfi_non_settlement` (Code R32. A rare return reason. The receiving bank could not settle this transaction.)
  * `rdfi_participant_in_check_truncation_program` (Code R30. A rare return reason. The receiving bank does not accept Check Truncation ACH transfers.)
  * `representative_payee_deceased_or_unable_to_continue_in_that_capacity` (Code R14. A rare return reason. The payee is deceased.)
  * `return_not_a_duplicate` (Code R75. A rare return reason. The originating bank disputes that an earlier `duplicate_entry` return was actually a duplicate.)
  * `return_of_erroneous_or_reversing_debit` (Code R62. A rare return reason. The originating financial institution made a mistake and this return corrects it.)
  * `return_of_improper_credit_entry` (Code R36. A rare return reason. Return of a malformed credit entry.)
  * `return_of_improper_debit_entry` (Code R35. A rare return reason. Return of a malformed debit entry.)
  * `return_of_xck_entry` (Code R33. A rare return reason. Return of a destroyed check ("XCK") entry.)
  * `source_document_presented_for_payment` (Code R37. A rare return reason. The source document related to this ACH, usually an ACH check conversion, was presented to the bank.)
  * `state_law_affecting_rck_acceptance` (Code R50. A rare return reason. State law prevents the bank from accepting the Represented Check ("RCK") entry.)
  * `stop_payment_on_item_related_to_rck_entry` (Code R52. A rare return reason. A stop payment was issued on a Represented Check ("RCK") entry.)
  * `stop_payment_on_source_document` (Code R38. A rare return reason. The source attached to the ACH, usually an ACH check conversion, includes a stop payment.)
  * `timely_original_return` (Code R73. A rare return reason. The bank receiving an `untimely_return` believes it was on time.)
  * `trace_number_error` (Code R27. A rare return reason. An ACH return's trace number does not match an originated ACH.)
  * `untimely_dishonored_return` (Code R72. A rare return reason. The dishonored return was sent too late.)
  * `untimely_return` (Code R68. A rare return reason. The return was sent too late.)

## Sandbox: Settle an ACH Transfer
POST /simulations/ach_transfers/{ach_transfer_id}/settle
> Simulates the settlement of an [ACH Transfer](#ach-transfers) by the Federal Reserve. This transfer must first have a `status` of `pending_submission` or `submitted`. For convenience, if the transfer is in `status`: `pending_submission`, the simulation will also submit the transfer. Without this simulation the transfer will eventually settle on its own following the same Federal Reserve timeline as in production. Additionally, you can specify the behavior of the inbound funds hold that is created when the ACH Transfer is settled. If no behavior is specified, the inbound funds hold will be released immediately in order for the funds to be available for use.
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/settle" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "inbound_funds_hold_behavior": "release_immediately"
  }'
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer you wish to become settled.

### Body Parameters
- `inbound_funds_hold_behavior` (enum, optional)
  The behavior of the inbound funds hold that is created when the ACH Transfer is settled. If no behavior is specified, the inbound funds hold will be released immediately in order for the funds to be available for use.
  Cases:
  * `release_immediately` (Release the inbound funds hold immediately.)
  * `release_on_default_schedule` (Release the inbound funds hold on the default schedule.)

## Sandbox: Submit an ACH Transfer
POST /simulations/ach_transfers/{ach_transfer_id}/submit
> Simulates the submission of an [ACH Transfer](#ach-transfers) to the Federal Reserve. This transfer must first have a `status` of `pending_approval` or `pending_submission`. In production, Increase submits ACH Transfers to the Federal Reserve three times per day on weekdays. Since sandbox ACH Transfers are not submitted to the Federal Reserve, this endpoint allows you to skip that delay and transition the ACH Transfer to a status of `submitted`.
### Example
```curl
curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/submit" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
```
### Path Parameters
- `ach_transfer_id` (string, required)
  The identifier of the ACH Transfer you wish to submit.