---
title: "Create Internal Asset Transfer"
method: POST
path: "/asset-transfers/transfers"
tags: ["Asset Transfer"]
---

# Create Internal Asset Transfer

`POST /asset-transfers/transfers`

The Internal Transfers API is a system that facilitates the transfer of cash and/or securities from one account to another at the same brokerage firm or bank. The transfers are permitted only if both accounts are under the same ownership.

## Request body

- union — Internal Transfers Request model. For FULL transfers, cash and positions must not be provided. For PARTIAL transfers, at least one of cash or positions must be provided.
  - InternalTransferFullRequest
    - `source` string — The user's unique account number, that is human readable.
    - `destination` string — The DriveWealth destination account number where all assets will be transferred to.
    - `comment` string — A way to store a message/comment on the this object.
    - `metadata` Metadata — The metadata object allows for creating a maximum of 5 keys (max 36 characters) and each value cannot exceed more than 128 bytes.
  - InternalTransferPartialRequest
    - `source` string — The user's unique account number, that is human readable.
    - `destination` string — The DriveWealth destination account number where all assets will be transferred to.
    - `comment` string — A way to store a message/comment on the this object.
    - `metadata` Metadata — The metadata object allows for creating a maximum of 5 keys (max 36 characters) and each value cannot exceed more than 128 bytes.

## Response `200`

Initiating a transfer was successful

- InternalTransferCreatedResponseModel
  - `id` string — The unique identifier of the internal transfer.
  - `status` string — The status of the internal transfer.
  - `source` string — The user's unique account number, that is human readable.
  - `sourceAccountID` string — It's a unique source account id, that is human readable.
  - `destination` string — The user's unique account number, that is human readable.
  - `destinationAccountID` string — It's a unique destination account id, that is human readable.
  - `clearingNo` string — The DTCC clearing number of the broker. Refer DTCC broker API to fetch full supported list.
  - `transferType` object
    - `name` 'FULL' | 'PARTIAL' — The type of internal transfer to be performed.
    - `description` string
  - `partner` ParentIBIDObject
    - `id` string — The unique identifier of an associated organization.
    - `name` string — The organization name.
  - `cash` number — The cash amount to be transferred.
  - `incomingCash` number — The incoming cash amount to be transferred.
  - `outgoingCash` number — The outgoing cash amount to be transferred.
  - `positions` AcatLoadingPosition[]
    - `symbol` string — It can be empty if asset is not supported by DW.
    - `cusip` string — The CUSIP of the asset to be transferred.
    - `quantity` integer — The quantity of the asset to be transferred.
    - `instrumentType` 'EQUITY' | 'ALTERNATIVE_ASSET' | 'MUTUAL_FUND' | 'DEBT' | 'OPTION' | 'CRYPTO' — The classification of the instrument.
  - `incomingPositions` AcatLoadingPosition[]
    - `symbol` string — It can be empty if asset is not supported by DW.
    - `cusip` string — The CUSIP of the asset to be transferred.
    - `quantity` integer — The quantity of the asset to be transferred.
    - `instrumentType` 'EQUITY' | 'ALTERNATIVE_ASSET' | 'MUTUAL_FUND' | 'DEBT' | 'OPTION' | 'CRYPTO' — The classification of the instrument.
  - `outgoingPositions` AcatLoadingPosition[]
    - `symbol` string — It can be empty if asset is not supported by DW.
    - `cusip` string — The CUSIP of the asset to be transferred.
    - `quantity` integer — The quantity of the asset to be transferred.
    - `instrumentType` 'EQUITY' | 'ALTERNATIVE_ASSET' | 'MUTUAL_FUND' | 'DEBT' | 'OPTION' | 'CRYPTO' — The classification of the instrument.
  - `comment` string — A way to store a message/comment on the this object.
  - `metadata` Metadata — The metadata object allows for creating a maximum of 5 keys (max 36 characters) and each value cannot exceed more than 128 bytes.
  - `created` string, date-time
  - `updated` string, date-time
  - `auditDetails` AuditDetails[] — Audit of Transfer status changes
    - `status` 'STARTED' | 'PENDING' | 'FAILED' | 'SUCCESSFUL' | 'ON_HOLD'
    - `comment` string — A way to store a message/comment on the this object.
    - `updatedBy` string — The user who updated the status.
    - `timestamp` string, date-time — Status update timestamp

## Other responses

- `400` — Bad Request
- `403` — Forbidden

---

[API](https://skmtc.net/drivewealth/apis/authentication-apis.md) · [All operations](https://skmtc.net/drivewealth/apis/authentication-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/drivewealth/authentication-apis/revisions/9fced6d0ac41/schema)
