Skip to content

Releases: getyoti/yoti-java-sdk

v4.0.0

23 Feb 15:17

Choose a tag to compare

Changes

Breaking Changes

  • The Identity Profile requirements as part of session creation are now strongly typed, with associated builders making it easier to request Identity Profile as part of a session.
    • Instead of using a Map<String, Object>, you will now need to use the IdentityProfileRequirementsPayload and associated buillder class (accessible via IdentityProfileRequirementsPayload.builder()
  • Some constructors that were incorrectly public, have now been made private (these have associated builders available)

Added

  • Support for Yoti Authentication tokens for backend authentication
    • A new yoti-sdk-auth module is available for API generation of authentication tokens, which can be used as a replacement for Yoti Signed Requests
    • The DocScanClient.Builder can now be configured to be used with an authentication token, rather than a PEM file.
  • Support for fetching ShareCodeResource as part of a session
    • These can be found on the GetSessionResult along with their associated media and tasks.
  • The capture_type property is now exposed for StaticLivenessResourceResponse
  • The process property is now exposed for breakdowns on the BreakdownResponse class

v3.12.0

12 Jan 12:08
4b4104a

Choose a tag to compare

Changes

IDV Sandbox

  • Add support for new report_template property for checks in the IDV sandbox
  • Add support for the following checks in the IDV sandbox:
    • FACE_COMPARISON
    • SYNECTICS_IDENTITY_FRAUD
    • THIRD_PARTY_IDENTITY_FRAUD_1
    • WATCHLIST_SCREENING
    • WATCHLIST_ADVANCED_CA

Digital Identity

  • Added new fetchMatch method to the DigitalIdentityClient to allow integrators to find out if a particular phone number or email has a Digital ID (i.e. Yoti Account)

v3.11.0

21 May 10:13

Choose a tag to compare

Changes

IDV Client

Added

  • Ability to configured shorted end-user flow using .withSuppressedScreen as part of the SdkConfig.Builder

v3.10.0

09 Dec 11:24

Choose a tag to compare

Changes

IDV Client

Added

  • Ability to fetch Text Extraction task recommendation
  • Allow the Brand ID to be set at session creation
  • Allow the biometric consent flow to be set at session creation
  • Allow expanded document fields to be requested at session creation
  • Ability to configure client dark mode options at session creation
  • Support for retrieving and deleting tracked devices for a given session
  • Helper methods for finding resources that were used in a check

IDV Sandbox Client

Added

  • Support for static liveness checks
  • Support for configuring a response delay for synchronous checks

v3.9.0

20 Jun 14:23

Choose a tag to compare

Added

  • Support for Advanced Identity Profile sessions (IDV + Share V2)
  • Support for retrieving failure receipt error details (Share V2)
  • Support for retrieving failure reason (IDV)

v3.8.0

12 Oct 11:05
25ae527

Choose a tag to compare

New Feature

Support of Digital Identity share service

Yoti Digital ID is now being upgraded!
We have a new API that is improving the sharing flow, for both end-users and integrators like you.

  • share is now session based (must create a share session on the server, using the SDK)
  • share session details (status, progress) can be fetched anytime
  • can subscribe to share session events notification
  • share data can be retrieved anytime until expiration of the receipt

This comes as a replacement of the Dynamic Sharing and Profile services combination.

⚠️You must use the new browser client to fully integrate this new version with your front-end

📖 How to

Here are some snippets of basic use cases.

Create a Digital Identity Client:
DigitalIdentityClient client = DigitalIdentityClient.builder()
                .withClientSdkId(clientSdkId) // Your Yoti Client SDK ID
                .withKeyPairSource(pemKey) // The content of your Yoti .pem key
                .build();
Create a share session:
        Policy policy = Policy.builder()
                .withFullName()
                .withEmail()
                // any other methods supported
                .build();

        /*
        OR with a IdentityProfileRequirements

        Map<String, Object> scheme = new HashMap<>();
        scheme.put("type", "RTW");

        Map<String, Object> identityProfile = new HashMap<>();
        identityProfile.put("trust_framework", "UK_TFIDA");
        identityProfile.put("scheme", scheme);

        .withIdentityProfile(identityProfile)
        */

        Map<String, Object> subject = new HashMap<>();
        subject.put("subject_id", "this is a new share");

        ShareSessionNotification notification = ShareSessionNotification.builder(URI.create("https://service.com/yoti-notifications"))
                .withHeader("X-CUSTOM", "custom")
                .withMethod("GET")
                .withVerifyTls(true)
                .build();
        
        ShareSessionRequest shareSessionRequest = ShareSessionRequest.builder()
                .withRedirectUri(URI.create("/profile"))
                .withPolicy(policy)
                .withSubject(subject)
                .withNotification(notification)
                // .withExtension(ExtensionBuilderByType)
                .build();

        ShareSession shareSession = client.createShareSession(shareSessionRequest);
        
        // shareSession.getId()
        // shareSession.getStatus()
        // shareSession.getExpiry()
Get the receipt of a share session:
        ShareSession session = client.fetchShareSession(sessionId);

        String receiptId = session.getReceiptId();

        Receipt receipt = client.fetchShareReceipt(receiptId);

        // Checking error
        receipt.getError();

        // Assuming no error, getting profile
        Optional<HumanProfile> profile = receipt.getProfile();

        // profile.getSelfie()
        // profile.getFullName()
        // profile.getFamilyName()
        // profile.getGivenNames()
        // profile.getDateOfBirth()
        // profile.getGender()
        // profile.getNationality()
        // profile.getPhoneNumber()
        // profile.getEmailAddress()
        // profile.getPostalAddress()
        // profile.getStructuredPostalAddress()
        // profile.getDocumentDetails()
        // profile.getDocumentImages()
        // profile.getIdentityProfileReport()

Demo

Share v2 demo available, when running the Java Spring Boot example project, at https://localhost:8443/v2/digital-identity-share

v3.7.0

25 Jul 09:28

Choose a tag to compare

Added

  • Support for non-latin documents
  • Identity Profile Preview
  • Applicant Profile resource from a relying business
  • Applicant Profile Resources on GET /session
  • Import Token support
  • Allow Relying Business to configure user price of IBV session
  • Support for IBV checks
  • Support for Synectics Identity Fraud check

v3.6.0

29 Mar 13:56

Choose a tag to compare

Added

  • Ability to specific attempts configuration for ID Document Text Extraction Tasks
  • Ability to allow/disallow non-latin documents for resource requirements at session creation
  • Support for Static Liveness Check
  • Support for Face Comparison Check
  • Ability to allow/disallow expired documents for resource requirements at session creation

v3.5.1

14 Jul 17:01
76e1bdb

Choose a tag to compare

Profile

Demo available, when running the Java Spring Boot example project, at https://localhost:8443/dbs-check

Added

ErrorDetails getter in ActivityFailureException

ErrorDetails exError = ex.errorDetails();
exError.getCode();
exError.getDescription();

Fixed

  • typo in DBS check example project when setting subject_id to the subject objet

v3.5.0

21 Jun 16:35
bc7eb6e

Choose a tag to compare

Profile

Demo available, when running the Java Spring Boot example project, at https://localhost:8443/dbs-check

Added

  • Error code and description is returned from the failed share in the following format
    Error[code='REASON_CODE', description='REASON_DESCRIPTION']