{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}
{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}
{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}
{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}
{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}
{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}
Create a transfer request
Permissions required: Transfer funds
Identify the sending resource and asset
To initiate a transfer between resources, you must identify which resource you’d like to transfer funds from and the asset type to transfer. Provide a source and assetType.
Identify the receiving resource
Choose a resource to receive the funds as the destination. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see Permission Groups for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact api@anchorage.com.
Permissions
The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds.
Additional Metadata
You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo.
Successful Transfers
If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint.
Unsuccessful Transfers
A transfer request may fail for any of the following reasons:
The specified sending resource does not exist or does not support the specified asset type
The specified amount exceeds the available funds for this asset (insufficient funds)
The destination does not exist or does not support the specified asset type
The provided API key does not have permissions to initiate transfers from this wallet
If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons:
There are insufficient funds to pay the blockchain network fee at the time of this transaction
The transfer was successfully queued but there were insufficient funds by the time it was processed
There is a failure on the blockchain
Idempotent Requests
This endpoint supports idempotent requests so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the idempotentId field in the body of the POST request.
Queueing
Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the QUEUED state until the prior transfer is completed or fails.
Transferring Full Balance
For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset.
For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the deductFeeFromAmountIfSameType flag of the TransfersRequest model for more detail.
A hex-encoded Ed25519 signature of timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body.
The Api-Child-Control-Key header is NOT part of the signed payload: it carries key material used only to sign the transaction, not an authorization parameter, so it is excluded from the signature and never persisted with the operation.
The hex-encoded child control key of the source wallet, derived client-side from the organization's Master Control Key.
Required when the source wallet's private keys are control-key-encrypted (self-custody organizations). For other wallets a supplied value is not used to sign anything, but a malformed value is still rejected with InvalidControlKeyFormat regardless of wallet type. It is passed as a header, is NOT part of the signed request payload, is used only to sign the transaction, and is never persisted with the operation.
Additional parameters to be provided exclusively when assetType is "ATOM". This field is deprecated, please migrate to using assetParametersCosmos instead. When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set destination.type to TRUSTED_DESTINATION and destination.id to the trusted destination ID instead.
Additional parameters to be provided exclusively when assetType is for a Cosmos blockchain. When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set destination.type to TRUSTED_DESTINATION and destination.id to the trusted destination ID instead.
Extra parameters, to be provided for assets. When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set destination.type to TRUSTED_DESTINATION and destination.id to the trusted destination ID instead.
Additional parameters to be provided exclusively when assetType is "XLM". When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set destination.type to TRUSTED_DESTINATION and destination.id to the trusted destination ID instead.
Additional parameters to be provided exclusively when assetType is "XRP". When using a Trusted Destination, these parameters must not be provided — the destination tag is inherited from the trusted destination. Set destination.type to TRUSTED_DESTINATION and destination.id to the trusted destination ID instead.
If false, any network fees will always be added to amount requested. For example, a request to transfer 5 BTC with deductFeeFromAmountIfSameType=false would result in 5 exactly BTC received to the destination wallet and just over 5 BTC spent by the source wallet.
If true and the amount transferred is the same asset type as the network fee for the transfer, the network fee is deducted from the amount instead. For example, a request to transfer 5 BTC with deductFeeFromAmountIfSameType=true would result in just under 5 BTC received to the destination wallet.
For assets where the exact fee taken by the network is not known until the transaction is mined, it is likely that the amount spent will fall just short of the amount requested. For example, a request to transfer 5 ETH with deductFeeFromAmountIfSameType=true may result in the sending wallet spending 4.97 ETH and the recipient receiving 4.9 ETH. In this example, Anchorage Digital specifies to the network a maximum allowable fee of 0.1 ETH, but the network takes only 0.07 ETH
For UTXO-based assets, if deductFeeFromAmountIfSameType=true and the amount requested for transfer is just short of the total balance of the asset, the network will refuse to accept this transaction because the remainder would be unspendable. This is an unlikely edge case. See "Bitcoin Dust" for more context.
This flag is ignored for transfers where the amount and the fee asset types are separate.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Anchorage Digital","colors":{"primary":"#5580F6","light":"#5580F6","dark":"#5580F6"},"logo":{"light":"https://mintcdn.com/deployment-4/ikVMLMsizDmk_7Sw/knowledge-base/images/logo-lockup-dark.svg?fit=max\u0026auto=format\u0026n=ikVMLMsizDmk_7Sw\u0026q=85\u0026s=87028c6755f355e278de66991913b91c","dark":"https://mintcdn.com/deployment-4/ikVMLMsizDmk_7Sw/knowledge-base/images/logo-lockup-light.svg?fit=max\u0026auto=format\u0026n=ikVMLMsizDmk_7Sw\u0026q=85\u0026s=1b56e9a2511c5c765bb60eb80f10491d","href":"/"},"favicon":{"light":"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026auto=format\u0026n=GSah06OFrRxxO1iB\u0026q=85\u0026s=dbc56a4b9970aa0cc3b83e27e2063715","dark":"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026auto=format\u0026n=GSah06OFrRxxO1iB\u0026q=85\u0026s=dbc56a4b9970aa0cc3b83e27e2063715"},"api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript"]}},"appearance":{"default":"system"},"background":{"color":{"light":"#F4F5F5","dark":"#000"}},"navbar":{"links":[{"href":"/knowledge-base/login","label":"Log in"},{"href":"https://www.anchorage.com","label":"Anchorage.com"},{"href":"https://www.anchorage.com/get-in-touch","label":"Contact"}]},"footer":{"socials":{"x":"https://x.com/Anchorage","linkedin":"https://www.linkedin.com/company/anchorage","youtube":"https://www.youtube.com/c/AnchorageDigital"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"errors":{"404":{"redirect":true,"title":"Oops, something went wrong","description":"The content you're looking for is missing. Contact Anchorage Digital for support."}},"contextual":{"options":["claude","mcp","add-mcp","copy","view","assistant","chatgpt","perplexity","grok","aistudio","devin","windsurf","cursor","vscode","devin-mcp"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"deployment-4","hasAudioNarration":false,"actualSubdomain":"deployment-4","customDomains":["docs.anchorage.com"],"gitSource":{"_id":"6ad7fa92692c7c940ff17a2f","type":"github","owner":"anchorlabsinc","repo":"knowledge-base","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"knowledge-base","label":""},"feedback":{"agentFeedback":true,"contextualFeedback":{"allowEmail":true},"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aef8d2759edac7bace6f9b1","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Anchorage Digital","count":348},{"language":"default","tag":"API reference","count":325},{"language":"default","tag":"v2","count":304},{"language":"default","tag":"Porto","count":248},{"language":"default","tag":"User guides","count":161},{"language":"default","tag":"Developer guides","count":100},{"language":"default","tag":"Wealth Management \u0026 ETF","count":88},{"language":"default","tag":"Trading","count":87},{"language":"default","tag":"Move money","count":78},{"language":"default","tag":"Platform","count":65}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"knowledge-base/custom.css","href":"/_mintlify/custom/deployment-4/3851477207c6fc6b/knowledge-base/custom.css"}],"page":{"pagePath":"knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request","slug":"/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request","pageMetadata":{"title":"Create a transfer request","description":"Permissions required: **Transfer funds**\n\n\n\n\n#### Identify the sending resource and asset\n\n\nTo initiate a transfer between resources, you must identify which resource you'd like to transfer funds from and the asset type to transfer. Provide a `source` and `assetType`.\n\n\n#### Identify the receiving resource\n\n\nChoose a resource to receive the funds as the `destination`. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see [Permission Groups](#section/Authentication-and-Security/Permission-Groups) for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact [api@anchorage.com](mailto:api@anchorage.com).\n\n\n#### Permissions\n\n\nThe provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds.\n\n\n#### Additional Metadata\n\n\nYou may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo.\n\n\n\n#### Successful Transfers\n\n\nIf the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the [list transactions](#operation/getTransactions) API endpoint.\n\n\n#### Unsuccessful Transfers\n\n\nA transfer request may fail for any of the following reasons:\n\n - The specified sending resource does not exist or does not support the specified asset type\n - The specified amount exceeds the available funds for this asset (insufficient funds)\n - The destination does not exist or does not support the specified asset type\n - The provided API key does not have permissions to initiate transfers from this wallet\n\n\nIf the transfer request is successful, the actual transfer transaction may fail for any of the following reasons:\n\n - There are insufficient funds to pay the blockchain network fee at the time of this transaction\n - The transfer was successfully queued but there were insufficient funds by the time it was processed\n - There is a failure on the blockchain\n\n#### Idempotent Requests\n\n\nThis endpoint supports [idempotent requests](#section/Idempotency) so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the `idempotentId` field in the body of the POST request.\n\n\n#### Queueing\n\n\nTransfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the `QUEUED` state until the prior transfer is completed or fails.\n\n\n#### Transferring Full Balance\n\n\nFor assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset.\n\n\nFor assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the `deductFeeFromAmountIfSameType` flag of the `TransfersRequest` model for more detail.\n\n","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transfers","href":"/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h4: \"h4\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Permissions required: \", _jsx(_components.strong, {\n children: \"Transfer funds\"\n })]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Identify the sending resource and asset\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To initiate a transfer between resources, you must identify which resource you’d like to transfer funds from and the asset type to transfer. Provide a \", _jsx(_components.code, {\n children: \"source\"\n }), \" and \", _jsx(_components.code, {\n children: \"assetType\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Identify the receiving resource\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Choose a resource to receive the funds as the \", _jsx(_components.code, {\n children: \"destination\"\n }), \". This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see \", _jsx(_components.a, {\n href: \"#section/Authentication-and-Security/Permission-Groups\",\n children: \"Permission Groups\"\n }), \" for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact \", _jsx(_components.a, {\n href: \"mailto:api@anchorage.com\",\n children: \"api@anchorage.com\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Permissions\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds.\"\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Additional Metadata\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo.\"\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Successful Transfers\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the \", _jsx(_components.a, {\n href: \"#operation/getTransactions\",\n children: \"list transactions\"\n }), \" API endpoint.\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Unsuccessful Transfers\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"A transfer request may fail for any of the following reasons:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"The specified sending resource does not exist or does not support the specified asset type\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"The specified amount exceeds the available funds for this asset (insufficient funds)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"The destination does not exist or does not support the specified asset type\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"The provided API key does not have permissions to initiate transfers from this wallet\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"There are insufficient funds to pay the blockchain network fee at the time of this transaction\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"The transfer was successfully queued but there were insufficient funds by the time it was processed\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"There is a failure on the blockchain\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Idempotent Requests\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This endpoint supports \", _jsx(_components.a, {\n href: \"#section/Idempotency\",\n children: \"idempotent requests\"\n }), \" so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the \", _jsx(_components.code, {\n children: \"idempotentId\"\n }), \" field in the body of the POST request.\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Queueing\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the \", _jsx(_components.code, {\n children: \"QUEUED\"\n }), \" state until the prior transfer is completed or fails.\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Transferring Full Balance\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the \", _jsx(_components.code, {\n children: \"deductFeeFromAmountIfSameType\"\n }), \" flag of the \", _jsx(_components.code, {\n children: \"TransfersRequest\"\n }), \" model for more detail.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a transfer request","description":"Permissions required: **Transfer funds**\n\n\n\n\n#### Identify the sending resource and asset\n\n\nTo initiate a transfer between resources, you must identify which resource you'd like to transfer funds from and the asset type to transfer. Provide a `source` and `assetType`.\n\n\n#### Identify the receiving resource\n\n\nChoose a resource to receive the funds as the `destination`. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see [Permission Groups](#section/Authentication-and-Security/Permission-Groups) for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact [api@anchorage.com](mailto:api@anchorage.com).\n\n\n#### Permissions\n\n\nThe provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds.\n\n\n#### Additional Metadata\n\n\nYou may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo.\n\n\n\n#### Successful Transfers\n\n\nIf the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the [list transactions](#operation/getTransactions) API endpoint.\n\n\n#### Unsuccessful Transfers\n\n\nA transfer request may fail for any of the following reasons:\n\n - The specified sending resource does not exist or does not support the specified asset type\n - The specified amount exceeds the available funds for this asset (insufficient funds)\n - The destination does not exist or does not support the specified asset type\n - The provided API key does not have permissions to initiate transfers from this wallet\n\n\nIf the transfer request is successful, the actual transfer transaction may fail for any of the following reasons:\n\n - There are insufficient funds to pay the blockchain network fee at the time of this transaction\n - The transfer was successfully queued but there were insufficient funds by the time it was processed\n - There is a failure on the blockchain\n\n#### Idempotent Requests\n\n\nThis endpoint supports [idempotent requests](#section/Idempotency) so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the `idempotentId` field in the body of the POST request.\n\n\n#### Queueing\n\n\nTransfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the `QUEUED` state until the prior transfer is completed or fails.\n\n\n#### Transferring Full Balance\n\n\nFor assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset.\n\n\nFor assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the `deductFeeFromAmountIfSameType` flag of the `TransfersRequest` model for more detail.\n\n","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transfers","href":"/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createTransfer","summary":"Create a transfer request","description":"Permissions required: **Transfer funds**\n\n\n\n\n#### Identify the sending resource and asset\n\n\nTo initiate a transfer between resources, you must identify which resource you'd like to transfer funds from and the asset type to transfer. Provide a `source` and `assetType`.\n\n\n#### Identify the receiving resource\n\n\nChoose a resource to receive the funds as the `destination`. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see [Permission Groups](#section/Authentication-and-Security/Permission-Groups) for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact [api@anchorage.com](mailto:api@anchorage.com).\n\n\n#### Permissions\n\n\nThe provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds.\n\n\n#### Additional Metadata\n\n\nYou may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo.\n\n\n\n#### Successful Transfers\n\n\nIf the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the [list transactions](#operation/getTransactions) API endpoint.\n\n\n#### Unsuccessful Transfers\n\n\nA transfer request may fail for any of the following reasons:\n\n - The specified sending resource does not exist or does not support the specified asset type\n - The specified amount exceeds the available funds for this asset (insufficient funds)\n - The destination does not exist or does not support the specified asset type\n - The provided API key does not have permissions to initiate transfers from this wallet\n\n\nIf the transfer request is successful, the actual transfer transaction may fail for any of the following reasons:\n\n - There are insufficient funds to pay the blockchain network fee at the time of this transaction\n - The transfer was successfully queued but there were insufficient funds by the time it was processed\n - There is a failure on the blockchain\n\n#### Idempotent Requests\n\n\nThis endpoint supports [idempotent requests](#section/Idempotency) so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the `idempotentId` field in the body of the POST request.\n\n\n#### Queueing\n\n\nTransfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the `QUEUED` state until the prior transfer is completed or fails.\n\n\n#### Transferring Full Balance\n\n\nFor assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset.\n\n\nFor assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the `deductFeeFromAmountIfSameType` flag of the `TransfersRequest` model for more detail.\n\n","parameters":["a4ec9b17-0a49-4a2f-8aeb-9070686a4d80","8353739d-c9dc-475b-94a0-9d4eb9da5b4a","8dc49678-62d3-4a58-89d5-6cb4193e8876"],"requestBody":"14ed7c01-b758-4ce8-90b1-6274130e9517","responses":{"201":"a35b96ac-adb0-45ba-bc67-ce1e2d1ee80e","400":"33b876ce-69bd-4ac3-8c12-3abcf7ba220a","401":"92d1be9d-80cf-4553-b064-94982439b786","403":"9fdf9d89-f728-48e2-8d65-033ca944ab69","404":"5090ef87-5ad6-4457-a81a-13b77418bfc4","429":"02b4a81e-288a-4d10-9a20-6cad326ec01f","500":"f8107276-5dc9-4b68-b73f-df0507076e18"},"tags":["Transfers"],"x-security":{"Transfer funds":"checkSourceVaultAndDestination"},"method":"post","type":"path","servers":["7397ebb6-50b3-4fc6-8917-b19efb878ee2"],"security":["5b3cf261-712a-4610-9947-c09c584c7a47"],"path":"/transfers","baseUrlOptions":["https://api.anchorage-staging.com/v2"],"title":"Create a transfer request","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a4ec9b17-0a49-4a2f-8aeb-9070686a4d80":{"name":"Api-Signature","in":"header","description":"A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\nThe `Api-Child-Control-Key` header is NOT part of the signed payload: it carries key material used only to sign the transaction, not an authorization parameter, so it is excluded from the signature and never persisted with the operation.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n","required":true,"schema":{"type":"string","pattern":"^[0-9A-Fa-f]{128,160}$","isRequired":true,"description":"A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\nThe `Api-Child-Control-Key` header is NOT part of the signed payload: it carries key material used only to sign the transaction, not an authorization parameter, so it is excluded from the signature and never persisted with the operation.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n","uniqueKey":"","typeLabel":"string"}},"8353739d-c9dc-475b-94a0-9d4eb9da5b4a":{"name":"Api-Timestamp","in":"header","description":"Current timestamp, represented as unix epoch seconds","required":true,"schema":{"type":"integer","format":"int64","isRequired":true,"description":"Current timestamp, represented as unix epoch seconds","uniqueKey":"","typeLabel":"integer\u003cint64>"}},"8dc49678-62d3-4a58-89d5-6cb4193e8876":{"name":"Api-Child-Control-Key","in":"header","description":"The hex-encoded child control key of the source wallet, derived client-side from the organization's Master Control Key.\n\nRequired when the source wallet's private keys are control-key-encrypted (self-custody organizations). For other wallets a supplied value is not used to sign anything, but a malformed value is still rejected with InvalidControlKeyFormat regardless of wallet type. It is passed as a header, is NOT part of the signed request payload, is used only to sign the transaction, and is never persisted with the operation.\n","required":false,"schema":{"type":"string","isRequired":false,"description":"The hex-encoded child control key of the source wallet, derived client-side from the organization's Master Control Key.\n\nRequired when the source wallet's private keys are control-key-encrypted (self-custody organizations). For other wallets a supplied value is not used to sign anything, but a malformed value is still rejected with InvalidControlKeyFormat regardless of wallet type. It is passed as a header, is NOT part of the signed request payload, is used only to sign the transaction, and is never persisted with the operation.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"description":"An amount of a crypto-asset to transfer, without units. The unit is derived from the asset type.","type":"string","example":"1000.00000000","isRequired":true,"uniqueKey":"amount","typeLabel":"string"},"assetType":{"description":"A string representing a type of crypto-asset, which usually corresponds to the crypto asset's ticker symbol.\n\nUse `/asset-types` to list all of the supported asset types for your organization.\n","type":"string","example":"BTC","isRequired":true,"uniqueKey":"assetType","typeLabel":"string"},"assetParametersATOM":{"description":"Additional parameters to be provided exclusively when `assetType` is \"ATOM\". This field is deprecated, please migrate to using `assetParametersCosmos` instead. When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to the trusted destination ID instead.","type":"object","properties":{"memo":{"description":"An alphanumeric string often used to uniquely identify the recipient of the transaction, commonly used when transferring funds to custodial wallets, exchanges or other situations where the `destinationAddress` is multi-purpose. Must be included whenever provided by the recipient of the transaction.","type":"string","example":"w3mp19cqp2","maxLength":256,"isRequired":true,"uniqueKey":"assetParametersATOM.memo","typeLabel":"string"}},"required":["memo"],"title":"WithdrawalParametersForATOM","uniqueKey":"assetParametersATOM","typeLabel":"WithdrawalParametersForATOM · object"},"assetParametersCosmos":{"description":"Additional parameters to be provided exclusively when `assetType` is for a Cosmos blockchain. When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to the trusted destination ID instead.","type":"object","properties":{"memo":{"description":"An alphanumeric string often used to uniquely identify the recipient of the transaction, commonly used when transferring funds to custodial wallets, exchanges or other situations where the `destinationAddress` is multi-purpose. Must be included whenever provided by the recipient of the transaction.","type":"string","example":"w3mp19cqp2","maxLength":256,"isRequired":true,"uniqueKey":"assetParametersCosmos.memo","typeLabel":"string"}},"required":["memo"],"title":"WithdrawalParametersForCosmos","uniqueKey":"assetParametersCosmos","typeLabel":"WithdrawalParametersForCosmos · object"},"assetParametersExtra":{"description":"Extra parameters, to be provided for assets. When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to the trusted destination ID instead.","type":"object","properties":{"value":{"description":"An alphanumeric string often used to uniquely identify the recipient of the transaction, commonly used when transferring funds to custodial wallets, exchanges or other situations where the `destinationAddress` is multi-purpose. Must be included whenever provided by the recipient of the transaction.","type":"string","example":"w3mp19cqp2","maxLength":256,"isRequired":true,"uniqueKey":"assetParametersExtra.value","typeLabel":"string"}},"required":["value"],"title":"WithdrawalParametersExtra","uniqueKey":"assetParametersExtra","typeLabel":"WithdrawalParametersExtra · object"},"assetParametersFiatTrustedDestination":{"description":"Additional parameters to be provided exclusively when the destination is a Trusted Destination and `assetType` is fiat.","type":"object","properties":{"purpose":{"description":"The purpose of the funds being withdrawn.\n\n * `TRADING_SETTLEMENT` - Trading Settlement\n * `LENDING` - Lending\n * `INVESTMENT` - Investment\n * `EXPENSES` - Expenses\n * `FEE_PAYMENT` - Fee Payment\n * `GRANT_PAYMENT` - Grant Payment\n * `PRIZE_AWARD` - Prize Award\n * `GIFT` - Gift\n * `REIMBURSEMENT` - Reimbursement\n * `REBALANCE` - Rebalance\n * `INTRA_COMPANY` - Intra Company","type":"string","example":"TRADING_SETTLEMENT","enum":["TRADING_SETTLEMENT","LENDING","INVESTMENT","EXPENSES","FEE_PAYMENT","GRANT_PAYMENT","PRIZE_AWARD","GIFT","REIMBURSEMENT","REBALANCE","INTRA_COMPANY"],"isRequired":true,"uniqueKey":"assetParametersFiatTrustedDestination.purpose","typeLabel":"enum\u003cstring>"},"memo":{"description":"Note to Beneficiary. If not provided, the memo on the Trusted Destination will be used by default.","type":"string","example":"Invoice 123","maxLength":140,"uniqueKey":"assetParametersFiatTrustedDestination.memo","typeLabel":"string"}},"required":["purpose"],"title":"WithdrawalParametersForFiatTrustedDestination","uniqueKey":"assetParametersFiatTrustedDestination","typeLabel":"WithdrawalParametersForFiatTrustedDestination · object"},"assetParametersXLM":{"description":"Additional parameters to be provided exclusively when `assetType` is \"XLM\". When using a Trusted Destination, these parameters must not be provided — the memo is inherited from the trusted destination. Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to the trusted destination ID instead.","type":"object","properties":{"memo":{"description":"An alphanumeric string often used to uniquely identify the recipient of the transaction, commonly used when transferring funds to custodial wallets, exchanges or other situations where the `destinationAddress` is multi-purpose. Must be included whenever provided by the recipient of the transaction.","type":"string","example":"w3mp19cqp2","maxLength":28,"isRequired":true,"uniqueKey":"assetParametersXLM.memo","typeLabel":"string"}},"required":["memo"],"title":"WithdrawalParametersForXLM","uniqueKey":"assetParametersXLM","typeLabel":"WithdrawalParametersForXLM · object"},"assetParametersXRP":{"description":"Additional parameters to be provided exclusively when `assetType` is \"XRP\". When using a Trusted Destination, these parameters must not be provided — the destination tag is inherited from the trusted destination. Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to the trusted destination ID instead.","type":"object","properties":{"destinationTag":{"description":"A number often used to uniquely identify the recipient of the transaction, commonly used when transferring funds to custodial wallets, exchanges or other situations where the `destinationAddress` is multi-purpose. Must be included whenever provided by the recipient of the transaction.","type":"integer","format":"uint32","example":23874,"isRequired":true,"uniqueKey":"assetParametersXRP.destinationTag","typeLabel":"integer\u003cuint32>"}},"required":["destinationTag"],"title":"WithdrawalParametersForXRP","uniqueKey":"assetParametersXRP","typeLabel":"WithdrawalParametersForXRP · object"},"deductFeeFromAmountIfSameType":{"description":"If false, any network fees will always be added to amount requested. For example, a request to transfer 5 BTC with `deductFeeFromAmountIfSameType=false` would result in 5 exactly BTC received to the destination wallet and just over 5 BTC spent by the source wallet.\n\n\nIf `true` and the amount transferred is the same asset type as the network fee for the transfer, the network fee is deducted from the amount instead. For example, a request to transfer 5 BTC with `deductFeeFromAmountIfSameType=true` would result in just under 5 BTC received to the destination wallet.\n\n\nFor assets where the exact fee taken by the network is not known until the transaction is mined, it is likely that the amount spent will fall just short of the amount requested. For example, a request to transfer 5 ETH with `deductFeeFromAmountIfSameType=true` may result in the sending wallet spending 4.97 ETH and the recipient receiving 4.9 ETH. In this example, Anchorage Digital specifies to the network a maximum allowable fee of 0.1 ETH, but the network takes only 0.07 ETH\n\n\nFor UTXO-based assets, if `deductFeeFromAmountIfSameType=true` and the amount requested for transfer is just short of the total balance of the asset, the network will refuse to accept this transaction because the remainder would be unspendable. This is an unlikely edge case. See \"Bitcoin Dust\" for more context.\n\n\nThis flag is ignored for transfers where the amount and the fee asset types are separate.\n","type":"boolean","default":false,"uniqueKey":"deductFeeFromAmountIfSameType","typeLabel":"boolean"},"destination":{"description":"An object representing a resource capable of receiving, or holding funds.\n\n\n\nConstruction example:\n\n ```\n {\n \"id\":\"1c920f4241b78a1d483a29f3c24b6c4c\",\n \"type\":\"WALLET\"\n }\n ```\n","type":"object","properties":{"id":{"description":"The identifier of the resource","type":"string","example":"1c920f4241b78a1d483a29f3c24b6c4c","isRequired":true,"uniqueKey":"destination.id","typeLabel":"string"},"type":{"description":"The type of the resource being referenced. Note that the VAULT type has been deprecated and WALLET should be used instead.","type":"string","enum":["VAULT","WALLET","ADDRESS","STANDING_INSTRUCTION","TRUSTED_DESTINATION"],"title":"ResourceType","isRequired":true,"uniqueKey":"destination.type","typeLabel":"enum\u003cstring>"},"virtualAccountId":{"description":"Identifier of the virtual account this WALLET destination is attributed to, when the wallet holds funds for more than one virtual account. Valid on transfers and withdrawals, only when `type` is `WALLET`.","type":"string","uniqueKey":"destination.virtualAccountId","typeLabel":"string"}},"required":["id","type"],"title":"Resource","uniqueKey":"destination","typeLabel":"Resource · object"},"idempotentId":{"description":"A client-provided unique ID for idempotent requests (mandatory)","type":"string","example":"12838927347","maxLength":128,"uniqueKey":"idempotentId","typeLabel":"string"},"source":{"description":"An object representing a resource capable of sending funds.\n\n\nConstruction example:\n ```\n {\n \"id\":\"1c920f4241b78a1d483a29f3c24b6c4c\",\n \"type\":\"WALLET\"\n }\n ```\n","type":"object","properties":{"id":{"description":"The identifier of the resource","type":"string","example":"1c920f4241b78a1d483a29f3c24b6c4c","isRequired":true,"uniqueKey":"source.id","typeLabel":"string"},"type":{"description":"The type of the resource being referenced. Note that the VAULT type has been deprecated and WALLET should be used instead.","type":"string","enum":["VAULT","WALLET"],"title":"SourceResourceType","isRequired":true,"uniqueKey":"source.type","typeLabel":"enum\u003cstring>"},"virtualAccountId":{"description":"Identifier of the virtual account this WALLET source is attributed to, when the wallet holds funds for more than one virtual account. Only valid when `type` is `WALLET`.","type":"string","uniqueKey":"source.virtualAccountId","typeLabel":"string"}},"required":["id","type"],"title":"SourceResource","uniqueKey":"source","typeLabel":"SourceResource · object"},"transferAmlQuestionnaire":{"description":"Anti-money laundering questionnaire submission","type":"object","properties":{"purpose":{"description":"The purpose of the withdrawal.","type":"string","example":"TRADING_SETTLEMENT","enum":["TRADING_SETTLEMENT","LENDING","INVESTMENT","EXPENSES","FEE_PAYMENT","GRANT_PAYMENT","PRIZE_AWARD","GIFT","REIMBURSEMENT","REBALANCE","INTRA_COMPANY","REWARDS_DISTRIBUTION"],"isRequired":true,"uniqueKey":"transferAmlQuestionnaire.purpose","typeLabel":"enum\u003cstring>"},"destinationType":{"description":"__DEPRECATED__ - Where the address that will receive the withdrawal is held.","type":"string","enum":["FINANCIAL_INSTITUTION","SELFHOSTED_WALLET"],"uniqueKey":"transferAmlQuestionnaire.destinationType","typeLabel":"enum\u003cstring>"},"institutionCountry":{"description":"__DEPRECATED__ - The country of the institution on the receiving end of the withdrawal, must be specified when the `destinationType` is `FINANCIAL_INSTITUTION` (ISO 3166-1 alpha-2 code).","type":"string","uniqueKey":"transferAmlQuestionnaire.institutionCountry","typeLabel":"string"},"institutionName":{"description":"__DEPRECATED__ - The name of the institution on the receiving end of the withdrawal, must be specified when the `destinationType` is `FINANCIAL_INSTITUTION`.","type":"string","uniqueKey":"transferAmlQuestionnaire.institutionName","typeLabel":"string"},"originatorCity":{"description":"The city of the person or entity that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT`.","type":"string","example":"San Francisco","uniqueKey":"transferAmlQuestionnaire.originatorCity","typeLabel":"string"},"originatorCountry":{"description":"The country of the client that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT` (ISO 3166-1 alpha-2 code).","type":"string","example":"US","uniqueKey":"transferAmlQuestionnaire.originatorCountry","typeLabel":"string"},"originatorName":{"description":"The name of the client that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT`.","type":"string","example":"Satoshi Nakamoto","uniqueKey":"transferAmlQuestionnaire.originatorName","typeLabel":"string"},"originatorPostalCode":{"description":"The zip code/postal code of the person or entity that is withdrawing the funds, can be specified when the `originatorType` is `MY_CLIENT`.","type":"string","example":"65584-5678","uniqueKey":"transferAmlQuestionnaire.originatorPostalCode","typeLabel":"string"},"originatorStateProvince":{"description":"The state/province of the person or entity that is withdrawing the funds, can be specified when the `originatorType` is `MY_CLIENT` (full name format).","type":"string","example":"Wyoming","uniqueKey":"transferAmlQuestionnaire.originatorStateProvince","typeLabel":"string"},"originatorStreetAddress":{"description":"The street address of the person or entity that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT`.","type":"string","example":"1234 NW Bobcat Lane, St. Robert, MO","uniqueKey":"transferAmlQuestionnaire.originatorStreetAddress","typeLabel":"string"},"originatorType":{"description":"Who is the originator of this withdrawal, must be specified when originator is a Financial Institution.","type":"string","example":"MY_ORGANIZATION","enum":["MY_ORGANIZATION","MY_CLIENT"],"uniqueKey":"transferAmlQuestionnaire.originatorType","typeLabel":"enum\u003cstring>"},"recipientCity":{"description":"__DEPRECATED__ - The city of the person or entity that will receive the funds being withdrawn, can be specified when the `recipientType` is `PERSON` or `ENTITY` (optional, except if Street Address is indicated).","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientCity","typeLabel":"string"},"recipientCountry":{"description":"__DEPRECATED__ - The country of the entity or person that will receive the funds being withdrawn, must be specified when the `recipientType` is `PERSON` or `ENTITY` (ISO 3166-1 alpha-2 code).","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientCountry","typeLabel":"string"},"recipientFirstName":{"description":"__DEPRECATED__ - The first name of the person that will receive the funds being withdrawn, must be specified when the `recipientType` is `PERSON`.","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientFirstName","typeLabel":"string"},"recipientFullName":{"description":"__DEPRECATED__ - The full name of the entity that will receive the funds being withdrawn, must be specified when the `recipientType` is `ENTITY`.","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientFullName","typeLabel":"string"},"recipientLastName":{"description":"__DEPRECATED__ - The last name of the person that will receive the funds being withdrawn, must be specified when the `recipientType` is `PERSON`.","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientLastName","typeLabel":"string"},"recipientPostalCode":{"description":"__DEPRECATED__ - The zip code/postal code of the person or entity that will receive the funds being withdrawn, can be specified when the `recipientType` is `PERSON` or `ENTITY` (optional).","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientPostalCode","typeLabel":"string"},"recipientStateProvince":{"description":"__DEPRECATED__ - The state/province of the person or entity that will receive the funds being withdrawn, can be specified when the `recipientType` is `PERSON` or `ENTITY` (full name format) (optional).","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientStateProvince","typeLabel":"string"},"recipientStreetAddress":{"description":"__DEPRECATED__ - The street address of the person or entity that will receive the funds being withdrawn, can be specified when the `recipientType` is `PERSON` or `ENTITY` (optional, except if City is indicated).","type":"string","uniqueKey":"transferAmlQuestionnaire.recipientStreetAddress","typeLabel":"string"},"recipientType":{"description":"__DEPRECATED__ - The entity or person that will receive the funds being withdrawn.\n\n* `DESTINATION_INSTITUTION` - Financial institution specified above in `institutionName`\n\n* `MY_ORGANIZATION` - Same organization initiating the withdrawal, the Anchorage Digital account owner\n\n* `PERSON` - Other person\n\n* `ENTITY` - Other entity\n","type":"string","enum":["DESTINATION_INSTITUTION","MY_ORGANIZATION","PERSON","ENTITY"],"uniqueKey":"transferAmlQuestionnaire.recipientType","typeLabel":"enum\u003cstring>"},"selfhostedDescription":{"description":"__DEPRECATED__ - A description of the self-hosted wallet, must be specified when the `destinationType` is `SELFHOSTED_WALLET`.","type":"string","uniqueKey":"transferAmlQuestionnaire.selfhostedDescription","typeLabel":"string"}},"example":{"originatorType":"MY_CLIENT","originatorName":"Satoshi Nakamoto","originatorCountry":"US","originatorStreetAddress":"1234 NW Bobcat Lane, St. Robert, MO","originatorPostalCode":"65584-5678","originatorCity":"San Francisco","originatorStateProvince":"Wyoming","purpose":"TRADING_SETTLEMENT"},"required":["purpose"],"title":"AMLQuestionnaire","uniqueKey":"transferAmlQuestionnaire","typeLabel":"AMLQuestionnaire · object"},"transferMemo":{"oneOf":[{"description":"A user-supplied description that will become the description of the subsequent transfer transaction (optional)","type":"string","example":"Internal ID: #12838927347","uniqueKey":"transferMemo.oneOf.0","typeLabel":"string"},{"description":"A user-supplied description that will become the description of the subsequent transfer transaction (optional)","type":"null","example":"Internal ID: #12838927347","uniqueKey":"transferMemo.oneOf.1","typeLabel":"null"}],"uniqueKey":"transferMemo","typeLabel":"string | null"},"useGasStation":{"oneOf":[{"description":"If true, the Anchorage Digital gas station will pay gas fees, for supported asset types and organizations.","type":"boolean","uniqueKey":"useGasStation.oneOf.0","typeLabel":"boolean"},{"description":"If true, the Anchorage Digital gas station will pay gas fees, for supported asset types and organizations.","type":"null","uniqueKey":"useGasStation.oneOf.1","typeLabel":"null"}],"uniqueKey":"useGasStation","typeLabel":"boolean | null"}},"required":["assetType","amount"],"title":"TransfersRequest","uniqueKey":"","typeLabel":"TransfersRequest · object"},"examples":{"Example":{"title":"Example","value":{"amount":"1000.00000000","assetType":"BTC","deductFeeFromAmountIfSameType":false,"idempotentId":"12838927347","transferAmlQuestionnaire":{"originatorType":"MY_CLIENT","originatorName":"Satoshi Nakamoto","originatorCountry":"US","originatorStreetAddress":"1234 NW Bobcat Lane, St. Robert, MO","originatorPostalCode":"65584-5678","originatorCity":"San Francisco","originatorStateProvince":"Wyoming","purpose":"TRADING_SETTLEMENT"},"transferMemo":"Internal ID: #12838927347","useGasStation":true}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"a35b96ac-adb0-45ba-bc67-ce1e2d1ee80e":{"description":"Successfully initiate a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"description":"A string describing the status of the given transfer\n\n\n* IN_PROGRESS - This transfer is in progress and is not final.\n\n\n* COMPLETED - This transfer has been completed and is confirmed on the blockchain.\n\n\n* FAILED - This transfer has failed. Funds were not successfully transferred.\n\n\n* QUEUED - This transfer has been queued behind another transfer of the same asset.\n","type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED","QUEUED"],"title":"TransferStatus","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"transferId":{"description":"The ID of this transfer, which can be used to retrieve further details","type":"string","example":"008d3ec72558ce907571886df63ef51594b5bd8cf106a0b7fa8f12a30dfc867f","isRequired":true,"uniqueKey":"data.transferId","typeLabel":"string"}},"required":["transferId","status"],"title":"Data3","isRequired":true,"uniqueKey":"data","typeLabel":"Data3 · object"}},"required":["data"],"title":"TransfersResponse1","uniqueKey":"","typeLabel":"TransfersResponse1 · object"},"examples":{"Example":{"title":"Example","value":{"data":{"status":"IN_PROGRESS","transferId":"008d3ec72558ce907571886df63ef51594b5bd8cf106a0b7fa8f12a30dfc867f"}}}},"exampleType":"generated"}},"exampleType":"generated"},"33b876ce-69bd-4ac3-8c12-3abcf7ba220a":{"description":"Bad Request or Insufficient Funds","content":{"application/json":{"schema":{"type":"object","properties":{"errorType":{"description":"The type of error returned.","type":"string","enum":["InternalError","InvalidRequest","Unauthenticated","Forbidden","NotFound","Conflict","UnprocessableEntity","TooManyRequests","ServiceUnavailable","QuoteExpired","InsufficientFunds","NotImplemented","MissingControlKey","InvalidControlKeyFormat"],"title":"ErrorType","isRequired":true,"uniqueKey":"errorType","typeLabel":"enum\u003cstring>"},"message":{"description":"A human-readable message providing more details about the error.","type":"string","example":"Missing required field 'amount'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["errorType","message"],"title":"ErrorDetails","uniqueKey":"","typeLabel":"ErrorDetails · object"},"examples":{"Example":{"title":"Example","value":{"errorType":"InternalError","message":"Missing required field 'amount'."}}},"exampleType":"generated"}},"exampleType":"generated"},"92d1be9d-80cf-4553-b064-94982439b786":{"description":"Unauthenticated","content":{"application/json":{"schema":{"type":"object","properties":{"errorType":{"description":"The type of error returned.","type":"string","enum":["InternalError","InvalidRequest","Unauthenticated","Forbidden","NotFound","Conflict","UnprocessableEntity","TooManyRequests","ServiceUnavailable","QuoteExpired","InsufficientFunds","NotImplemented","MissingControlKey","InvalidControlKeyFormat"],"title":"ErrorType","isRequired":true,"uniqueKey":"errorType","typeLabel":"enum\u003cstring>"},"message":{"description":"A human-readable message providing more details about the error.","type":"string","example":"Missing required field 'amount'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["errorType","message"],"title":"ErrorDetails","uniqueKey":"","typeLabel":"ErrorDetails · object"},"examples":{"Example":{"title":"Example","value":{"errorType":"InternalError","message":"Missing required field 'amount'."}}},"exampleType":"generated"}},"exampleType":"generated"},"9fdf9d89-f728-48e2-8d65-033ca944ab69":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"errorType":{"description":"The type of error returned.","type":"string","enum":["InternalError","InvalidRequest","Unauthenticated","Forbidden","NotFound","Conflict","UnprocessableEntity","TooManyRequests","ServiceUnavailable","QuoteExpired","InsufficientFunds","NotImplemented","MissingControlKey","InvalidControlKeyFormat"],"title":"ErrorType","isRequired":true,"uniqueKey":"errorType","typeLabel":"enum\u003cstring>"},"message":{"description":"A human-readable message providing more details about the error.","type":"string","example":"Missing required field 'amount'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["errorType","message"],"title":"ErrorDetails","uniqueKey":"","typeLabel":"ErrorDetails · object"},"examples":{"Example":{"title":"Example","value":{"errorType":"InternalError","message":"Missing required field 'amount'."}}},"exampleType":"generated"}},"exampleType":"generated"},"5090ef87-5ad6-4457-a81a-13b77418bfc4":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"errorType":{"description":"The type of error returned.","type":"string","enum":["InternalError","InvalidRequest","Unauthenticated","Forbidden","NotFound","Conflict","UnprocessableEntity","TooManyRequests","ServiceUnavailable","QuoteExpired","InsufficientFunds","NotImplemented","MissingControlKey","InvalidControlKeyFormat"],"title":"ErrorType","isRequired":true,"uniqueKey":"errorType","typeLabel":"enum\u003cstring>"},"message":{"description":"A human-readable message providing more details about the error.","type":"string","example":"Missing required field 'amount'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["errorType","message"],"title":"ErrorDetails","uniqueKey":"","typeLabel":"ErrorDetails · object"},"examples":{"Example":{"title":"Example","value":{"errorType":"InternalError","message":"Missing required field 'amount'."}}},"exampleType":"generated"}},"exampleType":"generated"},"02b4a81e-288a-4d10-9a20-6cad326ec01f":{"description":"Too Many Requests","content":{"application/json":{"schema":{"type":"object","properties":{"errorType":{"description":"The type of error returned.","type":"string","enum":["InternalError","InvalidRequest","Unauthenticated","Forbidden","NotFound","Conflict","UnprocessableEntity","TooManyRequests","ServiceUnavailable","QuoteExpired","InsufficientFunds","NotImplemented","MissingControlKey","InvalidControlKeyFormat"],"title":"ErrorType","isRequired":true,"uniqueKey":"errorType","typeLabel":"enum\u003cstring>"},"message":{"description":"A human-readable message providing more details about the error.","type":"string","example":"Missing required field 'amount'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["errorType","message"],"title":"ErrorDetails","uniqueKey":"","typeLabel":"ErrorDetails · object"},"examples":{"Example":{"title":"Example","value":{"errorType":"InternalError","message":"Missing required field 'amount'."}}},"exampleType":"generated"}},"exampleType":"generated"},"f8107276-5dc9-4b68-b73f-df0507076e18":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"errorType":{"description":"The type of error returned.","type":"string","enum":["InternalError","InvalidRequest","Unauthenticated","Forbidden","NotFound","Conflict","UnprocessableEntity","TooManyRequests","ServiceUnavailable","QuoteExpired","InsufficientFunds","NotImplemented","MissingControlKey","InvalidControlKeyFormat"],"title":"ErrorType","isRequired":true,"uniqueKey":"errorType","typeLabel":"enum\u003cstring>"},"message":{"description":"A human-readable message providing more details about the error.","type":"string","example":"Missing required field 'amount'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["errorType","message"],"title":"ErrorDetails","uniqueKey":"","typeLabel":"ErrorDetails · object"},"examples":{"Example":{"title":"Example","value":{"errorType":"InternalError","message":"Missing required field 'amount'."}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5b3cf261-712a-4610-9947-c09c584c7a47":{"Api-Access-Key":{"type":"apiKey","name":"Api-Access-Key","in":"header","description":"An API key associated with a security role","scopes":[],"schemeName":"Api-Access-Key"}}},"servers":{"7397ebb6-50b3-4fc6-8917-b19efb878ee2":{"url":"https://api.anchorage-staging.com/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"Api-Access-Key","in":"header","description":"An API key associated with a security role","scopes":[],"schemeName":"Api-Access-Key"},"schema":{"title":"Api-Access-Key","type":"string","description":"An API key associated with a security role","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"Api-Access-Key","name":"Api-Access-Key"}],"title":"Api-Access-Key"}]},"originalFileLocation":"knowledge-base/openapi/v2.yaml"},"subdomain":"deployment-4","siteName":"Anchorage Digital","title":"Create a transfer request - Anchorage Digital","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T17:20:13.403Z","originalFileLocation":"knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Permissions required: Transfer funds #### Identify the sending resource and asset To initiate a transfer between resources, you must identify which resource you\u0026#x27;d like to transfer funds from and the asset type to transfer. Provide a source and assetType. #### Identify the receiving resource Choose a resource to receive the funds as the destination. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see Permission Groups for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact api@anchorage.com. #### Permissions The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds. #### Additional Metadata You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo. #### Successful Transfers If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint. #### Unsuccessful Transfers A transfer request may fail for any of the following reasons: - The specified sending resource does not exist or does not support the specified asset type - The specified amount exceeds the available funds for this asset (insufficient funds) - The destination does not exist or does not support the specified asset type - The provided API key does not have permissions to initiate transfers from this wallet If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons: - There are insufficient funds to pay the blockchain network fee at the time of this transaction - The transfer was successfully queued but there were insufficient funds by the time it was processed - There is a failure on the blockchain #### Idempotent Requests This endpoint supports idempotent requests so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the idempotentId field in the body of the POST request. #### Queueing Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the QUEUED state until the prior transfer is completed or fails. #### Transferring Full Balance For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset. For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the deductFeeFromAmountIfSameType flag of the TransfersRequest model for more detail.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Anchorage Digital\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/deployment-4/GSah06OFrRxxO1iB/knowledge-base/favicon-symbol.svg?fit=max\u0026amp;auto=format\u0026amp;n=GSah06OFrRxxO1iB\u0026amp;q=85\u0026amp;s=dbc56a4b9970aa0cc3b83e27e2063715\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a transfer request - Anchorage Digital\">\u003cmeta data-mint-head property=\"og:description\" content=\"Permissions required: Transfer funds #### Identify the sending resource and asset To initiate a transfer between resources, you must identify which resource you\u0026#x27;d like to transfer funds from and the asset type to transfer. Provide a source and assetType. #### Identify the receiving resource Choose a resource to receive the funds as the destination. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see Permission Groups for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact api@anchorage.com. #### Permissions The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds. #### Additional Metadata You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo. #### Successful Transfers If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint. #### Unsuccessful Transfers A transfer request may fail for any of the following reasons: - The specified sending resource does not exist or does not support the specified asset type - The specified amount exceeds the available funds for this asset (insufficient funds) - The destination does not exist or does not support the specified asset type - The provided API key does not have permissions to initiate transfers from this wallet If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons: - There are insufficient funds to pay the blockchain network fee at the time of this transaction - The transfer was successfully queued but there were insufficient funds by the time it was processed - There is a failure on the blockchain #### Idempotent Requests This endpoint supports idempotent requests so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the idempotentId field in the body of the POST request. #### Queueing Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the QUEUED state until the prior transfer is completed or fails. #### Transferring Full Balance For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset. For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the deductFeeFromAmountIfSameType flag of the TransfersRequest model for more detail.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Anchorage Digital\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://deployment-4.mintlify.site/_mintlify/api/og/v2?division=Transfers\u0026amp;title=Create+a+transfer+request\u0026amp;description=Permissions+required%3A+**Transfer+funds**%0A%0A%0A%0A%0A%23%23%23%23+Identify+the+sending+resource+and+asset%0A%0A%0ATo+initiate+a+transfer+between+resources%2C+you+must+identify+which+re\u0026amp;theme=487dee285ee7666877db2151\u0026amp;signature=0d4b108546c4696f7b136e0c199f1b33e82ca1858e6aa17c32dfce177b58ce01\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a transfer request - Anchorage Digital\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Permissions required: Transfer funds #### Identify the sending resource and asset To initiate a transfer between resources, you must identify which resource you\u0026#x27;d like to transfer funds from and the asset type to transfer. Provide a source and assetType. #### Identify the receiving resource Choose a resource to receive the funds as the destination. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see Permission Groups for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact api@anchorage.com. #### Permissions The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds. #### Additional Metadata You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo. #### Successful Transfers If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint. #### Unsuccessful Transfers A transfer request may fail for any of the following reasons: - The specified sending resource does not exist or does not support the specified asset type - The specified amount exceeds the available funds for this asset (insufficient funds) - The destination does not exist or does not support the specified asset type - The provided API key does not have permissions to initiate transfers from this wallet If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons: - There are insufficient funds to pay the blockchain network fee at the time of this transaction - The transfer was successfully queued but there were insufficient funds by the time it was processed - There is a failure on the blockchain #### Idempotent Requests This endpoint supports idempotent requests so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the idempotentId field in the body of the POST request. #### Queueing Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the QUEUED state until the prior transfer is completed or fails. #### Transferring Full Balance For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset. For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the deductFeeFromAmountIfSameType flag of the TransfersRequest model for more detail.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://deployment-4.mintlify.site/_mintlify/api/og/v2?division=Transfers\u0026amp;title=Create+a+transfer+request\u0026amp;description=Permissions+required%3A+**Transfer+funds**%0A%0A%0A%0A%0A%23%23%23%23+Identify+the+sending+resource+and+asset%0A%0A%0ATo+initiate+a+transfer+between+resources%2C+you+must+identify+which+re\u0026amp;theme=487dee285ee7666877db2151\u0026amp;signature=0d4b108546c4696f7b136e0c199f1b33e82ca1858e6aa17c32dfce177b58ce01\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/deployment-4/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Anchorage Digital\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5580F6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.anchorage.com/#organization\",\"name\":\"Anchorage Digital\",\"url\":\"https://docs.anchorage.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/deployment-4/ikVMLMsizDmk_7Sw/knowledge-base/images/logo-lockup-dark.svg?fit=max\u0026auto=format\u0026n=ikVMLMsizDmk_7Sw\u0026q=85\u0026s=87028c6755f355e278de66991913b91c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.anchorage.com#website\",\"name\":\"Anchorage Digital\",\"url\":\"https://docs.anchorage.com\",\"publisher\":{\"@id\":\"https://docs.anchorage.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request#webpage\",\"url\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request\",\"name\":\"Create a transfer request\",\"description\":\"Permissions required: Transfer funds #### Identify the sending resource and asset To initiate a transfer between resources, you must identify which resource you'd like to transfer funds from and the asset type to transfer. Provide a source and assetType. #### Identify the receiving resource Choose a resource to receive the funds as the destination. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see Permission Groups for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact api@anchorage.com. #### Permissions The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds. #### Additional Metadata You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo. #### Successful Transfers If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint. #### Unsuccessful Transfers A transfer request may fail for any of the following reasons: - The specified sending resource does not exist or does not support the specified asset type - The specified amount exceeds the available funds for this asset (insufficient funds) - The destination does not exist or does not support the specified asset type - The provided API key does not have permissions to initiate transfers from this wallet If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons: - There are insufficient funds to pay the blockchain network fee at the time of this transaction - The transfer was successfully queued but there were insufficient funds by the time it was processed - There is a failure on the blockchain #### Idempotent Requests This endpoint supports idempotent requests so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the idempotentId field in the body of the POST request. #### Queueing Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the QUEUED state until the prior transfer is completed or fails. #### Transferring Full Balance For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset. For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the deductFeeFromAmountIfSameType flag of the TransfersRequest model for more detail.\",\"dateModified\":\"2026-11-05T17:20:13.403Z\",\"isPartOf\":{\"@id\":\"https://docs.anchorage.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Move money\",\"item\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/list-transfers\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Transfers\",\"item\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/list-transfers\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a transfer request\",\"item\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request#apireference\",\"headline\":\"Create a transfer request\",\"name\":\"Create a transfer request\",\"description\":\"Permissions required: Transfer funds #### Identify the sending resource and asset To initiate a transfer between resources, you must identify which resource you'd like to transfer funds from and the asset type to transfer. Provide a source and assetType. #### Identify the receiving resource Choose a resource to receive the funds as the destination. This resource may belong to your organization or another organization that also custodies with Anchorage Digital, or it may also be an approved blockchain address not custodied by Anchorage Digital (see Permission Groups for more details). Please note: If you would like to use the Anchorage Digital API to transfer to approved blockchain addresses, please contact api@anchorage.com. #### Permissions The provided API key must be associated with a permission group that has Transfer permissions for the vault from which the assets are being sent. The receiving resource does not need Transfer permissions to receive a transfer of funds. #### Additional Metadata You may provide a transfer memo with each transfer. If the transfer API request is successful, a transfer transaction will be created that will include this transfer memo in the description. The resulting deposit will also include this memo. #### Successful Transfers If the transfer request is valid, the request will initiate a transfer transaction from the source. This is a special withdrawal that will not require a quorum of approvals and will undergo automated Anchorage Digital Risk Review. When the transaction is broadcasted and confirmed on the blockchain, a subsequent deposit will be detected for the destination. All of these transactions will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint. #### Unsuccessful Transfers A transfer request may fail for any of the following reasons: - The specified sending resource does not exist or does not support the specified asset type - The specified amount exceeds the available funds for this asset (insufficient funds) - The destination does not exist or does not support the specified asset type - The provided API key does not have permissions to initiate transfers from this wallet If the transfer request is successful, the actual transfer transaction may fail for any of the following reasons: - There are insufficient funds to pay the blockchain network fee at the time of this transaction - The transfer was successfully queued but there were insufficient funds by the time it was processed - There is a failure on the blockchain #### Idempotent Requests This endpoint supports idempotent requests so that a transfer does not occur twice if an API call was interrupted and must be retried. To send an idempotent request, include the idempotentId field in the body of the POST request. #### Queueing Transfer requests are queued and processed in the order they were received. When transferring between wallets, multiple transfer requests may be queued for the same asset in a given wallet, but only one will be processed at a time. The other requests will remain in the QUEUED state until the prior transfer is completed or fails. #### Transferring Full Balance For assets with network fees paid in a separate asset type, transferring the full balance of an asset is no different than transferring any other amount for that asset. For assets with network fees paid in the same asset type, transferring the full balance is not possible without specifying to the server that the fee should be deducted from the transfer amount. See the deductFeeFromAmountIfSameType flag of the TransfersRequest model for more detail.\",\"url\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request\",\"mainEntityOfPage\":{\"@id\":\"https://docs.anchorage.com/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request#webpage\"},\"dateModified\":\"2026-11-05T17:20:13.403Z\",\"publisher\":{\"@id\":\"https://docs.anchorage.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.anchorage.com#website\"}}]}\u003c/script>","siteName":"Anchorage Digital","nav":{"global":null,"products":[{"product":"Home","icon":"house","pages":[{"title":"Home","href":"/knowledge-base"}]},{"product":"Anchorage Digital","icon":"https://mintlify.s3.us-west-1.amazonaws.com/deployment-4/knowledge-base/images/icons/anchorage.svg","pages":[{"title":"Anchorage Digital","href":"/knowledge-base/platform/users/overview"}]},{"product":"Porto","icon":"https://mintlify.s3.us-west-1.amazonaws.com/deployment-4/knowledge-base/images/icons/porto.svg","color":{"light":"#ac96ff","dark":"#ac96ff"},"tabs":[{"tab":"User guides","pages":[{"title":"User guides","href":"/knowledge-base/porto/overview"}]},{"tab":"Developer guides","pages":[{"title":"Developer guides","href":"/knowledge-base/porto/developers/setting-up"}]},{"tab":"API reference","menu":[{"item":"v2","groups":[{"group":"Getting started","public":true,"icon":"book-open","pages":[{"title":"Introduction","href":"/knowledge-base/porto/api-reference/introduction"},{"title":"Authentication","href":"/knowledge-base/porto/api-reference/authentication"},{"title":"Errors, rate limits, and pagination","href":"/knowledge-base/porto/api-reference/errors-pagination"},{"title":"Verifying addresses","href":"/knowledge-base/porto/api-reference/address-verification"},{"title":"API Changelog","href":"/knowledge-base/porto/api-reference/changelog"}]},{"group":"Anchorage custody","icon":"building","pages":[{"group":"API key","expanded":false,"pages":[{"title":"List information for current API key","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /apikey","href":"/knowledge-base/porto/api-reference/v2/api-key/list-information-for-current-api-key"}]},{"group":"Asset types","expanded":false,"pages":[{"title":"List supported asset types","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /asset-types","href":"/knowledge-base/porto/api-reference/v2/asset-types/list-supported-asset-types"}]},{"group":"Vaults","expanded":false,"pages":[{"title":"List vaults","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /vaults","href":"/knowledge-base/porto/api-reference/v2/vaults/list-vaults"},{"title":"Get vault by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /vaults/{vaultId}","href":"/knowledge-base/porto/api-reference/v2/vaults/get-vault-by-id"},{"title":"List all addresses for an asset","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /vaults/{vaultId}/addresses","href":"/knowledge-base/porto/api-reference/v2/addresses/list-all-addresses-for-an-asset"}]},{"group":"Wallets","expanded":false,"pages":[{"title":"List all wallets for all vaults","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /wallets","href":"/knowledge-base/porto/api-reference/v2/wallets/list-all-wallets-for-all-vaults"},{"title":"Wallet details for a wallet","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /wallets/{walletId}","href":"/knowledge-base/porto/api-reference/v2/wallets/wallet-details-for-a-wallet"},{"title":"Activate an existing wallet on additional networks","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /wallets/{walletId}/activate","href":"/knowledge-base/porto/api-reference/v2/wallets/activate-an-existing-wallet-on-additional-networks"},{"title":"Provision a deposit address for a wallet","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /wallets/{walletId}/addresses","href":"/knowledge-base/porto/api-reference/v2/addresses/provision-a-deposit-address-for-a-wallet"},{"title":"Staking rewards for a wallet","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /wallets/{walletId}/staking/rewards","href":"/knowledge-base/porto/api-reference/v2/wallets/staking-rewards-for-a-wallet"},{"title":"Staking positions for a wallet","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /wallets/{walletId}/staking/positions","href":"/knowledge-base/porto/api-reference/v2/wallets/staking-positions-for-a-wallet"},{"title":"List all wallets for a vault","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /vaults/{vaultId}/wallets","href":"/knowledge-base/porto/api-reference/v2/wallets/list-all-wallets-for-a-vault"},{"title":"Create a new wallet in a vault","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /vaults/{vaultId}/wallets","href":"/knowledge-base/porto/api-reference/v2/wallets/create-a-new-wallet-in-a-vault"}]},{"group":"Deposit attribution","expanded":false,"pages":[{"title":"List deposit attributions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /deposit-attributions/attributions","href":"/knowledge-base/porto/api-reference/v2/deposit-attribution/list-deposit-attributions"},{"title":"Attribute a deposit","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml patch /deposit-attributions/{depositTransactionId}","href":"/knowledge-base/porto/api-reference/v2/deposit-attribution/attribute-a-deposit"},{"title":"Attribute a deposit as spam","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /deposit-attributions/{depositTransactionId}/spam","href":"/knowledge-base/porto/api-reference/v2/deposit-attribution/attribute-a-deposit-as-spam"}]},{"group":"Vesting","expanded":false,"pages":[{"title":"Get vesting balances","openapi":"POST /vesting/balances","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/vesting-balances-batch"},{"title":"Get vesting balances for an allocation","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /vesting/balances/{allocationId}","href":"/knowledge-base/porto/api-reference/v2/vesting/get-vesting-balances-for-an-allocation"},{"title":"Off-chain vesting schedules","openapi":"GET /offchainvesting/schedules","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/offchainvesting-schedules"}]},{"group":"Statements","expanded":false,"pages":[{"title":"List statements","openapi":"GET /statements","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/statements-list"},{"title":"Get statement","openapi":"GET /statements/{statementId}","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/statement-get"},{"title":"Download a statement","openapi":"GET /statements/{statementId}/download","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/statement-download"},{"title":"List statement types","openapi":"GET /statement-types","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/statement-types"}]},{"group":"Tags","expanded":false,"pages":[{"title":"List tags","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tags","href":"/knowledge-base/porto/api-reference/v2/tagging/list-tags"},{"title":"Create a tag","openapi":"POST /tags","hidden":true,"href":"/knowledge-base/porto/api-reference/v2/tags/create-a-tag"},{"title":"Apply tags to an entity","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /tags/apply","href":"/knowledge-base/porto/api-reference/v2/tagging/apply-tags-to-an-entity"},{"title":"Remove a tag from an entity","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /tags/apply/{entityId}/{tagName}","href":"/knowledge-base/porto/api-reference/v2/tagging/remove-a-tag-from-an-entity"},{"title":"Search entities by tag","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tags/search","href":"/knowledge-base/porto/api-reference/v2/tagging/search-entities-by-tag"}]}]},{"group":"Move money","icon":"money-bill-transfer","pages":[{"group":"Transfers","expanded":false,"pages":[{"title":"List transfers","description":"Permissions required: **Transfer funds**\n\n\n\n\nList transfers created by your API key. For a given vault, transfers on it created by other API keys in your organization are also included if your API key's Transfer and Read permissions both cover that vault.\n\n\n\n**Filters**\n\n\n\nYou may optionally supply the following filters:\n\n\n - Set a date range by providing the `startDate` and/or `endDate` query parameters. If the date parameters are omitted, all transfers will be returned.\n - Specify a specific vault to return transfers for by specifying the `vaultId` parameter. If the `vaultId` parameter is omitted, transfers originating from all vaults will be returned. Providing both `vaultId` and `walletId` filters will result in an error.\n - Specify a specific wallet to return transfers for by specifying the `walletId` parameter. If the `walletId` parameter is omitted, transfers originating from all vaults and wallets will be returned. Providing both `vaultId` and `walletId` filters will result in an error.\n - Filter transfers of one or more statuses with the `statuses` parameter. Multiple statuses should be separated by commas.\n - Filter transfers on a virtual account with the `virtualAccountId` parameter, or by the customer who owns the virtual account on either side with the `customerId` parameter.\n\n\n**Multiple Transfers**\n\n\n\nTo fetch a specific batch of transfers, pass a comma-separated list of `transferIds` as the `transferIds` query parameter.\n","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /transfers","href":"/knowledge-base/porto/api-reference/v2/transfers/list-transfers"},{"title":"Create a transfer request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transfers","href":"/knowledge-base/porto/api-reference/v2/transfers/create-a-transfer-request"},{"title":"Get transfer by ID","description":"Permissions required: **Transfer funds**\n\n\n\n\nGet transfer by ID. Restricted to transfers created by your API key, unless your API key's Transfer and Read permissions both cover the transfer's vault.\n\n\nNOTE: price and USD value information is recent but does not reflect real-time data.\n\n","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /transfers/{transferId}","href":"/knowledge-base/porto/api-reference/v2/transfers/get-transfer-by-id"},{"title":"Cancel a transfer request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /transfers/{transferId}","href":"/knowledge-base/porto/api-reference/v2/transfers/cancel-a-transfer-request"}]},{"group":"Transactions","expanded":false,"pages":[{"title":"Create a withdrawal request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transactions/withdrawal","href":"/knowledge-base/porto/api-reference/v2/transactions/create-a-withdrawal-request"},{"title":"List transactions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /transactions","href":"/knowledge-base/porto/api-reference/v2/transactions/list-transactions"},{"title":"Get transaction by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /transactions/{transactionId}","href":"/knowledge-base/porto/api-reference/v2/transactions/get-transaction-by-id"},{"title":"Create a stake request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transactions/stake","href":"/knowledge-base/porto/api-reference/v2/transactions/create-a-stake-request"},{"title":"Create an unstake request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transactions/unstake","href":"/knowledge-base/porto/api-reference/v2/transactions/create-an-unstake-request"},{"title":"Create a collect request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transactions/collect","href":"/knowledge-base/porto/api-reference/v2/transactions/create-a-collect-request"},{"title":"Create a consolidate stake request","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /transactions/consolidate-stake","href":"/knowledge-base/porto/api-reference/v2/transactions/create-a-consolidate-stake-request"},{"title":"Reject a transaction","deprecated":null,"version":null,"sidebarTitle":"Reject a transaction","openapi":"/knowledge-base/openapi/v2.yaml post /transactions/{transactionId}/reject","href":"/knowledge-base/api-reference/v2/transactions/reject-a-transaction"},{"title":"List supported delegation addresses","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /delegation-addresses/{assetType}","href":"/knowledge-base/porto/api-reference/v2/transactions/list-supported-delegation-addresses"}]},{"group":"Trusted destinations","expanded":false,"pages":[{"title":"List trusted destinations","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trusted_destinations","href":"/knowledge-base/porto/api-reference/v2/trusted-destinations/list-trusted-destinations"},{"title":"Create new Trusted Destinations","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /trusted_destinations","href":"/knowledge-base/porto/api-reference/v2/trusted-destinations/create-new-trusted-destinations"},{"title":"Check status of Trusted Destinations","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trusted_destinations/{creationRequestId}/status","href":"/knowledge-base/porto/api-reference/v2/trusted-destinations/check-status-of-trusted-destinations"},{"title":"Cancel Trusted Destination creation","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /trusted_destinations/{creationRequestId}/cancel","href":"/knowledge-base/porto/api-reference/v2/trusted-destinations/cancel-trusted-destination-creation"},{"title":"Delete Trusted Destination","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /trusted_destinations/{trustedDestinationId}","href":"/knowledge-base/porto/api-reference/v2/trusted-destinations/delete-trusted-destination"}]},{"group":"Stablecoins","expanded":false,"pages":[{"title":"Create a Stablecoin Conversion","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /stablecoins/conversion","href":"/knowledge-base/porto/api-reference/v2/stablecoins/create-a-stablecoin-conversion"},{"title":"Get Issue/Redeem History","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /stablecoins/history","href":"/knowledge-base/porto/api-reference/v2/stablecoins/get-issueredeem-history"},{"title":"Get Stablecoin Reserves History","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /stablecoins/reserves","href":"/knowledge-base/porto/api-reference/v2/stablecoins/get-stablecoin-reserves-history"},{"title":"Get Stablecoin Reserves Entitled Stablecoins","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /stablecoins/reserves/entitled-stablecoins","href":"/knowledge-base/porto/api-reference/v2/stablecoins/get-stablecoin-reserves-entitled-stablecoins"}]}]},{"group":"Atlas","icon":"code","pages":[{"group":"Settlement network","expanded":false,"pages":[{"title":"Propose a settlement","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /atlas/settlements","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/propose-a-settlement"},{"title":"List settlements","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /atlas/settlements","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/list-settlements"},{"title":"Reject a settlement proposal","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /atlas/settlements/{settlementId}/reject","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/reject-a-settlement-proposal"},{"title":"Authorize a settlement","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /atlas/settlements/{settlementId}/authorize","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/authorize-a-settlement"},{"title":"Accept a settlement","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /atlas/settlements/{settlementId}/accept","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/accept-a-settlement"},{"title":"Get a settlement by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /atlas/settlements/{settlementId}","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/get-a-settlement-by-id"},{"title":"Propose a trusted counterparty","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /atlas/directory/counterparties","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/propose-a-trusted-counterparty"},{"title":"List trusted counterparties","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /atlas/directory/counterparties","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/list-trusted-counterparties"},{"title":"Get a counterparty by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /atlas/directory/counterparties/{counterpartyId}","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/get-a-counterparty-by-id"},{"title":"Get a participant by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /atlas/directory/participants/{participantId}","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/get-a-participant-by-id"},{"title":"List participants","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /atlas/directory/participants","href":"/knowledge-base/porto/api-reference/v2/atlas-settlement-network/list-participants"}]},{"group":"Collateral Management","expanded":false,"pages":[{"title":"List packages","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /collateral_management/packages","href":"/knowledge-base/porto/api-reference/v2/collateral-management/list-packages"},{"title":"Create a new collateral package","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /collateral_management/packages","href":"/knowledge-base/porto/api-reference/v2/collateral-management/create-a-new-collateral-package"},{"title":"Update a collateral package","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml patch /collateral_management/packages/{packageId}","href":"/knowledge-base/porto/api-reference/v2/collateral-management/update-a-collateral-package"},{"title":"List exposures","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /collateral_management/exposures","href":"/knowledge-base/porto/api-reference/v2/collateral-management/list-exposures"},{"title":"Create a new exposure","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /collateral_management/exposures","href":"/knowledge-base/porto/api-reference/v2/collateral-management/create-a-new-exposure"},{"title":"Update an operation","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml patch /collateral_management/operations/{operationId}","href":"/knowledge-base/porto/api-reference/v2/collateral-management/update-an-operation"},{"title":"Create a new operation","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /collateral_management/operations","href":"/knowledge-base/porto/api-reference/v2/collateral-management/create-a-new-operation"},{"title":"List collateral and exposure operations","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /collateral_management/operations","href":"/knowledge-base/porto/api-reference/v2/collateral-management/list-collateral-and-exposure-operations"},{"title":"Get collateral price sources","openapi":"GET /collateral_management/price_sources","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/collateral-price-sources"},{"title":"Request a collateral decrease","openapi":"POST /collateral_management/packages/{packageId}/collateral-decrease","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/collateral-decrease"}]}]},{"group":"Wealth Management \u0026 ETF","icon":"building-columns","pages":[{"group":"Onboarding","expanded":false,"pages":[{"title":"Begin new customer onboarding application","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /onboarding/customers","href":"/knowledge-base/porto/api-reference/v2/onboarding/begin-new-customer-onboarding-application"},{"title":"Retrieve uploaded data and status of all customers onboarding","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /onboarding/customers","href":"/knowledge-base/porto/api-reference/v2/onboarding/retrieve-uploaded-data-and-status-of-all-customers-onboarding"},{"title":"Retrieve uploaded data and status of customer onboarding","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /onboarding/customers/{customerId}","href":"/knowledge-base/porto/api-reference/v2/onboarding/retrieve-uploaded-data-and-status-of-customer-onboarding"},{"title":"Update customer onboarding application","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml put /onboarding/customers/{customerId}","href":"/knowledge-base/porto/api-reference/v2/onboarding/update-customer-onboarding-application"},{"title":"Request a signed URL for document image upload","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /onboarding/customers/{customerId}/document","href":"/knowledge-base/porto/api-reference/v2/onboarding/request-a-signed-url-for-document-image-upload"},{"title":"Submit a completed customer onboarding application","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /onboarding/customers/{customerId}/submit","href":"/knowledge-base/porto/api-reference/v2/onboarding/submit-a-completed-customer-onboarding-application"},{"title":"Creates a new agreement questionnaire of the given agreementType","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /onboarding/agreements/{agreementType}","href":"/knowledge-base/porto/api-reference/v2/onboarding/creates-a-new-agreement-questionnaire-of-the-given-agreementtype"},{"title":"Retrieves all the agreements questionnaires for the specified agreement type","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /onboarding/agreements/{agreementType}","href":"/knowledge-base/porto/api-reference/v2/onboarding/retrieves-all-the-agreements-questionnaires-for-the-specified-agreement-type"},{"title":"Retrieves the agreement questionnaire of the given agreement type and agreement ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /onboarding/agreements/{agreementType}/{agreementId}","href":"/knowledge-base/porto/api-reference/v2/onboarding/retrieves-the-agreement-questionnaire-of-the-given-agreement-type-and-agreement-id"},{"title":"Begin new customer subaccount onboarding application","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /onboarding/subaccounts","href":"/knowledge-base/porto/api-reference/v2/onboarding/begin-new-customer-subaccount-onboarding-application"},{"title":"Retrieve uploaded data and status of all onboarding customer subaccounts","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /onboarding/subaccounts","href":"/knowledge-base/porto/api-reference/v2/onboarding/retrieve-uploaded-data-and-status-of-all-onboarding-customer-subaccounts"},{"title":"Retrieve uploaded data and status of customer subaccount onboarding","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /onboarding/subaccounts/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/onboarding/retrieve-uploaded-data-and-status-of-customer-subaccount-onboarding"},{"title":"Update customer subaccount onboarding application","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml put /onboarding/subaccounts/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/onboarding/update-customer-subaccount-onboarding-application"},{"title":"Submit a completed customer subaccount onboarding application","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /onboarding/subaccounts/{subaccountId}/submit","href":"/knowledge-base/porto/api-reference/v2/onboarding/submit-a-completed-customer-subaccount-onboarding-application"}]},{"group":"Subaccounts","expanded":false,"pages":[{"title":"Return wallets linked to a subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/accounts/{subaccountId}/wallets","href":"/knowledge-base/porto/api-reference/v2/subaccounts/return-wallets-linked-to-a-subaccount"},{"title":"Return bank information for a subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/accounts/{subaccountId}/bank-info","href":"/knowledge-base/porto/api-reference/v2/subaccounts/return-bank-information-for-a-subaccount"},{"title":"Create a new subaccount for a given program customer","deprecated":true,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /subaccounts/customers/{customerId}/accounts","href":"/knowledge-base/porto/api-reference/v2/subaccounts/create-a-new-subaccount-for-a-given-program-customer"},{"title":"List subaccounts","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/customers/{customerId}/accounts","href":"/knowledge-base/porto/api-reference/v2/subaccounts/list-subaccounts"},{"title":"List all subaccounts","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/customers/accounts","href":"/knowledge-base/porto/api-reference/v2/subaccounts/list-all-subaccounts"},{"title":"Update an existing subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml patch /subaccounts/accounts/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/subaccounts/update-an-existing-subaccount"},{"title":"Create new transactions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /subaccounts/transactions","href":"/knowledge-base/porto/api-reference/v2/subaccounts/create-new-transactions"},{"title":"List all transactions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/transactions","href":"/knowledge-base/porto/api-reference/v2/subaccounts/list-all-transactions"},{"title":"Get list of transactions filter by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/transactions/{transactionsIds}","href":"/knowledge-base/porto/api-reference/v2/subaccounts/get-list-of-transactions-filter-by-id"},{"title":"Create new allocations","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /subaccounts/transactions/allocations","href":"/knowledge-base/porto/api-reference/v2/subaccounts/create-new-allocations"},{"title":"Fetches a set of filtered transactions allocations","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/transactions/allocations","href":"/knowledge-base/porto/api-reference/v2/subaccounts/fetches-a-set-of-filtered-transactions-allocations"},{"title":"Create a USD Withdrawal Request for a subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /subaccounts/{subaccountId}/fiat/withdrawals","href":"/knowledge-base/porto/api-reference/v2/subaccounts/create-a-usd-withdrawal-request-for-a-subaccount"},{"title":"Fetches a set of Withdrawals Requests for a subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/{subaccountId}/fiat/withdrawals","href":"/knowledge-base/porto/api-reference/v2/subaccounts/fetches-a-set-of-withdrawals-requests-for-a-subaccount"},{"title":"Cancels a Withdrawal Request for a subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /subaccounts/{subaccountId}/fiat/withdrawals/{transactionId}","href":"/knowledge-base/porto/api-reference/v2/subaccounts/cancels-a-withdrawal-request-for-a-subaccount"},{"title":"Get USD Withdrawal Request for a subaccount","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /subaccounts/{subaccountId}/fiat/withdrawals/{transactionId}","href":"/knowledge-base/porto/api-reference/v2/subaccounts/get-usd-withdrawal-request-for-a-subaccount"},{"title":"Create Manual Billing Charge","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /subaccounts/billing/charges","href":"/knowledge-base/porto/api-reference/v2/subaccounts/create-manual-billing-charge"},{"title":"Cancel Manual Billing Charge","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /subaccounts/billing/charges/{chargeId}","href":"/knowledge-base/porto/api-reference/v2/subaccounts/cancel-manual-billing-charge"}]},{"group":"Tax","expanded":false,"pages":[{"title":"List tax accounts","openapi":"GET /tax/accounts","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/tax-accounts"},{"title":"List deposit transactions for account","openapi":"GET /tax/accounts/{accountId}/transactions","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/tax-account-transactions"},{"title":"Update deposit transaction cost basis","openapi":"PATCH /tax/accounts/{accountId}/transactions/{transactionId}","tag":"BETA","href":"/knowledge-base/porto/api-reference/v2/tax-transaction-cost-basis"},{"title":"List Transactions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/transactions/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/tax/list-transactions"},{"title":"Update Transaction Cost Basis","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml patch /tax/transaction/{transactionId}","href":"/knowledge-base/porto/api-reference/v2/tax/update-transaction-cost-basis"},{"title":"Add Tag to Transaction","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /tax/transaction/{transactionId}/tag","href":"/knowledge-base/porto/api-reference/v2/tax/add-tag-to-transaction"},{"title":"Remove Tag from Transaction","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /tax/transaction/{transactionId}/tag","href":"/knowledge-base/porto/api-reference/v2/tax/remove-tag-from-transaction"},{"title":"List of the Inventory for an asset","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/inventory/{subaccountId}/{assetTypeId}","href":"/knowledge-base/porto/api-reference/v2/tax/list-of-the-inventory-for-an-asset"},{"title":"List summary of Inventory","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/inventory/summary/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/tax/list-summary-of-inventory"},{"title":"List Gains Cost Basis","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/gains/costbasis/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/tax/list-gains-cost-basis"},{"title":"List Gains","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/gains/summary/{subaccountId}","href":"/knowledge-base/porto/api-reference/v2/tax/list-gains"},{"title":"Get Subaccount Tax Forms","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/subaccounts/{subaccountId}/forms","href":"/knowledge-base/porto/api-reference/v2/tax/get-subaccount-tax-forms"},{"title":"Get Program Customer Tax Forms","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /tax/clients/{customerId}/forms","href":"/knowledge-base/porto/api-reference/v2/tax/get-program-customer-tax-forms"}]}]},{"group":"Trading","icon":"money-bill-trend-up","pages":[{"group":"Trading","expanded":false,"pages":[{"title":"Request a quote","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /trading/quote","href":"/knowledge-base/porto/api-reference/v2/trading/request-a-quote"},{"title":"Accept a quote","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /trading/quote/accept","href":"/knowledge-base/porto/api-reference/v2/trading/accept-a-quote"},{"title":"Place an order","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /trading/order","href":"/knowledge-base/porto/api-reference/v2/trading/place-an-order"},{"title":"List orders","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/orders","href":"/knowledge-base/porto/api-reference/v2/trading/list-orders"},{"title":"Get order by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/orders/{orderId}","href":"/knowledge-base/porto/api-reference/v2/trading/get-order-by-id"},{"title":"List trades","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/trades","href":"/knowledge-base/porto/api-reference/v2/trading/list-trades"},{"title":"Get trade by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/trades/{tradeId}","href":"/knowledge-base/porto/api-reference/v2/trading/get-trade-by-id"},{"title":"List outstanding trading positions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/positions","href":"/knowledge-base/porto/api-reference/v2/trading/list-outstanding-trading-positions"},{"title":"List settlements","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/settlements","href":"/knowledge-base/porto/api-reference/v2/trading/list-settlements"},{"title":"Get settlement by ID","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/settlements/{settlementId}","href":"/knowledge-base/porto/api-reference/v2/trading/get-settlement-by-id"},{"title":"List trades by settlement","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/settlements/{settlementId}/trades","href":"/knowledge-base/porto/api-reference/v2/trading/list-trades-by-settlement"},{"title":"List trading accounts","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/accounts","href":"/knowledge-base/porto/api-reference/v2/trading/list-trading-accounts"},{"title":"Get a trading account by id","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/accounts/{accountId}","href":"/knowledge-base/porto/api-reference/v2/trading/get-a-trading-account-by-id"},{"title":"List trading account balances","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/accounts/{accountId}/balances","href":"/knowledge-base/porto/api-reference/v2/trading/list-trading-account-balances"},{"title":"Get trading account credit limit and usage","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/accounts/{accountId}/credit","href":"/knowledge-base/porto/api-reference/v2/trading/get-trading-account-credit-limit-and-usage"},{"title":"Get market data snapshot","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/marketdata","href":"/knowledge-base/porto/api-reference/v2/trading/get-market-data-snapshot"},{"title":"List supported trading pairs","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /trading/pairs","href":"/knowledge-base/porto/api-reference/v2/trading/list-supported-trading-pairs"},{"title":"Place an async order","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /trading/async-order","href":"/knowledge-base/porto/api-reference/v2/trading/place-an-async-order"},{"title":"Cancel an async order","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /trading/async-order/cancel","href":"/knowledge-base/porto/api-reference/v2/trading/cancel-an-async-order"}]}]},{"group":"Webhooks","icon":"webhook","pages":[{"group":"Webhooks","expanded":false,"pages":[{"title":"Get webhook validation key","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /webhook/validation-key","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/get-webhook-validation-key"},{"title":"List webhook event types","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /webhook/event-types","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/list-webhook-event-types"},{"title":"Create webhook endpoint","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /webhook/endpoints","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/create-webhook-endpoint"},{"title":"List webhook endpoint","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /webhook/endpoints","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/list-webhook-endpoint"},{"title":"Get webhook endpoint config","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /webhook/endpoints/{endpointId}","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/get-webhook-endpoint-config"},{"title":"Update webhook endpoint","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml patch /webhook/endpoints/{endpointId}","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/update-webhook-endpoint"},{"title":"Create webhook subscriptions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml post /webhook/endpoints/{endpointId}/subscriptions","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/create-webhook-subscriptions"},{"title":"List webhook endpoint subscriptions","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml get /webhook/endpoints/{endpointId}/subscriptions","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/list-webhook-endpoint-subscriptions"},{"title":"Cancel webhook subscription","deprecated":null,"version":null,"openapi":"/knowledge-base/openapi/v2.yaml delete /webhook/endpoints/{endpointId}/subscriptions/{eventTypeId}","href":"/knowledge-base/porto/api-reference/v2/webhook-notifications/cancel-webhook-subscription"}]}]}]},{"item":"v3","hidden":false,"pages":[{"title":"v3","href":"/knowledge-base/porto/api-reference/v3/introduction"}]}]},{"tab":"Build with AI","pages":[{"title":"Build with AI","href":"/knowledge-base/porto/build-with-ai/overview"}]}]},{"product":"Anchorage Digital Wealth (For Advisors)","icon":"building-columns","color":{"light":"#C9A227","dark":"#C9A227"},"hidden":true,"pages":[{"title":"Anchorage Digital Wealth (For Advisors)","href":"/knowledge-base/adw/overview"}]},{"product":"Trading","icon":"chart-line","hidden":true,"pages":[{"title":"Trading","href":"/knowledge-base/a1-trading/developer-guide/overview"}]},{"product":"Agentic Banking","icon":"robot","pages":[{"title":"Agentic Banking","href":"/agentic-banking/overview"}]}]},"basePath":"","title":"Create a transfer request - Anchorage Digital","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}