List recipients
curl --request GET \
--url https://api.daya.co/v1/recipients \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://api.daya.co/v1/recipients"
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/recipients', 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/recipients",
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/recipients"
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/recipients")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/recipients")
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": "750e8400-e29b-41d4-a716-446655440000",
"type": "BANK_ACCOUNT",
"first_name": "John",
"last_name": "Doe",
"bank_account": {
"account_name": "John Doe",
"account_number_last4": "7890",
"bank_code": "044",
"bank_name": "Access Bank"
},
"crypto_address": null,
"us_bank_account": null,
"swift_bank_account": null,
"created_at": "2026-01-05T15:04:05Z"
},
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"type": "CRYPTO_ADDRESS",
"first_name": null,
"last_name": null,
"bank_account": null,
"crypto_address": {
"asset": "USDC",
"chain": "BASE",
"address": "0x1234567890abcdef1234567890abcdef12345678"
},
"us_bank_account": null,
"swift_bank_account": null,
"created_at": "2026-01-05T15:04:05Z"
}
],
"page": 1,
"limit": 20,
"total": 2,
"total_pages": 1
}
Recipients
List recipients
List saved recipients with optional filters
GET
/
v1
/
recipients
List recipients
curl --request GET \
--url https://api.daya.co/v1/recipients \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://api.daya.co/v1/recipients"
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/recipients', 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/recipients",
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/recipients"
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/recipients")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/recipients")
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": "750e8400-e29b-41d4-a716-446655440000",
"type": "BANK_ACCOUNT",
"first_name": "John",
"last_name": "Doe",
"bank_account": {
"account_name": "John Doe",
"account_number_last4": "7890",
"bank_code": "044",
"bank_name": "Access Bank"
},
"crypto_address": null,
"us_bank_account": null,
"swift_bank_account": null,
"created_at": "2026-01-05T15:04:05Z"
},
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"type": "CRYPTO_ADDRESS",
"first_name": null,
"last_name": null,
"bank_account": null,
"crypto_address": {
"asset": "USDC",
"chain": "BASE",
"address": "0x1234567890abcdef1234567890abcdef12345678"
},
"us_bank_account": null,
"swift_bank_account": null,
"created_at": "2026-01-05T15:04:05Z"
}
],
"page": 1,
"limit": 20,
"total": 2,
"total_pages": 1
}
Overview
Retrieve a paginated list of saved recipients belonging to the authenticated merchant. Supports filtering by type, customer, and search term.Authentication
string
required
Your merchant API key
Query Parameters
string
Filter by recipient type.Allowed values:
BANK_ACCOUNT | CRYPTO_ADDRESSstring
Filter by associated customer ID (UUID)Example:
650e8400-e29b-41d4-a716-446655440000string
Search by account name, account number, or wallet addressExample:
Johninteger
Results per pageDefault:
20 | Max: 100integer
Page number to retrieveDefault:
1Request Example
curl --request GET \
--url 'https://api.daya.co/v1/recipients?limit=20&page=1' \
--header 'X-Api-Key: YOUR_API_KEY'
curl --request GET \
--url 'https://api.daya.co/v1/recipients?type=BANK_ACCOUNT&limit=20' \
--header 'X-Api-Key: YOUR_API_KEY'
curl --request GET \
--url 'https://api.daya.co/v1/recipients?customer_id=650e8400-e29b-41d4-a716-446655440000' \
--header 'X-Api-Key: YOUR_API_KEY'
const params = new URLSearchParams({
type: "BANK_ACCOUNT",
limit: "20",
page: "1",
});
const response = await fetch(
`https://api.daya.co/v1/recipients?${params.toString()}`,
{
method: "GET",
headers: {
"X-Api-Key": "YOUR_API_KEY",
},
}
);
const recipients = await response.json();
Response
array
required
Array of recipient objects
integer
required
Current page number
integer
required
Results per page
integer
required
Total number of recipients matching the query
integer
required
Total number of pages available
Success Response
{
"data": [
{
"id": "750e8400-e29b-41d4-a716-446655440000",
"type": "BANK_ACCOUNT",
"first_name": "John",
"last_name": "Doe",
"bank_account": {
"account_name": "John Doe",
"account_number_last4": "7890",
"bank_code": "044",
"bank_name": "Access Bank"
},
"crypto_address": null,
"us_bank_account": null,
"swift_bank_account": null,
"created_at": "2026-01-05T15:04:05Z"
},
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"type": "CRYPTO_ADDRESS",
"first_name": null,
"last_name": null,
"bank_account": null,
"crypto_address": {
"asset": "USDC",
"chain": "BASE",
"address": "0x1234567890abcdef1234567890abcdef12345678"
},
"us_bank_account": null,
"swift_bank_account": null,
"created_at": "2026-01-05T15:04:05Z"
}
],
"page": 1,
"limit": 20,
"total": 2,
"total_pages": 1
}
Error Responses
{
"error": {
"code": "VALIDATION_FAILED",
"message": "Validation failed",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"validation": "type must be one of: BANK_ACCOUNT, CRYPTO_ADDRESS"
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Pagination
This endpoint uses page-based pagination.- Make your initial request (optionally with
limitandpage) - Check
total_pagesto determine how many pages are available - Increment
pageto fetch subsequent pages until you reachtotal_pages
Next Steps
Create recipient
Create a new recipient
Get recipient
Retrieve a single recipient by ID