v3.4.0
Profile
Demo available, when running the Java Spring Boot example project, at https://localhost:8443/dbs-check
Added
- Specify Identity Profile using RequirementsWithIdentityProfile() in DynamicPolicyBuilder
identityProfileJson
{
"trust_framework": "UK_TFIDA",
"scheme": {
"type": "DBS",
"objective": "STANDARD"
}
}
DynamicPolicy dynamicPolicy = DynamicPolicy.builder()
.withIdentityProfile(<identityProfileJson>)
.build();
- Specify subject_id, when used with WithIdentityProfile(), using WithSubject() in DynamicScenarioBuilder
DynamicScenario dynamicScenario = DynamicScenario.builder()
.withSubject(<subjectId>)
.withPolicy(dynamicPolicy)
.build();
ShareUrlResult shareUrl = yotiClient.createShareUrl(dynamicScenario);
- Retrieve the Identity Profile Report using GetIdentityProfileReport() in HumanProfile
YotiClient yotiClient = YotiClient.builder()
.withClientSdkId(<clientSdkId>)
.withKeyPair(<clientKeyPair>)
.build();
HumanProfile profile = yotiClient.getActivityDetails(<sharingToken>).getUserProfile();
Attribute<Map<String, Object>> identityProfileReport = profile.getIdentityProfileReport();
Map<String, Object> valueRepresentation = identityProfileReport.getValue();
valueRepresentation
{
"identity_assertion": {
"current_name": {
"given_names": "JOHN JIM FRED",
"first_name": "JOHN",
"middle_name": "JIM FRED",
"family_name": "FOO",
"full_name": "JOHN JIM FRED FOO"
},
"date_of_birth": "1979-01-01"
},
"verification_report": {
"report_id": "61b99534-116d-4a25-9750-2d708c0fb168",
"timestamp": "2022-01-02T15:04:05Z",
"subject_id": "f0726cb6-97c1-4802-9feb-eb7c6cd07949",
"trust_framework": "UK_TFIDA",
"schemes_compliance":
[
{
"scheme": {
"type": "RTW"
},
"requirements_met": true
}
],
"assurance_process": {
"level_of_assurance": "MEDIUM",
"policy": "GPG45",
"procedure": "M1C",
"assurance":
[
{
"type": "EVIDENCE_STRENGTH",
"classification": "4",
"evidence_links":
[
"41960172-ca91-487c-8bb3-2c547f80fe54"
]
},
{
"type": "EVIDENCE_VALIDITY",
"classification": "3",
"evidence_links":
[
"41960172-ca91-487c-8bb3-2c547f80fe54"
]
},
{
"type": "VERIFICATION",
"classification": "3",
"evidence_links":
[
"41960172-ca91-487c-8bb3-2c547f80fe54",
"fb0880ca-5dd5-4776-badb-17549123c50b"
]
}
]
},
"evidence": {
"documents":
[
{
"evidence_id": "41960172-ca91-487c-8bb3-2c547f80fe54",
"timestamp": "2022-01-02T15:04:05Z",
"document_fields": {
"full_name": "JOHN JIM FRED FOO",
"date_of_birth": "1979-01-01",
"nationality": "GBR",
"given_names": "JOHN JIM FRED",
"family_name": "FOO",
"place_of_birth": "SAMPLETOWN",
"gender": "MALE",
"document_type": "PASSPORT",
"issuing_country": "GBR",
"document_number": "123456789",
"expiration_date": "2030-01-01",
"date_of_issue": "2020-01-01",
"issuing_authority": "HMPO",
"mrz": {
"type": 2,
"line1": "P<GBRFOO<<JOHN<JIM<FRED<<<<<<<<<<<<<<<<<<<<<",
"line2": "1234567892GBR7901018M3001215<<<<<<<<<<<<<<02"
}
},
"passed_checks":
[
{
"check": "CHIP_DIGITAL_SIGNATURE"
},
{
"check": "AUTOMATED_FACE_MATCH"
},
{
"check": "FRAUD_DOCUMENTS_LIST"
}
],
"verifying_org": "Yoti Ltd.",
"user_activity_ids":
[
"d4764f67-2992-4a69-9ff4-55b0e77cb3d0"
],
"document_images_attribute_id": "f253c8ab-f07b-4aeb-9dd0-50e670c7ebaf"
}
],
"face": {
"evidence_id": "fb0880ca-5dd5-4776-badb-17549123c50b",
"initial_liveness": {
"type": "ACTIVE",
"timestamp": "2022-01-02T15:04:05Z"
},
"verifying_org": "Yoti Ltd.",
"user_activity_ids":
[
"a8e41187-7f5b-4e83-83d5-dc471452f1a8"
],
"selfie_attribute_id": "cc507f84-f1aa-476a-877b-850e949e0fc8"
}
}
},
"authentication_report": {
"report_id": "d7202b65-657e-47a7-9679-7596db617b8c",
"timestamp": "2022-01-02T15:04:05Z",
"policy": "GPG44",
"level": "MEDIUM"
},
"proof": "<signature provided here>"
}
- Retrieve Attribute by id using GetAttributeById() in HumanProfile
Attribute<Object> selfie = profile.getAttributeById(<attribute_id_1>);
Attribute<Object> documentImage = profile.getAttributeById(<attribute_id_2>);
IDV
Added
- Create session with Identity profile using WithIdentityProfileRequirements() and WithSubject() in SessionSpecificationBuilder
DocScanClient docScanClient = DocScanClient.builder()
.withClientSdkId(<clientSdkId>)
.withKeyPair(<clientKeyPair>)
.build();
subjectJson
{
"subject_id": "<sessionId>"
}
identityProfileRequirementsJson
{
"trust_framework": "UK_TFIDA",
"scheme": {
"type": "DBS",
"objective": "STANDARD"
}
}
SessionSpec sessionSpec = SessionSpec.builder()
.withSubject(<subjectJson>)IdentityProfile to IDV
.withIdentityProfile(<identityProfileRequirementsJson>)
.build();
CreateSessionResult session = docScanClient.createSession(sessionSpec);
String sessionId = session.getSessionId();
- Retrieve session identity profile report using GetIdentityProfile() in GetSessionResult
GetSessionResult sessionResult = docScanClient.getSession(sessionId);
IdentityProfileResponse identityProfile = sessionResult.getIdentityProfile();
String subjectId = identityProfile.getSubjectId();
String result = identityProfile.getResult();
String failureReasonCode = identityProfile.getFailureReason().getReasonCode();
Object identityProfileReport = identityProfile.getIdentityProfileReport();
identityProfileReportJson
{
"trust_framework": "UK_TFIDA",
"schemes_compliance":
[
{
"scheme": {
"type": "DBS",
"objective": "STANDARD"
},
"requirements_met": true,
"requirements_not_met_info": "some string here"
}
],
"media": {
"id": "c69ff2db-6caf-4e74-8386-037711bbc8d7",
"type": "IMAGE",
"created": "2022-03-29T11:39:24Z",
"last_updated": "2022-03-29T11:39:24Z"
}
}