---
title: "Cancel a pending ACH Transfer"
method: POST
path: "/ach_transfers/{ach_transfer_id}/cancel"
---

# Cancel a pending ACH Transfer

`POST /ach_transfers/{ach_transfer_id}/cancel`

Cancels an ACH Transfer in a pending_approval state.

## Path parameters

- `ach_transfer_id` string, required — The identifier of the pending ACH Transfer to cancel.

## Response `200`

ACH Transfer

- AchTransfer — ACH transfers move funds between your Increase account and any other account accessible by the Automated Clearing House (ACH).
  - `account_id` string, required — The Account to which the transfer belongs.
  - `account_number` string, required — The receiver's account number.
  - `acknowledgement` object, nullable, required — 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.
    - `acknowledged_at` string, required — When the Federal Reserve acknowledged the submitted file containing this transfer.
  - `addenda` object, nullable, required — Additional information that will be sent to the recipient.
    - `category` 'freeform' | 'payment_order_remittance_advice' | 'other', required — 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.
    - `freeform` object, nullable — Unstructured `payment_related_information` passed through with the transfer.
      - `entries` object[], required — Each entry represents an addendum sent with the transfer.
        - `payment_related_information` string, required — The payment related information passed in the addendum.
    - `payment_order_remittance_advice` object, nullable — Structured ASC X12 820 remittance advice records. Please reach out to [support@increase.com](mailto:support@increase.com) for more information.
      - `invoices` object[], required — ASC X12 RMR records for this specific transfer.
        - `invoice_number` string, required — The invoice number for this reference, determined in advance with the receiver.
        - `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 indicates a credit transfer pushing funds to the receiving account. A negative amount indicates a debit transfer pulling funds from the receiving account.
  - `approval` object, nullable, required — If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval.
    - `approved_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was approved.
    - `approved_by` string, nullable, required — If the Transfer was approved by a user in the dashboard, the email address of that user.
  - `cancellation` object, nullable, required — If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation.
    - `canceled_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the Transfer was canceled.
    - `canceled_by` string, nullable, required — If the Transfer was canceled by a user in the dashboard, the email address of that user.
  - `company_descriptive_date` string, nullable, required — The description of the date of the transfer.
  - `company_discretionary_data` string, nullable, required — The data you chose to associate with the transfer.
  - `company_entry_description` string, nullable, required — The description of the transfer you set to be shown to the recipient.
  - `company_id` string, required — The company ID associated with the transfer.
  - `company_name` string, nullable, required — The name by which the recipient knows you.
  - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was created.
  - `created_by` object, nullable, required — What object created the transfer, either via the API or the dashboard.
    - `api_key` object, nullable — If present, details about the API key that created the transfer.
      - `description` string, nullable, required — The description set for the API key when it was created.
    - `category` 'api_key' | 'oauth_application' | 'user', required — The type of object that created this transfer.
    - `oauth_application` object, nullable — If present, details about the OAuth Application that created the transfer.
      - `name` string, required — The name of the OAuth Application.
    - `user` object, nullable — If present, details about the User that created the transfer.
      - `email` string, required — The email address of the User.
  - `currency` 'USD', required — 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`.
  - `destination_account_holder` 'business' | 'individual' | 'unknown', required — The type of entity that owns the receiver's account.
  - `external_account_id` string, nullable, required — The identifier of the External Account the transfer was made to, if any.
  - `funding` 'checking' | 'savings' | 'loan' | 'general_ledger', required — The type of the receiver's bank account.
  - `id` string, required — The ACH transfer's identifier.
  - `idempotency_key` string, nullable, required — 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` InboundFundsHold, required — We hold funds for certain transaction types to account for return windows where funds might still be clawed back by the sending institution.
    - `amount` integer, required — The held amount in the minor unit of the account's currency. For dollars, for example, this is cents.
    - `automatically_releases_at` string, date-time, required — When the hold will be released automatically. Certain conditions may cause it to be released before this time.
    - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the hold was created.
    - `currency` 'USD', required — The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the hold's currency.
    - `held_transaction_id` string, nullable, required — The ID of the Transaction for which funds were held.
    - `pending_transaction_id` string, nullable, required — The ID of the Pending Transaction representing the held funds.
    - `released_at` string, date-time, nullable, required — When the hold was released (if it has been released).
    - `status` 'held' | 'complete', required — The status of the hold.
    - `type` 'inbound_funds_hold', required — A constant representing the object's type. For this resource it will always be `inbound_funds_hold`.
  - `individual_id` string, nullable, required — Your internal identifier for the transfer recipient. This value is informational and not verified by the recipient's bank.
  - `individual_name` string, nullable, required — The name of the transfer recipient. This value is informational and not verified by the recipient's bank.
  - `network` 'ach', required — The transfer's network.
  - `notifications_of_change` object[], required — If the receiving bank notifies that future transfers should use different details, this will contain those details.
    - `change_code` 'incorrect_account_number' | 'incorrect_routing_number' | 'incorrect_routing_number_and_account_number' | 'incorrect_transaction_code' | 'incorrect_account_number_and_transaction_code' | 'incorrect_routing_number_account_number_and_transaction_code' | 'incorrect_receiving_depository_financial_institution_identification' | 'incorrect_individual_identification_number' | 'addenda_format_error' | 'incorrect_standard_entry_class_code_for_outbound_international_payment' | 'misrouted_notification_of_change' | 'incorrect_trace_number' | 'incorrect_company_identification_number' | 'incorrect_identification_number' | 'incorrectly_formatted_corrected_data' | 'incorrect_discretionary_data' | 'routing_number_not_from_original_entry_detail_record' | 'depository_financial_institution_account_number_not_from_original_entry_detail_record' | 'incorrect_transaction_code_by_originating_depository_financial_institution', required — The required type of change that is being signaled by the receiving financial institution.
    - `corrected_account_funding` 'checking' | 'savings' | 'loan' | 'general_ledger', nullable, required — The corrected account funding type that should be used in future ACHs to this account. This is derived from the corrected transaction code.
    - `corrected_account_number` string, nullable, required — The corrected account number that should be used in future ACHs to this account.
    - `corrected_individual_id` string, nullable, required — The corrected individual identifier that should be used in future ACHs.
    - `corrected_routing_number` string, nullable, required — The corrected routing number that should be used in future ACHs to this account.
    - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the notification occurred.
  - `pending_transaction_id` string, nullable, required — 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` object, required — 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.
    - `date` string, date, nullable, required — A specific date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format to use as the effective date when submitting this transfer.
    - `settlement_schedule` 'same_day' | 'future_dated', nullable, required — A schedule by which Increase will choose an effective date for the transfer.
  - `return` object, nullable, required — If your transfer is returned, this will contain details of the return.
    - `addenda_information` string, nullable, required — Additional free-form information included by the receiving bank in the return's addenda record. This is raw, uninterpreted text whose presence and format are not guaranteed. For a `file_record_edit_criteria` (R17) return the receiving bank may set this to `QUESTIONABLE` (optionally followed by more text) to indicate it believes the transfer was initiated under questionable circumstances.
    - `created_at` string, date-time, required — The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the transfer was created.
    - `raw_return_reason_code` string, required — The three character ACH return code, in the range R01 to R85.
    - `return_reason_code` 'insufficient_fund' | 'no_account' | 'account_closed' | 'invalid_account_number_structure' | 'account_frozen_entry_returned_per_ofac_instruction' | 'credit_entry_refused_by_receiver' | 'unauthorized_debit_to_consumer_account_using_corporate_sec_code' | 'corporate_customer_advised_not_authorized' | 'payment_stopped' | 'non_transaction_account' | 'uncollected_funds' | 'routing_number_check_digit_error' | 'customer_advised_unauthorized_improper_ineligible_or_incomplete' | 'amount_field_error' | 'authorization_revoked_by_customer' | 'invalid_ach_routing_number' | 'file_record_edit_criteria' | 'enr_invalid_individual_name' | 'returned_per_odfi_request' | 'limited_participation_dfi' | 'incorrectly_coded_outbound_international_payment' | 'account_sold_to_another_dfi' | 'addenda_error' | 'beneficiary_or_account_holder_deceased' | 'customer_advised_not_within_authorization_terms' | 'corrected_return' | 'duplicate_entry' | 'duplicate_return' | 'enr_duplicate_enrollment' | 'enr_invalid_dfi_account_number' | 'enr_invalid_individual_id_number' | 'enr_invalid_representative_payee_indicator' | 'enr_invalid_transaction_code' | 'enr_return_of_enr_entry' | 'enr_routing_number_check_digit_error' | 'entry_not_processed_by_gateway' | 'field_error' | 'foreign_receiving_dfi_unable_to_settle' | 'iat_entry_coding_error' | 'improper_effective_entry_date' | 'improper_source_document_source_document_presented' | 'invalid_company_id' | 'invalid_foreign_receiving_dfi_identification' | 'invalid_individual_id_number' | 'item_and_rck_entry_presented_for_payment' | 'item_related_to_rck_entry_is_ineligible' | 'mandatory_field_error' | 'misrouted_dishonored_return' | 'misrouted_return' | 'no_errors_found' | 'non_acceptance_of_r62_dishonored_return' | 'non_participant_in_iat_program' | 'permissible_return_entry' | 'permissible_return_entry_not_accepted' | 'rdfi_non_settlement' | 'rdfi_participant_in_check_truncation_program' | 'representative_payee_deceased_or_unable_to_continue_in_that_capacity' | 'return_not_a_duplicate' | 'return_of_erroneous_or_reversing_debit' | 'return_of_improper_credit_entry' | 'return_of_improper_debit_entry' | 'return_of_xck_entry' | 'source_document_presented_for_payment' | 'state_law_affecting_rck_acceptance' | 'stop_payment_on_item_related_to_rck_entry' | 'stop_payment_on_source_document' | 'timely_original_return' | 'trace_number_error' | 'untimely_dishonored_return' | 'untimely_return', required — Why the ACH Transfer was returned. This reason code is sent by the receiving bank back to Increase.
    - `trace_number` string, required — 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.
    - `transaction_id` string, required — The identifier of the Transaction associated with this return.
    - `transfer_id` string, required — The identifier of the ACH Transfer associated with this return. This matches the original Transaction's `source.ach_transfer_intention.transfer_id`.
  - `routing_number` string, required — The American Bankers' Association (ABA) Routing Transit Number (RTN) of the receiver's bank.
  - `settlement` object, nullable, required — A subhash containing information about when and how the transfer settled at the Federal Reserve.
    - `settled_at` string, date-time, required — When the funds for this transfer have settled at the destination bank at the Federal Reserve.
  - `standard_entry_class_code` 'corporate_credit_or_debit' | 'corporate_trade_exchange' | 'prearranged_payments_and_deposit' | 'internet_initiated', required — The [Standard Entry Class (SEC) code](/documentation/ach-standard-entry-class-codes) to use for the transfer.
  - `statement_descriptor` string, required — The descriptor that will show on the recipient's bank statement.
  - `status` 'pending_approval' | 'pending_transfer_session_confirmation' | 'canceled' | 'pending_submission' | 'pending_reviewing' | 'requires_attention' | 'rejected' | 'submitted' | 'returned', required — The lifecycle status of the transfer.
  - `submission` object, nullable, required — 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).
    - `administrative_returns_expected_by` string, date-time, required — 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.".
    - `effective_date` string, date, required — 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.
    - `expected_funds_settlement_at` string, date-time, required — 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).
    - `expected_settlement_schedule` 'same_day' | 'future_dated', required — 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.
    - `submitted_at` string, date-time, required — When the ACH transfer was sent to FedACH.
    - `trace_number` string, required — 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, required — The ID for the transaction funding the transfer.
  - `type` 'ach_transfer', required — A constant representing the object's type. For this resource it will always be `ach_transfer`.

## Other responses

- `4XX` — Error
- `5XX` — Error

---

[API](https://skmtc.net/increase/apis/increase-api-2.md) · [All operations](https://skmtc.net/increase/apis/increase-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/increase/increase-api-2/versions/c6111f49e8b7/schema)
