The Travel Rule is a regulatory requirement that mandates Virtual Asset Service Providers (VASPs) to collect and transmit originator and beneficiary information for cryptocurrency transfers above a certain threshold. When a deposit or a withdrawal triggers this requirement, Uphold issues a request for information that must be fulfilled before the transfer can proceed.
There are two ways to retrieve the details of a travel rule request, depending on the context:
- Deposits: the transaction is already present and may have a pending travel rule request associated with it. Use Get Travel Rule Details for a Transaction with the
transactionIdto retrieve those details. - Withdrawals: when creating a quote, the transaction response may include a
requirementsDetails.requestForInformationIdif the Travel Rule applies. Use Get Travel Rule Details with that ID to retrieve the details, then Submit Travel Rule Information before committing the quote.
curl https://api.uphold.com/v0/me/travel-rule/transactions/2c326b15-7106-48be-a326-06f19e69746b/request \
-H "Authorization: Bearer <token>"The above command returns the following JSON:
{
"amount": "1500.00",
"currency": "USDT",
"formSchema": {
"properties": {
"beneficiaryAccountNumber": {
"title": "Beneficiary account number",
"type": "string"
},
"beneficiaryAddress": {
"title": "Beneficiary address",
"type": "string"
},
"beneficiaryCountry": {
"title": "Beneficiary country",
"type": "string"
},
"beneficiaryName": {
"title": "Beneficiary name",
"type": "string"
}
},
"required": [
"beneficiaryName",
"beneficiaryAddress",
"beneficiaryCountry",
"beneficiaryAccountNumber"
],
"type": "object"
},
"threshold": "1000.00"
}Retrieves the details of the pending travel rule request associated with a deposit transaction, including the transaction amount, the applicable regulatory threshold, and the form schema describing the information that must be submitted.
GET https://api.uphold.com/v0/me/travel-rule/transactions/:transactionId/request
transactions:read scope for Uphold Connect applications. Returns a 401 HTTP error if the token is missing or invalid, or a 403 HTTP error if the required scope is not present.
Returns a 404 HTTP error if no pending travel rule request is associated with the given transaction.
Returns an object with the following properties:
| Property | Description |
|---|---|
| amount | The transaction amount that triggered the travel rule requirement. |
| currency | The currency of the transaction. |
| formSchema | A JSON Schema object describing the fields the user must provide via the Submit Travel Rule Information endpoint. |
| threshold | The regulatory threshold above which the travel rule applies, in the same currency as amount. |
curl https://api.uphold.com/v0/me/travel-rule/requests/a4e5e6f7-1234-5678-abcd-ef0123456789 \
-H "Authorization: Bearer <token>"The above command returns the following JSON:
{
"amount": "1500.00",
"currency": "USDT",
"formSchema": {
"properties": {
"beneficiaryAccountNumber": {
"title": "Beneficiary account number",
"type": "string"
},
"beneficiaryAddress": {
"title": "Beneficiary address",
"type": "string"
},
"beneficiaryCountry": {
"title": "Beneficiary country",
"type": "string"
},
"beneficiaryName": {
"title": "Beneficiary name",
"type": "string"
}
},
"required": [
"beneficiaryName",
"beneficiaryAddress",
"beneficiaryCountry",
"beneficiaryAccountNumber"
],
"type": "object"
},
"threshold": "1000.00"
}Retrieves the details of a pending travel rule request for a withdrawal, using the requestForInformationId returned as part of the quote response.
GET https://api.uphold.com/v0/me/travel-rule/requests/:requestForInformationId
transactions:read scope for Uphold Connect applications. Returns a 401 HTTP error if the token is missing or invalid, or a 403 HTTP error if the required scope is not present.
The :requestForInformationId must be owned by the authenticated user. A 404 HTTP error is returned otherwise.
Returns an object with the following properties:
| Property | Description |
|---|---|
| amount | The transaction amount that triggered the travel rule requirement. |
| currency | The currency of the transaction. |
| formSchema | A JSON Schema object describing the fields the user must provide via the Submit Travel Rule Information endpoint. |
| threshold | The regulatory threshold above which the travel rule applies, in the same currency as amount. |
curl https://api.uphold.com/v0/me/travel-rule/requests/a4e5e6f7-1234-5678-abcd-ef0123456789 \
-X POST \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "beneficiaryAccountNumber": "0x1234abcd", "beneficiaryAddress": "123 Main St", "beneficiaryCountry": "US", "beneficiaryName": "Jane Doe" }'Submits the originator or beneficiary information required to fulfill a pending travel rule request.
The fields in the request body must conform to the formSchema returned by the Get Travel Rule Details for a Transaction or Get Travel Rule Details endpoints.
For withdrawals, this must be submitted before committing the quote.
POST https://api.uphold.com/v0/me/travel-rule/requests/:requestForInformationId
transactions:withdraw scope for Uphold Connect applications. Returns a 401 HTTP error if the token is missing or invalid, or a 403 HTTP error if the required scope is not present.
The :requestForInformationId must be owned by the authenticated user. A 404 HTTP error is returned otherwise.
The request body must be a valid JSON object whose properties satisfy the formSchema associated with the given requestForInformationId.
A 400 HTTP error is returned if the request body is not a valid JSON object.
Returns HTTP status code 204 with an empty body upon success.