Legacy: List onramps
curl --request GET \
--url https://api.daya.co/v1/onramps \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://api.daya.co/v1/onramps"
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/onramps', 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/onramps",
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/onramps"
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/onramps")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/onramps")
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": "PERMANENT",
"customer_id": "650e8400-e29b-41d4-a716-446655440000",
"provisioning_status": "ACTIVE",
"settlement": {
"mode": "ONCHAIN",
"asset": "USDC",
"chain": "BASE",
"destination_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
},
"virtual_account": {
"account_number": "1234567890",
"account_name": "Daya-John Doe",
"bank_name": "Wema Bank"
},
"created_at": "2026-01-10T12:00:00Z"
},
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"type": "TEMPORARY",
"customer_id": "660e8400-e29b-41d4-a716-446655440000",
"provisioning_status": "ACTIVE",
"amount": "50000.50",
"rate_id": "550e8400-e29b-41d4-a716-446655440000",
"rate_expires_at": "2026-01-14T15:30:00Z",
"settlement": {
"mode": "ONCHAIN",
"asset": "USDC",
"chain": "SOLANA",
"destination_address": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"
},
"virtual_account": {
"account_number": "9876543210",
"account_name": "Daya - user@example.com",
"bank_name": "Wema Bank",
"expires_at": "2026-01-14T15:30:00Z"
},
"created_at": "2026-01-14T15:05:00Z"
}
],
"total": 2,
"page": 1,
"limit": 50,
"total_pages": 1
}
Onramps
Legacy: List onramps
Legacy route for listing NGN receive flows
GET
/
v1
/
onramps
Legacy: List onramps
curl --request GET \
--url https://api.daya.co/v1/onramps \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://api.daya.co/v1/onramps"
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/onramps', 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/onramps",
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/onramps"
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/onramps")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/onramps")
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": "PERMANENT",
"customer_id": "650e8400-e29b-41d4-a716-446655440000",
"provisioning_status": "ACTIVE",
"settlement": {
"mode": "ONCHAIN",
"asset": "USDC",
"chain": "BASE",
"destination_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
},
"virtual_account": {
"account_number": "1234567890",
"account_name": "Daya-John Doe",
"bank_name": "Wema Bank"
},
"created_at": "2026-01-10T12:00:00Z"
},
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"type": "TEMPORARY",
"customer_id": "660e8400-e29b-41d4-a716-446655440000",
"provisioning_status": "ACTIVE",
"amount": "50000.50",
"rate_id": "550e8400-e29b-41d4-a716-446655440000",
"rate_expires_at": "2026-01-14T15:30:00Z",
"settlement": {
"mode": "ONCHAIN",
"asset": "USDC",
"chain": "SOLANA",
"destination_address": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"
},
"virtual_account": {
"account_number": "9876543210",
"account_name": "Daya - user@example.com",
"bank_name": "Wema Bank",
"expires_at": "2026-01-14T15:30:00Z"
},
"created_at": "2026-01-14T15:05:00Z"
}
],
"total": 2,
"page": 1,
"limit": 50,
"total_pages": 1
}
Overview
Retrieve onramps through the legacy compatibility route. New integrations should useGET /v1/funding-accounts with rail=NGN_VIRTUAL_ACCOUNT.
Authentication
string
required
Your merchant API key
Query Parameters
string
Filter by onramp typeAllowed values:
TEMPORARY, PERMANENTinteger
Page number (1-indexed)Default:
1integer
Results per pageDefault:
50Max: 200Request Examples
curl --request GET \
--url 'https://api.daya.co/v1/onramps' \
--header 'X-Api-Key: YOUR_API_KEY'
curl --request GET \
--url 'https://api.daya.co/v1/onramps?type=PERMANENT' \
--header 'X-Api-Key: YOUR_API_KEY'
curl --request GET \
--url 'https://api.daya.co/v1/onramps?type=TEMPORARY' \
--header 'X-Api-Key: YOUR_API_KEY'
curl --request GET \
--url 'https://api.daya.co/v1/onramps?page=2&limit=20' \
--header 'X-Api-Key: YOUR_API_KEY'
const response = await fetch(
'https://api.daya.co/v1/onramps?type=PERMANENT&page=1&limit=20',
{
headers: {
'X-Api-Key': 'YOUR_API_KEY'
}
}
);
const data = await response.json();
import requests
response = requests.get(
'https://api.daya.co/v1/onramps',
params={'type': 'PERMANENT', 'page': 1, 'limit': 20},
headers={'X-Api-Key': 'YOUR_API_KEY'}
)
data = response.json()
Response
array
required
Array of onramp objects
Show onramp properties
Show onramp properties
string
Unique onramp identifier (UUID)
string
Onramp type:
TEMPORARY or PERMANENTstring
Associated customer ID (UUID)
string
Virtual account provisioning status:
PENDING, ACTIVE, or FAILEDstring
Expected deposit amount in NGN, returned as a decimal string. Always present for temporary onramps (required at creation); not present for permanent onramps.
string
Associated rate identifier (temporary onramps only)
string
When the locked rate expires (temporary onramps only)
object
Developer fee percentage used for deposits received through this onramp.
Show developer_fee properties
Show developer_fee properties
string
Configured percentage as a decimal string.
object
object
string
When the onramp was created (ISO 8601 timestamp)
integer
required
Total number of onramps matching filters
integer
required
Current page number
integer
required
Results per page
integer
required
Total number of pages
Success Response
{
"data": [
{
"id": "750e8400-e29b-41d4-a716-446655440000",
"type": "PERMANENT",
"customer_id": "650e8400-e29b-41d4-a716-446655440000",
"provisioning_status": "ACTIVE",
"settlement": {
"mode": "ONCHAIN",
"asset": "USDC",
"chain": "BASE",
"destination_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
},
"virtual_account": {
"account_number": "1234567890",
"account_name": "Daya-John Doe",
"bank_name": "Wema Bank"
},
"created_at": "2026-01-10T12:00:00Z"
},
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"type": "TEMPORARY",
"customer_id": "660e8400-e29b-41d4-a716-446655440000",
"provisioning_status": "ACTIVE",
"amount": "50000.50",
"rate_id": "550e8400-e29b-41d4-a716-446655440000",
"rate_expires_at": "2026-01-14T15:30:00Z",
"settlement": {
"mode": "ONCHAIN",
"asset": "USDC",
"chain": "SOLANA",
"destination_address": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"
},
"virtual_account": {
"account_number": "9876543210",
"account_name": "Daya - user@example.com",
"bank_name": "Wema Bank",
"expires_at": "2026-01-14T15:30:00Z"
},
"created_at": "2026-01-14T15:05:00Z"
}
],
"total": 2,
"page": 1,
"limit": 50,
"total_pages": 1
}
Error Responses
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid query parameters",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "Unauthorized",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Next Steps
Get Onramp
Get a specific onramp by ID
Create Onramp
Create a new onramp
⌘I