This release removes legacy SDK support.
This guide lists all removed classes and interfaces from SDK V1 and how to migrate to their SDK V2 equivalents.
- Webhooks callbacks managements and parsing are now covered with 2 different services:
- "Event Destinations": for managing the configuration of event destinations in the Sinch platform. This includes creating, updating, listing, and deleting them.
- "Sinch Events": for parsing and handling incoming events from the Sinch platform. This includes parsing the incoming payloads into strongly-typed Java objects and providing utilities for handling these events in your application.
-
regionis no longer defaulting toUSand is now a required field to use Conversation related APIs (see Configuration -
Removed support of
SINCH_CHATchannel. -
channelspecific.whatsapp.payment.OrderDetailsPayment removed support of deprecated
payment_settingsin favor of newpayment_buttonsfor payment methods. -
The
metadatafield has been removed from the Conversation and CreateConversationRequest classes. This field is no longer supported in the API and has been replaced withmetadataJson. -
APIs returning a list are supporting common naming:
<operation>QueyParametersmodels for filtering, sorting, and pagination onto requests and<opreation>ListResponsemodels for responses. -
New APIs supporting auto-pagination for list responses:
- apps.list()
- webhooks.list().
- templates.list().
- templates.listTranslations().
-
CallbackSettings.secretForOverriddenCallbackUrls is replaced by EventDestinationSettings. secretForOverriddenTarget.
-
SendEventRequest.callbackUrl is replaced by SendEventRequest.eventDestinationTarget.
-
SendMessageRequest.callbackUrl is replaced by SendMessageRequest.eventDestinationTarget.
-
Templates:
- Conversation
Template V1is removed. Use ConversationTemplate V2instead. - Conversation Templates models moved from
com.sinch.sdk.domains.conversation.models.templatespackage tocom.sinch.sdk.domains.conversation.templates.models.
- Conversation
| Old const | New const |
|---|---|
ComposingEndEvent.EMPTY |
ComposingEndEvent.COMPOSING_END_EVENT |
ComposingEvent.EMPTY |
ComposingEvent.COMPOSING_EVENT |
ConversationDeletedEvent.EMPTY |
ConversationDeletedEvent.CONVERSATION_DELETED_EVENT |
ConversationDirection.UNDEFINED_DIRECTION |
Support removed |
PaymentStatus |
constant values are now prefixed with PAYMENT_STATUS_ |
ReactionAction |
constant values prefixed with REACTION_ACTION_ |
MessageContentType |
constant values prefixed with CONTENT_ |
OptInEventNotification |
constant values prefixed with OPT_IN_ |
OptOutEventNotification |
constant values prefixed with OPT_OUT_ |
Templates V1 |
Removed support for Templates V1 |
| Old package | New package |
|---|---|
| api.v1.AppService | api.v1.AppsService |
| api.v1.ContactService | api.v1.ContactsService |
| api.v1.Conversation | api.v1.ConversationsService |
| api.v1.EventService | api.v1.EventsService |
| api.v1.WebHooksService | api.v1.EventDestinationsService |
| api.v1.SinchEventsService |
| Old package | New package |
|---|---|
| models.v1.app | models.v1.apps |
| models.v1.contact | models.v1.contacts |
| models.v1.conversation | models.v1.conversations |
| models.v1.event | models.v1.events |
| models.v1.webhooks | models.v1.evendestinations |
| models.v1.webhooks.events | models.v1.sinchevents |
| api.templates.v2.TemplatesServiceV2 | conversation.templates.api.v2.TemplatesV2Service |
| Old interface | New Equivalent |
|---|---|
| ContactsService.getChannelProfileByChannelIdentity() | Returned class is changed from String to GetChannelProfileResponse |
| ContactsService.getChannelProfileByContactId() | Returned class is changed from String to GetChannelProfileResponse |
| AppsService.list(...) | Returned class is changed from Collection<String> to AppsListResponse |
| MessagesService.get(...) | Is accepting now a MessagesGetQueryParameeters object for request parameters instead of individual parameters. |
| MessagesService.delete(...) | Is accepting now a MessagesDeleteQueryParameeters object for request parameters instead of individual parameters. |
| MessagesService.update(...) | Is accepting now a MessagesUpdateQueryParameeters object for request parameters instead of individual parameters. |
| WebhooksService.create(...) | Request parameter type is changed from Webhook to EventDestinationCreateRequest |
| WebhooksService.list(...) | Returned class is changed from Collection<Webhook> to EventDestinationsListResponse |
| TemplatesServiceV2.list(...) | Returned class is changed from Collection<TemplateV2> to TemplatesV2ListResponse |
| TemplatesServiceV2.listTranslations(...) | Returned class is changed from Collection<TemplateTranslation> to TranslationV2ListResponse |
| Old enum | New enum |
|---|---|
| SmsErrorCode.EXCEEDED_10DLC_LIMIT | SmsErrorCode.EXCEEDED_10_DLC_LIMIT |
| NumberEvent.EXCEEDED_10DLC_LIMIT | NumberSinchEvent.FailureCodeEnum.EXCEEDED_10_DLC_LIMIT |
| Old class | New class |
|---|---|
| requests.ActiveNumberListRequestParameters | request.ActiveNumbersListQueryParameters |
| requests.ActiveNumberUpdateRequestParameters | request.ActiveNumberUpdateRequest |
| requests.ActiveNumberUpdateSMSConfigurationRequestParameters | SmsConfiguration |
| requests.ActiveNumberUpdateVoiceConfigurationRequestParameters | VoiceConfiguration |
| responses.ActiveNumberListResponse.java | response.ActiveNumbersListResponse |
| Renamed field | New field |
|---|---|
| ActiveNumber.callbackUrl | ActiveNumber.eventDestinationTarget |
| ActiveNumberUpdateRequest.callbackUrl | ActiveNumberUpdateRequest.eventDestinationTarget |
| Old class | New class |
|---|---|
| requests.AvailableNumberListAllRequestParameters | request.AvailableNumbersListQueryParameters |
| requests.AvailableNumberRentAnyRequestParameters | request.AvailableNumberRentAnyRequest |
| requests.AvailableNumberRentRequestParameters | request.AvailableNumberRentRequest |
| responses.AvailableNumberListResponse | response.AvailableNumbersListResponse |
| requests.RentSMSConfigurationRequestParameters | SmsConfiguration |
| requests.RentVoiceConfigurationRequestParameters | VoiceConfiguration |
| Renamed field | New field |
|---|---|
| AvailableNumberRentAnyRequestParameters.callbackUrl | AvailableNumberRentAnyRequest.eventDestinationTarget |
| AvailableNumberRentRequestParameters.callbackUrl | AvailableNumberRentRequest.eventDestinationTarget |
| Old class | New class |
|---|---|
| regions.available.request.AvailableRegionListRequest | regions.request.AvailableRegionsListQueryParameters |
| regions.available.responses.AvailableRegionListResponse | regions.response.AvailableRegionsListResponse |
| Old class | New class |
|---|---|
| callbacks.request.CallbackConfigurationUpdateRequest | eventdestinations.request.EventDestinationUpdateRequest |
| callbacks.response.CallbackConfigurationResponse | eventdestinations.response.EventDestinationResponse |
| Old class | New class |
|---|---|
| webhooks.NumberEvent | sinchevents.NumberSinchEvent |
| webhooks.ResourceType | sinchevents.ResourceType |
Use the new versioned API under numbers().v1() to get access to NumbersService: sinchClient.numbers().v1()
| Old interface | New Equivalent in numbers().v1() |
|---|---|
| active() | Direct access from v1() |
| available() | Direct access from v1() |
| regions() | v1().regions() |
| callback() | v1().callback() |
| webhook() | v1().sinchevents() |
| v1().callback() | v1().callbackConfiguration() |
regionis no longer defaulting toUSand is now a required field to use SMS related APIs (see Configuration
- Deprecated
MediaMessageBodyDetails.statusfield of typeStringis replaced byMediaMessageBodyDetails.statusof StatusEnum type - BinaryRequest.callbackUrl is replaced by BinaryRequest.eventDestinationTarget
- UpdateBinaryRequest.callbackUrl is replaced by BinaryRequest.eventDestinationTarget
- BinaryResponse.callbackUrl is replaced by BinaryResponse.eventDestinationTarget
- MediaRequest.callbackUrl is replaced by MediaRequest.eventDestinationTarget
- UpdateMediaRequest.callbackUrl is replaced by UpdateMediaRequest.eventDestinationTarget
- MediaResponse.callbackUrl is replaced by MediaResponse.eventDestinationTarget
- TextRequest.callbackUrl is replaced by MediaRequest.eventDestinationTarget
- UpdateTextRequest.callbackUrl is replaced by UpdateTextRequest.eventDestinationTarget
- TextResponse.callbackUrl is replaced by TextResponse.eventDestinationTarget
- The deprecated
getEncoding/setEncodingAPIs acceptingStringparameter are removed from com.sinch.sdk.domains.sms.models.v1.batches.response.DryRunPerRecipientDetails
| Old class | New class |
|---|---|
| models/Inbound | com.sinch.sdk.domains.sms.models.v1.inbounds.InboundMessage |
| models/InboundBinary | com.sinch.sdk.domains.sms.models.v1.inbounds.BinaryMessage |
| models/InboundText | com.sinch.sdk.domains.sms.models.v1.inbounds.TextMessage |
| models/requests/InboundsListRequestParameters | com.sinch.sdk.domains.sms.models.v1.inbounds.request.ListInboundMessagesQueryParameters |
| models/responses/InboundsListResponse | com.sinch.sdk.domains.sms.models.v1.inbounds.response.ListInboundsResponse |
| Old class | New class |
|---|---|
| webhooks/WebhooksEvent | sinchevents.SmsSinchEvent |
| WebHooksService | SinchEventsService |
Use the new versioned API under sms().v1() to get access to SMSService: sinchClient.sms().v1()
| Old interface | New Equivalent in sms().v1() |
|---|---|
| batches() | v1().batches() |
| deliveryReports() | v1().deliveryReports() |
| groups() | v1().groups() |
| inbounds() | v1().inbounds() |
| webHooks() | v1().sinchEvent() |
Applications.listNumbers()is returning a[OwnedNumbersListResponse](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/application/response/OwnedNumbersListResponse.html)instead of a list ofOwnedNumbersResponse. The new response still contains the list of assigned numbers but support the pagination of the results byiterator.- Deprecated
Applications.queryNumber()is removed andNumberInformation,QueryNumberrelated classes no longer available.
Use the new versioned API under voice().v1() to get access to VoiceService: sinchClient.voice().v1()
| Old interface | New Equivalent in voice().v1() |
|---|---|
| applications() | v1().applications() |
| applications().getCallbackUrls() | v1().applications().getEventDestinations() |
| applications().updateCallbackUrls() | v1().applications().updateEventDestinations() |
| callouts() | v1().callouts() |
| calls() | v1().calls() |
| conferences() | v1().conferences() |
| webhooks() | v1().sinchEvents() |
| Old const | New const |
|---|---|
| SvamlActionContinue.DEFAULT | SvamlActionContinue.SVAML_ACTION_CONTINUE |
| SvamlActionHangup.DEFAULT | SvamlActionHangup.SVAML_ACTION_HANGUP |
| SvamlInstructionAnswer.DEFAULT | SvamlInstructionAnswer.SVAML_INSTRUCTION_ANSWER |
| SvamlInstructionStopRecording.DEFAULT | SvamlInstructionStopRecording.SVAML_INSTRUCTION_STOP_RECORDING |
| Old class | New class |
|---|---|
| models/Destination | com.sinch.sdk.domains.voice.models.v1.destination.Destination |
| models/DestinationNumber | com.sinch.sdk.domains.voice.models.v1.destination.DestinationSip or com.sinch.sdk.domains.voice.models.v1.destination.DestinationPstn |
| models/DestinationNumberType | N/A |
| models/DestinationSip | com.sinch.sdk.domains.voice.models.v1.destination.DestinationSip |
| models/DestinationUser | com.sinch.sdk.domains.voice.models.v1.destination.DestinationMxp |
| Old class | New class |
|---|---|
| models/ApplicationAssignedNumber | com.sinch.sdk.domains.voice.models.v1.applications.response |
| models/response/AssignedNumbers | com.sinch.sdk.domains.voice.models.v1.applications.response.OwnedNumbersListResponse |
| models/Callbacks | com.sinch.sdk.domains.voice.models.v1.applications.EventDestinations |
| models/CallbacskUrls | com.sinch.sdk.domains.voice.models.v1.applications.EventDestinationsTarget |
| models/requests/ApplicationsAssignNumbersRequestParameters | com.sinch.sdk.domains.voice.models.v1.applications.request.UpdateNumbersRequest |
| models/NumberType | N/A |
| models/CapabilityType | com.sinch.sdk.domains.voice.models.v1.applications.Capability |
| Old class | New class |
|---|---|
| models/requests/CalloutRequestParameters | com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequest |
| models/requests/CalloutRequestParametersConference | com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestConference |
| models/requests/CalloutRequestParametersCustom | com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestCustom |
| models/requests/CalloutRequestParametersTTS | com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestTTS |
| Old class | New class |
|---|---|
| models/CallLegType | com.sinch.sdk.domains.voice.models.v1.calls.request.CallLeg |
| models/response/CallInformation | com.sinch.sdk.domains.voice.models.v1.calls.response.CallInformation |
| models/response/CallStatusType | com.sinch.sdk.domains.voice.models.v1.calls.response.CallInformation.StatusEnum |
| models/CallResultType | com.sinch.sdk.domains.voice.models.v1.calls.response.CallResult |
| models/CallReasonType | com.sinch.sdk.domains.voice.models.v1.calls.response.CallInformation.ReasonEnum |
| models/DomainType | com.sinch.sdk.domains.voice.models.v1.calls.response.CallInformation.DomainEnum |
| Old class | New class |
|---|---|
| models/requests/ConferenceManageParticipantCommandType | com.sinch.sdk.domains.voice.models.v1.conferences.request.ManageConferenceParticipantRequest.CommandEnum |
| models/requests/ConferenceManageParticipantRequestParameters | com.sinch.sdk.domains.voice.models.v1.conferences.request.ManageConferenceParticipantRequest |
| models/ConferenceDtfmOptions | com.sinch.sdk.domains.voice.models.v1.conferences.ConferenceDtmfOptions |
| models/MusicOnHoldType | com.sinch.sdk.domains.voice.models.v1.MusicOnHold |
| models/DtfmModeType | com.sinch.sdk.domains.voice.models.v1.conferences.ConferenceDtmfOptions.ModeEnum |
| models/response/ConferenceParticipant | com.sinch.sdk.domains.voice.models.v1.conferences.ConferenceParticipant |
Use the new versioned API under verification().v1() to get access to VerificationService: sinchClient.verification().v1()
| Old interface | New Equivalent in verification().v1() |
|---|---|
verifications() start related APIs |
v1().verificationStart() |
verifications() report related APIs |
v1().verificationReport() |
| verificationStatus() | v1().verificationStatus() |
| webhooks() | v1().sinchEvents() |
| VerificationStartService | VerificationsStartService |
| VerificationReportService | VerificationsReportService |
| VerificationStatusService | VerificationsStatusService |
| WebHooksService | SinchEventsService |
| Old class | New class |
|---|---|
| models/Price | com.sinch.sdk.domains.verification.models.v1.Price |
| models/VerificationStatusType | com.sinch.sdk.domains.verification.models.v1.VerificationStatus |
| models/VerificationMethodType | com.sinch.sdk.domains.verification.models.v1.VerificationMethod |
| models/Identity | com.sinch.sdk.domains.verification.models.v1.Identity |
| models/NumberIdentity | com.sinch.sdk.domains.verification.models.v1.NumberIdentity |
| models/VerificationId | java.lang.String |
| models/VerificationReference | java.lang.String |
| Old class | New class |
|---|---|
| models/VerificationStatus | com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponse |
| models/VerificationStatusCallout | com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponsePhoneCall |
| models/VerificationStatusFlashCall | com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseFlashCall |
| models/VerificationStatusReasonType | com.sinch.sdk.domains.verification.models.v1.VerificationStatusReason |
| models/VerificationStatusSMS | com.sinch.sdk.domains.verification.models.v1.status.response.VerificationStatusResponseSms |
| models/VerificationSourceType | com.sinch.sdk.domains.verification.models.v1.status.StatusSource |
eventfield removed fromVerificationRequestEvent,VerificationResultEventevents.methodvalues based onto commonVerificationMethodclass.VerificationMethod.DATAenum no longer defined. No need to be replaced because not public definition is required.templatefield removed fromVerificationStartRequestSms.
Full Mailgun support (introduced in SDK 1.6 as preview) has been removed in SDK V2. There is no replacement within this SDK. To continue using Mailgun, integrate Mailgun's SDKs directly.
SinchClient.mailgun()has been removed. Remove all calls to this method and its returned service.
Configuration.Builder.setMailgunApiKey(String apiKey)Configuration.Builder.setMailgunUrl(String url)Configuration.Builder.setMailgunRegion(MailgunRegion region)
com.sinch.sdk.models.MailgunCredentialscom.sinch.sdk.models.MailgunRegion
com.sinch.sdk.domains.mailgun.MailgunServicecom.sinch.sdk.domains.mailgun.api.v1.MailgunServicecom.sinch.sdk.domains.mailgun.api.v1.EmailsServicecom.sinch.sdk.domains.mailgun.api.v1.TemplatesService
com.sinch.sdk.domains.mailgun.models.v1.emailscom.sinch.sdk.domains.mailgun.models.v1.templates
Find migration guides in the developer documentation portal: