curl --request POST \
--url https://{host}/Agent/Legal/ReadyForApproval \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Referer: <referer>' \
--data '
{
"keyId": "<string>",
"legalId": "<string>",
"nonce": "<string>",
"keySignature": "<string>",
"requestSignature": "<string>"
}
'import requests
url = "https://{host}/Agent/Legal/ReadyForApproval"
payload = {
"keyId": "<string>",
"legalId": "<string>",
"nonce": "<string>",
"keySignature": "<string>",
"requestSignature": "<string>"
}
headers = {
"Referer": "<referer>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Referer: '<referer>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
keyId: '<string>',
legalId: '<string>',
nonce: '<string>',
keySignature: '<string>',
requestSignature: '<string>'
})
};
fetch('https://{host}/Agent/Legal/ReadyForApproval', 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://{host}/Agent/Legal/ReadyForApproval",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'keyId' => '<string>',
'legalId' => '<string>',
'nonce' => '<string>',
'keySignature' => '<string>',
'requestSignature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Referer: <referer>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/Agent/Legal/ReadyForApproval"
payload := strings.NewReader("{\n \"keyId\": \"<string>\",\n \"legalId\": \"<string>\",\n \"nonce\": \"<string>\",\n \"keySignature\": \"<string>\",\n \"requestSignature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Referer", "<referer>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/Agent/Legal/ReadyForApproval")
.header("Referer", "<referer>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"keyId\": \"<string>\",\n \"legalId\": \"<string>\",\n \"nonce\": \"<string>\",\n \"keySignature\": \"<string>\",\n \"requestSignature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/Agent/Legal/ReadyForApproval")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Referer"] = '<referer>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"keyId\": \"<string>\",\n \"legalId\": \"<string>\",\n \"nonce\": \"<string>\",\n \"keySignature\": \"<string>\",\n \"requestSignature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Identity": {}
}Ready For Approval
When an ID application is ready (all attachments have been signed and uploaded), the client can call this resource to flag the application as ready for approval.
curl --request POST \
--url https://{host}/Agent/Legal/ReadyForApproval \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Referer: <referer>' \
--data '
{
"keyId": "<string>",
"legalId": "<string>",
"nonce": "<string>",
"keySignature": "<string>",
"requestSignature": "<string>"
}
'import requests
url = "https://{host}/Agent/Legal/ReadyForApproval"
payload = {
"keyId": "<string>",
"legalId": "<string>",
"nonce": "<string>",
"keySignature": "<string>",
"requestSignature": "<string>"
}
headers = {
"Referer": "<referer>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Referer: '<referer>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
keyId: '<string>',
legalId: '<string>',
nonce: '<string>',
keySignature: '<string>',
requestSignature: '<string>'
})
};
fetch('https://{host}/Agent/Legal/ReadyForApproval', 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://{host}/Agent/Legal/ReadyForApproval",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'keyId' => '<string>',
'legalId' => '<string>',
'nonce' => '<string>',
'keySignature' => '<string>',
'requestSignature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Referer: <referer>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/Agent/Legal/ReadyForApproval"
payload := strings.NewReader("{\n \"keyId\": \"<string>\",\n \"legalId\": \"<string>\",\n \"nonce\": \"<string>\",\n \"keySignature\": \"<string>\",\n \"requestSignature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Referer", "<referer>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/Agent/Legal/ReadyForApproval")
.header("Referer", "<referer>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"keyId\": \"<string>\",\n \"legalId\": \"<string>\",\n \"nonce\": \"<string>\",\n \"keySignature\": \"<string>\",\n \"requestSignature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/Agent/Legal/ReadyForApproval")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Referer"] = '<referer>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"keyId\": \"<string>\",\n \"legalId\": \"<string>\",\n \"nonce\": \"<string>\",\n \"keySignature\": \"<string>\",\n \"requestSignature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Identity": {}
}Overview
When an ID application is ready (all attachments have been signed and uploaded), the client can call this resource to flag the application as ready for approval. This will execute any automated onboarding procedures to analyze the application, and, if passing them, will take the identity to the approved state. They can also take the application to the rejected state, in case they find the information invalid.Authentication
Requires a valid JWT bearer token. Call this after all required attachments are uploaded while the identity is Created. If the sandbox has already approved it, skip this request. Then retrieve the identity to observe its state. Follow the identity application guide for complete signed HTTP requests.Notes
This endpoint uses the request schema notation described in Pattern matching.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Your application's HTTPS URL, for example https://app.example.com/. Include this header on every Agent API request, including backend calls, login, and account creation. Browser clients must use a referrer policy that sends the application origin. See /neuron-api/api-basics#required-referer-header.
Body
The signing key used for the application.
Identity.id of your completed application in Created state.
A fresh random nonce of at least 32 characters. Do not reuse an upload nonce.
Base64 HMAC-SHA-256 of the key message using the key password.
Base64 HMAC-SHA-256 of keyMessage:keySignature:nonce:legalId using the account password.
Response
Success