Client Beneficiaries
Manage payout beneficiaries on an account belonging to the customer. Create, update, confirm, and remove actions are recorded in the customer’s audit log as partner actions.
Note the path spelling: update uses /beneficiary/:beneficiaryId (singular), while confirm and remove use /beneficiaries/:beneficiaryId (plural).
Get Beneficiary List
Returns a paginated list of beneficiaries on the account.
Request
Method: GET
URL: /v1/client/:customerId/accounts/:accountId/beneficiary
Auth: PARTNER | PARTNER_ADMIN
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number. Defaults to 1. |
limit | integer | No | Page size. Defaults to 10. |
assetType | string | No | Filter by BeneficiaryAssetType (FIAT or CRYPTO). |
Response
Status: 200 OK
data is an array of beneficiaries for the account (page and limit control the window).
{
"success": true,
"data": [
{
"id": "39aa9cab-c45a-41f6-92d8-5aff67916fcf",
"recipientId": "8a42e9ff-ac35-4b47-b605-5aca4ac0bc78",
"accountId": "385dec3a-9bfe-4072-8733-7872ef350e71",
"name": "Acme Corp",
"displayName": "Acme Corp",
"reference": "Invoice#123",
"type": "BUSINESS",
"status": "ACTIVE",
"assetType": "FIAT",
"iban": "GB29NWBK60161331926812",
"bicSwiftCode": "NWBKGB2L",
"correspondentBic": null,
"bankingId": null,
"bankingIdType": null,
"accountNumber": null,
"routingNumber": null,
"currencyCode": "AED",
"countryCode": null,
"bankCountryCode": null,
"transactionType": "LOCAL",
"addressId": "f00e6da2-1d30-40ea-9593-7ecd3f9bb10e",
"address": {
"line1": "123 Business Rd",
"line2": "Suite 100",
"country": "AG"
},
"cryptoWalletAddress": null,
"networkId": null
}
]
}
Create Beneficiary
Adds a new beneficiary to the account. Supports both fiat and crypto beneficiaries.
Request
Method: POST
URL: /v1/client/:customerId/accounts/:accountId/beneficiary
Auth: PARTNER | PARTNER_ADMIN
Field Description
Core fields are listed below. Additional bank-scheme fields (sortCode, routingTransitNumber, transitNumber, bankStateBranch, ifsc, accountNumber, routingNumber, pixKey, clabe, nin, idType, idNumber, and others) are accepted and, where applicable, merged into the beneficiary metadata.
| Field | Type | Required | Description |
|---|---|---|---|
assetType | string | No | FIAT or CRYPTO. Defaults to fiat behaviour when omitted. |
name | string | Conditional | Beneficiary name. One of name, firstName, or companyName is required. |
firstName / lastName | string | Conditional | Individual name parts. lastName is required when firstName is set (non-business). Max 100 chars each. |
companyName | string | Conditional | Company name for business beneficiaries. Max 35 chars. |
displayName | string | No | Defaults to name when omitted. |
reference | string | Yes | Payment reference. Max 200 chars. |
type | string | No | BeneficiaryType (e.g. INDIVIDUAL, BUSINESS). |
transactionType | string | No | BeneficiaryTransactionType (e.g. LOCAL, INTERNATIONAL). |
currencyCode | string | Yes | 3–5 character uppercase currency code. |
countryCode | string | No | ISO 3166-1 alpha-2, uppercase. |
bankCountryCode | string | No | ISO 3166-1 alpha-2, uppercase. |
iban | string | Conditional | IBAN for fiat beneficiaries. |
bicSwiftCode / swiftCode | string | No | BIC/SWIFT code. swiftCode is accepted as an alias. |
correspondentBic | string | No | Correspondent BIC. |
cryptoWalletAddress | string | Conditional | Required when assetType=CRYPTO. |
networkId | string (UUID) | Conditional | Required when assetType=CRYPTO. |
address | object | Conditional | Required for international fiat transfers (line1 and country). |
email | string | No | Beneficiary email. |
source | string | No | Source of the beneficiary. |
metadata | object | No | Additional scheme-specific fields. |
Response
Status: 201 Created
{
"success": true,
"data": {
"id": "39aa9cab-c45a-41f6-92d8-5aff67916fcf",
"recipientId": "8a42e9ff-ac35-4b47-b605-5aca4ac0bc78",
"accountId": "385dec3a-9bfe-4072-8733-7872ef350e71",
"name": "Acme Corp",
"displayName": "Acme Corp",
"reference": "Invoice#123",
"type": "BUSINESS",
"status": "PENDING",
"assetType": "FIAT",
"iban": "GB29NWBK60161331926812",
"bicSwiftCode": "NWBKGB2L",
"currencyCode": "AED",
"transactionType": "LOCAL",
"metadata": {
"bankName": "NatWest"
},
"cryptoWalletAddress": null,
"networkId": null
}
}
New beneficiaries are created in PENDING status and must be confirmed before they can receive payouts.
Update Beneficiary
Updates editable fields on an existing beneficiary.
Request
Method: PUT
URL: /v1/client/:customerId/accounts/:accountId/beneficiary/:beneficiaryId
Auth: PARTNER | PARTNER_ADMIN
Payload
{
"name": "string",
"displayName": "string",
"countryCode": "string",
"email": "string",
"source": "string"
}
Response
Status: 201 Created
{
"success": true,
"data": {
"id": "39aa9cab-c45a-41f6-92d8-5aff67916fcf",
"name": "Acme Corp",
"displayName": "Acme Corporation",
"reference": "Invoice#123",
"type": "BUSINESS",
"status": "ACTIVE",
"assetType": "FIAT",
"currencyCode": "AED",
"countryCode": "GB",
"updatedAt": "2026-07-15T12:01:02.479Z"
}
}
Confirm Beneficiary
Confirms (activates) or rejects a pending beneficiary. When confirmed is false, the beneficiary is removed.
Request
Method: PUT
URL: /v1/client/:customerId/accounts/:accountId/beneficiaries/:beneficiaryId
Auth: PARTNER | PARTNER_ADMIN
Payload
{
"confirmed": true
}
Field Description
| Field | Type | Required | Description |
|---|---|---|---|
confirmed | boolean | Yes | true confirms the beneficiary; false removes it. |
Response
Status: 200 OK
{
"success": true,
"data": {
"id": "39aa9cab-c45a-41f6-92d8-5aff67916fcf",
"name": "Acme Corp",
"status": "ACTIVE",
"assetType": "FIAT",
"currencyCode": "AED"
}
}
When confirmed is false, the beneficiary is removed and data reflects the deletion result.
Remove Beneficiary
Deletes a beneficiary from the account.
Request
Method: DELETE
URL: /v1/client/:customerId/accounts/:accountId/beneficiaries/:beneficiaryId
Auth: PARTNER | PARTNER_ADMIN
Response
Status: 200 OK
{
"success": true,
"data": {
"id": "39aa9cab-c45a-41f6-92d8-5aff67916fcf",
"status": "DELETED"
}
}
Get Payout Config
Returns the payout configuration for a beneficiary, scoped to an account currency.
Request
Method: GET
URL: /v1/client/:customerId/accounts/:accountId/beneficiary/:beneficiaryId/payout-config
Auth: PARTNER | PARTNER_ADMIN
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountCurrencyId | string | Yes | Account currency to resolve the payout configuration for. |
Response
Status: 200 OK
data contains the provider-specific payout configuration for the beneficiary, including the supported payment methods, purpose codes, and any per-scheme limits. Exact fields depend on the account’s banking provider.
{
"success": true,
"data": {
"beneficiaryId": "39aa9cab-c45a-41f6-92d8-5aff67916fcf",
"accountCurrencyId": "e2149078-9be5-46f8-9ec1-4c742314a170",
"currencyCode": "AED",
"paymentMethods": ["LOCAL", "SWIFT"],
"purposeCodes": ["salaries", "goods_bought", "professional"],
"limits": {
"min": "1.00",
"max": "1000000.00"
}
}
}