Releases: checkout/checkout-sdk-java
7.10.0
Release 7.10.0 (#613)
This release introduces new functionality for retrieving assets (such as face images, videos, and document images) captured during identity and face authentication attempts, including both asynchronous and synchronous methods. It also adds supporting data models for paginated asset responses and asset metadata. Additionally, there are minor enhancements to the payments API.
Identity & Face Authentication Assets Retrieval:
- Added asynchronous and synchronous methods to both
IdentityVerificationClientandFaceAuthenticationClientfor retrieving attempt assets with pagination support (skipandlimit), along with their implementations. [1] [2] [3] [4] [5] [6] [7] [8] - Introduced new response classes for paginated assets:
IdentityVerificationAttemptAssetsResponseandFaceAuthenticationAttemptAssetsResponse, including asset metadata and links. [1] [2] [3] - Added
AttemptAssetsQueryFilterfor pagination parameters andAttemptAssetLinksfor asset download URLs. [1] [2]
Imports and Constants:
- Updated imports and added new constants for asset paths in client implementations. [1] [2] [3] [4] [5] [6]
Payments API Enhancements:
- Extended
PaymentSessionInfoto support new fields:authorizationTypeandpaymentPlan, allowing for more flexible payment session handling. [1] [2]…ntegration tests
Breaking changes:
- AmlScreeningClient, FaceAuthenticationClient, IdDocumentVerificationClient, IdentityVerificationClient, ReconciliationClient function names adjusted to the default API async/sync nomenclature, by default, the functions without suffix are async, the syncronous ones are suffixed with *Sync.
7.9.2
Release 7.9.2 - Transaction Link Identifier update (#610)
This release introduces support for the scheme_transaction_link_id field across several payment processing classes. This field, primarily relevant for Mastercard transactions, is now included in the models, and comprehensive test coverage ensures correct serialization and deserialization. The main focus is to enable the SDK to expose and handle this identifier, which links related transactions on the Mastercard network.
Support for Mastercard Transaction Link Identifier:
- Added the
scheme_transaction_link_idfield (with documentation) to the following classes:Processing,ProcessingData, andPaymentProcessing, ensuring the field is serialized/deserialized asscheme_transaction_link_idin JSON. [1] [2] [3] - Updated integration and unit tests to verify correct handling of the new field, including deserialization, serialization, and null handling when the field is absent. [1] [2] [3] [4] [5] [6] [7] [8] [9]
- Added necessary imports and assertions in test files to support the new field and its test cases. [1] [2]
These changes ensure that the SDK is ready to handle Mastercard's transaction link identifiers, providing better traceability for related transactions.
7.9.1
Release 7.9.1 - ProcessingData fields update (#607)
This release enhances the ProcessingData model to align with the latest Checkout.com API specification, adding support for several new fields related to payment processing, and introduces comprehensive deserialization tests to ensure correct handling of these fields.
Model enhancements:
- Added new fields to
ProcessingDatato support additional payment processing information, includingscheme,partnerFraudStatus,partnerMerchantAdviceCode,accommodationData, andairlineData. These fields provide more granular details about the payment, such as the network used, fraud status, merchant advice codes, and booking information for accommodations and airlines. - Imported the necessary model classes (
AccommodationDataandAirlineData) to support the new list fields inProcessingData.
Test coverage:
- Introduced a new test class
ProcessingDataDeserializationTestthat verifies deserialization of all newly added fields, as well as their correct handling when absent, ensuring robust compatibility with the updated API contract.
7.9.0
Release 7.9.0 - Idempotency keys upgrade (#605)
This release introduces support for idempotency keys in several client interfaces and their implementations, enhancing the ability to safely retry API requests without unintended side effects. The changes affect the Agentic Commerce, Issuing, and Payment Contexts clients, updating both asynchronous and synchronous methods to accept an idempotencyKey parameter. Corresponding unit and integration tests have been updated or added to verify this new functionality.
Idempotency Key Support
- Added
idempotencyKeyparameters to key client interface methods and their implementations forAgenticCommerceClient,IssuingClient, andPaymentContextsClient, affecting both async and sync variants. This ensures that duplicate requests can be safely handled by the API. [1] [2] [3] [4] [5] [6] - Updated implementation classes (
AgenticCommerceClientImpl,IssuingClientImpl,PaymentContextsClientImpl) to pass theidempotencyKeyto the underlyingapiClientmethods. [1] [2] [3] [4] [5] [6] [7] [8]
Dispute Management Enhancements (IssuingClient)
- Added async and sync methods for dispute operations (
createDispute,getDispute,cancelDispute,escalateDispute) inIssuingClientImpl, with support for idempotency keys. [1] [2] [3] [4] [5] [6] [7] [8]
Test Updates
- Updated and expanded unit and integration tests to cover new method signatures with idempotency keys, ensuring correct behavior for both regular and idempotent requests. [1] [2] [3] [4]
Minor Code Cleanup
- Removed an unused import (
@AllArgsConstructor) fromVelocityCardControlResponse.java.
7.8.0
Release 7.8.0 (#603)
This release introduces new functionality for managing and resolving compliance requirements for sub-entities in the Accounts API, and also adds support for the Onboarding Simulator client. The changes include new API methods, response classes, and enhancements to serialization logic to support these features.
Accounts API: Entity Requirements Management
- Added new asynchronous and synchronous methods to
AccountsClientandAccountsClientImplfor retrieving a list of pending requirements, fetching details for a specific requirement, and submitting responses to resolve requirements. These methods allow clients to programmatically manage compliance requirements for sub-entities. [1] [2] [3] [4] - Introduced new data classes:
EntityRequirementListItem, representing a pending requirement, andEntityRequirementDetailsResponse, providing detailed information and schema for a requirement. [1] [2]
Onboarding Simulator Client Integration
- Added the
OnboardingSimulatorClientto theCheckoutApiinterface and its implementation, making it accessible via the SDK for sandbox testing. [1] [2] [3] [4] [5] [6]
Serialization Enhancements
- Updated the
GsonSerializerto register new type adapters and deserializers for onboarding simulator entities and to support new payment source types. [1] [2] [3] [4]
7.7.4
Release 7.7.4 (#601)
This release updates the handling of file purposes in the codebase to use a type-safe enum instead of raw strings, and adds support for additional file purposes. The changes improve code reliability and clarity by enforcing the use of the FilePurpose enum throughout the code and by expanding the recognized file purposes.
File Purpose Handling Improvements:
- Changed the
purposefield inFileDetailsResponsefrom aStringto theFilePurposeenum, ensuring type safety and consistency. - Updated the
FilePurposeenum to include new purposes:ARBITRATION_EVIDENCEandSUBMITTED_EVIDENCE, with appropriate serialization annotations for JSON mapping.
Test Adjustments:
- Updated test assertions in
DisputesTestIT.javaandprevious/DisputesTestIT.javato compareFilePurposeenum values directly instead of comparing strings, reflecting the new type-safe approach. [1] [2]
7.7.3
Release 7.7.3 (#598)
Summary
This release updates enum definitions to improve serialization consistency and support new payment status values. The most important changes are grouped below:
New payment status support:
- In
PaymentStatus, a new enum valueRETRY_SCHEDULEDwith serialized name"Retry Scheduled"has been added to represent payments scheduled for retry.
Enum serialization improvements:
- In
Exemption, the@SerializedNameannotation for theNONEvalue now uses"none"as the primary value, with"None"and"NONE"as alternates, ensuring consistent lowercase serialization and swagger definition. - In
PaymentType, the@SerializedNameannotation for theMOTOvalue now uses"MOTO"as the primary value, with"Moto"as an alternate, standardizing the serialized output with the swagger definition.
and
Summary
- Adds the five exemption values (
LOW_VALUE,TRUSTED_LISTING,TRUSTED_LISTING_PROMPT,TRANSACTION_RISK_ASSESSMENT,DATA_SHARE) back tocom.checkout.common.ChallengeIndicator, matching the namedChallengeIndicatorschema used byPOST /sessions(3DS Standalone Authentication). - Adds
ChallengeIndicatorTestcovering serialization, deserialization and round-trip for all nine values via the Gson serializer.
Why
A prior refactor moved these values out of ChallengeIndicator into a separate Exemption enum, but SessionRequest.challengeIndicator was never updated to accept exemptions through any other field. That broke merchant code such as:
SessionRequest.builder()
.challengeIndicator(ChallengeIndicator.TRANSACTION_RISK_ASSESSMENT)
.build();A merchant on the Standalone Authentication product is currently blocked from upgrading the SDK because of this.
The new values carry a JavaDoc note indicating they are only valid for POST /sessions. The inline challenge_indicator used by POST /payments three_ds and by session responses still only accepts the original four values — the API rejects the others at runtime.
Follow-up (separate PR)
A cleaner split is still pending: introduce com.checkout.sessions.SessionChallengeIndicator (9 values) and mark the five new values on common.ChallengeIndicator as @deprecated so the swagger-level distinction (named schema for /sessions vs inline 4-value enum for /payments) is reflected in the SDK type system. Keeping this PR minimal to unblock the merchant first.
Test plan
- CI: ./gradlew compileJava compileTestJava passes
- CI: ./gradlew javadoc passes (no broken JavaDoc tags)
- CI: ./gradlew test --tests ChallengeIndicatorTest passes
- Sanity: build a SessionRequest with each of the five new values and confirm the JSON body has the expected snake_case string for challenge_indicator
7.7.2
7.7.0
Release 7.7.0 (#589)
- Add new payment methods for Payment Setups (ACH, AlipayHK/CN, ApplePay, Bancontact, SEPA, Swish, Tamara, and more)
- Add UpdateInstrumentAch and UpdateInstrumentSepa request/response classes
- Add AccommodationData, AccommodationGuest, AccommodationRoom for payments
- Add TrustedListing and TrustedListingStatus to ThreeDSData
- Add PayPalResponseSource response class
- Add DunningRetryRequest and DowntimeRetryRequest for payment retry
- Add Aggregator and AchServiceType classes
- Extend PaymentProcessing, ProcessingSettings, PaymentRequest, PayoutRequest with new fields
- Extend HostedPaymentRequest and PaymentLinkRequest with new fields
- Extend Dispute and CompellingEvidence with new evidence fields
- Add MobileRedirectLink, QrCode, and Product common classes
- Extend GetCardInstrumentResponse with InstrumentNetworkToken
- Add schema serialization tests for new and updated classes
7.6.1
Release - 7.6.1 (#585)
This release removes the country field of type CountryCode from the PaymentRecipient class and updates related test code to reflect this change. This simplifies the data model for payment recipients by eliminating the country information.
Model simplification:
Removed the country field (of type CountryCode) from the PaymentRecipient class in PaymentRecipient.java.
Removed the unused import of CountryCode from PaymentRecipient.java.
Test updates:
Updated TestHelper.java and GetPaymentsTestIT.java to remove usage of the country field when creating PaymentRecipient instances in tests. [1] [2]