Skip to content

Releases: checkout/checkout-sdk-java

7.10.0

19 Jun 08:41
039f486

Choose a tag to compare

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 IdentityVerificationClient and FaceAuthenticationClient for retrieving attempt assets with pagination support (skip and limit), along with their implementations. [1] [2] [3] [4] [5] [6] [7] [8]
  • Introduced new response classes for paginated assets: IdentityVerificationAttemptAssetsResponse and FaceAuthenticationAttemptAssetsResponse, including asset metadata and links. [1] [2] [3]
  • Added AttemptAssetsQueryFilter for pagination parameters and AttemptAssetLinks for 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 PaymentSessionInfo to support new fields: authorizationType and paymentPlan, 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

10 Jun 09:18
15f31d4

Choose a tag to compare

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_id field (with documentation) to the following classes: Processing, ProcessingData, and PaymentProcessing, ensuring the field is serialized/deserialized as scheme_transaction_link_id in 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

03 Jun 09:49
7922d92

Choose a tag to compare

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 ProcessingData to support additional payment processing information, including scheme, partnerFraudStatus, partnerMerchantAdviceCode, accommodationData, and airlineData. 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 (AccommodationData and AirlineData) to support the new list fields in ProcessingData.

Test coverage:

  • Introduced a new test class ProcessingDataDeserializationTest that 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

02 Jun 13:28
0c59df9

Choose a tag to compare

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 idempotencyKey parameters to key client interface methods and their implementations for AgenticCommerceClient, IssuingClient, and PaymentContextsClient, 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 the idempotencyKey to the underlying apiClient methods. [1] [2] [3] [4] [5] [6] [7] [8]

Dispute Management Enhancements (IssuingClient)

  • Added async and sync methods for dispute operations (createDispute, getDispute, cancelDispute, escalateDispute) in IssuingClientImpl, 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) from VelocityCardControlResponse.java.

7.8.0

29 May 09:16
bd5d15c

Choose a tag to compare

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 AccountsClient and AccountsClientImpl for 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, and EntityRequirementDetailsResponse, providing detailed information and schema for a requirement. [1] [2]

Onboarding Simulator Client Integration

  • Added the OnboardingSimulatorClient to the CheckoutApi interface and its implementation, making it accessible via the SDK for sandbox testing. [1] [2] [3] [4] [5] [6]

Serialization Enhancements

  • Updated the GsonSerializer to register new type adapters and deserializers for onboarding simulator entities and to support new payment source types. [1] [2] [3] [4]

7.7.4

21 May 14:14
50c03aa

Choose a tag to compare

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 purpose field in FileDetailsResponse from a String to the FilePurpose enum, ensuring type safety and consistency.
  • Updated the FilePurpose enum to include new purposes: ARBITRATION_EVIDENCE and SUBMITTED_EVIDENCE, with appropriate serialization annotations for JSON mapping.

Test Adjustments:

  • Updated test assertions in DisputesTestIT.java and previous/DisputesTestIT.java to compare FilePurpose enum values directly instead of comparing strings, reflecting the new type-safe approach. [1] [2]

7.7.3

12 May 11:56
12c1963

Choose a tag to compare

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 value RETRY_SCHEDULED with serialized name "Retry Scheduled" has been added to represent payments scheduled for retry.

Enum serialization improvements:

  • In Exemption, the @SerializedName annotation for the NONE value now uses "none" as the primary value, with "None" and "NONE" as alternates, ensuring consistent lowercase serialization and swagger definition.
  • In PaymentType, the @SerializedName annotation for the MOTO value 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 to com.checkout.common.ChallengeIndicator, matching the named ChallengeIndicator schema used by POST /sessions (3DS Standalone Authentication).
  • Adds ChallengeIndicatorTest covering 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

27 Apr 13:37
c2be139

Choose a tag to compare

Release - 7.7.2 (#595)

This release adds support for a new payment method type in the PaymentMethodType enum. The most important change is:

New payment method support:

Added the BLIK payment method to the PaymentMethodType enum, annotated with @SerializedName("blik") for proper serialization.

7.7.0

22 Apr 15:47
0dc1962

Choose a tag to compare

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

15 Apr 10:53
68f143a

Choose a tag to compare

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]