---
title: "Transfer Cash Externally"
method: POST
path: "/gw/api/v1/external-cash-transfers"
tags: ["accountManagementBanking"]
---

# Transfer Cash Externally

`POST /gw/api/v1/external-cash-transfers`

Initiate request to deposit or withdrawal between IBKR account and bank account. More information on transfer methods can be found here - https://www.interactivebrokers.com/campus/trading-lessons/cash-and-position-transfers<br><br>**Scope**: `transfers.write`<br>**Security Policy**: `Signed JWT`

## Path parameters

- `client-id` string, required

## Request body

- object
  - `instructionType` 'DEPOSIT' | 'WITHDRAWAL', required
  - `instruction` union, required
    - DepositFundsInstruction
      - `clientInstructionId` number, double, required
      - `accountId` string, required
      - `currency` string, required
      - `amount` number, double, required
      - `bankInstructionMethod` 'ACH' | 'WIRE' | 'eDDA' | 'OPEN_BANKING', required
      - `openBanking` DepositFundsInstructionOpenBanking
        - `serviceProvider` 'PLAID', required
        - `plaidOptions` DepositFundsInstructionOpenBankingPlaidOptions
          - `completionRedirectUri` string — This should be a URI with a custom scheme and this can be any value you'd like, as long as it isn't a reserved one such as http or tel. By convention, it's often one associated with the name of your application.
          - `linkDisplayName` string — Client Name displayed on Plaid Link UI
          - `isMobileApp` boolean
      - `sendingInstitution` string
      - `identifier` string — Represents the remitter's bank account number. This field is mandatory for WIRE deposits with following currencies: ILS, AED, AUD, and INR.
      - `specialInstruction` string
      - `bankInstructionName` string
      - `senderInstitutionName` string
      - `iraDepositDetail` DepositFundsInstructionIraDepositDetail
        - `iraContributionType` 'ROLLOVER' | 'LATE_ROLLOVER' | 'DIRECT_ROLLOVER' | 'CONTRIBUTION' | 'SPOUSAL_CONTRIBUTION' | 'EMPLOYER_SEP_CONTRIBUTION', required
        - `iraTaxYearType` 'CURRENT' | 'PRIOR', required
        - `fromIraType` 'NONE' | 'TRADITIONAL' | 'ROLLOVER' | 'ROTH' | 'SEP' | 'EDUCATION' | 'TRADITIONAL_INHERITED' | 'ROTH_INHERITED' | 'SEP_INHERITED' | 'RETIREMENT_SAVING_PLAN' | 'SPOUSAL_RETIREMENT_SAVING_PLAN' | 'TAX_FREE_SAVING_ACCOUNT', required
      - `recurringInstructionDetail` RecurringInstructionDetail
        - `instructionName` string, required
        - `frequency` 'MONTHLY' | 'QUARTERLY' | 'YEARLY', required
        - `startDate` string, required
        - `endDate` string
    - WithdrawFundsInstruction
      - `clientInstructionId` number, double, required
      - `accountId` string, required
      - `currency` string, required
      - `amount` number, double, required
      - `bankInstructionName` string, required
      - `bankInstructionMethod` 'ACH' | 'WIRE' | 'SEPA', required
      - `dateTimeToOccur` string, date-time
      - `iraWithdrawalDetail` WithdrawFundsInstructionIraWithdrawalDetail
        - `fedIncomeTaxPercentage` number, double, required
        - `stateIncomeTaxPercentage` number, double, required
        - `stateCd` string, required
        - `iraWithholdType` 'DIRECT_ROLLOVER' | 'ROTH_DISTRIBUTION' | 'NORMAL' | 'EARLY' | 'DEATH' | 'EXCESS_CY' | 'EXCESS_PY' | 'EXCESS_SC', required
      - `recurringInstructionDetail` RecurringInstructionDetail
        - `instructionName` string, required
        - `frequency` 'MONTHLY' | 'QUARTERLY' | 'YEARLY', required
        - `startDate` string, required
        - `endDate` string

## Response `202`

Accepts request to create a new instruction asynchronously

- AsynchronousInstructionResponse
  - `status` number, double, required
  - `instructionSetId` number, double, required
  - `instructionResult` InstructionResult
    - `clientInstructionId` number, double, required
    - `instructionType` 'ACH_INSTRUCTION' | 'CANCEL_INSTRUCTION' | 'COMPLEX_ASSET_TRANSFER' | 'DELETE_BANK_INSTRUCTION' | 'DEPOSIT' | 'DWAC' | 'EXTERNAL_POSITION_TRANSFER' | 'FOP' | 'QUERY_RECENT_INSTRUCTIONS' | 'QUERY_WITHDRAWABLE_FUNDS' | 'INTERNAL_POSITION_TRANSFER' | 'INTERNAL_CASH_TRANSFER' | 'MICRO_AMOUNT' | 'PREDEFINED_DESTINATION_INSTRUCTION' | 'TRADITIONAL_BANK_INSTRUCTION_VERIFICATION' | 'WITHDRAWAL' | 'QUERY_IRA_CONTRIBUTIONS' | 'EDDA_INSTRUCTION' | 'QUERY_RECENT_RECURRING_EVENTS' | 'QUERY_RECURRING_INSTRUCTIONS' | 'QUERY_ACCOUNT_BALANCES' | 'QUERY_BANK_INSTRUCTION' | 'QUERY_WITHDRAWABLE_CASH_EQUITY', required
    - `instructionStatus` 'PENDING' | 'PROCESSED' | 'REJECTED' | 'PENDING_VERIFICATION', required
    - `instructionId` number, double, required
    - `ibReferenceId` number, double
    - `description` string

## Other responses

- `400` — Returns a Problem detail instance representing a bad request.
- `403` — Returns a Problem detail instance representing a forbidden request.
- `422` — Returns a Problem detail instance representing a business error.
- `500` — Returns a Problem detail instance representing an internal server error.

---

[API](https://skmtc.net/interactivebrokers/apis/api-reference.md) · [All operations](https://skmtc.net/interactivebrokers/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/interactivebrokers/api-reference/revisions/67f9f562c2c6/schema)
