POST
/
v1
/
applications
/
{applicationId}
/
ubos
/
actions
UBO actions
curl --request POST \
  --url https://api.next.orenda.finance/v1/applications/{applicationId}/ubos/actions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "action": "UBO_VERIFICATION_EMAIL",
  "uboIds": [
    "ubo_7c1d9e2f",
    "ubo_4a6b8c0d"
  ],
  "redirectSuccessUrl": "https://app.example.com/onboarding/ubo/success",
  "redirectRejectUrl": "https://app.example.com/onboarding/ubo/rejected",
  "ttlInSecs": 86400
}
'
import requests

url = "https://api.next.orenda.finance/v1/applications/{applicationId}/ubos/actions"

payload = {
"action": "UBO_VERIFICATION_EMAIL",
"uboIds": ["ubo_7c1d9e2f", "ubo_4a6b8c0d"],
"redirectSuccessUrl": "https://app.example.com/onboarding/ubo/success",
"redirectRejectUrl": "https://app.example.com/onboarding/ubo/rejected",
"ttlInSecs": 86400
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: 'UBO_VERIFICATION_EMAIL',
uboIds: ['ubo_7c1d9e2f', 'ubo_4a6b8c0d'],
redirectSuccessUrl: 'https://app.example.com/onboarding/ubo/success',
redirectRejectUrl: 'https://app.example.com/onboarding/ubo/rejected',
ttlInSecs: 86400
})
};

fetch('https://api.next.orenda.finance/v1/applications/{applicationId}/ubos/actions', 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.next.orenda.finance/v1/applications/{applicationId}/ubos/actions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'action' => 'UBO_VERIFICATION_EMAIL',
'uboIds' => [
'ubo_7c1d9e2f',
'ubo_4a6b8c0d'
],
'redirectSuccessUrl' => 'https://app.example.com/onboarding/ubo/success',
'redirectRejectUrl' => 'https://app.example.com/onboarding/ubo/rejected',
'ttlInSecs' => 86400
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$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.next.orenda.finance/v1/applications/{applicationId}/ubos/actions"

payload := strings.NewReader("{\n \"action\": \"UBO_VERIFICATION_EMAIL\",\n \"uboIds\": [\n \"ubo_7c1d9e2f\",\n \"ubo_4a6b8c0d\"\n ],\n \"redirectSuccessUrl\": \"https://app.example.com/onboarding/ubo/success\",\n \"redirectRejectUrl\": \"https://app.example.com/onboarding/ubo/rejected\",\n \"ttlInSecs\": 86400\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.next.orenda.finance/v1/applications/{applicationId}/ubos/actions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"action\": \"UBO_VERIFICATION_EMAIL\",\n \"uboIds\": [\n \"ubo_7c1d9e2f\",\n \"ubo_4a6b8c0d\"\n ],\n \"redirectSuccessUrl\": \"https://app.example.com/onboarding/ubo/success\",\n \"redirectRejectUrl\": \"https://app.example.com/onboarding/ubo/rejected\",\n \"ttlInSecs\": 86400\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.next.orenda.finance/v1/applications/{applicationId}/ubos/actions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": \"UBO_VERIFICATION_EMAIL\",\n \"uboIds\": [\n \"ubo_7c1d9e2f\",\n \"ubo_4a6b8c0d\"\n ],\n \"redirectSuccessUrl\": \"https://app.example.com/onboarding/ubo/success\",\n \"redirectRejectUrl\": \"https://app.example.com/onboarding/ubo/rejected\",\n \"ttlInSecs\": 86400\n}"

response = http.request(request)
puts response.read_body
{
  "success": true,
  "action": "UBO_VERIFICATION_EMAIL",
  "results": [
    {
      "uboId": "ubo_7c1d9e2f",
      "link": "https://verify.next.orenda.finance/ubo/7c1d9e2f?token=eyJ..."
    },
    {
      "uboId": "ubo_4a6b8c0d",
      "link": "https://verify.next.orenda.finance/ubo/4a6b8c0d?token=eyJ..."
    }
  ]
}
{
"success": false,
"code": "VALIDATION_ERROR",
"message": "isCompany is required"
}

Authorizations

Authorization
string
header
required

The user's access_token from authentication. The program and environment (sandbox/prod) are read from the token.

Path Parameters

applicationId
string
required

The application id from create / get.

Body

application/json
action
enum<string>
required

Required.

Available options:
UBO_VERIFICATION_EMAIL,
UBO_RESET
uboIds
string[]
required

Required. The UBOs to act on.

Minimum array length: 1
redirectSuccessUrl
string

Optional. Where the verification flow sends the UBO on success.

redirectRejectUrl
string

Optional. Where it sends them on rejection.

ttlInSecs
number

Optional. How long the verification link stays valid.

Response

Action results (may be partial — check each entry)

success
boolean
Example:

true

action
string
Example:

"UBO_VERIFICATION_EMAIL"

results
object[]