v4.8.0
NEW
Advanced Identity Profile in Identity Verification service
The SDK now exposes the Advanced Identity Profile supported in the Identity Verification service. It helps with creating a session with Advanced Identity Profile requirements, and supports the response parsing.
Example to create a session
const {
// ...
SessionSpecificationBuilder,
AdvancedIdentityProfileBuilder,
AdvancedIdentityProfileRequirementsBuilder,
AdvancedIdentityProfileSchemeBuilder,
} = require('yoti');
// Using the SessionSpecificationBuilder
const sessionSpecificationBuilder = new SessionSpecificationBuilder();
const advancedIdentityProfileSchemeDBS = new AdvancedIdentityProfileSchemeBuilder()
.withType('DBS')
.withObjective('BASIC')
.withLabel('label-for-DBS-BASIC')
.build();
const advancedIdentityProfileSchemeRTW = new AdvancedIdentityProfileSchemeBuilder()
.withType('RTW')
.withLabel('label-for-RTW')
.build();
const advancedIdentityProfileUKTFIDA = new AdvancedIdentityProfileBuilder()
.withTrustFramework('UK_TFIDA')
.withScheme(advancedIdentityProfileSchemeDBS)
.withScheme(advancedIdentityProfileSchemeRTW)
.build();
const advancedIdentityProfileSchemeAL1 = new AdvancedIdentityProfileSchemeBuilder()
.withType('IDENTITY')
.withObjective('AL_L1')
.withLabel('label-for-IDENTITY-AL-L1')
.build();
const advancedIdentityProfileYotiGlobal = new AdvancedIdentityProfileBuilder()
.withTrustFramework('YOTI_GLOBAL')
.withScheme(advancedIdentityProfileSchemeAL1)
.build();
const advancedIdentityProfileRequirements = new AdvancedIdentityProfileRequirementsBuilder()
.withProfile(advancedIdentityProfileUKTFIDA)
.withProfile(advancedIdentityProfileYotiGlobal)
.build();
sessionSpecificationBuilder.withAdvancedIdentityProfileRequirements(advancedIdentityProfileRequirements);
Example to retrieve a session
const sessionResult = await idvClient.getSession(sessionId);
const advancedIdentityProfile = sessionResult.getAdvancedIdentityProfile();
// advancedIdentityProfile.getSubjectId(); // same a simple Identity Profile
// advancedIdentityProfile.getResult(); // same a simple Identity Profile
// advancedIdentityProfile.getFailureReason() // same a simple Identity Profile (see update below)
const report = advancedIdentityProfile.getIdentityProfileReport();
const compliance = report.getCompliance();
// report.getMedia();
// Given one of the compliance - corresponds to the required profiles
const trustFrameworkCompliance = compliance[0];
// trustFrameworkCompliance.getTrustFramework();
const schemesCompliance = trustFrameworkCompliance.getSchemesCompliance();
// Given one of the scheme compliance
const schemeCompliance = schemesCompliance[0];
schemeCompliance.getRequirementsMet();
schemeCompliance.getScheme();
schemeCompliance.getRequirementsNotMetInfo();
Minor updates
Update of type for the error details surfaced in Identity Verification service
The 'requirements not met details' within the IdentityProfileRequirementsNotMetDetailResponse
are now parsed as a class.
const sessionResult = await idvClient.getSession(sessionId);
const identityProfile = sessionResult.getIdentityProfile(); // or sessionResult.getAdvancedIdentityProfile();
if (identityProfile) {
const failureReason = identityProfile.getFailureReason();
if (failureReason) {
const reasonCode = failureReason.getReasonCode(); // string
// Array of IdentityProfileRequirementsNotMetDetailResponse (NEW - class based)
const requirementsNotMetDetails = failureReason.getRequirementsNotMetDetails();
/*
IdentityProfileRequirementsNotMetDetailResponse shape as follows:
{
failureType, //string
documentType, //string
documentCountryIsoCode, //string
auditId, //string
details, //string
}
// Getters (NEW):
.getFailureType()
.getDocumentType() {
.getDocumentCountryIsoCode() {
.getAuditId() {
.getDetails() {
*/
}
}