AML questionnaire

AML questionnaire guide

Below is the complete list of fields in AML questionnaire payload. Note that some of the fields are conditional depending on the presence or value of other fields. The details are provided in a later section of this document in a table.




AML questionnaire type

Please ensure you have the correct AML questionnaire type for your operation:

  • For external transfers API: transferAmlQuestionnaire
  • For withdrawals API: withdrawalAmlQuestionnaire



AML questionnaire payload data

  • originatorType : The originator of this withdrawal. It can be one of the following:
    • MY_ORGANIZATION
    • MY_CLIENT
  • originatorName: The name of the client withdrawing the funds.
  • originatorCountry: The country (in ISO 3166-1 alpha-2 code) of the client withdrawing the funds.
  • originatorStreetAddress: The street address of the person or entity withdrawing the funds.
  • originatorPostalCode: The zip code/postal code of the person or entity withdrawing the funds.
  • originatorCity: The city of the person or entity withdrawing the funds.
  • originatorStateProvince: The state/province of the person or entity withdrawing the funds.
  • destinationType: The type of the destination where the fund will be held at. It can be one of the following:
    • FINANCIAL_INSTITUTION
    • SELFHOSTED_WALLET (updated 4.4.24)
  • institutionName: The name of the destination institution.
  • institutionCountry: The country of the destination institution.
  • selfhostedDescription: A description of the self-hosted wallet (updated 4.4.24).
  • recipientType: The type of the recipient. It can be one of the following:
    • DESTINATION_INSTITUTION
    • MY_ORGANIZATION
    • PERSON
    • ENTITY
  • recipientFirstName: The first name of the recipient.
  • recipientLastName: The last name of the recipient.
  • recipientFullName: The full name of the recipient.
  • recipientCountry: The country of the recipient in ISO 3166-1 alpha-2 code.
  • recipientStreetAddress: The street address of the recipient.
  • recipientPostalCode: The postal code of recipient.
  • recipientCity: The city of the recipient.
  • recipientStateProvince: The state/province of the recipient.
  • purpose: The purpose of the withdrawal.

Note: Input character max is 256.

How to fill the AML questionnaire?

To fill the questionnaire, follow the below 5 steps from the beginning to the end.

FilldestinationType . This field is required and answers the question of where is the destination wallet hosted? There are 2 options:

  1. FINANCIAL_INSTITUTION- If the destination wallet is hosted by a financial institution, the following fields must be filled.
    1. institutionName
    2. institutionCountry
  2. UNHOSTED_WALLET - If the destination wallet is unhosted, the following fields must be filled. (The wallet owner has complete control over the wallet as they have the private key. Examples of self-hosted wallets include: Metamask, Trust Wallet, Ledger Nano X, Trezor One, Electrum, and Exodus)
    1. unhostedDescription

How do I define a financial institution?

The wallet owner does not have complete control over the wallet as they do not have the private key; a third party does. This key is needed to conduct transfers.

Examples of custodial wallets include: Coinbase, Kraken, etc.

Full list of virtual asset service providers (VASPs)/ financial institutions

FillrecipientType . This field is required and answers the question of who will receive the fund? There are 4 options:

  1. DESTINATION_INSTITUTION- Financial institution specified above in institutionName
  2. MY_ORGANIZATION - The same organization initiating the withdrawal.
  3. PERSON - When the recipient is a person. Some of the following fields require responses.
    1. recipientFirstName - Required
    2. recipientLastName - Required
    3. recipientCountry - Required
    4. recipientStreetAddress - Optional
    5. recipientPostalCode - Optional
    6. recipientCity - Optional
    7. recipientStateProvince - Optional
  4. ENTITY - When the recipient is a legal entity. Some of the following fields require responses.
    1. recipientFullName - Required
    2. recipientCountry - Required
    3. recipientStreetAddress - Required if recipientCity is sent. Optional otherwise. (Updated 4.4.24)
    4. recipientPostalCode - Optional
    5. recipientCity - Required if recipientStreetAddress is sent. Optional otherwise. (Updated 4.4.24)
    6. recipientStateProvince - Optional

Is this withdrawal initiated for yourself or initiated by you for your client?

  1. Who is the originator of this withdrawal?
    1. MY_ORGANIZATION - If the withdrawal/ external transfer is initiated by your API key and you are not a financial institution, or if you are an FI but the assets are not being moved on behalf of an end client.
    2. MY_CLIENT - If the withdrawal/ external transfer is initiated by your API key and you are a financial institution, and the withdrawal/ external transfer is initiated by you on your client's behalf. (Your client is instructing you to move their assets out of your wallet at Anchorage Digital to another wallet.)
      1. If so, the following fields must be filled out:
        1. originatorName - Name of your client requesting this withdrawal.
        2. originatorCountry - Country address of your client requesting this withdrawal.
        3. originatorStreetAddress - Street address of your client requesting this withdrawal.
        4. originatorPostalCode - Postal code address of your client requesting this withdrawal.
        5. originatorCity - City address of your client requesting this withdrawal.
        6. originatorStateProvince - State address of your client requesting this withdrawal.

Fill purpose

This field answers the questions of what’s the purpose of the withdrawal? There are 10 options:

  1. TRADING_SETTLEMENT
  2. LENDING
  3. INVESTMENT
  4. EXPENSES
  5. FEE_PAYMENT
  6. GRANT_PAYMENT
  7. PRIZE_AWARD
  8. GIFT
  9. REIMBURSEMENT
  10. REBALANCE
  11. INTRA_COMPANY

Additional information

  • Counterparty - Jurisdiction Mapping
  • Note: These are the recommended mappings but cannot be hard-coded in the UI, as there needs to be an option to enter a custom value if needed.
    • institutionName & institutionCountry mapping



Examples

/example data - not for client use
{
  "source": {
    "id": "{ADD WALLET ID HERE}",
    "type": "WALLET"
  },
  "destination": {
    "id": "{ADD ADDRESS or TRUSTED DESTINATINO ID HERE}",
    "type": "TRUSTED_DESTINATION/ADDRESS"
  },
  "assetType": "ETHHOODI",
  "amount": "1500",
  "transferMemo": "Test Memo",
  "idempotentId": "006a3d80a4854e64a218cef6005b12315",
  "transferAmlQuestionnaire": {
		"purpose": "INVESTMENT",
    "originatorType": "MY_ORGANIZATION"
}
/example data - not for client use
{
  idempotentId: "{Add ID}",
  amount: "123.00",
  assetType: "USDANCHOODI",
  source: {
    id: "{Vault ID}",
    type: "VAULT",
  },
  destination: {
    type: "ADDRESS",
    id: "{ADDRESS HERE}",
  },
  "description": "Test Withdrawal",
  "useGasStation": false,
  "withdrawalAmlQuestionnaire": {
    "destinationType": "SELFHOSTED_WALLET",
    "recipientType": "PERSON",
    "purpose": "INVESTMENT",
    "originatorType": "MY_ORGANIZATION",
    "selfhostedDescription": "a wallet description",
    "recipientFirstName": "John",
    "recipientLastName": "Recipient",
    "recipientFullName": "John Recipient Full Name",
    "recipientCountry": "US",
    "recipientStreetAddress": "Some Recipient Street",
    "recipientCity": "New York",
    "recipientStateProvince": "NY",
    "recipientPostalCode": "10101"
  }
/example data - not for client use
{
  idempotentId: "{Add ID}",
  amount: "123.00",
  assetType: "USDANCHOODI",
  source: {
    id: "{Vault ID}",
    type: "VAULT",
  },
 "destination": {
    "id": "{ADD ADDRESS or TRUSTED DESTINATINO ID HERE}",
    "type": "TRUSTED_DESTINATION/ADDRESS"
  },
  "description": "Test Withdrawal",
  "useGasStation": false,
  "withdrawalAmlQuestionnaire": {
	 	"useTrustedDestinationAml": true,  
 		"originatorType": "MY_ORGANIZATION",
    "purpose": "INVESTMENT",
  }
}

Note: Please double-check these yourself, as they may have changed since this was published.

institutionNameinstitutionCountry
AltonomySG
Amber GroupSG
Anchorage Digital BankUS
B2C2UK
BinanceHK
Binance.USUS
BitGoUS
BitKubTH
BittrexUS
BitwageUS
CircleUS
CoinbaseUS
CoinListUS
CopperGB
Cross TowerUS
Cross Tower BermudaBM
CumberlandUS
DeribitPA
DV ChainUS
FalconXUS
FidelityUS
FireblocksUS
Floating Point GroupUS
Flow TradersNL
FXCHIE
Galaxy DigitalUS
GeminiUS
GenesisUS
GSRHK
Hex TrustHK
HuobiSC
Jane StreetUS
KrakenUS
NYDIGUS
OKXSC
OSLHK
PrimeTrustUS
TokenomySG
WintermuteUK
Zap Solutions, Inc.US

Changelog

DateOverviewDetails
01/20/26Update Copper country codeinstitutionCountry = GB
04/04/24Self-hosted wallet destination typeDestination type UNHOSTED_WALLET changed -> SELFHOSTED_WALLET
04/04/24Self-hosted wallet descriptionField unhostedDescription changed -> selfhostedDescription
04/04/24recipientStreetAddress requirementrecipientStreetAddress is now required if recipientCity is sent
04/04/24recipientCity requirementrecipientCity is now required if recipientStreetAddress is sent


Did this page help you?