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_ORGANIZATIONMY_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_INSTITUTIONSELFHOSTED_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_INSTITUTIONMY_ORGANIZATIONPERSONENTITY
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:
FINANCIAL_INSTITUTION- If the destination wallet is hosted by a financial institution, the following fields must be filled.institutionNameinstitutionCountry
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)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:
DESTINATION_INSTITUTION- Financial institution specified above ininstitutionNameMY_ORGANIZATION- The same organization initiating the withdrawal.PERSON- When the recipient is a person. Some of the following fields require responses.recipientFirstName- RequiredrecipientLastName- RequiredrecipientCountry- RequiredrecipientStreetAddress- OptionalrecipientPostalCode- OptionalrecipientCity- OptionalrecipientStateProvince- Optional
ENTITY- When the recipient is a legal entity. Some of the following fields require responses.recipientFullName- RequiredrecipientCountry- RequiredrecipientStreetAddress- Required ifrecipientCityis sent. Optional otherwise. (Updated 4.4.24)recipientPostalCode- OptionalrecipientCity- Required ifrecipientStreetAddressis sent. Optional otherwise. (Updated 4.4.24)recipientStateProvince- Optional
Is this withdrawal initiated for yourself or initiated by you for your client?
- Who is the originator of this withdrawal?
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.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.)- If so, the following fields must be filled out:
originatorName- Name of your client requesting this withdrawal.originatorCountry- Country address of your client requesting this withdrawal.originatorStreetAddress- Street address of your client requesting this withdrawal.originatorPostalCode- Postal code address of your client requesting this withdrawal.originatorCity- City address of your client requesting this withdrawal.originatorStateProvince- State address of your client requesting this withdrawal.
- If so, the following fields must be filled out:
Fill purpose
This field answers the questions of what’s the purpose of the withdrawal? There are 10 options:
TRADING_SETTLEMENTLENDINGINVESTMENTEXPENSESFEE_PAYMENTGRANT_PAYMENTPRIZE_AWARDGIFTREIMBURSEMENTREBALANCEINTRA_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&institutionCountrymapping
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.
institutionName | institutionCountry |
|---|---|
| Altonomy | SG |
| Amber Group | SG |
| Anchorage Digital Bank | US |
| B2C2 | UK |
| Binance | HK |
| Binance.US | US |
| BitGo | US |
| BitKub | TH |
| Bittrex | US |
| Bitwage | US |
| Circle | US |
| Coinbase | US |
| CoinList | US |
| Copper | GB |
| Cross Tower | US |
| Cross Tower Bermuda | BM |
| Cumberland | US |
| Deribit | PA |
| DV Chain | US |
| FalconX | US |
| Fidelity | US |
| Fireblocks | US |
| Floating Point Group | US |
| Flow Traders | NL |
| FXCH | IE |
| Galaxy Digital | US |
| Gemini | US |
| Genesis | US |
| GSR | HK |
| Hex Trust | HK |
| Huobi | SC |
| Jane Street | US |
| Kraken | US |
| NYDIG | US |
| OKX | SC |
| OSL | HK |
| PrimeTrust | US |
| Tokenomy | SG |
| Wintermute | UK |
| Zap Solutions, Inc. | US |
Changelog
| Date | Overview | Details |
|---|---|---|
| 01/20/26 | Update Copper country code | institutionCountry = GB |
| 04/04/24 | Self-hosted wallet destination type | Destination type UNHOSTED_WALLET changed -> SELFHOSTED_WALLET |
| 04/04/24 | Self-hosted wallet description | Field unhostedDescription changed -> selfhostedDescription |
| 04/04/24 | recipientStreetAddress requirement | recipientStreetAddress is now required if recipientCity is sent |
| 04/04/24 | recipientCity requirement | recipientCity is now required if recipientStreetAddress is sent |
Updated about 1 month ago