curl --request GET \
--url https://api.next.orenda.finance/v2/applications \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.next.orenda.finance/v2/applications"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v2/applications', 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/v2/applications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.next.orenda.finance/v2/applications"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.next.orenda.finance/v2/applications")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v2/applications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"application": {
"applicationId": "app_5e8d2f1a",
"customerId": "cust_3f9a2b7e",
"isCompany": false,
"role": {
"key": "PROGRAM_CUSTOMER",
"alias": "PROGRAM_CUSTOMER",
"name": "Customer"
},
"capabilities": {
"ownAccounts": true,
"funding": "OWN",
"delegate": null
},
"primaryApplicant": {
"firstName": "Ada",
"lastName": "Lovelace",
"email": "ada.lovelace@example.com"
},
"ubos": [],
"legalAccepted": true,
"kycResult": null,
"kycError": null,
"createdAt": "2026-06-18T10:32:00Z",
"updatedAt": "2026-06-18T10:44:12Z"
},
"status": {
"currentStep": "KYC_FORM",
"requiredActions": [
"complete-kyc-form"
]
}
}
}Get the current application (v2)
Returns the signed-in user’s application and its onboarding status. Poll this endpoint and render the screen for status.currentStep, which is always one of: KYC_FORM, IDENTITY_VERIFICATION, ADD_UBOS, LEGAL_AGREEMENTS, PROVIDER_DOCUMENTS, PROCESSING, IN_REVIEW, COMPLETED, DECLINED, ERROR. Poll about once a second on PROCESSING and while the user acts; on IN_REVIEW poll far less often (every 30 seconds or so), since a review can take hours.
status.requiredActions lists what the user must do on that screen and is empty while waiting: for example, PROCESSING right after a KYC form is submitted or legal agreements are accepted. A change you’ve already made to an existing application is reflected immediately. Right after creating one, use the application POST /v2/applications returned: this read can briefly return 404 until the new application is indexed.
Corporate managers: once a corporate manager’s onboarding is complete (status.currentStep is COMPLETED), application.customerId is the corporate’s customer id. Before that point it is the manager’s own. The manager’s own id remains available as applicationId throughout.
Customer tokens only: management (back-office) tokens get 403 and use the v1 routes.
curl --request GET \
--url https://api.next.orenda.finance/v2/applications \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.next.orenda.finance/v2/applications"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v2/applications', 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/v2/applications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.next.orenda.finance/v2/applications"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.next.orenda.finance/v2/applications")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v2/applications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"application": {
"applicationId": "app_5e8d2f1a",
"customerId": "cust_3f9a2b7e",
"isCompany": false,
"role": {
"key": "PROGRAM_CUSTOMER",
"alias": "PROGRAM_CUSTOMER",
"name": "Customer"
},
"capabilities": {
"ownAccounts": true,
"funding": "OWN",
"delegate": null
},
"primaryApplicant": {
"firstName": "Ada",
"lastName": "Lovelace",
"email": "ada.lovelace@example.com"
},
"ubos": [],
"legalAccepted": true,
"kycResult": null,
"kycError": null,
"createdAt": "2026-06-18T10:32:00Z",
"updatedAt": "2026-06-18T10:44:12Z"
},
"status": {
"currentStep": "KYC_FORM",
"requiredActions": [
"complete-kyc-form"
]
}
}
}