curl --request POST \
--url https://api-sb.meld.io/payments/transactions/payout \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceAmount": "10.50",
"sourceCurrencyCode": "USD"
}
'import requests
url = "https://api-sb.meld.io/payments/transactions/payout"
payload = {
"sourceAmount": "10.50",
"sourceCurrencyCode": "USD"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({sourceAmount: '10.50', sourceCurrencyCode: 'USD'})
};
fetch('https://api-sb.meld.io/payments/transactions/payout', 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-sb.meld.io/payments/transactions/payout",
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([
'sourceAmount' => '10.50',
'sourceCurrencyCode' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api-sb.meld.io/payments/transactions/payout"
payload := strings.NewReader("{\n \"sourceAmount\": \"10.50\",\n \"sourceCurrencyCode\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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-sb.meld.io/payments/transactions/payout")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sourceAmount\": \"10.50\",\n \"sourceCurrencyCode\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sb.meld.io/payments/transactions/payout")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sourceAmount\": \"10.50\",\n \"sourceCurrencyCode\": \"USD\"\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"serviceProvider": "<string>",
"sessionId": "<string>",
"status": "<string>",
"transactionType": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"accountId": "<string>",
"countryCode": "<string>",
"cryptoDetails": {
"blockchainTransactionId": "<string>",
"chainId": "<string>",
"institution": "<string>",
"networkFee": 123,
"networkFeeInUsd": 123,
"offrampDestinationWalletAddress": "<string>",
"partnerFee": 123,
"partnerFeeInUsd": 123,
"swapFee": 123,
"swapFeeInUsd": 123,
"totalFee": 123,
"totalFeeInUsd": 123,
"transactionFee": 123,
"transactionFeeInUsd": 123,
"walletAddress": "<string>"
},
"customer": {
"accountId": "<string>",
"addresses": [
{
"addressDetails": {
"city": "<string>",
"country": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"lineOne": "<string>",
"lineTwo": "<string>",
"postalCode": "<string>",
"region": "<string>"
},
"type": "BILLING"
}
],
"email": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": {
"firstName": "<string>",
"lastName": "<string>"
},
"phone": "<string>",
"serviceProviders": {},
"status": "<string>"
},
"description": "<string>",
"destinationAmount": 123,
"destinationCurrencyCode": "<string>",
"externalCustomerId": "<string>",
"externalReferenceId": "<string>",
"externalSessionId": "<string>",
"externalSubaccountCustomerId": "<string>",
"fiatAmountInUsd": 123,
"isImported": true,
"isPassthrough": true,
"key": "<string>",
"multiFactorAuthorizationStatus": [
{
"method": "SMS",
"submitted": true,
"successful": true,
"url": "<string>"
}
],
"orderId": "<string>",
"parentPaymentTransactionId": "<string>",
"passthroughReference": "<string>",
"paymentDetails": {
"authAmount": 123,
"captureAmount": 123
},
"paymentMethodType": "<string>",
"serviceProviderCreatedAt": "2023-11-07T05:31:56Z",
"serviceProviderDetails": {},
"serviceProviderTransactionUrl": "<string>",
"serviceTransactionId": "<string>",
"sessionClientTags": {},
"sourceAmount": 123,
"sourceCurrencyCode": "<string>",
"subaccountCustomerId": "<string>"
}
}{
"code": "<string>",
"errors": [
"<string>"
],
"message": "<string>",
"requestId": "<string>",
"serviceProviderDetails": {
"code": "5034",
"message": "Digital currency and blockchain combination is restricted for customer's country"
},
"timestamp": "2026-08-14T09:41:22.482+00:00"
}{
"code": "<string>",
"errors": [
"<string>"
],
"message": "<string>",
"requestId": "<string>",
"serviceProviderDetails": {
"code": "5034",
"message": "Digital currency and blockchain combination is restricted for customer's country"
},
"timestamp": "2026-08-14T09:41:22.482+00:00"
}Create a payout transaction
Use this endpoint to create a payout transaction. You can find sample code in our public Postman collection, or build it in the adjacent API explorer. The link to our postman collection is: https://www.postman.com/meldeng/workspace/meld-io-public-api-collection
IDEMPOTENT REQUESTS: Please refer to Idempotency Key
ERRORS: Please refer to Error Responses
curl --request POST \
--url https://api-sb.meld.io/payments/transactions/payout \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceAmount": "10.50",
"sourceCurrencyCode": "USD"
}
'import requests
url = "https://api-sb.meld.io/payments/transactions/payout"
payload = {
"sourceAmount": "10.50",
"sourceCurrencyCode": "USD"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({sourceAmount: '10.50', sourceCurrencyCode: 'USD'})
};
fetch('https://api-sb.meld.io/payments/transactions/payout', 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-sb.meld.io/payments/transactions/payout",
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([
'sourceAmount' => '10.50',
'sourceCurrencyCode' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api-sb.meld.io/payments/transactions/payout"
payload := strings.NewReader("{\n \"sourceAmount\": \"10.50\",\n \"sourceCurrencyCode\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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-sb.meld.io/payments/transactions/payout")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sourceAmount\": \"10.50\",\n \"sourceCurrencyCode\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sb.meld.io/payments/transactions/payout")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sourceAmount\": \"10.50\",\n \"sourceCurrencyCode\": \"USD\"\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"serviceProvider": "<string>",
"sessionId": "<string>",
"status": "<string>",
"transactionType": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"accountId": "<string>",
"countryCode": "<string>",
"cryptoDetails": {
"blockchainTransactionId": "<string>",
"chainId": "<string>",
"institution": "<string>",
"networkFee": 123,
"networkFeeInUsd": 123,
"offrampDestinationWalletAddress": "<string>",
"partnerFee": 123,
"partnerFeeInUsd": 123,
"swapFee": 123,
"swapFeeInUsd": 123,
"totalFee": 123,
"totalFeeInUsd": 123,
"transactionFee": 123,
"transactionFeeInUsd": 123,
"walletAddress": "<string>"
},
"customer": {
"accountId": "<string>",
"addresses": [
{
"addressDetails": {
"city": "<string>",
"country": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"lineOne": "<string>",
"lineTwo": "<string>",
"postalCode": "<string>",
"region": "<string>"
},
"type": "BILLING"
}
],
"email": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": {
"firstName": "<string>",
"lastName": "<string>"
},
"phone": "<string>",
"serviceProviders": {},
"status": "<string>"
},
"description": "<string>",
"destinationAmount": 123,
"destinationCurrencyCode": "<string>",
"externalCustomerId": "<string>",
"externalReferenceId": "<string>",
"externalSessionId": "<string>",
"externalSubaccountCustomerId": "<string>",
"fiatAmountInUsd": 123,
"isImported": true,
"isPassthrough": true,
"key": "<string>",
"multiFactorAuthorizationStatus": [
{
"method": "SMS",
"submitted": true,
"successful": true,
"url": "<string>"
}
],
"orderId": "<string>",
"parentPaymentTransactionId": "<string>",
"passthroughReference": "<string>",
"paymentDetails": {
"authAmount": 123,
"captureAmount": 123
},
"paymentMethodType": "<string>",
"serviceProviderCreatedAt": "2023-11-07T05:31:56Z",
"serviceProviderDetails": {},
"serviceProviderTransactionUrl": "<string>",
"serviceTransactionId": "<string>",
"sessionClientTags": {},
"sourceAmount": 123,
"sourceCurrencyCode": "<string>",
"subaccountCustomerId": "<string>"
}
}{
"code": "<string>",
"errors": [
"<string>"
],
"message": "<string>",
"requestId": "<string>",
"serviceProviderDetails": {
"code": "5034",
"message": "Digital currency and blockchain combination is restricted for customer's country"
},
"timestamp": "2026-08-14T09:41:22.482+00:00"
}{
"code": "<string>",
"errors": [
"<string>"
],
"message": "<string>",
"requestId": "<string>",
"serviceProviderDetails": {
"code": "5034",
"message": "Digital currency and blockchain combination is restricted for customer's country"
},
"timestamp": "2026-08-14T09:41:22.482+00:00"
}Authorizations
Headers
Dated API version to use for this request, e.g. 2026-02-03.
"2026-02-03"
Body
Amount intended to be sent by this payout
1"10.50"
Three-letter ISO currency code, in lowercase. Must be a supported currency
1"USD"
Meld's internal Id for the Customer
A description about the transaction
Your (optional) Id for this customer, for example an id or reference from your database which you may supply during customer creation
PaymentMethod objects represent your customer's receiving payment instrument
Show child attributes
Show child attributes
The service provider used for this transaction.
ACROSS, AEROPAY, AKOYA, ALCHEMYPAY, APPLEPAY, AUTHORIZENET, BANXA, BILIRA, BINANCECONNECT, BINANCEPAY, BLOCKCHAINDOTCOM, BOOMFI, BRAINTREE, BRALE, BTCDIRECT, CASHAPP, CHECKOUT, CIRCLE, COINBASEPAY, COINFLOW, DUENETWORK, ELDORADO, FINICITY, FLASHNET, FONBNK, GUARDARIAN, HARBOUR, KOYWE, KRYPTONIM, MERCURYO, MESH, MESO, MOONPAY, MOOV, MX, NMI, NOAH, ONMETA, ONRAMPMONEY, PAYBIS, PAYPAL, PLAID, RAMP, REVOLUT, ROBINHOOD, ROUTERPROTOCOL, SALTEDGE, SALTEDGEPARTNERS, SARDINE, SHIFT4, SHOPIFY, SIMPLEX, SKRILLCRYPTO, SQUARE, STRIPE, SUMSUB, SWAPPED, TANGOCARD, TELLER, TOPPER, TRANSAK, TREMENDOUS, TRANSFI, UNLIMIT, WYRE, XANPOOL, YELLOWCARD, YODLEE Provider specific details which may can be provided for this transaction, if supported by the Service Provider.
Show child attributes
Show child attributes
Response
Payout transaction created successfully
Payment transaction information
Show child attributes
Show child attributes