MaxMind minFraud Factors: reason codes, pricing, and use

You open the morning review queue and place two orders beside each other. Both scored around 1, comfortably inside your accept line, and both arrived in the queue because a sampling rule pulled them out. The customer details look ordinary. The payment amounts are close. The scores offer no useful separation, so the first pass leaves you with two nearly identical decisions. Then you look at the reasons attached to each result. One order reached its score through a different combination of signals than the other. If the numbers are almost the same, what should you expect the underlying evidence to tell you?

Factors response and pricing

Factors returns everything in Insights, plus reasons for the score. Each reason names a code. MaxMind supplies a sentence explaining it and a multiplier from 0.01 to 100. Multipliers above 1 raise the score, and those below 1 lower it.

Score costs $0.005 per query. Insights costs $0.015. Factors costs $0.020, four times the price of Score.

The reasons replaced older subscores. MaxMind deprecated those subscores in October 2024 and announced their removal for March 2025 in its release notes.

Comparing minFraud scores

In a test on 5 October 2026, one order went through Score, Insights and Factors in three rounds. The call order changed each round, and all nine calls returned 0.93. Factors returned the same reasons each time.

Earlier calls produced different scores when minutes separated them. The network’s history had moved between those calls. In our test, asked at the same moment, the higher Factors price bought the reasons alongside the same number.

Reviewing score reasons

The Frankfurt cloud IP order scored 3.08 through Factors. Against MaxMind’s example accept threshold of 5.00 or lower, that score sits on the accept side. Factors named ANONYMOUS_IP ×12.5. The New York billing order scored 0.16 and carried ISSUER_ID_NUMBER_COUNTRY_MISMATCH ×4, although no card details were sent.

Factor charts show reasons raising or lowering scores: 42.64 for New York–Prague and 0.8 for consistent Prague
Reasons affecting scores for two orders (demo case)

In the chart, the consistent Prague order and the order that ships abroad carried the same new-email reason. For the consistent Prague order, three lowering reasons accompanied a final score of 0.80. A reviewer sees what pulled a low number down as well as what pushed it up.

Decisimo decision engine

Put these checks into a decision flow

Create rules for credit, fraud or collections, then run them on live decisions.

Reason code reference

The codes our calls returned, in MaxMind’s words:

CodeReason
ANONYMOUS_IPThe Anonymous IP address raised the overall risk score
EMAIL_ACTIVITYminFraud network activity of the email address raised the overall risk score
EMAIL_DOMAINThe email domain raised (or lowered) the overall risk score
EMAIL_FIRST_SEENThe email address being seen for the first time in the minFraud network raised the overall risk score
IP_ACTIVITYThe activity of the IP address in the minFraud network raised the overall risk score
ISSUER_ID_NUMBER_COUNTRY_MISMATCHThe mismatch between IP, billing, shipping and IIN country raised the overall risk score
ORG_DISTANCE_RISKThe risk of the ISP combined with the distance between the billing address and IP address location lowered the overall risk score
SHIP_ACTIVITYminFraud network activity of the ship address raised (or lowered) the overall risk score

A code’s effect can change from one order to another. EMAIL_DOMAIN raised the score for the disposable mailbox and lowered it for the business email address in other calls. MaxMind says a list of current codes may be provided on request. A rule that reads codes therefore needs a branch for a code it does not know.

Using reasons in decisions

  1. Run your own checks before calling Factors.
  2. Show the reasons beside the score for the reviewer.
  3. Use a code itself as a rule condition when that code is the decision, as with ANONYMOUS_IP.
  4. Give every rule that reads codes a branch for an unknown code.
  5. Read a multiplier as weight on the score, not as a probability on its own.
  6. Decide how your rules respond to a failed call. Failed sources return absent values with an error flag, and a source is retried only when it is marked repeatable.
  7. Report transaction outcomes through MaxMind’s Report Transactions API.

Use cases

Account creation

For account creation, the reason can give a reviewer context when the score alone does not show what raised it. MaxMind accepts account creation as an event type.

Checkout and payments

At checkout, a code such as ANONYMOUS_IP can inform a rule directly. The reviewer can also see the reason beside the score when the order is sent for review.

Lending

For a credit application, a reason can inform your review. If your process calls for an explanation to the applicant, make that explanation about your decision. A MaxMind reason describes its account of the score.

Common questions

Is the list of reason codes fixed?

MaxMind gives the current list only on request, so a rule that reads codes needs a branch for one it has not seen.

Can I show a reason to the customer?

The reason is MaxMind’s account of what raised or lowered its score. You can present it as that, and keep your own decision and any explanation of it distinct.

Why did a reason mention a card when we sent none?

In our call, the New York billing order returned ISSUER_ID_NUMBER_COUNTRY_MISMATCH ×4 even though the request carried no card details. The response does not explain why that reason appeared in that case.

What do the API errors mean?

A 429 was rate-limited and not processed. A 402 means the account has run out of credit.

StatusCodeMeaning
400JSON_INVALID, REQUEST_INVALIDThe body is not JSON, or has no valid input
401AUTHORIZATION_INVALIDThe account ID or license key is wrong
402INSUFFICIENT_FUNDSThe account has run out of credit
403PERMISSION_REQUIREDThe account may not use this service
429noneRate-limited, not processed
500SERVER_ERRORAn error while processing

For setup, use the MaxMind account ID and license key together as one HTTP Basic credential. Save it as a credential, then have the assistant configure the data source from MaxMind’s request documentation.

Decisimo decision engine

Put these checks into a decision flow

Create rules for credit, fraud or collections, then run them on live decisions.