Skip to content

Latest commit

 

History

History
1024 lines (904 loc) · 75.9 KB

File metadata and controls

1024 lines (904 loc) · 75.9 KB

Change Log of infobip-api-java-client

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

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

  • Most recent feature set for:
  • Email:
    • JSON send API POST /email/4/messages via sendEmail(EmailRequest) returning EmailResponse (@Beta)
    • MIME send API POST /email/4/mime via sendMimeEmail(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)
  • Viber:
    • Template management endpoints (@Beta): createViberTemplate, getViberTemplates, getViberTemplate, deleteViberTemplate on /viber/1/senders/{sender}/templates
    • Template models: ViberTemplateRequest, ViberTemplateResponse, ViberTemplatesResponse, ViberTemplateResponseNoDates, ViberTemplateBody, ViberTemplateParam, ViberTemplateParamType, ViberTemplateCategory, ViberTemplateStatus, ViberTemplateLang
    • ViberOutboundTransactionalTemplateContent for outbound transactional template messages
  • Calls / Voice:
    • Dialog transfer endpoints: dialogTransferAccept and dialogTransferReject
    • 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
  • Call Routing:
    • WhatsApp routing support with CallRoutingWhatsAppCriteria and CallRoutingSimulatorWhatsAppEndpoint
  • WhatsApp:
    • GIF template header support with WhatsAppGifHeaderApiData and WhatsAppTemplateGifHeaderContent
    • In-thread authentication reply support with WhatsAppInThreadAuthenticationReply, WhatsAppInThreadAuthenticationStatus, and WhatsAppWebhookInThreadAuthenticationReplyContent
    • PIX flow type support with WhatsAppPixFlowType
    • WhatsAppRequestContactInfoButtonApiData, WhatsAppWebhookDlrContact, WhatsAppWebhookInboundContactProfile
  • Resources:
    • Polymorphic resource order interfaces: ResourcesResourceOrderApiDoc, ResourcesResourceOrderRequestApiDoc, ResourcesRequirementSpecsRequestApiDoc
    • ResourcesNumberOfferClientType
  • Numbers:
    • NumbersForwardToMarkupLanguageDetails for FORWARD_TO_MARKUP_LANGUAGE voice action subtype
  • MMS:
    • MmsInboundMessagePart for structured inbound message parts
  • RCS:
    • Context-specific price and traffic types: RcsDlrMessagePrice, RcsDlrTrafficType, RcsMoMessagePrice, RcsMoTrafficType, RcsMoEventMessagePrice, RcsConvStartedTrafficType
  • Shared:
    • CursorPageInfo shared across channel log responses

Changed

  • Email:
    • sendEmail redesigned from multipart fluent API (POST /email/3/send) to JSON EmailRequest (POST /email/4/messages); execute return type changed from EmailSendResponse to EmailResponse
    • sendMimeEmail returns EmailSendResponse (messages typed as EmailResponseDetails), not EmailResponse
    • getEmailLogs path changed from /email/1/logs to /email/4/logs
    • getEmailDeliveryReports path changed from /email/1/reports to /email/4/reports
    • getEmailLogs builder: renamed fromsender, todestination; bulkId / messageId / campaignReferenceId changed from String to List<String>; generalStatus changed from String to MessageGeneralStatus; added cursor pagination (useCursor, cursor)
    • EmailLog: renamed from/to to sender/destination; replaced applicationId/entityId with platform; added campaignReferenceId
    • EmailReport: added sender, callbackData, and campaignReferenceId; replaced applicationId/entityId with platform
    • EmailWebhookDeliveryReport: added smtp (EmailSmtpInfo); field set reshuffled
    • EmailLogsResponse extended with cursor (CursorPageInfo)
    • Replaced EmailPaging with PageInfo (totalResults type Long)
    • sendEmail response message items use shared MessageResponseDetails (with details typed as Object)
    • JavaDoc fixes
  • Viber:
    • Renamed ViberOutboundOtpTemplateContent to ViberOutboundTransactionalTemplateContent
    • Replaced ViberOutboundContentType.OTP_TEMPLATE with TEMPLATE
    • Removed ViberOtpTemplateLanguage; outbound template language is a String, template management uses ViberTemplateLang
    • Extended ViberMessageOptions with activationCheck
    • JavaDoc fixes
  • WhatsApp:
    • Identity endpoints (confirmWhatsAppIdentity, deleteWhatsappIdentity, getWhatsAppIdentity): renamed path/parameter userNumberuserIdentifier (MSISDN or BSUID)
    • sendWhatsappEvents return type changed from WhatsAppResponseEnvelopeMessageResponseMessageResponseDetails to shared MessageResponse (messages typed as MessageResponseDetails)
    • Replaced channel-specific status models with shared MessageStatus on WhatsAppSingleMessageInfo
    • Replaced WhatsAppWebhookContactName with WhatsAppWebhookInboundContactProfile; added WhatsAppWebhookDlrContact on delivery/seen reports
    • Extended WhatsAppStatus with ARCHIVED and UNKNOWN
    • Extended WhatsAppWebhookType with INTERACTIVE_IN_THREAD_AUTHENTICATION_REPLY
    • Extended template headers with GIF support
    • Extended WhatsAppInteractiveOrderBrazilPixDcPaymentDetails with flowType
    • JavaDoc fixes
  • Calls / Voice:
    • Extended CallsSipTrunkRequest with AUTHENTICATED subtype; tls moved from the base request onto specific trunk subtypes
    • Extended CallProperties with forwardedFrom
    • Extended CallsMediaStreamAudioProperties with multiChannel
    • Extended media-stream webhook properties with streamId; extended CallsMediaStreamingConfigResponse with audioEncoding
    • Extended CallsTranscription with provider
    • Extended CallsApplicationTransferRequest with propagationOptions
    • SIP trunk reset credentials now also apply to AUTHENTICATED trunks
    • JavaDoc fixes
  • Call Routing:
    • Extended criteria/endpoint types with WHATSAPP support
    • Extended route request/response with transferOnly
    • JavaDoc fixes
  • RCS:
    • Split RcsMessagePrice / RcsTrafficType into context-specific types (DLR, MO, MO event, conversation started); DLR traffic enum drops A2P_CONVERSATION, adds INTERACTIVE_SESSION
    • RcsLogsResponse.cursor now uses shared CursorPageInfo
    • JavaDoc fixes
  • MMS:
    • MmsInboundReport.message type changed from String to List<MmsInboundMessagePart>; added subject and userAgent
    • Channel logs/reports use shared MessageError and CursorPageInfo
    • JavaDoc fixes
  • SMS:
    • Channel logs/reports/responses use shared MessageStatus, MessageError, and CursorPageInfo
    • SmsResponseDetails kept as the SMS send-response item type; details remains SmsMessageResponseDetails (includes messageCount)
    • JavaDoc fixes
  • Numbers:
    • Extended getBrands / getCampaigns with optional applicationId and entityId filters
    • Marked AI review endpoints as @Beta: getAiReviewResults, submitCampaignInfoForAiReview, submitExistingCampaignForAiReview
    • Extended NumbersTenDlcCampaign with externalCampaignId
    • Extended NumbersCampaignRegistrar and NumbersNetwork with DISH, CHARTER_SPECTRUM, C_SPIRE, GOOGLE_FI, and TRACFONE
    • Extended voice action details with FORWARD_TO_MARKUP_LANGUAGE support via NumbersForwardToMarkupLanguageDetails
    • JavaDoc fixes
  • Resources:
    • Resource order/requirement models implement new polymorphic interfaces; number order/specs gain clientType
    • Extended enums with PREFILLED_DOCUMENT, USER_ACTION_REQUIRED, IN_PROGRESS, and CANCEL_REQUESTED
    • JavaDoc fixes
  • MessagesApi:
    • Extended MessagesApiMessageOptions with deliveryTimeWindow field support
    • JavaDoc fixes
  • WebRtc:
    • Removed applicationId field from WebRtcPushConfigurationRequest and WebRtcPushConfigurationResponse
    • JavaDoc fixes
  • Number Lookup:
    • Updated JavaDoc for number clipping behaviour on requests longer than 256 characters
  • Flow:
    • Extended getFlowParticipantsAddedReport with optional applicationId and entityId query parameters
  • Shared consolidations:
    • SmsCursorPageInfo, MmsCursorPageInfo, RcsCursorPageInfo, ViberCursorPageInfoCursorPageInfo
    • SmsMessageError, MmsMessageError, ViberMessageErrorMessageError (groupName changed from MessageErrorGroup to String)
    • SmsMessageStatus, WhatsAppMessageStatus, WhatsAppSingleMessageStatus, CallsSingleMessageStatusMessageStatus
    • Expanded reuse of existing MessageResponseDetails for Email and WhatsApp send responses
  • General:
    • Updated tests

Removed

  • 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, and MessageStatus
  • Removed EmailPaging in favor of PageInfo
  • Removed MessageErrorGroup in favor of String-typed MessageError.groupName
  • Removed ViberOutboundOtpTemplateContent and ViberOtpTemplateLanguage (replaced by transactional template models)
  • Removed WhatsAppMessageStatus, WhatsAppMessageGeneralStatus, WhatsAppSingleMessageStatus, WhatsAppWebhookContactName, WhatsAppMessageResponseMessageResponseDetails, and WhatsAppResponseEnvelopeMessageResponseMessageResponseDetails
  • Removed CallsSingleMessageStatus in favor of shared MessageStatus
  • Removed RcsMessagePrice and RcsTrafficType (replaced by context-specific types)
  • Removed TTY play content models CallsPlayTty and CallsPlayTtyOptions
  • 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

Added

[ 6.4.1 ] - 2026-05-07

Changed

  • Numbers:
    • Extended NumbersBrandRegistrationStatusPublic with PENDING_APPEAL status support
    • Extended NumbersCampaignRegistrar with LIBERTY registrar support
    • Replaced UPDATE_REQUESTED_BY_CARRIERS with REJECTED_EXTERNALLY in NumbersCampaignStage enum
    • Extended NumbersCampaignType with RCS_SENDER_LAUNCH type support
    • Extended NumbersExternalTenDlcCampaign with policy field support
    • Extended NumbersNetwork with LIBERTY network support
    • Extended NumbersTenDlcCampaign with policy field support
    • Extended NumbersTenDlcUseCase with SWEEPSTAKE use case support

Fixed

  • Fixed getCampaignNetworkStatuses response type to return a list instead of a single object.

[ 6.4.0 ] - 2026-03-31

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

  • WhatsApp:
    • Added Media Carousel message support with WhatsAppInteractiveMediaCarouselMessage, WhatsAppMediaCarouselCard, WhatsAppImageMediaCarouselCardHeader, WhatsAppVideoMediaCarouselCardHeader models
    • Added Voice button message support with WhatsAppInteractiveVoiceButtonMessage and WhatsAppInteractiveVoiceButtonContent models
    • Added calling permission support with WhatsAppCallingPermissionAction, WhatsAppCallingPermissionActionLimit, WhatsAppCallingPermissionResponse and WhatsAppInteractiveCallPermissionRequestMessage models
    • Added outbound event support (typing indicator) with WhatsAppEvent, WhatsAppEventRequest, WhatsAppEventOptions, WhatsAppOutboundEventTypingIndicatorContent models
    • Added Meta conversion tracking support with WhatsAppMetaConversionModel, WhatsAppMetaConversionType, WhatsAppWABAConversionEventRequest, WhatsAppConversionDetails models
    • Added marketing update notification support with WhatsAppWebhookMarketingUpdateNotification and WhatsAppWebhookMarketingUpdateNotificationResponse models
    • Added message scheduling support with WhatsAppRequestSchedulingSettings model
    • Added WhatsAppTemplateVoiceCallButtonContent model for voice call template button support
    • Added WhatsAppMessageStatus, WhatsAppMessageGeneralStatus, WhatsAppSenderPublicKeyResponse, WhatsAppShareWabaRequest, WhatsAppToDestination models
    • Extended WhatsAppTemplateButtonContent with voice call button type support
    • Extended WhatsAppPayment with additional fields
    • Extended WhatsAppTemplateApiResponse and WhatsAppVoiceCallButtonApiData with new fields
    • JavaDoc fixes
  • RCS:
    • Removed RcsPlatformInfo class (see Removed section)
    • Added conversation started event support with RcsConversationStartedEvent, RcsConversationStartedEvents, RcsConversationStartedInfo, RcsConversationStartedEventContent, RcsConversationInfo models
    • Added RcsConversationType, RcsConversationStartedEventType, RcsTrafficType, RcsMessagePrice, RcsMessageInteractionType, RcsEventInteractionType models
    • Updated RcsWebhookDeliveryReport model
    • JavaDoc fixes
  • Voice:
    • Renamed CallsSipTrunkRegisteredResetPasswordResponse to CallsSipTrunkResetPasswordResponse to better reflect the return type of the reset password endpoint
    • Removed CallsPublicDialogRecording class (see Removed section)
    • Added CNAM support with CallsCnam, CallsCnamDelivery, CallsCnamDeliveryStatus, CallsCnamStorage, CallsCnamStorageStatus, CallsPublicCnamStatus models
    • Added emergency address support with CallsEmergencyAddress, CallsEmergencyAddressStatus, CallsValidateAddressResponse models
    • Added TTY play content support with CallsPlayTty, CallsPlayTtyOptions, CallsTtyPlayContent models
    • Added CallsAddress, CallsDirection models
    • Extended CallsLanguage and CallsSynthesisVoice with new language and voice options
    • Extended CallsDialogPlayRequest with new fields
    • Extended CallsUrlPlayContent with new fields
    • JavaDoc fixes
  • MessagesApi:
    • Added outbound seen event support with MessagesApiOutboundSeenEvent and MessagesApiOutboundSeenEventChannel models
    • Added outbound typing event channel support with MessagesApiOutboundTypingStartedEventChannel and MessagesApiOutboundTypingStoppedEventChannel models
    • Added MessagesApiInboundTypingStartedChannel model
    • Extended MessagesApiOutboundEventType with new event type values
    • Updated MessagesApiInboundDlrChannel, MessagesApiInboundTypingStartedEvent, MessagesApiInboundTypingStoppedEvent, MessagesApiOutboundTypingStartedEvent, MessagesApiOutboundTypingStoppedEvent models
    • Extended MessagesApiOutboundEvent with new fields
    • JavaDoc fixes
  • WebRtc:
    • Added machine detection support with WebRtcMachineDetection and WebRtcMachineDetectionResult models
    • Extended WebRtcPhoneCallDetails and WebRtcPhoneDestination with new fields
    • Updated WebRtcHangupSource enum
    • JavaDoc fixes
  • Viber:
    • Extended ViberOtpTemplateLanguage with new language options
    • Extended ViberOutboundOtpTemplateContent with new fields
    • JavaDoc fixes
  • General:
    • Updated tests

Removed

  • Removed RcsPlatformInfo class — its applicationId and entityId fields are now carried by the existing Platform class, which is used consistently across the SDK for platform context
  • Removed CallsPublicDialogRecording class — unified with CallsDialogRecordingResponse, which represents the same dialog recording data and is now the single type returned from dialog recording endpoints

[ 6.3.0 ] - 2026-02-17

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

  • Call Routing:
    • Extended CallRoutingWebSocketEndpoint with customData field
    • Extended CallRoutingApi with new endpoints: deleteByCorrelationId, recordingFileDownload, searchCallRoutingRecording, updateRouteOrder, updateRouteStatus, simulateRoute
    • Extended getCallRoutes method with nameContains query parameter support
    • Extended CallRoutingCriteriaType with APPLICATION type support
    • Extended CallRoutingCriteria with CallRoutingApplicationCriteria subtype support
    • Removed duplicate customData field from CallRoutingInfobipApplication and CallRoutingCallsApplication models (field is already inherited from parent class CallRoutingApplication)
    • JavaDoc fixes
  • Voice:
    • Extended VoiceApi with new IVR upload endpoints: ivrUploadAudioFile and ivrUploadGetFiles
    • Extended CallsSearchResponse, CallsUpdateScenarioRequest, CallsUpdateScenarioResponse models with record field support
    • Extended CallsProviderTrunkType with OPENAI_REALTIME type support
    • Extended CallsProvider with CallsOpenAiProvider subtype support
    • Extended CallsRecordingFile model with expirationTime field support
    • Renamed customData field to multichannelMappingData in CallsRecordingFile model
    • Extended CallsVoiceData with direction and callRecordingFileId field support
    • Extended CallVoice with new voices (JENNIFER, DAVID)
    • Replaced platform field (type: Platform) with applicationId field (type: String) in CallRecording and CallsConferenceRecording models
    • Changed results field type from List<CallRecording> to List<CallsPublicRecording> in CallRecordingPage model
    • Changed results field type from List<CallsConferenceRecording> to List<CallsPublicConferenceRecording> in CallsConferenceRecordingPage model
    • Changed composedFiles field type from List<CallsRecordingFile> to List<CallsPublicRecordingFile> and callRecordings field type from List<CallRecording> to List<CallsPublicRecording> in CallsConferenceRecordingLog, CallsDialogRecordingLog, and CallsDialogRecordingResponse models
    • Removed stopOn and customData fields from CallsSayRequest model
    • Removed record field from CallsIvrMessage model
    • Removed TRANSFERRING state from CallsDialogState enum
    • Removed JOHANNESBURG_1 enum value from CallsRecordingLocation to reflect the current state of the API
    • JavaDoc fixes
  • Viber:
    • Fixed ViberCarouselCard buttons now are null instead of being initialized as a new ArrayList to reflect field change from required to optional
    • JavaDoc fixes
  • MessagesApi:
    • Extended MessagesApiMessageContent with senderDisplayInfo field support
    • Extended MessagesApiMessageOptions with trafficType, sessionRate and primaryDevice field support
    • Extended MessagesApiWebhookEventContentType with URL and REACTION event type support
    • JavaDoc fixes
  • Tfa:
    • Extended TfaStartAuthenticationRequest and TfaResendPinRequest with trackDelivery field support
    • Extended TfaStartAuthenticationResponse with externalMessageId field support
    • JavaDoc fixes
  • WebRtc:
    • Extended WebRtcParticipant with startTime and type field support
    • Extended WebRtcParticipantsDetails and WebRtcPhoneCallDetails with dialogId and hangupSource field support
    • Renamed text field to message in CallsDialogBroadcastWebrtcTextRequest model due to previous endpoint /calls/1/dialogs/{dialogId}/broadcast-webrtc-text being sunset and migrated to /calls/1/dialogs/{dialogId}/send-message
    • Renamed text field to message in CallsConferenceBroadcastWebrtcTextRequest model due to previous endpoint /calls/1/conferences/{conferenceId}/broadcast-webrtc-text being sunset and migrated to /calls/1/conferences/{conferenceId}/send-message
    • Removed CALLING, RINGING, PRE_ESTABLISHED, ESTABLISHED, DISCONNECTED, JOINING, JOINED, LEFT enum values from WebRtcState
    • JavaDoc fixes
  • WhatsApp:
    • Extended WhatsAppInteractiveOrderPaymentStatus with UPI_LINK status support
    • Extended WhatsAppInteractiveAllowedOrderPaymentDetails with UPI_LINK type support
    • Removed LIMIT_1K value from WhatsAppSenderLimit enum
    • JavaDoc fixes
  • General:
    • Updated tests

[ 6.2.0 ] - 2025-10-27

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

  • Email:
    • For getIpPool method response type changed from EmailIpPoolResponse to EmailIpPoolDetailResponse
    • Removed returnPathAddress field from EmailAddDomainRequest, EmailDomainResponse model
    • /email/1/domains/{domainName}/return-path - This endpoint has been is no longer supported in the SDK.
    • Fixed bulks field in EmailBulkScheduleResponse and EmailBulkStatusResponse, now initialized as an empty list due to field change from optional to required
    • Extended EmailDomainResponse model with blocklistConfigrationLevel field
    • Extended EmailIpDetailResponse, EmailIpResponse model with ipAddresses field
    • Fixed messages field in EmailSendResponse, now initialized as an empty list due to field change from optional to required
    • Fixed reason field type in EmailValidationResponse from String to EmailValidationReason
    • Fixed risk field type in EmailValidationResponse from String to EmailValidationApiRisk
    • Extended EmailWebhookTrackingPayload model with eventId and sender field support
    • JavaDoc fixes
  • MessagesApi:
    • Extended MessagesApiDefaultMessageRequestOptions with messageOrdering field support
    • Extended MessagesApiMessageBody with FORM, ORDER_REQUEST, ORDER_STATUS and TIME_PICKER body type support
    • Extended MessagesApiMessageButton with DIAL_PHONE and SHOW_LOCATION button type support
    • Extended MessagesApiMessageOpenUrlButton model with postbackData and openIn field support
    • Extended MessagesApiMessageOptions model with transliteration and correlationData field support
    • Extended MessagesApiOutboundTemplateChannel model with VIBER_BM type support
    • Extended MessagesApiWebhookEventContent model with FORM_RESPONSE and PAYMENT_RESPONSE event type support
    • Extended MessagesApiWebhookEvent with messageCount and metadata field support
    • JavaDoc fixes
  • Mms:
    • Cursor-based pagination support in getOutboundMmsMessageLogs function with useCursor and cursor parameters.
      • Extended MmsLogsResponse model with cursor field
    • JavaDoc fixes
  • Moments:
    • Fixed FlowExceptionResponse model with adding missing fields: type, title, status, detail, instance
    • JavaDoc fixes
  • Sms:
    • Unified SmsWebhookInboundReport with the existing SmsInboundMessage model
    • Unified SmsWebhookInboundReportResponse with the existing SmsInboundMessageResult model
    • JavaDoc fixes
  • Tfa:
    • Extended TfaCreateEmailMessageRequest, TfaMessage, TfaUpdateEmailMessageRequest and TfaEmailMessage with landingPageId field support
    • Extended TfaStartEmailAuthenticationRequest with landingPagePlaceholders field support
    • JavaDoc fixes
  • Viber:
    • Cursor-based pagination support in getOutboundViberMessageLogs function with useCursor and cursor parameters.
    • Extended ViberLogsResponse model with cursor field
    • Extended ViberMessageDeliveryReporting with receiveTriggeredFailoverReports field support
    • Extended ViberOutboundFileContent and ViberOutboundFileContentType with a CAROUSEL support
    • JavaDoc fixes
  • Voice:
    • Class replaced in updateConferenceCall method from CallsUpdateRequest to CallsUpdateCallRequest to better reflect its specific usage
    • Extended Call, CalLog, CallRequest models with new field: externalId
    • Extended CallEndpoint, CallRoutingEndpoint models with WHATSAPP type support
    • Extended CallRoutingDestination model with APPLICATION type support
    • Extended CallRecordingRequest model with new field: channels
    • Extended CallRoutingPhoneEndpoint model with new field: ringbackGeneration
    • Extended CallRoutingRouteResponse model with new fields: status and order
    • Extended CallRoutingSipEndpoint model with new field: from
    • Extended CallsAddExistingCallRequest model with new fields: role and customData
    • Extended CallsAddNewCallRequest with role support
    • Extended CallsMachineDetection model with machineDetection support
    • Extended CallsDialogState with TRANSFERRING state support
    • Removed UNKOWN enum value from CallsDetectionResult enum
    • Removed creationMethod field from CallsFile model
    • Extended CallsLanguage with multiple new language options
    • Extended CallsMachineDetectionProperties with confidenceRating field support
    • Extended CallsMachineDetectionRequest with detectionTime field support
    • Extended CallsParticipant with role field support
    • Extended CallsSearchResponse, CallsUpdateScenarioRequest, CallsUpdateScenarioResponse model with new fields: notifyUrl and notifyContentType
    • Fixed CallsSpeechCaptureRequest keyPhrases now are null instead of being initialized as a new LinkedHashSet to reflect field change from required to optional
    • Extended CallsTranscription model with new fields: customDictionary and advancedFormatting
    • Extended CallsUpdateRequest, CallsVideoMediaProperties model with new blind field support
    • Extended CallsVoiceData with new field support: answeredBy
    • Extended CallsWebsocketEndpointConfigRequest.SampleRateEnum with new rate values: 24000 and 32000
    • Extended CallVoice with new voices
    • JavaDoc fixes
  • Number Masking:
    • Extended NumberMaskingStatusRequest with machineDetectionResult field support
    • JavaDoc fixes
  • WebRtc:
    • Removed capabilites field from WebRtcTokenRequestModel to reflect the current behaviour of the endpoint
    • Extended WebRtcParticipant with state and direction field support
    • JavaDoc fixes
  • WhatsApp:
    • Extended WhatsAppWebhookType with new types: INTERACTIVE_CALL_PERMISSION_REPLY and REACTION
    • Extended WhatsAppVideoMessage, WhatsAppAudioMessage, WhatsAppContactsMessage, WhatsAppDocumentMessage, WhatsAppImageMessage, WhatsAppInteractiveButtonsMessage, WhatsAppInteractiveFlowMessage, WhatsAppInteractiveListMessage, WhatsAppInteractiveLocationRequestMessage, WhatsAppInteractiveMultiProductMessage, WhatsAppInteractiveOrderDetailsMessage, WhatsAppTextMessage, WhatsAppInteractiveOrderStatusMessage, WhatsAppStickerMessage, WhatsAppMessage, WhatsAppLocationMessage, WhatsAppInteractiveProductMessage, WhatsAppInteractiveUrlButtonMessage models with context field support
    • Removed allowCategoryChange field from WhatsAppTemplatePublicApiRequest model to reflect the current behaviour of the endpoint
    • Extended WhatsAppTemplateEditPublicApiRequest, WhatsAppDefaultUtilityTemplateApiResponse models with subCategory field support
    • Extended WhatsAppTemplateDataContent model with orderStatus field support
    • Extended WhatsAppSenderLimit model with additional value (LIMIT_2K)
    • Fixed callbackData field type in WhatsAppPayment model from List<String> to Object reflecting the current behaviour of the endpoint
    • Extended WhatsAppLanguage with multiple new language options
    • Extended WhatsAppInteractiveUrlButtonHeaderContent with DOCUMENT, IMAGEandVIDEO` type support
    • Extended WhatsAppInteractiveOrderUPIPGRazorpayPaymentDetails with callbackData field support
    • Extended WhatsAppInteractiveOrderPaymentStatus with BRAZIL_BOLETO status support
    • Extended WhatsAppInteractiveAllowedOrderPaymentDetails with BRAZIL_BOLETO and BRAZIL_PAYMENTS type support
    • Extended WhatsAppDefaultTemplateStructureApiData with callPermissionRequest field support
    • Extended WhatsAppButtonApiData with ORDER_DETAILS and VOICE_CALL type support
    • JavaDoc fixes
  • General:
    • Updated tests

Removed

  • Unused EmailReturnPathAddressRequest, CallsCreationMethod, WebRtcCapabilities, WebhookMessageCount and WebRtcRecording classes are removed

[ 6.1.1 ] - 2025-06-20

Added

  • Most recent feature set for Infobip SMS API.
    • Cursor-based pagination support in getOutboundSmsMessageLogs function with useCursor and cursor parameters.

Changed

  • SmsLogsResponse now includes cursor field to support cursor-based pagination.
  • Updated Javadoc documentation for SmsMessageDeliveryReporting.

[ 6.1.0 ] - 2025-04-09

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

  • 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.buttons field type from List<WhatsAppTemplateButtonContent>List<WhatsAppCardAllowedTemplateButtonContent>.
  • Updated WhatsAppTemplatePublicApiRequest.structure field type from WhatAppTemplateStructureApiDataObject.
  • Updated CallsUpdateScenarioResponse.lastUsageDate field type from StringLocalDate.
  • Updated CallsSearchResponse.lastUsageDate field type from StringLocalDate.
  • Removed EmailWebhookTrackReport and EmailWebhookTrackResponse in favor of a unified class: EmailWebhookTrackingPayload.
  • Updated FormsRequest.formType field type from FormTypeString.
  • Removed CallSipTrunkLocation enum class, now processed as a String.
  • Updated WhatsAppTemplateEditPublicApiRequest category field: CategoryEnum inner enum replaced by the existing WhatsAppCategory class enum value.
  • Updated WhatsAppTemplatePublicApiRequest category field: CategoryEnum inner enum replaced by the existing WhatsAppCategory class enum value.
  • Replaced WhatsAppWebhookAddress type enum with String to support more options.
  • Fixed WhatsAppWebhookContact birthday field type: changed from OffsetDateTime to LocalDate.
  • Removed WhatsAppWebhookPaymentNotification CurrencyEnum inner enum class, replaced by the existing WhatsAppPaymentStatus class.
  • Removed WhatsAppTemplateAllowedOrderPaymentDetails class, replaced by the unified WhatsAppInteractiveAllowedOrderPaymentDetails class.
  • Fixed Javadoc.

Removed

  • Removed deviceDetails and networkId fields MessagesApiDeliveryResult.

[ 6.0.0 ] - 2025-02-17

🎉 NEW Major Version of infobip-api-java-client.

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

  • Most recent feature set for:
  • Added new Calls error code type: MACHINE_DETECTED.
  • Added support for CallsProviderSipTrunkUpdateRequest.
  • Created RawJsonDeserializer to handle raw JSON deserialization.

Changed

  • General

    • Unified MessageResponse, MessageResponseDetails, MessageGroupError, SendingSpeedLimit and SpeedLimitTimeUnit.
    • Updated MessagesApiMessageGeneralStatus – Adjustments due to API updates.
    • Updated DeprecationChecker logging level from WARNING to INFO when the endpoint is only deprecated without a defined sunset date.
  • Mms API

    • Introduced the new MmsMessage class to replace MmsAdvancedMessage, reflecting the latest state of the API for MMS messaging. Updated request classes by replacing MmsAdvancedRequest with the new MmsRequest class, reflecting the latest state of the API.
    • Updated sending message function: use sendMmsMessages instead of sendMmsMessage.
  • 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.script field type from List<CallsScriptInner>String.
      • Updated CallsSearchResponse.script and else fields type from List<Object>String.
      • Updated CallsUpdateScenarioResponse.script field type from ObjectString.
    • Updated CallsGetVoicesResponses.voices field type from List<CallsVoice>List<CallsSynthesisVoice>.
    • Updated CallsSearchResponse.lastUsageDate field type from OffsetDateTimeString.
    • Updated CallsSpeechCaptureRequest.language field type from CallsLanguageCallTranscriptionLanguage.
    • Updated CallsTranscription.language field type from CallsLanguageCallTranscriptionLanguage.
    • Updated CallsUpdateScenarioResponse.lastUsageDate field type from OffsetDateTimeString.
    • Removed CallsVoice – Certain fields removed due to API updates.
    • Removed CallRoutingUrlSecurityConfigType – Unified into SecurityConfigType enumeration class.
    • Removed CallsUrlSecurityConfigType – Unified into SecurityConfigType enumeration 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 ConferencePlayFileRequest from CallsPlayRequest to CallsConferencePlayRequest.
  • Email API

    • Updated EmailSuppressionInfo.createdDate field type from StringOffsetDateTime.
    • Removed EmailSingleMessageStatus – Now integrated into the unified MessageStatus class.
    • Updated EmailAddDeleteSuppressionType – Pending further clarification.
  • Messaging API

    • Removed MessagesApiRequestOptions – Now replaced by MessagesApiDefaultMessageRequestOptions class.
    • Removed MessagesApiSpeedLimitTimeUnit – Now replaced by the unified SpeedLimitTimeUnit class.
  • Viber API

    • Removed ViberMessageRequestSchedulingSettings – Now use ViberRequestSchedulingSettings.
    • Updated ViberInboundContent.typeEnumViberInboundContentType.
    • Updated ViberOutboundContent.typeEnumViberOutboundContentType.
    • Removed ViberMessageStatus – Now unified into MessageStatus.
    • Removed ViberSpeedLimitTimeUnit – Now unified into SpeedLimitTimeUnit.
    • Removed ViberWebhookInboundReport – Now use ViberInboundMessageViberInboundContent.
  • WhatsApp API

    • Removed unsupported enumeration values from WhatsAppWebhookType.
    • Updated WhatsAppWebhookReferralMediaVideo, WhatsAppWebhookReferralMediaImage, WhatsAppWebhookMediaVideo – Introduced new type field, no longer extending WhatsappWebhookReferalMedia.
    • Refactored WhatsAppWebhookReferralMedia – Changed from an abstract class to a normal class.
    • Removed context field from various WhatsAppWebhook message types:
      • WhatsAppWebhookQuickReplyContent
      • WhatsAppWebhookListReplyContent
      • WhatsAppWebhookInboundAudioMessage
      • WhatsAppWebhookButtonReplyContent
      • WhatsAppWebhookInboundVoiceMessage
      • WhatsAppWebhookInboundVideoMessage
      • WhatsAppWebhookInboundTextMessage
      • WhatsAppWebhookInboundStickerMessage
      • WhatsAppWebhookInboundLocationMessage
      • WhatsAppWebhookInboundImageMessage
      • WhatsAppWebhookInboundDocumentMessage
      • WhatsAppWebhookInboundContactMessage
    • Removed integrationType, pairedMessageId, and callbackData fields from WhatsAppWebhookInboundMessageData.
    • Removed INFECTED_CONTENT, INTERACTIVE_EXTENSION_REPLY, UNSUPPORTED subtypes from WhatsAppWebhookInboundMessage abstract class.
    • Replaced WhatsAppValidityPeriodTimeUnit class with ValidityPeriodTimeUnit.
    • Removed no longer supported 50 business-initiated conversations messaging tear limit for WhatsApp senders.
    • Updated WhatsAppPhoneNumberRequest.typeEnumWhatsAppPhoneNumberTypeEnum.
    • Updated WhatsAppOtpRequest.typeEnumWhatsAppNumberType.
    • Removed structure field from WhatsAppDefaultUtilityTemplatePublicApiRequest.
    • Removed structure field from WhatsAppTemplatePublicApiRequest.
    • Removed groupId field from WhatsAppContext.
    • Refactored WhatsAppDefaultTemplateStructureApiData – Now an implementation of WhatsAppTemplateStructureApiData.
    • Refactored WhatsAppAuthenticationTemplateStructureApiData – Now an implementation of WhatsAppTemplateStructureApiData.
  • WebRTC API

    • Updated WebRtcValidityWindow.acceptableDays typeEnum → DeliveryDay.
    • Removed applicationId field from WebRtcTokenRequestModel.
    • Updated WebRtcValidityWindow.LayoutsEnumWebRtcLayout.
    • Updated WebRtcLocalization.typeEnumWebRtcLocalizationType.
    • Updated WebRtcWebRtcDestinationWebRtcCallsDestination.
    • Removed fcmServerKey field from WebRtcAndroidPushNotificationConfig.

Removed:

  • Deprecated functions for sending Viber Image, File, and Text messages have been removed. Use ViberApi.sendViberMessages to send messages.
  • All the Calls IVR script related class and from now on all the scripts are processed as String:
    • CallsCallApi
    • CallsCapture
    • CallsCollect
    • CallsDial
    • CallsDialToMany
    • CallsDialToWebRTC
    • CallsDialToConversations
    • CallsForEach
    • CallsGoTo
    • CallsHangup
    • CallsIfThenElse
    • CallsMachineDetection
    • CallsPause
    • CallsPlay
    • CallsPlayFromRecording
    • CallsRecord
    • CallsRepeatUntil
    • CallsRepeatWhile
    • CallsSay
    • CallsSendSms
    • CallsSetVariable
    • CallsSwitchCase
    • CallsWhileDo

These changes align the SDK with the current API specification, ensuring consistency and reliability in future updates.

[ 5.1.0 ] - 2024-12-16

Added

[ 5.0.0 ] - 2024-12-06

🎉 NEW Major Version of infobip-api-java-client.

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

  • 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.
    • Infobip Email API
    • Infobip Voice API

Changed

  • Fixes and changes
    • Introduced the new SmsMessage class to replace SmsTextualMessage and SmsBinaryMessage, providing a unified structure for SMS messaging.
    • Added a content field within SmsMessage to 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 SmsAdvancedTextualRequest and SmsAdvancedBinaryRequest with the new SmsRequest class.
    • Consolidated sending functions: use sendSmsMessages instead of the sendSmsMessage and sendBinarySmsMessage functions.
    • 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

[ 4.4.0 ] - 2024-11-19

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

[ 4.3.2 ] - 2024-08-22

Added

  • Added mock tests to verify the correctness of request payloads and response handling.
  • Added awaitility and wiremock test dependencies.
  • snyk.yml workflow, which serves the purpose of identifying and addressing dependency vulnerabilities in the project.
  • sonar.yml workflow to analyze the source code, enhancing code quality and maintainability.
  • git-build-hook-maven-plugin plugin into the project, providing support for Git hooks.
  • pre-commit.sh hook, which automatically executes mvn spotless:apply prior to each commit, ensuring code formatting consistency.

Changed

  • Bumped jackson version to 2.17.0
  • Bumped slf4j-api version to 2.0.16
  • Bumped junit-jupiter version to 5.11.0
  • Bumped guava version to 33.3.0-jre
  • Bumped maven-gpg-plugin version to 3.2.5
  • Bumped spotless-maven-plugin version to 2.43.0

[ 4.3.1 ] - 2024-06-05

Added

Changed

[ 4.3.0 ] - 2024-03-19

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

  • 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
  • Fixes and changes
  • Documentation
    • Fixed Javadoc.

Removed

  • 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

⚠️ IMPORTANT NOTE: This release contains changes that are not compatible with Infobip HTTP API. Therefore, it is considered broken. We strongly advise to avoid using it. We are working on a new version. In the meantime, please use 4.1.2.

[ 4.1.2 ] - 2024-03-07

Fixed

  • 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

Added

  • guava dependency to tag early-access endpoints with @Beta annotation.
  • Most recent Infobip WhatsApp API feature set.

Changed

  • Expanded WhatsAppTemplateDataContent model with additional field supporting WhatsAppTemplateCarouselContent that the API might return.
  • Early access endpoints in WhatsAppApi are tagged with @Beta annotation
  • Fixed Javadoc.

[ 4.1.0 ] - 2023-12-20

⚠️ IMPORTANT NOTE: This release contains compile time breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

Changed

  • 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
  • Fixes and changes
    • Expanded ApiExceptionDetails model with additional fields supporting enriched error responses that the API might return.
    • Changed templateId field 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-api version to 2.0.9
    • Bumped jackson version to 2.15.2
    • Bumped okhttp version to 4.12.0

Removed

  • Unused model classes

Deprecated

[ 4.0.0 ] - 2023-03-01

🎉 NEW Major Version of infobip-api-java-client.

⚠️ IMPORTANT NOTE: This release contains breaking changes. All changes, including breaking changes, are addressed and explained in the list bellow. If you find out that something was not addressed properly, please submit an issue.

Added

  • 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-api dependency).
  • Snyk and Java version badges to README.

Changed

  • The library now requires Java 11 or above.
  • OkHttp dependency was bumped to version 4.10.0.
  • From this version, an ApiClient instance must be constructed and configured using the Builder pattern:
        ApiClient apiClient = ApiClient.forApiKey(givenApiKey)
              .withBaseUrl(givenBaseUrl)
              .withHttpClient(givenHttpClient)
              .withReadTimeout(givenReadTimeoutInSeconds)
              .withTempDirectoryPath(givenTempDirPath)
              .build();
    
    The additional OkHttp client configuration was removed from the library. Please check the Removed section for details.
  • API classes were refactored in a way that all functionalities are grouped under the same product. For example, SendSmsApi, ScheduledSmsApi and ReceiveSmsApi classes are replaced with a single SmsApi class.
  • 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 execute or executeAsync methods. 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:
        TfaStartAuthenticationResponse response = tfaApi.sendTfaPinCodeOverSms(false, request);
    
    In the new version, the following pattern applies:
        TfaStartAuthenticationResponse sendCodeResponse = tfaApi
              .sendTfaPinCodeOverSms(request)
              .ncNeeded(false)
              .execute();
    
  • Jackson (version 2.14.2) serialization library is used instead of Gson. The JSON serialization utility now uses a preconfigured Jackson's ObjectMapper. Also, the support for InputStream serialization 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 ApiException class was refactored to have fluent getters and a single accessible Builder.
  • From this version, the error response body is deserialized and stored in details property of the ApiException class.
  • The palantir-java-format is now used instead of google-java-format to 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.

Removed

  • 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 ApiClient instance through the newly introduced forApiKey factory method. Examples can be found in the README.
  • Configuration utility class. Having static default configuration is error-prone and provides an unnecessary overhead. An ApiClient instance should always be injected in the given API class.
  • SSL settings configuration methods from the ApiClient. If you need to configure custom SSL related settings (custom client keys, disabled CA certificate and hostname verification, etc.), configure them on the OkHttpClient instance directly and pass the instance to the ApiClient using withHttpClient builder 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 the JSON class.
  • Header and cookie manipulation through ApiClient public interface. However, it can still be achieved using OkHttp interceptors if needed. Feel free to configure an OkHttpClient instance with appropriate interceptors and pass the instance to the ApiClient using withHttpClient builder 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.
  • ...WithHttpInfo methods from API client classes. If an additional info like response headers or the response code is needed, the executeAsync method should be used. The required information is injected in the callback.
  • ...buildCall methods from API client classes. The OkHttp Call abstraction can be obtained by using the executeAsync method. We don't allow calling the API without processing the response internally anymore.

[ 3.2.0 ] - 2022-01-19

Added

Changed

  • 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

Fixed

  • Minor SMS API changes (some field became readonly)
  • Improved Javadoc comments

[ 3.1.0 ] - 2021-06-16

Added

  • Support for Infobip Email API
  • email.md which contains basic example of Email API usage

[ 3.0.1 ] - 2021-02-16

Changed

  • README.md which now contains more details about supported authentication methods & updated examples of library usage for webhooks

Removed

  • Unused model classes
  • Unused utility classes
  • Unused dependency

Fixed

[ 3.0.0 ] - 2021-02-03

🎉 NEW Major Version of infobip-api-java-client.

⚠️ IMPORTANT NOTE: This release contains breaking changes!

In this release the infobip-api-java-client library is updated and modernized. It is auto-generated and completely different from the previous version.

Added

Changed

  • Models, structure, examples, etc. for Infobip SMS API
  • Library dependencies
  • README.md which contains necessary data and examples for quickstart as well as some other important pieces of information on versioning, licensing, etc.

Removed

  • Support for Infobip Omni API (to be included back in one of the next releases)