Skip to content

Last updated: 16 July 2026 | Change log

Fraud assessment

How to enable

Using the instruction.fraud object and setting the type value to fraudSight enables a risk assessment to run as part of the payment request.

Sequence diagram

Card payment with FraudSight enabled that results in a highRisk assessment outcome that stops the payment.

Payments APIMerchant BackendMerchant FrontendBrowserPayments APIMerchant BackendMerchant FrontendBrowseroutcome: highRisk Payment stoppedTransaction failedClick PayPayPayment requestFraud assessmentPayment responseTransaction failed
Payments APIMerchant BackendMerchant FrontendBrowserPayments APIMerchant BackendMerchant FrontendBrowseroutcome: highRisk Payment stoppedTransaction failedClick PayPayPayment requestFraud assessmentPayment responseTransaction failed

Fraud object (Required)

"fraud": {
  "type": "fraudSight"
}

Schema

typestringrequired

Enable a FraudSight risk assessment

Default "fraudSight"
Value"fraudSight"
silentModeboolean

Perform the Fraud assessment but do not act on the outcome. Normally used for the initial launch while the data model is maturing.

Default false
deviceDataobject
customobject
tmxSessionIdstring[ 30 .. 128 ] characters
Deprecated
^[A-Za-z0-9_-]*$

Device fingerprint provided by Threatmetrix.

Additional values used by the assessment

As well as core payment details such as the cardNumber, billingAddress and any settings in the instruction.fraud object, the following key:values are used as part of the risk assessment. By providing these, it means more data points and a slight increase in spotting potential fraud.

instruction.customerfirstName, lastName, email, phone, dateOfBirth, customerId, ipAddress
instruction.shippingfirstName, lastName, address

SilentMode

Setting instruction.fraud.silentMode to true allows an assessment to be run but the outcome (highRisk) is not stopping the transaction. This is primarily used when first going live and a certain amount of real data is required to mature the data model and make the assessments more accurate. Normally a few weeks is enough but this varies with the number of transactions sent.

Ravelin device data

To provide even more data points for an assessment, you can run the Ravelin SDK on your customer's browser or device. This creates a fingerprint of a customer, based on data like ipAddress and browser details, and performs a GeoIP lookup for a rough idea of the location.

Web device data

Ravelin JS library for web sites

Android SDK

(coming soon)

iOS SDK

(coming soon)

The deviceId representing this fingerprint is provided in instruction.fraud.deviceData.collectionReference.

Move to Ravelin SDK

The ThreatMetrix SDK is being phased out, instructions have been updated to use the Ravelin SDK. See the archived ThreatMetrix guide for details on the previous SDK.

Additional responses

If the fraud assessment score is high enough, a highRisk response is sent and the transaction will not continue.

{
  "outcome": "fraudHighRisk",
  "transactionReference": "2847f678-fd97-4558-b913-8945c8b11dc9",
  "score": 97.0,
  "reason": [
    "Recent unexpected card activity"
  ]
}

Outcome details

Unless flagged as fraudHighRisk, the final payment response includes basic details of what happened during the risk assessment.

...
"fraud": {
  "outcome": "lowRisk",
  "score": 44.0
}
...
Combine with 3DS

You can use the fraud outcome to conditionally skip 3DS. Set threeDS.bypassOn to fraudLowRisk and/or fraudReview in your request to bypass 3DS when those outcomes are returned.

See Bypass 3DS based on fraud outcome.

outcomestring

outcome of the fraud assessment. highRisk outcomes stop the transaction before payment.

Enum"lowRisk""highRisk""review""lowRisk(silentMode)""highRisk(silentMode)""review(silentMode)"
scorenumber(double)

The score calculated by the fraud assessment. Set score thresholds to define lowRisk, highRisk and review outcomes

Example: 44

Next steps