HomeAge Verification HeadlessAI Services for TerminalsAge Estimation VerifySupportTrust APIIdentity Verification LivenessDigital IDIdentity verificationDigital ID MigrationDBS RTWDigital IDDBS/RTW portaleSignaturesAge verificationAge estimationIn-Branch VerificationAge Estimation v2idv-portal-errorsIdentity ProfilesVerifiable Credentialssandbox-betaIdentity Verification APIAI Services APITrust APIProof of Age (PoA) API
Identity Profiles
v9.0
Title
Message
Create new category
What is the title of your new category?
Edit page index title
What is the title of the page index?
Edit category
What is the new title of your category?
Edit link
What is the new title and URL of your link?
Configure Response
AI Tools
Summarize Page
Copy Markdown
Open in ChatGPT
Open in Claude
Connect to Cursor
Connect to VS Code
Now you that have successfully created a session, the next step is to set the response config. The sandbox requires you to set an expected outcome for your tasks and checks. This will be an object with defined task_results and check_reports. For identity profile sessions, the outcomes that you define for the individual checks will determine the overall outcome for the identity profile check.
const { RequestBuilder, Payload } = require("yoti");
const request = new RequestBuilder()
.withBaseUrl("https://api.yoti.com/sandbox/idverify/v1")
.withPemFilePath("<YOTI_KEY_FILE_PATH>")
.withEndpoint("/sessions/<SESSION_ID>/response-config")
.withPayload(new Payload(RESPONSE_CONFIG))
.withMethod("PUT")
.withQueryParam("sdkId", "<YOTI_CLIENT_SDK_ID>")
.build();
//get Yoti response
const response = request.execute();
<?php
use Yoti\Http\RequestBuilder;
use Yoti\Http\Payload;
$request = (new RequestBuilder())
->withBaseUrl('https://api.yoti.com/sandbox/idverify/v1')
->withPemFilePath('<YOTI_KEY_FILE_PATH>')
->withEndpoint('/sessions/<SESSION_ID>/response-config')
->withPayload(Payload::fromString(RESPONSE_CONFIG_STRING)) // * Version ^2: new Payload(SESSION_OBJ)
->withMethod('PUT')
->withQueryParam('sdkId', '<YOTI_CLIENT_SDK_ID>')
->build()
//get Yoti Response
->execute();
// * For JSON data in Version >3 please use Payload::fromJsonData(SESSION_OBJ)
from yoti_python_sdk.http import SignedRequest, RequestHandler
import json
import requests
def execute(request):
response = requests.request(
url=request.url, data=request.data, headers=request.headers, method=request.method)
return response.content
def generate_session():
payload_string = json.dumps(data).encode()
signed_request = (
SignedRequest
.builder()
.with_pem_file("https://api.yoti.com/sandbox/idverify/v1")
.with_base_url("<BASE_URL>")
.with_endpoint("/sessions/<SESSION_ID>/response-config")
.with_http_method("PUT")
.with_query_param("sdkId", "<YOTI_CLIENT_SDK_ID>")
.with_payload(payload_string)
.build()
)
# get Yoti response
response = signed_request.execute()
response_payload = json.loads(response.text)
byte[] RESPONSE_CONFIG = ...
try {
SignedRequest signedRequest = SignedRequestBuilder.newInstance()
.withKeyPair(<YOTI_KEY_FILE_PATH>)
.withBaseUrl("https://api.yoti.com/sandbox/idverify/v1")
.withEndpoint("/sessions/<SESSION_ID>/response-config")
.withPayload(RESPONSE_CONFIG)
.withHttpMethod("PUT")
.withQueryParameter("sdkId", "<YOTI_CLIENT_SDK_ID>")
.build();
YourPojo yourPojo = signedRequest.execute(YourPojo.class);
} catch (GeneralSecurityException | URISyntaxException | IOException | ResourceException ex) {
ex.printStackTrace();
}
import (
"io/ioutil"
"net/http"
"github.com/getyoti/yoti-go-sdk/v2/requests"
)
key, _ := ioutil.ReadFile("<YOTI_KEY_FILE_PATH>")
// Create session
request, _ := requests.SignedRequest{
HTTPMethod: http.MethodPut,
BaseURL: "https://api.yoti.com/sandbox/idverify/v1",
Endpoint: "/sessions/<SESSION_ID>/response-config",
Params: map[string]string{
"sdkId": "<YOTI_CLIENT_SDK_ID>"
},
Headers: map[string][]string{
"Content-Type": {"application/json"},
"Accept": {"application/json"}
},
Body: func(data []byte, _ error) []byte {
return data
}(json.Marshal(jsonobj{ data },
})),
}.WithPemFile(key).Request()
//get Yoti response
response, _ := http.DefaultClient.Do(request)
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using Microsoft.AspNetCore.Mvc;
using Yoti.Auth.Web;
HttpClient httpClient = new HttpClient();
StreamReader privateKeyStream = System.IO.File.OpenText("PEM_FILE_PATH");
string serializedRequest = Newtonsoft.Json.JsonConvert.SerializeObject(new
PAYLOAD);
byte[] byteContent = Encoding.UTF8.GetBytes(serializedRequest);
Uri _baseUrl = new UriBuilder("https", "api.yoti.com", 443, "sandbox/idverify/v1").Uri;
Yoti.Auth.Web.Request ageScanRequest = new RequestBuilder()
.WithStreamReader(privateKeyStream)
.WithBaseUri(_baseUrl)
.WithEndpoint("/sessions/<SESSION_ID>/response-config")
.WithHttpMethod(HttpMethod.Post)
.WithContent(byteContent)
.WithQueryParam("sdkId", "YOUR_SDK_ID")
.Build();
HttpResponseMessage response = ageScanRequest.Execute(httpClient).Result;
Example Response Config
{
"task_results": {
"ID_DOCUMENT_TEXT_DATA_EXTRACTION": [
{
"result_template": "SUCCESS"
}
]
},
"check_reports": {
"ID_DOCUMENT_AUTHENTICITY": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"ID_DOCUMENT_FACE_MATCH": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"LIVENESS": [
{
"liveness_type": "STATIC",
"response_delay": 5,
"result": {
"report_template": "SUCCESS"
}
}
],
"THIRD_PARTY_IDENTITY_FRAUD_1": {
"result": {
"report_template": "SUCCESS"
}
}
}
}
{
"task_results": {
"ID_DOCUMENT_TEXT_DATA_EXTRACTION": [
{
"result_template": "SUCCESS"
}
]
},
"check_reports": {
"ID_DOCUMENT_AUTHENTICITY": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"ID_DOCUMENT_FACE_MATCH": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"LIVENESS": [
{
"liveness_type": "STATIC",
"response_delay": 5,
"result": {
"report_template": "SUCCESS"
}
}
],
"SYNECTICS_IDENTITY_FRAUD": [
{
"response_delay": 5,
"result": {
"report_template": "SUCCESS"
}
}
],
"THIRD_PARTY_IDENTITY": {
"result": {
"report_template": "SUCCESS"
}
}
}
}
{
"task_results": {
"ID_DOCUMENT_TEXT_DATA_EXTRACTION": [
{
"result_template": "SUCCESS"
}
]
},
"check_reports": {
"ID_DOCUMENT_AUTHENTICITY": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"ID_DOCUMENT_FACE_MATCH": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"LIVENESS": [
{
"liveness_type": "STATIC",
"response_delay": 5,
"result": {
"report_template": "SUCCESS"
}
}
]
}
}
{
"task_results": {
"ID_DOCUMENT_TEXT_DATA_EXTRACTION": [
{
"result_template": "SUCCESS"
}
]
},
"check_reports": {
"ID_DOCUMENT_AUTHENTICITY": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"ID_DOCUMENT_FACE_MATCH": [
{
"result": {
"report_template": "SUCCESS"
}
}
],
"WATCHLIST_SCREENING":{
"result": {
"report_template": "SUCCESS"
}
},
"THIRD_PARTY_IDENTITY":{
"result": {
"report_template": "SUCCESS"
}
},
"LIVENESS": [
{
"liveness_type": "STATIC",
"response_delay": 5,
"result": {
"report_template": "SUCCESS"
}
}
]
}
}
On completion of this API request, you will simply receive a 200 response.
Last updated on
Was this page helpful?
Next to read:
Launch User ViewGot a question? Contact us here.
Discard Changes
Do you want to discard your current changes and overwrite with the template?
Archive Synced Block
Message
Create new Template
What is this template's title?
Delete Template
Message