Skip to content

Release v42.0.0#1753

Merged
AdyenAutomationBot merged 1 commit into
mainfrom
promote/main
May 21, 2026
Merged

Release v42.0.0#1753
AdyenAutomationBot merged 1 commit into
mainfrom
promote/main

Conversation

@AdyenAutomationBot
Copy link
Copy Markdown
Collaborator

@AdyenAutomationBot AdyenAutomationBot commented Mar 5, 2026

Merged pull requests to be released:

Full Changelog: v41.1.0...main

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 2 times, most recently from 1342731 to 53c7a51 Compare March 6, 2026 08:22
@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 3 times, most recently from 2838f74 to ebaaecb Compare March 24, 2026 07:43
@AdyenAutomationBot AdyenAutomationBot changed the title Release v41.1.1 Release v41.2.0 Mar 25, 2026
@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 9 times, most recently from cb6dc48 to ad085ef Compare March 31, 2026 15:34
@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 8 times, most recently from 624ee50 to 0159696 Compare April 8, 2026 15:13
@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 2 times, most recently from e40fb72 to ea4665b Compare April 10, 2026 17:06
@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 8 times, most recently from cefaa9f to 3abd6f2 Compare April 22, 2026 09:28
@AdyenAutomationBot AdyenAutomationBot changed the title Release v41.2.0 Release v42.0.0 May 13, 2026
@AdyenAutomationBot AdyenAutomationBot force-pushed the promote/main branch 17 times, most recently from d289f5d to d049209 Compare May 15, 2026 16:11
@jeandersonbc
Copy link
Copy Markdown
Contributor

jeandersonbc commented May 21, 2026

Adyen Java API Library v42.0.0

This release delivers a modernized foundation for point-of-sale and financial services integrations. The highlight is the new Cloud Device API, a first-class replacement for the legacy TerminalCloudAPI that brings built-in Nexo message encryption, device management, and a cleaner service design. Two new services expand platform capabilities: Direct Debit Mandates for Balance Platform and Dynamic Offers for Capital. This release also drops JAXB dependencies, making it compatible with Jakarta +9 versions.


What's new

Cloud Device API (#1808, #1835, #1867, #1906, #1914)

Two new services replace the deprecated TerminalCloudAPI:

  • CloudDeviceApi — Send synchronous and asynchronous Terminal API messages, query connected devices and device status.
  • EncryptedCloudDeviceApi — Variant of CloudDeviceApi with built-in Nexo message encryption/decryption. Requires EncryptionCredentialDetails.

New supporting security classes: NexoSecurityManager, NexoCryptoPrimitives, NexoDerivedKeyGenerator, NexoSecurityException, EncryptionCredentialDetails.

New documentation: doc/CloudDeviceApi.md, doc/MigratingToCloudDeviceApi.md, doc/TerminalApi.md.

New services

  • DirectDebitMandatesApi (Balance Platform, v2) (#1800) — Create, retrieve, update, and cancel direct debit mandates.
  • DynamicOffersApi (Capital, v1) (#1793) — Calculate preliminary offers, create static offers from dynamic offers, and list all dynamic offers.

New models

Area Notable additions
checkout AlmaDetails, AppIdentifierInfo, ConfidenceScore, DirectDebitAuDetails, KlarnaNetworkDetails, PixPayByBankDetails, PixPayByBankRiskSignals, ScreenDimensions
management ApplePayResponseInfo, GooglePayResponseInfo, KlarnaResponseInfo, MCResponseInfo, VisaResponseInfo, SepaDirectDebitResponseInfo, PayByBankPlaidResponseInfo, Dcc, GenericPmWithTdiUpdateInfo, and ~50 additional *ResponseInfo/*UpdateInfo types
configurationwebhooks Mandate notification types (Mandate, MandateBankAccount, MandateNotificationData, MandateNotificationRequest), payout schedule notification types, ResultDetails
balanceplatform ListMandatesResponse, Mandate, MandateBankAccount, MandatePartyIdentification, MandateStatus, MandateType, MandateUpdate, UKLocalMandateAccountIdentification
capital CalculateGrantOfferRequest, CalculatedGrantOffer, CreateGrantOfferRequest, DynamicOffer, DynamicOfferRepayment, GetDynamicOffersResponse
transferwebhooks FundingInstrument, UltimatePartyIdentification
tapi Full TAPI model package (SaleToPOIRequest, SaleToPOIResponse, PaymentRequest, PaymentResponse, and all transaction/terminal types)
clouddevice CloudDeviceApiRequest, CloudDeviceApiResponse, CloudDeviceApiAsyncResponse, DeviceStatus, DeviceStatusResponse, ConnectedDevicesResponse, and security message types

TAPI utility helpers (#1913)

New classes in com.adyen.util.tapi:

  • PredefinedContentHelper — Parses and manages key-value pairs within a PredefinedContent reference ID string.
  • SaleDataHelper — Parses SaleToAcquirerData from a SaleData object, auto-detecting Base64-encoded JSON or form-encoded key-value pairs.
  • SaleToAcquirerData — POJO representing the sale information passed to the acquirer (shopper email, recurring contract, metadata, etc.).
  • SaleToAcquirerDataParser — Serializes/deserializes SaleToAcquirerData to/from Base64 JSON or form-encoded format.

Client now implements Closeable (#1795)

Client implements java.io.Closeable, enabling use in try-with-resources for proper HTTP connection cleanup:

try (Client client = new Client(config)) {
    // use client
}

The underlying HTTP client is now lazily initialized and shared across requests (thread-safe, double-checked locking).


Changed

  • GrantOffersApi method names (#1793) — All references to "grant offer" have been renamed to "static offer" to align with the API spec (getAllGrantOffers → now returns static offers, getGrantOffer → now described as "Get the details of a static offer"). Method names are unchanged but Javadoc and semantics now reflect "static offers" vs the new dynamic offers.

  • Terminal API documentation restructured (#1909) — Terminal API usage docs moved from the main README.md into standalone files (doc/TerminalApi.md, doc/CloudDeviceApi.md, doc/MigratingToCloudDeviceApi.md).

  • TransfersApi.getAllTransfers() category parameter (#1937) — Javadoc updated to document card and topUp as additional valid values.

  • ScaAssociationManagementApi entityType parameter (#1912) — Javadoc updated to include legalEntity as a valid value.


Fixed

  • HTTP timeout not applied by default (#1795) — Timeout configuration was not being set as the default RequestConfig on the HTTP client, so connectionTimeoutMillis, readTimeoutMillis, and connectionRequestTimeoutMillis had no effect. Fixed so all requests inherit the configured timeouts (default: 60 000 ms each).

  • Socket timeout not set (#1795) — SocketTimeout was not configured, leaving the client potentially hanging indefinitely on unresponsive hosts.

  • TAPI unknown enum values threw exceptions (#1900) — All enum types in the tapi package now handle unknown values gracefully instead of throwing a deserialization exception, improving forward-compatibility with new API values.

  • createBaseURL used replaceFirst instead of replace (#1952) — String.replaceFirst() interprets its first argument as a regex, causing failures for strings containing regex special characters. Fixed to use String.replace().

Breaking Changes

1. Region.IN enum value removed (#1837)

The Region.IN (India) value has been removed from com.adyen.enums.Region.

// Before — no longer compiles
config.setTerminalApiRegion(Region.IN);

// After — remove or replace with the appropriate region
config.setTerminalApiRegion(Region.APSE);

2. GrantOffersApi.getAllGrantOffers() now requires accountHolderId (#1793)

The no-argument overload has been removed. accountHolderId is now a required parameter.

// Before
GrantOffers offers = grantOffersApi.getAllGrantOffers();

// After
GrantOffers offers = grantOffersApi.getAllGrantOffers("YOUR_ACCOUNT_HOLDER_ID");

3. PaymentMethodsMerchantLevelApi.getApplePayDomains() return type changed (#1971)

The return type changed from ApplePayInfo to ApplePayResponseInfo.

// Before
ApplePayInfo info = paymentMethodsApi.getApplePayDomains(merchantId, paymentMethodId);

// After
ApplePayResponseInfo info = paymentMethodsApi.getApplePayDomains(merchantId, paymentMethodId);

4. JAXB annotations removed from nexo models (#1807, #1802)

All javax.xml.bind annotations (@XmlElement, @XmlType, @XmlEnum, etc.) have been removed from the nexo model classes. Serialization now uses Gson's @SerializedName annotations exclusively.

The javax.xml.bind:jaxb-api compile dependency has been removed and replaced by commons-codec. A Maven Enforcer rule now blocks javax.xml.bind:jaxb-api from the dependency tree.

Impact: Any code that relied on JAXB/Jakarta XML Binding to process nexo model classes will break. Update to use the library's built-in Gson-based serialization:

// Before — JAXB processing is no longer supported on nexo models
JAXBContext ctx = JAXBContext.newInstance(SaleToPOIRequest.class);

// After — use the library's TerminalAPIGsonBuilder
Gson gson = TerminalAPIGsonBuilder.create();
String json = gson.toJson(saleToPOIRequest);

If your project transitively pulled in javax.xml.bind:jaxb-api through this library, add it explicitly to your own pom.xml if still needed elsewhere.


Deprecated


Dependency Updates

Dependency Previous Updated
com.fasterxml.jackson (monorepo) 2.12.7 2.21.3
com.google.code.gson:gson 2.11.0 2.14.0
commons-codec:commons-codec 1.22.0 (new compile dep)
org.apache.httpcomponents.client5:httpclient5 5.5 5.6.1
io.swagger.core.v3:swagger-annotations 2.2.30 2.2.49
org.junit.jupiter:junit-jupiter 5.11.4 5.14.4
org.mockito (monorepo) 5.21.0 5.23.0
com.squareup.okio:okio 3.16.4 3.17.0
org.sonatype.central:central-publishing-maven-plugin 0.7.0 0.10.0
org.apache.maven.plugins:maven-surefire-plugin 3.5.2 3.5.5
org.apache.maven.plugins:maven-source-plugin 3.4.0
org.apache.maven.plugins:maven-compiler-plugin 3.15.0
com.diffplug.spotless:spotless-maven-plugin 3.2.1 3.4.0
org.apache.maven.plugins:maven-enforcer-plugin 3.6.2 (new)
javax.xml.bind:jaxb-api 2.3.1 REMOVED
org.codehaus.janino:coveralls-maven-plugin present REMOVED

Copy link
Copy Markdown
Contributor

@jeandersonbc jeandersonbc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's ship it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants