Sandbox Transfer from Sub-Wallets to Prime Wallet
curl --request POST \
--url https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subWalletId": "<string>",
"amount": "<string>",
"coin": "<string>",
"clientTxId": "<string>"
}
'import requests
url = "https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime"
payload = {
"subWalletId": "<string>",
"amount": "<string>",
"coin": "<string>",
"clientTxId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subWalletId: '<string>',
amount: '<string>',
coin: '<string>',
clientTxId: '<string>'
})
};
fetch('https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime', 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.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime",
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([
'subWalletId' => '<string>',
'amount' => '<string>',
'coin' => '<string>',
'clientTxId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime"
payload := strings.NewReader("{\n \"subWalletId\": \"<string>\",\n \"amount\": \"<string>\",\n \"coin\": \"<string>\",\n \"clientTxId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subWalletId\": \"<string>\",\n \"amount\": \"<string>\",\n \"coin\": \"<string>\",\n \"clientTxId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subWalletId\": \"<string>\",\n \"amount\": \"<string>\",\n \"coin\": \"<string>\",\n \"clientTxId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "wd_001",
"workspaceId": "67804918f2b05ac82a129441",
"clientTxId": null,
"fromWalletId": "678a39d6b731ad1ad8832c8a",
"toWalletId": "731ad1ad8832c8a....",
"coin": "USDT",
"amount": 100,
"status": "success",
"networkFee": 0,
"tagMemo": null,
"confirmed": false,
"confirmedAt": null,
"createdAt": null
}
}{
"statusCode": 400,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}{
"statusCode": 404,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "Cannot GET /v1/..."
}{
"statusCode": 422,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": [
"param is required"
]
}{
"statusCode": 500,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}Sub-Wallet Endpoints
Sandbox Transfer from Sub-Wallets to Prime Wallet
Transfer funds from one sub-wallet to the workspace prime wallet workspace. This operation is free, and no fees are collected for these internal transfers.
POST
/
v1
/
sandbox
/
sub-wallet
/
transfer
/
prime
Sandbox Transfer from Sub-Wallets to Prime Wallet
curl --request POST \
--url https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subWalletId": "<string>",
"amount": "<string>",
"coin": "<string>",
"clientTxId": "<string>"
}
'import requests
url = "https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime"
payload = {
"subWalletId": "<string>",
"amount": "<string>",
"coin": "<string>",
"clientTxId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subWalletId: '<string>',
amount: '<string>',
coin: '<string>',
clientTxId: '<string>'
})
};
fetch('https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime', 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.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime",
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([
'subWalletId' => '<string>',
'amount' => '<string>',
'coin' => '<string>',
'clientTxId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime"
payload := strings.NewReader("{\n \"subWalletId\": \"<string>\",\n \"amount\": \"<string>\",\n \"coin\": \"<string>\",\n \"clientTxId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subWalletId\": \"<string>\",\n \"amount\": \"<string>\",\n \"coin\": \"<string>\",\n \"clientTxId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openxswitch.com/v1/sandbox/sub-wallet/transfer/prime")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subWalletId\": \"<string>\",\n \"amount\": \"<string>\",\n \"coin\": \"<string>\",\n \"clientTxId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "wd_001",
"workspaceId": "67804918f2b05ac82a129441",
"clientTxId": null,
"fromWalletId": "678a39d6b731ad1ad8832c8a",
"toWalletId": "731ad1ad8832c8a....",
"coin": "USDT",
"amount": 100,
"status": "success",
"networkFee": 0,
"tagMemo": null,
"confirmed": false,
"confirmedAt": null,
"createdAt": null
}
}{
"statusCode": 400,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}{
"statusCode": 404,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "Cannot GET /v1/..."
}{
"statusCode": 422,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": [
"param is required"
]
}{
"statusCode": 500,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The unique identifier of the source Sub wallet
The amount to be transferred
The token name. Only rechargeable currencies are accepted.
Refer to the Get Recharge Currencies endpoint for the list of supported currencies.
Unique ID for tracking the client's request.
⌘I
.png?fit=max&auto=format&n=ML35RDblT1Ol-zJb&q=85&s=062e79ad9c4540929eec204aff020178)
.png?fit=max&auto=format&n=ML35RDblT1Ol-zJb&q=85&s=f6328956931c9664a2a070c2edb6e9b3)