curl --request POST \
--url https://api.next.orenda.finance/v1/customers/{customerId}/beneficiaries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "acc_7c1d8e4a",
"name": "Ada Lovelace",
"account": {
"type": "uk",
"sortCode": "040506",
"accountNumber": "87654321"
},
"confirmation": {
"method": "totp",
"totp": "123456",
"accessToken": "eyJraWQiOi..."
}
}
'{
"success": true,
"data": {
"id": "ben_4b8e1c9d",
"customerId": "cust_3f9a2b7e",
"accountId": "acc_7c1d8e4a",
"name": "Ada Lovelace",
"status": "ACTIVE"
}
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "IDEMPOTENT_REQUEST_IN_PROGRESS",
"message": "A request with this Idempotency-Key is already in progress"
}Add a beneficiary
Create a payee, confirmed with a passkey, 2FA code, or PIN.
curl --request POST \
--url https://api.next.orenda.finance/v1/customers/{customerId}/beneficiaries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "acc_7c1d8e4a",
"name": "Ada Lovelace",
"account": {
"type": "uk",
"sortCode": "040506",
"accountNumber": "87654321"
},
"confirmation": {
"method": "totp",
"totp": "123456",
"accessToken": "eyJraWQiOi..."
}
}
'{
"success": true,
"data": {
"id": "ben_4b8e1c9d",
"customerId": "cust_3f9a2b7e",
"accountId": "acc_7c1d8e4a",
"name": "Ada Lovelace",
"status": "ACTIVE"
}
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "IDEMPOTENT_REQUEST_IN_PROGRESS",
"message": "A request with this Idempotency-Key is already in progress"
}account object plus a confirmation object.
The account object is discriminated by type — it carries exactly the fields that
type needs:
"account": { "type": "uk", "sortCode": "040506", "accountNumber": "87654321" }
"account": { "type": "iban", "iban": "DE89…", "bic": "AGRIFRPP" }
uk account, an EU program accepts an iban account, and a program set up for both
accepts either. Sending an account type your program doesn’t support is rejected. The
iban variant also takes an optional bankName (required only on SEPA providers). See
Program capabilities.address (at least line1, city, and country)
when you add a beneficiary; others don’t need it at all. If your program requires it and
it’s missing, the create is rejected. See Program capabilities.Choose a confirmation method
Theconfirmation object carries a method and that method’s fields:
- Passkey (recommended)
- 2FA code
- PIN
passkeySession
and fido2options, complete it on the device (same as a
passkey login), then send:"confirmation": {
"method": "passkey",
"passkeySession": "3f1c2e8a-…",
"assertion": "{\"credentialIdB64\":\"…\"}"
}
accessToken — the
same access_token you’re sending as the Authorization bearer (from
sign-in):"confirmation": {
"method": "totp",
"totp": "123456",
"accessToken": "eyJraWQiOi…"
}
method: "pin" with a 400. See Program capabilities.Request a one-time PIN — it’s sent to the customer by
SMS and expires in 60 seconds — then send it:"confirmation": {
"method": "pin",
"pin": "1234"
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Optional. Makes the request retry-safe: a retry with the same key resolves to the same resource instead of creating a duplicate. Must be a UUID, and is scoped to the authenticated customer. Preferred over any idempotencyKey body field.
Path Parameters
The customer's id. It's the customerId from the signed-in user's application (the onboarding response, also returned on the customer's accounts).
Body
Always required: accountId, name, an account object (the payee's bank details), and a confirmation object.
Required. The customer account this payee is linked to. A customer can have several accounts; use the accountId of the one the payment will come from (from the customer's account list).
Required. The payee's name.
Destination bank details. Set type to uk or iban and send that type's fields.
- UK
- IBAN
Show child attributes
Show child attributes
Step-up confirmation. Set method to passkey, totp, or pin and include that method's fields. pin is a program capability — see Program capabilities.
- Passkey
- 2FA code
- PIN
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Optional. true if the payee is a business, false (default) for an individual. The accountType you see on the beneficiary is derived from this.
Optional. Idempotency key for retry-safety. The Idempotency-Key header is preferred and overrides this field. Reusing a key with different core parameters returns 400; a key whose beneficiary is still being claimed returns 409.