- The minFraud Factors subscores have been deprecated. They will be removed in March 2025. Please see our release notes for more information.
- Added support for the new risk reasons outputs in minFraud Factors. The risk reasons output codes and reasons are currently in beta and are subject to change. We recommend that you use these beta outputs with caution and avoid relying on them for critical applications.
- Updated
TransactionReport
to make theipAddress
parameter optional. Now thetag
and at least one of the following parameters must be supplied:ipAddress
,maxmindId
,minfraudId
,transactionId
. - The
TransactionReport.Builder(INetAddress, Tag)
constructor has been deprecated in favor of the newTransactionReport.Builder(Tag)
constructor. - Added
getBillingPhone
andgetShippingPhone
methods to the minFraud Insights and Factors response models. These contain objects with information about the respective phone numbers. Please see our developer site for more information. - Added
PAYCONEX
to thePayment.Processor
enum.
- Added
PXP_FINANCIAL
andTRUSTPAY
to thePayment.Processor
enum. - Equivalent domain names are now normalized when
hashAddress
is used. For example,googlemail.com
will becomegmail.com
. - Periods are now removed from
gmail.com
email address local parts whenhashAddress
is used. For example,[email protected]
will become[email protected]
. - Fastmail alias subdomain email addresses are now normalized when
hashAddress
is used. For example,[email protected]
will become[email protected]
. - Additional
yahoo.com
email addresses now have aliases removed from their local part whenhashAddress
is used. For example,[email protected]
will become[email protected]
for additionalyahoo.com
domains. - Duplicate
.com
s are now removed from email domain names whenhashAddress
is used. For example,example.com.com
will becomeexample.com
. - Certain TLD typos are now normalized when
hashAddress
is used. For example,example.comcom
will becomeexample.com
. - Additional
gmail.com
domain names with leading digits are now normalized whenhashAddress
is used. For example,100gmail.com
will becomegmail.com
. - Additional
gmail.com
typos are now normalized whenhashAddress
is used. For example,gmali.com
will becomegmail.com
. - When
hashAddress
is used, all trailing periods are now removed from an email address domain. Previously only a single period was removed. - When
hashAddress
is used, the local part of an email address is now normalized to NFC.
- Updated
geoip2
dependency to version that includes theisAnycast
method oncom.maxmind.geoip2.record.Traits
. This returnstrue
if the IP address belongs to an anycast network. This is available in minFraud Insights and Factors.
- Updated
geoip2
to 4.1.0 to prevent exception when deserializing the newSatellite
value to theConnectionType
enum. Pull request by Neal Zhu. GitHub #278. - Jackson was updated to 2.15.2.
com.maxmind.geoip2
is now a transitive dependency of this Java module.- Added
PLACETOPAY
to thePayment.Processor
enum.
- This library is now a Java module.
- Removed deprecated
last4Digits
method onCreditCard.Builder
andgetLast4Digits
method onCreditCard
. UselastDigits
andgetLastDigits
instead. - Removed deprecated
connectTimeout(int)
,readTimeout(int)
, andproxy(Proxy)
onWebServiceClient.Builder
. UseconnectTimeout(Duration)
,requestTimeout(Duration)
, andproxy(ProxySelector)
instead. WebServiceClient
no longer implementsCloseable
and theClose
method has been removed. This method was deprecated when the library switched to usingjava.net.http.HttpClient
.
- Added
GOOGLE_PAY
andSHOPIFY_PAYMENTS
to thePayment.Processor
enum. - Updated Jackson and GeoIP2 dependencies.
- Added the input
/credit_card/country
. This is the country where the issuer of the card is located. This may be passed instead of the/credit_card/issuer_id_number
if you do not wish to pass partial account numbers or if your payment processor does not provide them. You may provide this using thecountry
method onCreditCard.Builder
.
- Java 11 or greater is now required.
- Apache HttpClient has been replaced with
java.net.http.HttpClient
. - The
close()
method onWebServiceClient
is now deprecated. It no longer does anything. - On
WebServiceClient.Builder
:connectTimeout(int)
has been deprecated in favor ofconnectTimeout(Duration)
.readTimeout(int)
has been deprecated in favor ofrequestTimeout(Duration)
.proxy(Proxy)
has been deprecated in favor ofproxy(ProxySelector)
.
- On
HttpException
andInvalidRequestException
,getUrl()
has been deprecated in favor ofgetUri()
. Constructors that took aURL
have been replaced with the equivalent taking aURI
. - Deprecated constructors on model classes were removed.
- Removed deprecated response methods:
Email.getAddressMd5()
Subscores.getEmailTenure()
Subscores.getIpTenure()
- Removed
GeoIp2Country
and its associatedisHighRisk()
method.IpAddress.getCountry()
now returns acom.maxmind.geoip2.record.Country
. - Removed deprecated
Payment.Processor.VERAPAY
enum value. UseVEREPAY
instead. Email.getDomain()
will now return an empty object rather than null if there is no domain data. This is match other response model class getters.- Upgraded the
geoip2
dependency to 2.16.1. This adds mobile country code (MCC) and mobile network code (MNC) to minFraud Insights and Factors responses. These are available atresponse.getIpAddress.getTraits.getMobileCountryCode()
andresponse.getIpAddress.getTraits.getMobileNetworkCode()
. We expect this data to be available by late January 2022. - The following payment processors were added to the
Payment.Processor
enum:BOACOMPRA
BOKU
COREGATEWAY
FISERV
NEOPAY
NEOSURF
OPENBUCKS
PAYSERA
PAYVISION
TRUSTLY
WINDCAVE
com.maxmind.minfraud.request.CreditCard.last4Digits
has been deprecated in favor oflastDigits
and will be removed in a future release.lastDigits
/last4Digits
also now supports two digit values in addition to the previous four digit values.- Eight digit
com.maxmind.minfraud.request.CreditCard.issuerIdNumber
inputs are now supported in addition to the previously accepted six digitissuerIdNumber
. In most cases, you should send the last four digits forcom.maxmind.minfraud.request.CreditCard.last4Digits
. If you send aissuerIdNumber
that contains an eight digit IIN, and if the credit card brand is not one of the following, you should send the last two digits forlastDigits
:Discover
JCB
Mastercard
UnionPay
Visa
- Apache Commons Codec is no longer used for generating MD5s.
- The following payment processors were added to the
Payment.Processor
enum:CARDKNOX
CREDITGUARD
CREDORAX
DATACAP
DLOCAL
ONPAY
SAFECHARGE
- Documented the new
test
disposition action. - Added support for the
/disposition/rule_label
output in Score, Insights and Factors. This is available atresponse.getDisposition().getRuleLabel()
, and is the label of the custom rule that was triggered by the transaction. - Added support for the
/credit_card/was_3d_secure_successful
input in Score, Insights and Factors. This input should indicate whether or not the outcome of 3D-Secure verification (e.g. Safekey, SecureCode, Verified by Visa) was successful.true
if customer verification was successful, orfalse
if the customer failed verification. If 3-D Secure verification was not used, was unavailable, or resulted in another outcome other than success or failure, do not include this field. Use thewas3dSecureSuccessful(Boolean)
method oncom.maxmind.minfraud.request.CreditCard.Builder
to set it.
- The following payment processors were added to the
Payment.Processor
enum:APPLE_PAY
APS_PAYMENTS
- Added additional normalizing of the email address if
hashAddress
is enabled. - Added support for the IP address risk reasons in the minFraud Insights and
Factors responses. This is available at
response.getIpAddress().getRiskReasons()
. It is a list ofIpRiskReason
objects.
- The HTTP client now allows up to 20 connections to be active at once. Previously the limit was 2. Reported by mjancewicz. GitHub #110.
TSYS
was added to thePayment.Processor
enum.- The device IP address is no longer a required input.
- The following payment processors were added to the
Payment.Processor
enum:CASHFREE
FIRST_ATLANTIC_COMMERCE
KOMOJU
PAYTM
RAZORPAY
SYSTEMPAY
- Added support for three new Factors outputs:
/subscores/device
(the risk associated with the device),/subscores/email_local_part
(the risk associated with the part of the email address before the @ symbol) and/subscores/shipping_address
(the risk associated with the shipping address).
- Added support for Report Transaction API. Report Transaction requests can be
created via
TransactionReport.Builder()
. - Updated Jackson dependencies to 2.11.0.
- Added support for the new credit card output
/credit_card/is_business
. This indicates whether the card is a business card. It may be accessed viaresponse.getCreditCard().isBusiness()
on the minFraud Insights and Factors response objects.
- Added support for the new email output
/email/domain/first_seen
This can be accessed viaresponse.getEmail().getDomain().getFirstSeen()
. - Added
Device.getLastSeenDateTime()
,Device.getLocalDateTime()
,Email.getFirstSeenDate()
, andGeoIp2Location.getLocalDateTime()
methods that returnjava.time
objects rather than strings. - The request event time is now stored internally as a
ZonedDateTime
. AnEvent.Builder.time(ZonedDateTime)
method was also added to the event builder. - The following payment processors were added to the
Payment.Processor
enum:CARDPAY
EPX
- Added support for the new email output
/email/is_disposable
. This can be accessed via theisDisposable()
method on theEmail
response object.
- IMPORTANT: Java 8 is now required. If you need Java 7 support, please continue using 1.9.0.
- Added constructor to
com.maxmind.minfraud.request.Email.Builder
that allows validation to be disabled. - The client-side validation for numeric custom inputs has been updated to match the server-side validation. The valid range is -9,999,999,999,999 to 9,999,999,999,999. Previously, larger numbers were allowed.
- Responses with chunked encoding are now handled correctly.
- The following payment processors were added to the
Payment.Processor
enum:AFFIRM
AFTERPAY
CETELEM
DATACASH
DOTPAY
ECOMMPAY
G2A_PAY
GOCARDLESS
INTERAC
KLARNA
MERCANET
PAYEEZY
PAYLIKE
PAYMENT_EXPRESS
PAYSAFECARD
SMARTDEBIT
SYNAPSEFI
VEREPAY
- Deprecated
VERAPAY
in thePayment.Processor
enum. This was a misspelling ofVEREPAY
. - Deprecated
getEmailTenure()
andgetIpTenure()
methods ofcom.maxmind.minfraud.response.Subscores
. - Deprecated the
isHighRisk()
method ofcom.maxmind.minfraud.response.GeoIP2Country
.
- Renamed MaxMind user ID to account ID in the code and added support for the
new
ACCOUNT_ID_REQUIRED
error code. - The following payment processors were added to the
Payment.Processor
enum:CCAVENUE
CT_PAYMENTS
DALENYS
ONEY
POSCONNECT
- Added new type to the
Event.Type
enum:PAYOUT_CHANGE
- Added support for new Device output:
/device/local_time
- Added support for new CreditCard output:
/credit_card/is_virtual
- Updated
geoip2
dependency. This version adds theisInEuropeanUnion()
method tocom.maxmind.geoip2.record.Country
andcom.maxmind.minfraud.response.GeoIp2Country
. This returnstrue
if the country is a member state of the European Union. - The web service client now correctly handles a proxy of
Proxy.NO_PROXY
. PR by Ernest Sadykov. GitHub #32. - The following payment processors were added to the
Payment.Processor
enum:CYBERSOURCE
TRANSACT_PRO
WIRECARD
- The following payment processors were added to the
Payment.Processor
enum:BPOINT
CHECKOUT_COM
EMERCHANTPAY
HEARTLAND
PAYWAY
- Updated
geoip2
dependency to add support for GeoIP2 Precision Insights anonymizer fields. - Replaced use of deprecated
com.fasterxml.jackson.databind.util.ISO8601DateFormat
withcom.fasterxml.jackson.databind.util.StdDateFormat
wherewithColonInTimeZone
is set totrue
.
- Behavior change! Default to sending the plain text email address rather
than its MD5 hash. Previously only the MD5 hash of the email address
would be sent, and sending the plain text email address was not possible.
If you wish to send only the MD5 hash of the email address, you must now
call
hashAddress()
on theEmail
builder in addition toaddress()
. - When sending a hashed email address, the address is now lower-cased before the MD5 is calculated.
- Update Jackson and WireMock dependencies.
- Corrected serialization of
/event/time
input to be valid RFC 3339. Reported by Luis Rojas. GitHub #26.
- Added support for custom inputs. These can be set up from your account portal.
- Added support for new Device inputs. These are:
/device/session_age
/device/session_id
- Added support for new Email outputs. These are:
/email/first_seen
- The following payment processors were added to the
Payment.Processor
enum:AMERICAN_EXPRESS_PAYMENT_GATEWAY
BLUESNAP
COMMDOO
CUROPAYMENTS
EXACT
OCEANPAYMENT
PAYMENTWALL
PAYZA
SECURETRADING
SOLIDTRUST_PAY
VANTIV
VERICHECK
VPOS
- Added the following new values to the
Payment.Processor
enum:EBS
,HIPAY
, andLEMON_WAY
. - Updated the docs for
com.maxmind.minfraud.response.AbstractAddress
now thatisPostalInCity
may be returned for addresses world-wide. - Updated dependencies.
- The disposition was added to the minFraud response models. This is used to return the disposition of the transaction as set by the custom rules for the account.
- Added
/credit_card/token
input. Use thetoken(String)
method oncom.maxmind.minfraud.request.CreditCard.Builder
to set it. - All validation regular expressions are now pre-compiled.
- Non-ASCII characters are now correctly encoded as UTF-8 in the request body. Reported by Julien Guery. GitHub #17.
- Added two new types to the
Event.Type
enum:EMAIL_CHANGE
andPASSWORD_RESET
. - Update Jackson and WireMock dependencies.
- First production release.
- Connections will now be reused between requests made with the same
WebServiceClient
object. WebServiceClient
now implementsCloseable
.- You are now able to set a proxy to use via the
WebServiceClient.Builder
proxy(Proxy)
method. - Updated dependencies.
- Added the following new values to the
Payment.Processor
enum:CONCEPT_PAYMENTS
,ECOMM365
,ORANGEPAY
, andPACNET_SERVICES
.
- BREAKING CHANGE:
getCreditsRemaining()
has been removed from the web service models and has been replaced bygetQueriesRemaining()
. - Added
getQueriesRemaining()
andgetFundsRemaining()
. Note thatgetFundsRemaining()
will not be returned by the web service until our new credit system is in place. - Added
getLastSeen()
andgetConfidence()
to theDevice
response model. - This API now throws an
IllegalArgumentException
whennull
values are passed to constructors or methods that require non-null values.
- Added support for the minFraud Factors.
- Added IP address risk to the minFraud Score model.
- Handle
PERMISSION_REQUIRED
errors by throwing aPermissionRequiredException
. - Updated dependency.
- Added the following new values to the
Payment.Processor
enum:CCNOW
,DALPAY
,EPAY
(replacesEPAYEU
),PAYPLUS
,PINPAYMENTS
,QUICKPAY
, and `VERAPAY
- Added support for new minFraud Insights outputs. These are:
/credit_card/brand
/credit_card/type
/device/id
/email/is_free
/email/is_high_risk
- The
Warning.getInput()
method has been replaced byWarning.getInputPointer()
, which returns a JSON Pointer rather than array. - The
ScoreResponse.getId()
andInsightsResponse.getId()
methods now returnUUID
objects instead of strings.
- Added support for
is_gift
andhas_gift_message
to the order input object. - Jackson now uses the constructors to deserialize to the response model classes rather than overriding the access modifiers on them.
- A null pointer bug was fixed in
getInput()
of theWarning
model when theinput
array is not present in the JSON object. - Update GeoIP2 and other dependencies.
- First beta release.
- Add org.sonatype.oss to the Maven configuration.
- Initial release