# 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 | | --- | --- | --- | | SMS | [client.sms()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/SMSService.html) | [client.sms().v1()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/SMSService.html) | ## SMS In addition to the table below, you can review the [corresponding synatx reference guide](/docs/sms/sdks/java/syntax-reference/) and [API reference guide](/docs/sms/api-reference/). ### Batches | | Un-versioned | Versioned | | --- | --- | --- | | cancel | [> T cancel(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/BatchesService.html#cancel(java.lang.String)) | [BatchResponse cancel(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/BatchesService.html#cancel(java.lang.String)) | | dryRun | [DryRun dryRun(boolean, int, BaseBatch batch)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/BatchesService.html#dryRun(boolean,int,com.sinch.sdk.domains.sms.models.BaseBatch)) | [DryRunResponse dryRun(DryRunQueryParameters, BatchRequest)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/BatchesService.html#dryRun(com.sinch.sdk.domains.sms.models.v1.batches.request.DryRunQueryParameters,com.sinch.sdk.domains.sms.models.v1.batches.request.BatchRequest)) | | get | [> T get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/BatchesService.html#get(java.lang.String)) | [BatchResponse get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/BatchesService.html#get(java.lang.String)) | | list | [BatchesListResponse list(BatchesListRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/BatchesService.html#list(com.sinch.sdk.domains.sms.models.requests.BatchesListRequestParameters)) | [ListBatchesResponse list(ListBatchesQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/BatchesService.html#list(com.sinch.sdk.domains.sms.models.v1.batches.request.ListBatchesQueryParameters)) | | replace | [> T replace(String, BaseBatch)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/BatchesService.html#replace(java.lang.String,com.sinch.sdk.domains.sms.models.BaseBatch)) | [BatchResponse replace(String, BatchRequest](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/BatchesService.html#replace(java.lang.String,com.sinch.sdk.domains.sms.models.v1.batches.request.BatchRequest)) | | sendDeliveryFeedback | [`void sendDeliveryFeedback(String, Collection<String>)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/BatchesService.html#sendDeliveryFeedback(java.lang.String,java.util.Collection)) | [`void sendDeliveryFeedback(String, SendDeliveryFeedbackRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/BatchesService.html#sendDeliveryFeedback(java.lang.String,com.sinch.sdk.domains.sms.models.v1.batches.request.SendDeliveryFeedbackRequest)) | ### Delivery Reports | | Un-versioned | Versioned | | --- | --- | --- | | get | [DeliveryReportBatch get(String, DeliveryReportBatchGetRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/DeliveryReportsService.html#get(java.lang.String,com.sinch.sdk.domains.sms.models.requests.DeliveryReportBatchGetRequestParameters)) | [BatchDeliveryReport get(String, BatchDeliveryReportQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/DeliveryReportsService.html#get(java.lang.String,com.sinch.sdk.domains.sms.models.v1.deliveryreports.request.BatchDeliveryReportQueryParameters)) | | getForNumber | [DeliveryReportRecipient getForNumber(String, String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/DeliveryReportsService.html#getForNumber(java.lang.String,java.lang.String)) | [RecipientDeliveryReport getForNumber(String, String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/DeliveryReportsService.html#getForNumber(java.lang.String,java.lang.String)) | | list | [DeliveryReportsListResponse list(DeliveryReportListRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/DeliveryReportsService.html#list(com.sinch.sdk.domains.sms.models.requests.DeliveryReportListRequestParameters)) | [ListDeliveryReportsResponse list(ListDeliveryReportsQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/DeliveryReportsService.html#list(com.sinch.sdk.domains.sms.models.v1.deliveryreports.request.ListDeliveryReportsQueryParameters)) | ### Groups | | Un-versioned | Versioned | | --- | --- | --- | | create | [Group create(GroupCreateRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#create(com.sinch.sdk.domains.sms.models.requests.GroupCreateRequestParameters)) | [Group create(GroupRequest)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#create(com.sinch.sdk.domains.sms.models.v1.groups.request.GroupRequest)) | | delete | [`void delete(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#delete(java.lang.String)) | [`void delete(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#delete(java.lang.String)) | | get | [Group get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#get(java.lang.String)) | [Group get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#get(java.lang.String)) | | listMembers | [`Collection<String> listMembers(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#listMembers(java.lang.String)) | [`List<String> listMembers(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#listMembers(java.lang.String)) | | list | [GroupsListResponse list(GroupsListRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#list(com.sinch.sdk.domains.sms.models.requests.GroupsListRequestParameters)) | [ListGroupsResponse list(ListGroupsQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#list(com.sinch.sdk.domains.sms.models.v1.groups.request.ListGroupsQueryParameters)) | | replace | [Group replace(String , GroupReplaceRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#replace(java.lang.String,com.sinch.sdk.domains.sms.models.requests.GroupReplaceRequestParameters)) | [Group replace(String, GroupRequest)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#replace(java.lang.String,com.sinch.sdk.domains.sms.models.v1.groups.request.GroupRequest)) | | update | [Group update(String, GroupUpdateRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/GroupsService.html#update(java.lang.String,com.sinch.sdk.domains.sms.models.requests.GroupUpdateRequestParameters)) | [Group update(String, GroupUpdateRequest)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html#update(java.lang.String,com.sinch.sdk.domains.sms.models.v1.groups.request.GroupUpdateRequest)) | ### Inbounds | | Un-versioned | Versioned | | --- | --- | --- | | list | [InboundsListResponse list(InboundsListRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/InboundsService.html#list(com.sinch.sdk.domains.sms.models.requests.InboundsListRequestParameters)) | [ListInboundsResponse list(ListInboundMessagesQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/InboundsService.html#list(com.sinch.sdk.domains.sms.models.v1.inbounds.request.ListInboundMessagesQueryParameters)) | | get | [Inbound get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/InboundsService.html#get(java.lang.String)) | [InboundMessage get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/InboundsService.html#get(java.lang.String)) | ### Webhooks | | Un-versioned | Versioned | | --- | --- | --- | | parse | [WebhooksEvent parse(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.4.0/com/sinch/sdk/domains/sms/WebHooksService.html#parse(java.lang.String)) | [SmsEvent parseEvent(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/WebHooksService.html#parseEvent(java.lang.String)) | | validate | N/A | [boolean validateAuthenticationHeader(String, Map, String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/sms/api/v1/WebHooksService.html#validateAuthenticationHeader(java.lang.String,java.util.Map,java.lang.String)) |