curl --request POST \
--url https://tag.alfa-bot.com/api/prod/v1/withdrawal-request \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"amount": "100.00",
"network": "trx",
"currency": "USDT",
"sender": "exchange",
"external_id": "client_request_10001",
"recipient_wallet": "TVx9EXAMPLE1bC",
"comment": "Client withdrawal",
"sender_wallet": "TQv5pEXAMPLE9xA",
"fee_included": true,
"refund_transaction_id": "4"
}
'import requests
url = "https://tag.alfa-bot.com/api/prod/v1/withdrawal-request"
payload = {
"amount": "100.00",
"network": "trx",
"currency": "USDT",
"sender": "exchange",
"external_id": "client_request_10001",
"recipient_wallet": "TVx9EXAMPLE1bC",
"comment": "Client withdrawal",
"sender_wallet": "TQv5pEXAMPLE9xA",
"fee_included": True,
"refund_transaction_id": "4"
}
headers = {
"token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: '100.00',
network: 'trx',
currency: 'USDT',
sender: 'exchange',
external_id: 'client_request_10001',
recipient_wallet: 'TVx9EXAMPLE1bC',
comment: 'Client withdrawal',
sender_wallet: 'TQv5pEXAMPLE9xA',
fee_included: true,
refund_transaction_id: '4'
})
};
fetch('https://tag.alfa-bot.com/api/prod/v1/withdrawal-request', 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://tag.alfa-bot.com/api/prod/v1/withdrawal-request",
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([
'amount' => '100.00',
'network' => 'trx',
'currency' => 'USDT',
'sender' => 'exchange',
'external_id' => 'client_request_10001',
'recipient_wallet' => 'TVx9EXAMPLE1bC',
'comment' => 'Client withdrawal',
'sender_wallet' => 'TQv5pEXAMPLE9xA',
'fee_included' => true,
'refund_transaction_id' => '4'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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://tag.alfa-bot.com/api/prod/v1/withdrawal-request"
payload := strings.NewReader("{\n \"amount\": \"100.00\",\n \"network\": \"trx\",\n \"currency\": \"USDT\",\n \"sender\": \"exchange\",\n \"external_id\": \"client_request_10001\",\n \"recipient_wallet\": \"TVx9EXAMPLE1bC\",\n \"comment\": \"Client withdrawal\",\n \"sender_wallet\": \"TQv5pEXAMPLE9xA\",\n \"fee_included\": true,\n \"refund_transaction_id\": \"4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("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://tag.alfa-bot.com/api/prod/v1/withdrawal-request")
.header("token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"100.00\",\n \"network\": \"trx\",\n \"currency\": \"USDT\",\n \"sender\": \"exchange\",\n \"external_id\": \"client_request_10001\",\n \"recipient_wallet\": \"TVx9EXAMPLE1bC\",\n \"comment\": \"Client withdrawal\",\n \"sender_wallet\": \"TQv5pEXAMPLE9xA\",\n \"fee_included\": true,\n \"refund_transaction_id\": \"4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tag.alfa-bot.com/api/prod/v1/withdrawal-request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"100.00\",\n \"network\": \"trx\",\n \"currency\": \"USDT\",\n \"sender\": \"exchange\",\n \"external_id\": \"client_request_10001\",\n \"recipient_wallet\": \"TVx9EXAMPLE1bC\",\n \"comment\": \"Client withdrawal\",\n \"sender_wallet\": \"TQv5pEXAMPLE9xA\",\n \"fee_included\": true,\n \"refund_transaction_id\": \"4\"\n}"
response = http.request(request)
puts response.read_body{
"code": "200",
"error_code": null,
"error_message": null,
"data": {
"success": true,
"data": {
"request_id": "wd_6a16c48222d327108513784f",
"external_id": "client_request_10001",
"amount": "100.00",
"currency": "USDT",
"network": "trx",
"sender": "exchange",
"sender_wallet": "TQv5p...9xA",
"recipient_wallet": "TVx9...1bC",
"fee": "1.00",
"fee_included": true,
"status": "new",
"comment": "Client withdrawal",
"created_at": "2026-05-28T09:00:00.000Z",
"updated_at": "2026-05-28T09:00:00.000Z"
}
}
}{
"code": "400",
"error_code": "request",
"error_message": "Validation failed: amount, network, currency, sender, external_id and recipient_wallet are required",
"data": {
"amount": "Required field",
"network": "Allowed values: trx, eth, bnb, sol",
"currency": "Unsupported currency",
"sender": "Allowed values: user, exchange",
"recipient_wallet": "Invalid wallet address for selected network"
}
}{
"code": "500",
"error_code": "system",
"error_message": "Unexpected server error. Please try again later.",
"data": null
}Create withdrawal request
curl --request POST \
--url https://tag.alfa-bot.com/api/prod/v1/withdrawal-request \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"amount": "100.00",
"network": "trx",
"currency": "USDT",
"sender": "exchange",
"external_id": "client_request_10001",
"recipient_wallet": "TVx9EXAMPLE1bC",
"comment": "Client withdrawal",
"sender_wallet": "TQv5pEXAMPLE9xA",
"fee_included": true,
"refund_transaction_id": "4"
}
'import requests
url = "https://tag.alfa-bot.com/api/prod/v1/withdrawal-request"
payload = {
"amount": "100.00",
"network": "trx",
"currency": "USDT",
"sender": "exchange",
"external_id": "client_request_10001",
"recipient_wallet": "TVx9EXAMPLE1bC",
"comment": "Client withdrawal",
"sender_wallet": "TQv5pEXAMPLE9xA",
"fee_included": True,
"refund_transaction_id": "4"
}
headers = {
"token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: '100.00',
network: 'trx',
currency: 'USDT',
sender: 'exchange',
external_id: 'client_request_10001',
recipient_wallet: 'TVx9EXAMPLE1bC',
comment: 'Client withdrawal',
sender_wallet: 'TQv5pEXAMPLE9xA',
fee_included: true,
refund_transaction_id: '4'
})
};
fetch('https://tag.alfa-bot.com/api/prod/v1/withdrawal-request', 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://tag.alfa-bot.com/api/prod/v1/withdrawal-request",
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([
'amount' => '100.00',
'network' => 'trx',
'currency' => 'USDT',
'sender' => 'exchange',
'external_id' => 'client_request_10001',
'recipient_wallet' => 'TVx9EXAMPLE1bC',
'comment' => 'Client withdrawal',
'sender_wallet' => 'TQv5pEXAMPLE9xA',
'fee_included' => true,
'refund_transaction_id' => '4'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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://tag.alfa-bot.com/api/prod/v1/withdrawal-request"
payload := strings.NewReader("{\n \"amount\": \"100.00\",\n \"network\": \"trx\",\n \"currency\": \"USDT\",\n \"sender\": \"exchange\",\n \"external_id\": \"client_request_10001\",\n \"recipient_wallet\": \"TVx9EXAMPLE1bC\",\n \"comment\": \"Client withdrawal\",\n \"sender_wallet\": \"TQv5pEXAMPLE9xA\",\n \"fee_included\": true,\n \"refund_transaction_id\": \"4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("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://tag.alfa-bot.com/api/prod/v1/withdrawal-request")
.header("token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"100.00\",\n \"network\": \"trx\",\n \"currency\": \"USDT\",\n \"sender\": \"exchange\",\n \"external_id\": \"client_request_10001\",\n \"recipient_wallet\": \"TVx9EXAMPLE1bC\",\n \"comment\": \"Client withdrawal\",\n \"sender_wallet\": \"TQv5pEXAMPLE9xA\",\n \"fee_included\": true,\n \"refund_transaction_id\": \"4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tag.alfa-bot.com/api/prod/v1/withdrawal-request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"100.00\",\n \"network\": \"trx\",\n \"currency\": \"USDT\",\n \"sender\": \"exchange\",\n \"external_id\": \"client_request_10001\",\n \"recipient_wallet\": \"TVx9EXAMPLE1bC\",\n \"comment\": \"Client withdrawal\",\n \"sender_wallet\": \"TQv5pEXAMPLE9xA\",\n \"fee_included\": true,\n \"refund_transaction_id\": \"4\"\n}"
response = http.request(request)
puts response.read_body{
"code": "200",
"error_code": null,
"error_message": null,
"data": {
"success": true,
"data": {
"request_id": "wd_6a16c48222d327108513784f",
"external_id": "client_request_10001",
"amount": "100.00",
"currency": "USDT",
"network": "trx",
"sender": "exchange",
"sender_wallet": "TQv5p...9xA",
"recipient_wallet": "TVx9...1bC",
"fee": "1.00",
"fee_included": true,
"status": "new",
"comment": "Client withdrawal",
"created_at": "2026-05-28T09:00:00.000Z",
"updated_at": "2026-05-28T09:00:00.000Z"
}
}
}{
"code": "400",
"error_code": "request",
"error_message": "Validation failed: amount, network, currency, sender, external_id and recipient_wallet are required",
"data": {
"amount": "Required field",
"network": "Allowed values: trx, eth, bnb, sol",
"currency": "Unsupported currency",
"sender": "Allowed values: user, exchange",
"recipient_wallet": "Invalid wallet address for selected network"
}
}{
"code": "500",
"error_code": "system",
"error_message": "Unexpected server error. Please try again later.",
"data": null
}Authorizations
Pass your API token in the token request header.
Body
Amount to withdraw
"100.00"
trx, eth, bnb, sol "trx"
USDT, USDC, ETH, TRX, BNB, SOL "USDT"
user, exchange "exchange"
Request ID in your system
"client_request_10001"
Recipient wallet
"TVx9EXAMPLE1bC"
Comment for the withdrawal request. Displayed to the account owner when confirming the transaction in the bot, so they can see the purpose of the payment before approving it (max length = 160)
"Client withdrawal"
Sender wallet (required param for sender = user). For sender = exchange - ignore this param.
"TQv5pEXAMPLE9xA"
Default: fee_included=true. If fee_included is not specified or fee_included=true, the transfer fee will be deducted from the amount
true
Pass this if the output is a refund for a blocked deposit. You can view the list of blocked deposits for a wallet in the refund array returned by the GET /wallets method.
"4"
Response
OK - withdrawal request was created successfully