POST
/
v1
/
applications
/
kyb
Submit KYB data
curl --request POST \
  --url https://api.next.orenda.finance/v1/applications/kyb \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "company_name": "Acme Ltd",
  "registration_number": "12345678",
  "country": "GB"
}
'
import requests

url = "https://api.next.orenda.finance/v1/applications/kyb"

payload = {
"company_name": "Acme Ltd",
"registration_number": "12345678",
"country": "GB"
}
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({company_name: 'Acme Ltd', registration_number: '12345678', country: 'GB'})
};

fetch('https://api.next.orenda.finance/v1/applications/kyb', 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/kyb",
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([
'company_name' => 'Acme Ltd',
'registration_number' => '12345678',
'country' => 'GB'
]),
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/kyb"

payload := strings.NewReader("{\n \"company_name\": \"Acme Ltd\",\n \"registration_number\": \"12345678\",\n \"country\": \"GB\"\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/kyb")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"company_name\": \"Acme Ltd\",\n \"registration_number\": \"12345678\",\n \"country\": \"GB\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.next.orenda.finance/v1/applications/kyb")

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 \"company_name\": \"Acme Ltd\",\n \"registration_number\": \"12345678\",\n \"country\": \"GB\"\n}"

response = http.request(request)
puts response.read_body
{
  "success": true,
  "data": {
    "isComplete": true,
    "message": "KYB data submitted successfully"
  }
}
{
"success": false,
"code": "VALIDATION_ERROR",
"message": "isCompany is required"
}
{
"success": false,
"code": "UNAUTHORIZED",
"message": "Unauthorized"
}
{
"success": false,
"code": "WEB_TOKEN_PROVIDER_MISMATCH",
"message": "Sumsub is not the active provider for this application"
}
{
"success": false,
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}
For company applications (isCompany: true), submit the KYB answers here instead of Submit KYC data. The application is taken from your bearer token, so there’s no id in the path. Answers are keyed against the same schema, which returns company and beneficial-owner fields for companies. Partial saves are allowed; isComplete says whether the step is finished. Keep polling GET /v1/applications. If beneficial-owner sync reports problems, the data is still saved and the response includes a uboProcessingError.

Authorizations

Authorization
string
header
required

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

Body

application/json

Field answers keyed by the KYB schema field key, including company and beneficial-owner fields. Values are strings, nested groups, or base64url-encoded file contents.

Response

KYB data accepted

success
boolean
Example:

true

data
object