List withdrawals
curl --request GET \
--url https://api.daya.co/v1/merchant/withdrawals \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://api.daya.co/v1/merchant/withdrawals"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://api.daya.co/v1/merchant/withdrawals', 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.daya.co/v1/merchant/withdrawals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <x-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"
"net/http"
"io"
)
func main() {
url := "https://api.daya.co/v1/merchant/withdrawals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.daya.co/v1/merchant/withdrawals")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/merchant/withdrawals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"amount_usd": "12.3400",
"fee_usd": "0.50",
"token": "USDC",
"chain": "SOLANA",
"destination_address": "4vJ9JU1bJJE96FWSJN",
"status": "SETTLED",
"provider_tx_id": "transactions/abc123",
"tx_hash": "4D5uX4exampleTxHash",
"created_at": "2026-03-10T09:00:00Z",
"submitted_at": "2026-03-10T09:01:00Z",
"settled_at": "2026-03-10T09:03:00Z",
"updated_at": "2026-03-10T09:03:00Z"
}
],
"page": 1,
"limit": 50,
"total": 1,
"total_pages": 1
}
Merchant Balance
List withdrawals
List withdrawals for the authenticated merchant with optional status filtering and pagination
GET
/
v1
/
merchant
/
withdrawals
List withdrawals
curl --request GET \
--url https://api.daya.co/v1/merchant/withdrawals \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://api.daya.co/v1/merchant/withdrawals"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://api.daya.co/v1/merchant/withdrawals', 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.daya.co/v1/merchant/withdrawals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <x-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"
"net/http"
"io"
)
func main() {
url := "https://api.daya.co/v1/merchant/withdrawals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.daya.co/v1/merchant/withdrawals")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/merchant/withdrawals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"amount_usd": "12.3400",
"fee_usd": "0.50",
"token": "USDC",
"chain": "SOLANA",
"destination_address": "4vJ9JU1bJJE96FWSJN",
"status": "SETTLED",
"provider_tx_id": "transactions/abc123",
"tx_hash": "4D5uX4exampleTxHash",
"created_at": "2026-03-10T09:00:00Z",
"submitted_at": "2026-03-10T09:01:00Z",
"settled_at": "2026-03-10T09:03:00Z",
"updated_at": "2026-03-10T09:03:00Z"
}
],
"page": 1,
"limit": 50,
"total": 1,
"total_pages": 1
}
Overview
Returns merchant withdrawal history for the authenticated merchant. Withdrawals draw from the withdrawal balance only — if the needed funds are still in the collection balance, usePOST /v1/merchant/balance/transfer to move them first.
Use this endpoint to track pending, submitted, settled, or failed withdrawals and to paginate through historical activity.
Authentication
string
required
Your merchant API key
Query Parameters
integer
Number of results per page.Default:
50integer
Page number to retrieve.Default:
1string
Filter by withdrawal status.Allowed values:
PENDING, SUBMITTED, SETTLED, FAILEDRequest Examples
curl --request GET \
--url 'https://api.daya.co/v1/merchant/withdrawals?status=SETTLED&limit=20' \
--header 'X-Api-Key: YOUR_API_KEY'
const response = await fetch(
'https://api.daya.co/v1/merchant/withdrawals?status=SETTLED&limit=20',
{
headers: {
'X-Api-Key': 'YOUR_API_KEY'
}
}
);
const withdrawals = await response.json();
console.log(withdrawals);
Response
array
Withdrawal records matching the current filter.
Show withdrawal properties
Show withdrawal properties
string
Unique withdrawal identifier.
string
Withdrawal amount in USD.
string
Fee charged for the withdrawal, in USD.
string
Token sent on-chain.
string
Destination chain.
string
Recipient on-chain address.
string
Current withdrawal status.
string
Provider-side transfer identifier, when available.
string
On-chain transaction hash, when available.
string
Provider or platform failure code for failed withdrawals.
string
Human-readable failure detail for failed withdrawals.
string
Time the withdrawal was created.
string
Time the withdrawal was submitted to the provider.
string
Time the withdrawal was confirmed as settled.
string
Last update time for the withdrawal.
integer
required
Current page number.
integer
required
Results per page.
integer
required
Total number of withdrawals matching filters.
integer
required
Total number of pages available.
Success Response
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"amount_usd": "12.3400",
"fee_usd": "0.50",
"token": "USDC",
"chain": "SOLANA",
"destination_address": "4vJ9JU1bJJE96FWSJN",
"status": "SETTLED",
"provider_tx_id": "transactions/abc123",
"tx_hash": "4D5uX4exampleTxHash",
"created_at": "2026-03-10T09:00:00Z",
"submitted_at": "2026-03-10T09:01:00Z",
"settled_at": "2026-03-10T09:03:00Z",
"updated_at": "2026-03-10T09:03:00Z"
}
],
"page": 1,
"limit": 50,
"total": 1,
"total_pages": 1
}
Error Responses
This endpoint may return:400: Invalid query parameters401: Unauthorized500: Internal server error
Next Steps
Get Withdrawal
Retrieve a single withdrawal by ID
Create Withdrawal
Initiate a new merchant balance withdrawal