Releases: getyoti/yoti-go-sdk
v3.12.0
Added
Support for Share V2 Create Session
Support for Share V2 Retrieve Session
Support for Share V2 Create Qr Code
Support for Share V2 Retrieve Qr Code
Support for Share V2 Retrieve Receipt
Support for advanced identity profiles to Share V2 and examples
Please view digitalidentity project under _examples folder
v3.11.0
Added
- Support for enable/disable mobile handoff
Example:
sdkConfig, err := NewSdkConfigBuilder().WithAllowHandOff(true).Build()
- Support for advanced identity profile requirements for idv and share v1.
Example:
advancedIdentityProfile := []byte(`{
"profiles": [
{
"trust_framework": "YOTI_GLOBAL",
"schemes": [
{
"label": "LB321",
"type": "IDENTITY",
"objective": "AL_L1"
}
]
}
]
}`)
// For share v1 dynamic scenario
policy, err := (&dynamic.PolicyBuilder{}).
WithAdvancedIdentityProfileRequirements(advancedIdentityProfile).
Build()
if err != nil {
return err
}
scenario, err := (&dynamic.ScenarioBuilder{}).WithPolicy(policy).Build()
if err != nil {
return err
}
// For idv
sessionSpec, err := create.NewSessionSpecificationBuilder().
WithAdvancedIdentityProfileRequirements(advancedIdentityProfile).
WithCreateIdentityProfilePreview(true).
Build()
if err != nil {
return err
}
v3.10.0
Added
- Support for NonLatin Documents and Allow Expired Documents feature for Document Restrictions
Requested with
docRestriction, err := filter.NewRequestedDocumentRestrictionBuilder().
WithDocumentTypes([]string{"PASSPORT"}).
WithCountryCodes([]string{"GBR"}).
Build()
if err != nil {
return nil, err
}
docFilter, err := filter.NewRequestedDocumentRestrictionsFilterBuilder().
ForIncludeList().
WithDocumentRestriction(docRestriction).
WithAllowNonLatinDocuments(true).
WithExpiredDocuments(false).
Build()
if err != nil {
return nil, err
}
- Added Expanded Document Fields Feature
var textExtractionTask *task.RequestedTextExtractionTask
textExtractionTask, err = task.NewRequestedTextExtractionTaskBuilder().
WithManualCheckAlways().
WithExpandedDocumentFields(true).
Build()
if err != nil {
return nil, err
}
Example available when running the idv example project at https://localhost:8080
v3.9.0
Added
- ImportToken to Session Specification Builder and a ImportTokenBuilder
Requested with
ttl := time.Hour * 24 * 30
importToken, err := create.NewImportTokenBuilder().
WithTTL(int(ttl.Seconds())).
Build()
if err != nil {
return nil, err
}
sessionSpec, err = create.NewSessionSpecificationBuilder().
WithClientSessionTokenTTL(6000).
WithResourcesTTL(900000).
WithUserTrackingID("some-tracking-id").
WithSDKConfig(sdkConfig).
WithIdentityProfileRequirements(identityProfile).
WithCreateIdentityProfilePreview(true).
WithSubject(subject).
WithImportToken(importToken).
Build()
- ImportTokenResponse to IDV GetSessionResult:
getSessionResult, err := client.GetSession(sessionId)
if err != nil {
return err
}
importTokenResponse := getSessionResult.ImportTokenResponse
Example available when running the idv example project at https://localhost:8080/dbs
v3.7.0
IDV
Added
- Identity Profile Requirements to Session Specification Builder
Requested With
identityProfile := []byte({
"trust_framework": "UK_TFIDA",
"scheme": {
"type": "DBS",
"objective": "STANDARD"
}
})
sessionSpec, err = create.NewSessionSpecificationBuilder().
WithClientSessionTokenTTL(600).
WithResourcesTTL(90000).
WithUserTrackingID("some-tracking-id").
WithSDKConfig(sdkConfig).
WithIdentityProfileRequirements(identityProfile).
Build()
Example available when running the idv example project at https://localhost:8080/dbs
Added
- IdentityProfile to IDV GetSessionResult:
getSessionResult, err := client.GetSession(sessionId)
if err != nil {
return err
}
identityProfile := getSessionResult.IdentityProfileResponse
subjectId := identityProfile.SubjectId
result := identityProfile.Result
failureReasonCode := identityProfile.FailureReasonResponse.ReasonCode
example IdentityProfile.Report value:
"trust_framework": "UK_TFIDA",
"schemes_compliance": [{
"scheme": {
"type": "DBS",
"objective": "STANDARD"
},
"requirements_met": true,
"requirements_not_met_info": "info here"
}
],
"media": {
"id": "c69ff2db-6caf-4e74-8386-037711bbc8d7",
"type": "IMAGE",
"created": "2022-03-29T11:39:24Z",
"last_updated": "2022-03-29T11:39:24Z"
}
MediaID can be retrieved with:
media := result.IdentityProfileResponse.Report["media"].(map[string]interface{})
mediaId := media["id"].(string)
and used to retrieve the full identity profile report as JSON with a separate call:
mediaValue, err := client.GetMediaContent("your-session-id", mediaId)
Added
- Subject to IDV request
requested with:
subject := []byte(`{
"subject_id": "subject ID"
}`)
sessionSpecification, err := NewSessionSpecificationBuilder().
WithSubject(subject).
Build()
example of Session Result containing the subject_id specified when the session was crated:
{
"session_id": "a1746488-efcc-4c59-bd28-f849dcb933a2",
"client_session_token_ttl": 599,
"user_tracking_id": "user-tracking-id",
"biometric_consent": "2022-03-29T11:39:08.473Z",
"state": "COMPLETED",
"client_session_token": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"identity_profile": {
"subject_id": "subject ID",
"result": "DONE",
"failure_reason": {
"reason_code": "MANDATORY_DOCUMENT_COULD_NOT_BE_PROVIDED"
},
"identity_profile_report": {
"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"
}
}
}
}
Added
WithIdDocumentTextExtractionCategoryAttempts, WithIdDocumentTextExtractionReclassificationAttempts, WithIdDocumentTextExtractiongenericAttempts to the SdkConfig
sdkConfig, err := NewSdkConfigBuilder().
WithIdDocumentTextExtractionGenericAttempts(3).
WithIdDocumentTextExtractionCategoryAttempts("CATEGORY", 2).
WithIdDocumentTextExtractionReclassificationAttempts(2).
Build()
Added
- IdentityProfilePreview to Session Specification Builder
Requested with
sessionSpec, err = create.NewSessionSpecificationBuilder().
WithClientSessionTokenTTL(6000).
WithResourcesTTL(900000).
WithUserTrackingID("some-tracking-id").
WithSDKConfig(sdkConfig).
WithIdentityProfileRequirements(identityProfile).
WithCreateIdentityProfilePreview(true).
WithSubject(subject).
Build()
- IdentityProfilePreview to IDV GetSessionResult:
getSessionResult, err := client.GetSession(sessionId)
if err != nil {
return err
}
identityProfilePreview := getSessionResult.IdentityProfilePreview
Example available when running the idv example project at https://localhost:8080/dbs
v3.6.0
Profile
Added
- UserProfile
- GetAttributeByID
- GetSelfieAttributeByID
- GetDocumentImagesAttributeByID
- Identity Profile Report attribute:
var identityProfileReportValue map[string]interface{} = userProfile.IdentityProfileReport().Value() // JSON
See examples for usage
- Generate Identity Scheme (DBS/RTW/RTR) QR code with:
identityProfile := []byte(`{
"trust_framework": "UK_TFIDA",
"scheme": {
"type": "DBS",
"objective": "BASIC"
}
}`)
policy, err := (&dynamic.PolicyBuilder{}).
WithIdentityProfileRequirements(identityProfile).
Build()
if err != nil {
return err
}
subject := []byte(`{
"subject_id": "my_subject_id"
}`)
scenario, err := (&dynamic.ScenarioBuilder{}).
WithPolicy(policy).
WithSubject(subject).
WithCallbackEndpoint(yourEndpoint).Build()
IDV
Added
- Watchlist Screening Check
watchlistScreeningCheck, err := NewRequestedWatchlistScreeningCheckBuilder().
WithAdverseMediaCategory().
WithSanctionsCategory().
Build()
- Advanced CA Check
advancedCAYotiAccountCheck, err := check.NewRequestedWatchlistAdvancedCACheckYotiAccountBuilder().
WithRemoveDeceased(true).
WithShareURL(true).
WithSources(check.RequestedTypeListSources{
Types: []string{"pep", "fitness-probity", "warning"}}).
WithMatchingStrategy(check.RequestedFuzzyMatchingStrategy{Fuzziness: 0.5}).
Build()
OR
advancedCACustomAccountCheck, err := check.NewRequestedWatchlistAdvancedCACheckCustomAccountBuilder().
WithAPIKey("api-key").
WithMonitoring(true).
WithTags(map[string]string{
"tag_name": "value",
}).
WithClientRef("client-ref").
WithMatchingStrategy(check.RequestedExactMatchingStrategy{ExactMatch: true}).
Build()
Response retrieved with:
getSessionResult.WatchlistScreeningChecks()
getSessionResult.WatchlistAdvancedCAChecks()
v3.5.0
v3.4.0
Doc Scan
Added
- Support for Third Party Identity checks
- Support for custom privacy policy URL
v3.3.0
Doc Scan
Added
- Supplementary Document Support
Fixed
func (c *Client) GetMediaContent()
will now returnnil
media for204
responses
Deprecated
func (g *GetSessionResult) TextDataChecks()
replaced byIDDocumentTextDataChecks()
Doc Scan Sandbox
Added
- Support for setting supplementary document text extraction task results
- Support for setting supplementary document text data check results
- Support for setting in session feedback
v3.2.0
Doc Scan
Added
- Support for ID document comparison checks
- Ability to block the collection of biometric consent
- Allow the configuration of the
manual_check
value for requested Document Authenticity checks
Doc Scan Sandbox
Added
- Document ID photo support
- ID document comparison support