Withdrawals Equal to or above the Travel Rule Threshold
When the amount of assets transferred is greater than or equal to 1,000 euros, the transaction needs to go through the Travel Rule (TR) flow, so you need to add the mandatory TR compliance information to your request body in each transaction.
However, recall that an already created beneficiary needs to go through the TR flow only once, so when the TR information has been declared for a created beneficiary, the transaction's flow and the request body is that of a withdrawal under the threshold providing the beneficiary's ID.
To construct your request, see which case your transaction matches:
- Case 1: Receiving VASP is different from Bitso, and the beneficiary is other than the originator.
- Case 2: Receiving VASP is different from Bitso, and the beneficiary is the same as the originator
(the account must be under the same name). - Case 3: Receiving entity is a self-custodial wallet.
In each of these cases, the beneficiary can be uncreated, created without Travel Rule information declared, or created with Travel Rule information declared:
- For an uncreated beneficiary, the Travel Rule information (
complianceobject) is mandatory on each withdrawal. - For a created beneficiary without Travel Rule data declared, you include the Travel Rule information only in the first withdrawal because when the system completes this first transaction, it stores the Travel Rule information along with the beneficiary's information. Hence, you don't need to include the
complianceobject in subsequent transactions. - For a created beneficiary with Travel Rule data already declared, the transaction reduces to a transaction under the threshold using
contact_id. Use the request body explained in the section, Withdrawal Providing the Beneficiary's ID.
All in all, when dealing with a created beneficiary (with or without TR information declared), you always use the contact_id in your request body, which enables the system to retrieve the digital address and withdrawal taxonomy. Whereas, when using an uncreated beneficiary, you must include the destination address and transaction taxonomy.
The Travel Rule compliance information is the following:
- Beneficiary's full name or business legal name. The beneficiary might be an individual or a business entity.
- Receiving VASP's Decentralized Identifier (DID).
If you do not have the receiving VASP's DID, then you can retrieve a testing DID catalog by calling the following endpoint:
GET https://stage.bitso.com/api/v3/vasps
VASP not in the catalog?If the VASP you need is not in the catalog, then use the property
nameinstead ofdidin your request body,"name": "VASP's name".
Ensure you access the correct DID catalog.For going to production, you need the VASP identifiers used in this environment. Use the URL https://bitso.com/api/v3/vasps to retrieve the DIDs of production.
🚀 To execute a withdrawal for 1,000 euros or more, make the following HTTP request using the body parameters corresponding to your particular Case. For further details, see the articles that explain each Case.
POST https://api-stage.bitso.com/v3/withdrawals
Body Parameters
The request body includes transaction-related parameters and TR-related ones. The latter is named compliance object and contains the following fields:
compliance: Contains the Travel Rule information.-
travel_rule: Contains the VASP's and beneficiary's information. -
vasp: Contains the receiving VASP's ID. -
did: Indicates the receiving VASP's identifier. For example, Binance's is: did:ethr:0x401c4bc0241bc787f64510f21a4ae7ec3603487c. -
beneficiary: Contains the beneficiary data. -
name: Indicates the business legal name or full personal name. In the case of an individual, it must specify both the First and Last name. -
type: Indicates whether it's a business or personal account. Valid values: LEGAL and NATURAL.
And the rest of the body parameters?The body parameters related to the transaction are documented in the section, Withdrawals Under the Travel Rule Threshold.
Updated 8 months ago
