Skip to main content
The AML questionnaire is required for external transfers and withdrawals. Some fields are conditional based on the presence or value of other fields.

Questionnaire type

Use the correct key for your operation:
OperationKey
External transfer APItransferAmlQuestionnaire
Withdrawal APIwithdrawalAmlQuestionnaire

Field reference

Max character length for all fields: 256.
FieldDescription
originatorTypeWho initiated the withdrawal: MY_ORGANIZATION or MY_CLIENT
originatorNameName of the client withdrawing funds (required if originatorType: MY_CLIENT)
originatorCountryISO 3166-1 alpha-2 country code of the originator (required if MY_CLIENT)
originatorStreetAddressStreet address of the originator (required if MY_CLIENT)
originatorPostalCodePostal code of the originator (required if MY_CLIENT)
originatorCityCity of the originator (required if MY_CLIENT)
originatorStateProvinceState/province of the originator (required if MY_CLIENT)
destinationTypeWhere the funds will be held: FINANCIAL_INSTITUTION or SELFHOSTED_WALLET
institutionNameName of the destination institution (required if FINANCIAL_INSTITUTION)
institutionCountryCountry of the destination institution (required if FINANCIAL_INSTITUTION)
selfhostedDescriptionDescription of the self-hosted wallet (required if SELFHOSTED_WALLET)
recipientTypeWho receives the funds: DESTINATION_INSTITUTION, MY_ORGANIZATION, PERSON, or ENTITY
recipientFirstNameRecipient first name (required if PERSON)
recipientLastNameRecipient last name (required if PERSON)
recipientFullNameRecipient full name (required if ENTITY)
recipientCountryISO 3166-1 alpha-2 country code of the recipient (required if PERSON or ENTITY)
recipientStreetAddressStreet address of recipient (required if recipientCity is sent)
recipientCityCity of recipient (required if recipientStreetAddress is sent)
recipientPostalCodePostal code of recipient (optional)
recipientStateProvinceState/province of recipient (optional)
purposePurpose of the withdrawal (see values below)
useTrustedDestinationAmlSet true to use reduced AML for trusted destinations

How to fill the questionnaire

Step 1: Fill destinationType

Where is the destination wallet hosted?
  • FINANCIAL_INSTITUTION — The wallet owner does not hold the private key; a third party does (e.g., Coinbase, Kraken). Required fields: institutionName, institutionCountry. See the full VASP list.
  • SELFHOSTED_WALLET — The wallet owner holds the private key (e.g., MetaMask, Trust Wallet, Ledger, Trezor, Electrum, Exodus). Required field: selfhostedDescription.

Step 2: Fill recipientType

Who will receive the funds?
  • DESTINATION_INSTITUTION — The financial institution specified in institutionName.
  • MY_ORGANIZATION — The same organization initiating the withdrawal.
  • PERSON — Required: recipientFirstName, recipientLastName, recipientCountry. Optional: recipientStreetAddress, recipientPostalCode, recipientCity, recipientStateProvince.
  • ENTITY — Required: recipientFullName, recipientCountry. Required if recipientCity sent: recipientStreetAddress. Required if recipientStreetAddress sent: recipientCity. Optional: recipientPostalCode, recipientStateProvince.

Step 3: Fill originatorType

Who initiated this withdrawal?
  • MY_ORGANIZATION — Your API key initiated the withdrawal and assets are not being moved on behalf of an end client.
  • MY_CLIENT — Your API key is acting as a financial institution moving assets on a client’s behalf. The following fields are then required: originatorName, originatorCountry, originatorStreetAddress, originatorPostalCode, originatorCity, originatorStateProvince.

Step 4: Fill purpose

TRADING_SETTLEMENT | LENDING | INVESTMENT | EXPENSES | FEE_PAYMENT | GRANT_PAYMENT | PRIZE_AWARD | GIFT | REIMBURSEMENT | REBALANCE | INTRA_COMPANY

Examples

// example data — not for client use
{
  "source": {
    "id": "{WALLET ID}",
    "type": "WALLET"
  },
  "destination": {
    "id": "{ADDRESS}",
    "type": "ADDRESS"
  },
  "assetType": "ETHHOODI",
  "amount": "1500",
  "transferMemo": "Test Memo",
  "idempotentId": "006a3d80a4854e64a218cef6005b12315",
  "transferAmlQuestionnaire": {
    "purpose": "INVESTMENT",
    "originatorType": "MY_ORGANIZATION"
  }
}

Institution / country mapping

These are recommended mappings. Verify current values independently, as they may change.
InstitutionCountry
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

DateChangeDetails
2026-01-20Copper country code updatedinstitutionCountryGB
2024-04-04Self-hosted wallet destination typeUNHOSTED_WALLET renamed → SELFHOSTED_WALLET
2024-04-04Self-hosted wallet description fieldunhostedDescription renamed → selfhostedDescription
2024-04-04recipientStreetAddress requirementNow required if recipientCity is sent
2024-04-04recipientCity requirementNow required if recipientStreetAddress is sent