v1
latestOpenAPI 3.0.02026-08-04134348905.1 KBCreate a withdrawal request
Permissions required: Initiate withdrawals
Identify the sending asset
To initiate a withdrawal from a wallet to an external destination, you must identify which asset you'd like to withdraw funds from. Provide a source (with id and type).
Identify the receiving resource
Choose a resource to receive the funds as the destination. This resource may belong to your organization (wallet) or another organization (address, standing instruction).
Permissions
The provided API key must be associated with a permission group that has Initiate withdrawals permission for the sending vault.
Additional Metadata
You may provide a description with each withdrawal, that will be visible within your organization in the Anchorage Digital iOS Application.
Successful Withdrawals
If the withdrawal request is valid, the request will initiate a withdrawal transaction from the sending wallet. This is a common withdrawal that, unlike Transfers, will still require a quorum of approvals on the Anchorage Digital iOS app and will undergo manual Anchorage Digital Risk Review. Like other transactions, these withdrawals will be visible on the Anchorage Digital iOS Application, the Web Dashboard, and in the list transactions API endpoint.
Unsuccessful Withdrawals
A withdrawal request may fail for any of the following reasons:
- An ongoing withdrawal already exists (unlike transfers, withdrawal requests are not queued)
- The specified asset does not exist
- The specified amount exceeds the available funds for this asset (insufficient funds)
- The destination address is invalid
- The provided API key does not have permissions to initiate withdrawals from this wallet
If the initiated withdrawal is approved by the quorum, the 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
- There is a failure on the blockchain
Headers
A hex-encoded Ed25519 signature of timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body.
Construction example:
toHex(
ed25519Sign(
signing_key,
'{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)
)
)
Current timestamp, represented as unix epoch seconds
Request body
Example request
{
"amount": "1000.00000000",
"assetParametersATOM": {
"memo": "w3mp19cqp2"
},
"assetParametersCosmos": {
"memo": "w3mp19cqp2"
},
"assetParametersExtra": {
"value": "w3mp19cqp2"
},
"assetParametersFiatTrustedDestination": {
"memo": "Invoice 123",
"purpose": "TRADING_SETTLEMENT"
},
"assetParametersXLM": {
"memo": "w3mp19cqp2"
},
"assetParametersXRP": {
"destinationTag": 23874
},
"assetType": "BTC",
"description": "Internal ID: #12838927347",
"destination": {
"id": "1c920f4241b78a1d483a29f3c24b6c4c"
},
"idempotentId": "12838927347",
"source": {
"id": "1c920f4241b78a1d483a29f3c24b6c4c"
},
"withdrawalAmlQuestionnaire": {
"destinationType": "FINANCIAL_INSTITUTION",
"institutionCountry": "US",
"institutionName": "Coinbase",
"originatorCity": "San Francisco",
"originatorCountry": "US",
"originatorName": "Satoshi Nakamoto",
"originatorPostalCode": "65584-5678",
"originatorStateProvince": "Wyoming",
"originatorStreetAddress": "1234 NW Bobcat Lane, St. Robert, MO",
"originatorType": "MY_ORGANIZATION",
"purpose": "TRADING_SETTLEMENT",
"recipientCity": "San Francisco",
"recipientCountry": "JP",
"recipientFirstName": "Satoshi",
"recipientFullName": "Satoshi Nakamoto",
"recipientLastName": "Nakamoto",
"recipientPostalCode": "65584-5678",
"recipientStateProvince": "Wyoming",
"recipientStreetAddress": "1234 NW Bobcat Lane, St. Robert, MO",
"recipientType": "PERSON",
"selfhostedDescription": "An explanation about where this address is held"
}
}Response
Successfully initiated a withdrawal
Example response
{
"data": {
"withdrawalId": "8696144cca28a634c05858d00e51191408498a7808a837fc4645b4b6997dde09"
}
}