curl --request GET \
--url https://v2.prod.halliday.xyz/payments/withdraw/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://v2.prod.halliday.xyz/payments/withdraw/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://v2.prod.halliday.xyz/payments/withdraw/status', 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://v2.prod.halliday.xyz/payments/withdraw/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://v2.prod.halliday.xyz/payments/withdraw/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://v2.prod.halliday.xyz/payments/withdraw/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.prod.halliday.xyz/payments/withdraw/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"withdraw_id": "9d1f6c2e-3b7a-4c8d-9e0f-1a2b3c4d5e6f",
"payment_id": "41b16a6f-704e-44ba-9964-2b66df8a73e8",
"status": "SUCCESS",
"transaction_hash": "0x7d3c1f2a9b8e4d6c5a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c9b8a"
}{
"errors": [
{
"code": "invalid_format",
"path": [
"withdraw_id"
],
"message": "Invalid UUID"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Invalid API key"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Withdrawal 9d1f6c2e-3b7a-4c8d-9e0f-1a2b3c4d5e6f not found"
}
]
}Get withdrawal status
Poll the status of a withdrawal using the withdraw_id returned by POST /payments/withdraw
and POST /payments/withdraw/confirm. Clients can start tracking a withdrawal as soon as
POST /payments/withdraw returns, before the user signs.
The confirm endpoint waits up to polling_timeout for the withdrawal to land and returns
PENDING if it has not completed in time. Keep polling this endpoint until the status is
SUCCESS, FAILED, or EXPIRED. transaction_hash is null while the withdrawal is pending.
curl --request GET \
--url https://v2.prod.halliday.xyz/payments/withdraw/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://v2.prod.halliday.xyz/payments/withdraw/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://v2.prod.halliday.xyz/payments/withdraw/status', 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://v2.prod.halliday.xyz/payments/withdraw/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://v2.prod.halliday.xyz/payments/withdraw/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://v2.prod.halliday.xyz/payments/withdraw/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.prod.halliday.xyz/payments/withdraw/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"withdraw_id": "9d1f6c2e-3b7a-4c8d-9e0f-1a2b3c4d5e6f",
"payment_id": "41b16a6f-704e-44ba-9964-2b66df8a73e8",
"status": "SUCCESS",
"transaction_hash": "0x7d3c1f2a9b8e4d6c5a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c9b8a"
}{
"errors": [
{
"code": "invalid_format",
"path": [
"withdraw_id"
],
"message": "Invalid UUID"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Invalid API key"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Withdrawal 9d1f6c2e-3b7a-4c8d-9e0f-1a2b3c4d5e6f not found"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Withdrawal identifier returned by POST /payments/withdraw and POST /payments/withdraw/confirm
Response
Withdrawal status retrieved successfully
ID of the withdrawal
Status of the withdrawal
PENDING, SUCCESS, FAILED, EXPIRED Blockchain transaction hash for the withdrawal, or null while the withdrawal is pending
ID of the payment the withdrawal belongs to

