curl --request GET \
--url https://api.baselayer.com/identity_submissions/{submission_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/identity_submissions/{submission_id}"
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/identity_submissions/{submission_id}', 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/identity_submissions/{submission_id}",
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/identity_submissions/{submission_id}"
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/identity_submissions/{submission_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/identity_submissions/{submission_id}")
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{
"submission_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "PENDING",
"verdict": "APPROVED",
"reference_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"principal_ref": "<string>",
"business_ref": "<string>",
"business_operator_link_status": "VERIFIED"
}{
"code": 1,
"message": "Could not locate the resource for the given URI.",
"metadata": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Poll a submission's verification status
Returns the verification state of a submission and, once complete, the org-scoped pairwise refs. Accepts any of the calling organization’s onboarding session ids — direct submissions and hosted-embed sessions alike.
curl --request GET \
--url https://api.baselayer.com/identity_submissions/{submission_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/identity_submissions/{submission_id}"
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/identity_submissions/{submission_id}', 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/identity_submissions/{submission_id}",
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/identity_submissions/{submission_id}"
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/identity_submissions/{submission_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/identity_submissions/{submission_id}")
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{
"submission_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "PENDING",
"verdict": "APPROVED",
"reference_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"principal_ref": "<string>",
"business_ref": "<string>",
"business_operator_link_status": "VERIFIED"
}{
"code": 1,
"message": "Could not locate the resource for the given URI.",
"metadata": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Path Parameters
Response
Response
Body for GET /identity_submissions/{submission_id} and the payload
of the OnboardingSession.completed webhook.
Pairwise refs appear once verification completes successfully; they are the durable handles for the identity status route and credential minting. Global ids are never exposed.
Unique id of the submission.
Lifecycle state of the verification workflow.
PENDING, EXECUTING, WAITING, COMPLETED, FAILED, EXPIRED, CANCELLED Resolved onboarding verdict; null until completion.
APPROVED, UNDER_REVIEW, REJECTED Caller-supplied correlation id.
When the workflow reached a terminal state.
Pairwise reference to the verified principal, unique to the calling organization and stable across re-verification.
Pairwise reference to the verified business, when the submission covered one.
Status of the principal-operates-business link as of this submission's evaluation.
VERIFIED, UNDER_REVIEW, REJECTED