Webhook Notifications
curl --request POST \
--url https://{merchant_base_URL}/v1/banking/transfers \
--header 'Content-Type: application/json' \
--data '
{
"id": "xfer_cc0e8400-e29b-41d4-a716-446655440000",
"destination_account_id": "acct_aa0e8400-e29b-41d4-a716-446655440000",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"provider": {
"account_id": "col_bank_account_789",
"transfer_id": "col_incoming_xyz456"
},
"status": "COMPLETED",
"direction": "INCOMING",
"sender": {
"account_number_last_4": "5678",
"routing_number": "987654321",
"account_name": "External Company LLC",
"bank_name": "Bank of America"
},
"amount": {
"value": 2500,
"currency": "USD"
},
"payment_rail": "ACH_STANDARD",
"description": "Payment for services",
"created_at": "2026-02-01T14:30:00Z",
"updated_at": "2026-02-01T14:30:00Z"
}
'import requests
url = "https://{merchant_base_URL}/v1/banking/transfers"
payload = {
"id": "xfer_cc0e8400-e29b-41d4-a716-446655440000",
"destination_account_id": "acct_aa0e8400-e29b-41d4-a716-446655440000",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"provider": {
"account_id": "col_bank_account_789",
"transfer_id": "col_incoming_xyz456"
},
"status": "COMPLETED",
"direction": "INCOMING",
"sender": {
"account_number_last_4": "5678",
"routing_number": "987654321",
"account_name": "External Company LLC",
"bank_name": "Bank of America"
},
"amount": {
"value": 2500,
"currency": "USD"
},
"payment_rail": "ACH_STANDARD",
"description": "Payment for services",
"created_at": "2026-02-01T14:30:00Z",
"updated_at": "2026-02-01T14:30:00Z"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 'xfer_cc0e8400-e29b-41d4-a716-446655440000',
destination_account_id: 'acct_aa0e8400-e29b-41d4-a716-446655440000',
account_id: '550e8400-e29b-41d4-a716-446655440000',
provider: {account_id: 'col_bank_account_789', transfer_id: 'col_incoming_xyz456'},
status: 'COMPLETED',
direction: 'INCOMING',
sender: {
account_number_last_4: '5678',
routing_number: '987654321',
account_name: 'External Company LLC',
bank_name: 'Bank of America'
},
amount: {value: 2500, currency: 'USD'},
payment_rail: 'ACH_STANDARD',
description: 'Payment for services',
created_at: '2026-02-01T14:30:00Z',
updated_at: '2026-02-01T14:30:00Z'
})
};
fetch('https://{merchant_base_URL}/v1/banking/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://{merchant_base_URL}/v1/banking/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([
'id' => 'xfer_cc0e8400-e29b-41d4-a716-446655440000',
'destination_account_id' => 'acct_aa0e8400-e29b-41d4-a716-446655440000',
'account_id' => '550e8400-e29b-41d4-a716-446655440000',
'provider' => [
'account_id' => 'col_bank_account_789',
'transfer_id' => 'col_incoming_xyz456'
],
'status' => 'COMPLETED',
'direction' => 'INCOMING',
'sender' => [
'account_number_last_4' => '5678',
'routing_number' => '987654321',
'account_name' => 'External Company LLC',
'bank_name' => 'Bank of America'
],
'amount' => [
'value' => 2500,
'currency' => 'USD'
],
'payment_rail' => 'ACH_STANDARD',
'description' => 'Payment for services',
'created_at' => '2026-02-01T14:30:00Z',
'updated_at' => '2026-02-01T14:30:00Z'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://{merchant_base_URL}/v1/banking/transfers"
payload := strings.NewReader("{\n \"id\": \"xfer_cc0e8400-e29b-41d4-a716-446655440000\",\n \"destination_account_id\": \"acct_aa0e8400-e29b-41d4-a716-446655440000\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"provider\": {\n \"account_id\": \"col_bank_account_789\",\n \"transfer_id\": \"col_incoming_xyz456\"\n },\n \"status\": \"COMPLETED\",\n \"direction\": \"INCOMING\",\n \"sender\": {\n \"account_number_last_4\": \"5678\",\n \"routing_number\": \"987654321\",\n \"account_name\": \"External Company LLC\",\n \"bank_name\": \"Bank of America\"\n },\n \"amount\": {\n \"value\": 2500,\n \"currency\": \"USD\"\n },\n \"payment_rail\": \"ACH_STANDARD\",\n \"description\": \"Payment for services\",\n \"created_at\": \"2026-02-01T14:30:00Z\",\n \"updated_at\": \"2026-02-01T14:30:00Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://{merchant_base_URL}/v1/banking/transfers")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"xfer_cc0e8400-e29b-41d4-a716-446655440000\",\n \"destination_account_id\": \"acct_aa0e8400-e29b-41d4-a716-446655440000\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"provider\": {\n \"account_id\": \"col_bank_account_789\",\n \"transfer_id\": \"col_incoming_xyz456\"\n },\n \"status\": \"COMPLETED\",\n \"direction\": \"INCOMING\",\n \"sender\": {\n \"account_number_last_4\": \"5678\",\n \"routing_number\": \"987654321\",\n \"account_name\": \"External Company LLC\",\n \"bank_name\": \"Bank of America\"\n },\n \"amount\": {\n \"value\": 2500,\n \"currency\": \"USD\"\n },\n \"payment_rail\": \"ACH_STANDARD\",\n \"description\": \"Payment for services\",\n \"created_at\": \"2026-02-01T14:30:00Z\",\n \"updated_at\": \"2026-02-01T14:30:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{merchant_base_URL}/v1/banking/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"xfer_cc0e8400-e29b-41d4-a716-446655440000\",\n \"destination_account_id\": \"acct_aa0e8400-e29b-41d4-a716-446655440000\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"provider\": {\n \"account_id\": \"col_bank_account_789\",\n \"transfer_id\": \"col_incoming_xyz456\"\n },\n \"status\": \"COMPLETED\",\n \"direction\": \"INCOMING\",\n \"sender\": {\n \"account_number_last_4\": \"5678\",\n \"routing_number\": \"987654321\",\n \"account_name\": \"External Company LLC\",\n \"bank_name\": \"Bank of America\"\n },\n \"amount\": {\n \"value\": 2500,\n \"currency\": \"USD\"\n },\n \"payment_rail\": \"ACH_STANDARD\",\n \"description\": \"Payment for services\",\n \"created_at\": \"2026-02-01T14:30:00Z\",\n \"updated_at\": \"2026-02-01T14:30:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"received": true
}{merchant_base_URL}/v1/banking/transfers. Your endpoint must return a 200 OK response with {"received": true}.
Notifications include sender details, transfer amount, payment rail, and status. Yuno retries on 5xx responses and timeouts with exponential backoff.
See Webhook events for the complete list of Banking Connectivity webhook event types.Body
The unique identifier of the transfer (prefixed xfer_).
"xfer_cc0e8400-e29b-41d4-a716-446655440000"
The id of the destination Banking Connectivity account that received the incoming transfer.
"acct_aa0e8400-e29b-41d4-a716-446655440000"
The merchant's Yuno account identifier.
"550e8400-e29b-41d4-a716-446655440000"
Provider-side identifiers.
Show child attributes
Show child attributes
The transfer status.
PENDING, COMPLETED "COMPLETED"
The transfer direction. Incoming transfer webhooks always have INCOMING.
INCOMING "INCOMING"
Information about the external sender.
Show child attributes
Show child attributes
The transfer amount.
Show child attributes
Show child attributes
The payment rail used for the transfer.
ACH_STANDARD, ACH_SAME_DAY, WIRE, RTP, FPS, CHAPS, BACS, NPP, PAYTO, BPAY "ACH_STANDARD"
The transfer description.
"Payment for services"
The timestamp when the transfer was created (ISO 8601).
"2026-02-01T14:30:00Z"
The timestamp when the transfer was last updated (ISO 8601).
"2026-02-01T14:30:00Z"
Response
Was this page helpful?
curl --request POST \
--url https://{merchant_base_URL}/v1/banking/transfers \
--header 'Content-Type: application/json' \
--data '
{
"id": "xfer_cc0e8400-e29b-41d4-a716-446655440000",
"destination_account_id": "acct_aa0e8400-e29b-41d4-a716-446655440000",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"provider": {
"account_id": "col_bank_account_789",
"transfer_id": "col_incoming_xyz456"
},
"status": "COMPLETED",
"direction": "INCOMING",
"sender": {
"account_number_last_4": "5678",
"routing_number": "987654321",
"account_name": "External Company LLC",
"bank_name": "Bank of America"
},
"amount": {
"value": 2500,
"currency": "USD"
},
"payment_rail": "ACH_STANDARD",
"description": "Payment for services",
"created_at": "2026-02-01T14:30:00Z",
"updated_at": "2026-02-01T14:30:00Z"
}
'import requests
url = "https://{merchant_base_URL}/v1/banking/transfers"
payload = {
"id": "xfer_cc0e8400-e29b-41d4-a716-446655440000",
"destination_account_id": "acct_aa0e8400-e29b-41d4-a716-446655440000",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"provider": {
"account_id": "col_bank_account_789",
"transfer_id": "col_incoming_xyz456"
},
"status": "COMPLETED",
"direction": "INCOMING",
"sender": {
"account_number_last_4": "5678",
"routing_number": "987654321",
"account_name": "External Company LLC",
"bank_name": "Bank of America"
},
"amount": {
"value": 2500,
"currency": "USD"
},
"payment_rail": "ACH_STANDARD",
"description": "Payment for services",
"created_at": "2026-02-01T14:30:00Z",
"updated_at": "2026-02-01T14:30:00Z"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 'xfer_cc0e8400-e29b-41d4-a716-446655440000',
destination_account_id: 'acct_aa0e8400-e29b-41d4-a716-446655440000',
account_id: '550e8400-e29b-41d4-a716-446655440000',
provider: {account_id: 'col_bank_account_789', transfer_id: 'col_incoming_xyz456'},
status: 'COMPLETED',
direction: 'INCOMING',
sender: {
account_number_last_4: '5678',
routing_number: '987654321',
account_name: 'External Company LLC',
bank_name: 'Bank of America'
},
amount: {value: 2500, currency: 'USD'},
payment_rail: 'ACH_STANDARD',
description: 'Payment for services',
created_at: '2026-02-01T14:30:00Z',
updated_at: '2026-02-01T14:30:00Z'
})
};
fetch('https://{merchant_base_URL}/v1/banking/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://{merchant_base_URL}/v1/banking/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([
'id' => 'xfer_cc0e8400-e29b-41d4-a716-446655440000',
'destination_account_id' => 'acct_aa0e8400-e29b-41d4-a716-446655440000',
'account_id' => '550e8400-e29b-41d4-a716-446655440000',
'provider' => [
'account_id' => 'col_bank_account_789',
'transfer_id' => 'col_incoming_xyz456'
],
'status' => 'COMPLETED',
'direction' => 'INCOMING',
'sender' => [
'account_number_last_4' => '5678',
'routing_number' => '987654321',
'account_name' => 'External Company LLC',
'bank_name' => 'Bank of America'
],
'amount' => [
'value' => 2500,
'currency' => 'USD'
],
'payment_rail' => 'ACH_STANDARD',
'description' => 'Payment for services',
'created_at' => '2026-02-01T14:30:00Z',
'updated_at' => '2026-02-01T14:30:00Z'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://{merchant_base_URL}/v1/banking/transfers"
payload := strings.NewReader("{\n \"id\": \"xfer_cc0e8400-e29b-41d4-a716-446655440000\",\n \"destination_account_id\": \"acct_aa0e8400-e29b-41d4-a716-446655440000\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"provider\": {\n \"account_id\": \"col_bank_account_789\",\n \"transfer_id\": \"col_incoming_xyz456\"\n },\n \"status\": \"COMPLETED\",\n \"direction\": \"INCOMING\",\n \"sender\": {\n \"account_number_last_4\": \"5678\",\n \"routing_number\": \"987654321\",\n \"account_name\": \"External Company LLC\",\n \"bank_name\": \"Bank of America\"\n },\n \"amount\": {\n \"value\": 2500,\n \"currency\": \"USD\"\n },\n \"payment_rail\": \"ACH_STANDARD\",\n \"description\": \"Payment for services\",\n \"created_at\": \"2026-02-01T14:30:00Z\",\n \"updated_at\": \"2026-02-01T14:30:00Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://{merchant_base_URL}/v1/banking/transfers")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"xfer_cc0e8400-e29b-41d4-a716-446655440000\",\n \"destination_account_id\": \"acct_aa0e8400-e29b-41d4-a716-446655440000\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"provider\": {\n \"account_id\": \"col_bank_account_789\",\n \"transfer_id\": \"col_incoming_xyz456\"\n },\n \"status\": \"COMPLETED\",\n \"direction\": \"INCOMING\",\n \"sender\": {\n \"account_number_last_4\": \"5678\",\n \"routing_number\": \"987654321\",\n \"account_name\": \"External Company LLC\",\n \"bank_name\": \"Bank of America\"\n },\n \"amount\": {\n \"value\": 2500,\n \"currency\": \"USD\"\n },\n \"payment_rail\": \"ACH_STANDARD\",\n \"description\": \"Payment for services\",\n \"created_at\": \"2026-02-01T14:30:00Z\",\n \"updated_at\": \"2026-02-01T14:30:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{merchant_base_URL}/v1/banking/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"xfer_cc0e8400-e29b-41d4-a716-446655440000\",\n \"destination_account_id\": \"acct_aa0e8400-e29b-41d4-a716-446655440000\",\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"provider\": {\n \"account_id\": \"col_bank_account_789\",\n \"transfer_id\": \"col_incoming_xyz456\"\n },\n \"status\": \"COMPLETED\",\n \"direction\": \"INCOMING\",\n \"sender\": {\n \"account_number_last_4\": \"5678\",\n \"routing_number\": \"987654321\",\n \"account_name\": \"External Company LLC\",\n \"bank_name\": \"Bank of America\"\n },\n \"amount\": {\n \"value\": 2500,\n \"currency\": \"USD\"\n },\n \"payment_rail\": \"ACH_STANDARD\",\n \"description\": \"Payment for services\",\n \"created_at\": \"2026-02-01T14:30:00Z\",\n \"updated_at\": \"2026-02-01T14:30:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"received": true
}