From de7f0432b35b44d7df1fc8e297a3e482745f8b7a Mon Sep 17 00:00:00 2001 From: Alex Burt Date: Wed, 19 Aug 2026 10:53:02 +0100 Subject: [PATCH 1/7] DEVELOPMENT: Bump version to 4.4.0-SNAPSHOT --- README.md | 4 ++-- examples/doc-scan/pom.xml | 2 +- pom.xml | 2 +- yoti-sdk-api/pom.xml | 2 +- .../com/yoti/api/client/spi/remote/call/YotiConstants.java | 2 +- yoti-sdk-auth/pom.xml | 2 +- yoti-sdk-parent/pom.xml | 4 ++-- yoti-sdk-sandbox/pom.xml | 2 +- yoti-sdk-spring-boot-auto-config/README.md | 4 ++-- yoti-sdk-spring-boot-auto-config/pom.xml | 2 +- yoti-sdk-spring-boot-example/README.md | 2 +- yoti-sdk-spring-boot-example/pom.xml | 2 +- yoti-sdk-spring-security/README.md | 4 ++-- yoti-sdk-spring-security/pom.xml | 2 +- 14 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index ca8cd088..fbc4c9f4 100644 --- a/README.md +++ b/README.md @@ -101,13 +101,13 @@ If you are using Maven, you need to add the following dependency: com.yoti yoti-sdk-api - 4.3.0 + 4.4.0-SNAPSHOT ``` If you are using Gradle, here is the dependency to add: -`compile group: 'com.yoti', name: 'yoti-sdk-api', version: '4.3.0'` +`compile group: 'com.yoti', name: 'yoti-sdk-api', version: '4.4.0-SNAPSHOT'` You will find all classes packaged under `com.yoti.api` diff --git a/examples/doc-scan/pom.xml b/examples/doc-scan/pom.xml index e71f2d6a..1416444c 100644 --- a/examples/doc-scan/pom.xml +++ b/examples/doc-scan/pom.xml @@ -53,7 +53,7 @@ com.yoti yoti-sdk-api - 4.3.0 + 4.4.0-SNAPSHOT diff --git a/pom.xml b/pom.xml index c93d7733..3ff91cba 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.yoti yoti-sdk pom - 4.3.0 + 4.4.0-SNAPSHOT Yoti SDK Java SDK for simple integration with the Yoti platform https://github.com/getyoti/yoti-java-sdk diff --git a/yoti-sdk-api/pom.xml b/yoti-sdk-api/pom.xml index cab7ffbc..39e8e5dd 100644 --- a/yoti-sdk-api/pom.xml +++ b/yoti-sdk-api/pom.xml @@ -11,7 +11,7 @@ com.yoti yoti-sdk-parent - 4.3.0 + 4.4.0-SNAPSHOT ../yoti-sdk-parent diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java index d59e4c88..6ee17e82 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java @@ -30,7 +30,7 @@ private YotiConstants() {} public static final String CONTENT_TYPE_JPEG = "image/jpeg"; public static final String JAVA = "Java"; - public static final String SDK_VERSION = JAVA + "-4.3.0"; + public static final String SDK_VERSION = JAVA + "-4.4.0-SNAPSHOT"; public static final String SIGNATURE_ALGORITHM = "SHA256withRSA"; public static final String ASYMMETRIC_CIPHER = "RSA/NONE/PKCS1Padding"; public static final String SYMMETRIC_CIPHER = "AES/CBC/PKCS7Padding"; diff --git a/yoti-sdk-auth/pom.xml b/yoti-sdk-auth/pom.xml index 6485954f..41a9e349 100644 --- a/yoti-sdk-auth/pom.xml +++ b/yoti-sdk-auth/pom.xml @@ -12,7 +12,7 @@ com.yoti yoti-sdk-parent - 4.3.0 + 4.4.0-SNAPSHOT ../yoti-sdk-parent diff --git a/yoti-sdk-parent/pom.xml b/yoti-sdk-parent/pom.xml index 046bbef3..df004db7 100644 --- a/yoti-sdk-parent/pom.xml +++ b/yoti-sdk-parent/pom.xml @@ -5,7 +5,7 @@ com.yoti yoti-sdk-parent pom - 4.3.0 + 4.4.0-SNAPSHOT Yoti SDK Parent Pom Parent pom for the Java SDK projects https://github.com/getyoti/yoti-java-sdk @@ -137,7 +137,7 @@ 3.9.0 - 4.3.0 + 4.4.0-SNAPSHOT 0.8.13 diff --git a/yoti-sdk-sandbox/pom.xml b/yoti-sdk-sandbox/pom.xml index 1b1ea57e..a671cfd2 100644 --- a/yoti-sdk-sandbox/pom.xml +++ b/yoti-sdk-sandbox/pom.xml @@ -11,7 +11,7 @@ com.yoti yoti-sdk-parent - 4.3.0 + 4.4.0-SNAPSHOT ../yoti-sdk-parent diff --git a/yoti-sdk-spring-boot-auto-config/README.md b/yoti-sdk-spring-boot-auto-config/README.md index 8bc68f8d..e821fb7a 100644 --- a/yoti-sdk-spring-boot-auto-config/README.md +++ b/yoti-sdk-spring-boot-auto-config/README.md @@ -18,7 +18,7 @@ If you are using Maven, you need to add the following dependencies: com.yoti yoti-sdk-spring-boot-auto-config - 4.3.0 + 4.4.0-SNAPSHOT ``` @@ -26,7 +26,7 @@ If you are using Maven, you need to add the following dependencies: If you are using Gradle, here is the dependency to add: ``` -compile group: 'com.yoti', name: 'yoti-sdk-spring-boot-auto-config', version: '4.3.0' +compile group: 'com.yoti', name: 'yoti-sdk-spring-boot-auto-config', version: '4.4.0-SNAPSHOT' ``` diff --git a/yoti-sdk-spring-boot-auto-config/pom.xml b/yoti-sdk-spring-boot-auto-config/pom.xml index 19cd7f7e..bfb80c5c 100644 --- a/yoti-sdk-spring-boot-auto-config/pom.xml +++ b/yoti-sdk-spring-boot-auto-config/pom.xml @@ -12,7 +12,7 @@ com.yoti yoti-sdk-parent - 4.3.0 + 4.4.0-SNAPSHOT ../yoti-sdk-parent diff --git a/yoti-sdk-spring-boot-example/README.md b/yoti-sdk-spring-boot-example/README.md index 636712bf..76112841 100644 --- a/yoti-sdk-spring-boot-example/README.md +++ b/yoti-sdk-spring-boot-example/README.md @@ -17,7 +17,7 @@ Note that: com.yoti yoti-sdk-api - 4.3.0 + 4.4.0-SNAPSHOT ``` diff --git a/yoti-sdk-spring-boot-example/pom.xml b/yoti-sdk-spring-boot-example/pom.xml index db70f365..dd2deebf 100644 --- a/yoti-sdk-spring-boot-example/pom.xml +++ b/yoti-sdk-spring-boot-example/pom.xml @@ -6,7 +6,7 @@ com.yoti yoti-sdk-spring-boot-example Yoti Spring Boot Example - 4.3.0 + 4.4.0-SNAPSHOT org.springframework.boot diff --git a/yoti-sdk-spring-security/README.md b/yoti-sdk-spring-security/README.md index 4bc82d08..9fdad9b0 100644 --- a/yoti-sdk-spring-security/README.md +++ b/yoti-sdk-spring-security/README.md @@ -25,14 +25,14 @@ If you are using Maven, you need to add the following dependencies: com.yoti yoti-sdk-spring-security - 4.3.0 + 4.4.0-SNAPSHOT ``` If you are using Gradle, here is the dependency to add: ``` -compile group: 'com.yoti', name: 'yoti-sdk-spring-security', version: '4.3.0' +compile group: 'com.yoti', name: 'yoti-sdk-spring-security', version: '4.4.0-SNAPSHOT' ``` ### Provide a `YotiClient` instance diff --git a/yoti-sdk-spring-security/pom.xml b/yoti-sdk-spring-security/pom.xml index e91e4f7a..47b9e9e8 100644 --- a/yoti-sdk-spring-security/pom.xml +++ b/yoti-sdk-spring-security/pom.xml @@ -12,7 +12,7 @@ com.yoti yoti-sdk-parent - 4.3.0 + 4.4.0-SNAPSHOT ../yoti-sdk-parent From 121daefe13a39cccc4855b1db18126f98365d413 Mon Sep 17 00:00:00 2001 From: Alex Burt Date: Wed, 19 Aug 2026 11:09:00 +0100 Subject: [PATCH 2/7] SDK-2825: Add support for setting company_profile when creating an IDV session --- .../session/create/CompanyProfilePayload.java | 45 +++++++++++++++++++ .../docs/session/create/SessionSpec.java | 31 ++++++++++++- .../create/CompanyProfilePayloadTest.java | 30 +++++++++++++ .../docs/session/create/SessionSpecTest.java | 11 +++++ 4 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/CompanyProfilePayload.java create mode 100644 yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/CompanyProfilePayloadTest.java diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/CompanyProfilePayload.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/CompanyProfilePayload.java new file mode 100644 index 00000000..6fdb55a9 --- /dev/null +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/CompanyProfilePayload.java @@ -0,0 +1,45 @@ +package com.yoti.api.client.docs.session.create; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class CompanyProfilePayload { + + @JsonProperty("company_name") + private final String companyName; + + private CompanyProfilePayload(String companyName) { + this.companyName = companyName; + } + + public static Builder builder() { + return new Builder(); + } + + public String getCompanyName() { + return companyName; + } + + public static class Builder { + + private String companyName; + + Builder() {} + + /** + * Sets the company name to be used for the session + * + * @param companyName the company name + * @return the builder + */ + public Builder withCompanyName(String companyName) { + this.companyName = companyName; + return this; + } + + public CompanyProfilePayload build() { + return new CompanyProfilePayload(companyName); + } + + } + +} diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/SessionSpec.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/SessionSpec.java index 960cbd92..4ec64ac5 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/SessionSpec.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/create/SessionSpec.java @@ -69,6 +69,9 @@ public class SessionSpec { @JsonProperty("create_identity_profile_preview") private final Boolean createIdentityProfilePreview; + @JsonProperty("company_profile") + private final CompanyProfilePayload companyProfile; + private SessionSpec(Integer clientSessionTokenTtl, Integer resourcesTtl, ImportTokenPayload importToken, @@ -85,7 +88,8 @@ private SessionSpec(Integer clientSessionTokenTtl, SubjectPayload subject, ResourceCreationContainer resources, Boolean createIdentityProfilePreview, - AdvancedIdentityProfileRequirementsPayload advancedIdentityProfileRequirements) { + AdvancedIdentityProfileRequirementsPayload advancedIdentityProfileRequirements, + CompanyProfilePayload companyProfile) { this.clientSessionTokenTtl = clientSessionTokenTtl; this.resourcesTtl = resourcesTtl; this.importToken = importToken; @@ -103,6 +107,7 @@ private SessionSpec(Integer clientSessionTokenTtl, this.resources = resources; this.createIdentityProfilePreview = createIdentityProfilePreview; this.advancedIdentityProfileRequirements = advancedIdentityProfileRequirements; + this.companyProfile = companyProfile; } public static Builder builder() { @@ -263,6 +268,15 @@ public AdvancedIdentityProfileRequirementsPayload getAdvancedIdentityProfileRequ return advancedIdentityProfileRequirements; } + /** + * The company profile to be used for the session + * + * @return the company profile + */ + public CompanyProfilePayload getCompanyProfile() { + return companyProfile; + } + public static class Builder { private final List> requestedChecks; @@ -282,6 +296,7 @@ public static class Builder { private SubjectPayload subject; private ResourceCreationContainer resources; private Boolean createIdentityProfilePreview; + private CompanyProfilePayload companyProfile; private Builder() { requestedChecks = new ArrayList<>(); @@ -477,6 +492,17 @@ public Builder withAdvancedIdentityProfileRequirements(AdvancedIdentityProfileRe return this; } + /** + * Sets the company profile to be used for the session + * + * @param companyProfile the company profile + * @return the builder + */ + public Builder withCompanyProfile(CompanyProfilePayload companyProfile) { + this.companyProfile = companyProfile; + return this; + } + /** * Builds the {@link SessionSpec} based on the values supplied to the builder * @@ -500,7 +526,8 @@ public SessionSpec build() { subject, resources, createIdentityProfilePreview, - advancedIdentityProfileRequirementsPayload); + advancedIdentityProfileRequirementsPayload, + companyProfile); } } diff --git a/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/CompanyProfilePayloadTest.java b/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/CompanyProfilePayloadTest.java new file mode 100644 index 00000000..a6149342 --- /dev/null +++ b/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/CompanyProfilePayloadTest.java @@ -0,0 +1,30 @@ +package com.yoti.api.client.docs.session.create; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; + +import org.junit.Test; + +public class CompanyProfilePayloadTest { + + private static final String SOME_COMPANY_NAME = "someCompanyName"; + + @Test + public void shouldBuildWithCompanyName() { + CompanyProfilePayload result = CompanyProfilePayload.builder() + .withCompanyName(SOME_COMPANY_NAME) + .build(); + + assertThat(result.getCompanyName(), is(SOME_COMPANY_NAME)); + } + + @Test + public void companyName_shouldBeNullWhenNotSet() { + CompanyProfilePayload result = CompanyProfilePayload.builder() + .build(); + + assertThat(result.getCompanyName(), is(nullValue())); + } + +} diff --git a/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/SessionSpecTest.java b/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/SessionSpecTest.java index 5a78a9dd..1dd3acf4 100644 --- a/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/SessionSpecTest.java +++ b/yoti-sdk-api/src/test/java/com/yoti/api/client/docs/session/create/SessionSpecTest.java @@ -50,6 +50,7 @@ public class SessionSpecTest { @Mock ImportTokenPayload importTokenMock; @Mock IdentityProfileRequirementsPayload identityProfileRequirementsPayloadMock; @Mock SubjectPayload subjectPayloadMock; + @Mock CompanyProfilePayload companyProfilePayloadMock; @Test public void shouldBuildWithMinimalConfiguration() { @@ -72,6 +73,7 @@ public void shouldBuildWithMinimalConfiguration() { assertThat(result.getSubject(), is(nullValue())); assertThat(result.getResources(), is(nullValue())); assertThat(result.getCreateIdentityProfilePreview(), is(nullValue())); + assertThat(result.getCompanyProfile(), is(nullValue())); } @Test @@ -252,4 +254,13 @@ public void shouldBuildWithImportToken() { assertThat(sessionSpec.getImportToken(), is(importTokenMock)); } + @Test + public void withCompanyProfile_shouldSetTheCompanyProfile() { + SessionSpec result = SessionSpec.builder() + .withCompanyProfile(companyProfilePayloadMock) + .build(); + + assertThat(result.getCompanyProfile(), is(companyProfilePayloadMock)); + } + } From 9bb70d6464e4053352539d7b03808153b49bb1bf Mon Sep 17 00:00:00 2001 From: Alex Burt Date: Wed, 19 Aug 2026 11:17:57 +0100 Subject: [PATCH 3/7] SDK-2800: Deprecate discontinued AML check API ahead of removal in next major --- .../src/main/java/com/yoti/api/client/AmlException.java | 4 ++++ .../src/main/java/com/yoti/api/client/YotiClient.java | 4 ++++ .../src/main/java/com/yoti/api/client/aml/AmlAddress.java | 5 +++++ .../src/main/java/com/yoti/api/client/aml/AmlProfile.java | 5 +++++ .../src/main/java/com/yoti/api/client/aml/AmlResult.java | 4 ++++ 5 files changed, 22 insertions(+) diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/AmlException.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/AmlException.java index e71e542f..327c916c 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/AmlException.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/AmlException.java @@ -2,7 +2,11 @@ /** * Signals that a problem occurred while performing an AML check + * + * @deprecated The AML check service has been discontinued and this class is no longer used. + * This API will be removed in the next major release. */ +@Deprecated public class AmlException extends Exception { private static final long serialVersionUID = 3210133542178934016L; diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/YotiClient.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/YotiClient.java index 7d627caa..252e25b0 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/YotiClient.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/YotiClient.java @@ -93,7 +93,11 @@ public ActivityDetails getActivityDetails(String encryptedYotiToken) throws Prof * * @throws AmlException * aggregate exception signalling issues during the call + * + * @deprecated The AML check service has been discontinued and this call will no longer succeed. + * This API will be removed in the next major release. */ + @Deprecated public AmlResult performAmlCheck(AmlProfile amlProfile) throws AmlException { LOG.debug("Performing aml check..."); return remoteAmlService.performCheck(amlProfile); diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlAddress.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlAddress.java index 1e1ed6d0..9e4481d3 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlAddress.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlAddress.java @@ -2,6 +2,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; +/** + * @deprecated The AML check service has been discontinued and this class is no longer used. + * This API will be removed in the next major release. + */ +@Deprecated public class AmlAddress { @JsonProperty("post_code") diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlProfile.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlProfile.java index 9cb4a0aa..7ec74c41 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlProfile.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlProfile.java @@ -2,6 +2,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; +/** + * @deprecated The AML check service has been discontinued and this class is no longer used. + * This API will be removed in the next major release. + */ +@Deprecated public class AmlProfile { @JsonProperty("given_names") diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlResult.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlResult.java index 1f82adbf..882174a2 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlResult.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/aml/AmlResult.java @@ -4,7 +4,11 @@ /** * The results of the aml check. + * + * @deprecated The AML check service has been discontinued and this class is no longer used. + * This API will be removed in the next major release. */ +@Deprecated public class AmlResult { @JsonProperty("on_fraud_list") From 8c32c26596cc3118819a76dd6a1c5516093feaea Mon Sep 17 00:00:00 2001 From: Alex Burt Date: Wed, 19 Aug 2026 14:12:21 +0100 Subject: [PATCH 4/7] SDK-2763: Add support for handled_check_limit on sandbox check reports --- .../docs/request/check/SandboxCheck.java | 16 +++++++++++++- .../SandboxDocumentAuthenticityCheck.java | 6 ++--- .../request/check/SandboxDocumentCheck.java | 4 ++-- .../check/SandboxDocumentFaceMatchCheck.java | 6 ++--- .../check/SandboxDocumentTextDataCheck.java | 6 ++--- .../check/SandboxFaceComparisonCheck.java | 6 ++--- .../SandboxIdDocumentComparisonCheck.java | 6 ++--- .../request/check/SandboxLivenessCheck.java | 4 ++-- .../SandboxStaticLivenessCheckBuilder.java | 2 +- ...boxSupplementaryDocumentTextDataCheck.java | 6 ++--- .../SandboxSynecticsIdentityFraudCheck.java | 6 ++--- .../check/SandboxThirdPartyIdentityCheck.java | 6 ++--- ...andboxThirdPartyIdentityFraudOneCheck.java | 6 ++--- .../SandboxWatchlistAdvancedCaCheck.java | 6 ++--- .../check/SandboxWatchlistScreeningCheck.java | 6 ++--- .../SandboxZoomLivenessCheckBuilder.java | 2 +- .../SandboxDocumentAuthenticityCheckTest.java | 11 ++++++++++ .../SandboxDocumentFaceMatchCheckTest.java | 11 ++++++++++ .../SandboxDocumentTextDataCheckTest.java | 12 ++++++++++ .../SandboxIdDocumentComparisonCheckTest.java | 11 ++++++++++ ...upplementaryDocumentTextDataCheckTest.java | 12 ++++++++++ .../check/SandboxZoomLivenessCheckTest.java | 22 +++++++++++++++++++ 22 files changed, 133 insertions(+), 40 deletions(-) diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxCheck.java index b494f5ee..43f026c0 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxCheck.java @@ -17,19 +17,28 @@ public abstract class SandboxCheck { @JsonProperty("result") private final SandboxCheckResult result; - SandboxCheck(SandboxCheckResult result) { + @JsonProperty("handled_check_limit") + private final Integer handledCheckLimit; + + SandboxCheck(SandboxCheckResult result, Integer handledCheckLimit) { this.result = result; + this.handledCheckLimit = handledCheckLimit; } public SandboxCheckResult getResult() { return result; } + public Integer getHandledCheckLimit() { + return handledCheckLimit; + } + static abstract class Builder> { protected SandboxRecommendation recommendation; protected List breakdown; protected String reportTemplate; + protected Integer handledCheckLimit; public T withRecommendation(SandboxRecommendation recommendation) { this.recommendation = recommendation; @@ -54,6 +63,11 @@ public T withReportTemplate(String reportTemplate) { return self(); } + public T withHandledCheckLimit(Integer handledCheckLimit) { + this.handledCheckLimit = handledCheckLimit; + return self(); + } + protected abstract T self(); public abstract SandboxCheck build(); diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheck.java index 1d3e019a..9635ac59 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheck.java @@ -5,8 +5,8 @@ public class SandboxDocumentAuthenticityCheck extends SandboxDocumentCheck { - private SandboxDocumentAuthenticityCheck(SandboxCheckResult result, SandboxDocumentFilter documentFilter) { - super(result, documentFilter); + private SandboxDocumentAuthenticityCheck(SandboxCheckResult result, Integer handledCheckLimit, SandboxDocumentFilter documentFilter) { + super(result, handledCheckLimit, documentFilter); } public static Builder builder() { @@ -33,7 +33,7 @@ public SandboxDocumentAuthenticityCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxDocumentAuthenticityCheck(result, documentFilter); + return new SandboxDocumentAuthenticityCheck(result, handledCheckLimit, documentFilter); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentCheck.java index b937374e..5733a61e 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentCheck.java @@ -11,8 +11,8 @@ class SandboxDocumentCheck extends SandboxCheck { @JsonProperty("document_filter") private SandboxDocumentFilter documentFilter; - SandboxDocumentCheck(SandboxCheckResult result, SandboxDocumentFilter documentFilter) { - super(result); + SandboxDocumentCheck(SandboxCheckResult result, Integer handledCheckLimit, SandboxDocumentFilter documentFilter) { + super(result, handledCheckLimit); this.documentFilter = documentFilter; } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheck.java index 848cf137..a89c93b3 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheck.java @@ -5,8 +5,8 @@ public class SandboxDocumentFaceMatchCheck extends SandboxDocumentCheck { - private SandboxDocumentFaceMatchCheck(SandboxCheckResult result, SandboxDocumentFilter documentFilter) { - super(result, documentFilter); + private SandboxDocumentFaceMatchCheck(SandboxCheckResult result, Integer handledCheckLimit, SandboxDocumentFilter documentFilter) { + super(result, handledCheckLimit, documentFilter); } public static Builder builder() { @@ -33,7 +33,7 @@ public SandboxDocumentFaceMatchCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxDocumentFaceMatchCheck(result, documentFilter); + return new SandboxDocumentFaceMatchCheck(result, handledCheckLimit, documentFilter); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheck.java index 132ba01a..4aeab216 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheck.java @@ -11,8 +11,8 @@ @JsonInclude(JsonInclude.Include.NON_EMPTY) public class SandboxDocumentTextDataCheck extends SandboxDocumentCheck { - private SandboxDocumentTextDataCheck(SandboxDocumentTextDataCheckResult result, SandboxDocumentFilter documentFilter) { - super(result, documentFilter); + private SandboxDocumentTextDataCheck(SandboxDocumentTextDataCheckResult result, Integer handledCheckLimit, SandboxDocumentFilter documentFilter) { + super(result, handledCheckLimit, documentFilter); } public static Builder builder() { @@ -60,7 +60,7 @@ public SandboxDocumentTextDataCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxDocumentTextDataCheckResult result = new SandboxDocumentTextDataCheckResult(report, reportTemplate, documentFields); - return new SandboxDocumentTextDataCheck(result, documentFilter); + return new SandboxDocumentTextDataCheck(result, handledCheckLimit, documentFilter); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java index 71906490..e2943233 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java @@ -4,8 +4,8 @@ public class SandboxFaceComparisonCheck extends SandboxCheck { - private SandboxFaceComparisonCheck(SandboxCheckResult result) { - super(result); + private SandboxFaceComparisonCheck(SandboxCheckResult result, Integer handledCheckLimit) { + super(result, handledCheckLimit); } public static Builder builder() { @@ -31,7 +31,7 @@ public SandboxFaceComparisonCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxFaceComparisonCheck(result); + return new SandboxFaceComparisonCheck(result, handledCheckLimit); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheck.java index 1d16c7d9..fa0d1ccf 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheck.java @@ -10,8 +10,8 @@ public class SandboxIdDocumentComparisonCheck extends SandboxCheck { @JsonProperty("secondary_document_filter") private final SandboxDocumentFilter secondaryDocumentFilter; - private SandboxIdDocumentComparisonCheck(SandboxCheckResult result, SandboxDocumentFilter secondaryDocumentFilter) { - super(result); + private SandboxIdDocumentComparisonCheck(SandboxCheckResult result, Integer handledCheckLimit, SandboxDocumentFilter secondaryDocumentFilter) { + super(result, handledCheckLimit); this.secondaryDocumentFilter = secondaryDocumentFilter; } @@ -44,7 +44,7 @@ public SandboxIdDocumentComparisonCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxIdDocumentComparisonCheck(result, secondaryDocumentFilter); + return new SandboxIdDocumentComparisonCheck(result, handledCheckLimit, secondaryDocumentFilter); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxLivenessCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxLivenessCheck.java index 15b8f97f..c71f1a4a 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxLivenessCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxLivenessCheck.java @@ -10,8 +10,8 @@ public class SandboxLivenessCheck extends SandboxCheck { @JsonProperty("response_delay") private final Integer responseDelay; - SandboxLivenessCheck(SandboxCheckResult result, String livenessType, Integer responseDelay) { - super(result); + SandboxLivenessCheck(SandboxCheckResult result, Integer handledCheckLimit, String livenessType, Integer responseDelay) { + super(result, handledCheckLimit); this.livenessType = livenessType; this.responseDelay = responseDelay; } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxStaticLivenessCheckBuilder.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxStaticLivenessCheckBuilder.java index 96b8c083..95c94268 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxStaticLivenessCheckBuilder.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxStaticLivenessCheckBuilder.java @@ -26,7 +26,7 @@ public SandboxLivenessCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxLivenessCheck(result, DocScanConstants.STATIC, responseDelay); + return new SandboxLivenessCheck(result, handledCheckLimit, DocScanConstants.STATIC, responseDelay); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheck.java index 7e2fc98c..4d9d14a1 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheck.java @@ -8,8 +8,8 @@ public class SandboxSupplementaryDocumentTextDataCheck extends SandboxDocumentCheck { - private SandboxSupplementaryDocumentTextDataCheck(SandboxSupplementaryDocumentTextDataCheckResult result, SandboxDocumentFilter documentFilter) { - super(result, documentFilter); + private SandboxSupplementaryDocumentTextDataCheck(SandboxSupplementaryDocumentTextDataCheckResult result, Integer handledCheckLimit, SandboxDocumentFilter documentFilter) { + super(result, handledCheckLimit, documentFilter); } public static Builder builder() { @@ -57,7 +57,7 @@ public SandboxSupplementaryDocumentTextDataCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxSupplementaryDocumentTextDataCheckResult result = new SandboxSupplementaryDocumentTextDataCheckResult(report, reportTemplate, documentFields); - return new SandboxSupplementaryDocumentTextDataCheck(result, documentFilter); + return new SandboxSupplementaryDocumentTextDataCheck(result, handledCheckLimit, documentFilter); } } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSynecticsIdentityFraudCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSynecticsIdentityFraudCheck.java index eecf1770..262c9e0b 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSynecticsIdentityFraudCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSynecticsIdentityFraudCheck.java @@ -4,8 +4,8 @@ public class SandboxSynecticsIdentityFraudCheck extends SandboxCheck { - private SandboxSynecticsIdentityFraudCheck(SandboxCheckResult result) { - super(result); + private SandboxSynecticsIdentityFraudCheck(SandboxCheckResult result, Integer handledCheckLimit) { + super(result, handledCheckLimit); } public static Builder builder() { @@ -31,7 +31,7 @@ public SandboxSynecticsIdentityFraudCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxSynecticsIdentityFraudCheck(result); + return new SandboxSynecticsIdentityFraudCheck(result, handledCheckLimit); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityCheck.java index 07baa5d8..a80bc4ea 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityCheck.java @@ -4,8 +4,8 @@ public class SandboxThirdPartyIdentityCheck extends SandboxCheck { - private SandboxThirdPartyIdentityCheck(SandboxCheckResult result) { - super(result); + private SandboxThirdPartyIdentityCheck(SandboxCheckResult result, Integer handledCheckLimit) { + super(result, handledCheckLimit); } public static Builder builder() { @@ -32,7 +32,7 @@ public SandboxThirdPartyIdentityCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxThirdPartyIdentityCheck(result); + return new SandboxThirdPartyIdentityCheck(result, handledCheckLimit); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityFraudOneCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityFraudOneCheck.java index 4dddc05f..c02636e1 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityFraudOneCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxThirdPartyIdentityFraudOneCheck.java @@ -4,8 +4,8 @@ public class SandboxThirdPartyIdentityFraudOneCheck extends SandboxCheck { - private SandboxThirdPartyIdentityFraudOneCheck(SandboxCheckResult result) { - super(result); + private SandboxThirdPartyIdentityFraudOneCheck(SandboxCheckResult result, Integer handledCheckLimit) { + super(result, handledCheckLimit); } public static Builder builder() { @@ -31,7 +31,7 @@ public SandboxThirdPartyIdentityFraudOneCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxThirdPartyIdentityFraudOneCheck(result); + return new SandboxThirdPartyIdentityFraudOneCheck(result, handledCheckLimit); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistAdvancedCaCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistAdvancedCaCheck.java index 5b76cf82..771713e7 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistAdvancedCaCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistAdvancedCaCheck.java @@ -11,8 +11,8 @@ public class SandboxWatchlistAdvancedCaCheck extends SandboxCheck { @JsonProperty("sources_filter") private final SandboxCaSourcesFilter sourcesFilter; - private SandboxWatchlistAdvancedCaCheck(SandboxCheckResult result, SandboxCaSourcesFilter sourcesFilter) { - super(result); + private SandboxWatchlistAdvancedCaCheck(SandboxCheckResult result, Integer handledCheckLimit, SandboxCaSourcesFilter sourcesFilter) { + super(result, handledCheckLimit); this.sourcesFilter = sourcesFilter; } @@ -55,7 +55,7 @@ public SandboxWatchlistAdvancedCaCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxWatchlistAdvancedCaCheck(result, sourcesFilter); + return new SandboxWatchlistAdvancedCaCheck(result, handledCheckLimit, sourcesFilter); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistScreeningCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistScreeningCheck.java index 1b379282..f756aa12 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistScreeningCheck.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxWatchlistScreeningCheck.java @@ -4,8 +4,8 @@ public class SandboxWatchlistScreeningCheck extends SandboxCheck { - private SandboxWatchlistScreeningCheck(SandboxCheckResult result) { - super(result); + private SandboxWatchlistScreeningCheck(SandboxCheckResult result, Integer handledCheckLimit) { + super(result, handledCheckLimit); } public static Builder builder() { @@ -31,7 +31,7 @@ public SandboxWatchlistScreeningCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxWatchlistScreeningCheck(result); + return new SandboxWatchlistScreeningCheck(result, handledCheckLimit); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckBuilder.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckBuilder.java index 33420366..3c998c88 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckBuilder.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckBuilder.java @@ -26,7 +26,7 @@ public SandboxLivenessCheck build() { : new SandboxCheckReport(recommendation, breakdown); SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); - return new SandboxLivenessCheck(result, DocScanConstants.ZOOM, responseDelay); + return new SandboxLivenessCheck(result, handledCheckLimit, DocScanConstants.ZOOM, responseDelay); } } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheckTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheckTest.java index 8974c6c3..ed78726d 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheckTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentAuthenticityCheckTest.java @@ -64,4 +64,15 @@ public void builder_shouldAllowListOfBreakdowns() { assertThat(result.getResult().getReport().getBreakdown(), hasSize(3)); } + @Test + public void builder_shouldAllowSettingHandledCheckLimit() { + SandboxDocumentAuthenticityCheck result = SandboxDocumentAuthenticityCheck.builder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } + } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheckTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheckTest.java index 2408b1f6..3496ea08 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheckTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentFaceMatchCheckTest.java @@ -33,4 +33,15 @@ public void builder_shouldBuildCorrectly() { assertThat(result.getDocumentFilter(), is(nullValue())); } + @Test + public void builder_shouldAllowSettingHandledCheckLimit() { + SandboxDocumentFaceMatchCheck result = SandboxDocumentFaceMatchCheck.builder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } + } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheckTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheckTest.java index 168c6449..992d1afd 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheckTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxDocumentTextDataCheckTest.java @@ -4,6 +4,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.hasEntry; import static org.hamcrest.Matchers.hasKey; +import static org.hamcrest.Matchers.is; import static org.junit.Assert.fail; import java.util.HashMap; @@ -56,4 +57,15 @@ public void builder_shouldAllowMapForDocumentFields() { assertThat(result.getResult().getDocumentFields(), hasEntry("firstKey", (Object) "firstValue")); assertThat(result.getResult().getDocumentFields(), hasEntry("secondKey", (Object) 100)); } + + @Test + public void builder_shouldAllowSettingHandledCheckLimit() { + SandboxDocumentTextDataCheck result = SandboxDocumentTextDataCheck.builder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheckTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheckTest.java index daeb3f6f..eeca31f4 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheckTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxIdDocumentComparisonCheckTest.java @@ -35,4 +35,15 @@ public void builder_shouldBuildCorrectly() { assertThat(result.getResult().getReport().getRecommendation(), is(sandboxRecommendationMock)); } + @Test + public void builder_shouldAllowSettingHandledCheckLimit() { + SandboxIdDocumentComparisonCheck result = SandboxIdDocumentComparisonCheck.builder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } + } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheckTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheckTest.java index 44130139..3f98fa45 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheckTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxSupplementaryDocumentTextDataCheckTest.java @@ -4,6 +4,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.hasEntry; import static org.hamcrest.Matchers.hasKey; +import static org.hamcrest.Matchers.is; import static org.junit.Assert.fail; import java.util.HashMap; @@ -56,4 +57,15 @@ public void builder_shouldAllowMapForDocumentFields() { assertThat(result.getResult().getDocumentFields(), hasEntry("firstKey", (Object) "firstValue")); assertThat(result.getResult().getDocumentFields(), hasEntry("secondKey", (Object) 100)); } + + @Test + public void builder_shouldAllowSettingHandledCheckLimit() { + SandboxSupplementaryDocumentTextDataCheck result = SandboxSupplementaryDocumentTextDataCheck.builder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckTest.java index ee61c401..e25846fd 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/check/SandboxZoomLivenessCheckTest.java @@ -53,4 +53,26 @@ public void builder_shouldSetCorrectLivenessTypeForStatic() { assertThat(result.getLivenessType(), is("STATIC")); } + @Test + public void builder_shouldAllowSettingHandledCheckLimitForZoom() { + SandboxLivenessCheck result = new SandboxZoomLivenessCheckBuilder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } + + @Test + public void builder_shouldAllowSettingHandledCheckLimitForStatic() { + SandboxLivenessCheck result = new SandboxStaticLivenessCheckBuilder() + .withRecommendation(sandboxRecommendationMock) + .withBreakdown(sandboxBreakdownMock) + .withHandledCheckLimit(3) + .build(); + + assertThat(result.getHandledCheckLimit(), is(3)); + } + } From 3393bf585ba5ff93d5304b92fbfd1616fd4b5451 Mon Sep 17 00:00:00 2001 From: Alex Burt Date: Wed, 19 Aug 2026 15:04:26 +0100 Subject: [PATCH 5/7] SDK-2514: Add process field to SandboxBreakdown for WATCHLIST_SCREENING sandbox check --- .../request/check/report/SandboxBreakdown.java | 18 ++++++++++++++++-- .../docs/request/SandboxBreakdownTest.java | 16 +++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/report/SandboxBreakdown.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/report/SandboxBreakdown.java index 068d0bd7..699f086b 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/report/SandboxBreakdown.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/report/SandboxBreakdown.java @@ -15,12 +15,16 @@ public class SandboxBreakdown { @JsonProperty("result") private final String result; + @JsonProperty("process") + private final String process; + @JsonProperty("details") private final List details; - private SandboxBreakdown(String subCheck, String result, List details) { + private SandboxBreakdown(String subCheck, String result, String process, List details) { this.subCheck = subCheck; this.result = result; + this.process = process; this.details = details; } @@ -36,6 +40,10 @@ public String getResult() { return result; } + public String getProcess() { + return process; + } + public List getDetails() { return details; } @@ -47,6 +55,7 @@ public static class Builder { private String subCheck; private String result; + private String process; private List details = new ArrayList<>(); private Builder() { @@ -62,6 +71,11 @@ public Builder withResult(String result) { return this; } + public Builder withProcess(String process) { + this.process = process; + return this; + } + public Builder withDetail(String name, String value) { SandboxDetail detail = new SandboxDetail(name, value); details.add(detail); @@ -72,7 +86,7 @@ public SandboxBreakdown build() { notNullOrEmpty(subCheck, "subCheck"); notNullOrEmpty(result, "result"); - return new SandboxBreakdown(subCheck, result, details); + return new SandboxBreakdown(subCheck, result, process, details); } } } diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxBreakdownTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxBreakdownTest.java index ab9a10af..fe7e2b85 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxBreakdownTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxBreakdownTest.java @@ -4,6 +4,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.fail; import com.yoti.api.client.sandbox.docs.request.check.report.SandboxBreakdown; @@ -13,7 +14,8 @@ public class SandboxBreakdownTest { private static final String SOME_SUB_CHECK = "someSubCheck"; - private static final String SOME_RESULT = "someResult"; + private static final String SOME_RESULT = "someResult"; + private static final String SOME_PROCESS = "someProcess"; private static final String SOME_DETAIL_NAME = "someDetailName"; private static final String SOME_DETAIL_VALUE = "someDetailValue"; @@ -50,9 +52,21 @@ public void builder_shouldBuildCorrectlyWithRequiredProperties() { assertThat(result.getSubCheck(), is(SOME_SUB_CHECK)); assertThat(result.getResult(), is(SOME_RESULT)); + assertThat(result.getProcess(), is(nullValue())); assertThat(result.getDetails(), hasSize(0)); } + @Test + public void builder_shouldBuildCorrectlyWithProcess() { + SandboxBreakdown result = SandboxBreakdown.builder() + .withSubCheck(SOME_SUB_CHECK) + .withResult(SOME_RESULT) + .withProcess(SOME_PROCESS) + .build(); + + assertThat(result.getProcess(), is(SOME_PROCESS)); + } + @Test public void builder_shouldCreateSandboxDetailsForSuppliedKeyValue() { SandboxBreakdown result = SandboxBreakdown.builder() From e303e6f8741162415832ce20689c2921cb3762e8 Mon Sep 17 00:00:00 2001 From: Michael Buck Date: Wed, 2 Sep 2026 16:06:22 +0100 Subject: [PATCH 6/7] SDK-2825: Expose company_profile/company_name on GET /sessions/{id} --- .../session/retrieve/CompanyProfileResponse.java | 14 ++++++++++++++ .../docs/session/retrieve/GetSessionResult.java | 14 ++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/CompanyProfileResponse.java diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/CompanyProfileResponse.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/CompanyProfileResponse.java new file mode 100644 index 00000000..9afb0bb0 --- /dev/null +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/CompanyProfileResponse.java @@ -0,0 +1,14 @@ +package com.yoti.api.client.docs.session.retrieve; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class CompanyProfileResponse { + + @JsonProperty("company_name") + private String companyName; + + public String getCompanyName() { + return companyName; + } + +} diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/GetSessionResult.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/GetSessionResult.java index 5945246e..aec4202d 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/GetSessionResult.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/docs/session/retrieve/GetSessionResult.java @@ -17,6 +17,12 @@ public class GetSessionResult { @JsonProperty("session_id") private String sessionId; + @JsonProperty("organisation_name") + private String organisationName; + + @JsonProperty("company_profile") + private CompanyProfileResponse companyProfileResponse; + @JsonProperty("user_tracking_id") private String userTrackingId; @@ -61,6 +67,14 @@ public String getSessionId() { return sessionId; } + public String getOrganisationName() { + return organisationName; + } + + public CompanyProfileResponse getCompanyProfile() { + return companyProfileResponse; + } + public String getUserTrackingId() { return userTrackingId; } From edbf59ff17dd301874fd334ea878bd4440060167 Mon Sep 17 00:00:00 2001 From: Alex Burt Date: Mon, 14 Sep 2026 11:02:32 +0100 Subject: [PATCH 7/7] Release 4.4.0: Bump version for release --- README.md | 4 ++-- examples/doc-scan/pom.xml | 2 +- pom.xml | 2 +- yoti-sdk-api/pom.xml | 2 +- .../com/yoti/api/client/spi/remote/call/YotiConstants.java | 2 +- yoti-sdk-auth/pom.xml | 2 +- yoti-sdk-parent/pom.xml | 4 ++-- yoti-sdk-sandbox/pom.xml | 2 +- yoti-sdk-spring-boot-auto-config/README.md | 4 ++-- yoti-sdk-spring-boot-auto-config/pom.xml | 2 +- yoti-sdk-spring-boot-example/README.md | 2 +- yoti-sdk-spring-boot-example/pom.xml | 2 +- yoti-sdk-spring-security/README.md | 4 ++-- yoti-sdk-spring-security/pom.xml | 2 +- 14 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index fbc4c9f4..0334c8d9 100644 --- a/README.md +++ b/README.md @@ -101,13 +101,13 @@ If you are using Maven, you need to add the following dependency: com.yoti yoti-sdk-api - 4.4.0-SNAPSHOT + 4.4.0 ``` If you are using Gradle, here is the dependency to add: -`compile group: 'com.yoti', name: 'yoti-sdk-api', version: '4.4.0-SNAPSHOT'` +`compile group: 'com.yoti', name: 'yoti-sdk-api', version: '4.4.0'` You will find all classes packaged under `com.yoti.api` diff --git a/examples/doc-scan/pom.xml b/examples/doc-scan/pom.xml index 1416444c..303a7cbe 100644 --- a/examples/doc-scan/pom.xml +++ b/examples/doc-scan/pom.xml @@ -53,7 +53,7 @@ com.yoti yoti-sdk-api - 4.4.0-SNAPSHOT + 4.4.0 diff --git a/pom.xml b/pom.xml index 3ff91cba..da4c82e4 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.yoti yoti-sdk pom - 4.4.0-SNAPSHOT + 4.4.0 Yoti SDK Java SDK for simple integration with the Yoti platform https://github.com/getyoti/yoti-java-sdk diff --git a/yoti-sdk-api/pom.xml b/yoti-sdk-api/pom.xml index 39e8e5dd..3e663bfe 100644 --- a/yoti-sdk-api/pom.xml +++ b/yoti-sdk-api/pom.xml @@ -11,7 +11,7 @@ com.yoti yoti-sdk-parent - 4.4.0-SNAPSHOT + 4.4.0 ../yoti-sdk-parent diff --git a/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java b/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java index 6ee17e82..ee2cffe8 100644 --- a/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java +++ b/yoti-sdk-api/src/main/java/com/yoti/api/client/spi/remote/call/YotiConstants.java @@ -30,7 +30,7 @@ private YotiConstants() {} public static final String CONTENT_TYPE_JPEG = "image/jpeg"; public static final String JAVA = "Java"; - public static final String SDK_VERSION = JAVA + "-4.4.0-SNAPSHOT"; + public static final String SDK_VERSION = JAVA + "-4.4.0"; public static final String SIGNATURE_ALGORITHM = "SHA256withRSA"; public static final String ASYMMETRIC_CIPHER = "RSA/NONE/PKCS1Padding"; public static final String SYMMETRIC_CIPHER = "AES/CBC/PKCS7Padding"; diff --git a/yoti-sdk-auth/pom.xml b/yoti-sdk-auth/pom.xml index 41a9e349..7c329eac 100644 --- a/yoti-sdk-auth/pom.xml +++ b/yoti-sdk-auth/pom.xml @@ -12,7 +12,7 @@ com.yoti yoti-sdk-parent - 4.4.0-SNAPSHOT + 4.4.0 ../yoti-sdk-parent diff --git a/yoti-sdk-parent/pom.xml b/yoti-sdk-parent/pom.xml index df004db7..64e19edc 100644 --- a/yoti-sdk-parent/pom.xml +++ b/yoti-sdk-parent/pom.xml @@ -5,7 +5,7 @@ com.yoti yoti-sdk-parent pom - 4.4.0-SNAPSHOT + 4.4.0 Yoti SDK Parent Pom Parent pom for the Java SDK projects https://github.com/getyoti/yoti-java-sdk @@ -137,7 +137,7 @@ 3.9.0 - 4.4.0-SNAPSHOT + 4.4.0 0.8.13 diff --git a/yoti-sdk-sandbox/pom.xml b/yoti-sdk-sandbox/pom.xml index a671cfd2..aa98fa4f 100644 --- a/yoti-sdk-sandbox/pom.xml +++ b/yoti-sdk-sandbox/pom.xml @@ -11,7 +11,7 @@ com.yoti yoti-sdk-parent - 4.4.0-SNAPSHOT + 4.4.0 ../yoti-sdk-parent diff --git a/yoti-sdk-spring-boot-auto-config/README.md b/yoti-sdk-spring-boot-auto-config/README.md index e821fb7a..f460ac65 100644 --- a/yoti-sdk-spring-boot-auto-config/README.md +++ b/yoti-sdk-spring-boot-auto-config/README.md @@ -18,7 +18,7 @@ If you are using Maven, you need to add the following dependencies: com.yoti yoti-sdk-spring-boot-auto-config - 4.4.0-SNAPSHOT + 4.4.0 ``` @@ -26,7 +26,7 @@ If you are using Maven, you need to add the following dependencies: If you are using Gradle, here is the dependency to add: ``` -compile group: 'com.yoti', name: 'yoti-sdk-spring-boot-auto-config', version: '4.4.0-SNAPSHOT' +compile group: 'com.yoti', name: 'yoti-sdk-spring-boot-auto-config', version: '4.4.0' ``` diff --git a/yoti-sdk-spring-boot-auto-config/pom.xml b/yoti-sdk-spring-boot-auto-config/pom.xml index bfb80c5c..54c2ae02 100644 --- a/yoti-sdk-spring-boot-auto-config/pom.xml +++ b/yoti-sdk-spring-boot-auto-config/pom.xml @@ -12,7 +12,7 @@ com.yoti yoti-sdk-parent - 4.4.0-SNAPSHOT + 4.4.0 ../yoti-sdk-parent diff --git a/yoti-sdk-spring-boot-example/README.md b/yoti-sdk-spring-boot-example/README.md index 76112841..0f83703c 100644 --- a/yoti-sdk-spring-boot-example/README.md +++ b/yoti-sdk-spring-boot-example/README.md @@ -17,7 +17,7 @@ Note that: com.yoti yoti-sdk-api - 4.4.0-SNAPSHOT + 4.4.0 ``` diff --git a/yoti-sdk-spring-boot-example/pom.xml b/yoti-sdk-spring-boot-example/pom.xml index dd2deebf..e85665b3 100644 --- a/yoti-sdk-spring-boot-example/pom.xml +++ b/yoti-sdk-spring-boot-example/pom.xml @@ -6,7 +6,7 @@ com.yoti yoti-sdk-spring-boot-example Yoti Spring Boot Example - 4.4.0-SNAPSHOT + 4.4.0 org.springframework.boot diff --git a/yoti-sdk-spring-security/README.md b/yoti-sdk-spring-security/README.md index 9fdad9b0..e29d5922 100644 --- a/yoti-sdk-spring-security/README.md +++ b/yoti-sdk-spring-security/README.md @@ -25,14 +25,14 @@ If you are using Maven, you need to add the following dependencies: com.yoti yoti-sdk-spring-security - 4.4.0-SNAPSHOT + 4.4.0 ``` If you are using Gradle, here is the dependency to add: ``` -compile group: 'com.yoti', name: 'yoti-sdk-spring-security', version: '4.4.0-SNAPSHOT' +compile group: 'com.yoti', name: 'yoti-sdk-spring-security', version: '4.4.0' ``` ### Provide a `YotiClient` instance diff --git a/yoti-sdk-spring-security/pom.xml b/yoti-sdk-spring-security/pom.xml index 47b9e9e8..6ae70218 100644 --- a/yoti-sdk-spring-security/pom.xml +++ b/yoti-sdk-spring-security/pom.xml @@ -12,7 +12,7 @@ com.yoti yoti-sdk-parent - 4.4.0-SNAPSHOT + 4.4.0 ../yoti-sdk-parent