Skip to content

Releases: Adyen/adyen-java-api-library

Adyen Java API Library v37.0.0

06 May 11:42
bd169c6
Compare
Choose a tag to compare

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

  • AccountHolderNotificationRequest
    • CREATEDBALANCEPLATFORM_ACCOUNTHOLDER_CREATED
    • UPDATEDBALANCEPLATFORM_ACCOUNTHOLDER_UPDATED
  • BalanceAccountNotificationRequest
    • CREATEDBALANCEPLATFORM_BALANCEACCOUNT_CREATED
    • UPDATEDBALANCEPLATFORM_BALANCEACCOUNT_UPDATED
  • CardOrderNotificationRequest
    • CREATEDBALANCEPLATFORM_CARDORDER_CREATED
    • UPDATEDBALANCEPLATFORM_CARDORDER_UPDATED
  • PaymentNotificationRequest
    • CREATEDBALANCEPLATFORM_PAYMENTINSTRUMENT_CREATED
    • UPDATEDBALANCEPLATFORM_PAYMENTINSTRUMENT_UPDATED
  • SweepConfigurationNotificationRequest
    • CREATEDBALANCEPLATFORM_BALANCEACCOUNTSWEEP_CREATED
    • UPDATEDBALANCEPLATFORM_BALANCEACCOUNTSWEEP_UPDATED
    • DELETEDBALANCEPLATFORM_BALANCEACCOUNTSWEEP_DELETED

TransferWebhooks

  • TransferNotificationRequest
    • CREATEDBALANCEPLATFORM_TRANSFER_CREATED
    • UPDATEDBALANCEPLATFORM_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 BankingWebhookHandler class is now deprecated
  • Recommended: Use instead the dedicated handler in the Webhook package (AcsWebhooks, ReportWebhooksHandler, ConfigurationWebhooks, TransferWebhooks, TransactionWebhooks, etc..)

🌐 HTTP Client Configuration

  • Now supports custom connectionRequestTimeout and defaultKeepAliveTimeout.
  • 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: BalancesApi service now supports BalanceWebhookSetting for managing Balance Webhook criteria.
  • Other changes:
    • New BIC enum in BankIdentification
    • New PENDING enum in CreateSweepConfigurationV2 and UpdateSweepConfigurationV2
    • New replacedById and replacementOfId attributes in PaymentInstrument and UpdatePaymentInstrument
    • New walletProviderAccountScore and walletProviderDeviceScore attributes in TransactionRuleRestrictions
    • New class USInstantPayoutAddressRequirement

🛒 Checkout

  • New Donation type field supporting the following values: roundup, fixedAmounts
    (Documentation)
  • Added sub-merchant info:
    • subMerchantPhoneNumber, subMerchantEmail
    • Nested: subMerchant.subSeller[n].email, subMerchant.subSeller[n].phoneNumber
  • Added bonus enum to CheckoutSessionInstallmentOption

🔄 BalancePlatformTransfer API

  • Added IssuingTransactionData with captureCycleId that provides the captureCycleId associated with transfer event

🔄 BalancePlatformTransfer Webhooks

  • Added IssuingTransactionData with captureCycleId that provides the captureCycleId associated with transfer event

  • Other changes:

    • New enum: ChargebackRemainder in PlatformPayment.platformPaymentType
    • New attribute: externalReason in TransferData
    • New pending enum in TransferData.reason

📬 New Balance Webhook

  • A new Balance webhook is now available to process events related to balance changes.
  • Use: BalancePlatformBalanceWebhooksHandler to consume the Webhook event balancePlatform.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 payaload:
cd tools/hmac
mvn clean compile exec:java -Dexec.mainClass=CalculateHmacPayments -Dexec.args="11223344D785FBAE710E7F943F307971BB61B21281C98C9129B3D4018A57B2EB payload.json"

Check the README


Changes in this release:

Full Changelog: v36.0.1...v37.0.0

Adyen Java API Library v36.0.1

29 Apr 14:37
b48ca0e
Compare
Choose a tag to compare

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 ⛑️

Other Changes 🖇️

Full Changelog: v36.0.0...v36.0.1

Adyen Java API Library v36.0.0

31 Mar 15:48
413ed75
Compare
Choose a tag to compare

What's Changed

Warning

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: remove empty list (i.e."issuers": [])from JSON response.

{
      "apps": [],
      "fundingSource": null,
      "group": null,
      "inputDetails": [],
      "issuers": [],
      "name": "Cards",
      "type": "scheme"
    }

Breaking Changes 🛠

  • ACS webhooks
    ChallengeInfo FlowEnum values have changed:
    • Fixed correct FlowEnum-values in ChallengeInfo - "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

Features 💎

  • Checkout

    • add support for RakutenPay
    • add RequestedTestAcquirerResponseCode in AdditionalDataCommon
  • AcsWebhooks:

    • Add Out-of-band authentication requested webhook event
    • Add new enum PWD_OTP_EMAIL_FL (One-Time Password via Email)
  • Configuration webhooks

    • Add enum PENDINGin SweepConfigurationV2.
  • LEM API

    • Add attribute allowDebugUi in OnboardingLinkSettingsto debug user interface (UI) when applicable.
  • Transactions webhooks

    • Add enum DCCPLATFORMCOMMISSION in PlatformPayment
  • Transfers API

    • Add enum DCCPLATFORMCOMMISSION in PlatformPayment
    • Add enum PENDINGin TransferData
    • Add attribute externalReason in TransferData
    • Add scaOnApproval attribute in TransferReview

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"))

Full Changelog: v35.0.0...v36.0.0

Adyen Java API Library v35.0.0

03 Mar 15:05
f5603d1
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

  • Management API:
    • In AndroidApp the field status has changed from String to StatusEnum (ARCHIVED, ERROR, INVALID, PROCESSING, READY)
  • Management webhooks:
    • In PaymentMethodRequestRemovedNotificationRequest the event type has been renamed to paymentMethodRequest.removed
    • In PaymentMethodScheduledForRemovalNotificationRequest the event type has been renamed to paymentMethodRequest.scheduledForRemoval

New Features 💎

Add support for Session Authentication API to create the sessions required for integrating Adyen Platform components (#1435)

  • Checkout:
    • New payment methods PixDetails and PixRecurring
    • In PaymentRefundResponse add attribute capturePspReference (only available for PayPal refunds)
    • In ResponseAdditionalDataCommon:
      • ⚠️ the recurringRecurringDetailReference and recurringShopperReference are deprecated, use instead the new attribute tokenizationShopperReference
      • add tokenizationStoreOperationType and tokenizationStoredPaymentMethodId attributes, add TokenizationStoreOperationTypeEnum enum
  • Management API:
    • Support AffirmInfo and PayToInfo payment methods
    • in Surcharge class add attribuge excludeGratuityFromSurcharge
  • Payout:
    • In ResponseAdditionalDataCommon:
      • ⚠️ the recurringRecurringDetailReference and recurringShopperReference are deprecated, use instead the new attribute tokenizationShopperReference
      • add tokenizationStoreOperationType and tokenizationStoredPaymentMethodId attributes, add TokenizationStoreOperationTypeEnum enum
  • Classic Payments:
    • In ResponseAdditionalDataCommon:
      • ⚠️ the recurringRecurringDetailReference and recurringShopperReference are deprecated, use instead the new attribute tokenizationShopperReference
      • add tokenizationStoreOperationType and tokenizationStoredPaymentMethodId attributes, add TokenizationStoreOperationTypeEnum enum
  • Terminal API:
    • Add SaleReferenceID field in CustomerOrder class (#1436)

Other Changes 🖇️

Full Changelog: v34.0.0...v35.0.0

Adyen Java API Library v34.0.0

18 Feb 09:05
5df1ba0
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

  • BalancePlatform:
    • Removed PriorityRestriction class.
    • In TransactionRuleRestriction removed priority.
  • BinLookup:
    • In CostEstimateResponse removed surchargeType.
  • Transfers:
    • In TransferReview removed numberOfApprovalsCompleted and scaOnApproval.
  • TransferWebhook:
    • In TransferReview removed numberOfApprovalsCompleted and scaOnApproval.

Features 💎

  • AcsWebhooks:

    • In ChallengeInfo broadening the range of ChallengeCancelEnum.
  • BalancePlatform:

    • Added AssociationDelegatedAuthenticationData, AssociationFinaliseRequest, AssociationFinaliseResponse, AssociationInitiateRequest, AssociationInitiateResponse and TokenRequestorsRestriction class.
    • In TransactionRuleRestriction added tokenRequestors.
  • Checkout:

    • In CardDetails, CardDonations and CheckoutPaymentMethod added fastlaneData.
    • Added FastlaneDetails class.
  • LegalEntityManagement:

    • Added FinancialReport class.
    • In LegalEntityAssociation added nominee.
    • In Organization and SoleProprietorship added financialReports.
  • Service:

    • BalancePlatform:
      • Deprecated GrantAccountsApi and GrantOffersApi.
      • In ManageSCADevicesApi added completeAssociationBetweenScaDeviceAndResource and initiateAssociationBetweenScaDeviceAndResource.
    • Transfers:
      • Deprecated CapitalApi.
  • Code generation: update services and models by @AdyenAutomationBot in #1426

Other Changes 🖇️

Full Changelog: v33.1.0...v34.0.0

Adyen Java API Library v33.1.0

03 Feb 13:14
455dbf3
Compare
Choose a tag to compare

What's Changed

New Features 💎

Add Negative Balance Warning

  • Webhooks:
    • Classic Payments
    • Add TopUp enum in Split class

Other Changes 🖇️

Full Changelog: v33.0.0...v33.1.0

Adyen Java API Library v33.0.0

21 Jan 20:14
b9ba24d
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

  • Checkout API:
    *airlinePassengerTelephoneNumber attribute renamed to airlinePassengerPhoneNumber in AdditionalDataAirline

New Features 💎

  • Checkout API:
    • Add AffirmDetails payment method
    • Add PayPayDetails payment method
    • Add TopUp enum in Split class
    • Add autoRescue attribute in AdditionalDataCommon - Set to true to enable Auto Rescue
    • Add maxDaysToRescue in AdditionalDataCommon - Specify the rescue window for a transaction, in days, when autoRescue is set to true. You can specify a value between 1 and 48.
  • Report webhooks:
    • Add id attribute in ReportNotificationData class

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/getTerminalDetails We've moved the fields TerminalStatus to lastActivityAt and data.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")

Full Changelog: v32.2.0...v33.0.0

Adyen Java API Library v32.2.0

06 Jan 11:52
095096a
Compare
Choose a tag to compare

What's Changed

New Features 💎

  • BalancePlatform:
    • Added PriorityRestriction class.
    • In TransactionRuleRestrictions added priority.
    • In VerificationDeadline, VerificationError and VerificationErrorRecursive added issueChargeCard, issueChargeCardCommercial , useChargeCard and useChargeCardCommercial enum.
  • ConfigurationWebhooks:
    • In VerificationDeadline, VerificationError and VerificationErrorRecursive added issueChargeCard, issueChargeCardCommercial , useChargeCard and useChargeCardCommercial enum.
  • LegalEntityManagement:
    • In VerificationDeadline, VerificationError and VerificationErrorRecursive added issueChargeCard, issueChargeCardCommercial , useChargeCard and useChargeCardCommercial enum.
  • Update all services by @AdyenAutomationBot in #1416

Other Changes 🖇️

Full Changelog: v32.1.0...v32.2.0

Adyen Java API Library v32.1.0

23 Dec 16:19
7e6a06f
Compare
Choose a tag to compare

What's Changed

New Features 💎

  • BalancePlatform:
    • Added CounterpartyTypesRestriction and SourceAccountTypesRestriction class
    • In TransactionRuleRestrictions added counterpartyTypes and sourceAccountTypes
  • ConfigurationWebhooks:
    • In AccountHolderNotificationRequest, BalanceAccountNotificationRequest, CardOrderNotificationRequest, PaymentNotificationRequest and SweepConfigurationNotificationRequest added timestamp
  • Management:
    • In TerminalConnectivityCellular added iccid2
    • In UpdatePaymentMethodInfo added storeId
  • ManagementWebhooks:
    • Added TerminalAssignmentNotificationRequest and TerminalAssignmentNotificationResponse class
  • ReportWebhooks:
    • In ReportNotificationRequest added timestamp
  • Update all services by @AdyenAutomationBot in #1405

Other Changes 🖇️

Full Changelog: v32.0.0...v32.1.0

Adyen Java API Library v32.0.0

10 Dec 10:23
ace4cc1
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

  • LegalEntityManagament:
    • In Trust removed setTaxAbsent attribute
  • Management:
    • In JCBInfo removed serviceLevel null check
  • Classic Payments:
    • Enums in ModificationResult updated to contain underscore prefix eg. CAPTURE_RECEIVED_ to _CAPTURE_RECEIVED_

New Features 💎

  • AcsWebhooks:
    • In AuthenticationNotificationData added timestamp attribute
  • Checkout:
    • In CardDetails and CardDonations added encryptedCard attribute and clicktopay enum
    • In CheckoutPaymentMethod added encryptedCard, bank, clientType, identification and identificationType attributes
    • In DonationPaymentMethod added encryptedCard attribute
    • Added PseDetails class
  • DisputeWebhooks:
    • Added Amount class
    • Added BalancePlatformNotificationResponse class
    • Added DisputeEventNotification
    • Added DisputeNotificationRequest class
    • Added Modelnterface class
    • Added ObjectSerializer class
  • LegalEntityManagament:
    • In PCIQuestionnairesApi added calculatePciStatusOfLegalEntity
    • Added CalculatePciStatusRequest class
    • Added CalculatePciStatusResponse class
    • In LegalEntity added unincorporatedPartnership attribute
    • In LegalEntityAssociation added secondaryPartner and unincorporatedPartnership attributes
    • In LegalEntityInfo and LegalEntityInfoRequiredType added unincorporatedPartnership attribute
    • In OnboardingLinkSettings added enforceLegalAge attribute
    • In PhoneNumber added phoneCountryCode attribute
    • In Trust added description , businessTrust, charitableTrust, discretionaryTrust and familyTrust attributes
    • Added UnincorporatedPartnership class
  • Management:
    • Added DinersInfo class
    • In PaymentMethod and PaymentMethodSetupInfo replaced import from GenericPmWithTdinfo to DinersInfo
    • In PaymentMetdhoResponse added affirm attribute
  • TransactionWebhooks:
    • In TransactionNotificationRequestV4 added timestamp attribute
    • In PlatformPayment added topUp enum value indicating the nature of the transfer
  • TransferWebhooks:
    • Added Airline class
    • Added Leg class
    • Added MerchantPurchaseData class
    • In TransferData added eventId attribute and topUp enum value for category of the transfer
    • In TransferEvent added eventsData
    • Added TransferEventEventsDataInner class
    • In TransferNotificationRequest added timestamp
  • Transfers:
    • Added Airline class
    • Added Leg class
    • Added MerchantPurchaseData class
    • In Transfer and TransferInfo added topUp
    • In TransferData added eventId attribute and topUp enum value for category of the transfer
    • In TransferEvent added eventData attribute
    • Added TransferEventEventsDataInner class
  • Update all services by @AdyenAutomationBot in #1395

Other Changes 🖇️

Full Changelog: v31.3.0...v32.0.0