---
title: "Create a withdrawal request"
method: POST
path: "/transactions/withdrawal"
tags: ["Transactions"]
---

# Create a withdrawal request

`POST /transactions/withdrawal`

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](#section/Authentication-and-Security/Permission-Groups) 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](#operation/getTransactions) 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

- `Api-Signature` string, required
- `Api-Timestamp` integer, required

## Request body

- WithdrawalRequest
  - `amount` string, required — An amount of a crypto-asset to transfer, without units. The unit is derived from the asset type.
  - `assetParametersATOM` WithdrawalParametersForATOM — Additional parameters to be provided exclusively when `assetType` is "ATOM". This field is deprecated, please migrate to using `assetParametersCosmos` instead
    - `memo` string, required — 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.
  - `assetParametersCosmos` WithdrawalParametersForCosmos — Additional parameters to be provided exclusively when `assetType` is for a Cosmos blockchain
    - `memo` string, required — 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.
  - `assetParametersExtra` WithdrawalParametersExtra — Extra parameters, to be provided for assets
    - `value` string, required — 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.
  - `assetParametersFiatTrustedDestination` WithdrawalParametersForFiatTrustedDestination — Additional parameters to be provided exclusively when the destination is a Trusted Destination and `assetType` is fiat.
    - `memo` string — Note to Beneficiary. If not provided, the memo on the Trusted Destination will be used by default.
    - `purpose` 'TRADING_SETTLEMENT' | 'LENDING' | 'INVESTMENT' | 'EXPENSES' | 'FEE_PAYMENT' | 'GRANT_PAYMENT' | 'PRIZE_AWARD' | 'GIFT' | 'REIMBURSEMENT' | 'REBALANCE' | 'INTRA_COMPANY', required — The purpose of the funds being withdrawn. * `TRADING_SETTLEMENT` - Trading Settlement * `LENDING` - Lending * `INVESTMENT` - Investment * `EXPENSES` - Expenses * `FEE_PAYMENT` - Fee Payment * `GRANT_PAYMENT` - Grant Payment * `PRIZE_AWARD` - Prize Award * `GIFT` - Gift * `REIMBURSEMENT` - Reimbursement * `REBALANCE` - Rebalance * `INTRA_COMPANY` - Intra Company
  - `assetParametersXLM` WithdrawalParametersForXLM — Additional parameters to be provided exclusively when `assetType` is "XLM"
    - `memo` string, required — 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.
  - `assetParametersXRP` WithdrawalParametersForXRP — Additional parameters to be provided exclusively when `assetType` is "XRP"
    - `destinationTag` integer, required — 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.
  - `assetType` 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.
  - `description` string, nullable — 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` ResourceDetails — An object representing a resource capable of receiving, or holding funds. Construction example: ``` { "id":"1c920f4241b78a1d483a29f3c24b6c4c", "type":"WALLET" } ```
    - `id` string, required — The identifier of the resource
    - `type` 'VAULT' | 'WALLET' | 'ADDRESS' | 'STANDING_INSTRUCTION', required — The type of the resource being referenced. Note that the VAULT type has been deprecated and WALLET should be used instead.
  - `idempotentId` string, nullable — A client-provided unique ID for idempotent requests (optional)
  - `source` SourceResourceDetailsRequest — An object representing a resource capable of sending funds. Construction example: ``` { "id":"1c920f4241b78a1d483a29f3c24b6c4c", "type":"WALLET" } ```
    - `customerId` string — Identifier of a Subaccout Customer. Required property if subaccount type is JOINT, optional otherwise
    - `id` string, required — The identifier of the resource
    - `type` 'VAULT' | 'WALLET' | 'SUBACCOUNT', required — The type of the resource being referenced. Note that the VAULT type has been deprecated and WALLET should be used instead.
  - `useGasStation` boolean, nullable — If true, the Anchorage Digital gas station will pay gas fees, for supported asset types and organizations.
  - `withdrawalAmlQuestionnaire` AMLQuestionnaire — Anti-money laundering questionnaire submission
    - `destinationType` 'FINANCIAL_INSTITUTION' | 'UNHOSTED_WALLET' | 'SELFHOSTED_WALLET' — Where the address that will receive the withdrawal is held. Use of UNHOSTED_WALLET is deprecated and shouldn't be used. Instead use SELFHOSTED_WALLET.
    - `institutionCountry` string — 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).
    - `institutionName` string — The name of the institution on the receiving end of the withdrawal, must be specified when the `destinationType` is `FINANCIAL_INSTITUTION`.
    - `originatorCity` string — The city of the person or entity that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT`.
    - `originatorCountry` string — 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).
    - `originatorName` string — The name of the client that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT`.
    - `originatorPostalCode` string — The zip code/postal code of the person or entity that is withdrawing the funds, can be specified when the `originatorType` is `MY_CLIENT`.
    - `originatorStateProvince` string — 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).
    - `originatorStreetAddress` string — The street address of the person or entity that is withdrawing the funds, must be specified when the `originatorType` is `MY_CLIENT`.
    - `originatorType` 'MY_ORGANIZATION' | 'MY_CLIENT' — Who is the originator of this withdrawal, must be specified when originator is a Financial Institution.
    - `purpose` 'TRADING_SETTLEMENT' | 'LENDING' | 'INVESTMENT' | 'EXPENSES' | 'FEE_PAYMENT' | 'GRANT_PAYMENT' | 'PRIZE_AWARD' | 'GIFT' | 'REIMBURSEMENT' | 'REBALANCE' | 'INTRA_COMPANY' | 'REWARDS_DISTRIBUTION', required — The purpose of the withdrawal.
    - `recipientCity` string — 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).
    - `recipientCountry` string — 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).
    - `recipientFirstName` string — The first name of the person that will receive the funds being withdrawn, must be specified when the `recipientType` is `PERSON`.
    - `recipientFullName` string — The full name of the entity that will receive the funds being withdrawn, must be specified when the `recipientType` is `ENTITY`.
    - `recipientLastName` string — The last name of the person that will receive the funds being withdrawn, must be specified when the `recipientType` is `PERSON`.
    - `recipientPostalCode` string — 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).
    - `recipientStateProvince` string — 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).
    - `recipientStreetAddress` string — 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).
    - `recipientType` 'DESTINATION_INSTITUTION' | 'MY_ORGANIZATION' | 'PERSON' | 'ENTITY' — The entity or person that will receive the funds being withdrawn. * `DESTINATION_INSTITUTION` - Financial institution specified above in `institutionName` * `MY_ORGANIZATION` - Same organization initiating the withdrawal, the Anchorage Digital account owner * `PERSON` - Other person * `ENTITY` - Other entity
    - `selfhostedDescription` string — A description of the self-hosted wallet, must be specified when the `destinationType` is `SELFHOSTED_WALLET`.
    - `useTrustedDestinationAml` boolean, nullable — When the withdrawal destination address is a Trusted Destination, the system can automatically fetch the Beneficiary and Destination information using the AML data provided for that Trusted Destination. This parameter needs to be used to specify if the Trusted Destination information should be used, when available: * `true` - no need to provide Beneficiary and Destination AML information, as the system will automatically use the information from the Trusted Destination * `false` - must provide the Beneficiary and Destination AML information in the API request

## Response `201`

Successfully initiated a withdrawal

- WithdrawalResponse
  - `data` WithdrawalDetails, required
    - `withdrawalId` string, required — The withdrawal ID which can be used to reference this operation in other queries

## Other responses

- `400` — Bad Request
- `401` — Unauthenticated
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.net/anchorage/apis/anchorage-digital-api-reference.md) · [All operations](https://skmtc.net/anchorage/apis/anchorage-digital-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anchorage/anchorage-digital-api-reference/versions/166864b1ec6d/schema)
