All notable changes to the library will be documented in this file.
The format of the file is based on Keep a Changelog and this library adheres to Semantic Versioning as mentioned in README.md file.
[ 7.0.0 ] - 2026-07-31
- Most recent feature set for:
- Email:
- JSON send API
POST /email/4/messagesviasendEmail(EmailRequest)returningEmailResponse(@Beta) - MIME send API
POST /email/4/mimeviasendMimeEmail(EmailSendMimeRequestSchema) - New send models:
EmailRequest,EmailMessage,EmailMessageContent,EmailMessageOptions,EmailMessageRequestOptions,EmailMessageDeliveryReporting,EmailToDestination,EmailGroupDestination,EmailWebhooks,EmailIps,EmailStorage,EmailUrlOptions,EmailRequestSchedulingSettings,EmailPlaceholderMasking,EmailClientPriority,EmailSmtpInfo, and media attachment models (EmailMediaAttachment,EmailMediaBinaryAttachment,EmailMediaBinaryImage,EmailMediaInlineImage,EmailMediaUploadedReference)
- JSON send API
- Viber:
- Template management endpoints (
@Beta):createViberTemplate,getViberTemplates,getViberTemplate,deleteViberTemplateon/viber/1/senders/{sender}/templates - Template models:
ViberTemplateRequest,ViberTemplateResponse,ViberTemplatesResponse,ViberTemplateResponseNoDates,ViberTemplateBody,ViberTemplateParam,ViberTemplateParamType,ViberTemplateCategory,ViberTemplateStatus,ViberTemplateLang ViberOutboundTransactionalTemplateContentfor outbound transactional template messages
- Template management endpoints (
- Calls / Voice:
- Dialog transfer endpoints:
dialogTransferAcceptanddialogTransferReject - Authenticated SIP trunk support with
CallsAuthenticatedSipTrunkRequest,CallsAuthenticatedSipTrunkResponse,CallsAuthenticatedSipTrunkUpdateRequest,CallsCreateAuthenticatedSipTrunkResponse, and related authentication models (CallsSipTrunkAuthentication*, inbound/outbound auth variants,CallsSipTrunkAuthenticatedResetPasswordResponse) CallsDialogAcceptTransferRequest,CallsForwardingInfo,CallsMediaStreamMultiChannel,CallsAudioEncoding,CallsApplicationTransferPropagationOptions,CallsRecordingTransferOptions
- Dialog transfer endpoints:
- Call Routing:
- WhatsApp routing support with
CallRoutingWhatsAppCriteriaandCallRoutingSimulatorWhatsAppEndpoint
- WhatsApp routing support with
- WhatsApp:
- GIF template header support with
WhatsAppGifHeaderApiDataandWhatsAppTemplateGifHeaderContent - In-thread authentication reply support with
WhatsAppInThreadAuthenticationReply,WhatsAppInThreadAuthenticationStatus, andWhatsAppWebhookInThreadAuthenticationReplyContent - PIX flow type support with
WhatsAppPixFlowType WhatsAppRequestContactInfoButtonApiData,WhatsAppWebhookDlrContact,WhatsAppWebhookInboundContactProfile
- GIF template header support with
- Resources:
- Polymorphic resource order interfaces:
ResourcesResourceOrderApiDoc,ResourcesResourceOrderRequestApiDoc,ResourcesRequirementSpecsRequestApiDoc ResourcesNumberOfferClientType
- Polymorphic resource order interfaces:
- Numbers:
NumbersForwardToMarkupLanguageDetailsforFORWARD_TO_MARKUP_LANGUAGEvoice action subtype
- MMS:
MmsInboundMessagePartfor structured inbound message parts
- RCS:
- Context-specific price and traffic types:
RcsDlrMessagePrice,RcsDlrTrafficType,RcsMoMessagePrice,RcsMoTrafficType,RcsMoEventMessagePrice,RcsConvStartedTrafficType
- Context-specific price and traffic types:
- Shared:
CursorPageInfoshared across channel log responses
- Email:
sendEmailredesigned from multipart fluent API (POST /email/3/send) to JSONEmailRequest(POST /email/4/messages); execute return type changed fromEmailSendResponsetoEmailResponsesendMimeEmailreturnsEmailSendResponse(messages typed asEmailResponseDetails), notEmailResponsegetEmailLogspath changed from/email/1/logsto/email/4/logsgetEmailDeliveryReportspath changed from/email/1/reportsto/email/4/reportsgetEmailLogsbuilder: renamedfrom→sender,to→destination;bulkId/messageId/campaignReferenceIdchanged fromStringtoList<String>;generalStatuschanged fromStringtoMessageGeneralStatus; added cursor pagination (useCursor,cursor)EmailLog: renamedfrom/totosender/destination; replacedapplicationId/entityIdwithplatform; addedcampaignReferenceIdEmailReport: addedsender,callbackData, andcampaignReferenceId; replacedapplicationId/entityIdwithplatformEmailWebhookDeliveryReport: addedsmtp(EmailSmtpInfo); field set reshuffledEmailLogsResponseextended withcursor(CursorPageInfo)- Replaced
EmailPagingwithPageInfo(totalResultstypeLong) sendEmailresponse message items use sharedMessageResponseDetails(withdetailstyped asObject)- JavaDoc fixes
- Viber:
- Renamed
ViberOutboundOtpTemplateContenttoViberOutboundTransactionalTemplateContent - Replaced
ViberOutboundContentType.OTP_TEMPLATEwithTEMPLATE - Removed
ViberOtpTemplateLanguage; outbound template language is aString, template management usesViberTemplateLang - Extended
ViberMessageOptionswithactivationCheck - JavaDoc fixes
- Renamed
- WhatsApp:
- Identity endpoints (
confirmWhatsAppIdentity,deleteWhatsappIdentity,getWhatsAppIdentity): renamed path/parameteruserNumber→userIdentifier(MSISDN or BSUID) sendWhatsappEventsreturn type changed fromWhatsAppResponseEnvelopeMessageResponseMessageResponseDetailsto sharedMessageResponse(messages typed asMessageResponseDetails)- Replaced channel-specific status models with shared
MessageStatusonWhatsAppSingleMessageInfo - Replaced
WhatsAppWebhookContactNamewithWhatsAppWebhookInboundContactProfile; addedWhatsAppWebhookDlrContacton delivery/seen reports - Extended
WhatsAppStatuswithARCHIVEDandUNKNOWN - Extended
WhatsAppWebhookTypewithINTERACTIVE_IN_THREAD_AUTHENTICATION_REPLY - Extended template headers with
GIFsupport - Extended
WhatsAppInteractiveOrderBrazilPixDcPaymentDetailswithflowType - JavaDoc fixes
- Identity endpoints (
- Calls / Voice:
- Extended
CallsSipTrunkRequestwithAUTHENTICATEDsubtype;tlsmoved from the base request onto specific trunk subtypes - Extended
CallPropertieswithforwardedFrom - Extended
CallsMediaStreamAudioPropertieswithmultiChannel - Extended media-stream webhook properties with
streamId; extendedCallsMediaStreamingConfigResponsewithaudioEncoding - Extended
CallsTranscriptionwithprovider - Extended
CallsApplicationTransferRequestwithpropagationOptions - SIP trunk reset credentials now also apply to
AUTHENTICATEDtrunks - JavaDoc fixes
- Extended
- Call Routing:
- Extended criteria/endpoint types with
WHATSAPPsupport - Extended route request/response with
transferOnly - JavaDoc fixes
- Extended criteria/endpoint types with
- RCS:
- Split
RcsMessagePrice/RcsTrafficTypeinto context-specific types (DLR, MO, MO event, conversation started); DLR traffic enum dropsA2P_CONVERSATION, addsINTERACTIVE_SESSION RcsLogsResponse.cursornow uses sharedCursorPageInfo- JavaDoc fixes
- Split
- MMS:
MmsInboundReport.messagetype changed fromStringtoList<MmsInboundMessagePart>; addedsubjectanduserAgent- Channel logs/reports use shared
MessageErrorandCursorPageInfo - JavaDoc fixes
- SMS:
- Channel logs/reports/responses use shared
MessageStatus,MessageError, andCursorPageInfo SmsResponseDetailskept as the SMS send-response item type;detailsremainsSmsMessageResponseDetails(includesmessageCount)- JavaDoc fixes
- Channel logs/reports/responses use shared
- Numbers:
- Extended
getBrands/getCampaignswith optionalapplicationIdandentityIdfilters - Marked AI review endpoints as
@Beta:getAiReviewResults,submitCampaignInfoForAiReview,submitExistingCampaignForAiReview - Extended
NumbersTenDlcCampaignwithexternalCampaignId - Extended
NumbersCampaignRegistrarandNumbersNetworkwithDISH,CHARTER_SPECTRUM,C_SPIRE,GOOGLE_FI, andTRACFONE - Extended voice action details with
FORWARD_TO_MARKUP_LANGUAGEsupport viaNumbersForwardToMarkupLanguageDetails - JavaDoc fixes
- Extended
- Resources:
- Resource order/requirement models implement new polymorphic interfaces; number order/specs gain
clientType - Extended enums with
PREFILLED_DOCUMENT,USER_ACTION_REQUIRED,IN_PROGRESS, andCANCEL_REQUESTED - JavaDoc fixes
- Resource order/requirement models implement new polymorphic interfaces; number order/specs gain
- MessagesApi:
- Extended
MessagesApiMessageOptionswithdeliveryTimeWindowfield support - JavaDoc fixes
- Extended
- WebRtc:
- Removed
applicationIdfield fromWebRtcPushConfigurationRequestandWebRtcPushConfigurationResponse - JavaDoc fixes
- Removed
- Number Lookup:
- Updated JavaDoc for number clipping behaviour on requests longer than 256 characters
- Flow:
- Extended
getFlowParticipantsAddedReportwith optionalapplicationIdandentityIdquery parameters
- Extended
- Shared consolidations:
SmsCursorPageInfo,MmsCursorPageInfo,RcsCursorPageInfo,ViberCursorPageInfo→CursorPageInfoSmsMessageError,MmsMessageError,ViberMessageError→MessageError(groupNamechanged fromMessageErrorGrouptoString)SmsMessageStatus,WhatsAppMessageStatus,WhatsAppSingleMessageStatus,CallsSingleMessageStatus→MessageStatus- Expanded reuse of existing
MessageResponseDetailsfor Email and WhatsApp send responses
- General:
- Updated tests
- Removed Numbers voice recording configuration APIs (
createRecordingConfiguration,updateRecordingConfiguration,retrieveRecordingConfiguration,removeRecordingConfiguration) and related models (NumbersNumberConfigurationModel,NumbersRecordingBody,NumbersDownloadResponseModel,NumbersReviewType) - Removed per-channel cursor, error, and status duplicates in favor of shared
CursorPageInfo,MessageError, andMessageStatus - Removed
EmailPagingin favor ofPageInfo - Removed
MessageErrorGroupin favor ofString-typedMessageError.groupName - Removed
ViberOutboundOtpTemplateContentandViberOtpTemplateLanguage(replaced by transactional template models) - Removed
WhatsAppMessageStatus,WhatsAppMessageGeneralStatus,WhatsAppSingleMessageStatus,WhatsAppWebhookContactName,WhatsAppMessageResponseMessageResponseDetails, andWhatsAppResponseEnvelopeMessageResponseMessageResponseDetails - Removed
CallsSingleMessageStatusin favor of sharedMessageStatus - Removed
RcsMessagePriceandRcsTrafficType(replaced by context-specific types) - Removed TTY play content models
CallsPlayTtyandCallsPlayTtyOptions - Removed unused orphaned Calls IVR script models previously generated as
Calls*(CallsAnsweringMachineDetection*,CallsPlayFromUpload*,CallsPlayOptions,CallsAudioContent*,CallsCustomRingback,CallsWaitForEom, and related types)
[ 6.5.0 ] - 2026-05-15
- Support for Infobip Number Lookup API.
[ 6.4.1 ] - 2026-05-07
- Numbers:
- Extended
NumbersBrandRegistrationStatusPublicwithPENDING_APPEALstatus support - Extended
NumbersCampaignRegistrarwithLIBERTYregistrar support - Replaced
UPDATE_REQUESTED_BY_CARRIERSwithREJECTED_EXTERNALLYinNumbersCampaignStageenum - Extended
NumbersCampaignTypewithRCS_SENDER_LAUNCHtype support - Extended
NumbersExternalTenDlcCampaignwithpolicyfield support - Extended
NumbersNetworkwithLIBERTYnetwork support - Extended
NumbersTenDlcCampaignwithpolicyfield support - Extended
NumbersTenDlcUseCasewithSWEEPSTAKEuse case support
- Extended
- Fixed
getCampaignNetworkStatusesresponse type to return a list instead of a single object.
[ 6.4.0 ] - 2026-03-31
- Support for Infobip Numbers API.
- Support for Infobip Resources API.
- Most recent feature set for:
- WhatsApp:
- Added Media Carousel message support with
WhatsAppInteractiveMediaCarouselMessage,WhatsAppMediaCarouselCard,WhatsAppImageMediaCarouselCardHeader,WhatsAppVideoMediaCarouselCardHeadermodels - Added Voice button message support with
WhatsAppInteractiveVoiceButtonMessageandWhatsAppInteractiveVoiceButtonContentmodels - Added calling permission support with
WhatsAppCallingPermissionAction,WhatsAppCallingPermissionActionLimit,WhatsAppCallingPermissionResponseandWhatsAppInteractiveCallPermissionRequestMessagemodels - Added outbound event support (typing indicator) with
WhatsAppEvent,WhatsAppEventRequest,WhatsAppEventOptions,WhatsAppOutboundEventTypingIndicatorContentmodels - Added Meta conversion tracking support with
WhatsAppMetaConversionModel,WhatsAppMetaConversionType,WhatsAppWABAConversionEventRequest,WhatsAppConversionDetailsmodels - Added marketing update notification support with
WhatsAppWebhookMarketingUpdateNotificationandWhatsAppWebhookMarketingUpdateNotificationResponsemodels - Added message scheduling support with
WhatsAppRequestSchedulingSettingsmodel - Added
WhatsAppTemplateVoiceCallButtonContentmodel for voice call template button support - Added
WhatsAppMessageStatus,WhatsAppMessageGeneralStatus,WhatsAppSenderPublicKeyResponse,WhatsAppShareWabaRequest,WhatsAppToDestinationmodels - Extended
WhatsAppTemplateButtonContentwith voice call button type support - Extended
WhatsAppPaymentwith additional fields - Extended
WhatsAppTemplateApiResponseandWhatsAppVoiceCallButtonApiDatawith new fields - JavaDoc fixes
- Added Media Carousel message support with
- RCS:
- Removed
RcsPlatformInfoclass (see Removed section) - Added conversation started event support with
RcsConversationStartedEvent,RcsConversationStartedEvents,RcsConversationStartedInfo,RcsConversationStartedEventContent,RcsConversationInfomodels - Added
RcsConversationType,RcsConversationStartedEventType,RcsTrafficType,RcsMessagePrice,RcsMessageInteractionType,RcsEventInteractionTypemodels - Updated
RcsWebhookDeliveryReportmodel - JavaDoc fixes
- Removed
- Voice:
- Renamed
CallsSipTrunkRegisteredResetPasswordResponsetoCallsSipTrunkResetPasswordResponseto better reflect the return type of the reset password endpoint - Removed
CallsPublicDialogRecordingclass (see Removed section) - Added CNAM support with
CallsCnam,CallsCnamDelivery,CallsCnamDeliveryStatus,CallsCnamStorage,CallsCnamStorageStatus,CallsPublicCnamStatusmodels - Added emergency address support with
CallsEmergencyAddress,CallsEmergencyAddressStatus,CallsValidateAddressResponsemodels - Added TTY play content support with
CallsPlayTty,CallsPlayTtyOptions,CallsTtyPlayContentmodels - Added
CallsAddress,CallsDirectionmodels - Extended
CallsLanguageandCallsSynthesisVoicewith new language and voice options - Extended
CallsDialogPlayRequestwith new fields - Extended
CallsUrlPlayContentwith new fields - JavaDoc fixes
- Renamed
- MessagesApi:
- Added outbound seen event support with
MessagesApiOutboundSeenEventandMessagesApiOutboundSeenEventChannelmodels - Added outbound typing event channel support with
MessagesApiOutboundTypingStartedEventChannelandMessagesApiOutboundTypingStoppedEventChannelmodels - Added
MessagesApiInboundTypingStartedChannelmodel - Extended
MessagesApiOutboundEventTypewith new event type values - Updated
MessagesApiInboundDlrChannel,MessagesApiInboundTypingStartedEvent,MessagesApiInboundTypingStoppedEvent,MessagesApiOutboundTypingStartedEvent,MessagesApiOutboundTypingStoppedEventmodels - Extended
MessagesApiOutboundEventwith new fields - JavaDoc fixes
- Added outbound seen event support with
- WebRtc:
- Added machine detection support with
WebRtcMachineDetectionandWebRtcMachineDetectionResultmodels - Extended
WebRtcPhoneCallDetailsandWebRtcPhoneDestinationwith new fields - Updated
WebRtcHangupSourceenum - JavaDoc fixes
- Added machine detection support with
- Viber:
- Extended
ViberOtpTemplateLanguagewith new language options - Extended
ViberOutboundOtpTemplateContentwith new fields - JavaDoc fixes
- Extended
- General:
- Updated tests
- Removed
RcsPlatformInfoclass — itsapplicationIdandentityIdfields are now carried by the existingPlatformclass, which is used consistently across the SDK for platform context - Removed
CallsPublicDialogRecordingclass — unified withCallsDialogRecordingResponse, which represents the same dialog recording data and is now the single type returned from dialog recording endpoints
[ 6.3.0 ] - 2026-02-17
- Support for Infobip RCS API.
- Most recent feature set for:
- HTTPS enforcement: The SDK now automatically ensures HTTPS is used for API host URLs. If
http://is explicitly provided, aIllegalArgumentExceptionis raised. URLs without a protocol are automatically prefixed withhttps://.
- Call Routing:
- Extended
CallRoutingWebSocketEndpointwithcustomDatafield - Extended
CallRoutingApiwith new endpoints:deleteByCorrelationId,recordingFileDownload,searchCallRoutingRecording,updateRouteOrder,updateRouteStatus,simulateRoute - Extended
getCallRoutesmethod withnameContainsquery parameter support - Extended
CallRoutingCriteriaTypewithAPPLICATIONtype support - Extended
CallRoutingCriteriawithCallRoutingApplicationCriteriasubtype support - Removed duplicate
customDatafield fromCallRoutingInfobipApplicationandCallRoutingCallsApplicationmodels (field is already inherited from parent classCallRoutingApplication) - JavaDoc fixes
- Extended
- Voice:
- Extended
VoiceApiwith new IVR upload endpoints:ivrUploadAudioFileandivrUploadGetFiles - Extended
CallsSearchResponse,CallsUpdateScenarioRequest,CallsUpdateScenarioResponsemodels withrecordfield support - Extended
CallsProviderTrunkTypewithOPENAI_REALTIMEtype support - Extended
CallsProviderwithCallsOpenAiProvidersubtype support - Extended
CallsRecordingFilemodel withexpirationTimefield support - Renamed
customDatafield tomultichannelMappingDatainCallsRecordingFilemodel - Extended
CallsVoiceDatawithdirectionandcallRecordingFileIdfield support - Extended
CallVoicewith new voices (JENNIFER,DAVID) - Replaced
platformfield (type:Platform) withapplicationIdfield (type:String) inCallRecordingandCallsConferenceRecordingmodels - Changed
resultsfield type fromList<CallRecording>toList<CallsPublicRecording>inCallRecordingPagemodel - Changed
resultsfield type fromList<CallsConferenceRecording>toList<CallsPublicConferenceRecording>inCallsConferenceRecordingPagemodel - Changed
composedFilesfield type fromList<CallsRecordingFile>toList<CallsPublicRecordingFile>andcallRecordingsfield type fromList<CallRecording>toList<CallsPublicRecording>inCallsConferenceRecordingLog,CallsDialogRecordingLog, andCallsDialogRecordingResponsemodels - Removed
stopOnandcustomDatafields fromCallsSayRequestmodel - Removed
recordfield fromCallsIvrMessagemodel - Removed
TRANSFERRINGstate fromCallsDialogStateenum - Removed
JOHANNESBURG_1enum value fromCallsRecordingLocationto reflect the current state of the API - JavaDoc fixes
- Extended
- Viber:
- Fixed
ViberCarouselCardbuttons now are null instead of being initialized as a new ArrayList to reflect field change from required to optional - JavaDoc fixes
- Fixed
- MessagesApi:
- Extended
MessagesApiMessageContentwithsenderDisplayInfofield support - Extended
MessagesApiMessageOptionswithtrafficType,sessionRateandprimaryDevicefield support - Extended
MessagesApiWebhookEventContentTypewithURLandREACTIONevent type support - JavaDoc fixes
- Extended
- Tfa:
- Extended
TfaStartAuthenticationRequestandTfaResendPinRequestwithtrackDeliveryfield support - Extended
TfaStartAuthenticationResponsewithexternalMessageIdfield support - JavaDoc fixes
- Extended
- WebRtc:
- Extended
WebRtcParticipantwithstartTimeandtypefield support - Extended
WebRtcParticipantsDetailsandWebRtcPhoneCallDetailswithdialogIdandhangupSourcefield support - Renamed
textfield tomessageinCallsDialogBroadcastWebrtcTextRequestmodel due to previous endpoint/calls/1/dialogs/{dialogId}/broadcast-webrtc-textbeing sunset and migrated to/calls/1/dialogs/{dialogId}/send-message - Renamed
textfield tomessageinCallsConferenceBroadcastWebrtcTextRequestmodel due to previous endpoint/calls/1/conferences/{conferenceId}/broadcast-webrtc-textbeing sunset and migrated to/calls/1/conferences/{conferenceId}/send-message - Removed
CALLING,RINGING,PRE_ESTABLISHED,ESTABLISHED,DISCONNECTED,JOINING,JOINED,LEFTenum values fromWebRtcState - JavaDoc fixes
- Extended
- WhatsApp:
- Extended
WhatsAppInteractiveOrderPaymentStatuswithUPI_LINKstatus support - Extended
WhatsAppInteractiveAllowedOrderPaymentDetailswithUPI_LINKtype support - Removed
LIMIT_1Kvalue fromWhatsAppSenderLimitenum - JavaDoc fixes
- Extended
- General:
- Updated tests
[ 6.2.0 ] - 2025-10-27
- Most recent feature set for:
- Email:
- For
getIpPoolmethod response type changed fromEmailIpPoolResponsetoEmailIpPoolDetailResponse - Removed
returnPathAddressfield fromEmailAddDomainRequest,EmailDomainResponsemodel /email/1/domains/{domainName}/return-path- This endpoint has been is no longer supported in the SDK.- Fixed
bulksfield inEmailBulkScheduleResponseandEmailBulkStatusResponse, now initialized as an empty list due to field change from optional to required - Extended
EmailDomainResponsemodel withblocklistConfigrationLevelfield - Extended
EmailIpDetailResponse,EmailIpResponsemodel withipAddressesfield - Fixed
messagesfield inEmailSendResponse, now initialized as an empty list due to field change from optional to required - Fixed
reasonfield type inEmailValidationResponsefromStringtoEmailValidationReason - Fixed
riskfield type inEmailValidationResponsefromStringtoEmailValidationApiRisk - Extended
EmailWebhookTrackingPayloadmodel witheventIdandsenderfield support - JavaDoc fixes
- For
- MessagesApi:
- Extended
MessagesApiDefaultMessageRequestOptionswithmessageOrderingfield support - Extended
MessagesApiMessageBodywithFORM,ORDER_REQUEST,ORDER_STATUSandTIME_PICKERbody type support - Extended
MessagesApiMessageButtonwithDIAL_PHONEandSHOW_LOCATIONbutton type support - Extended
MessagesApiMessageOpenUrlButtonmodel withpostbackDataandopenInfield support - Extended
MessagesApiMessageOptionsmodel withtransliterationandcorrelationDatafield support - Extended
MessagesApiOutboundTemplateChannelmodel withVIBER_BMtype support - Extended
MessagesApiWebhookEventContentmodel withFORM_RESPONSEandPAYMENT_RESPONSEevent type support - Extended
MessagesApiWebhookEventwithmessageCountandmetadatafield support - JavaDoc fixes
- Extended
- Mms:
- Cursor-based pagination support in
getOutboundMmsMessageLogsfunction withuseCursorandcursorparameters.- Extended
MmsLogsResponsemodel withcursorfield
- Extended
- JavaDoc fixes
- Cursor-based pagination support in
- Moments:
- Fixed
FlowExceptionResponsemodel with adding missing fields:type,title,status,detail,instance - JavaDoc fixes
- Fixed
- Sms:
- Unified
SmsWebhookInboundReportwith the existingSmsInboundMessagemodel - Unified
SmsWebhookInboundReportResponsewith the existingSmsInboundMessageResultmodel - JavaDoc fixes
- Unified
- Tfa:
- Extended
TfaCreateEmailMessageRequest,TfaMessage,TfaUpdateEmailMessageRequestandTfaEmailMessagewithlandingPageIdfield support - Extended
TfaStartEmailAuthenticationRequestwithlandingPagePlaceholdersfield support - JavaDoc fixes
- Extended
- Viber:
- Cursor-based pagination support in
getOutboundViberMessageLogsfunction withuseCursorandcursorparameters. - Extended
ViberLogsResponsemodel withcursorfield - Extended
ViberMessageDeliveryReportingwithreceiveTriggeredFailoverReportsfield support - Extended
ViberOutboundFileContentandViberOutboundFileContentTypewith aCAROUSELsupport - JavaDoc fixes
- Cursor-based pagination support in
- Voice:
- Class replaced in
updateConferenceCallmethod fromCallsUpdateRequesttoCallsUpdateCallRequestto better reflect its specific usage - Extended
Call,CalLog,CallRequestmodels with new field:externalId - Extended
CallEndpoint,CallRoutingEndpointmodels withWHATSAPPtype support - Extended
CallRoutingDestinationmodel withAPPLICATIONtype support - Extended
CallRecordingRequestmodel with new field:channels - Extended
CallRoutingPhoneEndpointmodel with new field:ringbackGeneration - Extended
CallRoutingRouteResponsemodel with new fields:statusandorder - Extended
CallRoutingSipEndpointmodel with new field:from - Extended
CallsAddExistingCallRequestmodel with new fields:roleandcustomData - Extended
CallsAddNewCallRequestwithrolesupport - Extended
CallsMachineDetectionmodel withmachineDetectionsupport - Extended
CallsDialogStatewithTRANSFERRINGstate support - Removed
UNKOWNenum value fromCallsDetectionResultenum - Removed
creationMethodfield fromCallsFilemodel - Extended
CallsLanguagewith multiple new language options - Extended
CallsMachineDetectionPropertieswithconfidenceRatingfield support - Extended
CallsMachineDetectionRequestwithdetectionTimefield support - Extended
CallsParticipantwithrolefield support - Extended
CallsSearchResponse,CallsUpdateScenarioRequest,CallsUpdateScenarioResponsemodel with new fields:notifyUrlandnotifyContentType - Fixed
CallsSpeechCaptureRequestkeyPhrases now are null instead of being initialized as a new LinkedHashSet to reflect field change from required to optional - Extended
CallsTranscriptionmodel with new fields:customDictionaryandadvancedFormatting - Extended
CallsUpdateRequest,CallsVideoMediaPropertiesmodel with newblindfield support - Extended
CallsVoiceDatawith new field support:answeredBy - Extended
CallsWebsocketEndpointConfigRequest.SampleRateEnumwith new rate values:24000and32000 - Extended
CallVoicewith new voices - JavaDoc fixes
- Class replaced in
- Number Masking:
- Extended
NumberMaskingStatusRequestwithmachineDetectionResultfield support - JavaDoc fixes
- Extended
- WebRtc:
- Removed
capabilitesfield fromWebRtcTokenRequestModelto reflect the current behaviour of the endpoint - Extended
WebRtcParticipantwithstateanddirectionfield support - JavaDoc fixes
- Removed
- WhatsApp:
- Extended
WhatsAppWebhookTypewith new types:INTERACTIVE_CALL_PERMISSION_REPLYandREACTION - Extended
WhatsAppVideoMessage,WhatsAppAudioMessage,WhatsAppContactsMessage,WhatsAppDocumentMessage,WhatsAppImageMessage,WhatsAppInteractiveButtonsMessage,WhatsAppInteractiveFlowMessage,WhatsAppInteractiveListMessage,WhatsAppInteractiveLocationRequestMessage,WhatsAppInteractiveMultiProductMessage,WhatsAppInteractiveOrderDetailsMessage,WhatsAppTextMessage,WhatsAppInteractiveOrderStatusMessage,WhatsAppStickerMessage,WhatsAppMessage,WhatsAppLocationMessage,WhatsAppInteractiveProductMessage,WhatsAppInteractiveUrlButtonMessagemodels withcontextfield support - Removed
allowCategoryChangefield fromWhatsAppTemplatePublicApiRequestmodel to reflect the current behaviour of the endpoint - Extended
WhatsAppTemplateEditPublicApiRequest,WhatsAppDefaultUtilityTemplateApiResponsemodels withsubCategoryfield support - Extended
WhatsAppTemplateDataContentmodel withorderStatusfield support - Extended
WhatsAppSenderLimitmodel with additional value (LIMIT_2K) - Fixed
callbackDatafield type inWhatsAppPaymentmodel fromList<String>toObjectreflecting the current behaviour of the endpoint - Extended
WhatsAppLanguagewith multiple new language options - Extended
WhatsAppInteractiveUrlButtonHeaderContentwithDOCUMENT,IMAGEandVIDEO` type support - Extended
WhatsAppInteractiveOrderUPIPGRazorpayPaymentDetailswith callbackData field support - Extended
WhatsAppInteractiveOrderPaymentStatuswithBRAZIL_BOLETOstatus support - Extended
WhatsAppInteractiveAllowedOrderPaymentDetailswithBRAZIL_BOLETOandBRAZIL_PAYMENTStype support - Extended
WhatsAppDefaultTemplateStructureApiDatawithcallPermissionRequestfield support - Extended
WhatsAppButtonApiDatawithORDER_DETAILSandVOICE_CALLtype support - JavaDoc fixes
- Extended
- General:
- Updated tests
- Unused
EmailReturnPathAddressRequest,CallsCreationMethod,WebRtcCapabilities,WebhookMessageCountandWebRtcRecordingclasses are removed
[ 6.1.1 ] - 2025-06-20
- Most recent feature set for Infobip SMS API.
- Cursor-based pagination support in
getOutboundSmsMessageLogsfunction withuseCursorandcursorparameters.
- Cursor-based pagination support in
SmsLogsResponsenow includes cursor field to support cursor-based pagination.- Updated Javadoc documentation for
SmsMessageDeliveryReporting.
[ 6.1.0 ] - 2025-04-09
- Most recent feature set for:
- Added new Viber Outbound Content type:
LIST. - Added new MessagesApi message body types:
PRODUCTandMIXED. - Added new WhatsAppInteractive payment status and payment details type:
UPI_INTENT. - Added support for
WEBSOCKEToption in call routing endpoint. - Added WhatsAppWebhookType support:
- Added support for
INFECTED_CONTENTandINTERACTIVE_FLOW_REPLYtypes in theWhatsAppWebhookTypeenum.
- WhatsAppWebhookPaymentTransactionNotification model, previously nested enum 'type' and 'status' are now extracted to a separate class.
- WhatsAppWebhookPaymentNotification model, previously nested enum 'currency' is now extracted to a separate class.
- Updated
WhatsAppTemplateCardContent.buttonsfield type fromList<WhatsAppTemplateButtonContent>→List<WhatsAppCardAllowedTemplateButtonContent>. - Updated
WhatsAppTemplatePublicApiRequest.structurefield type fromWhatAppTemplateStructureApiData→Object. - Updated
CallsUpdateScenarioResponse.lastUsageDatefield type fromString→LocalDate. - Updated
CallsSearchResponse.lastUsageDatefield type fromString→LocalDate. - Removed
EmailWebhookTrackReportandEmailWebhookTrackResponsein favor of a unified class:EmailWebhookTrackingPayload. - Updated
FormsRequest.formTypefield type fromFormType→String. - Removed
CallSipTrunkLocationenum class, now processed as aString. - Updated
WhatsAppTemplateEditPublicApiRequestcategoryfield:CategoryEnuminner enum replaced by the existingWhatsAppCategoryclass enum value. - Updated
WhatsAppTemplatePublicApiRequestcategoryfield:CategoryEnuminner enum replaced by the existingWhatsAppCategoryclass enum value. - Replaced
WhatsAppWebhookAddresstypeenum withStringto support more options. - Fixed
WhatsAppWebhookContactbirthdayfield type: changed fromOffsetDateTimetoLocalDate. - Removed
WhatsAppWebhookPaymentNotificationCurrencyEnuminner enum class, replaced by the existingWhatsAppPaymentStatusclass. - Removed
WhatsAppTemplateAllowedOrderPaymentDetailsclass, replaced by the unifiedWhatsAppInteractiveAllowedOrderPaymentDetailsclass. - Fixed Javadoc.
- Removed deviceDetails and networkId fields
MessagesApiDeliveryResult.
[ 6.0.0 ] - 2025-02-17
🎉 NEW Major Version of infobip-api-java-client.
- Most recent feature set for:
- Infobip Messages API.
- Footer support for Messages API Message. For additional details check Messages API documentation.
- Add calendar event button support for Messages API Message. For additional details check Messages API documentation.
- Card options for Carousel and Rich Link body types in Messages API Message. For additional details check Messages API documentation.
- Infobip Voice API.
- Support for Calls Configuration.
- Infobip SMS API.
- Infobip 2FA API.
- Infobip Email API.
- Support for Email IP Management instead of set of deprecated Email IP endpoints. Check Email API documentation for additional details.
- Infobip WhatsApp API.
- Infobip Viber API.
- Infobip WebRTC API.
- Infobip Moments.
- Infobip MMS API.
- Introduced
/mms/2/messages (V2)replacing the/mms/1/advanced (V1)endpoint. - Introduced
/mms/2/reports (V2)replacing/mms/1/reports (V1)endpoint. - Introduced
/mms/2/logs (V2)replacing/mms/1/logs (V1)endpoint.
- Introduced
- Infobip Messages API.
- Added new Calls error code type:
MACHINE_DETECTED. - Added support for
CallsProviderSipTrunkUpdateRequest. - Created
RawJsonDeserializerto handle raw JSON deserialization.
-
General
- Unified
MessageResponse,MessageResponseDetails,MessageGroupError,SendingSpeedLimitandSpeedLimitTimeUnit. - Updated
MessagesApiMessageGeneralStatus– Adjustments due to API updates. - Updated
DeprecationCheckerlogging level fromWARNINGtoINFOwhen the endpoint is only deprecated without a defined sunset date.
- Unified
-
Mms API
- Introduced the new
MmsMessageclass to replaceMmsAdvancedMessage, reflecting the latest state of the API for MMS messaging. Updated request classes by replacingMmsAdvancedRequestwith the newMmsRequestclass, reflecting the latest state of the API. - Updated sending message function: use
sendMmsMessagesinstead ofsendMmsMessage.
- Introduced the new
-
Voice API
- Adjusted IVR models in script processing. Scenario scripting is now implemented as a raw string to increase usability of the feature. Scripts should be passed as strings to the IVR request model in all upcoming SDK versions.
- Updated
CallsUpdateScenarioRequest.scriptfield type fromList<CallsScriptInner>→String. - Updated
CallsSearchResponse.scriptandelsefields type fromList<Object>→String. - Updated
CallsUpdateScenarioResponse.scriptfield type fromObject→String.
- Updated
- Updated
CallsGetVoicesResponses.voicesfield type fromList<CallsVoice>→List<CallsSynthesisVoice>. - Updated
CallsSearchResponse.lastUsageDatefield type fromOffsetDateTime→String. - Updated
CallsSpeechCaptureRequest.languagefield type fromCallsLanguage→CallTranscriptionLanguage. - Updated
CallsTranscription.languagefield type fromCallsLanguage→CallTranscriptionLanguage. - Updated
CallsUpdateScenarioResponse.lastUsageDatefield type fromOffsetDateTime→String. - Removed
CallsVoice– Certain fields removed due to API updates. - Removed
CallRoutingUrlSecurityConfigType– Unified intoSecurityConfigTypeenumeration class. - Removed
CallsUrlSecurityConfigType– Unified intoSecurityConfigTypeenumeration class. - Fixed Number Masking content schema when uploading audio files.
- Fixed Number Masking UTC date-time deserialization in setup response model.
- Fixed: Replaced body content in
ConferencePlayFileRequestfromCallsPlayRequesttoCallsConferencePlayRequest.
- Adjusted IVR models in script processing. Scenario scripting is now implemented as a raw string to increase usability of the feature. Scripts should be passed as strings to the IVR request model in all upcoming SDK versions.
-
Email API
- Updated
EmailSuppressionInfo.createdDatefield type fromString→OffsetDateTime. - Removed
EmailSingleMessageStatus– Now integrated into the unifiedMessageStatusclass. - Updated
EmailAddDeleteSuppressionType– Pending further clarification.
- Updated
-
Messaging API
- Removed
MessagesApiRequestOptions– Now replaced byMessagesApiDefaultMessageRequestOptionsclass. - Removed
MessagesApiSpeedLimitTimeUnit– Now replaced by the unifiedSpeedLimitTimeUnitclass.
- Removed
-
Viber API
- Removed
ViberMessageRequestSchedulingSettings– Now useViberRequestSchedulingSettings. - Updated
ViberInboundContent.typeEnum→ViberInboundContentType. - Updated
ViberOutboundContent.typeEnum→ViberOutboundContentType. - Removed
ViberMessageStatus– Now unified intoMessageStatus. - Removed
ViberSpeedLimitTimeUnit– Now unified intoSpeedLimitTimeUnit. - Removed
ViberWebhookInboundReport– Now useViberInboundMessageViberInboundContent.
- Removed
-
WhatsApp API
- Removed unsupported enumeration values from
WhatsAppWebhookType. - Updated
WhatsAppWebhookReferralMediaVideo,WhatsAppWebhookReferralMediaImage,WhatsAppWebhookMediaVideo– Introduced newtypefield, no longer extendingWhatsappWebhookReferalMedia. - Refactored
WhatsAppWebhookReferralMedia– Changed from an abstract class to a normal class. - Removed
contextfield from variousWhatsAppWebhookmessage types:WhatsAppWebhookQuickReplyContentWhatsAppWebhookListReplyContentWhatsAppWebhookInboundAudioMessageWhatsAppWebhookButtonReplyContentWhatsAppWebhookInboundVoiceMessageWhatsAppWebhookInboundVideoMessageWhatsAppWebhookInboundTextMessageWhatsAppWebhookInboundStickerMessageWhatsAppWebhookInboundLocationMessageWhatsAppWebhookInboundImageMessageWhatsAppWebhookInboundDocumentMessageWhatsAppWebhookInboundContactMessage
- Removed
integrationType,pairedMessageId, andcallbackDatafields fromWhatsAppWebhookInboundMessageData. - Removed
INFECTED_CONTENT,INTERACTIVE_EXTENSION_REPLY,UNSUPPORTEDsubtypes fromWhatsAppWebhookInboundMessageabstract class. - Replaced
WhatsAppValidityPeriodTimeUnitclass withValidityPeriodTimeUnit. - Removed no longer supported 50 business-initiated conversations messaging tear limit for WhatsApp senders.
- Updated
WhatsAppPhoneNumberRequest.typeEnum→WhatsAppPhoneNumberTypeEnum. - Updated
WhatsAppOtpRequest.typeEnum→WhatsAppNumberType. - Removed
structurefield fromWhatsAppDefaultUtilityTemplatePublicApiRequest. - Removed
structurefield fromWhatsAppTemplatePublicApiRequest. - Removed
groupIdfield fromWhatsAppContext. - Refactored
WhatsAppDefaultTemplateStructureApiData– Now an implementation ofWhatsAppTemplateStructureApiData. - Refactored
WhatsAppAuthenticationTemplateStructureApiData– Now an implementation ofWhatsAppTemplateStructureApiData.
- Removed unsupported enumeration values from
-
WebRTC API
- Updated
WebRtcValidityWindow.acceptableDaystypeEnum →DeliveryDay. - Removed
applicationIdfield fromWebRtcTokenRequestModel. - Updated
WebRtcValidityWindow.LayoutsEnum→WebRtcLayout. - Updated
WebRtcLocalization.typeEnum→WebRtcLocalizationType. - Updated
WebRtcWebRtcDestination→WebRtcCallsDestination. - Removed
fcmServerKeyfield fromWebRtcAndroidPushNotificationConfig.
- Updated
- Deprecated functions for sending Viber
Image,File, andTextmessages have been removed. UseViberApi.sendViberMessagesto send messages. - All the Calls IVR script related class and from now on all the scripts are processed as
String:CallsCallApiCallsCaptureCallsCollectCallsDialCallsDialToManyCallsDialToWebRTCCallsDialToConversationsCallsForEachCallsGoToCallsHangupCallsIfThenElseCallsMachineDetectionCallsPauseCallsPlayCallsPlayFromRecordingCallsRecordCallsRepeatUntilCallsRepeatWhileCallsSayCallsSendSmsCallsSetVariableCallsSwitchCaseCallsWhileDo
These changes align the SDK with the current API specification, ensuring consistency and reliability in future updates.
[ 5.1.0 ] - 2024-12-16
- Support for Infobip Moments.
[ 5.0.0 ] - 2024-12-06
🎉 NEW Major Version of infobip-api-java-client.
- Most recent feature set for:
- Infobip SMS API
- Introduced
/sms/3/messages (V3)replacing the/sms/2/text/advanced (V2)and/sms/2/binary/advanced (V2)endpoints. - Introduced
/sms/3/reports (V3)replacing/sms/1/reports (V1)endpoint. - Introduced
/sms/3/logs (V3)replacing/sms/1/logs (V1)endpoint.
- Introduced
- Infobip Email API
- Infobip Voice API
- Infobip SMS API
- Fixes and changes
- Introduced the new SmsMessage class to replace
SmsTextualMessageandSmsBinaryMessage, providing a unified structure for SMS messaging. - Added a content field within
SmsMessageto define the message content. This supports both textual and binary messages, which can be created using SmsTextContent or SmsBinaryContent, respectively. - Unified request classes by replacing
SmsAdvancedTextualRequestandSmsAdvancedBinaryRequestwith the new SmsRequest class. - Consolidated sending functions: use
sendSmsMessagesinstead of thesendSmsMessageandsendBinarySmsMessagefunctions. - Changed 'sentAt', 'doneAt' field type in MmsReport from String to OffsetDateTime since it didn't correspond to the state of the endpoint.
- Across all voice models, the 'applicationId' field has been removed and replaced with the 'platform' field, as it better reflects the state of the endpoint.
- Removed delivery time window configuration classes (
SmsDeliveryTimeWindow,MmsDeliveryTimeWindow,ViberDeliveryTimeWindow,CallRoutingAllowedTimeWindow,CallsDeliveryTimeWindow,SmsDeliveryTimeWindow,CallsTimeWindow) in favor of a unified class: DeliveryTimeWindow - Removed delivery time configuration classes (
SmsDeliveryTimeFrom,SmsDeliveryTimeTo,MmsDeliveryTime,ViberDeliveryTime,CallsTimeWindowPoint,WebRtcTimeOfDay,CallRoutingAllowedTimeFrom,CallRoutingAllowedTimeTo,WebRtcTimeOfDay) in favor of a unified class: DeliveryTime - Removed URL options configuration classes (
MessagesApiUrlOptions,ViberUrlOptions,WhatsAppUrlOptions) in favor of a unified class: UrlOptions - Removed platform configuration class (
ViberPlatform,MessagesApiPlatform) in favor of a unified class: Platform - Removed TurkeyIys options configuration classes (
MessagesApiTurkeyIysOptions,ViberTurkeyIysOptions,SmsTurkeyIysOptions) in favor of a unified class: TurkeyIysOptions - Removed delivery day enumeration classes (
SmsDeliveryDay,MmsDeliveryDay,CallsDeliveryDay,CallRoutingAllowedDay) in favor of a unified class: DeliveryDay - Removed recipient type enumeration classes (
SmsIysRecipientType,ViberRecipientType,MessagesApiRecipientType) in favor of a unified class: IysRecipientType - Removed validity period configuration classes (
ViberValidityPeriod,MessagesApiValidityPeriod) in favor of a unified class: ValidityPeriod - Removed validity period time unit enumeration classes (
ViberValidityPeriodTimeUnit,MessagesApiValidityPeriodTimeUnit) in favor of a unified class: ValidityPeriodTimeUnit
- Introduced the new SmsMessage class to replace
[ 4.4.0 ] - 2024-11-19
- Most recent feature set for:
- Fixes and changes
- Changed 'description' field name in MessagesApiMessageListBody to 'subtext'.
- Removed 'messageCount' field in MessagesApiWebhookEventTextContent since it didn't correspond to the state of the endpoint.
- Documentation
- Fixed Javadoc.
[ 4.3.2 ] - 2024-08-22
- Added mock tests to verify the correctness of request payloads and response handling.
- Added
awaitilityandwiremocktest dependencies. snyk.ymlworkflow, which serves the purpose of identifying and addressing dependency vulnerabilities in the project.sonar.ymlworkflow to analyze the source code, enhancing code quality and maintainability.git-build-hook-maven-pluginplugin into the project, providing support for Git hooks.pre-commit.shhook, which automatically executesmvn spotless:applyprior to each commit, ensuring code formatting consistency.
- Bumped
jacksonversion to2.17.0 - Bumped
slf4j-apiversion to2.0.16 - Bumped
junit-jupiterversion to5.11.0 - Bumped
guavaversion to33.3.0-jre - Bumped
maven-gpg-pluginversion to3.2.5 - Bumped
spotless-maven-pluginversion to2.43.0
[ 4.3.1 ] - 2024-06-05
- Most recent Infobip SMS API feature set.
-
Fixes and changes
- Changed SmsTurkeyIysOptions model, previously nested enum 'RecipientTypeEnum' is now extracted to a separate class: SmsIysRecipientType.
- Expanded ApiExceptionDetailsResolver model with additional error response that the API might return.
-
Documentation
- Fixed Javadoc.
[ 4.3.0 ] - 2024-03-19
- Support for Infobip Messages API.
- Most recent feature set for:
- Removed classes and unified structures
- Removed basic url security configuration classes (
CallsBasicUrlSecurityConfig,CallRoutingBasicUrlSecurityConfig) in favor of a unified class: BasicSecurityConfig - Removed hmac algorithm class (
CallsHmacAlgorithm) in favor of a unified class: HmacAlgorithm - Removed hmac url security configuration classes (
CallRoutingHmacUrlSecurityConfig,CallsHmacUrlSecurityConfig) in favor of a unified class: HmacSecurityConfig - Removed url security configuration classes (
CallRoutingUrlSecurityConfig,CallsUrlSecurityConfig) in favor of a unified class: SecurityConfig
- Removed basic url security configuration classes (
- Fixes and changes
- Changed CallRoutingRecording model, previously nested enum 'RecordingTypeEnum' is now extracted to a separate class: CallRoutingRecordingType.
- Changed 'endpoint' field type in CallsBulkCall from CallEndpoint to CallsBulkEndpoint since it didn't correspond to the state of the endpoint.
- Changed 'endpoint' field type in CallsBulkCallRequest from CallEndpoint to CallsBulkEndpoint since it didn't correspond to the state of the endpoint.
- Fixed some of the enum values in TfaLanguage since they didn't correspond to the state of the endpoint.
- Removed 'record' field in CallsClickToCallMessage since it is not supported on the API side.
- Removed 'values' field in ViberOutboundFileContent since it is not supported on the API side.
- Removed 'values' field in ViberOutboundImageContent since it is not supported on the API side.
- Removed 'values' field in ViberOutboundVideoContent since it is not supported on the API side.
- Changed 'reports' field name in ViberWebhookReportResponse to 'results'.
- Changed 'callbackData' field type in ViberWebhooks from Object to String since it didn't correspond to the state of the endpoint.
- Changed WhatsAppTemplateApiResponse by making it an abstract class, serving as a base for WhatsAppAuthenticationTemplateApiResponse, WhatsAppDefaultMarketingTemplateApiResponse, WhatsAppDefaultUtilityTemplateApiResponse.
- Changed 'results' field in WhatsAppWebhookInboundContactMessage to be initialized to an empty list rather than null.
- Changed 'results' field in WhatsAppWebhookInboundMessageResult to be initialized to an empty list rather than null.
- Removed 'contact' field in WhatsAppWebhookInboundMessageData since it didn't correspond to the state of the endpoint.
- Changed WhatsAppWebhookReferral model, previously nested enum 'SourceTypeEnum' is now extracted to a separate class: WhatsAppWebhookReferralSourceType.
- Changed WhatsAppWebhookReferralMedia by making it an abstract class, serving as a base for WhatsAppWebhookReferralMediaImage, WhatsAppWebhookReferralMediaVideo.
- Documentation
- Fixed Javadoc.
- Models for Receive WhatsApp Deleted Reports webhook since it is no longer part of Infobip's product stack.
- Unused model classes
[ 4.2.0 ] - 2024-03-07
[ 4.1.2 ] - 2024-03-07
- Issue that caused the number of query parameters for 'bulkId' & 'messageId' to be squared when making getOutboundSmsMessageLogsDefinition call in SmsApi.
- Issue that caused the number of query parameters for 'sender' to be squared when making getWhatsappSendersQualityDefinition call in WhatsAppApi.
[ 4.1.1 ] - 2024-01-03
guavadependency to tagearly-accessendpoints with@Betaannotation.- Most recent Infobip WhatsApp API feature set.
- Expanded WhatsAppTemplateDataContent model with additional field supporting
WhatsAppTemplateCarouselContentthat the API might return. - Early access endpoints in WhatsAppApi are tagged with
@Betaannotation - Fixed Javadoc.
[ 4.1.0 ] - 2023-12-20
- Support for Infobip Call Routing API.
- Support for Infobip Call Link API.
- Most recent Infobip Email API feature set.
- Most recent Infobip SMS API feature set.
- Most recent Infobip MMS API feature set.
- Most recent Infobip Voice API feature set.
- Most recent Infobip WebRTC API feature set.
- Most recent Infobip Viber API feature set.
- Most recent Infobip WhatsApp API feature set.
- CPaaS-X support to more channels.
- Support for handling ApiError models:
- Removed classes and unified structures
- Removed pagination classes (
CallsPageInfo,WebRtcPageInfo) in favor of a unified class: PageInfo - Removed status-defining classes for messages by products (
EmailStatus,MmsStatus,SmsStatus) and introduced a unified class: MessageStatus - Removed price-defining classes for messages by products (
EmailPrice,MmsPrice,SmsPrice,EmailWebhookPrice) and replaced with a unified class: MessagePrice - Removed error-defining classes for query execution by different products (
EmailReportError,MmsError,SmsError) and introduced a unified class: MessageError
- Removed pagination classes (
- Fixes and changes
- Expanded ApiExceptionDetails model with additional fields supporting enriched error responses that the API might return.
- Changed
templateIdfield type from Integer to Long in EmailApi's SendEmailRequest class because of reported issue. - Updated WhatsAppCategory enumeration values based on report and reported issue.
- Updated CallsErrorCode enumeration values to reflect changes on Hangup endpoint.
- Updated ViberValidityPeriodTimeUnit enumeration values since 'DAYS' is no longer supported, use 'HOURS' instead.
- Changed 'context' field name in CallsApplicationTransferRequest to 'customData'.
- Changed 'days' field type in CallsDeliveryTimeWindow from List to Set to avoid duplicates.
- Removed 'type' field in CallsDtmfTermination since it is not supported on the API side.
- Removed 'stopOn' field in CallsSayRequest since it is not supported on the API side.
- Removed 'sipTrunkGroupId' field in CallsSipEndpoint since it is not supported on the API side.
- Removed 'notifyContentType' field in MmsAdvancedMessage since it is not supported on the API side.
- Removed 'sendingSpeedLimit' field in MmsAdvancedRequest since it is not supported on the API side.
- Fixed Viber webhook report models.
- Changed 'results' field name in ViberWebhookReportResponse to reports.
- Replaced 'ios' and 'android' fields in WebRtcPushConfigurationResponse with 'androidConfigured' and 'iosConfigured' since they didn't correspond to the state of the endpoint.
- Changed 'structure' field type in WhatsAppTemplateApiResponse from 'WhatsAppTemplateStructureApiData' and 'WhatsAppDefaultTemplateStructureApiData'.
- Changed WhatsAppTemplatePublicApiRequest by making it an abstract class, serving as a base for WhatsAppAuthenticationTemplatePublicApiRequest, WhatsAppDefaultMarketingTemplatePublicApiRequest, WhatsAppDefaultUtilityTemplatePublicApiRequest.
- Documentation
- Fixed Javadoc.
- Dependencies
- Bumped
slf4j-apiversion to2.0.9 - Bumped
jacksonversion to2.15.2 - Bumped
okhttpversion to4.12.0
- Bumped
- Unused model classes
- Deprecated old error fields in ApiExceptionDetails
[ 4.0.0 ] - 2023-03-01
🎉 NEW Major Version of infobip-api-java-client.
- Support for Infobip MMS API.
- Support for Infobip Voice API.
- Support for Infobip WebRTC API.
- Support for Infobip Viber API.
- Most recent Infobip SMS API feature set.
- Most recent Email feature set.
- Most recent WhatsApp feature set.
- Tests for the static parts of the auto-generated code. There are multiple tests phases implemented in our auto-generation pipeline. A part of the tests is now included as a library source code.
- Base URL abstraction.
- Api Key abstraction.
- Deprecation notice log if deprecated or gone endpoints are used (
slf4j-apidependency). - Snyk and Java version badges to README.
- The library now requires Java 11 or above.
- OkHttp dependency was bumped to version 4.10.0.
- From this version, an
ApiClientinstance must be constructed and configured using the Builder pattern:The additional OkHttp client configuration was removed from the library. Please check the Removed section for details.ApiClient apiClient = ApiClient.forApiKey(givenApiKey) .withBaseUrl(givenBaseUrl) .withHttpClient(givenHttpClient) .withReadTimeout(givenReadTimeoutInSeconds) .withTempDirectoryPath(givenTempDirPath) .build(); - API classes were refactored in a way that all functionalities are grouped under the same product.
For example,
SendSmsApi,ScheduledSmsApiandReceiveSmsApiclasses are replaced with a singleSmsApiclass. - API class methods that trigger an API call were rewritten using a fluent style where all required parameters
must be passed to a request builder factory method.
On the other hand, optional parameters may be passed using a separate request builder methods.
The result can be fetched using
executeorexecuteAsyncmethods. That allows us to add optional parameters without introducing a breaking change to the library. For example, in the previous version, to send a TFA pin code, we could use something like this:In the new version, the following pattern applies:TfaStartAuthenticationResponse response = tfaApi.sendTfaPinCodeOverSms(false, request);TfaStartAuthenticationResponse sendCodeResponse = tfaApi .sendTfaPinCodeOverSms(request) .ncNeeded(false) .execute(); - Jackson (version 2.14.2) serialization library is used instead of Gson.
The
JSONserialization utility now uses a preconfigured Jackson'sObjectMapper. Also, the support forInputStreamserialization was added. - All maven plugins were bumped to the most recent version. Both unneeded plugins and the obsolete configuration were removed.
- The API request and response processing was rewritten to increase maintainability and usability.
- The
ApiExceptionclass was refactored to have fluent getters and a single accessible Builder. - From this version, the error response body is deserialized and stored in
detailsproperty of theApiExceptionclass. - The
palantir-java-formatis now used instead ofgoogle-java-formatto have the formatting closer to our internal coding style. See the Spotless README for details. - Some products like Email and WhatsApp contain a few breaking changes since a new version of a few of the API endpoints was released. If you have issues when migrating the existing implementation, please check the official API documentation or submit an issue.
- Basic, IBSSO Token Header and client credentials grant type OAuth2 authentication methods.
Use API Key Header authentication method instead.
The API Key should be injected into the
ApiClientinstance through the newly introducedforApiKeyfactory method. Examples can be found in the README. Configurationutility class. Having static default configuration is error-prone and provides an unnecessary overhead. AnApiClientinstance should always be injected in the given API class.SSLsettings configuration methods from theApiClient. If you need to configure customSSLrelated settings (custom client keys, disabled CA certificate and hostname verification, etc.), configure them on theOkHttpClientinstance directly and pass the instance to theApiClientusingwithHttpClientbuilder method.- Date format customization methods from the
ApiClient. Only the default Infobip date format should be used. The date formatter instance to be used is available through theJSONclass. - Header and cookie manipulation through
ApiClientpublic interface. However, it can still be achieved using OkHttp interceptors if needed. Feel free to configure anOkHttpClientinstance with appropriate interceptors and pass the instance to theApiClientusingwithHttpClientbuilder method. - Explicit debugging option for
ApiClient. HttpLoggingInterceptor can always be included by providing a preconfigured HTTP client as described above. - Explicit gzip support for requests. The support should be provided by the client itself like explained here.
- Unused generated classes.
- Default network interceptor used for tracking upload and download progress. The functionality can be re-added by using the official OkHttp recipe.
...WithHttpInfomethods from API client classes. If an additional info like response headers or the response code is needed, theexecuteAsyncmethod should be used. The required information is injected in the callback....buildCallmethods from API client classes. The OkHttpCallabstraction can be obtained by using theexecuteAsyncmethod. We don't allow calling the API without processing the response internally anymore.
[ 3.2.0 ] - 2022-01-19
- Support for Infobip WhatsApp API
whatsapp.mdcontaining quick start guide for WhatsApp API
- Email sending API to match the latest version of the API.
- Signature changed: getEmailLogs()
- Renamed some email API models to be consistent across multiple products
- EmailError -> EmailReportError
- EmailLogsResult -> EmailLogsResponse
- Minor SMS API changes (some field became readonly)
- Improved Javadoc comments
[ 3.1.0 ] - 2021-06-16
- Support for Infobip Email API
email.mdwhich contains basic example of Email API usage
[ 3.0.1 ] - 2021-02-16
README.mdwhich now contains more details about supported authentication methods & updated examples of library usage for webhooks
- Unused model classes
- Unused utility classes
- Unused dependency
- Supported date formats as specified in Integration Best Practices
[ 3.0.0 ] - 2021-02-03
🎉 NEW Major Version of infobip-api-java-client.
In this release the infobip-api-java-client library is updated and modernized. It is auto-generated and completely different from the previous version.
- Support for async execution
CONTRIBUTING.mdwhich contains guidelines for creating GitHub issues- Support for Infobip Two-factor Authentication API
- Models, structure, examples, etc. for Infobip SMS API
- Library dependencies
README.mdwhich contains necessary data and examples for quickstart as well as some other important pieces of information on versioning, licensing, etc.
- Support for Infobip Omni API (to be included back in one of the next releases)