Update Payout Destination
curl --request PATCH \
--url https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"label": "<string>"
}
'import requests
url = "https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}"
payload = { "label": "<string>" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: '<string>'})
};
fetch('https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}', 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.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'label' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-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.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}"
payload := strings.NewReader("{\n \"label\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-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.patch("https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyPayout Destinations
Update Payout Destination
Rename a payout destination
PATCH
/
v1
/
accounts
/
{account_id}
/
beneficiaries
/
{beneficiary_id}
/
payout-destinations
/
{destination_id}
Update Payout Destination
curl --request PATCH \
--url https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"label": "<string>"
}
'import requests
url = "https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}"
payload = { "label": "<string>" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: '<string>'})
};
fetch('https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}', 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.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'label' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-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.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}"
payload := strings.NewReader("{\n \"label\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-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.patch("https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hopnow.io/v1/accounts/{account_id}/beneficiaries/{beneficiary_id}/payout-destinations/{destination_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodylabel is the only field this endpoint accepts. Any other key in the body is rejected with 422, and an empty body is a 200 no-op that returns the destination unchanged. Bank details, wallet details, currency and status cannot be edited. Delete the destination and create a new one instead.
Requires an API key with write access on the payments scope.
Path Parameters
string
required
The account’s external ID (starts with
acct_)string
required
The beneficiary’s external ID (starts with
bene_)string
required
The payout destination’s external ID (starts with
dest_)Request Body
string
Your own label for this destination (max 255 characters).
null, or an absent field, leaves the current value unchanged.Response
Returns the updated payout destination object, the same shape as Get Payout Destination.Errors
| Status | code | When |
|---|---|---|
422 | VALIDATION_ERROR | The body carries a field this endpoint does not accept, or label is over 255 characters; validation_errors names it |
404 | RESOURCE_NOT_FOUND | No such destination or beneficiary, either belongs to another account, or either has been deleted |
Request Example
{
"label": "Operating account"
}
Response Example
{
"id": "dest_7hq3nd0xk52vplf9rtb1wcue",
"object": "payout_destination",
"beneficiary_id": "bene_9gt1ummgx127biovlurm9mq2",
"country": "US",
"payment_rails": ["swift"],
"type": "bank_account",
"label": "Operating account",
"currency": "USD",
"network": null,
"status": "active",
"account_name": "John Doe",
"account_number_last4": "****7890",
"account_type": "checking",
"routing_number": "021000021",
"swift_code": null,
"iban_masked": null,
"clabe_last4": null,
"pix_key_last4": null,
"wallet_address_masked": null,
"bank_name": "Example Bank",
"bank_address": null,
"correspondent_bank_name": null,
"correspondent_bank_address": null,
"correspondent_bank_swift": null,
"account_holder": null,
"created": "2026-01-15T10:05:00Z",
"updated": "2026-01-16T09:30:00Z",
"created_by": "ak_0ub5w2xr8yl3qks6tcdn7m4v",
"updated_by": "ak_0ub5w2xr8yl3qks6tcdn7m4v"
}