Case 3: Receiving Entity is a Non-Custodial Wallet

A case where the Travel Rule triggers.

When sending assets to a self-custodial wallet, Bitso does not request any information about your beneficiary. However, you do need to include a compliance object with an empty travel_rule object in your request. As in the former Cases, the withdrawal request body varies depending on whether the beneficiary is uncreated, created without Travel Rule information declared, or created with Travel Rule information already declared.

Uncreated Beneficiary

The following objects show the general structure of the request body and exemplify its use. The request body includes the same key-value pairs of transactions under 1,000 euros providing the beneficiary’s address, but it adds a compliance object with an empty travel_rule object.

{
   "compliance": {
      "travel_rule": {
      }
   }
  
   #  … same transaction data as withdrawals under 1,000 euros
}
{
    "amount": "amount ≥ 1,000 euros",
    "currency": "xrp",
    "method": "rp",
    "origin_id": "android-cffbb40c5900c395d9244ed5",
    "network": "rp",
    "protocol": "ripple",
    "asset": "xrp",
    "address": "destination address",
    "destination_tag": "5403767",
    "max_fee": "0.15538100",
    "compliance": {
        "travel_rule": {
        }
    }
}
{
    "amount": "amount ≥ 1,000 euros",
    "currency": "btc",
    "method": "btc",
    "origin_id": "android-cffbb40c5900c395d9244ed5",
    "network": "btc",
    "protocol": "btc",
    "asset": "btc",
    "address": "destination address",
    "max_fee": "0.15538100",
    "compliance": {
        "travel_rule": {
        }
    }
}

Created Beneficiary without Travel Rule Information Declared

In the first transaction, you use the same request object as that of transactions under 1,000 euros providing the beneficiary's ID but include the compliance object for the Case at hand.

The following objects depict the general structure of the request body and exemplify its use:

{
    "amount": "amount ≥ 1,000 euros",
    "origin_id": "unique random ID",
    "max_fee": "highest fee user is willing to pay for the transaction",
    "contact_id": beneficiary ID,

    # … same compliance object required for Case 3 Uncreated Beneficiary
}
{
    "amount": "amount under 1,000 euros",
    "origin_id": "android-cffbb40c5900c395d9244ed5",
    "max_fee": "0.15538100",
    "contact_id": "20395",
    "compliance": {
        "travel_rule": {
        }
    }
}

Created Beneficiary with Travel Rule Information Already Declared

After you complete the first transaction equal to or greater than 1,000 euros for this beneficiary, you no longer need to include the compliance object that contains the empty travel_rule object. The request body is the same as the one used in transactions under 1,000 euros using the beneficiary's ID:

{
    "amount": "amount < 1,000 euros",
    "origin_id": "android-cffbb40c5900c395d9244ed5",
    "max_fee": "0.15538100",
    "contact_id": 20395
}

Did this page help you?