# Migrating to Versioned Java SDK Sinch offers a Unified Java SDK ([com.sinch.sdk.sinch-sdk-java](https://mvnrepository.com/artifact/com.sinch.sdk/sinch-sdk-java)). This guide provides information on how to migrate from the initial release of the Sinch Unified Java SDK to the versioned release. ## Migration to versioned SDK The initial Sinch Unified Java SDK was based on adapter layers; each programmatic API required its own business logic. To reduce overhead and complexity, the SDK implemented "versioned" layers with v1.5. To provide a smooth transition, the un-versioned APIs are still supported. However, they will be tagged as `@Deprecated`, and will be removed with the next major release. With fewer layers, the SDK decreases memory consumption and increases performance. The versioned APIs are accessible from domains within the `SinchClient` (e.g. `client.sms()`) for SMS, but with an added `vX` suffix pointing to the version *namespace*. For example, previous calls to `client.sms().batches()` (using the inital, un-versioned SDK) are now available by addressing `client.sms().v1().batches()` (using the first versioned SDK). This also impacts packages and classes names. Tables providing mappings between un-versioned calls and versioned calls are below. The corresponding JavaDocs are linked for easy reference. ## Client | Product | Un-versioned | Versioned | | --- | --- | --- | | Verification | [`client.verification()`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationService.html) | [`client.verification().v1()`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationService.html) | ## Verification In addition to the table below, you can review the [corresponding synatx reference guide](/docs/verification/sdk/java/syntax-reference/) and [API reference guide](/docs/verification/api-reference/verification). ### Verifications | Method | Un-versioned | Versioned | | --- | --- | --- | | reportCallout-ById | [`VerificationReportCallout reportCalloutById(VerificationId, VerificationReportCalloutRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#reportCalloutById(com.sinch.sdk.domains.verification.models.VerificationId,com.sinch.sdk.domains.verification.models.requests.VerificationReportCalloutRequestParameters)) | [`VerificationReportResponsePhoneCall reportPhoneCallById(String, VerificationReportRequestPhoneCall)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html#reportPhoneCallById(java.lang.String,com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestPhoneCall)) | | reportCallout-ByIdentity | [`VerificationReportCallout reportCalloutByIdentity(NumberIdentity, VerificationReportCalloutRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#reportCalloutByIdentity(com.sinch.sdk.domains.verification.models.NumberIdentity,com.sinch.sdk.domains.verification.models.requests.VerificationReportCalloutRequestParameters)) | [`VerificationReportResponsePhoneCall reportPhoneCallByIdentity(NumberIdentity, VerificationReportRequestPhoneCall)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html#reportPhoneCallByIdentity(com.sinch.sdk.domains.verification.models.v1.NumberIdentity,com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestPhoneCall)) | | reportFlashCall-ById | [`VerificationReportFlashCall reportFlashCallById(VerificationId, VerificationReportFlashCallRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#reportFlashCallById(com.sinch.sdk.domains.verification.models.VerificationId,com.sinch.sdk.domains.verification.models.requests.VerificationReportFlashCallRequestParameters)) | [`VerificationReportResponseFlashCall reportFlashCallById(String, VerificationReportRequestFlashCall)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html#reportFlashCallById(java.lang.String,com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestFlashCall)) | | reportFlashCall-ByIdentity | [`VerificationReportFlashCall reportFlashCallByIdentity(NumberIdentity, VerificationReportFlashCallRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#reportFlashCallByIdentity(com.sinch.sdk.domains.verification.models.NumberIdentity,com.sinch.sdk.domains.verification.models.requests.VerificationReportFlashCallRequestParameters)) | [`VerificationReportResponseFlashCall reportFlashCallByIdentity(NumberIdentity, VerificationReportRequestFlashCall)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html#reportFlashCallByIdentity(com.sinch.sdk.domains.verification.models.v1.NumberIdentity,com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestFlashCall)) | | reportSmsById | [`VerificationReportSMS reportSmsById(VerificationId, VerificationReportSMSRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#reportSmsById(com.sinch.sdk.domains.verification.models.VerificationId,com.sinch.sdk.domains.verification.models.requests.VerificationReportSMSRequestParameters)) | [`VerificationReportResponseSms reportSmsById(String, VerificationReportRequestSms)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html#reportSmsById(java.lang.String,com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms)) | | reportSmsByIdentity | [`VerificationReportSMS reportSmsByIdentity(NumberIdentity, VerificationReportSMSRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#reportSmsByIdentity(com.sinch.sdk.domains.verification.models.NumberIdentity,com.sinch.sdk.domains.verification.models.requests.VerificationReportSMSRequestParameters)) | [`VerificationReportResponseSms reportSmsByIdentity(NumberIdentity, VerificationReportRequestSms)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationReportService.html#reportSmsByIdentity(com.sinch.sdk.domains.verification.models.v1.NumberIdentity,com.sinch.sdk.domains.verification.models.v1.report.request.VerificationReportRequestSms)) | | startCallout | [`StartVerificationResponseCallout startCallout(StartVerificationCalloutRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#startCallout(com.sinch.sdk.domains.verification.models.requests.StartVerificationCalloutRequestParameters)) | [`VerificationStartResponsePhoneCall startPhoneCall(VerificationStartRequestPhoneCall parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.html#startPhoneCall(com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestPhoneCall)) | | startFlashCall | [`StartVerificationResponseFlashCall startFlashCall(StartVerificationFlashCallRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#startFlashCall(com.sinch.sdk.domains.verification.models.requests.StartVerificationFlashCallRequestParameters)) | [`VerificationStartResponseFlashCall startFlashCall(VerificationStartRequestFlashCall parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.html#startFlashCall(com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestFlashCall)) | | startSeamless | [`StartVerificationResponseSeamless startSeamless(StartVerificationSeamlessRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#startSeamless(com.sinch.sdk.domains.verification.models.requests.StartVerificationSeamlessRequestParameters)) | [`VerificationStartResponseData startData(VerificationStartRequestData parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.html#startData(com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestData)) | | startSms | [`StartVerificationResponseSMS startSms(StartVerificationSMSRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationsService.html#startSms(com.sinch.sdk.domains.verification.models.requests.StartVerificationSMSRequestParameters)) | [`VerificationStartResponseSms startSms(VerificationStartRequestSms parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStartService.html#startSms(com.sinch.sdk.domains.verification.models.v1.start.request.VerificationStartRequestSms)) | ### Verification Status | Method | Un-versioned | Versioned | | --- | --- | --- | | getById | [`VerificationReport getById(VerificationId id)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationStatusService.html#getById(com.sinch.sdk.domains.verification.models.VerificationId)) | [`VerificationStatusResponse getById(String id)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.html#getById(java.lang.String)) | | getByIdentity | [`VerificationReport getByIdentity(NumberIdentity identity, VerificationMethodType method)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationStatusService.html#getByIdentity(com.sinch.sdk.domains.verification.models.NumberIdentity,com.sinch.sdk.domains.verification.models.VerificationMethodType)) | [`VerificationStatusResponse getByIdentity(NumberIdentity identity, VerificationMethod method)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.html#getByIdentity(com.sinch.sdk.domains.verification.models.v1.NumberIdentity,com.sinch.sdk.domains.verification.models.v1.VerificationMethod)) | | getBy-Reference | [`VerificationReport getByReference(VerificationReference reference)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/VerificationStatusService.html#getByReference(com.sinch.sdk.domains.verification.models.VerificationReference)) | [`VerificationStatusResponse getByReference(String reference)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/VerificationStatusService.html#getByReference(java.lang.String)) | ### Webhooks | Method | Un-versioned | Versioned | | --- | --- | --- | | parseEvent | [`VerificationEvent parseEvent(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/WebHooksService.html#parseEvent(java.lang.String)) | [`VerificationEvent parseEvent(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/WebHooksService.html#parseEvent(java.lang.String)) | | serializeResponse | [`String serializeResponse(VerificationResponse)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/WebHooksService.html#serializeResponse(com.sinch.sdk.domains.verification.models.webhooks.VerificationResponse)) | [`String serializeResponse(VerificationRequestEventResponse)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/WebHooksService.html#serializeResponse(com.sinch.sdk.domains.verification.models.v1.webhooks.VerificationRequestEventResponse)) | | validateAuthenticationHeader | [`boolean validateAuthenticationHeader(String String, Map<String,String>, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/verification/WebHooksService.html#validateAuthenticationHeader(java.lang.String,java.lang.String,java.util.Map,java.lang.String)) | [`boolean validateAuthenticationHeader(String, String path, Map<String,String>, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/verification/api/v1/WebHooksService.html#validateAuthenticationHeader(java.lang.String,java.lang.String,java.util.Map,java.lang.String)) |