Skip to main content

Questionnaire

The questionnaire field is a JSON string used to carry Travel Rule compliance information in both the Submit Deposit Originator Info and Withdraw endpoints. It replaces the legacy beneficiary + transactionPurpose combination for new integrations.

info
  • Max length: 16384 bytes
  • When both questionnaire and the legacy beneficiary/transactionPurpose fields are present, questionnaire takes precedence
  • Field names use lowerCamelCase (e.g. walletType, poiIssuingCountry)
  • Country codes follow ISO 3166-1 alpha-3 (e.g. JPN, TUR, KAZ, IND)
  • Dates follow ISO 8601 short format YYYY-MM-DD

Common Fields

The following fields apply to all compliance zones.

FieldTypeRequiredComments
walletTypeintegertrueWallet type. 0: custodial/VASP wallet. 1: non-custodial (personal) wallet
legalTypestringtrueEntity type. individual: natural person. company: legal entity / institution
vaspCodestring(64)ConditionalCounterparty VASP code. Required when walletType=0. Use others if not matched. Retrieve valid codes via the VASP List API
isSelfWalletboolfalseWhether the wallet belongs to the user themselves. For non-custodial wallets only
firstNamestring(128)ConditionalFirst name. Required when legalType=individual
lastNamestring(128)ConditionalLast name. Required when legalType=individual
companyNamestring(256)ConditionalCompany / institution name. Required when legalType=company

Regional Field Differences

EU (MiCA / TFR)

Common fields plus:

FieldTypeRequiredComments
transactionPurposestring(20,500)trueTransaction purpose. Minimum 20 characters

TUR — Turkey (MASAK)

Common fields plus all four POI document fields:

FieldTypeRequiredComments
poiTypestring(32)trueDocument type. ID_CARD / PASSPORT / DRIVERS / RESIDENCE_PERMIT / OTHER
poiNumberstring(64)trueDocument number
poiIssuingCountrystring(10)trueDocument issuing country, three-letter country code
poiExpiredDatestring(20)trueDocument expiry date, YYYY-MM-DD
transactionPurposestring(20,500)trueTransaction purpose. Minimum 20 characters

KAZ — Kazakhstan (AFSA)

Common fields plus all four POI document fields:

FieldTypeRequiredComments
poiTypestring(32)trueDocument type. ID_CARD / PASSPORT / DRIVERS / RESIDENCE_PERMIT / OTHER
poiNumberstring(64)trueDocument number
poiIssuingCountrystring(10)trueDocument issuing country, three-letter country code
poiExpiredDatestring(20)trueDocument expiry date, YYYY-MM-DD

BYBIT-IND — India (FIU-IND)

Common fields only. No additional required fields.

BYBIT-KOR — Korea (SAFA) — Withdrawal only

Common fields plus:

FieldTypeRequiredComments
representativeFirstNamestring(128)ConditionalCompany representative first name. Required when legalType=company (Korean SAFA requirement)
representativeLastNamestring(128)ConditionalCompany representative last name. Required when legalType=company (Korean SAFA requirement)
note

Korean entity deposit side does not use this questionnaire — it is handled separately via the local bank / CTP channel.

Compliance Zone Coverage

Entity CodeRegionWithdrawalDepositNotes
EUEUMiCA / TFR
TURTurkeyMASAK — POI required
KAZKazakhstanAFSA — POI required
BYBIT-INDIndiaFIU-IND
BYBIT-KORKoreaSAFA — company representative required for withdrawal; deposit handled via local bank / CTP

Examples

EU — Individual + Custodial Wallet

{
"walletType": 0,
"vaspCode": "BINANCEUS_VASP",
"legalType": "individual",
"firstName": "John",
"lastName": "Smith",
"transactionPurpose": "Personal investment in long-term holdings"
}

TUR — Individual + Non-Custodial Wallet

{
"walletType": 1,
"legalType": "individual",
"firstName": "Ahmet",
"lastName": "Yilmaz",
"poiType": "ID_CARD",
"poiNumber": "12345678901",
"poiIssuingCountry": "TUR",
"poiExpiredDate": "2030-06-15",
"transactionPurpose": "Long-term holding for retirement savings purpose"
}

KAZ — Company + Custodial Wallet

{
"walletType": 0,
"vaspCode": "EXAMPLE_VASP",
"legalType": "company",
"companyName": "Example LLC",
"poiType": "OTHER",
"poiNumber": "BIN1234567890",
"poiIssuingCountry": "KAZ",
"poiExpiredDate": "2099-12-31"
}

BYBIT-IND — Individual + Non-Custodial Wallet

{
"walletType": 1,
"legalType": "individual",
"firstName": "Rahul",
"lastName": "Sharma"
}

BYBIT-KOR — Company + Custodial Wallet (Withdrawal only)

{
"walletType": 0,
"vaspCode": "EXAMPLE_VASP",
"legalType": "company",
"companyName": "Example Co., Ltd.",
"representativeFirstName": "Min-jun",
"representativeLastName": "Kim"
}