Fraud API

SEON's proprietary API combines our email, phone number, IP, and AML APIs with device fingerprinting so that you can request and receive our enriched data, rules, and scoring in a single API call.

Good to know

  • The API is fully modular, meaning you can choose to enable or disable each sub-APIs (Email, Phone, IP, or AML) or the device fingerprinting tool. Use the config object to enable or disable modules.
  • You can use the custom_fields object to send almost any custom data point to SEON. Your team can also use custom fields in rules to create a completely custom ruleset.
  • All SEON API requests are case-sensitive. Please follow the formatting below to avoid errors.

For more context on how to begin your API integration check the Introduction section or our Integration Guide.

Request

 

Request Attributes

TypeRequired
config
objectno
action_type
stringno
ip
stringno
transaction_id
stringno
affiliate_id
stringno
affiliate_name
stringno
order_memo
stringno
email
stringno
email_domain
stringno
payment_id
stringno
password_hash
stringno
user_fullname
stringno
user_name
stringno
user_firstname
stringno
user_middlename
stringno
user_lastname
stringno
user_pob
stringno
user_photoid_number
stringno
user_id
stringno
user_created
integerno
user_category
stringno
user_account_status
stringno
user_bank_account
stringno
user_bank_name
stringno
user_balance
floatno
user_verification_level
stringno
user_dob
dateno
user_country
stringno
user_city
stringno
user_region
stringno
user_zip
stringno
user_street
stringno
user_street2
stringno
session_id
stringno
session
stringno
device_id
stringno
payment_mode
stringno
payment_provider
stringno
card_fullname
stringno
card_bin
stringno
card_hash
stringno
card_expire
dateno
card_last
stringno
avs_result
stringno
cvv_result
booleanno
status_3d
stringno
sca_method
stringno
phone_number
stringno
transaction_type
stringno
transaction_amount
floatno
transaction_currency
stringno
items
array of objectsno
shipping_country
stringno
shipping_city
stringno
shipping_region
stringno
shipping_zip
stringno
shipping_street
stringno
shipping_street2
stringno
shipping_phone
stringno
shipping_fullname
stringno
shipping_method
stringno
billing_country
stringno
billing_city
stringno
billing_region
stringno
billing_zip
stringno
billing_street
stringno
billing_street2
stringno
billing_phone
stringno
discount_code
stringno
gift
booleanno
gift_message
booleanno
merchant_category
stringno
merchant_id
stringno
merchant_created_at
integerno
merchant_country
stringno
receiver_fullname
stringno
receiver_bank_account
stringno
details_url
stringno
regulation
stringno
bonus_campaign_id
stringno
brand_id
stringno
custom_fields
objectno

HTTP Endpoint

POST

https://api.seon.io/SeonRestService/fraud-api/v2/
PHP
Ecommerce
Withdrawal

Response

The endpoint returns JSON structured response.

JSON Attributes

Type
id
string
state
string
fraud_score
number
blackbox_score
number
ip_details
object
email_details
object
bin_details 
object
phone_details
object
aml_details
object
version
string
applied_rules
array of object
device_details
object
geolocation_details
object
calculation_time
integer
seon_id
integer
rule_category_details
array of object
Response
{
  "success": true,
  "error": {},
  "data": {
      "id": "67c2810c2de1",
      "state": "DECLINE",
      "fraud_score": 95.75,
      "blackbox_score": 93.25,
      "bin_details": {
          "card_bin": "414141",
          "bin_bank": "VERMONT NATIONAL BANK",
          "bin_card": "VISA",
          "bin_type": "CREDIT",
          "bin_level": "CLASSIC",
          "bin_country": "UNITED STATES",
          "bin_country_code": "US",
          "bin_website": "www.vermontnationalbank.com",
          "bin_phone": "+1 802 476 0030",
          "bin_valid": true,
          "card_issuer": "VISA"
      },
      "version": "v2",
      "applied_rules": [
          {
              "id": "1000702",
              "name": "Phone possible is equal to true",
              "operation": "+",
              "score": 1.11
          },
          {
              "id": "1000682",
              "name": "has_pep_match is not listed on watchlist2",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "P106",
              "name": "Customer is using a datacenter ISP",
              "operation": "+",
              "score": 10.0
          },
          {
              "id": "1000715",
              "name": "Temp ARC 2 category specific rule",
              "operation": null,
              "score": 0.0
          },
          {
              "id": "P110",
              "name": "IP address was found on 4 spam blacklists",
              "operation": "+",
              "score": 4.0
          },
          {
              "id": "1000671",
              "name": "has_sanction_match is equal to true",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000687",
              "name": "has_sanction_match is not listed on watchlist2",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000707",
              "name": "Rule C (User category is equal to VIP)",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000718",
              "name": "Domain creation date is greater than 1 month ago",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000670",
              "name": "has_watchlist_match is equal to false",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000696",
              "name": "Phone number valid is equal to true",
              "operation": "+",
              "score": 1.11
          },
          {
              "id": "P112",
              "name": "Customer is using public proxy",
              "operation": "+",
              "score": 10.0
          },
          {
              "id": "1000716",
              "name": "Temp ARC 2",
              "operation": "+",
              "score": 30.0
          },
          {
              "id": "1000713",
              "name": "Temp ARC category specific rule",
              "operation": null,
              "score": 0.0
          },
          {
              "id": "1000699",
              "name": "Phone country is equal to HU",
              "operation": "+",
              "score": 1.11
          },
          {
              "id": "E123",
              "name": "Email is not similar to user full name",
              "operation": "+",
              "score": 1.0
          },
          {
              "id": "1000674",
              "name": "Free email is equal to true",
              "operation": "+",
              "score": 1.11
          },
          {
              "id": "1000680",
              "name": "has_crimelist_match is not listed on watchlist2",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "PH100",
              "name": "At least 2 online profiles were found",
              "operation": "+",
              "score": 5.2
          },
          {
              "id": "1000666",
              "name": "has_crimelist_match is equal to false",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000706",
              "name": "Rule B (Affiliate full name is equal to Affiliate Two)",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000692",
              "name": "Sanction list match is equal to true",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000705",
              "name": "Rule A (Affiliate ID is equal to a002)",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000685",
              "name": "has_watchlist_match is not listed on watchlist2",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000698",
              "name": "Phone type is equal to Mobile",
              "operation": "+",
              "score": 1.11
          },
          {
              "id": "1000668",
              "name": "has_pep_match is equal to false",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000708",
              "name": "Rule D (User account status is equal to verified)",
              "operation": "+",
              "score": 0.0
          },
          {
              "id": "1000714",
              "name": "ARC User full name is equal to User full name",
              "operation": "+",
              "score": 30.0
          },
          {
              "id": "1000647",
              "name": "Count if Previous Email address similarity is equal to SIMILAR Email for the same Email domain is greater than 0",
              "operation": "+",
              "score": 0.0
          }
      ],
      "device_details": {
          "os": "MacOS",
          "type": "web",
          "dns_ip": null,
          "source": "js-5.8.0",
          "adblock": true,
          "browser": "FIREFOX10",
          "private": true,
          "platform": "MacIntel",
          "font_hash": "09894f345df34ce7ca5b86118ca1bec4",
          "font_list": [],
          "audio_hash": "35.73833039775491",
          "dns_ip_isp": null,
          "font_count": 13,
          "session_id": "90a87abb-91bc-5dc2-96f2-996acb894dd9",
          "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0",
          "webgl_hash": null,
          "webrtc_ips": [ '70.111.37.513', '0.0.0.0'
          ],
          "canvas_hash": "b1f0e02120278dbf75e77cb92980648d",
          "cookie_hash": "b29b21a6ba46b2770bb1737fd6c06c7d",
          "device_hash": "73604e79a0321f57249e82e27273a7a0",
          "device_type": "desktop",
          "plugin_hash": "29b51cf1619fb6943f256c2c6da59432",
          "plugin_list": [
              "PDF Viewer",
              "Chrome PDF Viewer",
              "Chromium PDF Viewer",
              "Microsoft Edge PDF Viewer",
              "WebKit built-in PDF"
          ],
          "window_size": "1600x800",
          "browser_hash": "4c58b2c53ea7489232cddeb897efaf7a",
          "do_not_track": null,
          "java_enabled": false,
          "plugin_count": 5,
          "webgl_vendor": null,
          "webrtc_count": 2,
          "battery_level": 44,
          "device_ip_isp": null,
          "device_memory": null,
          "flash_enabled": false,
          "social_logins": [],
          "touch_support": false,
          "cookie_enabled": true,
          "dns_ip_country": "HU",
          "accept_language": [],
          "browser_version": "102.0",
          "device_location": {
            "zip": "1051",
            "city": "Budapest",
            "region": "HU-BU",
            "status": "SUCCESS",
            "accuracy": 5,
            "latitude": 47.4810949,
            "longitude": 18.9651553,
            "country_code": "HU"
          },
          "region_language": "en-US",
          "region_timezone": "+00:00",
          "battery_charging": null,
          "webrtc_activated": true,
          "device_ip_address": "15.130.507.00",
          "device_ip_country": "HU",
          "screen_resolution": "1600x800",
          "screen_color_depth": 24,
          "screen_pixel_ratio": 1,
          "hardware_concurrency": 2,
          "screen_available_resolution": "1600x800"
      },
      "calculation_time": 2327,
      "seon_id": 12602,
      "ip_details": {
          "ip": "1.2.3.4",
          "score": 24.0,
          "country": "AU",
          "state_prov": "Queensland",
          "city": "Brisbane",
          "timezone_offset": "+10:00",
          "isp_name": "APNIC Pty Ltd",
          "latitude": -27.48203,
          "longitude": 153.01358,
          "type": "DCH",
          "open_ports": [],
          "tor": false,
          "vpn": false,
          "web_proxy": false,
          "public_proxy": true,
          "spam_number": 4,
          "spam_urls": [
              "zen.spamhaus.org",
              "xbl.spamhaus.org",
              "noptr.spamrats.com",
              "dyna.spamrats.com"
          ]
      },
      "email_details": {
          "email": "testing.fv2@gmail.com",
          "score": 2.1100000000000003,
          "deliverable": true,
          "domain_details": {
              "domain": "gmail.com",
              "tld": ".com",
              "registered": true,
              "created": "1995-08-13 04:00:00",
              "updated": "2022-07-11 09:25:59",
              "expires": "2023-08-12 04:00:00",
              "registrar_name": "MarkMonitor Inc.",
              "registered_to": "Google LLC",
              "disposable": false,
              "free": true,
              "custom": false,
              "dmarc_enforced": true,
              "spf_strict": true,
              "valid_mx": true,
              "accept_all": false,
              "suspicious_tld": false,
              "website_exists": true
          },
          "account_details": {
              "apple": {
                  "registered": false
              },
              "ebay": {
                  "registered": false
              },
              "facebook": {
                  "registered": false,
                  "url": null,
                  "name": null,
                  "photo": null
              },
              "flickr": {
                  "registered": false,
                  "username": null,
                  "photo": null,
                  "followers": null,
                  "location": null,
                  "occupation": null,
                  "description": null
              },
              "foursquare": {
                  "registered": null,
                  "bio": null,
                  "photo": null,
                  "profile_url": null
              },
              "github": {
                  "registered": false,
                  "photo": null,
                  "full_name": null,
                  "username": null,
                  "location": null,
                  "company": null,
                  "website": null,
                  "bio": null,
                  "followers": null,
                  "following": null,
                  "twitter": null,
                  "profile_url": null
              },
              "google": {
                  "registered": true,
                  "photo": "https://lh3.googleusercontent.com/a-/ALV-UjWOTudEZsExUfQZU6Bg4YXT4MX_KL1Zg95TXewANRNH",
                  "activity": {
                      "reviews": null,
                      "ratings": null,
                      "photos": null,
                      "videos": null,
                      "answers": null,
                      "edits": null,
                      "places_added": null,
                      "roads_added": null,
                      "facts_checked": null,
                      "published_lists": null,
                      "q_and_a": null
                  },
                  "is_enterprise_user": null,
                  "last_updated": 1679766162
              },
              "gravatar": {
                  "registered": false,
                  "location": null,
                  "name": null,
                  "profile_url": null,
                  "username": null
              },
              "instagram": {
                  "registered": false
              },
              "lastfm": {
                  "registered": false
              },
              "linkedin": {
                  "registered": false,
                  "url": null,
                  "name": null,
                  "company": null,
                  "title": null,
                  "location": null,
                  "website": null,
                  "twitter": null,
                  "photo": null,
                  "connection_count": null
              },
              "microsoft": {
                  "registered": false
              },
              "myspace": {
                  "registered": false
              },
              "pinterest": {
                  "registered": false
              },
              "skype": {
                  "registered": false,
                  "country": null,
                  "country_code": null,
                  "city": null,
                  "gender": null,
                  "name": null,
                  "id": null,
                  "handle": null,
                  "bio": null,
                  "age": null,
                  "language": null,
                  "state": null,
                  "photo": null,
                  "contact_type": null
              },
              "spotify": {
                  "registered": false
              },
              "tumblr": {
                  "registered": false
              },
              "twitter": {
                  "registered": false
              },
              "vimeo": {
                  "registered": false
              },
              "weibo": {
                  "registered": false
              },
              "yahoo": {
                  "registered": false
              },
              "discord": {
                  "registered": false
              },
              "ok": {
                  "registered": false,
                  "city": null,
                  "age": null,
                  "date_joined": null,
                  "full_name": null
              },
              "kakao": {
                  "registered": null
              },
              "booking": {
                  "registered": false
              },
              "airbnb": {
                  "registered": null,
                  "about": null,
                  "created_at": null,
                  "first_name": null,
                  "identity_verified": null,
                  "location": null,
                  "image": null,
                  "reviewee_count": null,
                  "trips": null,
                  "work": null
              },
              "amazon": {
                  "registered": null
              },
              "qzone": {
                  "registered": false
              },
              "adobe": {
                  "registered": false
              },
              "mailru": {
                  "registered": false
              },
              "wordpress": {
                  "registered": false
              },
              "imgur": {
                  "registered": false
              },
              "disneyplus": {
                  "registered": false
              },
              "netflix": {
                  "registered": false
              },
              "jdid": {
                  "registered": null
              },
              "flipkart": {
                  "registered": false
              },
              "bukalapak": {
                  "registered": false
              },
              "archiveorg": {
                  "registered": false
              },
              "lazada": {
                  "registered": false
              },
              "zoho": {
                  "registered": false
              },
              "samsung": {
                  "registered": false
              },
              "evernote": {
                  "registered": false
              },
              "envato": {
                  "registered": false
              },
              "patreon": {
                  "registered": false
              },
              "tokopedia": {
                  "registered": false
              },
              "rambler": {
                  "registered": false
              },
              "quora": {
                  "registered": false
              },
              "atlassian": {
                  "registered": false
              },
              "aboutme": {
                  "registered": false
              },
              "altbalaji": {
                  "registered": false
              },
              "bitmoji": {
                  "registered": false
              },
              "bodybuilding": {
                  "registered": false
              },
              "codecademy": {
                  "registered": false
              },
              "deliveroo": {
                  "registered": false
              },
              "diigo": {
                  "registered": false
              },
              "duolingo": {
                  "registered": false,
                  "full_name": null,
                  "photo": null,
                  "registered_at": null,
                  "country": null,
                  "username": null,
                  "has_recent_activity": null,
                  "learning_language": null,
                  "from_language": null,
                  "email_verified": null,
                  "courses": null
              },
              "eventbrite": {
                  "registered": false
              },
              "firefox": {
                  "registered": false
              },
              "freelancer": {
                  "registered": false
              },
              "gaana": {
                  "registered": false
              },
              "giphy": {
                  "registered": false
              },
              "hubspot": {
                  "registered": false
              },
              "kommo": {
                  "registered": false
              },
              "komoot": {
                  "registered": false
              },
              "nike": {
                  "registered": false
              },
              "plurk": {
                  "registered": false
              },
              "rappi": {
                  "registered": false
              },
              "replit": {
                  "registered": false
              },
              "seoclerks": {
                  "registered": false
              },
              "snapchat": {
                  "registered": false
              },
              "snapdeal": {
                  "registered": false
              },
              "soundcloud": {
                  "registered": false
              },
              "starz": {
                  "registered": false
              },
              "strava": {
                  "registered": false
              },
              "taringa": {
                  "registered": false,
                  "username": null,
                  "photo": null
              },
              "tiki": {
                  "registered": false
              },
              "treehouse": {
                  "registered": false
              },
              "venmo": {
                  "registered": false
              },
              "vivino": {
                  "registered": false
              },
              "vkontakte": {
                  "registered": false
              },
              "wattpad": {
                  "registered": false
              },
              "xing": {
                  "registered": false
              },
              "yandex": {
                  "registered": false
              },
              "adult_sites": {
                  "registered": false
              }
          },
          "breach_details": {
              "haveibeenpwned_listed": false,
              "number_of_breaches": 0,
              "first_breach": null,
              "breaches": []
          }
      },
      "phone_details": {
          "number": 36707770000,
          "valid": true,
          "type": "mobile",
          "country": "HU",
          "carrier": "Vodafone Hungary",
          "score": 9.64,
          "account_details": {
              "facebook": {
                  "registered": true
              },
              "google": {
                  "registered": false,
                  "account_id": null,
                  "full_name": null
              },
              "twitter": {
                  "registered": true
              },
              "instagram": {
                  "registered": true
              },
              "yahoo": {
                  "registered": null
              },
              "microsoft": {
                  "registered": true
              },
              "snapchat": {
                  "registered": false
              },
              "skype": {
                  "registered": false,
                  "age": null,
                  "city": null,
                  "bio": null,
                  "country": null,
                  "gender": null,
                  "language": null,
                  "name": null,
                  "handle": null,
                  "id": null,
                  "photo": null,
                  "state": null
              },
              "whatsapp": {
                  "registered": true,
                  "photo": null,
                  "last_seen": null,
                  "about": null,
                  "last_active": 1610222677
              },
              "telegram": {
                  "registered": null,
                  "photo": null,
                  "last_seen": null
              },
              "viber": {
                  "registered": null,
                  "photo": null,
                  "last_seen": null,
                  "name": null
              },
              "kakao": {
                  "registered": null
              },
              "ok": {
                  "registered": false,
                  "age": null
              },
              "zalo": {
                  "registered": false,
                  "date_of_birth": null,
                  "name": null,
                  "uid": null
              },
              "line": {
                  "registered": null,
                  "name": null,
                  "photo": null
              },
              "flipkart": {
                  "registered": false
              },
              "bukalapak": {
                  "registered": false
              },
              "jdid": {
                  "registered": null
              },
              "altbalaji": {
                  "registered": false
              },
              "shopclues": {
                  "registered": false
              },
              "snapdeal": {
                  "registered": false
              },
              "tiki": {
                  "registered": false
              },
              "vkontakte": {
                  "registered": true
              },
              "weibo": {
                  "registered": false
              }
          }
      },
      "geolocation_details": {
          "user_billing_distance": 15265.747,
          "user_shipping_distance": 15162.088,
          "billing_shipping_distance": 7677.429,
          "ip_user_distance": 10210.516,
          "ip_billing_distance": 12056.986,
          "ip_shipping_distance": 5019.496
      },
      "aml_details": null
  }
}

JavaScript Agent v6

You can integrate our  device fingerprinting module directly into a web app, by using our JavaScript agent. Please, use our CDN hosted script to ensure you always load the latest available version.

  1. Include the JavaScript Agent for example inside the <head> tags of your website or web app. You can also lazy-load it or execute it upon specific actions (e.g. clicking on Login, Payment, and Registration buttons, before calling the API). In this case, you must ensure that the module has been loaded successfully before invoking its methods.
  2. Call the seon.init() function on page load to get more data points for bot detection, behavioral analysis and more accurate intelligence signals.
  3. Call the seon.getSession(config) function to generate the encrypted device  intelligence session.
  4. Send the returned session payload string to your backend and add to the session property in your Fraud API request. The Fraud API call should be still executed if the session is missing, due to a non-executed JS snippet. Tip: Add timeout to JS and utilize Fraud API call after.

All the device fingerprinting data will be available in the response of the Fraud API, and accessible on the Admin Panel of the Transactions Details page.

 

Configuration parameters

To configure the JavaScript module, you need to create a config object and call the seon.getSession(config) function

JSON Attributes

Required
geolocation
no
behavioralDataCollection
no
networkTimeoutMs
no
dnsResolverDomain
no
silentMode
no
referrer
no
windowLocation
no
region
no
fieldTimeoutMs
no
throwOn
no

 

 

Integration

Device Intelligence signals can be triggered by the seon.Session() function. After collecting all the available information, the function returns an encrypted base64 encoded payload. If you would like to use your custom configuration, please include the config object in the function.

Without using the seon.init() on page load you will still receive valid device intelligence signals with most of the functions but it will not contain the behavioral signals. Additionally, the bot detection and browser hash may be less precise.

 

Behavioral features

Calling the seon.init() method will enable behavioral analysis. The user behavior collection is started on the seon.init() call and ends when seon.getSession() is called (behavioral data will be automatically included in the generated session string). Thus the recommended integration pattern is calling init on the form load, and calling getSession on form submit to analyze user behavior during a form fillout. Suspicious behavior is flagged in the suspicious_flags response field, which can contain the following values:

  • suspicious_keypress_characteristics
  • suspicious_mouse_movement
  • suspicious_form_fillout
  • paste_used
  • autofill_used
  • potential_remote_interaction
  • potential_remote_control

By default, user interaction is analyzed on the whole page. If you want to target specific input fields or forms for behavior analysis, you can customize it using the behavioralDataCollection init configuration option:

The targeted elements MUST exist at the time of the init call. Elements that match the selector, but added to the DOM after the init call will NOT be part of the evaluation.

To disable behavioral data collection by the SDK altogether, you must specify an empty string for the targets option:

 

Payload

SEON JavaScript library collects device information and prepares an encrypted payload to use in Fraud API. The information on client side is not readable, we’ll reveal in the Fraud API response and on the Admin Panel. Some fields can be null, if the actual browser does not support or return data for that specific data point. In every other case, data types are preserved. Find a sample payload on the right side.

 

Common issues

  • The session is provided in the Fraud API request, but the device_details is null in the response and there is no device information on the Transaction details page. This means the encrypted payload is corrupted. Please look into your integration and check again.
  • If you use CSP (Content Security Policy) headers on your site, you must allow the following domains in connect-src directive for full functionality based on your host configuration.

    Default: *.seondnsresolve.com
    seondf.com: *.seondfresolver.com
    deviceinf.com: *.deviceinfresolver.com
    seonintelligence.com: *.seonintelligence.com

 

Response

JSON Attributes

Type
os
string
vpn
boolean
type
string
proxy
boolean
webgl
object
dns_ip
string
locale
string
source
string
adblock
boolean
battery
object
browser
string
plugins
object
private
boolean
platform
string
referrer
string
timezone
string
device_ip
string
font_hash
string
font_list
array
has_focus
boolean
languages
array
math_hash
string
audio_hash
string
dns_ip_isp
string
extensions
array
font_count
integer
font_noise
boolean
session_id
string
user_agent
string
webrtc_ips
array
canvas_hash
string
cookie_hash
string
device_hash
string
device_type
string
mouse_moved
boolean
permissions
object
price_range
string
screen_data
object
browser_hash
string
do_not_track
boolean
java_enabled
boolean
webrtc_count
integer
device_ip_isp
string
device_memory
integer
dns_ip_region
string
flash_enabled
boolean
media_devices
object
spoofing_hash
string
touch_support
boolean
cookie_enabled
boolean
dns_ip_country
string
mobile_details
array
browser_version
string
device_location
object
drm_key_systems
array
mime_types_hash
string
timezone_offset
string
user_agent_data
object
window_location
string
device_ip_region
string
max_touch_points
integer
suspicious_flags
array
timezone_country
string
webrtc_activated
boolean
device_ip_country
string
system_colors_hash
string
browser_version_age
integer
hardware_concurrency
integer
keyboard_layout_hash
string
keyboard_layout_name
string
unpopular_user_agent
boolean
unpopular_device_resolution
boolean

 

<html>
  <head>
    ...
    <script src="[source_url]"></script>
  </head>
  <body>
    ...
  </body>
</html>

 

You can use the following script source URLs ([source_url]):

 

 

 

 

 

 

 

 

 

 

 

 

 

// On page load:
seon.init();

const config = {
  geolocation: {
   canPrompt: false,
  },
  networkTimeoutMs: 2000,
  fieldTimeoutMs: 2000,
  region: 'eu',
  silentMode: true,
};

 

 

 

 

 

 

 

 

 

const session = await seon.getSession(config);
// 'session' variable holds the encrypted device fingerprint that should be sent to SEON

 

 

 

 

 

// On load
seon.init({
  behavioralDataCollection: {
    targets: 'input[type="text"], .behavior', // querySelector string
    formFilloutDurationTargetId: "myForm", // select form with id 'myForm'
  }
});
// On form submit
await seon.getSession();

 

// Disabling behavioral analysis
seon.init({
  behavioralDataCollection: {
    targets: '', // pass an emtpy string for targets
  }
});

 

Response
"device_details": {
    "os": "Windows 10",
    "vpn": false,
    "type": "web",
    "proxy": false,
    "webgl": {
      "webgl_hash": "64ccdba3ae00e22f0bf25281131f0b80",
      "webgl_vendor": null,
      "webgl_renderer": null,
      "webgl_image_hash": null,
      "webgl2_image_hash": null,
      "webgl_parameters_hash": null,
      "webgl2_parameters_hash": null,
      "webgl_parameters_noise": false,
      "webgl2_parameters_noise": false
    },
    "dns_ip": "232.253.xxx.xx",
    "locale": "en-US",
    "source": "js-6.0.0",
    "adblock": false,
    "battery": {
      "battery_level": 100,
      "battery_charging": true
    },
    "browser": "CHROME",
    "plugins": {
      "plugin_hash": "cf24dcd0c518a558e3c58617d80d",
      "plugin_list": [],
      "plugin_count": 0
    },
    "private": false,
    "platform": "Win32",
    "referrer": null,
    "timezone": "Europe/Budapest",
    "device_ip": "203.250.220.xx",
    "font_hash": "f32ce7a960258bb555faf255c0da06b3",
    "font_list": [
      "monospace",
      "sans-serif",
      "serif",
      "Agency FB",
      "Calibri",
      "Cambria Math",
      "Century",
      "Century Gothic",
      "Consolas",
      "Franklin Gothic",
      "Haettenschweiler",
      "Leelawadee",
      "Lucida Bright",
      "Lucida Console",
      "Lucida Sans",
      "MS Outlook",
      "MS Reference Specialty",
      "MS Serif",
      "MS UI Gothic",
      "MT Extra",
      "Marlett",
      "Microsoft Uighur",
      "Monotype Corsiva",
      "Pristina",
      "Segoe UI",
      "Segoe UI Light",
      "Tahoma"
    ],
    "has_focus": true,
    "languages": [
      "en",
      "en-US"
    ],
    "math_hash": "4cff7c11111e312d6b0329239b9d1d9",
    "audio_hash": "124.042342344",
    "dns_ip_isp": "Google LLC",
    "extensions": [],
    "font_count": 27,
    "font_noise": false,
    "session_id": "7d2222dcb15f3aaf889be35fe96e5a",
    "user_agent": "('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',)",
    "webrtc_ips": [],
    "canvas_hash": null,
    "cookie_hash": "44f235d7177csa40bf616dsfdsdfea73",
    "device_hash": "da49c8f89sadfsdafcb33e2d887add31986f5",
    "device_type": "desktop",
    "mouse_moved": true,
    "permissions": {
      "denied": [],
      "prompt": [
        "camera",
        "display-capture",
        "microphone",
        "midi",
        "notifications",
        "persistent-storage"
      ],
      "granted": [
        "accelerometer",
        "background-fetch",
        "background-sync",
        "geolocation",
        "gyroscope",
        "magnetometer",
        "screen-wake-lock"
      ]
    },
    "price_range": "medium",
    "screen_data": {
      "is_extended": false,
      "screen_width": 1440,
      "screen_height": 900,
      "document_width": 284,
      "document_height": 0,
      "window_screen_x": 0,
      "window_screen_y": 0,
      "window_scroll_x": 0,
      "window_scroll_y": 0,
      "orientation_type": "landscape-primary",
      "orientation_angle": 0,
      "device_pixel_ratio": 2.0000000596046448,
      "screen_color_depth": 24,
      "screen_pixel_depth": 24,
      "window_inner_width": 300,
      "window_outer_width": 1440,
      "window_inner_height": 150,
      "window_outer_height": 900,
      "screen_available_width": 1440,
      "screen_available_height": 900
    },
    "browser_hash": "ceb5sd1f4ii84454abdd373f9c8e01b813",
    "do_not_track": null,
    "java_enabled": false,
    "webrtc_count": 0,
    "device_ip_isp": "Services",
    "device_memory": 8,
    "dns_ip_region": null,
    "flash_enabled": false,
    "media_devices": {
      "audio_input_count": 1,
      "video_input_count": 1,
      "audio_output_count": 1
    },
    "spoofing_hash": "6b7b918e91fc496683reo4j23265b64e",
    "touch_support": true,
    "cookie_enabled": true,
    "dns_ip_country": "GB",
    "mobile_details": {
      "models": [],
      "announced": null,
      "resolution": null,
      "device_name": null,
      "avg_price_in_eur": null,
      "battery_size_in_mah": null
    },
    "browser_version": "108.0.0.0",
    "device_location": {
      "zip": null,
      "city": null,
      "region": null,
      "status": null,
      "accuracy": null,
      "latitude": null,
      "longitude": null,
      "country_code": null
    },
    "drm_key_systems": [
      "org.w3.clearkey"
    ],
    "mime_types_hash": "5623c22fad17e943923do4dd1e36c7cf57",
    "timezone_offset": "+02:00",
    "user_agent_data": {
      "model": "",
      "mobile": false,
      "bitness": "",
      "platform": "",
      "architecture": "",
      "ua_full_version": "",
      "platform_version": ""
    },
    "window_location": "https://seon.io/",
    "device_ip_region": null,
    "max_touch_points": 1,
    "suspicious_flags": [
      "potential_fraud_browser",
      "bots_and_automation",
      "suspicious_mouse_movement"
    ],
    "timezone_country": "HU",
    "webrtc_activated": true,
    "device_ip_country": "HU",
    "system_colors_hash": "32a082dfndmsi5fd30145a026",
    "browser_version_age": 1,
    "hardware_concurrency": 16,
    "keyboard_layout_hash": "056eb13eb85cab9c12e9dsf95d9019",
    "keyboard_layout_name": "English US",
    "unpopular_user_agent": false,
    "unpopular_device_resolution": false
  }

iOS SDK

You can integrate our device fingerprinting module directly into iOS mobile apps, by using our SDK found on GitHub. It will collect information based on the user’s software and hardware configuration.

  • The SDK returns an encrypted, base64 encoded string to add in the session property in the Fraud API request. It isn’t permitted to access or modify the payload on the clients.
  • JSON structured device details will be returned in the Fraud API response.
  • Latest version available: 5.5.1 Details on previous versions here.

 

Behaviour Monitoring (Optional)

behaviour Monitoring allows the SEON SDK to be able to detect potentially suspicious user behaviour on the device. The SDK collects data during the session, which is then analyzed to identify potentially fraudulent environments and actions. This feature enhances the SDK’s ability to prevent fraud by detecting various forms of automated or suspicious activity, such as bot usage or device farms.

The monitoring should be started with calling startBehaviourMonitoring wherever you would like to detect suspicious activity in your application and should be stopped with stopBehaviourMonitoring whenever it's reasonable. The returned session string should be then used in a Fraud API request as usual.

Possible suspicious_flags values:

  • "possible_automation": Suggests that automation tools or scripts may be controlling the device.
  • "possible_device_farm": Suggests that the device might be part of a device farm used for fraudulent activities.
  • "possible_vishing": Flags possible vishing (voice phishing) activity, where the user might be coerced into providing sensitive information.

To be continuously improved and extended with new signals

 

Response

JSON Attributes

Type
type
string
source
string
session_id
string
accessories_count
integer
audio_mute_status
boolean
audio_volume_current
integer
battery_charging
boolean
battery_level
integer
can_send_mail
boolean
can_send_text
boolean
cpu_count
integer
cpu_type
string
device_adid
string
device_hash
string
device_name
string
device_orientation
string
device_udid
string
icloud_ubiquity_token
string
ios_device_name
string
ios_version
string
is_biometrics_enabled
boolean
is_emulator
boolean
is_ios_app_on_mac
boolean
is_jailbroken
boolean
is_on_call
boolean
is_passcode_enabled
boolean
is_screen_captured
boolean
kernel_arch
string
kernel_name
string
kernel_version
string
network_config
string
pasteboard_hash
string
physical_memory
unsigned long
region_country
string
region_language
string
region_timezone
string
screen_brightness
integer
screen_height
integer
screen_width
integer
system_uptime
integer
timezone_identifier
string
wifi_mac_address
string
wifi_ssid
string
dns_ip
string
dns_ip_country
string
dns_ip_isp
string
device_ip_address
string
device_ip_country
string
device_ip_isp
string
device_location
object
suspicious_flags
array
true_device_id
string

 

Response
"device_details": {
  "session_id": "somew3irdsessionid",
  "source": "ios-5.2.0",
  "type": "ios",
  "device_ip_address": null,
  "device_ip_country": null,
  "device_ip_isp": null,
  "dns_ip": "84.2.111.000",
  "dns_ip_country": "HU",
  "dns_ip_isp": "Magyar Telekom",
  "accessories_count": 0,
  "audio_mute_status": false,
  "audio_volume_current": 50,
  "battery_charging": false,
  "battery_level": 100,
  "cpu_count": 6,
  "cpu_type": "ARM_64E",
  "device_adid": "00000000-0000-0000-0000-000000000000",
  "device_udid": "F5067339-7455-4D4C-B065-D08E7B5D608F",
  "device_hash": "89dfae458d0435b218973fb69e24b55a4831e01940ca1692ce902fc0682d877b",
  "device_name": "iPhone SE 3rd Gen",
  "device_orientation": "Portrait",
  "icloud_ubiquity_token": "27267025 f42df654 ea1018da 6d1d993b 81d8a1c3",
  "ios_device_name": "iPhone",
  "ios_version": "17.0",
  "is_emulator": false,
  "is_jailbroken": false,
  "kernel_arch": "arm64",
  "kernel_name": "Darwin",
  "kernel_version": "21A5326a",
  "network_config": "WIFI",
  "pasteboard_hash": "63e7d95aa925313d14096883ccd5c530789dab115fe9dc4d6439309fcf222fee",
  "physical_memory": 4077944832,
  "region_country": "HU",
  "region_language": "en",
  "region_timezone": "+02:00",
  "device_location": {
    "zip": "1051",
    "city": "Budapest",
    "region": "HU-BU",
    "status": "SUCCESS",
    "accuracy": 5,
    "latitude": 47.4810949,
    "longitude": 18.9651553,
    "country_code": "HU",
    "is_simulated": true
  },
  "screen_brightness": 34,
  "screen_height": 1334,
  "screen_width": 750,
  "system_uptime": 1694425396,
  "wifi_mac_address": "a2:b5:3c:cc:d1:47",
  "wifi_ssid": "free_wifi_2345",
  "is_biometrics_enabled": true,
  "is_passcode_enabled": true,
  "is_ios_app_on_mac": false,
  "is_on_call": false,
  "is_screen_captured": false,
  "can_send_mail": false,
  "can_send_text": true,
  "timezone_identifier": "Europe/Budapest"
}

Android SDK

You can integrate our device fingerprinting module directly into Android mobile apps, by using our SDK found on GitHub. In the repo you will also find more details about the integration like requirements and samples. It will collect information based on the user’s software and hardware configuration.

  • The SDK returns an encrypted, base64 encoded string to add in the session property in the Fraud API request. It isn’t permitted to access or modify the payload on the clients.
  • JSON structured device details will be revealed in the Fraud API response.
  • Latest version available: 6.6.0
  • Details on previous versions here.

Behaviour Monitoring (Optional)

Behaviour Monitoring allows the SEON SDK to be able to detect potentially suspicious user behaviour on the device. The SDK collects data during the session, which is then analyzed to identify potentially fraudulent environments and actions. This feature enhances the SDK’s ability to prevent fraud by detecting various forms of automated or suspicious activity, such as bot usage or device farms.

Note: For the result of the behaviour evaluation, we are introducing a new response field in the Fraud API response named suspicious_flags. It's available in sessions generated by Android SDK version 6.5.0 or later when the session had been generated by the new startBehaviourMonitoring and stopBehaviourMonitoring interfaces.

The monitoring must be started with calling startBehaviourMonitoring wherever you would like to detect suspicious activity in your application and should be stopped with stopBehaviourMonitoring whenever it's reasonable. The returned session string should be then used in a Fraud API request as usual. Note: If you call stopBehaviourMonitoring without startBehaviourMonitoring called previously, the method will exit with BehaviouralMonitoringException thrown.

Possible suspicious_flags values:

  • "possible_automation": Suggests that automation tools or scripts may be controlling the device.
  • "possible_device_farm": Suggests that the device might be part of a device farm used for fraudulent activities.
  • "possible_vishing": Flags possible vishing (voice phishing) activity, where the user might be coerced into providing sensitive information.
  • "possible_ongoing_call": Flags possible ongoing phone call, which could be useful information in case the READ_PHONE_STATE permission wasn't granted for is_on_call field to work. This behaviour based flag does not need any permissions to work, but it's only a best-effort metric.
  • To be continously improved and extended with new signals

 

Response

JSON Attributes

Type
type
string
source
string
session_id
string
android_id
string
android_version
string
app_guid
string
audio_mute_status
boolean
audio_volume_current
integer
battery_charging
boolean
battery_health
string
battery_level
integer
battery_temperature
float
battery_voltage
integer
biometric_status
boolean
bootloader_state
string
build_device
string
build_id
string
build_manufacturer
string
build_model
string
build_number
string
build_time
integer
carrier_country
string
carrier_name
string
cpu_count
integer
cpu_hash
string
cpu_speed
double
cpu_type
string
developer_options_state
string
device_hash
string
device_cellular_id
string
device_name
string
device_orientation
string
free_storage
integer
gsf_id
string
has_proximity_sensor
boolean
interfering_apps
array of string
is_click_automator_installed
boolean
is_emulator
boolean
is_keyguard_secure
boolean
is_nfc_available
boolean
is_nfc_enabled
boolean
is_on_call
boolean
is_remote_control_connected
boolean
is_rooted
boolean
is_screen_being_mirrored
boolean
kernel_arch
string
kernel_name
string
kernel_version
string
last_boot_time
integer
network_config
string
pasteboard_hash
string
physical_memory
integer
region_country
string
region_language
string
region_timezone
string
remote_control_provider
string
screen_brightness
integer
screen_height
integer
screen_scale
integer
screen_width
integer
sensor_hash
string
system_uptime
integer
timezone_identifier
string
total_storage
integer
usb_cable_state
string
usb_debugging_state
string
wifi_mac_address
string
wifi_ssid
string
dns_ip
string
dns_ip_country
string
dns_ip_isp
string
device_ip_address
string
device_ip_country
string
device_ip_isp
string
device_location
object
vpn_state
string
proxy_state
string
proxy_address
string
first_api_level
int
power_source
string
suspicious_flags
array
true_device_id
string
Response
"device_details": {
      "session_id": "52f10e47-bd35-465b-81a4-7228a9a11c14",
      "source": "android-6.3.0",
      "type": "android",
      "device_ip_address": "213.253.227.38",
      "device_ip_country": "HU",
      "device_ip_isp": "Invitech ICT Services Kft.",
      "dns_ip": "172.253.206.35",
      "dns_ip_country": "PL",
      "dns_ip_isp": "Google LLC",
      "android_id": "027925f5453a4e32",
      "android_version": "32 (12)",
      "app_guid": "5e24349e-ccf0-4ae9-9307-4e2705159da3",
      "audio_mute_status": true,
      "audio_volume_current": 0,
      "battery_charging": true,
      "battery_health": "GOOD",
      "battery_level": 100,
      "battery_temperature": 30.3,
      "battery_voltage": 4352,
      "build_device": "sargo",
      "build_id": "SP2A.220505.008",
      "build_manufacturer": "Google",
      "build_number": "SP2A.220505.008",
      "build_time": 1656526244,
      "carrier_country": "HU",
      "carrier_name": null,
      "cpu_count": 8,
      "cpu_hash": "36e6ccfd5027ddea0ac6eadb6668889a907411d6e7a782b9cdfa12641dcda0d0",
      "cpu_speed": 1708.0,
      "cpu_type": "AArch64 Processor rev 12 (aarch64)",
      "device_cellular_id": "70ed86e0320e6af04c6b3fd4835032b125c169e733ab0f34cfa823e22b63b273",
      "device_hash": "f6b99981c47ac75463535a9ae753bba625df430d66fb24742344443a0803272a",
      "device_name": "Google Pixel 3a",
      "free_storage": 35987062784,
      "has_proximity_sensor": true,
      "is_emulator": false,
      "is_rooted": false,
      "kernel_arch": "aarch64",
      "kernel_name": "Linux",
      "kernel_version": "4.9.292-gab4493f31457-ab8272301",
      "last_boot_time": 1693832510,
      "network_config": "WIFI",
      "pasteboard_hash": "df23e7ca3991019ae8878888a2a61cd98ca664cc4281dcd5337ea0e7128256eb",
      "physical_memory": 3678616000,
      "region_country": "US",
      "region_language": "en",
      "region_timezone": "+02:00",
      "device_location": {
        "zip": "1051",
        "city": "Budapest",
        "region": "HU-BU",
        "status": "SUCCESS",
        "accuracy": 5,
        "latitude": 47.4810949,
        "longitude": 18.9651553,
        "country_code": "HU",
        "is_simulated": true
      },
      "screen_brightness": 90,
      "screen_scale": null,
      "screen_height": 2220,
      "screen_width": 1080,
      "sensor_hash": "3822a540d3b84767fe32f4b591425f93004590df33468c1df351cadca83ffd8e",
      "system_uptime": 2987,
      "total_storage": 53646700544,
      "wifi_mac_address": null,
      "wifi_ssid": "STGUEST",
      "biometric_status": "NOT_ENROLLED",
      "bootloader_state": "BOOTLOADER_STATE_LOCKED",
      "build_model": "Pixel 3a",
      "developer_options_state": "DEV_OPTIONS_ENABLED",
      "device_orientation": "Portrait",
      "gsf_id": "3b84721133ea68bc",
      "interfering_apps": [
        "AdControl-AD1",
        "TeamViewer Universal Add-On",
        "Auto Clicker",
        "GC Auto Clicker",
        "App Cloner"
      ],
      "is_click_automator_installed": true,
      "is_keyguard_secure": false,
      "is_nfc_available": true,
      "is_nfc_enabled": true,
      "is_on_call": false,
      "is_remote_control_connected": false,
      "is_screen_being_mirrored": false,
      "remote_control_provider": null,
      "timezone_identifier": "Europe/Budapest",
      "usb_cable_state": "USB_CONNECTED",
      "usb_debugging_state": "USB_DEBUGGING_ENABLED"
    }