Fraud score: device, IP and bots
Score a sign-up or order from IP reputation, device velocity, bot signals and order details.
Score a sign-up, listing or order before you accept it. Send what you know about the session: the IP address, a device fingerprint from your client, the shopper's browser details and the order. You get a 0 to 100 score (higher is safer), a risk tier and a suggested action.
Send the check#
curl -sS -X POST 'https://api.trustverify.co.uk/api/v1/fraud/score' \
-H "Authorization: Bearer $TRUSTVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "buyer@example.com",
"ip": "203.0.113.10",
"deviceFP": "fp_3c9a1e7b2d4f",
"customerId": "cus_demo_001",
"orderValue": 120,
"orderCount": 0,
"paymentMethod": "card",
"billingAddress": {
"country": "GB",
"postcode": "SW1A 1AA"
},
"shippingAddress": {
"country": "GB",
"postcode": "SW1A 1AA"
}
}'At least one of email, ip or deviceFP is required, otherwise you get 400 validation_failed.
What is checked#
| Signal | Input | What it does |
|---|---|---|
| IP reputation | ip | VPN, Tor and IP risk lower the score. If no IP result is available, signals.ip.available is false. |
| Device velocity | deviceFP | Counts how many of your customers have used the same device. Live keys only: test keys never read or write it. |
| Bot signals | userAgent, botSignals | The shopper's browser details that you forward. We do not score your server's own User-Agent. |
| Address mismatch | billingAddress, shippingAddress | A different country or postcode lowers the score. |
| Order | orderValue, orderCount, paymentMethod | High values, no order history and prepaid or gift cards lower the score. |
Read the result#
actionisapprove,revieworblock.riskTierislow,medium,highorcritical.scoreSourceissignalswhen an IP result was used, andheuristicotherwise. A heuristic score never returnsapprove.- Each entry in
signalssays whether youprovidedit, so you can see what the score was based on.
Reference: POST /api/v1/fraud/score.