Create transfer
curl --request POST \
--url https://api.daya.co/v1/transfers \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"currency": "<string>",
"amount": "<string>",
"reference": "<string>",
"recipient_id": "<string>",
"destination": {
"destination.type": "<string>",
"destination.bank_account": {
"destination.bank_account.account_number": "<string>",
"destination.bank_account.bank_code": "<string>",
"destination.bank_account.account_name": "<string>"
},
"destination.us_bank_account": {
"destination.us_bank_account.account_owner_name": "<string>",
"destination.us_bank_account.account_number": "<string>",
"destination.us_bank_account.routing_number": "<string>",
"destination.us_bank_account.bank_name": "<string>",
"destination.us_bank_account.account_type": "<string>",
"destination.us_bank_account.payout_scheme": "<string>",
"destination.us_bank_account.address": {}
},
"destination.swift_bank_account": {
"destination.swift_bank_account.account_owner_name": "<string>",
"destination.swift_bank_account.account_owner_type": "<string>",
"destination.swift_bank_account.account_country": "<string>",
"destination.swift_bank_account.iban": "<string>",
"destination.swift_bank_account.bic": "<string>",
"destination.swift_bank_account.bank_name": "<string>",
"destination.swift_bank_account.first_name": "<string>",
"destination.swift_bank_account.last_name": "<string>",
"destination.swift_bank_account.business_name": "<string>",
"destination.swift_bank_account.category": "<string>",
"destination.swift_bank_account.purpose_of_funds": [
{}
],
"destination.swift_bank_account.short_business_description": "<string>",
"destination.swift_bank_account.address": {},
"destination.swift_bank_account.bank_address": {}
}
},
"on_behalf_of": {
"on_behalf_of.customer_id": "<string>"
}
}
'import requests
url = "https://api.daya.co/v1/transfers"
payload = {
"currency": "<string>",
"amount": "<string>",
"reference": "<string>",
"recipient_id": "<string>",
"destination": {
"destination.type": "<string>",
"destination.bank_account": {
"destination.bank_account.account_number": "<string>",
"destination.bank_account.bank_code": "<string>",
"destination.bank_account.account_name": "<string>"
},
"destination.us_bank_account": {
"destination.us_bank_account.account_owner_name": "<string>",
"destination.us_bank_account.account_number": "<string>",
"destination.us_bank_account.routing_number": "<string>",
"destination.us_bank_account.bank_name": "<string>",
"destination.us_bank_account.account_type": "<string>",
"destination.us_bank_account.payout_scheme": "<string>",
"destination.us_bank_account.address": {}
},
"destination.swift_bank_account": {
"destination.swift_bank_account.account_owner_name": "<string>",
"destination.swift_bank_account.account_owner_type": "<string>",
"destination.swift_bank_account.account_country": "<string>",
"destination.swift_bank_account.iban": "<string>",
"destination.swift_bank_account.bic": "<string>",
"destination.swift_bank_account.bank_name": "<string>",
"destination.swift_bank_account.first_name": "<string>",
"destination.swift_bank_account.last_name": "<string>",
"destination.swift_bank_account.business_name": "<string>",
"destination.swift_bank_account.category": "<string>",
"destination.swift_bank_account.purpose_of_funds": [{}],
"destination.swift_bank_account.short_business_description": "<string>",
"destination.swift_bank_account.address": {},
"destination.swift_bank_account.bank_address": {}
}
},
"on_behalf_of": { "on_behalf_of.customer_id": "<string>" }
}
headers = {
"X-Api-Key": "<x-api-key>",
"Idempotency-Key": "<idempotency-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Api-Key': '<x-api-key>',
'Idempotency-Key': '<idempotency-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
currency: '<string>',
amount: '<string>',
reference: '<string>',
recipient_id: '<string>',
destination: {
'destination.type': '<string>',
'destination.bank_account': {
'destination.bank_account.account_number': '<string>',
'destination.bank_account.bank_code': '<string>',
'destination.bank_account.account_name': '<string>'
},
'destination.us_bank_account': {
'destination.us_bank_account.account_owner_name': '<string>',
'destination.us_bank_account.account_number': '<string>',
'destination.us_bank_account.routing_number': '<string>',
'destination.us_bank_account.bank_name': '<string>',
'destination.us_bank_account.account_type': '<string>',
'destination.us_bank_account.payout_scheme': '<string>',
'destination.us_bank_account.address': {}
},
'destination.swift_bank_account': {
'destination.swift_bank_account.account_owner_name': '<string>',
'destination.swift_bank_account.account_owner_type': '<string>',
'destination.swift_bank_account.account_country': '<string>',
'destination.swift_bank_account.iban': '<string>',
'destination.swift_bank_account.bic': '<string>',
'destination.swift_bank_account.bank_name': '<string>',
'destination.swift_bank_account.first_name': '<string>',
'destination.swift_bank_account.last_name': '<string>',
'destination.swift_bank_account.business_name': '<string>',
'destination.swift_bank_account.category': '<string>',
'destination.swift_bank_account.purpose_of_funds': [{}],
'destination.swift_bank_account.short_business_description': '<string>',
'destination.swift_bank_account.address': {},
'destination.swift_bank_account.bank_address': {}
}
},
on_behalf_of: {'on_behalf_of.customer_id': '<string>'}
})
};
fetch('https://api.daya.co/v1/transfers', 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/transfers",
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([
'currency' => '<string>',
'amount' => '<string>',
'reference' => '<string>',
'recipient_id' => '<string>',
'destination' => [
'destination.type' => '<string>',
'destination.bank_account' => [
'destination.bank_account.account_number' => '<string>',
'destination.bank_account.bank_code' => '<string>',
'destination.bank_account.account_name' => '<string>'
],
'destination.us_bank_account' => [
'destination.us_bank_account.account_owner_name' => '<string>',
'destination.us_bank_account.account_number' => '<string>',
'destination.us_bank_account.routing_number' => '<string>',
'destination.us_bank_account.bank_name' => '<string>',
'destination.us_bank_account.account_type' => '<string>',
'destination.us_bank_account.payout_scheme' => '<string>',
'destination.us_bank_account.address' => [
]
],
'destination.swift_bank_account' => [
'destination.swift_bank_account.account_owner_name' => '<string>',
'destination.swift_bank_account.account_owner_type' => '<string>',
'destination.swift_bank_account.account_country' => '<string>',
'destination.swift_bank_account.iban' => '<string>',
'destination.swift_bank_account.bic' => '<string>',
'destination.swift_bank_account.bank_name' => '<string>',
'destination.swift_bank_account.first_name' => '<string>',
'destination.swift_bank_account.last_name' => '<string>',
'destination.swift_bank_account.business_name' => '<string>',
'destination.swift_bank_account.category' => '<string>',
'destination.swift_bank_account.purpose_of_funds' => [
[
]
],
'destination.swift_bank_account.short_business_description' => '<string>',
'destination.swift_bank_account.address' => [
],
'destination.swift_bank_account.bank_address' => [
]
]
],
'on_behalf_of' => [
'on_behalf_of.customer_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.daya.co/v1/transfers"
payload := strings.NewReader("{\n \"currency\": \"<string>\",\n \"amount\": \"<string>\",\n \"reference\": \"<string>\",\n \"recipient_id\": \"<string>\",\n \"destination\": {\n \"destination.type\": \"<string>\",\n \"destination.bank_account\": {\n \"destination.bank_account.account_number\": \"<string>\",\n \"destination.bank_account.bank_code\": \"<string>\",\n \"destination.bank_account.account_name\": \"<string>\"\n },\n \"destination.us_bank_account\": {\n \"destination.us_bank_account.account_owner_name\": \"<string>\",\n \"destination.us_bank_account.account_number\": \"<string>\",\n \"destination.us_bank_account.routing_number\": \"<string>\",\n \"destination.us_bank_account.bank_name\": \"<string>\",\n \"destination.us_bank_account.account_type\": \"<string>\",\n \"destination.us_bank_account.payout_scheme\": \"<string>\",\n \"destination.us_bank_account.address\": {}\n },\n \"destination.swift_bank_account\": {\n \"destination.swift_bank_account.account_owner_name\": \"<string>\",\n \"destination.swift_bank_account.account_owner_type\": \"<string>\",\n \"destination.swift_bank_account.account_country\": \"<string>\",\n \"destination.swift_bank_account.iban\": \"<string>\",\n \"destination.swift_bank_account.bic\": \"<string>\",\n \"destination.swift_bank_account.bank_name\": \"<string>\",\n \"destination.swift_bank_account.first_name\": \"<string>\",\n \"destination.swift_bank_account.last_name\": \"<string>\",\n \"destination.swift_bank_account.business_name\": \"<string>\",\n \"destination.swift_bank_account.category\": \"<string>\",\n \"destination.swift_bank_account.purpose_of_funds\": [\n {}\n ],\n \"destination.swift_bank_account.short_business_description\": \"<string>\",\n \"destination.swift_bank_account.address\": {},\n \"destination.swift_bank_account.bank_address\": {}\n }\n },\n \"on_behalf_of\": {\n \"on_behalf_of.customer_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("Idempotency-Key", "<idempotency-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://api.daya.co/v1/transfers")
.header("X-Api-Key", "<x-api-key>")
.header("Idempotency-Key", "<idempotency-key>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"<string>\",\n \"amount\": \"<string>\",\n \"reference\": \"<string>\",\n \"recipient_id\": \"<string>\",\n \"destination\": {\n \"destination.type\": \"<string>\",\n \"destination.bank_account\": {\n \"destination.bank_account.account_number\": \"<string>\",\n \"destination.bank_account.bank_code\": \"<string>\",\n \"destination.bank_account.account_name\": \"<string>\"\n },\n \"destination.us_bank_account\": {\n \"destination.us_bank_account.account_owner_name\": \"<string>\",\n \"destination.us_bank_account.account_number\": \"<string>\",\n \"destination.us_bank_account.routing_number\": \"<string>\",\n \"destination.us_bank_account.bank_name\": \"<string>\",\n \"destination.us_bank_account.account_type\": \"<string>\",\n \"destination.us_bank_account.payout_scheme\": \"<string>\",\n \"destination.us_bank_account.address\": {}\n },\n \"destination.swift_bank_account\": {\n \"destination.swift_bank_account.account_owner_name\": \"<string>\",\n \"destination.swift_bank_account.account_owner_type\": \"<string>\",\n \"destination.swift_bank_account.account_country\": \"<string>\",\n \"destination.swift_bank_account.iban\": \"<string>\",\n \"destination.swift_bank_account.bic\": \"<string>\",\n \"destination.swift_bank_account.bank_name\": \"<string>\",\n \"destination.swift_bank_account.first_name\": \"<string>\",\n \"destination.swift_bank_account.last_name\": \"<string>\",\n \"destination.swift_bank_account.business_name\": \"<string>\",\n \"destination.swift_bank_account.category\": \"<string>\",\n \"destination.swift_bank_account.purpose_of_funds\": [\n {}\n ],\n \"destination.swift_bank_account.short_business_description\": \"<string>\",\n \"destination.swift_bank_account.address\": {},\n \"destination.swift_bank_account.bank_address\": {}\n }\n },\n \"on_behalf_of\": {\n \"on_behalf_of.customer_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Idempotency-Key"] = '<idempotency-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"currency\": \"<string>\",\n \"amount\": \"<string>\",\n \"reference\": \"<string>\",\n \"recipient_id\": \"<string>\",\n \"destination\": {\n \"destination.type\": \"<string>\",\n \"destination.bank_account\": {\n \"destination.bank_account.account_number\": \"<string>\",\n \"destination.bank_account.bank_code\": \"<string>\",\n \"destination.bank_account.account_name\": \"<string>\"\n },\n \"destination.us_bank_account\": {\n \"destination.us_bank_account.account_owner_name\": \"<string>\",\n \"destination.us_bank_account.account_number\": \"<string>\",\n \"destination.us_bank_account.routing_number\": \"<string>\",\n \"destination.us_bank_account.bank_name\": \"<string>\",\n \"destination.us_bank_account.account_type\": \"<string>\",\n \"destination.us_bank_account.payout_scheme\": \"<string>\",\n \"destination.us_bank_account.address\": {}\n },\n \"destination.swift_bank_account\": {\n \"destination.swift_bank_account.account_owner_name\": \"<string>\",\n \"destination.swift_bank_account.account_owner_type\": \"<string>\",\n \"destination.swift_bank_account.account_country\": \"<string>\",\n \"destination.swift_bank_account.iban\": \"<string>\",\n \"destination.swift_bank_account.bic\": \"<string>\",\n \"destination.swift_bank_account.bank_name\": \"<string>\",\n \"destination.swift_bank_account.first_name\": \"<string>\",\n \"destination.swift_bank_account.last_name\": \"<string>\",\n \"destination.swift_bank_account.business_name\": \"<string>\",\n \"destination.swift_bank_account.category\": \"<string>\",\n \"destination.swift_bank_account.purpose_of_funds\": [\n {}\n ],\n \"destination.swift_bank_account.short_business_description\": \"<string>\",\n \"destination.swift_bank_account.address\": {},\n \"destination.swift_bank_account.bank_address\": {}\n }\n },\n \"on_behalf_of\": {\n \"on_behalf_of.customer_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "850e8400-e29b-41d4-a716-446655440000",
"reference": "txn_ngn_001",
"status": "PROCESSING",
"rail": "NGN_BANK",
"currency": "NGN",
"amount": "50000.00",
"debit_currency": "USD",
"debit_amount": "33.07",
"fee": "0.81",
"rate": {
"side": "SELL",
"value": "1550.00",
"captured_at": "2026-01-05T15:04:05Z"
},
"recipient": {
"id": "750e8400-e29b-41d4-a716-446655440000",
"type": "BANK_ACCOUNT",
"bank_account": {
"account_name": "John Doe",
"account_number_last4": "7890",
"bank_code": "044",
"bank_name": "Access Bank"
}
},
"on_behalf_of": null,
"created_at": "2026-01-05T15:04:05Z",
"settled_at": null
}
{
"id": "950e8400-e29b-41d4-a716-446655440000",
"reference": "txn_usd_001",
"status": "PROCESSING",
"rail": "USD_BANK",
"currency": "USD",
"amount": "100.00",
"debit_currency": "USD",
"debit_amount": "100.00",
"fee": "0.00",
"rate": null,
"recipient": {
"id": "860e8400-e29b-41d4-a716-446655440000",
"type": "US_BANK_ACCOUNT",
"us_bank_account": {
"account_owner_name": "Jane Smith",
"account_number_last4": "6789",
"bank_name": "Chase",
"account_type": "checking",
"payout_scheme": "ach"
}
},
"on_behalf_of": {
"customer_id": "650e8400-e29b-41d4-a716-446655440000"
},
"created_at": "2026-01-05T15:04:05Z",
"settled_at": null
}
Transfers
Create transfer
Create a merchant-initiated transfer
POST
/
v1
/
transfers
Create transfer
curl --request POST \
--url https://api.daya.co/v1/transfers \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"currency": "<string>",
"amount": "<string>",
"reference": "<string>",
"recipient_id": "<string>",
"destination": {
"destination.type": "<string>",
"destination.bank_account": {
"destination.bank_account.account_number": "<string>",
"destination.bank_account.bank_code": "<string>",
"destination.bank_account.account_name": "<string>"
},
"destination.us_bank_account": {
"destination.us_bank_account.account_owner_name": "<string>",
"destination.us_bank_account.account_number": "<string>",
"destination.us_bank_account.routing_number": "<string>",
"destination.us_bank_account.bank_name": "<string>",
"destination.us_bank_account.account_type": "<string>",
"destination.us_bank_account.payout_scheme": "<string>",
"destination.us_bank_account.address": {}
},
"destination.swift_bank_account": {
"destination.swift_bank_account.account_owner_name": "<string>",
"destination.swift_bank_account.account_owner_type": "<string>",
"destination.swift_bank_account.account_country": "<string>",
"destination.swift_bank_account.iban": "<string>",
"destination.swift_bank_account.bic": "<string>",
"destination.swift_bank_account.bank_name": "<string>",
"destination.swift_bank_account.first_name": "<string>",
"destination.swift_bank_account.last_name": "<string>",
"destination.swift_bank_account.business_name": "<string>",
"destination.swift_bank_account.category": "<string>",
"destination.swift_bank_account.purpose_of_funds": [
{}
],
"destination.swift_bank_account.short_business_description": "<string>",
"destination.swift_bank_account.address": {},
"destination.swift_bank_account.bank_address": {}
}
},
"on_behalf_of": {
"on_behalf_of.customer_id": "<string>"
}
}
'import requests
url = "https://api.daya.co/v1/transfers"
payload = {
"currency": "<string>",
"amount": "<string>",
"reference": "<string>",
"recipient_id": "<string>",
"destination": {
"destination.type": "<string>",
"destination.bank_account": {
"destination.bank_account.account_number": "<string>",
"destination.bank_account.bank_code": "<string>",
"destination.bank_account.account_name": "<string>"
},
"destination.us_bank_account": {
"destination.us_bank_account.account_owner_name": "<string>",
"destination.us_bank_account.account_number": "<string>",
"destination.us_bank_account.routing_number": "<string>",
"destination.us_bank_account.bank_name": "<string>",
"destination.us_bank_account.account_type": "<string>",
"destination.us_bank_account.payout_scheme": "<string>",
"destination.us_bank_account.address": {}
},
"destination.swift_bank_account": {
"destination.swift_bank_account.account_owner_name": "<string>",
"destination.swift_bank_account.account_owner_type": "<string>",
"destination.swift_bank_account.account_country": "<string>",
"destination.swift_bank_account.iban": "<string>",
"destination.swift_bank_account.bic": "<string>",
"destination.swift_bank_account.bank_name": "<string>",
"destination.swift_bank_account.first_name": "<string>",
"destination.swift_bank_account.last_name": "<string>",
"destination.swift_bank_account.business_name": "<string>",
"destination.swift_bank_account.category": "<string>",
"destination.swift_bank_account.purpose_of_funds": [{}],
"destination.swift_bank_account.short_business_description": "<string>",
"destination.swift_bank_account.address": {},
"destination.swift_bank_account.bank_address": {}
}
},
"on_behalf_of": { "on_behalf_of.customer_id": "<string>" }
}
headers = {
"X-Api-Key": "<x-api-key>",
"Idempotency-Key": "<idempotency-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Api-Key': '<x-api-key>',
'Idempotency-Key': '<idempotency-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
currency: '<string>',
amount: '<string>',
reference: '<string>',
recipient_id: '<string>',
destination: {
'destination.type': '<string>',
'destination.bank_account': {
'destination.bank_account.account_number': '<string>',
'destination.bank_account.bank_code': '<string>',
'destination.bank_account.account_name': '<string>'
},
'destination.us_bank_account': {
'destination.us_bank_account.account_owner_name': '<string>',
'destination.us_bank_account.account_number': '<string>',
'destination.us_bank_account.routing_number': '<string>',
'destination.us_bank_account.bank_name': '<string>',
'destination.us_bank_account.account_type': '<string>',
'destination.us_bank_account.payout_scheme': '<string>',
'destination.us_bank_account.address': {}
},
'destination.swift_bank_account': {
'destination.swift_bank_account.account_owner_name': '<string>',
'destination.swift_bank_account.account_owner_type': '<string>',
'destination.swift_bank_account.account_country': '<string>',
'destination.swift_bank_account.iban': '<string>',
'destination.swift_bank_account.bic': '<string>',
'destination.swift_bank_account.bank_name': '<string>',
'destination.swift_bank_account.first_name': '<string>',
'destination.swift_bank_account.last_name': '<string>',
'destination.swift_bank_account.business_name': '<string>',
'destination.swift_bank_account.category': '<string>',
'destination.swift_bank_account.purpose_of_funds': [{}],
'destination.swift_bank_account.short_business_description': '<string>',
'destination.swift_bank_account.address': {},
'destination.swift_bank_account.bank_address': {}
}
},
on_behalf_of: {'on_behalf_of.customer_id': '<string>'}
})
};
fetch('https://api.daya.co/v1/transfers', 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/transfers",
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([
'currency' => '<string>',
'amount' => '<string>',
'reference' => '<string>',
'recipient_id' => '<string>',
'destination' => [
'destination.type' => '<string>',
'destination.bank_account' => [
'destination.bank_account.account_number' => '<string>',
'destination.bank_account.bank_code' => '<string>',
'destination.bank_account.account_name' => '<string>'
],
'destination.us_bank_account' => [
'destination.us_bank_account.account_owner_name' => '<string>',
'destination.us_bank_account.account_number' => '<string>',
'destination.us_bank_account.routing_number' => '<string>',
'destination.us_bank_account.bank_name' => '<string>',
'destination.us_bank_account.account_type' => '<string>',
'destination.us_bank_account.payout_scheme' => '<string>',
'destination.us_bank_account.address' => [
]
],
'destination.swift_bank_account' => [
'destination.swift_bank_account.account_owner_name' => '<string>',
'destination.swift_bank_account.account_owner_type' => '<string>',
'destination.swift_bank_account.account_country' => '<string>',
'destination.swift_bank_account.iban' => '<string>',
'destination.swift_bank_account.bic' => '<string>',
'destination.swift_bank_account.bank_name' => '<string>',
'destination.swift_bank_account.first_name' => '<string>',
'destination.swift_bank_account.last_name' => '<string>',
'destination.swift_bank_account.business_name' => '<string>',
'destination.swift_bank_account.category' => '<string>',
'destination.swift_bank_account.purpose_of_funds' => [
[
]
],
'destination.swift_bank_account.short_business_description' => '<string>',
'destination.swift_bank_account.address' => [
],
'destination.swift_bank_account.bank_address' => [
]
]
],
'on_behalf_of' => [
'on_behalf_of.customer_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.daya.co/v1/transfers"
payload := strings.NewReader("{\n \"currency\": \"<string>\",\n \"amount\": \"<string>\",\n \"reference\": \"<string>\",\n \"recipient_id\": \"<string>\",\n \"destination\": {\n \"destination.type\": \"<string>\",\n \"destination.bank_account\": {\n \"destination.bank_account.account_number\": \"<string>\",\n \"destination.bank_account.bank_code\": \"<string>\",\n \"destination.bank_account.account_name\": \"<string>\"\n },\n \"destination.us_bank_account\": {\n \"destination.us_bank_account.account_owner_name\": \"<string>\",\n \"destination.us_bank_account.account_number\": \"<string>\",\n \"destination.us_bank_account.routing_number\": \"<string>\",\n \"destination.us_bank_account.bank_name\": \"<string>\",\n \"destination.us_bank_account.account_type\": \"<string>\",\n \"destination.us_bank_account.payout_scheme\": \"<string>\",\n \"destination.us_bank_account.address\": {}\n },\n \"destination.swift_bank_account\": {\n \"destination.swift_bank_account.account_owner_name\": \"<string>\",\n \"destination.swift_bank_account.account_owner_type\": \"<string>\",\n \"destination.swift_bank_account.account_country\": \"<string>\",\n \"destination.swift_bank_account.iban\": \"<string>\",\n \"destination.swift_bank_account.bic\": \"<string>\",\n \"destination.swift_bank_account.bank_name\": \"<string>\",\n \"destination.swift_bank_account.first_name\": \"<string>\",\n \"destination.swift_bank_account.last_name\": \"<string>\",\n \"destination.swift_bank_account.business_name\": \"<string>\",\n \"destination.swift_bank_account.category\": \"<string>\",\n \"destination.swift_bank_account.purpose_of_funds\": [\n {}\n ],\n \"destination.swift_bank_account.short_business_description\": \"<string>\",\n \"destination.swift_bank_account.address\": {},\n \"destination.swift_bank_account.bank_address\": {}\n }\n },\n \"on_behalf_of\": {\n \"on_behalf_of.customer_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("Idempotency-Key", "<idempotency-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://api.daya.co/v1/transfers")
.header("X-Api-Key", "<x-api-key>")
.header("Idempotency-Key", "<idempotency-key>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"<string>\",\n \"amount\": \"<string>\",\n \"reference\": \"<string>\",\n \"recipient_id\": \"<string>\",\n \"destination\": {\n \"destination.type\": \"<string>\",\n \"destination.bank_account\": {\n \"destination.bank_account.account_number\": \"<string>\",\n \"destination.bank_account.bank_code\": \"<string>\",\n \"destination.bank_account.account_name\": \"<string>\"\n },\n \"destination.us_bank_account\": {\n \"destination.us_bank_account.account_owner_name\": \"<string>\",\n \"destination.us_bank_account.account_number\": \"<string>\",\n \"destination.us_bank_account.routing_number\": \"<string>\",\n \"destination.us_bank_account.bank_name\": \"<string>\",\n \"destination.us_bank_account.account_type\": \"<string>\",\n \"destination.us_bank_account.payout_scheme\": \"<string>\",\n \"destination.us_bank_account.address\": {}\n },\n \"destination.swift_bank_account\": {\n \"destination.swift_bank_account.account_owner_name\": \"<string>\",\n \"destination.swift_bank_account.account_owner_type\": \"<string>\",\n \"destination.swift_bank_account.account_country\": \"<string>\",\n \"destination.swift_bank_account.iban\": \"<string>\",\n \"destination.swift_bank_account.bic\": \"<string>\",\n \"destination.swift_bank_account.bank_name\": \"<string>\",\n \"destination.swift_bank_account.first_name\": \"<string>\",\n \"destination.swift_bank_account.last_name\": \"<string>\",\n \"destination.swift_bank_account.business_name\": \"<string>\",\n \"destination.swift_bank_account.category\": \"<string>\",\n \"destination.swift_bank_account.purpose_of_funds\": [\n {}\n ],\n \"destination.swift_bank_account.short_business_description\": \"<string>\",\n \"destination.swift_bank_account.address\": {},\n \"destination.swift_bank_account.bank_address\": {}\n }\n },\n \"on_behalf_of\": {\n \"on_behalf_of.customer_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.daya.co/v1/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Idempotency-Key"] = '<idempotency-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"currency\": \"<string>\",\n \"amount\": \"<string>\",\n \"reference\": \"<string>\",\n \"recipient_id\": \"<string>\",\n \"destination\": {\n \"destination.type\": \"<string>\",\n \"destination.bank_account\": {\n \"destination.bank_account.account_number\": \"<string>\",\n \"destination.bank_account.bank_code\": \"<string>\",\n \"destination.bank_account.account_name\": \"<string>\"\n },\n \"destination.us_bank_account\": {\n \"destination.us_bank_account.account_owner_name\": \"<string>\",\n \"destination.us_bank_account.account_number\": \"<string>\",\n \"destination.us_bank_account.routing_number\": \"<string>\",\n \"destination.us_bank_account.bank_name\": \"<string>\",\n \"destination.us_bank_account.account_type\": \"<string>\",\n \"destination.us_bank_account.payout_scheme\": \"<string>\",\n \"destination.us_bank_account.address\": {}\n },\n \"destination.swift_bank_account\": {\n \"destination.swift_bank_account.account_owner_name\": \"<string>\",\n \"destination.swift_bank_account.account_owner_type\": \"<string>\",\n \"destination.swift_bank_account.account_country\": \"<string>\",\n \"destination.swift_bank_account.iban\": \"<string>\",\n \"destination.swift_bank_account.bic\": \"<string>\",\n \"destination.swift_bank_account.bank_name\": \"<string>\",\n \"destination.swift_bank_account.first_name\": \"<string>\",\n \"destination.swift_bank_account.last_name\": \"<string>\",\n \"destination.swift_bank_account.business_name\": \"<string>\",\n \"destination.swift_bank_account.category\": \"<string>\",\n \"destination.swift_bank_account.purpose_of_funds\": [\n {}\n ],\n \"destination.swift_bank_account.short_business_description\": \"<string>\",\n \"destination.swift_bank_account.address\": {},\n \"destination.swift_bank_account.bank_address\": {}\n }\n },\n \"on_behalf_of\": {\n \"on_behalf_of.customer_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "850e8400-e29b-41d4-a716-446655440000",
"reference": "txn_ngn_001",
"status": "PROCESSING",
"rail": "NGN_BANK",
"currency": "NGN",
"amount": "50000.00",
"debit_currency": "USD",
"debit_amount": "33.07",
"fee": "0.81",
"rate": {
"side": "SELL",
"value": "1550.00",
"captured_at": "2026-01-05T15:04:05Z"
},
"recipient": {
"id": "750e8400-e29b-41d4-a716-446655440000",
"type": "BANK_ACCOUNT",
"bank_account": {
"account_name": "John Doe",
"account_number_last4": "7890",
"bank_code": "044",
"bank_name": "Access Bank"
}
},
"on_behalf_of": null,
"created_at": "2026-01-05T15:04:05Z",
"settled_at": null
}
{
"id": "950e8400-e29b-41d4-a716-446655440000",
"reference": "txn_usd_001",
"status": "PROCESSING",
"rail": "USD_BANK",
"currency": "USD",
"amount": "100.00",
"debit_currency": "USD",
"debit_amount": "100.00",
"fee": "0.00",
"rate": null,
"recipient": {
"id": "860e8400-e29b-41d4-a716-446655440000",
"type": "US_BANK_ACCOUNT",
"us_bank_account": {
"account_owner_name": "Jane Smith",
"account_number_last4": "6789",
"bank_name": "Chase",
"account_type": "checking",
"payout_scheme": "ach"
}
},
"on_behalf_of": {
"customer_id": "650e8400-e29b-41d4-a716-446655440000"
},
"created_at": "2026-01-05T15:04:05Z",
"settled_at": null
}
Overview
Create a transfer to send funds to a saved recipient or an inline destination. Transfers support both NGN bank transfers and USD ACH/wire/SWIFT transfers. Transfers are funded from your merchant balance. Before creating a transfer, ensure your balance has sufficient funds. You can fund your balance in two ways:- Crypto deposits — send stablecoins to your merchant funding crypto wallet addresses.
- NGN deposits — transfer Naira to your permanent merchant funding NGN bank account (converted to USD at the current rate).
recipient_id or destination must be provided.
Saved vs inline recipients:
- Saved recipients are created separately via
POST /v1/recipientsand referenced byrecipient_id. - Inline recipients are created implicitly when
destinationis provided. - For inline USD destinations,
on_behalf_of.customer_idis effectively required because the inline recipient-creation flow needs a customer context. - That customer must already be tier-2 verified; otherwise inline USD recipient creation fails.
Idempotency: This endpoint is idempotent. Use
Idempotency-Key; X-Idempotency-Key is also accepted as a fallback.Authentication
Your merchant API key
Unique idempotency key for request deduplication.
X-Idempotency-Key is also accepted.Example: 550e8400-e29b-41d4-a716-446655440000Request Body
Transfer currency.Allowed values:
NGN | USDNGNtransfers: onlyBANK_ACCOUNTrecipients.USDtransfers: onlyUS_BANK_ACCOUNTorSWIFT_BANK_ACCOUNTrecipients.
Transfer amount as a decimal string in the target currency.Example:
50000.00Merchant-provided unique reference for the transfer.Example:
txn_abc123ID of a previously saved recipient (UUID). Mutually exclusive with
destination.Example: 750e8400-e29b-41d4-a716-446655440000Inline destination details. Mutually exclusive with
recipient_id.Show destination properties
Show destination properties
Destination type.Allowed values:
BANK_ACCOUNT | US_BANK_ACCOUNT | SWIFT_BANK_ACCOUNTNigerian bank account details. Required when
destination.type is BANK_ACCOUNT.US bank account details. Required when
destination.type is US_BANK_ACCOUNT.Show us_bank_account properties
Show us_bank_account properties
Owner of the bank account. 1-256 characters. ACH and wire transfers enforce regex constraints on this field.
Account number
Routing number
Bank name (1-256 characters)
Allowed values:
checking | savingsAllowed values:
ach | wireAddress of the beneficiary. US addresses used to receive wires must include a street number.
country must be an ISO 3166-1 alpha-3 code. State must be a valid ISO 3166-2 subdivision code for US addresses.SWIFT bank account details. Required when
destination.type is SWIFT_BANK_ACCOUNT. For individual recipients, provide first_name and last_name. For business recipients, provide business_name.Show swift_bank_account properties
Show swift_bank_account properties
Owner of the bank account. 1-256 characters. ACH and wire transfers enforce regex constraints on this field.
For
individual, provide first_name and last_name. For business, provide business_name.Allowed values: individual | businessISO 3166-1 alpha-3 country code where the bank account is held (3 characters)
International Bank Account Number
Bank Identifier Code (optional)
Bank name (1-256 characters, optional)
Required when
account_owner_type is individualRequired when
account_owner_type is individualRequired when
account_owner_type is businessThe context of business operations.Allowed values:
client | parent_company | subsidiary | supplierThe nature of the transactions this account will participate in. At least one value required.Allowed values:
intra_group_transfer | invoice_for_goods_and_servicesHow the business uses the funds.
Address of the beneficiary.
country must be an ISO 3166-1 alpha-3 code. US addresses used to receive wires must include a street number.Bank address.
country must be an ISO 3166-1 alpha-3 code.Optional metadata linking the transfer to a customer. Effectively required for inline USD destinations.
Show on_behalf_of properties
Show on_behalf_of properties
Customer ID (UUID)
Request Examples
curl --request POST \
--url https://api.daya.co/v1/transfers \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000' \
--header 'Content-Type: application/json' \
--data '{
"currency": "NGN",
"amount": "50000.00",
"reference": "txn_ngn_001",
"recipient_id": "750e8400-e29b-41d4-a716-446655440000"
}'
curl --request POST \
--url https://api.daya.co/v1/transfers \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'Idempotency-Key: 660e8400-e29b-41d4-a716-446655440000' \
--header 'Content-Type: application/json' \
--data '{
"currency": "USD",
"amount": "100.00",
"reference": "txn_usd_001",
"on_behalf_of": {
"customer_id": "650e8400-e29b-41d4-a716-446655440000"
},
"destination": {
"type": "US_BANK_ACCOUNT",
"us_bank_account": {
"account_owner_name": "Jane Smith",
"account_number": "123456789",
"routing_number": "021000021",
"bank_name": "Chase",
"account_type": "checking",
"payout_scheme": "ach",
"address": {
"street_line_1": "123 Main St",
"city": "New York",
"state": "NY",
"postal_code": "10001",
"country": "USA"
}
}
}
}'
Response
Transfer ID (UUID)
Merchant-provided reference
External status:
PROCESSING, SETTLED, or FAILEDTransfer rail:
NGN_BANK or USD_BANKTransfer currency (
NGN or USD)Transfer amount in the target currency
Currency debited from the merchant balance (
USD)Total amount debited from the merchant withdrawal balance, including fees.
Fee amount.
Resolved recipient details
Customer metadata if provided
When the transfer was created (ISO 8601)
When the transfer settled (ISO 8601). Null if not yet settled.
Success Response
{
"id": "850e8400-e29b-41d4-a716-446655440000",
"reference": "txn_ngn_001",
"status": "PROCESSING",
"rail": "NGN_BANK",
"currency": "NGN",
"amount": "50000.00",
"debit_currency": "USD",
"debit_amount": "33.07",
"fee": "0.81",
"rate": {
"side": "SELL",
"value": "1550.00",
"captured_at": "2026-01-05T15:04:05Z"
},
"recipient": {
"id": "750e8400-e29b-41d4-a716-446655440000",
"type": "BANK_ACCOUNT",
"bank_account": {
"account_name": "John Doe",
"account_number_last4": "7890",
"bank_code": "044",
"bank_name": "Access Bank"
}
},
"on_behalf_of": null,
"created_at": "2026-01-05T15:04:05Z",
"settled_at": null
}
{
"id": "950e8400-e29b-41d4-a716-446655440000",
"reference": "txn_usd_001",
"status": "PROCESSING",
"rail": "USD_BANK",
"currency": "USD",
"amount": "100.00",
"debit_currency": "USD",
"debit_amount": "100.00",
"fee": "0.00",
"rate": null,
"recipient": {
"id": "860e8400-e29b-41d4-a716-446655440000",
"type": "US_BANK_ACCOUNT",
"us_bank_account": {
"account_owner_name": "Jane Smith",
"account_number_last4": "6789",
"bank_name": "Chase",
"account_type": "checking",
"payout_scheme": "ach"
}
},
"on_behalf_of": {
"customer_id": "650e8400-e29b-41d4-a716-446655440000"
},
"created_at": "2026-01-05T15:04:05Z",
"settled_at": null
}
Notes
- A minimum effective USD debit of $1.00 is enforced.
- For NGN transfers,
amountis the NGN sent to the recipient anddebit_amountis the total USD debited from your withdrawal balance, including fees. - Saved USD recipients can be reused later without resending full destination details.
- Transfers emit
transfer.*webhooks:transfer.created,transfer.processing,transfer.submitted, thentransfer.completedortransfer.failed.transfer.requires_reviewis sent when a transfer is flagged.
⌘I