---
title: "Transfer Positions Externally (ACATS, ATON, FOP, DWAC, Complex Asset Transfer)"
method: POST
path: "/gw/api/v1/external-asset-transfers"
tags: ["accountManagementBanking"]
---

# Transfer Positions Externally (ACATS, ATON, FOP, DWAC, Complex Asset Transfer)

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

Initiate request to submit external position transfer. Methods- ACATS, ATON, Basic FOP, FOP, DWAC. 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` 'DWAC' | 'FOP' | 'COMPLEX_ASSET_TRANSFER' | 'EXTERNAL_POSITION_TRANSFER', required
  - `instruction` union, required
    - FopInstruction
      - `clientInstructionId` number, double, required
      - `direction` 'IN' | 'OUT', required
      - `accountId` string, required
      - `contraBrokerAccountId` string, required
      - `contraBrokerDtcCode` string, required
      - `quantity` number, double, required
      - `tradingInstrument` union, required
        - TradingInstrument0
          - `conid` number, double, required
        - TradingInstrument1
          - `tradingInstrumentDescription` TradingInstrumentOneOf1TradingInstrumentDescription, required
            - `securityIdType` 'CUSIP' | 'ISIN' | 'CASH', required
            - `securityId` string, required
            - `assetType` 'STK' | 'CASH' | 'UNKNOWN' | 'BILL' | 'BOND' | 'FUND' | 'OPT' | 'WAR', required
    - DwacInstruction
      - `clientInstructionId` number, double, required
      - `direction` 'IN', required
      - `accountId` string, required
      - `contraBrokerAccountId` string, required
      - `contraBrokerTaxId` string, required
      - `quantity` number, double, required
      - `tradingInstrument` union, required
        - TradingInstrument0
          - `conid` number, double, required
        - TradingInstrument1
          - `tradingInstrumentDescription` TradingInstrumentOneOf1TradingInstrumentDescription, required
            - `securityIdType` 'CUSIP' | 'ISIN' | 'CASH', required
            - `securityId` string, required
            - `assetType` 'STK' | 'CASH' | 'UNKNOWN' | 'BILL' | 'BOND' | 'FUND' | 'OPT' | 'WAR', required
      - `accountTitle` string
      - `referenceId` string
    - ComplexAssetTransferInstruction
      - `clientInstructionId` number, double, required
      - `direction` 'IN' | 'OUT', required
      - `accountId` string, required
      - `accountIdAtCurrentBroker` string
      - `quantity` number, double, required
      - `tradingInstrument` union, required
        - TradingInstrument0
          - `conid` number, double, required
        - TradingInstrument1
          - `tradingInstrumentDescription` TradingInstrumentOneOf1TradingInstrumentDescription, required
            - `securityIdType` 'CUSIP' | 'ISIN' | 'CASH', required
            - `securityId` string, required
            - `assetType` 'STK' | 'CASH' | 'UNKNOWN' | 'BILL' | 'BOND' | 'FUND' | 'OPT' | 'WAR', required
      - `contraBrokerInfo` ContraBrokerInfo, required
        - `accountType` string, required
        - `brokerName` string, required
        - `depositoryId` string
        - `brokerAccountId` string, required
        - `country` string, required
        - `contactName` string
        - `contactEmail` string, required
        - `contactPhone` string, required
        - `accountTitle` string
      - `nonDisclosedDetail` NonDisclosedDetail
        - `tradeDate` string, required
        - `settleDate` string, required
        - `psetBic` string
        - `reagDeagBic` string
        - `buyerSellBic` string
        - `memberAccountId` string
        - `safeKeepingAccountId` string
    - ExternalPositionTransfer
      - `clientInstructionId` number, double, required
      - `type` 'FULL', required
      - `subType` 'ACATS' | 'ATON', required
      - `brokerId` string, required
      - `brokerName` string, required
      - `accountAtBroker` string, required
      - `sourceIRAType` 'RO' | 'RI' | 'RT' | 'SP' | 'ED' | 'TH' | 'RH' | 'SH'
      - `accountId` string, required
      - `signature` string, required

## 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)
