Recipients for Marketplace
Request a Transfer
Reverse a split transfer between recipients for a specific payment transaction
POST
/
payments
/
{payment_id}
/
transactions
/
{transaction_id}
/
split-marketplace
/
transfer-reversal
cURL
curl --request POST \
--url https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--data '
{
"amount": {
"currency": "USD",
"value": 100
},
"description": "test transfer"
}
'import requests
url = "https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal"
payload = {
"amount": {
"currency": "USD",
"value": 100
},
"description": "test transfer"
}
headers = {
"public-api-key": "<api-key>",
"private-secret-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: {currency: 'USD', value: 100}, description: 'test transfer'})
};
fetch('https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal', 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-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal",
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([
'amount' => [
'currency' => 'USD',
'value' => 100
],
'description' => 'test transfer'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-api-key: <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-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal"
payload := strings.NewReader("{\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": 100\n },\n \"description\": \"test transfer\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("public-api-key", "<api-key>")
req.Header.Add("private-secret-key", "<api-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-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": 100\n },\n \"description\": \"test transfer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": 100\n },\n \"description\": \"test transfer\"\n}"
response = http.request(request)
puts response.read_body{
"id": "94036ceb-5cca-4384-b144-e2a5a908af77",
"recipient_id": "e56c3329-f3d9-48e5-a677-284b147abf95",
"amount": {
"currency": "USD",
"value": 100
},
"status": "SUCCEEDED",
"description": "test transfer",
"merchant_reference": "c19e858a-ffd6-4635-8a31-4f60c5becf4d",
"metadata": [],
"provider": null,
"transactions": [
{
"code": "7ac2c5f3-7c79-4e99-b45e-aa5952620188",
"type": "SPLIT_TRANSFER",
"status": "SUCCEEDED",
"provider_transfer_id": "tr_1T9eKVIiMnPsFcbbRTb8ObsZ",
"raw_response": "{\n \"id\": \"tr_1T9eKVIiMnPsFcbbRTb8ObsZ\",\n \"object\": \"transfer\",\n \"amount\": 10000,\n \"amount_reversed\": 0,\n \"balance_transaction\": \"txn_1T9eKVIiMnPsFcbbOPnvz3xM\",\n \"created\": 1773203107,\n \"currency\": \"usd\",\n \"description\": \"test transfer\",\n \"destination\": \"acct_1T9PSQIZEg1WWTvj\",\n \"destination_payment\": \"py_1T9eKVIZEg1WWTvjbVjmnzFK\",\n \"livemode\": false,\n \"metadata\": {},\n \"reversals\": {\n \"object\": \"list\",\n \"data\": [],\n \"has_more\": false,\n \"total_count\": 0,\n \"url\": \"/v1/transfers/tr_1T9eKVIiMnPsFcbbRTb8ObsZ/reversals\"\n },\n \"reversed\": false,\n \"source_transaction\": null,\n \"source_type\": \"card\",\n \"transfer_group\": null\n}",
"created_at": "2026-03-11T04:25:06.229027Z",
"updated_at": "2026-03-11T04:25:07.917364Z"
}
],
"created_at": "2026-03-11T04:25:06.208761Z",
"updated_at": "2026-03-11T04:25:07.928000342Z",
"completed_at": "2026-03-11T04:25:07.927971142Z"
}{
"code": "INVALID_PARAMETERS",
"messages": [
"Invalid parameters: list - [Payment has no recipient]"
]
}Enables marketplaces using Yuno Split Payments to request a transfer based on an existing payment. Request a transfer for a specified amount to one of the recipients participating in the split.
The transaction must carry
split_marketplace recipients, because the transfer goes to them. If the transaction has none, the API returns 400 with “Payment has no recipient”. The amount must be less than or equal to the transaction amount and in the payment currency.Authorizations
Headers
Unique identifier used in HTTP headers to ensure that a request is processed only once, even if it is retried due to network issues or timeouts.
Path Parameters
The unique identifier of the payment (MAX 64; MIN 36).
The unique identifier of the transaction (MAX 64; MIN 36).
Body
application/json
Response
Created
The unique identifier of the transfer.
The unique identifier of the recipient.
Show child attributes
Show child attributes
The status of the transfer.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
cURL
curl --request POST \
--url https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--data '
{
"amount": {
"currency": "USD",
"value": 100
},
"description": "test transfer"
}
'import requests
url = "https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal"
payload = {
"amount": {
"currency": "USD",
"value": 100
},
"description": "test transfer"
}
headers = {
"public-api-key": "<api-key>",
"private-secret-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: {currency: 'USD', value: 100}, description: 'test transfer'})
};
fetch('https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal', 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-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal",
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([
'amount' => [
'currency' => 'USD',
'value' => 100
],
'description' => 'test transfer'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-api-key: <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-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal"
payload := strings.NewReader("{\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": 100\n },\n \"description\": \"test transfer\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("public-api-key", "<api-key>")
req.Header.Add("private-secret-key", "<api-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-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": 100\n },\n \"description\": \"test transfer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/payments/{payment_id}/transactions/{transaction_id}/split-marketplace/transfer-reversal")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": 100\n },\n \"description\": \"test transfer\"\n}"
response = http.request(request)
puts response.read_body{
"id": "94036ceb-5cca-4384-b144-e2a5a908af77",
"recipient_id": "e56c3329-f3d9-48e5-a677-284b147abf95",
"amount": {
"currency": "USD",
"value": 100
},
"status": "SUCCEEDED",
"description": "test transfer",
"merchant_reference": "c19e858a-ffd6-4635-8a31-4f60c5becf4d",
"metadata": [],
"provider": null,
"transactions": [
{
"code": "7ac2c5f3-7c79-4e99-b45e-aa5952620188",
"type": "SPLIT_TRANSFER",
"status": "SUCCEEDED",
"provider_transfer_id": "tr_1T9eKVIiMnPsFcbbRTb8ObsZ",
"raw_response": "{\n \"id\": \"tr_1T9eKVIiMnPsFcbbRTb8ObsZ\",\n \"object\": \"transfer\",\n \"amount\": 10000,\n \"amount_reversed\": 0,\n \"balance_transaction\": \"txn_1T9eKVIiMnPsFcbbOPnvz3xM\",\n \"created\": 1773203107,\n \"currency\": \"usd\",\n \"description\": \"test transfer\",\n \"destination\": \"acct_1T9PSQIZEg1WWTvj\",\n \"destination_payment\": \"py_1T9eKVIZEg1WWTvjbVjmnzFK\",\n \"livemode\": false,\n \"metadata\": {},\n \"reversals\": {\n \"object\": \"list\",\n \"data\": [],\n \"has_more\": false,\n \"total_count\": 0,\n \"url\": \"/v1/transfers/tr_1T9eKVIiMnPsFcbbRTb8ObsZ/reversals\"\n },\n \"reversed\": false,\n \"source_transaction\": null,\n \"source_type\": \"card\",\n \"transfer_group\": null\n}",
"created_at": "2026-03-11T04:25:06.229027Z",
"updated_at": "2026-03-11T04:25:07.917364Z"
}
],
"created_at": "2026-03-11T04:25:06.208761Z",
"updated_at": "2026-03-11T04:25:07.928000342Z",
"completed_at": "2026-03-11T04:25:07.927971142Z"
}{
"code": "INVALID_PARAMETERS",
"messages": [
"Invalid parameters: list - [Payment has no recipient]"
]
}