Skip to content

Releases: Adyen/adyen-java-api-library

Adyen Java API Library v43.0.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 24 Jul 14:05

This release expands platform capabilities with several new services and significant model additions across Transfers, Management, Balance Platform, and Checkout.
Highlights include a new Cash Out API for Transfers, Donation Campaigns management, Managed Payout Schedules for Balance Platform, and end-to-end payment tracing support. The Checkout API is also bumped from v71 to v72, which carries several breaking changes.


What's new

New services

  • CashOutApi (Transfers v4) — initiate a cash out via initiateCashout().
  • DonationCampaignsApi (Management v3) — full CRUD for donation campaigns, plus listNonprofits.
  • ManagedPayoutSchedulesApi (Balance Platform) — apply, update, delete, and query managed payout schedules and their executions.

Enhancements

  • Payment tracing — new tracing and networkReason fields on Transfer/TransferData (and mirrored in transfer webhooks).
  • Checkout payment methods — added AU PAY (aupay) and d-barai (dbarai).
  • Enhanced scheme data — new models Lodging, CarRental, Healthcare, TemporaryServices.
  • Recurring top-up webhooks — new recurringTopUp.created / .deleted events.
  • Regenerated tapi, payout, and storedvalue models from the latest specs.

New models

Area Notable additions
transfers CashOut, CashOutInfo, CashOutTransfer, TransferDataTracing, NetworkReason, UKFpsTracingData, USAchTracingData
management DonationCampaign(Request/Update), DonationCampaignStatus, Nonprofit, NonprofitCause, SplitDcc,CarnetInfo
configurationwebhooks TopUpConfigurationEventRequest, TopUpConfigurationUpdatedEventRequest, WebhookTopUp*
balanceplatform BalanceAccountConfiguration(s), BalancePlatformConfiguration(s), PayoutScheduleExecution(s),ExecutionResult
checkout AuPayDetails, DBaraiDetails, Lodging, CarRental, Healthcare, TemporaryServices, Folio, Room

Changed

Checkout API v71v72 — API_VERSION and the default base URL updated to /v72 across all checkout clients (PaymentsApi,
OrdersApi, PaymentLinksApi, ModificationsApi, RecurringApi, DonationsApi, UtilityApi). See Breaking Changes.


Fixed

  • Enum path parameters serialized incorrectly — Enum-typed path parameters are now converted to their string value instead of
    the enum constant name. (eebe797)
  • Javadoc missing for array/map properties — Fixed the generation template so Javadoc is produced correctly for array and map
    properties. (5ff17f1)
  • Missing java.util.List import — Added a missing import to a generated model to fix compilation. (d74a627)

Breaking Changes

1. Sweep operations moved to CustomPayoutSchedulesSweepsApi

createSweep, updateSweep, getSweep, getAllSweepsForBalanceAccount, and deleteSweep are removed from BalanceAccountsApi and must
now be called on the new CustomPayoutSchedulesSweepsApi.

 // Before
 balanceAccountsApi.getAllSweepsForBalanceAccount(balanceAccountId);

 // After
 customPayoutSchedulesSweepsApi.getAllSweepsForBalanceAccount(balanceAccountId);

2. Checkout DefaultErrorResponseEntity renamed to CheckoutErrorResponseEntity

Any code referencing DefaultErrorResponseEntity in the checkout package must be updated.

3. Checkout InvalidField model removed

The InvalidField model and the invalidFields property it backed have been removed.

4. DonationPaymentRequest fields removed

The additionalData and deliverAt fields have been removed from DonationPaymentRequest.

5. Checkout API bumped v71v72

API_VERSION and the default base URL now target /v72 for all checkout service clients.


Dependency Updates

Dependency Previous Updated
com.fasterxml.jackson.core:jackson-databind 2.21.3 2.21.5 (security)
org.apache.httpcomponents.client5:httpclient5 5.6.1 *5.6.1
io.swagger.core.v3:swagger-annotations 2.2.49 2.2.52
com.diffplug.spotless:spotless-maven-plugin 3.4.0 3.8.0
org.apache.maven.plugins:maven-surefire-plugin 3.5.5 3.5.6
org.apache.maven.plugins:maven-enforcer-plugin 3.6.2 3.6.3
org.jacoco:jacoco-maven-plugin 0.8.14 0.8.15
org.sonatype.central:central-publishing-maven-plugin 0.10.0 0.11.0

References

Breaking Changes 🛠

  • [checkout] Automated update from Adyen/adyen-openapi (503dcc6, 7f01d8c)
  • [balanceplatform] Automated update from Adyen/adyen-openapi (059b42f)

New Features 💎

  • [transfers] Automated update — Cash Out API & tracing (a776ca2)
  • [management] Automated update — Donation Campaigns (392ba85)
  • [transferwebhooks] Automated update — tracing (336e22a)
  • [configurationwebhooks] Automated update — recurring top-up webhooks (a2d39c6)
  • [payout], [storedvalue], [tapi] Automated updates (306caac, 44ae327, 9272fbb)

Fixes ⛑️

  • Fix pathParam conversion from enum to string (eebe797)
  • Fix template to support Javadoc generation for arrays and maps (5ff17f1)
  • Add missing java.util.List import (d74a627 (d74a6278))

Other Changes 🖇️

  • Add tests for Checkout, BalancePlatformWebhooks, Management donation campaigns, Transfers initiateCashout, and transfer/transaction webhook (de)serialization (8f66bbc, 019f175, 800896a, 19bc5c2, c7150fe, d03c49f)
  • Configure SonarCloud on PRs/pushes; exclude generated OpenAPI models from coverage & CPD (007a6f1, 965db3d, 037bd8e)
  • Dependency bumps (jackson-databind [SECURITY], httpclient5, swagger-annotations, spotless, surefire, enforcer, jacoco, central-publishing) chore(release): bump to 43.0.0 (8c3fabf)

New Contributors

@poojah-adyen made their first contribution in #2007

Full Changelog: v42.0.1...v43.0.0

Adyen Java API Library v42.0.1

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 28 May 08:49

Summary

This patch-release aligns the library model in the Java library with response of POST /paymentMethods from Checkout/Payments API (see API Explorer). Adyen's backend was already including the cashapp tag in the response but it was not included in the corresponding OpenAPI specification.

What's Changed

Other Changes 🖇️

Full Changelog: v42.0.0...v42.0.1

Adyen Java API Library v42.0.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 21 May 12:20

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. This resolves the class-loading conflicts on clients using Jakarta +9

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.


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.squar...
Read more

Adyen Java API Library v41.1.1

Choose a tag to compare

@gcatanese gcatanese released this 08 Apr 14:22
8406355

What's Changed

Fixes ⛑️

Correct Classic Recurring URL #1897:

  • test: https://pal-test.adyen.com/pal/servlet/Recurring/v68
  • live: https://{prefix}-pal-live.adyenpayments.com/pal/servlet/Recurring/v68

Full Changelog: v41.1.0...v41.1.1

Adyen Java API Library v41.1.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 05 Mar 08:37

New Features 💎

Checkout API

  • Add attribute merchantReference in CheckoutForwardRequest
  • In StoredPaymentMethodDetails add several enum values to support alipay_plus
  • Add attribute cardBin ins StoredPaymentMethodResource

Balance Platform API

Management API

  • Add HomeScreenSettings and KioskModeSettings in TerminalSettings

Recurring API

Recurring endpoint has been updated to:

  • (on TEST) paltokenization-test.adyen.com/paltokenization/servlet/Recurring/v68
  • (on LIVE) myprefix-paltokenization-live.adyenpayments.com/paltokenization/servlet/Recurring/v68

Payout API

  • Added enum AMBER in ResponseAdditionalDataCommon

Classic Payments API

  • Added Refused and Error enum values in ModificationResult
  • Added enum AMBER in ResponseAdditionalDataCommon

Transfer Webhooks

  • Add InterchangeData in the list of EventsData
  • Add enum value interchangeAdjusted in Modification, TransferData, TransferEvent

Transfers API

  • Add InterchangeData in the list of EventsData
  • Add enum value interchangeAdjusted in Modification, Transfer, TransferData, TransferEvent

Note

Counterparty has been renamed to GrantCounterparty, however this change should not affect existing integrations since it belongs to a feature not yet being available.

If you use the Transfers API Capital endpoints you should consider migrating to the Capital API.

Fixes ⛑️

  • Update cache action version in action.yml by @gcatanese in #1720
  • Change JDK version to 21 and distribution to adopt by @gcatanese in #1721
  • Replace deprecated 'adopt' distribution with 'temurin' in GitHub Actions by @Copilot in #1723
  • Add Relayed Authorization Webhooks in README.md by @gcatanese in #1734

Other Changes 🖇️

Other PRs

New Contributors

Full Changelog: v41.0.0...v41.1.0

Adyen Java API Library v41.0.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 30 Jan 09:31

What's Changed

Important

This release was bumped as a major due to a breaking change in Management API that was introduced in v40.1.0.
If you are not using the affected change in Management API (see #1646) from v40.1.0, you should be able to adopt this newer version without breaking changes. We apologize for the confusion.

This release includes introduces the new Capital API since capital-related features from Transfers API have been deprecated.
Check API docs for further details:

Breaking Changes 🛠

New Features 💎

Fixes ⛑️

  • Untrusted Actions Versioning by @gcatanese in #1614
  • fix: prevent command injection in format workflow by @Copilot in #1618

Other Changes 🖇️

New Contributors

Full Changelog: v40.1.0...v41.0.0

Adyen Java API Library v40.1.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 16 Dec 10:13
34b432a

💎 New Features

Checkout API

  • Add support for /forward endpoint
  • Add support for ExternalTokenDetails payment method
  • In FundingSourceEnum add enum value PREPAID in ApplePayDetails, ApplePayDonations, CardDonations, and CardDetails
  • In CardDetails and CardDonations add billingSequenceNumber attribute
  • In PaymentRequest add PaymentValidations
  • In PaymentResponse and PaymentDetailsResponse add PaymentValidationsResponse
  • In CheckoutBankTransferAction add attributes bankCode, branchCode,
  • In GenericIssuerPaymentMethodDetails add enum ONLINEBANKING_IN
  • In ResponseAdditionalDataSepa add sepadirectdebitSepadirectdebitDueDate attribute
  • In StoredPaymentMethodResource add mandate attribute
  • In WeChatPayMiniProgramDetails add storedPaymentMethodId attribute

Classic Payments API

  • In PaymentRequest add enum PREPAID
  • In ResponseAdditionalDataSepa add sepadirectdebitSepadirectdebitDueDate attribute

BalancePlatform

  • remove DeviceInfo fields: cardCaptureTechnology, deviceName, imei, isoDeviceType, msisdn, osVersion, paymentTypes, serialNumber, storageTechnology
  • in Balance add pendingAvailable attribute
  • in BulkAddress add name attribute
  • in CreateSweepConfigurationV2 and UpdateSweepConfigurationV2 add enum ReasonEnum.SCHEMEADVICE

Payout API

  • In add ResponseAdditionalDataSepa add sepadirectdebitSepadirectdebitDueDate attribute

Legal Entity Management API

  • Add requestPeriodicReview method in LegalEntitiesApi

Management API

  • In AffirmInfo add PricePlanEnum enums
  • In PaymentMethod add svs and valueLink attributes
  • In PaymentMethodResponse add enums KLARNA_B2B, SVS, VALUELINK
  • In PaymentMethodSetupInfo aadd svs and valueLink attributes
  • In PaymentMethodSetupInfo add enums KLARNA_B2B, SVS, VALUELINK

Transfers API

  • In UltimatePartyIdentification add fundingInstrument attribute
  • In BankAccountV3 add storedPaymentMethodId attribute
  • In Transfer, TransferData and TransferEvent add add enum ReasonEnum.SCHEMEADVICE

Transfer Webhooks

  • In BankAccountV3 add storedPaymentMethodId attribute
  • Add new event balancePlatform.balanceAccount.balance.block.released

Other Changes 🖇️

Fixes ⛑️

Full Changelog: v40.0.0...v40.1.0

Adyen Java API Library v40.0.1

Choose a tag to compare

@galesky-a galesky-a released this 03 Dec 10:48

Adyen Java API Library v40.0.1

This release introduces minor improvements on a dependency.

  • Update Apache HttpClient 5.5 #1596

Adyen Java API Library v40.0.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 10 Oct 07:29
05ee44f

This release introduces major improvements, including support for LEM v4 and an updated Client setup.
Make sure to review the highlights below and check the breaking changes that may require updates in your integration.

Legal Entity Management API v4

LEM v4 enhances the onboarding process and ensures compliance with evolving regulatory data requirements across regions and products.

See the Onboarding v4 documentation for details, and review the API changes from v3 to v4 to understand the impact on your integration.

⚠️ Critical changes:

  • BusinessLine: capability attribute has been removed
  • SourceOfFunds: acquiringBusinessLineId attribute has been removed
  • SourceOfFunds: adyenProcessedFunds attribute is now required

See new fields and other details in #1542

🛠 Breaking Changes

Client Setup

The Client class has been updated to enforce best practices and remove deprecated methods.

You can now configure the client using the Config object for a cleaner and more consistent setup:

// setup using Config object
Config config = new Config()
    .environment(Environment.LIVE)
    .liveEndpointUrlPrefix("myCompany")
    .apiKey(apiKey);
Client client = new Client(config);

Several several legacy methods, deprecated already for 4-5 years, have been removed. See more details here #1525

Checkout API

New ShopperName class has been introduced, to be used when defining the name of the shopper. This affects several classes: CreateCheckoutSessionRequest, CreateCheckoutSessionResponse, DonationPaymentRequest, PaymentRequest.

The attribute shopperName has changed from

"shopperName"?: Name | null;

to

"shopperName"?: ShopperName | null;

💎 New Features

Checkout API

  • In PaymentRequest add attribute sdkData

Recurring API

  • In Recurring add enum values EXTERNAL and ONECLICK_RECURRING

Management API

  • Add CardRegionEnum enums in SplitConfigurationRule class

Other Changes 🖇️

Full Changelog: v39.5.0...v40.0.0

Adyen Java API Library v39.5.0

Choose a tag to compare

@AdyenAutomationBot AdyenAutomationBot released this 29 Sep 10:17
d6eb3ea

New Features 💎

Checkout API

  • Add support for UPI QR Code
  • In PaymentDetails add enum IRIS
  • In UpiIntentDetails add attribute billingSequenceNumber

Classic Payments

  • In Recurring add enum values EXTERNAL and ONECLICK_RECURRING

Payout API

  • Add ResponseAdditionalDataSwish

Terminal API

  • Validate location header upon 308 response status #1561
  • Update the validation of Common Name of a Terminal API certificate #1564

Management API

  • Add enum value BR_SCHEMES in PaymentMethodResponse and PaymentMethodSetupInfo

Management Webhooks

  • In TerminalAssignmentNotificationRequest add attribute assignedToStoreId
  • Add enum value dataReview in VerificationError and VerificationErrorRecursive

PRs 🖇️

Fixes ⛑️

  • TerminalCommonNameValidator: Update validation regex by @gcatanese in #1564

Other Changes 🖇️

Full Changelog: v39.4.0...v39.5.0