curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--data '
{
"source_address": "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7",
"network": "TRX",
"meta_data": {
"wallet_type": "hosted",
"address_party": "third_party",
"beneficiary_information": {
"entity_type": "individual",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Pte Ltd",
"country": "sg",
"city": "Singapore",
"vasp_id": "I1QNLP",
"vasp_name": "Binance",
"id_type": "<string>",
"id_primary": "<string>"
}
}
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender"
payload = {
"source_address": "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7",
"network": "TRX",
"meta_data": {
"wallet_type": "hosted",
"address_party": "third_party",
"beneficiary_information": {
"entity_type": "individual",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Pte Ltd",
"country": "sg",
"city": "Singapore",
"vasp_id": "I1QNLP",
"vasp_name": "Binance",
"id_type": "<string>",
"id_primary": "<string>"
}
}
}
headers = {
"x-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-auth-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
source_address: 'TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7',
network: 'TRX',
meta_data: {
wallet_type: 'hosted',
address_party: 'third_party',
beneficiary_information: {
entity_type: 'individual',
first_name: 'John',
last_name: 'Doe',
company_name: 'Acme Pte Ltd',
country: 'sg',
city: 'Singapore',
vasp_id: 'I1QNLP',
vasp_name: 'Binance',
id_type: '<string>',
id_primary: '<string>'
}
}
})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source_address' => 'TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7',
'network' => 'TRX',
'meta_data' => [
'wallet_type' => 'hosted',
'address_party' => 'third_party',
'beneficiary_information' => [
'entity_type' => 'individual',
'first_name' => 'John',
'last_name' => 'Doe',
'company_name' => 'Acme Pte Ltd',
'country' => 'sg',
'city' => 'Singapore',
'vasp_id' => 'I1QNLP',
'vasp_name' => 'Binance',
'id_type' => '<string>',
'id_primary' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-auth-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender"
payload := strings.NewReader("{\n \"source_address\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\",\n \"network\": \"TRX\",\n \"meta_data\": {\n \"wallet_type\": \"hosted\",\n \"address_party\": \"third_party\",\n \"beneficiary_information\": {\n \"entity_type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"company_name\": \"Acme Pte Ltd\",\n \"country\": \"sg\",\n \"city\": \"Singapore\",\n \"vasp_id\": \"I1QNLP\",\n \"vasp_name\": \"Binance\",\n \"id_type\": \"<string>\",\n \"id_primary\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-auth-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"source_address\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\",\n \"network\": \"TRX\",\n \"meta_data\": {\n \"wallet_type\": \"hosted\",\n \"address_party\": \"third_party\",\n \"beneficiary_information\": {\n \"entity_type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"company_name\": \"Acme Pte Ltd\",\n \"country\": \"sg\",\n \"city\": \"Singapore\",\n \"vasp_id\": \"I1QNLP\",\n \"vasp_name\": \"Binance\",\n \"id_type\": \"<string>\",\n \"id_primary\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source_address\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\",\n \"network\": \"TRX\",\n \"meta_data\": {\n \"wallet_type\": \"hosted\",\n \"address_party\": \"third_party\",\n \"beneficiary_information\": {\n \"entity_type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"company_name\": \"Acme Pte Ltd\",\n \"country\": \"sg\",\n \"city\": \"Singapore\",\n \"vasp_id\": \"I1QNLP\",\n \"vasp_name\": \"Binance\",\n \"id_type\": \"<string>\",\n \"id_primary\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Success",
"data": null
}Submit Deposit Sender Travel Rule
Submit the originator (sender) Travel Rule data for an incoming deposit. Call this when a deposit notification arrives with need_travel_rule=true; once accepted, that deposit and later deposits from the same source address can proceed. Deposit-sender entries are kept separately from the withdrawal address book — query them with address_kind=deposit_sender. Calling again with the same source_address and network updates the existing entry.
Stablecoin Account API Publisher Disclaimer
curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--data '
{
"source_address": "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7",
"network": "TRX",
"meta_data": {
"wallet_type": "hosted",
"address_party": "third_party",
"beneficiary_information": {
"entity_type": "individual",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Pte Ltd",
"country": "sg",
"city": "Singapore",
"vasp_id": "I1QNLP",
"vasp_name": "Binance",
"id_type": "<string>",
"id_primary": "<string>"
}
}
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender"
payload = {
"source_address": "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7",
"network": "TRX",
"meta_data": {
"wallet_type": "hosted",
"address_party": "third_party",
"beneficiary_information": {
"entity_type": "individual",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Pte Ltd",
"country": "sg",
"city": "Singapore",
"vasp_id": "I1QNLP",
"vasp_name": "Binance",
"id_type": "<string>",
"id_primary": "<string>"
}
}
}
headers = {
"x-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-auth-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
source_address: 'TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7',
network: 'TRX',
meta_data: {
wallet_type: 'hosted',
address_party: 'third_party',
beneficiary_information: {
entity_type: 'individual',
first_name: 'John',
last_name: 'Doe',
company_name: 'Acme Pte Ltd',
country: 'sg',
city: 'Singapore',
vasp_id: 'I1QNLP',
vasp_name: 'Binance',
id_type: '<string>',
id_primary: '<string>'
}
}
})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source_address' => 'TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7',
'network' => 'TRX',
'meta_data' => [
'wallet_type' => 'hosted',
'address_party' => 'third_party',
'beneficiary_information' => [
'entity_type' => 'individual',
'first_name' => 'John',
'last_name' => 'Doe',
'company_name' => 'Acme Pte Ltd',
'country' => 'sg',
'city' => 'Singapore',
'vasp_id' => 'I1QNLP',
'vasp_name' => 'Binance',
'id_type' => '<string>',
'id_primary' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-auth-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender"
payload := strings.NewReader("{\n \"source_address\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\",\n \"network\": \"TRX\",\n \"meta_data\": {\n \"wallet_type\": \"hosted\",\n \"address_party\": \"third_party\",\n \"beneficiary_information\": {\n \"entity_type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"company_name\": \"Acme Pte Ltd\",\n \"country\": \"sg\",\n \"city\": \"Singapore\",\n \"vasp_id\": \"I1QNLP\",\n \"vasp_name\": \"Binance\",\n \"id_type\": \"<string>\",\n \"id_primary\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-auth-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"source_address\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\",\n \"network\": \"TRX\",\n \"meta_data\": {\n \"wallet_type\": \"hosted\",\n \"address_party\": \"third_party\",\n \"beneficiary_information\": {\n \"entity_type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"company_name\": \"Acme Pte Ltd\",\n \"country\": \"sg\",\n \"city\": \"Singapore\",\n \"vasp_id\": \"I1QNLP\",\n \"vasp_name\": \"Binance\",\n \"id_type\": \"<string>\",\n \"id_primary\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/ramp/wallet_address/deposit-sender")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source_address\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\",\n \"network\": \"TRX\",\n \"meta_data\": {\n \"wallet_type\": \"hosted\",\n \"address_party\": \"third_party\",\n \"beneficiary_information\": {\n \"entity_type\": \"individual\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"company_name\": \"Acme Pte Ltd\",\n \"country\": \"sg\",\n \"city\": \"Singapore\",\n \"vasp_id\": \"I1QNLP\",\n \"vasp_name\": \"Binance\",\n \"id_type\": \"<string>\",\n \"id_primary\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Success",
"data": null
}Authorizations
The API token for login provided by UQPay.
Headers
Specifies the sub-account on whose behalf the request is made. This should be set to the account_id, which can be retrieved via the List Connected Accounts API. If omitted or empty, the request is executed using the master account.
More information at Connected Accounts.
A unique identifier (UUID) used to maintain operation idempotency, ensuring that repeated executions of the same operation do not result in unintended effects or duplication. It helps preserve data consistency in the face of network errors, retries, or failures.
Body
Deposit source address. Use the from_address from the deposit notification; it must match that deposit.
"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7"
Network of the deposit. Use the network from the deposit notification.
"TRX"
Travel Rule data for the deposit originator (sender).
Show child attributes
Show child attributes

