- .NET 6.0 and .NET 7.0 have been removed as targets as they have both reach their end of support from Microsoft. If you are using these versions, the .NET Standard 2.1 target should continue working for you.
- .NET 9.0 has been added as a target.
- The minFraud Factors subscores have been deprecated. They will be removed in March 2025. Please see our release notes for more information.
- Added
Epayco
to thePaymentProcessor
enum.
- 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
. - Added
BillingPhone
andShippingPhone
properties 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 thePaymentProcessor
enum. - Removed several obsolete constructors as well as the
Last4Digits
property onMaxMind.MinFraud.Request.CreditCard
.
- Added
PxpFinancial
andTrustpay
to thePaymentProcessor
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.
- .NET 5.0 has been removed as a target as it has reach its end of life. However, if you are using .NET 5.0, the .NET Standard 2.1 target should continue working for you.
- .NET 7.0 and .NET 8.0 have been added as a target.
- Added
GooglePay
,Placetopay
, andShopifyPayments
to thePaymentProcessor
enum. - Added
IWebServiceClient
to facilitate mocking ofWebServiceClient
. Pull request by Ian Göbl. GitHub #152. - Updated
MaxMind.GeoIP2
dependency to version that includes theIsAnycast
property onMaxMind.GeoIP2.Model.Traits
. This istrue
if the IP address belongs to an anycast network. This is available in minFraud Insights and Factors.
- Added the
Country
property toMaxMind.MinFraud.Response.CreditCard
. This is the country where the issuer of the card is located. This may be passed instead ofIssuerIdNumber
if you do not wish to pass partial account numbers or if your payment processor does not provide them.
- This library no longer targets .NET 4.6.1.
- .NET 6.0 was added as a target.
- Removed deprecated code, include:
- The class
MaxMind.MinFraud.Response.GeoIP2Country
was removed. This was a subclass ofMaxMind.GeoIP2.Model.Country
that added anIsHighRisk
property. This property was marked obsolete in 2019. NowMaxMind.GeoIP2.Model.Country
is used directly. - In
MaxMind.MinFraud.Response.Subscores
, the propertiesEmailTenure
andIPTenure
were removed. These were deprecated in the web service and always return a fixed value.
- The class
- Upgraded
MaxMind.GeoIP2
to 4.1.0. This adds mobile country code (MCC) and mobile network code (MNC) to minFraud Insights and Factors responses. These are available atresponse.IPAddress.Traits.MobileCountryCode
andresponse.IPAddress.Traits.MobileNetworkCode
. We expect this data to be available by late January 2022. - Added the following new values to the
PaymentProcessor
enum:Boacompra
Boku
Coregateway
Fiserv
Neopay
Neosurf
Openbucks
Paysera
Payvision
Trustly
Windcave
- The
last4Digits
constructor parameter and andLast4Digits
property ofMaxMind.MinFraud.Request.CreditCard
have been deprecated in favor oflastDigits
/LastDigits
respectively and will be removed in a future release.lastDigits
/LastDigits
also now supports two digit values in addition to the previous four digit values. - Eight digit
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 forMaxMind.MinFraud.Request.CreditCard.lastDigits
. 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
- Added the following new values to the
PaymentProcessor
enum:Cardknox
Creditguard
Credorax
Datacap
Dlocal
Onpay
Safecharge
- Documented the new "test" disposition.
- Added support for the
/disposition/risk_label
output in Score, Insights and Factors. This is the available as theRiskLabel
property ofMaxMind.MinFraud.Response.Disposition
, 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 3-D 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.
- Added
ApplePay
andApsPayments
to thePaymentProcessor
enum. - Added additional normalizing of the request email address in
MaxMind.MinFraud.Request.Email
whenhashAddress
is set totrue
. - Added support for the IP address risk reasons in the minFraud Insights and
Factors responses. This is available at
response.IPAddress.RiskReasons
. It is a list ofMaxMind.MinFraud.Response.IPRiskReason
objects.
- This library now requires .NET Framework 4.6.1 or greater or .NET Standard 2.0 or greater.
- .NET 5.0 was added as a target framework.
System.Text.Json
is now used for serializing and deserializing JSON. If you are serializing the objects yourself, theNewtonsoft.Json
attributes have been removed and you will need to switch toSystem.Text.Json
.- When creating a
Transaction
object, you may now use init-only properties rather than constructor parameters. - You may now create
WebServiceClient
as a typed client withIHttpClientFactory
in .NET Core 2.1+. - Exception objects now correctly implement
ISerializable
. - The
Warnings
properties on the response models are now anIReadOnlyList<Warning>
rather than anIList<Warning>
. - The
Names
properties onNamedEntity
models are nowIReadOnlyDictionary<string, string>
. - The
Subdivisions
property onMaxMind.MinFraud.Response.IPAddress
is now anIReadOnlyList<Subdivision>
. GeoNameId
properties onNamedEntity
models are nowlong?
rather thanint?
to match the underlying database.
- This library now requires .NET Framework 4.5 or greater or .NET Standard 2.0 or greater.
- The device IP address is no longer a required input.
- Added
Tsys
to thePaymentProcessor
enum.
- Added
response.IPAddress.Traits.IsResidentialProxy
to the minFraud Insights and Factors models. This indicates whether the IP address is on a suspected anonymizing network and belongs to a residential ISP.
- Added the following new values to the
PaymentProcessor
enum:Cashfree
FirstAtlanticCommerce
Komoju
Paytm
Razorpay
Systempay
- Added support for new Subscores outputs. These are
available as the
Device
,EmailLocalPart
andShippingAddress
properties onMaxMind.MinFraud.Response.Subscores
on minFraud Factors response objects.
- Added support for the minFraud Report Transaction API. Reporting transactions to MaxMind helps us detect about 10-50% more fraud and reduce false positives for you.
- 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.CreditCard.IsBusiness
on the minFraud Insights and Factors response objects.
- Added support for the
/email/domain/first_seen
output in minFraud Insights and Factors. This is available as theFirstSeen
property onMaxMind.MinFraud.Response.EmailDomain
. - Added the following new values to the
PaymentProcessor
enum:Cardpay
Epx
- Added support for the
/email/is_disposable
output in minFraud Insights and Factors. This is available as theIsDisposable
property onMaxMind.MinFraud.Response.Email
. - Added the following new values to the
PaymentProcessor
enum:Cetelem
Ecommpay
G2aPay
Mercanet
- This library has been updated to support the nullable reference types introduced in C# 8.0.
- 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.
- Added the following new values to the
PaymentProcessor
enum:Affirm
Interac
- Deprecated the
EmailTenure
andIPTenure
properties ofMaxMind.MinFraud.Response.Subscores
. - Deprecated the
IsHighRisk
property ofMaxMind.MinFraud.Response.GeoIP2Country
. netstandard2.1
was added as a target framework.
- Previously,
FactorsAsync
would incorrectly return anInsights
object, hiding Factors-specific fields. Bug reported by Bogdan Polovyk. GitHub #49. - Added the following new values to the
PaymentProcessor
enum:Afterpay
DataCash
Dotpay
GoCardless
Klarna
Payeezy
Paylike
PaymentExpress
Paysafecard
SmartDebit
SynapseFI
- Dependencies were updated.
- The
userId
constructor parameter forWebServiceClient
was renamed toaccountId
and support was added for the error codeACCOUNT_ID_REQUIRED
. - Added the following new values to the
PaymentProcessor
enum:Ccavenue
CtPayments
Dalenys
Oney
Posconnect
- Added support for the
/device/local_time
output. This is exposed as theLocalTime
property onMaxMind.MinFraud.Response.Device
. - Added support for the
/credit_card/is_virtual
output. This is exposed as theIsVirtual
property onMaxMind.MinFraud.Response.CreditCard
. - Added
PayoutChange
to theEventType
enum.
- Updated
MaxMind.GeoIP2
dependency. With this version, theIsInEuropeanUnion
property is now available onMaxMind.MinFraud.Response.GeoIP2Country
andMaxMind.GeoIP2.Model.RepresentedCountry
.IsInEuropeanUnion
istrue
if the country is a member state of the European Union. - Added the following new values to the
PaymentProcessor
enum:Cybersource
TransactPro
Wirecard
- Behavior change: When sending an email address to MaxMind, this library now
defaults 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 set the
hashAddress
constructor parameter totrue
onMaxMind.MinFraud.Request.Email
. - Previously, it was possible to get an
IndexOutOfRangeException
when calling theMaxMind.MinFraud.Request.Email
constructor with an invalid email address. Now anArgumentException
will be thrown. - When sending a hashed email address, the address is now lower-cased before the MD5 is calculated.
- Added the following new values to the
PaymentProcessor
enum:Bpoint
CheckoutCom
Emerchantpay
Heartland
Payway
- A
netstandard2.0
target was added to eliminate additional dependencies required by thenetstandard1.4
target. - As part of the above work, the separate Mono build files were dropped. As
of Mono 5.0.0,
msbuild
is supported. - Updated
MaxMind.GeoIP2
dependency to add support for GeoIP2 Precision Insights anonymizer fields.
- Fixed an issue where the client would throw an exception if the
Content-Length
header was missing in the response. This could happen with chunked responses.
- Added support for custom inputs. These can be set up from your account portal.
- Added support for the
/device/session_age
and/device/session_id
inputs. Use thesessionAge
andsessionId
constructor parameters onMaxMind.MinFraud.Request.Device
to set them. - Added support for the
/email/first_seen
output. UseFirstSeen
onMaxMind.MinFraud.Response.FirstSeen
to access it. - Added the following new values to the
PaymentProcessor
enum:AmericanExpressPaymentGateway
Bluesnap
Commdoo
Curopayments
Ebs
Exact
Hipay
LemonWay
.Oceanpayment
Paymentwall
Payza
Securetrading
SolidtrustPay
Vantiv
Vericheck
Vpos
- Updated the docs for
MaxMind.MinFraud.Response.Address
now thatIsPostalInCity
may be returned for addresses world-wide. - Switched to the updated MSBuild .NET Core build system.
- Moved tests from NUnit to xUnit.net.
- 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.
- Updated to .NET Core 1.1.
- Fixed a bug where a null
username
passed to the requestAccount
model would cause an exception when attempting to encode the username as an MD5.
- Added
/credit_card/token
input. Use thetoken
constructor parameter onMaxMind.MinFraud.Request.CreditCard
to set it. - All validation regular expressions are now pre-compiled.
- Use framework assembly for
System.Net.Http
on .NET 4.5 rather than NuGet package.
- Added the following new values to the
EventType
enum:EmailChange
andPasswordReset
.
- First production release. No code changes.
- Re-release of 0.7.0 to fix strong-name issue. No code changes.
- .NET Core 1.0 support.
- Clarification of unit price in documentation.
- .NET Core support.
Email
request class constructor now takes astring
email address rather than aMailAddress
. This was does as CoreFX does not currently haveSystem.Net.Mail
.- Exceptions are no longer serializable.
- Added the following new values to the
PaymentProcessor
enum:ConceptPayments
,Ecomm365
,Orangepay
, andPacnetServices
.
- BREAKING CHANGE:
CreditsRemaining
has been removed from the web service models and has been replaced byQueriesRemaining
. - Added
QueriesRemaining
andFundsRemaining
. Note thatFundsRemaining
will not be returned by the web service until our new credit system is in place. Confidence
andLastSeen
were added to theDevice
response model.LocalTime
in theGeoIP2Location
model is now nullable.
- Added support for the minFraud Factors.
- Added IP address risk to the minFraud Score model.
- Handle
PERMISSION_REQUIRED
errors by throwing aPermissionRequiredException
. - Updated dependencies.
- Added the following new values to the
PaymentProcessor
enum:Ccnow
,Dalpay
,Epay
(replacesEpayeu
),Payplus
,Pinpayments
,Quickpay
, andVerepay
.
- The target framework is now .NET 4.5 rather than 4.5.2.
- Updated GeoIP2 to 2.6.0-beta2.
- Added support for new minFraud Insights outputs. These are:
/credit_card/brand
/credit_card/type
/device/id
/email/is_free
/email/is_high_risk
Input
on theWarning
response model has been replaced withInputPointer
. The latter is a JSON pointer to the input that caused the warning.- Updated GeoIP2 to 2.6.0-beta1.
- Actually remove the BCL dependency.
- Update
MaxMind.GeoIP2
to 2.5.0. This removes the BCL dependency. - Upgrade to NUnit 3.
- Update
MaxMind.GeoIP2
to 2.4.0.
- Add
is_gift
andhas_gift_message
order inputs. - Upgrade to the latest GeoIP2 release.
Score.CreditsRemaining
was change from aulong?
tolong?
in order to be more CLS compliant.- GeoIP2 dependency was updated to a version that does not depend on RestSharp.
- Some parameters and properties were changed from using concrete classes to interfaces.
- The library now has a strong name.
- Upgrade to Json.NET 7.0.1 and GeoIP2 2.3.1-beta1.
- Release as beta.
- Initial release.