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": "1",
"type": 4001,
"reason": "Sandbox contract regression"
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer"
payload = {
"currency": "XUSD",
"amount": "1",
"type": 4001,
"reason": "Sandbox contract regression"
}
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: '1',
type: 4001,
reason: 'Sandbox contract regression'
})
};
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' => '1',
'type' => 4001,
'reason' => 'Sandbox contract regression'
]),
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\": \"1\",\n \"type\": 4001,\n \"reason\": \"Sandbox contract regression\"\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\": \"1\",\n \"type\": 4001,\n \"reason\": \"Sandbox contract regression\"\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\": \"1\",\n \"type\": 4001,\n \"reason\": \"Sandbox contract regression\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Success",
"data": {
"amount": "1",
"completed_time": "",
"create_time": "2026-09-10 11:40:10",
"currency": "XUSD",
"order_id": "c12748de-0518-4a3d-b6c5-38e2002f7d33",
"order_status": "Pending",
"order_type": "Transfer Out",
"processing_fee": "10",
"reason": "Sandbox contract regression",
"short_order_id": "MM260910-NRZ4HFIN"
}
}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": "1",
"type": 4001,
"reason": "Sandbox contract regression"
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/ramp/transfer"
payload = {
"currency": "XUSD",
"amount": "1",
"type": 4001,
"reason": "Sandbox contract regression"
}
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: '1',
type: 4001,
reason: 'Sandbox contract regression'
})
};
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' => '1',
'type' => 4001,
'reason' => 'Sandbox contract regression'
]),
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\": \"1\",\n \"type\": 4001,\n \"reason\": \"Sandbox contract regression\"\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\": \"1\",\n \"type\": 4001,\n \"reason\": \"Sandbox contract regression\"\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\": \"1\",\n \"type\": 4001,\n \"reason\": \"Sandbox contract regression\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Success",
"data": {
"amount": "1",
"completed_time": "",
"create_time": "2026-09-10 11:40:10",
"currency": "XUSD",
"order_id": "c12748de-0518-4a3d-b6c5-38e2002f7d33",
"order_status": "Pending",
"order_type": "Transfer Out",
"processing_fee": "10",
"reason": "Sandbox contract regression",
"short_order_id": "MM260910-NRZ4HFIN"
}
}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"

