Skip to main content
POST
Update a beneficiary
The fields above are what you encrypt, not what goes on the wire. The body is always { "data": "<aes-256-gcm ciphertext>" } — see Authentication.
Send at least one of recipient_details or nickname — a body carrying neither is rejected with validation_error.

recipient_details is replaced, not merged

The object you send becomes the whole set of corridor fields, and it is revalidated against the corridor before it is saved.
Because reads come back masked, you cannot fetch a beneficiary and send its recipient_details straight back — the masked account number would be saved as the real one. Build the replacement from your own records.
A beneficiary_invalid means the details no longer satisfy the corridor’s requirements, usually because the corridor’s requirements changed after the record was first saved.

Payouts already in flight are unaffected

A payout snapshots the recipient details at the moment it is created, so editing a beneficiary never alters a payment that is already on its way.

Example request

The snippets assume you have already encrypted the body and signed the request — see the Quickstart for the full helper in Node and Python.
See Beneficiaries for corridor requirements, and Errors for the envelope shape shared by every endpoint.

Authorizations

x-api-key
string
header
required

Identifies your account. Issued from Developer Tools in the dashboard.

Authorization
string
header
required

Short-lived token from /api/v1/user/login, bound to your account and mode. Expires in 900 seconds.

Headers

x-timestamp
integer<int64>
required

Unix epoch in seconds — not milliseconds. Must be within ±5 minutes of our clock, which is what makes a captured request unusable later. Keep your client's clock NTP-synced.

Example:

1748023400

x-signature
string
required

HMAC-SHA256 over the signing string, hex encoded. The timestamp is part of what is signed, so a replayed body cannot be re-dated. See https://docs.pontisglobe.com/authentication for how it is built.

Example:

"2f8a9b4c1d7e0a3f6b8c2d5e9f1a4b7c0d3e6f9a2b5c8d1e4f7a0b3c6d9e2f5a"

Body

application/json
beneficiary_id
string<uuid>
required
recipient_details
object
nickname
string | null

null clears it.

Maximum string length: 80

Response

The updated beneficiary.

ok
enum<boolean>
Available options:
true
data
object