curl --request GET \
--url https://api.baselayer.com/issuance/identities/operator_links \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/issuance/identities/operator_links"
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.baselayer.com/issuance/identities/operator_links', 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.baselayer.com/issuance/identities/operator_links",
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.baselayer.com/issuance/identities/operator_links"
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.baselayer.com/issuance/identities/operator_links")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/issuance/identities/operator_links")
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[
{
"status": "VERIFIED",
"created_at": "2023-11-07T05:31:56Z",
"individual_ref": "<string>",
"business_ref": "<string>",
"business_legal_name": "<string>",
"shortfalls": [
"TIN_NOT_PROVIDED"
],
"review_flagged_at": "2023-11-07T05:31:56Z",
"decided_at": "2023-11-07T05:31:56Z",
"decided_by": {
"kind": "USER",
"label": "<string>"
},
"decision_reason": "<string>",
"source_verification_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"individual_display_name": "<string>"
}
]{
"type": "validation_failed",
"code": 7112,
"message": "The request is invalid.",
"metadata": {}
}List your organization's operator links
Lists the individual-operates-business links your organization’s sessions recorded, oldest first by default, naming both ends by your own references. Filter by status=UNDER_REVIEW for the links waiting on your decision; shortfalls says what each one’s newest evaluation fell short on.
curl --request GET \
--url https://api.baselayer.com/issuance/identities/operator_links \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/issuance/identities/operator_links"
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.baselayer.com/issuance/identities/operator_links', 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.baselayer.com/issuance/identities/operator_links",
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.baselayer.com/issuance/identities/operator_links"
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.baselayer.com/issuance/identities/operator_links")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/issuance/identities/operator_links")
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[
{
"status": "VERIFIED",
"created_at": "2023-11-07T05:31:56Z",
"individual_ref": "<string>",
"business_ref": "<string>",
"business_legal_name": "<string>",
"shortfalls": [
"TIN_NOT_PROVIDED"
],
"review_flagged_at": "2023-11-07T05:31:56Z",
"decided_at": "2023-11-07T05:31:56Z",
"decided_by": {
"kind": "USER",
"label": "<string>"
},
"decision_reason": "<string>",
"source_verification_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"individual_display_name": "<string>"
}
]{
"type": "validation_failed",
"code": 7112,
"message": "The request is invalid.",
"metadata": {}
}Authorizations
Query Parameters
Maximum number of records to return in a single page. Must be between 1 and 1000.
1 <= x <= 1000Number of records to skip from the beginning. Use 0 for the first page. Cannot be used with cursor.
x >= 0Opaque pagination cursor token that identifies the position in the result set. Use the cursor from the previous response to get the next page. Cannot be used with offset.
created_at (when the link was recorded) or name (the person's name, then the business's, ignoring case; a person with no current name sorts last either way); ties break on created_at, then the link's id. Defaults to created_at desc.
What the operator-links list sorts by.
created_at, name asc or desc, for every key of the sort. Defaults to the field's own: created_at desc, name asc.
asc, desc Only links in any of these statuses. Repeatable.
Your organization's status for the link between an individual and a business they operate.
VERIFIED is earned by the full evidence recipe (TIN provided + IRS-matched + KYB-verified) on one of your own sessions, or decided by your organization; UNDER_REVIEW is every automatic shortfall; REJECTED is your organization's refusal, which stands until you decide again. Another organization's evidence or decision never changes it.
VERIFIED, UNDER_REVIEW, REJECTED Only links whose newest evaluation fell short on any of these. Repeatable.
Which leg of the operator-link evidence recipe a covering evaluation failed.
Reviewer-facing: a session whose evaluation reports any shortfall records an UNDER_REVIEW link, and these name what a reviewer would be overriding by verifying it anyway. An evaluation that reports none earns VERIFIED on its own.
TIN_NOT_PROVIDED, TIN_NOT_MATCHED, KYB_NOT_VERIFIED A prn_ or bus_ reference, matched exactly, or free text matched against the person's and the business's names.
200Response
Paginated operator links in the requested order, scoped to the calling organization.
Your organization's current status for the link.
VERIFIED, UNDER_REVIEW, REJECTED When the link was first recorded.
Pairwise reference to the linked individual.
Pairwise reference to the linked business.
The linked business's current legal name.
What your newest evaluation of the pair fell short on, in recipe order: the reason a link is under review or flagged. Empty when it met the recipe.
Which leg of the operator-link evidence recipe a covering evaluation failed.
Reviewer-facing: a session whose evaluation reports any shortfall records an UNDER_REVIEW link, and these name what a reviewer would be overriding by verifying it anyway. An evaluation that reports none earns VERIFIED on its own.
TIN_NOT_PROVIDED, TIN_NOT_MATCHED, KYB_NOT_VERIFIED When a later evaluation flagged this verified link for review; null when it never was.
When your organization last verified or rejected the link by hand; null while only the evidence has decided it.
Who made that decision, as stamped when they made it; null when no one has.
Show child attributes
Show child attributes
The reason recorded with that decision, if any.
The verification that established the link; null when that verification no longer exists. A direct verification reads at GET /issuance/identities/verifications/{verification_id}; a hosted one is an onboarding session and reads at GET /onboarding/sessions/{session_id}.
The individual's verified name from your organization's current verification; null when it has been superseded and not yet replaced.