Skip to content

Transfer Position External API (1.0.0)

Use API credentials to view and manage instruments.

Languages
Servers
https://optimalapi-ext.apx.com/transfer/v1/
https://optimalapi-uat-ext.apx.com/transfer/v1/

transferbatch-v1

Initiate a transfer request (between subaccounts or another account holder), view or act upon pending transfers, as well as view historical transfer details.

Operations

Initiate counterparty transfer

Request

Initiate transfer will propose the transaction to the counterparty, after which the counterparty will be prompted to act on the proposal.

Path
ledgerIdentifierstring(uuid)required

Ledger identifier, can be found using /api/ledger endpoint

Example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
Bodyapplication/jsonrequired

Bulk Transfer Request payload

onBehalfOfSrcAcctIdstring

If permitted, allows the caller to initiate transfer batches on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.

requestsArray of objects(InteraccountTransferRequest)

Collection of Transfer requests

curl -i -X POST \
  https://optimalapi-ext.apx.com/transfer/v1/api/ledger/4b7375e9-79b0-4b8b-a89e-a21607f0239f/transfer \
  -H 'Content-Type: application/json' \
  -d '{
    "onBehalfOfSrcAcctId": "string",
    "requests": [
      {
        "transfereeSrcAcctId": "b5d8d6b3-bcaf-11ef-ae69-b61606fd520c",
        "holdingCriteria": [
          {
            "holdingIdentifier": "476099",
            "quantity": 3
          }
        ],
        "correlationId": "string",
        "requestConfirmation": true,
        "toSubaccountIdentifier": "string",
        "totalPrice": 0,
        "currencyCode": "string",
        "notes": "string"
      }
    ]
  }'

Responses

success

Body*/*
responsesArray of objects(InteraccountTransferResponse)

Bulk Transfer Response

Act on a proposed transfer

Request

Actions include accept, reject or withdrawal of a proposed transfer, using the transfer batch identifier.

Path
ledgerIdentifierstring(uuid)required

Ledger identifier, can be found using /api/ledger endpoint

Example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
Bodyapplication/jsonrequired

Populated ActionTransferBatches payload

onBehalfOfSrcAcctIdstring

If permitted, allows the caller to perform actions on open transfer batches on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.

actionstring

Specifies code of action to take; same action for all transfer batches included in "items".

Enum"CONFIRM""WITHDRAW""REJECT"
Example: "WITHDRAW"
itemsArray of objects(ActionTransferBatchItem)

List of transfer batch identifiers

curl -i -X POST \
  https://optimalapi-ext.apx.com/transfer/v1/api/ledger/4b7375e9-79b0-4b8b-a89e-a21607f0239f/transferBatch/open/action \
  -H 'Content-Type: application/json' \
  -d '{
    "onBehalfOfSrcAcctId": "string",
    "action": "WITHDRAW",
    "items": [
      {
        "batchIdentifier": "7644439A-A56B-45E5-AFE6-94E149CF014E"
      }
    ]
  }'

Responses

success

Retrieve transfer request details

Request

View the details behind a transfer request, using the transfer batch identifier.

Path
ledgerIdentifierstring(uuid)required

Ledger identifier, can be found using /api/ledger endpoint

Example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
Bodyapplication/jsonrequired

Populated TransferBatchRetrieveByIdentifierRequest

onBehalfOfSrcAcctIdstring

If permitted, allows the caller to initiate transfer batches on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.

transferBatchIdentifiersArray of stringsunique

System-assigned identifiers associated with the transfer batches to be retrieved.

includeHoldingsboolean

If true, include holding details in response. Defaults to true if not specified.

curl -i -X POST \
  https://optimalapi-ext.apx.com/transfer/v1/api/ledger/4b7375e9-79b0-4b8b-a89e-a21607f0239f/transferBatch/byIdentifier \
  -H 'Content-Type: application/json' \
  -d '{
    "onBehalfOfSrcAcctId": "string",
    "transferBatchIdentifiers": [
      "string"
    ],
    "includeHoldings": true
  }'

Responses

success

Body*/*
transferBatchesArray of objects(TransferBatch)

Collection of retrieved Transfer Batches

Transfer holdings between subaccounts

Request

Transfers holdings between active subaccounts, within the same account.

Path
ledgerIdentifierstring(uuid)required

Ledger identifier, can be found using /api/ledger endpoint

Example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
Bodyapplication/jsonrequired

Bulk Subaccount Transfer request

onBehalfOfSrcAcctIdstring

If permitted, allows the caller to initiate subaccount transfers on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.

requestsArray of objects(SubaccountTransferRequest)

Collection of Subaccount transfer requests

curl -i -X POST \
  https://optimalapi-ext.apx.com/transfer/v1/api/ledger/4b7375e9-79b0-4b8b-a89e-a21607f0239f/transfer/subaccount \
  -H 'Content-Type: application/json' \
  -d '{
    "onBehalfOfSrcAcctId": "string",
    "requests": [
      {
        "subaccountIdentifier": "string",
        "holdingCriteria": [
          {
            "holdingIdentifier": "476099",
            "quantity": 3
          }
        ],
        "correlationId": "string"
      }
    ]
  }'

Responses

success

Body*/*
responsesArray of objects(SubaccountTransferResponse)

Bulk Subaccount Transfer response

Retrieve pending transfer requests

Request

Retrieve list of currently pending transfers.

Path
ledgerIdentifierstring(uuid)required

Ledger identifier, can be found using /api/ledger endpoint

Example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
Query
directionstring

Specify whether you want only "in"bound or "out"bound pending transfers. If omitted, both types will be returned.

Enum"in""out"
Example: direction=direction="in"
includeHoldingsboolean

Include transfer related holdings details

Example: includeHoldings=?includeHoldings=true
onBehalfOfSrcAcctIdstring

If permitted, allows the caller to retrieve open transfer batches on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.

$skipinteger(int32)

Number of records to skip

$topinteger(int32)

Maximum number of records to return

$filterstring

OData-like filter expression

$applystring

OData-like apply expression with groupby and aggregate only

$orderbystring

Comma-separated list of columns for sorting

$countboolean

Whether to include the count of records with the result

curl -i -X GET \
  'https://optimalapi-ext.apx.com/transfer/v1/api/ledger/4b7375e9-79b0-4b8b-a89e-a21607f0239f/transferBatch/open?direction=direction%3D%22in%22&includeHoldings=%3FincludeHoldings%3Dtrue&onBehalfOfSrcAcctId=string&%24skip=0&%24top=0&%24filter=string&%24apply=string&%24orderby=string&%24count=true'

Responses

transfer batches retrieved

Body*/*
inboundArray of objects(TransferBatch)

Inbound transfer batches that are visible-to-the-caller; as the transfer recipient, the API user can usually accept or reject.

outboundArray of objects(TransferBatch)

Outbound transfer batches that are visible-to-the-caller; as the transfer initiator, the API user can usually withdraw.

retirementbatch-v1

View or submit a retirement request, or redemption claim, on instrument(s).

Operations

ledger-v1

View an Account's current and historical instrument details

Operations

subaccount-v1

View or create subaccounts. Use subaccounts to organize your account’s instruments. All accounts have a "Default" subaccount, where all new issuances and incoming transfers will be deposited. Subaccounts may also be used to delegate instrument management to an authorized third party.

Operations