Create 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
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
❗️

Exercise caution when transferring to an address with an associated “memo” or “destination tag”. When transferring to such an address, first verify whether it has an associated memo or destination tag field. If yes, use the assetParameters object to populate this field. If neither association exists it's an address, ensure that assetParameters is left unpopulated

📘

Review our Transfers and Withdrawals and Trusted Destinationspages to identify the best Money Movement practice for your needs before using this endpoint.

Body Params
string
required

An amount of a crypto-asset to transfer, without units. The unit is derived from the asset type.

assetParametersATOM
object

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.

assetParametersCosmos
object

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.

assetParametersExtra
object

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.

assetParametersFiatTrustedDestination
object

Additional parameters to be provided exclusively when the destination is a Trusted Destination and assetType is fiat.

assetParametersXLM
object

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.

assetParametersXRP
object

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.

string
required

A string representing a type of crypto-asset, which usually corresponds to the crypto asset's ticker symbol.

Use /asset-types to list all of the supported asset types for your organization.

string | null

An optional string providing more context to this transaction. It will be visible on the Anchorage Digital iOS app and will not be published to the blockchain.

destination
object

An object representing a resource capable of receiving, or holding funds.

Construction example:

{
  "id":"1c920f4241b78a1d483a29f3c24b6c4c",
  "type":"WALLET"
}
string | null

A client-provided unique ID for idempotent requests (optional)

source
object

An object representing a resource capable of sending funds.

Construction example:

{
  "id":"1c920f4241b78a1d483a29f3c24b6c4c",
  "type":"WALLET"
}
boolean | null

If true, the Anchorage Digital gas station will pay gas fees, for supported asset types and organizations.

withdrawalAmlQuestionnaire
object

Anti-money laundering questionnaire submission

Headers
string
required
^[0-9A-Fa-f]{128,160}$

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)
  )
)
int64
required

Current timestamp, represented as unix epoch seconds

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json