The Travel Rule requires Virtual Asset Service Providers (VASPs) to share originator and beneficiary information for cryptocurrency transfers above certain thresholds. This regulatory requirement, mandated by frameworks like FATF and MiCA, helps prevent money laundering and terrorist financing.
WhiteBIT provides API endpoints for Travel Rule compliance, enabling B2B clients to submit required data for deposits and withdrawals.
When Travel Rule applies
Travel Rule verification is required when:
The transaction involves cryptocurrency deposits or withdrawals
The account is registered in the European Economic Area (EEA)
The transaction meets regional threshold requirements
The Travel Rule API is enabled for the account
The Travel Rule API is not available to all accounts. To request access, contact the assigned Account Manager or email institutional@whitebit.com .
Wallet types
Type Description VASP required hostedVASP-hosted wallet (exchange, custodian) Yes — provide vaspData object unhostedSelf-custody wallet (hardware, software) No
Party types
Type Description Required fields individualNatural person firstName, lastName, residenceCountry, addressentityLegal entity fullName, residenceCountry, address
VASP identification
When the destination or originating wallet is hosted:
VASP in list — Use vaspId from the Get VASPs endpoint response
VASP not in list — Use vaspName with the VASP’s name as a string fallback
Country codes
All country fields use ISO 3166-1 alpha-3 codes (3-letter):
Code Country DEUGermany GBRUnited Kingdom NLDNetherlands FRAFrance USAUnited States
Deposit verification
Flow
Deposit examples
Individual from hosted wallet (VASP in list):
{
"uniqueId" : "550e8400-e29b-41d4-a716-446655440000" ,
"walletType" : "hosted" ,
"originator" : {
"type" : "individual" ,
"firstName" : "Alice" ,
"lastName" : "Johnson" ,
"residenceCountry" : "NLD" ,
"walletAddress" : "0x9876543210fedcba9876543210fedcba98765432" ,
"address" : {
"country" : "NLD" ,
"city" : "Amsterdam" ,
"addressLine1" : "Damrak 1"
}
},
"vaspData" : {
"vaspId" : "vasp-002"
}
}
Entity from hosted wallet (VASP not in list):
{
"uniqueId" : "550e8400-e29b-41d4-a716-446655440000" ,
"walletType" : "hosted" ,
"originator" : {
"type" : "entity" ,
"fullName" : "Acme Corporation Ltd" ,
"residenceCountry" : "GBR" ,
"walletAddress" : "0xabcdef1234567890abcdef1234567890abcdef12" ,
"address" : {
"country" : "GBR" ,
"city" : "London" ,
"postCode" : "EC2A 4BX" ,
"addressLine1" : "123 Finsbury Square"
}
},
"vaspData" : {
"vaspName" : "Famous Vasp Inc"
}
}
Individual from unhosted wallet:
{
"uniqueId" : "550e8400-e29b-41d4-a716-446655440000" ,
"walletType" : "unhosted" ,
"originator" : {
"type" : "individual" ,
"firstName" : "Bob" ,
"lastName" : "Smith" ,
"residenceCountry" : "DEU" ,
"walletAddress" : "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh" ,
"address" : {
"country" : "DEU" ,
"city" : "Berlin" ,
"addressLine1" : "Alexanderplatz 1"
}
}
}
Withdrawal with Travel Rule
Flow
Withdrawal examples
Individual to hosted wallet (VASP in list):
{
"ticker" : "BTC" ,
"amount" : "0.5" ,
"address" : "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh" ,
"uniqueId" : "withdraw-tr-001" ,
"travelRule" : {
"walletType" : "hosted" ,
"beneficiary" : {
"type" : "individual" ,
"firstName" : "John" ,
"lastName" : "Doe" ,
"residenceCountry" : "DEU" ,
"address" : {
"country" : "DEU" ,
"city" : "Berlin" ,
"addressLine1" : "Alexanderplatz 1"
}
},
"vaspData" : {
"vaspId" : "vasp-001"
}
}
}
Entity to hosted wallet (VASP not in list):
{
"ticker" : "USDT" ,
"amount" : "10000" ,
"address" : "0x742d35Cc6634C0532925a3b844Bc9e7595f8a2B1" ,
"network" : "ERC20" ,
"uniqueId" : "withdraw-tr-002" ,
"travelRule" : {
"walletType" : "hosted" ,
"beneficiary" : {
"type" : "entity" ,
"fullName" : "Acme Trading Ltd" ,
"residenceCountry" : "GBR" ,
"address" : {
"country" : "GBR" ,
"city" : "London" ,
"postCode" : "EC2A 4BX" ,
"addressLine1" : "123 Finsbury Square"
}
},
"vaspData" : {
"vaspName" : "Famous Vasp Inc"
}
}
}
Individual to unhosted wallet:
{
"ticker" : "ETH" ,
"amount" : "2.5" ,
"address" : "0xabcdef1234567890abcdef1234567890abcdef12" ,
"uniqueId" : "withdraw-tr-003" ,
"travelRule" : {
"walletType" : "unhosted" ,
"beneficiary" : {
"type" : "individual" ,
"firstName" : "Jane" ,
"lastName" : "Smith" ,
"residenceCountry" : "NLD" ,
"address" : {
"country" : "NLD" ,
"city" : "Amsterdam" ,
"addressLine1" : "Damrak 1"
}
}
}
}
The API still accepts the legacy flat format for withdrawals, but it will not pass Travel Rule verification . To complete Travel Rule compliance, use the new structured format.
Field mapping:
Legacy field New field typebeneficiary.typevaspvaspData.vaspId or vaspData.vaspNamenamebeneficiary.firstName (individual) or beneficiary.fullName (entity)addressbeneficiary.lastName (individual) or beneficiary.address (entity)
Legacy format example (won’t pass verification):
{
"ticker" : "BTC" ,
"amount" : "0.5" ,
"address" : "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh" ,
"uniqueId" : "withdraw-tr-legacy" ,
"travelRule" : {
"type" : "individual" ,
"vasp" : "Binance" ,
"name" : "John" ,
"address" : "Doe"
}
}
What’s next
Get available VASPs Retrieve the list of VASPs for travel rule submissions.
Submit deposit verification Submit originator data for a deposit pending verification.
Create withdraw request Create withdrawals with travel rule data.
EEA definition European Economic Area countries where Travel Rule applies.