SettlraSettlra/Docs
DashboardAPI Playground

Beneficiaries API

The Beneficiaries API lets you save and manage recipients so you can initiate payouts without re-entering phone numbers and network details every time. Beneficiaries are scoped to your customer account and can be searched, updated, or removed at any time.

POST/v1/beneficiariesCreate a beneficiary
GET/v1/beneficiariesList beneficiaries
GET/v1/beneficiaries/:idGet a beneficiary
PATCH/v1/beneficiaries/:idUpdate a beneficiary
DELETE/v1/beneficiaries/:idDelete a beneficiary

Create a beneficiary

POST/v1/beneficiaries

Saves a new recipient to your account. You can reference the returned id when creating payouts to skip entering phone and network details inline.

Request body

FieldTypeRequiredDescription
namestringYesFull name of the recipient.
phonestringYesRecipient mobile number in E.164 format (e.g. +256700123456).
networkstringYesMobile money network slug. See Supported Networks.
nicknamestringNoShort label for display in dashboards and reports.

Response

FieldTypeDescription
idstringUnique beneficiary identifier.
customer_idstringOwning customer account ID.
namestringRecipient full name.
phonestringMobile number in E.164 format.
networkstringMobile money network slug.
nicknamestring | nullOptional short label.
created_atstringISO 8601 creation timestamp.
updated_atstringISO 8601 last-updated timestamp.
bash
"color:#ff7b72">curl "color:#79c0ff">-X POST https://api-sandbox.settlra.com/v1/beneficiaries \
  "color:#79c0ff">-H "Authorization: Bearer pk_test_your_key" \
  "color:#79c0ff">-H "Content-Type: application/json" \
  "color:#79c0ff">-d '{
    "name": "Grace Nakamura",
    "phone": "+256700123456",
    "network": "mtn_uganda",
    "nickname": "Grace"
  }'
javascript
"color:#ff7b72">import Settlra "color:#ff7b72">from '@settlra/node';

"color:#ff7b72">const client = "color:#ff7b72">new Settlra({ apiKey: process.env.SETTLRA_API_KEY });

"color:#ff7b72">const beneficiary = "color:#ff7b72">await client.beneficiaries.create({
  name: 'Grace Nakamura',
  phone: '+256700123456',
  network: 'mtn_uganda',
  nickname: 'Grace',
});

console.log(beneficiary.id); "color:#8b949e">// "ben_01HXYZ9ABCDEF"
json
{
  "id": "ben_01HXYZ9ABCDEF",
  "customer_id": "cust_abc123",
  "name": "Grace Nakamura",
  "phone": "+256700123456",
  "network": "mtn_uganda",
  "nickname": "Grace",
  "created_at": "2025-06-23T14:22:01Z",
  "updated_at": "2025-06-23T14:22:01Z"
}

List beneficiaries

GET/v1/beneficiaries

Returns a paginated list of all saved beneficiaries for your account. Use the search parameter to filter by name, phone, or nickname.

Query parameters

ParameterTypeDefaultDescription
searchstringFull-text search across name, phone, and nickname.
networkstringFilter by network slug (e.g. mtn_uganda).
limitnumber20Number of results per page (1–100).
offsetnumber0Pagination offset.

Response

FieldTypeDescription
dataBeneficiary[]Array of beneficiary objects.
totalnumberTotal count matching the query.
limitnumberPage size used.
offsetnumberCurrent offset.
bash
"color:#ff7b72">curl "https://api-sandbox.settlra.com/v1/beneficiaries?search=Grace&limit=10" \
  "color:#79c0ff">-H "Authorization: Bearer pk_test_your_key"
javascript
"color:#ff7b72">const { data, total } = "color:#ff7b72">await client.beneficiaries.list({
  search: 'Grace',
  limit: 10,
});

console.log(`Found ${total} beneficiaries`);

Get a beneficiary

GET/v1/beneficiaries/:id

Retrieves a single beneficiary by ID.

bash
"color:#ff7b72">curl https://api-sandbox.settlra.com/v1/beneficiaries/ben_01HXYZ9ABCDEF \
  "color:#79c0ff">-H "Authorization: Bearer pk_test_your_key"
javascript
"color:#ff7b72">const beneficiary = "color:#ff7b72">await client.beneficiaries.retrieve('ben_01HXYZ9ABCDEF');
console.log(beneficiary.name); "color:#8b949e">// "Grace Nakamura"

Update a beneficiary

PATCH/v1/beneficiaries/:id

Updates one or more fields on an existing beneficiary. Only the fields you provide are changed — omitted fields remain unchanged.

Request body

FieldTypeRequiredDescription
namestringNoUpdated full name.
phonestringNoUpdated phone number in E.164 format.
networkstringNoUpdated network slug.
nicknamestringNoUpdated short label.
bash
"color:#ff7b72">curl "color:#79c0ff">-X PATCH https://api-sandbox.settlra.com/v1/beneficiaries/ben_01HXYZ9ABCDEF \
  "color:#79c0ff">-H "Authorization: Bearer pk_test_your_key" \
  "color:#79c0ff">-H "Content-Type: application/json" \
  "color:#79c0ff">-d '{
    "nickname": "Grace K"
  }'
javascript
"color:#ff7b72">const updated = "color:#ff7b72">await client.beneficiaries.update('ben_01HXYZ9ABCDEF', {
  nickname: 'Grace K',
});

console.log(updated.nickname); "color:#8b949e">// "Grace K"

Delete a beneficiary

DELETE/v1/beneficiaries/:id

Permanently removes a beneficiary from your account. Existing payouts referencing this beneficiary are unaffected.

Response

FieldTypeDescription
idstringID of the deleted beneficiary.
deletedbooleanAlways true on success.
bash
"color:#ff7b72">curl "color:#79c0ff">-X DELETE https://api-sandbox.settlra.com/v1/beneficiaries/ben_01HXYZ9ABCDEF \
  "color:#79c0ff">-H "Authorization: Bearer pk_test_your_key"
javascript
"color:#ff7b72">const result = "color:#ff7b72">await client.beneficiaries.del('ben_01HXYZ9ABCDEF');
console.log(result.deleted); "color:#8b949e">// "color:#79c0ff">true
json
{
  "id": "ben_01HXYZ9ABCDEF",
  "deleted": true
}