curl --request GET \
--url https://api.next.orenda.finance/v1/programs/{programId}/legal-documentsimport requests
url = "https://api.next.orenda.finance/v1/programs/{programId}/legal-documents"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.next.orenda.finance/v1/programs/{programId}/legal-documents', 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/programs/{programId}/legal-documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/v1/programs/{programId}/legal-documents"
req, _ := http.NewRequest("GET", url, nil)
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/v1/programs/{programId}/legal-documents")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v1/programs/{programId}/legal-documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"documents": {
"provider": "examplebank",
"documentSetVersion": "1.0.0",
"lastUpdated": "2026-02-05",
"docs": [
{
"id": "privacy_policy",
"name": "Privacy Policy",
"location": "https://assets.orenda.finance/term-docs/Privacy_Policy.pdf",
"version": "1",
"hash": "sha256:e5f6a7b8c9d0",
"required": true,
"applicableTo": [
"consumer",
"business"
],
"effectiveDate": "2026-02-05"
},
{
"id": "platform_agreement",
"name": "Platform Agreement",
"location": "https://assets.orenda.finance/term-docs/OrendaPlatformAgreement.pdf",
"version": "1",
"hash": "sha256:a1b2c3d4e5f6",
"required": true,
"applicableTo": [
"consumer",
"business"
],
"effectiveDate": "2026-02-05"
}
]
}
}
}{
"success": false,
"code": "VALIDATION_ERROR",
"message": "A valid program ID is required"
}{
"success": false,
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"success": false,
"code": "SERVICE_UNAVAILABLE",
"message": "Legal documents are unavailable"
}Get program legal documents
Returns the legal-document set configured for a program. This endpoint is unauthenticated — it exists so pre-signup surfaces (registration screens, marketing pages) can link the live platform agreement and privacy policy instead of shipping their own copies of the PDFs.
Unlike GET /v1/applications/{applicationId}/documents/legal, the response is not filtered by account type and carries no acceptance state: every document configured for the program is returned, and the caller picks the ones it needs by id.
If the program has no configured document set, the shared minimum set is returned rather than a 404, so the caller always receives a usable set. Clients that need program-specific documents should therefore check the returned ids rather than assuming a match on the requested programId.
Document location values are absolute https:// URLs and can be linked directly.
Caching. Responses are cacheable — the handler sends Cache-Control: public, max-age=300 — and the underlying configuration is memoised in-process for five minutes. An edit to the legal-document configuration therefore takes up to five minutes to appear here, and longer if an intermediate cache is holding a response. Do not treat this endpoint as a real-time read.
curl --request GET \
--url https://api.next.orenda.finance/v1/programs/{programId}/legal-documentsimport requests
url = "https://api.next.orenda.finance/v1/programs/{programId}/legal-documents"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.next.orenda.finance/v1/programs/{programId}/legal-documents', 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/programs/{programId}/legal-documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/v1/programs/{programId}/legal-documents"
req, _ := http.NewRequest("GET", url, nil)
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/v1/programs/{programId}/legal-documents")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v1/programs/{programId}/legal-documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"documents": {
"provider": "examplebank",
"documentSetVersion": "1.0.0",
"lastUpdated": "2026-02-05",
"docs": [
{
"id": "privacy_policy",
"name": "Privacy Policy",
"location": "https://assets.orenda.finance/term-docs/Privacy_Policy.pdf",
"version": "1",
"hash": "sha256:e5f6a7b8c9d0",
"required": true,
"applicableTo": [
"consumer",
"business"
],
"effectiveDate": "2026-02-05"
},
{
"id": "platform_agreement",
"name": "Platform Agreement",
"location": "https://assets.orenda.finance/term-docs/OrendaPlatformAgreement.pdf",
"version": "1",
"hash": "sha256:a1b2c3d4e5f6",
"required": true,
"applicableTo": [
"consumer",
"business"
],
"effectiveDate": "2026-02-05"
}
]
}
}
}{
"success": false,
"code": "VALIDATION_ERROR",
"message": "A valid program ID is required"
}{
"success": false,
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"success": false,
"code": "SERVICE_UNAVAILABLE",
"message": "Legal documents are unavailable"
}