Get Owner Verification Documents
curl --request GET \
--url https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/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.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Verification documents retrieved successfully",
"data": {
"subject": {
"type": "account",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"status": {
"verified": true,
"reviewStatus": "completed",
"reviewAnswer": "GREEN"
},
"identity": {
"firstName": "Jane",
"lastName": "Doe",
"dateOfBirth": "1990-01-15",
"country": "NGA",
"idDocType": "PASSPORT",
"documentNumber": "<string>",
"issuedDate": "<string>",
"validUntil": "<string>"
},
"documents": [
{
"imageId": "909788538",
"idDocType": "PASSPORT",
"country": "NGA",
"side": "front"
}
],
"inspectionId": "6a7ba5bcce15d46609bd3f4b"
}
}{
"status": 400,
"message": "This endpoint is only for individual accounts. Use /related-persons/:personId/verification/documents for business owners and directors."
}{
"status": 404,
"message": "No verification found. The identity check has not been started or completed yet."
}Account Onboarding
Get Owner Verification Documents
Returns the identity document a beneficial owner or director submitted during Rolla’s hosted liveness check. Identical in shape to the account endpoint, but subject.type is related_person.
GET
/
accounts
/
{accountId}
/
related-persons
/
{personId}
/
verification
/
documents
Get Owner Verification Documents
curl --request GET \
--url https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/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.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rolla.xyz/api/v1/external/accounts/{accountId}/related-persons/{personId}/verification/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Verification documents retrieved successfully",
"data": {
"subject": {
"type": "account",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"status": {
"verified": true,
"reviewStatus": "completed",
"reviewAnswer": "GREEN"
},
"identity": {
"firstName": "Jane",
"lastName": "Doe",
"dateOfBirth": "1990-01-15",
"country": "NGA",
"idDocType": "PASSPORT",
"documentNumber": "<string>",
"issuedDate": "<string>",
"validUntil": "<string>"
},
"documents": [
{
"imageId": "909788538",
"idDocType": "PASSPORT",
"country": "NGA",
"side": "front"
}
],
"inspectionId": "6a7ba5bcce15d46609bd3f4b"
}
}{
"status": 400,
"message": "This endpoint is only for individual accounts. Use /related-persons/:personId/verification/documents for business owners and directors."
}{
"status": 404,
"message": "No verification found. The identity check has not been started or completed yet."
}Returns the identity document a beneficial owner or director submitted during Rolla’s hosted liveness check, along with the details read off that document.
Identical in shape to Get Verification Documents, but scoped to one person on a business account. A business has no identity check of its own — its owners and directors do.
Person not on this account (
Verification not started (
Example Request
curl -X GET "https://api.rolla.xyz/api/v1/external/accounts/eec3cbed-79d8-4370-87a0-b6be9e287337/related-persons/a3d4f21e-f499-488f-8508-43228dfea485/verification/documents" \
-H "X-API-Key: your_api_key_here"
Example Response
{
"success": true,
"message": "Verification documents retrieved successfully",
"data": {
"subject": {
"type": "related_person",
"id": "a3d4f21e-f499-488f-8508-43228dfea485"
},
"status": {
"reviewStatus": "completed",
"reviewAnswer": "GREEN",
"verified": true
},
"identity": {
"firstName": "Jane",
"lastName": "Doe",
"dateOfBirth": "1985-09-21",
"country": "NGA",
"idDocType": "PASSPORT",
"documentNumber": null,
"issuedDate": null,
"validUntil": null
},
"documents": [
{
"imageId": "440291976",
"idDocType": "PASSPORT",
"country": "NGA",
"side": "front"
}
],
"inspectionId": "6a5e30bc03557d60b945d58a"
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
subject.type | string | related_person on this endpoint |
subject.id | string | The owner or director this verification belongs to |
status.verified | boolean | true once the review completed with a positive result |
status.reviewStatus | string | Review state, e.g. init, pending, completed |
status.reviewAnswer | string | GREEN (passed) or RED (failed); null while in progress |
identity | object | Read off the document by the identity provider — not the values you submitted |
identity.idDocType | string | e.g. PASSPORT, ID_CARD, DRIVERS |
documents[].imageId | string | Pass to Download Verification Document to fetch the file |
documents[].side | string | front or back |
inspectionId | string | The provider’s inspection reference, for support queries |
identity reflects what the provider could extract. documentNumber, issuedDate and validUntil are frequently null even on a passed check — treat every field as optional.Selfies and liveness frames are not returned; only identity documents are.
Get the
personId values from List Related Persons. Each owner verifies separately, so expect a mix of completed and pending checks across a single business.Error Responses
Person not on this account (404)
{
"status": 404,
"message": "Related person not found"
}
Verification not started (404)
{
"status": 404,
"message": "No verification found. The identity check has not been started or completed yet."
}
Authorizations
Your Rolla API key
Path Parameters
Identifier of an account owned by the same user as your API key's business
Identifier of a beneficial owner or director on this account
⌘I