Skip to main content
POST
/
screening
/
travel_rule
/
transaction
/
validate
Validate Travel Rule Transaction
curl --request POST \
  --url https://api.fireblocks.io/v1/screening/travel_rule/transaction/validate \
  --header 'Content-Type: application/json' \
  --data '
{
  "transactionAsset": "BTC",
  "destination": "bc1qxy2kgdygjrsqtzq2n0yrf1234p83kkfjhx0wlh",
  "transactionAmount": "10",
  "originatorVASPdid": "did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2",
  "originatorEqualsBeneficiary": false,
  "transactionAssetDecimals": 8,
  "travelRuleBehavior": true,
  "beneficiaryVASPdid": "did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992",
  "beneficiaryVASPname": "HelloCrypto",
  "beneficiaryName": "John Doe",
  "beneficiaryAccountNumber": "1234-1234-1234-12234",
  "beneficiaryAddress": {
    "street": "1234 Example St",
    "city": "New York",
    "state": "NY",
    "postalCode": "10001"
  }
}
'
{
  "isValid": true,
  "type": "TRAVELRULE",
  "beneficiaryAddressType": "UNKNOWN",
  "addressSource": "UNKNOWN",
  "beneficiaryVASPdid": "did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992",
  "beneficiaryVASPname": "Fireblocks",
  "warnings": [
    "optional-beneficiaryAccountNumber"
  ]
}

Documentation Index

Fetch the complete documentation index at: https://fireblocks-43c4b3ee-chore-add-cli.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Headers

Idempotency-Key
string

A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.

Query Parameters

notation
enum<string>[]

Specifies the notation of the transaction. Possible values are: - notabene: Uses Notabene notation (default behavior). - fireblocks: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - <none>: Defaults to notabene for backward compatibility. Note: The default value for the notation parameter will change from notabene to fireblocks Update your integrations accordingly.

Available options:
fireblocks,
notabene

Body

application/json
transactionAsset
string
required

Transaction asset symbol (BTC,ETH)

Example:

"BTC"

destination
string
required

Transaction destination address

Example:

"bc1qxy2kgdygjrsqtzq2n0yrf1234p83kkfjhx0wlh"

transactionAmount
string
required

Transaction amount in the transaction asset

Example:

"10"

originatorVASPdid
string
required

This is the identifier assigned to your VASP

Example:

"did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2"

originatorEqualsBeneficiary
boolean
required

"True" if the originator and beneficiary is the same person and you therefore do not need to collect any information. "False" if it is a third-party transfer.

Example:

false

transactionAssetDecimals
number

Number of decimals in the transaction asset. This is used to convert the transaction amount to the smallest unit of the asset

Example:

8

travelRuleBehavior
boolean

This will also check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction

Example:

true

beneficiaryVASPdid
string

This is the identifier assigned to the VASP the funds are being sent to

Example:

"did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992"

beneficiaryVASPname
string

Beneficiary VASP name

Example:

"HelloCrypto"

beneficiaryName
string

Beneficiary name

Example:

"John Doe"

beneficiaryAccountNumber
string

Beneficiary name

Example:

"1234-1234-1234-12234"

beneficiaryAddress
object

Response

Transaction validated successfully

isValid
boolean
required

"isValid" will tell you if you have collected all the information needed for the travel rule data transfer. Once this field = "true", you can move on to the next step which is to transfer the front-end information to your back-end and perform Travel Rule Transaction create

Example:

true

type
string
required

"type" will tell you if the virtual asset value converted to FIAT value of the withdrawal request is above (=TRAVELRULE) or below (=BELOW_THRESHOLD) the threshold in your jurisdiction. If it is to an unhosted wallet which does not require travel rule information to be sent and only collected, it will say NON_CUSTODIAL.

Example:

"TRAVELRULE"

beneficiaryAddressType
enum<string>
required

"beneficiaryAddressType" will tell you if your blockchain analytics provider or internal address book has been able to identify the wallet address.

Available options:
UNKNOWN,
HOSTED,
UNHOSTED
Example:

"UNKNOWN"

addressSource
enum<string>
required

"addressSource" will tell you if the address was found in your internal address book or identified by the blockchain analytics provider.

Available options:
UNKNOWN,
ADDRESS_HASH,
ADDRESS_GRAPH,
CHAINALYSIS,
ELLIPTIC,
CRYSTAL
Example:

"UNKNOWN"

beneficiaryVASPdid
string
required

The VASP DID of the beneficiary VASP

Example:

"did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992"

beneficiaryVASPname
string
required

"beneficiaryVASPname" will tell you the name of the VASP that has been identified as the owner of the wallet address. This name is used in a subsequent call to get its DID.

Example:

"Fireblocks"

warnings
string[]
required

"errors/warnings" will tell you what information about the beneficiary you need to collect from the sender.

Example:
["optional-beneficiaryAccountNumber"]