Skip to content

Releases: didww/didww-api-3-java-sdk

4.1.0

05 May 07:38
af2fbb2

Choose a tag to compare

v4.1.0 — 2026-05-05

API version: 2026-04-16

This release adds SIP registration support, automatic field-dependency
cascade, and credential redaction in default debug output. All changes
are additive — no breaking changes since v4.0.0.

✨ Features

SIP registration on voice in trunks (API 2026-04-16)

Five new writable attributes plus two server-generated read-only
credentials are now exposed on com.didww.sdk.resource.configuration.SipConfiguration:

  • Writable: enabledSipRegistration, useDidInRuri, cnamLookup,
    networkProtocolPriority, diversionInjectMode
  • Read-only (server-generated when sip_registration is on):
    incomingAuthUsername, incomingAuthPassword

Read-only credentials are stripped from POST/PATCH bodies automatically
via Jackson's @JsonProperty(access = WRITE_ONLY); the API rejects
writes to them with 400 Param not allowed.

Auto-cascade for sip_registration field dependencies

The server enforces multi-field invariants on the sip_registration
toggle. The SDK now keeps the dependent fields aligned automatically so
caller code never has to enumerate the rule set:

When you set The SDK cascades
setEnabledSipRegistration(true) host: null, port: null (always emitted on the wire, even on a fresh config)
setEnabledSipRegistration(false) useDidInRuri = false
setHost(<non-null>) enabledSipRegistration = false, useDidInRuri = false

The host/port nullification fires unconditionally so a PATCH
against an existing trunk with persisted host/port is told to clear
them — a conditional cascade silently dropped the fields and the server
rejected the merged request with 422. (Fixes the re-enable PATCH flow.)

@JsonInclude(JsonInclude.Include.ALWAYS) is set on host / port
so Jackson emits explicit nulls; deserialization writes directly into
the private fields and bypasses the cascade.

Credential redaction in default debug output

toString() is overridden on SipConfiguration and
CredentialsAndIpAuthenticationMethod to replace credential field
values with [FILTERED] before they reach System.out.println,
logger output, debugger inspection, or unhandled exception traces.
The wire payload is unaffected — Jackson continues to emit the real
values.

📚 Documentation

  • New end-to-end example
    examples/.../VoiceInTrunkSipRegistrationExample.java
    demonstrating the full create → rename → disable → re-enable flow.
  • README gains a SIP-registration usage section explaining the cascade
    rules with copy-pasteable enable / disable snippets.

Full Changelog: 4.0.0...4.1.0

4.0.0. - 2026-04-16

24 Apr 09:05
0361907

Choose a tag to compare

What's Changed

API Version: 2026-04-16 (previously 2022-05-10)

This is a major release that upgrades the SDK to target DIDWW API version 2026-04-16. It includes breaking changes, new resources, new attributes, and emergency services support.

For the previous API version, use the https://github.com/didww/didww-api-3-java-sdk/tree/2022-05-10 branch (v3.x).

Breaking Changes

Renamed Resources

  • RequirementValidation → AddressRequirementValidation
  • Requirement → AddressRequirement
  • AddressRequirementValidation#requirement relation → address_requirement
  • DidGroup#requirement relation → address_requirement

Renamed Attributes

  • DidReservation#expireAt → expiresAt

  • EncryptedFile#expireAt → expiresAt

  • isCancelled() → isCanceled() (wire-format consistency)

    Changed Types

  • AddressVerification#rejectReasons is now a List (was a single string)

    Removed

  • sms_out removed from DidGroup features enum

Changed Behavior

  • Default API version is now 2026-04-16 (header X-DIDWW-API-Version)

  • Encrypted files: POST now accepts a single file per request (was array)

  • Exports: year/month filters replaced with from/to datetime range

  • VoiceInTrunk: added diversionRelayPolicy to SIP configuration

  • VoiceOutTrunk: flat credential fields replaced with polymorphic authenticationMethod (types: credentials_and_ip, twilio, ip_only)

  • Attribute values standardized to lowercase snake_case

    New Resources

  • DidHistory — /v3/did_history (list, read)

  • EmergencyRequirement — /v3/emergency_requirements (list, read) — with resource-level meta (setupPrice, monthlyPrice)

  • EmergencyRequirementValidation — /v3/emergency_requirement_validations (create)

  • EmergencyCallingService — /v3/emergency_calling_services (list, read, create, update, delete) — with resource-level meta (setupPrice, monthlyPrice)

  • EmergencyVerification — /v3/emergency_verifications (list, read, create, update)

New Attributes

Did

  • emergencyEnabled
  • Relationships: emergencyCallingService, emergencyVerification, identity

VoiceOutTrunk

  • emergencyEnableAll, rtpTimeout

  • Relationship: emergencyDids

    DidGroup

  • New features: p2p, a2p, emergency, cnam_out

  • serviceRestrictions attribute

Identity

  • Relationship: birthCountry

    Other

  • externalReferenceId added to: Address, AddressVerification, Export, Order, PermanentSupportingDocument, Proof, SharedCapacityGroup, VoiceInTrunk, VoiceInTrunkGroup, VoiceOutTrunk

  • AddressVerification: rejectComment

  • Export: STATUS_PENDING and STATUS_PROCESSING constants

  • EmergencyOrderItem complex object for Order support

New PATCH Endpoints

  • PATCH /v3/address_verifications/:id — update externalReferenceId
  • PATCH /v3/exports/:id — update externalReferenceId
  • PATCH /v3/emergency_verifications/:id — update externalReferenceId

Status Predicate Helpers

New is*() methods on:

  • VoiceOutTrunk — isActive(), isBlocked(), etc.
  • EmergencyCallingService — isActive(), isPending(), etc.
  • AddressVerification, EmergencyVerification, Order

Other Improvements

  • Fixed Javadoc warnings
  • Comprehensive examples for all new resources including emergency scenario
  • Added "Releasing a New Version" section to README

Full Changelog: 3.0.0...4.0.0

3.0.0

20 Mar 12:36
56117ae

Choose a tag to compare

What's Changed

  • Fix README examples to use enum types instead of strings by @Fivell in #34
  • Add User-Agent header to file upload requests by @Fivell in #37
  • Add include=requirement and include=region tests by @Fivell in #41
  • Add rejected address verification test fixture by @Fivell in #40
  • Fix: Change Balance fields from Double to BigDecimal by @Fivell in #35
  • Fix error message to fallback to title when detail is missing by @Fivell in #36
  • Add cross-SDK request validator test vectors and fix URL normalization by @Fivell in #39
  • Refactor/dry cleanup by @Fivell in #42
  • Fix outdated build() references in README to use withId() by @Fivell in #43
  • Document date and datetime field types in README by @Fivell in #44
  • Add orders_nanpa example by @Fivell in #45

Full Changelog: 2.5.0...3.0.0

2.5.0

09 Mar 14:51
be243ac

Choose a tag to compare

What's Changed

  • Add JSON:API dependency note to README by @Fivell in #32
  • Export csv gz decompression by @Fivell in #31
  • Read User-Agent version dynamically from build-generated properties by @Fivell in #33

Full Changelog: 2.4.0...2.5.0

2.4.0

04 Mar 12:51
b5d673d

Choose a tag to compare

What's Changed

  • Add dirty PATCH serialization section to README by @Fivell in #27
  • Add coverage badge via GitHub Pages by @Fivell in #28

Full Changelog: 2.3.0...2.4.0

2.3.0

02 Mar 22:48
9f8a6fd

Choose a tag to compare

What's Changed

  • Add missing update tests and rename fixtures for consistency by @Fivell in #24
  • Add X-DIDWW-API-Version header and update README link by @Fivell in #25
  • Support dirty-only PATCH serialization with explicit null clears by @Fivell in #26

Full Changelog: 2.2.0...2.3.0

2.2.0

27 Feb 15:15
da98187

Choose a tag to compare

What's Changed

  • Add missing Country.regions relationship and improve test coverage by @Fivell in #23

Full Changelog: 2.1.0...2.2.0

2.1.0

27 Feb 09:47
3fee9ac

Choose a tag to compare

What's Changed

  • Add ReroutingDisconnectCode enum for typed rerouting disconnect code IDs by @Fivell in #18
  • Improvements by @Fivell in #19
  • Add custom OkHttpClient.Builder support and skip Api-Key for public_keys by @Fivell in #22

Full Changelog: 2.0.0...2.1.0

2.0.0

23 Feb 09:58
ebb6470

Choose a tag to compare

What's Changed

  • Remove H323 and IAX2 trunk configuration support by @Fivell in #17

Full Changelog: 1.1.1...2.0.0

1.1.1

22 Feb 15:04
c8f7c44

Choose a tag to compare

What's Changed

  • Add comprehensive order example with all DID item types by @Fivell in #12
  • Misc/readme improvements by @Fivell in #13
  • Update examples README with all available examples by @Fivell in #14
  • Rename php-test/php-sdk to java-test/java-sdk in test data by @Fivell in #15
  • Add DID group feature enum assertions by @Fivell in #16

Full Changelog: 1.1.0...1.1.1