DriveWealth Asset Transfer API
The Asset Transfer API from DriveWealth — 4 operation(s) for asset transfer.
The Asset Transfer API from DriveWealth — 4 operation(s) for asset transfer.
openapi: 3.0.2
info:
title: DriveWealth Accounts Asset Transfer API
version: '1.0'
servers:
- url: https://bo-api.drivewealth.io/back-office
description: Sandbox server (Uses test data)
- url: https://bo-api.drivewealth.net/back-office
description: Production Server (Uses LIVE data)
tags:
- name: Asset Transfer
x-displayName: Asset Transfer
paths:
/asset-transfers/acats:
post:
tags:
- Asset Transfer
summary: Create ACATS Transfer
responses:
'200':
description: Initiating a transfer was successful
content:
application/json:
schema:
$ref: '#/components/schemas/ACATSTransferCreatedResponseModel'
examples:
ACATS Transfer (Full):
value:
id: acats_41eb5bdd-8ce2-4471-8fc6-9892da089cd1
source: BROKER0001
sourceAccountID: d6a776bc-be5c-47df-94eb-baf914f1847c.1738660911962
destination: DWXR001004
destinationAccountID: c815c129-27cd-46f2-b316-ab6bde9aff62.1737384219426
clearingNo: '0001'
status:
name: PENDING
description: Asset transfer request is pending
type:
name: ACAT
description: ACAT transfer
acatType:
name: FULL
description: Full Acats Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
positions: []
metadata: {}
auditDetails:
- timestamp: '2023-07-28T23:56:10.507Z'
status:
name: STARTED
description: Asset transfer request has been initiated.
comment: Transfer request has been submitted in queue
- timestamp: '2023-07-28T23:56:10.645Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: <string>
created: '2023-07-28T23:56:10.491Z'
updated: '2023-07-28T23:56:10.667Z'
ACATS Transfer (Partial):
value:
id: acats_45dc50ac-3daa-484d-98cb-5264abb51d86
source: FOLIO123
sourceAccountID: d6a776bc-be5c-47df-94eb-baf914f1847c.1738660911962
destination: DWKN000094
destinationAccountID: c815c129-27cd-46f2-b316-ab6bde9aff62.1737384219426
clearingNo: '0001'
status:
name: STARTED
description: Asset transfer request has been initiated.
acatType:
name: PARTIAL
description: Partial Acats Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
cash: 10
positions:
- symbol: META
instrumentID: 4312a85c-93ba-4adb-b50d-cc7973243a53
quantity: 1
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseModel'
examples:
Invalid accountNo on request body:
value:
errorCode: A012
message: A required accountNo is missing or invalid. Refer to the API documentation for details.
errorDetails:
field: destination
type: STRING
Source and Destination are same:
value:
errorCode: E032
message: 'Invalid or missing parameters in the request body. Refer to the API documentation for details. Details: Source can''t be DW account'
Destination account is not approved:
value:
errorCode: T005
message: ACAT Transfer cannot initiate. Destination account is not approved.
Invalid Symbol:
value:
errorCode: E032
message: 'Invalid or missing parameters in the request body. Refer to the API documentation for details. Details: Symbol is not active or invalid.'
errorDetails:
field: positions.symbol
type: ARRAY
Invalid clearing broker:
value:
errorCode: E032
message: Invalid or missing parameters in the request body. Refer to the API documentation for details.
errorDetails:
detail: 'Refer supported DTCC Broker list on API documentation. '
field: brokerCode
type: STRING
Cash Should be Greater Than 0 400 Bad:
value:
errorCode: E032
message: Invalid or missing parameters in the request body. Refer to the API documentation for details.
errorDetails:
detail: cash should greater than 0
field: cash
type: DECIMAL
Invalid Symbol in Partial Acats Transfer 400 Bad:
value:
errorCode: I019
message: Invalid symbol(s) in the request body.
errorDetails:
detail: Invalid value for AMZ
field: positions.symbol
type: STRING
Positions Required on Partial Acat Transfer 400 Bad:
value:
errorCode: E032
message: Invalid or missing parameters in the request body. Refer to the API documentation for details.
errorDetails:
field: positions
type: OBJECT
Acat Type is Missing 400 Bad:
value:
errorCode: E032
message: Invalid or missing parameters in the request body. Refer to the API documentation for details.
errorDetails:
detail: PARTIAL, FULL
field: type
type: ENUM
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AcatsCreateRequestModel'
description: The Automated Customer Account Transfer Service (ACATS) is a system that facilitates the transfer of securities from one trading account to another at a different brokerage firm or bank.
security:
- bearerAuth: []
dwAppKey: []
- sessionToken: []
dwAppKey: []
/asset-transfers/minor-graduation:
post:
tags:
- Asset Transfer
summary: Create Minor Graduation Transfer
responses:
'200':
description: Initiating a transfer was successful
content:
application/json:
schema:
$ref: '#/components/schemas/GenericTransferResponseModel'
examples:
Minor Graduation Created:
value:
id: grad_28d08c72-3d0f-4c6e-8961-2dc6491c28a8
source: LKGE000001
destination: LKKZ000004
status:
name: STARTED
description: Asset transfer request has been initiated.
type:
name: TEEN
description: Teen Account Transfer
created: '2023-07-26T14:05:18.518Z'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseModel'
examples:
Validate Source accountNo 400 Bad:
value:
errorCode: E033
message: Invalid parameter in message body. Refer to the API documentation for details.
errorDetails:
field: source
type: STRING
Validate Destination accountNo 400 Bad:
value:
errorCode: E033
message: Invalid parameter in message body. Refer to the API documentation for details.
errorDetails:
field: destination
type: STRING
Source and Destination account can't be same in transfer 400 Bad:
value:
errorCode: E032
message: 'Invalid or missing parameters in the request body. Refer to the API documentation for details. Details: Source and Destination accounts can''t be same.'
Destination account should be OPEN 400 Bad:
value:
errorCode: U072
message: 'User is not allowed to access this resource. Forbidden: LKAF000023 should be OPEN in order to initiate the transfer.'
Source account should be OPEN 400 Bad:
value:
errorCode: T004
message: 'Assets Transfer cannot initiate. Details: LKKZ000021 has PENDING account status, user can''t initiate the transfer. Please contact support.'
Source account has no cash and positions both 400 Bad:
value:
errorCode: T004
message: 'Assets Transfer cannot initiate. Details: LKMA000035 has no cash or positions, user can''t initiate the transfer. Please contact support.'
Missing Authorized User on Teen Account 400 Bad:
value:
errorCode: A022
message: Authorized user on account is missing. Refer to the API documentation for the details.
Duplicate Minor Asset Transfer Request 400 Bad:
value:
errorCode: E020
message: 'Value is already exists. Details: Assets transfer request is already exist for LKNS000023'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MinorCreateRequestModel'
examples:
Minor Graduation:
value:
source: LKGE000001
destination: LKKZ000004
comment: Migrating Teen account to Individual account.
metadata: {}
description: If an Account is opened for the purpose of allowing a minor to invest, this API will allow for the transfer of assets from this account to the minor's own named account once they reach the age of majority.
security:
- bearerAuth: []
dwAppKey: []
- sessionToken: []
dwAppKey: []
/asset-transfers/{assetTransferID}:
parameters:
- schema:
type: string
name: assetTransferID
in: path
required: true
get:
tags:
- Asset Transfer
summary: Retrieve Transfer
responses:
'200':
description: OK
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/AcatsTransferGetResponseModel'
- $ref: '#/components/schemas/GenericTransferResponseModel'
examples:
ACATS Transfer (Full):
value:
id: acats_385621f4-ef89-4a4e-8cc1-ef1295549ca4
source: FA-IJKE001
destination: DWWFP000907
destinationAccountID: deb66500-168a-4432-9b1c-05a58e1d563f.1742485154193
clearingNo: '0123'
status:
name: PENDING
description: Asset transfer request is pending
type:
name: ACAT
description: ACAT transfer
acatType:
name: FULL
description: Full Acats Transfer
acatTransit:
name: ACAT_IN
description: Incoming ACAT Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
partner:
id: ac5de50f-2297-e2e7-7b31-2c54872ae231
name: Test
incomingCash: 10000
positions: []
incomingPositions:
- symbol: AMD
cusip: 007903107
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 8
- symbol: SBSI
cusip: 84470P109
instrumentID: 1c6c1625-a84b-4dd3-8146-c6a97cd74bcf
quantity: 7
- symbol: TSLA
cusip: 88160R101
instrumentID: 5b85fabb-a7f6-44e6-d57c-a3efc760226c
quantity: 9
outgoingPositions: []
settlementInfo:
controlNo: '20250320013533'
status724: '310'
status: ACAT_SETTLED
positions:
accepted:
- 007903107
- 84470P109
- 88160R101
cash: 10000
auditDetails:
- timestamp: '2025-03-20T15:39:19.319Z'
status:
name: STARTED
description: Asset transfer request has been initiated.
comment: Transfer request has been submitted in queue
- timestamp: '2025-03-20T15:43:09.252Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: TIF has been created
updatedBy: ACAT_TRANSFER_SYSTEM
- timestamp: '2025-03-20T15:44:26.852Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: Transfer is under review
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
- timestamp: '2025-03-20T15:45:03.041Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '230'
comment: ACAT auto-review completed. Ready for sending to DTCC.
updatedBy: ACAT_REVIEW_SYSTEM
- timestamp: '2023-10-20T18:00:04.185Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '500'
comment: Partial transfer in progress
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
- timestamp: '2023-10-21T00:01:19.340Z'
status:
name: SUCCESSFUL
description: Asset transfer request has been successfully completed
status724: '310'
comment: Transfer Settled
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
created: '2025-03-20T15:39:19.226Z'
updated: '2025-03-20T15:44:27.029Z'
ACATS Transfer (Partial):
value:
id: acats_0a18eea2-c63d-447a-a0f1-1c7d9a08c9da
source: TR6666
destination: FWCT000005
destinationAccountID: c815c129-27cd-46f2-b316-ab6bde9aff62.1737384219426
clearingNo: 0158
status:
name: SUCCESSFUL
description: Asset transfer request has been successfully completed
type:
name: ACAT
description: ACAT transfer
acatType:
name: PARTIAL
description: Partial Acats Transfer
acatTransit:
name: ACAT_IN
description: Incoming Acats Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
partner:
id: 25f77a3e-2a4b-48bf-bea2-1b8bcd541621
name: Stark House
incomingCash: 0
incomingPositions:
- symbol: AMD
cusip: 007903107
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 3
- symbol: SBSI
cusip: 84470P109
instrumentID: 1c6c1625-8146-4dd3-a84b-c6a97cd74bcf
quantity: 56
outgoingPositions: []
settlementInfo:
controlNo: '20250320013533'
status724: '310'
status: ACAT_SETTLED
positions:
accepted:
- 007903107
positions:
- symbol: AMD
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 3
- symbol: SBSI
instrumentID: 1c6c1625-8146-4dd3-a84b-c6a97cd74bcf
quantity: 56
metadata: {}
auditDetails:
- timestamp: '2023-10-20T13:02:50.970Z'
status:
name: STARTED
description: Asset transfer request has been initiated.
comment: Transfer request has been submitted in queue
- timestamp: '2023-10-20T15:00:04.185Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: TIF has been created
updatedBy: ACAT_TRANSFER_SYSTEM
- timestamp: '2023-10-20T17:00:04.185Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '230'
comment: ACAT auto-review completed. Ready for sending to DTCC.
updatedBy: ACAT_REVIEW_SYSTEM
- timestamp: '2023-10-20T18:00:04.185Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '500'
comment: Partial transfer in progress
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
- timestamp: '2023-10-21T00:01:19.340Z'
status:
name: SUCCESSFUL
description: Asset transfer request has been successfully completed
status724: '310'
comment: Transfer Settled
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
created: '2023-10-20T13:02:50.960Z'
updated: '2023-10-21T00:01:19.340Z'
ACATS Transfer accepted:
value:
id: acats_385621f4-ef89-4a4e-8cc1-ef1295549ca4
source: TR6666
destination: DWWFP000907
destinationAccountID: deb66500-168a-4432-9b1c-05a58e1d563f.1742485154193
clearingNo: '0123'
status:
name: PENDING
description: Asset transfer request is pending
type:
name: ACAT
description: ACAT transfer
acatType:
name: FULL
description: Full Acats Transfer
acatTransit:
name: ACAT_IN
description: Incoming ACAT Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
partner:
id: ac5de50f-2297-e2e7-7b31-2c54872ae231
name: Test
incomingCash: 0
positions: []
incomingPositions:
- symbol: AMD
cusip: 007903107
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 3
outgoingPositions: []
settlementInfo:
controlNo: '20250320013533'
status724: '230'
status: ACAT_REVIEW_ACCEPTED
positions:
accepted:
- 007903107
auditDetails:
- timestamp: '2025-03-20T15:39:19.319Z'
status:
name: STARTED
description: Asset transfer request has been initiated.
comment: Transfer request has been submitted in queue
- timestamp: '2025-03-20T15:43:09.252Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: TIF has been created
updatedBy: ACAT_TRANSFER_SYSTEM
- timestamp: '2025-03-20T15:44:26.852Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: Transfer is under review
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
- timestamp: '2025-03-20T15:45:03.041Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '230'
comment: ACAT auto-review completed. Ready for sending to DTCC.
updatedBy: ACAT_REVIEW_SYSTEM
created: '2025-03-20T15:39:19.226Z'
updated: '2025-03-20T15:44:27.029Z'
ACATS Transfer rejected, symbol unsupported:
value:
id: acats_afa75685-370b-4b28-a3d1-3e791797f4e6
source: FAKE001
destination: DWWHA000914
destinationAccountID: deb66500-168a-4432-9b1c-05a58e1d563f.1742496584428
clearingNo: '0123'
status:
name: PENDING
description: Asset transfer request is pending
type:
name: ACAT
description: ACAT transfer
acatType:
name: PARTIAL
description: Partial Acats Transfer
acatTransit:
name: ACAT_IN
description: Incoming ACAT Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
partner:
id: ac5de50f-2297-e2e7-7b31-2c54872ae231
name: Test
incomingCash: 100
positions:
- symbol: AMD
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 15
incomingPositions:
- symbol: AMD
cusip: 007903107
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 3
outgoingPositions: []
settlementInfo:
controlNo: '20250320013538'
status724: '220'
status: ACAT_REVIEW_ERROR
cash: 100
rejectionInfo:
rejected:
007903107: AMD is not supported. EQUITY is not supported.
rejectionCode: SYMBOL_NOT_SUPPORTED
rejectionReason: Instrument not supported
positions:
007903107: AMD is not supported. EQUITY is not supported.
auditDetails:
- timestamp: '2025-03-20T18:54:32.953Z'
status:
name: STARTED
description: Asset transfer request has been initiated.
comment: Transfer request has been submitted in queue
- timestamp: '2025-03-20T18:54:41.967Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: TIF has been created
- timestamp: '2025-03-20T18:56:19.001Z'
status:
name: PENDING
description: Asset transfer request is pending
comment: Transfer is under review
- timestamp: '2025-03-20T18:56:27.547Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '220'
comment: ACAT auto-review completed. Ready for sending to DTCC.
created: '2025-03-20T18:54:32.914Z'
updated: '2025-03-20T18:56:19.148Z'
ACATS Transfer rejected, debit balance:
value:
id: acats_8a83f127-642f-467f-9b3c-499995d20c23
source: FAKE001
destination: DWWNE000902
destinationAccountID: deb66500-168a-4432-9b1c-05a58e1d563f.1742500153887
clearingNo: '0123'
status:
name: PENDING
description: Asset transfer request is pending
type:
name: ACAT
description: ACAT transfer
acatType:
name: PARTIAL
description: Partial Acats Transfer
acatTransit:
name: ACAT_IN
description: Incoming ACAT Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
partner:
id: ac5de50f-2297-e2e7-7b31-2c54872ae231
name: Test
cash: 500
incomingCash: -700
positions:
- symbol: AMD
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 15
incomingPositions:
- symbol: AMD
cusip: 007903107
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 15
outgoingPositions: []
settlementInfo:
controlNo: '20250320013541'
status724: '220'
status: ACAT_REVIEW_ERROR
positions:
accepted:
- 007903107
rejectionInfo:
rejectionCode: MISSING_FUND
rejectionReason: Partial transfer cannot have debit balance.
cash: 700
auditDetails:
- timestamp: '2025-03-20T19:49:18.653Z'
status:
name: STARTED
description: Asset transfer request has been initiated.
comment: Transfer request has been submitted in queue
- timestamp: '2025-03-20T19:50:08.062Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '200'
comment: Transfer is under review
updatedBy: ACAT_STATUS_UPDATE_SYSTEM
- timestamp: '2025-03-20T19:50:32.102Z'
status:
name: PENDING
description: Asset transfer request is pending
status724: '220'
comment: ACAT auto-review completed. Ready for sending to DTCC.
updatedBy: ACAT_REVIEW_SYSTEM
created: '2025-03-20T19:49:18.627Z'
updated: '2025-03-20T19:50:08.308Z'
ACATS Transfer with excluded securities:
value:
id: acats_91bd66d1-85bd-49c7-ae1a-aefb9e77a79e
source: FF-12-001
destination: DWWNE000901
destinationAccountID: deb66500-168a-4432-9b1c-05a58e1d563f.1742499753944
clearingNo: '0123'
status:
name: PENDING
description: Asset transfer request is pending
type:
name: ACAT
description: ACAT transfer
acatType:
name: PARTIAL
description: Partial Acats Transfer
acatTransit:
name: ACAT_IN
description: Incoming ACAT Transfer
sourceAccountType:
name: INDIVIDUAL
description: Individual Account
partner:
id: ac5de50f-2297-e2e7-7b31-2c54872ae231
name: Test
incomingCash: 100
positions:
- symbol: AMD
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 15
incomingPositions:
- symbol: AMD
cusip: 007903107
instrumentID: 0bfd8059-8456-4b1b-1491-b394992409df
quantity: 15
- symbol: ''
cusip: L7066G104
quantity: 21
- symbol: ''
cusip: L8066G104
quantity: 21
- symbol: ''
cusip: L9066G104
quantity: 21
outgoingPositions: []
settlementInfo:
controlNo: '20250320013540'
status724: '230'
status: ACAT_REVIEW_ACCEPTED
positions:
accepted:
- 007903107
excluded:
L7066G104: Offshore MF found and excluded.
L8066G104: Offshore MF found and excluded.
L9066G104: Offshore MF found and excluded.
cash: 100
auditDetails:
- timestamp: '2025-03-20T19:42:38.877Z'
status:
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/drivewealth/refs/heads/main/openapi/drivewealth-asset-transfer-api-openapi.yml