Releases: Adyen/adyen-java-api-library
Adyen Java API Library v38.0.0
Breaking Changes 🛠
-
Checkout API
- Remove
DotpayDetailsandGiropayDetails - Remove enum
PAYSAFECARDfromPaymentDetails
- Remove
-
Management API
- Remove
GiroPayInfo - Remove enum `PAYSHOP from PaymentMethodResponse
- Remove
Features 💎
-
Checkout API
- Add
Surcharge(#1445) andEnhancedSchemeData(supporting Airline enhanced scheme data) inPaymentRequest - Add
EnhancedSchemeData(supporting Airline enhanced scheme data) inPaymentCaptureRequest - Add
fraudRiskLevelinResponseAdditionalDataCommon - Add enum
PAYSAFECARDfromStoredPaymentMethodDetails
- Add
-
Payment Classic API
- Add
fraudRiskLevelinResponseAdditionalDataCommon
- Add
-
Payout API
- Add
fraudRiskLevelinResponseAdditionalDataCommon
- Add
-
Webhooks
- Add
TECHNICAL_CANCELevent code inNotificationRequestItem(#1481)
- Add
-
Management API
- Add
supportEmailfield to theAfterpayTouchInfo - Add enum
PAYMENTDESIGNATORCONTRACTin JCBInfo - Add PayByBankPlaidInfo
- Add enum
PAYBYBANK_PLAIDin PaymentMethodResponse - Add
domainSuffixfield to Profile - In
SplitConfigurationRuleadd enumsCHARGED,DEFERRED_DEBITandPREPAID(#1457) - Add
enableGratuitiesto the Standalone model
- Add
Fixes ⛑️
- Avoid null in User-Agent header by @gcatanese in #1483
Other Changes 🖇️
- Balance webhooks in README by @gcatanese in #1478
Full Changelog: v37.0.0...v38.0.0
Adyen Java API Library v37.0.0
This release brings significant improvements, new features, and few breaking changes to the Adyen Java API Library. It marks a major milestone in aligning the library more closely with Adyen’s OpenAPI specifications and improving the ✨ Developer Experience ✨
Find below what's new as well as a detailed summary of the Breaking Changes, and what you should do or consider.
Please review the Breaking Changes and update your integrations accordingly. For any questions, feel free to open an issue or consult our API Explorer.
🚀 Highlights
- Improved OpenAPI Code Generation: Source code is now more idiomatic, flexible, and better aligned with Adyen's OpenAPI specifications.
- Automated Webhook Handler Generation: Webhook handlers and models are now automatically generated and updated with each release.
- Refined Package Structure: Several APIs have been moved to more specific packages for better discoverability and maintainability.
🛠 Breaking Changes
🔁 Webhook Events Renamed
Several webhook TypeEnum names have been updated for clarity and consistency.
Note: the actual string value of the enum didn't change.
ConfigurationWebhooks
AccountHolderNotificationRequestCREATED→BALANCEPLATFORM_ACCOUNTHOLDER_CREATEDUPDATED→BALANCEPLATFORM_ACCOUNTHOLDER_UPDATED
BalanceAccountNotificationRequestCREATED→BALANCEPLATFORM_BALANCEACCOUNT_CREATEDUPDATED→BALANCEPLATFORM_BALANCEACCOUNT_UPDATED
CardOrderNotificationRequestCREATED→BALANCEPLATFORM_CARDORDER_CREATEDUPDATED→BALANCEPLATFORM_CARDORDER_UPDATED
PaymentNotificationRequestCREATED→BALANCEPLATFORM_PAYMENTINSTRUMENT_CREATEDUPDATED→BALANCEPLATFORM_PAYMENTINSTRUMENT_UPDATED
SweepConfigurationNotificationRequestCREATED→BALANCEPLATFORM_BALANCEACCOUNTSWEEP_CREATEDUPDATED→BALANCEPLATFORM_BALANCEACCOUNTSWEEP_UPDATEDDELETED→BALANCEPLATFORM_BALANCEACCOUNTSWEEP_DELETED
TransferWebhooks
TransferNotificationRequestCREATED→BALANCEPLATFORM_TRANSFER_CREATEDUPDATED→BALANCEPLATFORM_TRANSFER_UPDATED
🔒 Read-Only Attributes
Properties marked as readOnly in the OpenAPI specs no longer expose setters or builder methods. These values must be set using constructors instead.
Note: this change might affect your test code, where the methods might have been used to setup test and mock data.
🔍 Important Changes
📦 Service Class Refactoring
The following services have been moved to their own dedicated packages
Services in the old location are deprecated and will be removed in a future release.
Note: There are no changes in functionality (the same code is now available in the new location), please update your code accordingly.
| Old Location | New Location |
|---|---|
com.adyen.service.StoredValueApi |
com.adyen.service.storedvalue.StoredValueApi |
com.adyen.service.BinLookupApi |
com.adyen.service.binlookup.BinLookupApi |
com.adyen.service.BalanceControlApi |
com.adyen.service.balancecontrol.BalanceControlApi |
com.adyen.service.DataProtectionApi |
com.adyen.service.dataprotection.DataProtectionApi |
com.adyen.service.DisputesApi |
com.adyen.service.disputes.DisputesApi |
com.adyen.service.PaymentsAppApi |
com.adyen.service.paymentsapp.PaymentsAppApi |
com.adyen.service.PosMobileApi |
com.adyen.service.posmobile.PosMobileApi |
🪝 Webhook Handling
Webhook handling is now modernized and streamlined:
- Automation: Auto-generated handlers ensure that webhook events and models stay aligned with the changes in the OpenAPI specs
- Deprecated: Former
BankingWebhookHandlerclass is now deprecated - Recommended: Use instead the dedicated handler in the Webhook package (
AcsWebhooks,ReportWebhooksHandler,ConfigurationWebhooks,TransferWebhooks,TransactionWebhooks, etc..)
// parse AccountHolderNotificationRequest
Optional<AccountHolderNotificationRequest> notificationRequest =
new ConfigurationWebhooksHandler("webhook_payload").getAccountHolderNotificationRequest();
🌐 HTTP Client Configuration
- Now supports custom
connectionRequestTimeoutanddefaultKeepAliveTimeout. - The default timeout is configured to 60 seconds, however we recommend the application to explicitly configure it according to the requirements and expectations.
🏷️ Default Values for Attributes
Fields are initialized using a default value when the OpenAPI specs define the attribute default value. For example:
private TypeEnum type = TypeEnum.BRLOCAL;💎 New Features & Enhancements
💰 BalancePlatform
- New:
BalancesApiservice now supportsBalanceWebhookSettingfor managing Balance Webhook criteria. - Other changes:
- New
BICenum inBankIdentification - New
PENDINGenum inCreateSweepConfigurationV2andUpdateSweepConfigurationV2 - New
replacedByIdandreplacementOfIdattributes inPaymentInstrumentandUpdatePaymentInstrument - New
walletProviderAccountScoreandwalletProviderDeviceScoreattributes inTransactionRuleRestrictions - New class
USInstantPayoutAddressRequirement
- New
🛒 Checkout
- New Donation
typefield supporting the following values:roundup,fixedAmounts
(Documentation) - Added sub-merchant info:
subMerchantPhoneNumber,subMerchantEmail- Nested:
subMerchant.subSeller[n].email,subMerchant.subSeller[n].phoneNumber
- Added
bonusenum toCheckoutSessionInstallmentOption
🔄 BalancePlatformTransfer API
- Added
IssuingTransactionDatawithcaptureCycleIdthat provides the captureCycleId associated with transfer event
🔄 BalancePlatformTransfer Webhooks
-
Added
IssuingTransactionDatawithcaptureCycleIdthat provides the captureCycleId associated with transfer event -
Other changes:
- New enum:
ChargebackRemainderinPlatformPayment.platformPaymentType - New attribute:
externalReasoninTransferData - New
pendingenum inTransferData.reason
- New enum:
📬 New Balance Webhook
- A new Balance webhook is now available to process events related to balance changes.
- Use:
BalancePlatformBalanceWebhooksHandlerto consume the Webhook eventbalancePlatform.balanceAccount.balance.updated
Documentation
🧩 Other Changes
- Enhanced Javadoc coverage across the codebase.
- Introduced a new HMAC troubleshooting utility for signature validation debugging (#1452). The tool calculates the HMAC signature given the HMAC key and the payload:
cd tools/hmac
mvn clean compile exec:java -Dexec.mainClass=CalculateHmacPayments -Dexec.args="11223344D785FBAE710E7F943F307971BB61B21281C98C9129B3D4018A57B2EB payload.json"
Check the README
Changes in this release:
- POS Mobile API by @gcatanese in #1463
- StoredValueAPI generation by @gcatanese in #1462
- Generate BinLookupApi service with OpenAPI Generator v7.11.0 by @gcatanese in #1465
- RecurringApi generation with OpenAPI Generator v7.11.0 by @gcatanese in #1466
- Add PaymentsAppApi, DisputesApi, DataProtectionApi by @gcatanese in #1467
- OpenAPI Generator v7.11.0: Add BalanceControl API by @gcatanese in #1468
- OpenAPI Generator v7.11.0: add Webhooks by @gcatanese in #1469
- OpenAPI Generator v7.11.0: regenerate Checkout models by @gcatanese in #1472
- Add BalancePlatform WebhookSettings by @gcatanese in #1471
- Configure HTTP Client connectionRequestTimeout by @gcatanese in #1470
- Deprecate legacy code [PosTerminalManagementApi, PaymentApi] by @gcatanese in #1474
- Rename Balance webhooks package by @gcatanese in #1476
- Release v37.0.0 by @AdyenAutomationBot in #1464
Full Changelog: v36.0.1...v37.0.0
Adyen Java API Library v36.0.1
What's Changed
Important
This patch addresses the issue introduced in Java API Library v36.0.0 that impacted the usage of the Adyen iOS SDK.
Response attributes without a value will be omitted (instead that being returned as empty lists).
The timeout settings of the underlying (Apache) HTTP client have been updated to define a default timeout of 60 seconds, developers should however always define/override those defaults accordingly.
Fixes ⛑️
- Initialise List/Set/Map as null by @gcatanese in #1461
Other Changes 🖇️
- Update example site placeholder by @ayodejidev in #1453
- HMAC Troubleshooting tool by @gcatanese in #1452
- HTTP Client timeouts by @gcatanese in #1458
- fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.4.3 [security] by @renovate in #1456
- Release v36.0.1 by @AdyenAutomationBot in #1454
Full Changelog: v36.0.0...v36.0.1
Adyen Java API Library v36.0.0
What's Changed
Warning
In this release the response attributes without a value are returned as empty lists ([]), rather than being omitted.
This might affect your integration.
Upgrade to v36.0.1: the patch has restored the initial behaviour (attributes without values are omitted from the API requests and responses).
Note for iOS SDK users: this particular version is not compatible with iOS SDK.
Root cause: response attributes without a value are now returned as empty lists, rather than being omitted.
Workaround: Upgrade to v36.0.1.
{
"apps": [],
"fundingSource": null,
"group": null,
"inputDetails": [],
"issuers": [],
"name": "Cards",
"type": "scheme"
}
Breaking Changes 🛠
- ACS webhooks
ChallengeInfo FlowEnumvalues have changed:- Fixed correct
FlowEnum-values inChallengeInfo-"OTP_SMS"and"OOB"were not used previously and now have been updated to correct values. - Fix:
OTP_SMS->PWD_OTP_PHONE_FL- One-Time Password via SMS - Fix:
OOB->OOB_TRIGGER_FL- Out-Of-Band flow
- Fixed correct
Features 💎
-
Checkout
- add support for
RakutenPay - add
RequestedTestAcquirerResponseCodeinAdditionalDataCommon
- add support for
-
AcsWebhooks:
- Add
Out-of-band authentication requestedwebhook event - Add new enum
PWD_OTP_EMAIL_FL(One-Time Password via Email)
- Add
-
Configuration webhooks
- Add enum
PENDINGinSweepConfigurationV2.
- Add enum
-
LEM API
- Add attribute
allowDebugUiinOnboardingLinkSettingsto debug user interface (UI) when applicable.
- Add attribute
-
Transactions webhooks
- Add enum
DCCPLATFORMCOMMISSIONinPlatformPayment
- Add enum
-
Transfers API
- Add enum
DCCPLATFORMCOMMISSIONinPlatformPayment - Add enum
PENDINGinTransferData - Add attribute
externalReasoninTransferData - Add
scaOnApprovalattribute inTransferReview
- Add enum
Other Changes 🖇️
Note: enums instantiation has changed, this shouldn't impact the usage of the enums
Example, from PERMATA_LITE_ATM("doku_permata_lite_atm") to DOKU_PERMATA_LITE_ATM(String.valueOf("doku_permata_lite_atm"))
- Improve Github workflows by @ayodejidev in #1440
- Add close-issue-label flag to correctly label closed issues by @DjoykeAbyah in #1442
- iDEAL2 unit test update by @gcatanese in #1443
- Ovverride default ApiError message with the error message from the API response by @gcatanese in #1447
- Add OpenAPI Generator v7 mustache templates by @gcatanese in #1444
- ACS webhooks update: RelayedAuthenticationRequest event code by @gcatanese in #1449
- Checkout API code generation: RakutenPay by @gcatanese in #1450
- Release v36.0.0 by @AdyenAutomationBot in #1441
Full Changelog: v35.0.0...v36.0.0
Adyen Java API Library v35.0.0
What's Changed
Breaking Changes 🛠
- Management API:
- In
AndroidAppthe fieldstatushas changed fromStringtoStatusEnum(ARCHIVED,ERROR,INVALID,PROCESSING,READY)
- In
- Management webhooks:
- In
PaymentMethodRequestRemovedNotificationRequestthe event type has been renamed topaymentMethodRequest.removed - In
PaymentMethodScheduledForRemovalNotificationRequestthe event type has been renamed topaymentMethodRequest.scheduledForRemoval
- In
New Features 💎
Add support for Session Authentication API to create the sessions required for integrating Adyen Platform components (#1435)
- Checkout:
- New payment methods
PixDetailsandPixRecurring - In
PaymentRefundResponseadd attributecapturePspReference(only available for PayPal refunds) - In
ResponseAdditionalDataCommon:⚠️ therecurringRecurringDetailReferenceandrecurringShopperReferenceare deprecated, use instead the new attributetokenizationShopperReference- add
tokenizationStoreOperationTypeandtokenizationStoredPaymentMethodIdattributes, addTokenizationStoreOperationTypeEnumenum
- New payment methods
- Management API:
- Support
AffirmInfoandPayToInfopayment methods - in
Surchargeclass add attribugeexcludeGratuityFromSurcharge
- Support
- Payout:
- In
ResponseAdditionalDataCommon:⚠️ therecurringRecurringDetailReferenceandrecurringShopperReferenceare deprecated, use instead the new attributetokenizationShopperReference- add
tokenizationStoreOperationTypeandtokenizationStoredPaymentMethodIdattributes, addTokenizationStoreOperationTypeEnumenum
- In
- Classic Payments:
- In
ResponseAdditionalDataCommon:⚠️ therecurringRecurringDetailReferenceandrecurringShopperReferenceare deprecated, use instead the new attributetokenizationShopperReference- add
tokenizationStoreOperationTypeandtokenizationStoredPaymentMethodIdattributes, addTokenizationStoreOperationTypeEnumenum
- In
- Terminal API:
- Add
SaleReferenceIDfield inCustomerOrderclass (#1436)
- Add
Important
The Recurring API is deprecated. Use the Checkout API recurring endpoints instead.
Other Changes 🖇️
- feat(tls): allow disabling protocol upgrade by @sp00m in #1425
- Improve issue template by @ayodejidev in #1434
- chore(deps): update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.6.0 by @renovate in #1381
- fix(exception): better handle non-JSON response bodies by @sp00m in #1404
- Code generation: update services and models by @AdyenAutomationBot #1433
- Release v35.0.0 by @AdyenAutomationBot in #1437
- Session Authentication API #1435 by @gcatanese
Full Changelog: v34.0.0...v35.0.0
Adyen Java API Library v34.0.0
What's Changed
Breaking Changes 🛠
- BalancePlatform:
- Removed
PriorityRestrictionclass. - In
TransactionRuleRestrictionremovedpriority.
- Removed
- BinLookup:
- In
CostEstimateResponseremovedsurchargeType.
- In
- Transfers:
- In
TransferReviewremovednumberOfApprovalsCompletedandscaOnApproval.
- In
- TransferWebhook:
- In
TransferReviewremovednumberOfApprovalsCompletedandscaOnApproval.
- In
Features 💎
-
AcsWebhooks:
- In ChallengeInfo broadening the range of
ChallengeCancelEnum.
- In ChallengeInfo broadening the range of
-
BalancePlatform:
- Added
AssociationDelegatedAuthenticationData,AssociationFinaliseRequest,AssociationFinaliseResponse,AssociationInitiateRequest,AssociationInitiateResponseandTokenRequestorsRestrictionclass. - In
TransactionRuleRestrictionaddedtokenRequestors.
- Added
-
Checkout:
- In
CardDetails,CardDonationsandCheckoutPaymentMethodaddedfastlaneData. - Added
FastlaneDetailsclass.
- In
-
LegalEntityManagement:
- Added
FinancialReportclass. - In
LegalEntityAssociationaddednominee. - In
OrganizationandSoleProprietorshipaddedfinancialReports.
- Added
-
Service:
- BalancePlatform:
- Deprecated
GrantAccountsApiandGrantOffersApi. - In
ManageSCADevicesApiaddedcompleteAssociationBetweenScaDeviceAndResourceandinitiateAssociationBetweenScaDeviceAndResource.
- Deprecated
- Transfers:
- Deprecated
CapitalApi.
- Deprecated
- BalancePlatform:
-
Code generation: update services and models by @AdyenAutomationBot in #1426
Other Changes 🖇️
- chore(deps): update dependency org.mockito:mockito-core to v5.15.2 by @renovate in #1348
- Fix failing failing step for external forks by @ayodejidev in #1429
- Update Java version in POM file by @gcatanese in #1432
- Release v34.0.0 by @AdyenAutomationBot in #1427
Full Changelog: v33.1.0...v34.0.0
Adyen Java API Library v33.1.0
What's Changed
New Features 💎
- Webhooks:
- Classic Payments
- Add
TopUpenum inSplitclass
Other Changes 🖇️
- Improve exception logging in
BankingWebhookHandler - OpenAPI spec files or templates have been modified on 29-01-2025 by commit. Download OpenAPI diffs to view the changes.
- Code generation: update services and models by @AdyenAutomationBot in #1423
- Add deprecation of POS Terminal Management API by @gcatanese in #1420
- Improve deserialization unit testing by @gcatanese in #1421
- Code generation: update services and models by @AdyenAutomationBot in #1424
- Release v33.1.0 by @AdyenAutomationBot in #1422
Full Changelog: v33.0.0...v33.1.0
Adyen Java API Library v33.0.0
What's Changed
Breaking Changes 🛠
- Checkout API:
*airlinePassengerTelephoneNumberattribute renamed toairlinePassengerPhoneNumberinAdditionalDataAirline
New Features 💎
- Checkout API:
- Add
AffirmDetailspayment method - Add
PayPayDetailspayment method - Add
TopUpenum in Split class - Add
autoRescueattribute inAdditionalDataCommon- Set to true to enable Auto Rescue - Add
maxDaysToRescueinAdditionalDataCommon- Specify the rescue window for a transaction, in days, whenautoRescueis set to true. You can specify a value between 1 and 48.
- Add
- Report webhooks:
- Add
idattribute inReportNotificationDataclass
- Add
Other changes 🖇️
Important
From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our Management API.
Before: (deprecated)
https://postfmapi-test.adyen.com/postfmapi/terminal/v1/getTerminalDetailsWe've moved the fieldsTerminalStatustolastActivityAtanddata.AssignmentStatus.
Note that your API-credentials requires the following permission:Management API — Terminal actions read.
// TerminalStatus:
ONLINELAST1DAY ("OnlineLast1Day")
ONLINELAST2DAYS ("OnlineLast2Days")
ONLINELAST3DAYS ("OnlineLast3Days")
ONLINELAST4DAYS ("OnlineLast4Days")
ONLINELAST5DAYS ("OnlineLast5Days")
ONLINELAST6DAYS ("OnlineLast6Days")
ONLINELAST7DAYS ("OnlineLast7Days")
ONLINETODAY ("OnlineToday")
REASSIGNTOINVENTORYPENDING ("ReAssignToInventoryPending")
REASSIGNTOMERCHANTINVENTORYPENDING ("ReAssignToMerchantInventoryPending")
REASSIGNTOSTOREPENDING ("ReAssignToStorePending")
SWITCHEDOFF ("SwitchedOff")- Code generation: update services and models by @AdyenAutomationBot in #1417
- Release v33.0.0 by @AdyenAutomationBot in #1419
Full Changelog: v32.2.0...v33.0.0
Adyen Java API Library v32.2.0
What's Changed
New Features 💎
Adjusted Region class to define region constants and their associated Terminal API endpoint mappings.
-
Terminal API:
- Add Regions support for
livetransactions: use an endpoint that is geographically closest to the location of your store
- Add Regions support for
-
BalancePlatform:
- Added
PriorityRestrictionclass. - In
TransactionRuleRestrictionsaddedpriority. - In
VerificationDeadline,VerificationErrorandVerificationErrorRecursiveaddedissueChargeCard,issueChargeCardCommercial,useChargeCardanduseChargeCardCommercialenum.
- Added
-
ConfigurationWebhooks:
- In
VerificationDeadline,VerificationErrorandVerificationErrorRecursiveaddedissueChargeCard,issueChargeCardCommercial,useChargeCardanduseChargeCardCommercialenum.
- In
-
LegalEntityManagement:
- In
VerificationDeadline,VerificationErrorandVerificationErrorRecursiveaddedissueChargeCard,issueChargeCardCommercial,useChargeCardanduseChargeCardCommercialenum.
- In
-
Update all services by @AdyenAutomationBot in #1416
Other Changes 🖇️
- feat(tls): allow disabling protocol upgrade by @sp00m in #1409
- Revert "feat(tls): allow disabling protocol upgrade" by @DjoykeAbyah in #1414
- Adjust Region class with valid regions plus endpoint mappings for terminal api live by @DjoykeAbyah in #1407
- Release v32.2.0 by @AdyenAutomationBot in #1415
Full Changelog: v32.1.0...v32.2.0
Adyen Java API Library v32.1.0
What's Changed
New Features 💎
- BalancePlatform:
- Added
CounterpartyTypesRestrictionandSourceAccountTypesRestrictionclass - In
TransactionRuleRestrictionsaddedcounterpartyTypesandsourceAccountTypes
- Added
- ConfigurationWebhooks:
- In
AccountHolderNotificationRequest,BalanceAccountNotificationRequest,CardOrderNotificationRequest,PaymentNotificationRequestandSweepConfigurationNotificationRequestaddedtimestamp
- In
- Management:
- In
TerminalConnectivityCellularaddediccid2 - In
UpdatePaymentMethodInfoaddedstoreId
- In
- ManagementWebhooks:
- Added
TerminalAssignmentNotificationRequestandTerminalAssignmentNotificationResponseclass
- Added
- ReportWebhooks:
- In
ReportNotificationRequestaddedtimestamp
- In
- Update all services by @AdyenAutomationBot in #1405
Other Changes 🖇️
- Use a dynamically-generated, random IV by @ayodejidev in #1410
- Deprecate TerminalLocalAPIUnencrypted.java by @ayodejidev in #1412
- Release v32.1.0 by @AdyenAutomationBot in #1411
Full Changelog: v32.0.0...v32.1.0