Skip to content

4.0.0

Latest

Choose a tag to compare

@oschwald oschwald released this 20 Nov 17:46
7d0c939
  • BREAKING: Removed deprecated TransactionReport.Builder(InetAddress, Tag)
    constructor. Use Builder(Tag) and ipAddress(InetAddress) instead.
  • BREAKING: Removed deprecated getUrl() methods from HttpException and
    InvalidRequestException. Use uri() instead.
  • BREAKING: Removed deprecated constructors from FactorsResponse,
    InsightsResponse, and Phone classes.
  • BREAKING: Removed deprecated Subscores class and
    FactorsResponse.getSubscores() method. Use getRiskScoreReasons()
    instead.
  • BREAKING: Java 17 is now required (previously Java 11).
  • BREAKING: Updated geoip2 dependency to 5.0.0-SNAPSHOT. This introduces
    several breaking changes due to changes in the geoip2 library:
    • The IpAddress class no longer extends InsightsResponse from geoip2.
      It now uses composition instead. All public methods remain the same, but
      code relying on IpAddress being an InsightsResponse will need to be
      updated.
    • The GeoIp2Location class no longer extends Location from geoip2. It
      now stores location data directly. All public methods remain the same, but
      code relying on GeoIp2Location being a Location will need to be
      updated.
    • Removed the getMaxMind() method from the IpAddress class as this data
      is not populated in minFraud responses.
  • BREAKING: Converted all response classes to Java records. This change makes
    these classes more concise and provides better immutability guarantees.
    • All get*() accessor methods in response classes are now deprecated and
      will be removed in 5.0.0. Use the automatically generated record accessor
      methods instead (e.g., use riskScore() instead of getRiskScore()).
    • The response class hierarchy has been flattened. InsightsResponse no
      longer extends ScoreResponse, and FactorsResponse no longer extends
      InsightsResponse. Instead, InsightsResponse and FactorsResponse now
      include all fields from their former parent classes directly.
    • All response classes now implement JsonSerializable instead of extending
      AbstractModel. The toJson() method remains available for serialization.
    • Removed the AbstractAddress interface.
  • BREAKING: Updated all request classes to use record-style method naming. The
    get prefix has been removed from all accessor methods (e.g., use userId()
    instead of getUserId()). This applies to all request classes including
    Account, Billing, CreditCard, CustomInputs, Device, Email,
    Event, Order, Payment, Shipping, ShoppingCartItem, Transaction,
    and TransactionReport. Unlike response classes, no deprecated helper methods
    were added as these methods are primarily used for serialization.
  • BREAKING: Updated exception classes to use record-style method naming. The
    get prefix has been removed from all accessor methods. For HttpException,
    use httpStatus() and uri() instead of getHttpStatus() and getUri().
    For InvalidRequestException, use code(), httpStatus(), and uri()
    instead of getCode(), getHttpStatus(), and getUri(). No deprecated
    helper methods were added.
  • Added CREDIT_APPLICATION, FUND_TRANSFER, and SIM_SWAP to the
    Event.Type enum.
  • Added the input /event/party. This is the party submitting the
    transaction. You may provide this using the party method on
    Event.Builder.
  • Added the input /payment/method. This is the payment method associated
    with the transaction. You may provide this using the method method on
    Payment.Builder.
  • Added new email domain fields to the EmailDomain response model:
    • classification - A classification of the email domain. Possible values
      are BUSINESS, EDUCATION, GOVERNMENT, and ISP_EMAIL.
    • risk - A risk score associated with the email domain, ranging from 0.01
      to 99. Higher scores indicate higher risk.
    • volume - The activity on the email domain across the minFraud network,
      expressed in sightings per million. This value ranges from 0.001 to
      1,000,000.
    • visit - An EmailDomainVisit object containing information about an
      automated visit to the email domain, including:
      • status - The status of the domain based on the automated visit.
        Possible values are LIVE, DNS_ERROR, NETWORK_ERROR, HTTP_ERROR,
        PARKED, and PRE_DEVELOPMENT.
      • lastVisitedOn - The date when the automated visit was last completed.
      • hasRedirect - Whether the domain redirects to another URL.
  • Added support for forward-compatible enum deserialization. Enums in response
    models will now return null for unknown values instead of throwing an
    exception. This allows the client to handle new enum values added by the
    server without requiring an immediate client update. This required adding
    READ_ENUMS_USING_TO_STRING and READ_UNKNOWN_ENUM_VALUES_AS_NULL to the
    Jackson ObjectMapper configuration.
  • Added SECUREPAY to the Payment.Processor enum.
  • WebServiceClient.Builder now has an httpClient() method to allow
    passing in a custom HttpClient.