curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--data '
{
"currency": "XUSD",
"amount": "100.50",
"type": 4001,
"reason": "Business transfer"
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer"
payload = {
"currency": "XUSD",
"amount": "100.50",
"type": 4001,
"reason": "Business transfer"
}
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({currency: 'XUSD', amount: '100.50', type: 4001, reason: 'Business transfer'})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer', 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/transfer",
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([
'currency' => 'XUSD',
'amount' => '100.50',
'type' => 4001,
'reason' => 'Business transfer'
]),
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/transfer"
payload := strings.NewReader("{\n \"currency\": \"XUSD\",\n \"amount\": \"100.50\",\n \"type\": 4001,\n \"reason\": \"Business transfer\"\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/transfer")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"XUSD\",\n \"amount\": \"100.50\",\n \"type\": 4001,\n \"reason\": \"Business transfer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer")
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 \"currency\": \"XUSD\",\n \"amount\": \"100.50\",\n \"type\": 4001,\n \"reason\": \"Business transfer\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Success",
"data": {
"order_id": "3c9e22ba-7b5e-4b7c-b92e-197d0406b86b",
"short_order_id": "TO260123-JZBHC9IA",
"order_status": "Pending",
"order_type": "Transfer Out",
"amount": 100,
"currency": "USD",
"processing_fee": 0,
"create_time": "2026-01-23 13:12:27 +08:00",
"reason": "testAPI",
"complete_time": "",
"message": "<string>"
}
}Create Transfer
Initiate an XUSD fund transfer from the Stablecoin Account to the Issuing account (Type: transfer-out: 4001). Fiat transfers between the Stablecoin Account and Global Account are no longer supported. Stablecoin Account API Publisher Disclaimer
curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--data '
{
"currency": "XUSD",
"amount": "100.50",
"type": 4001,
"reason": "Business transfer"
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer"
payload = {
"currency": "XUSD",
"amount": "100.50",
"type": 4001,
"reason": "Business transfer"
}
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({currency: 'XUSD', amount: '100.50', type: 4001, reason: 'Business transfer'})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer', 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/transfer",
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([
'currency' => 'XUSD',
'amount' => '100.50',
'type' => 4001,
'reason' => 'Business transfer'
]),
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/transfer"
payload := strings.NewReader("{\n \"currency\": \"XUSD\",\n \"amount\": \"100.50\",\n \"type\": 4001,\n \"reason\": \"Business transfer\"\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/transfer")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"XUSD\",\n \"amount\": \"100.50\",\n \"type\": 4001,\n \"reason\": \"Business transfer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer")
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 \"currency\": \"XUSD\",\n \"amount\": \"100.50\",\n \"type\": 4001,\n \"reason\": \"Business transfer\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Success",
"data": {
"order_id": "3c9e22ba-7b5e-4b7c-b92e-197d0406b86b",
"short_order_id": "TO260123-JZBHC9IA",
"order_status": "Pending",
"order_type": "Transfer Out",
"amount": 100,
"currency": "USD",
"processing_fee": 0,
"create_time": "2026-01-23 13:12:27 +08:00",
"reason": "testAPI",
"complete_time": "",
"message": "<string>"
}
}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
Wallet currency for this transfer. Only XUSD is supported.
"XUSD"
Amount for this transfer
"100.50"
Transfer type. Only 4001 (transfer out to the Issuing account) is supported.
4001 4001
Transaction remark
"Business transfer"

