Set Default Payer Name
curl --request PATCH \
--url https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"isDefault": true
}
'import requests
url = "https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default"
payload = { "isDefault": True }
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({isDefault: true})
};
fetch('https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default', 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.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default",
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([
'isDefault' => true
]),
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.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default"
payload := strings.NewReader("{\n \"isDefault\": true\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.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"isDefault\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default")
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 \"isDefault\": true\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Default payer name updated",
"success": true,
"data": {
"id": "9f8e7d6c-5b4a-4938-8271-0a1b2c3d4e5f",
"type": "business",
"name": "Acme Trading Ltd",
"firstName": null,
"lastName": null,
"registrationNumber": "RC1234567",
"registrationDate": "2019-04-02",
"country": "NG",
"address": {
"line1": "14 Marina Road",
"city": "Lagos",
"state": "Lagos",
"postalCode": "101001"
},
"status": "active",
"isDefault": true,
"decisionNote": null,
"documents": [],
"metadata": {
"vendor_id": "V-4471"
},
"createdAt": "2026-09-01T09:14:22.000Z",
"updatedAt": "2026-09-04T12:00:00.000Z"
}
}{
"status": 400,
"message": "Only an approved payer name can be set as the default"
}{
"status": 400,
"message": "Validation failed",
"code": "ACCOUNT_RESTRICTED",
"errors": [
{
"path": [
"amount"
],
"message": "amount must be a whole number of smallest currency units (e.g. cents)"
}
]
}{
"status": 403,
"message": "Payer names are not enabled for this account. Contact your Rolla account manager to turn them on.",
"code": "PAYER_NAMES_DISABLED"
}{
"status": 404,
"message": "Payer name not found"
}Payer Names (Named Payouts)
Set Default Payer Name
Makes this payer name the one applied to payouts that do not name a payer name, or clears that so those payouts carry your own business name again. You can have at most one default; setting a new one moves the flag off the old one. Only a payer name that has cleared review can be made the default.
PATCH
/
payer-names
/
{payerNameId}
/
default
Set Default Payer Name
curl --request PATCH \
--url https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"isDefault": true
}
'import requests
url = "https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default"
payload = { "isDefault": True }
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({isDefault: true})
};
fetch('https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default', 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.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default",
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([
'isDefault' => true
]),
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.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default"
payload := strings.NewReader("{\n \"isDefault\": true\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.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"isDefault\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rolla.xyz/api/v1/external/payer-names/{payerNameId}/default")
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 \"isDefault\": true\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Default payer name updated",
"success": true,
"data": {
"id": "9f8e7d6c-5b4a-4938-8271-0a1b2c3d4e5f",
"type": "business",
"name": "Acme Trading Ltd",
"firstName": null,
"lastName": null,
"registrationNumber": "RC1234567",
"registrationDate": "2019-04-02",
"country": "NG",
"address": {
"line1": "14 Marina Road",
"city": "Lagos",
"state": "Lagos",
"postalCode": "101001"
},
"status": "active",
"isDefault": true,
"decisionNote": null,
"documents": [],
"metadata": {
"vendor_id": "V-4471"
},
"createdAt": "2026-09-01T09:14:22.000Z",
"updatedAt": "2026-09-04T12:00:00.000Z"
}
}{
"status": 400,
"message": "Only an approved payer name can be set as the default"
}{
"status": 400,
"message": "Validation failed",
"code": "ACCOUNT_RESTRICTED",
"errors": [
{
"path": [
"amount"
],
"message": "amount must be a whole number of smallest currency units (e.g. cents)"
}
]
}{
"status": 403,
"message": "Payer names are not enabled for this account. Contact your Rolla account manager to turn them on.",
"code": "PAYER_NAMES_DISABLED"
}{
"status": 404,
"message": "Payer name not found"
}Chooses the payer name applied to payouts that do not name one. A payout that omits
payerNameId goes out under your default, so this is how you apply a name across an existing integration without changing your payout code.
Example Request
curl -X PATCH "https://api.rolla.xyz/api/v1/external/payer-names/9f8e7d6c-5b4a-4938-8271-0a1b2c3d4e5f/default" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{ "isDefault": true }'
isDefault defaults to true, so an empty body sets the default. Send false to clear it, after which payouts that omit payerNameId go out under your own business name again.
Example Response
{
"status": 200,
"message": "Default payer name updated",
"success": true,
"data": {
"id": "9f8e7d6c-5b4a-4938-8271-0a1b2c3d4e5f",
"type": "business",
"name": "Acme Trading Ltd",
"firstName": null,
"lastName": null,
"registrationNumber": "RC1234567",
"registrationDate": "2019-04-02",
"country": "NG",
"address": { "line1": "14 Marina Road", "city": "Lagos", "state": "Lagos", "postalCode": "101001" },
"status": "active",
"isDefault": true,
"decisionNote": null,
"documents": [],
"metadata": { "vendor_id": "V-4471" },
"createdAt": "2026-09-01T09:14:22.000Z",
"updatedAt": "2026-09-04T12:00:00.000Z"
}
}
Rules
- One default per account. Setting a new one moves the flag off the old one; there is no need to clear it first.
- It must have cleared review. Anything that is not approved — still in
pending_revieworchanges_requested, or alreadyrejectedorarchived— is refused with a400. A default that cannot be used would silently apply to every payout. - Archiving clears it. Archiving your default leaves you with none, and payouts revert to your own business name.
A name that has cleared review can be made the default while its registration is still
processing. Payouts sent in that window carry the name but wait until it is active before they can go out. If that matters to your flow, wait for the payer_name.active event before setting the default.Authorizations
Your Rolla API key
Path Parameters
The payer name id.
Body
application/json
Defaults to true, so an empty body sets the default. Send false to clear it.
Example:
true
Response
Default payer name updated