IPQS
Advanced Options
Device Fingerprint on Form Triggers

You can optionally process the Device Fingerprint service to collect additional details after the user has performed an action, such as after submitting an order or purchase form. Our system allows you to provide an element to bind to as part of an onclick or onsubmit trigger. When the user clicks or submits that element, the Device Fingerprint code will execute and gather the form elements you've specified to perform fraud analysis.

 

 

The trigger will override the default action of the element's onclick or onsubmit function, perform IPQS fraud analysis and Device Fingerprinting service, and then execute the original action of the element. For example, suppose you bind the trigger to a form's submit button; our Device Fingerprint script will run first. In that case, it will append the results of our fraud scoring to your form and submit it to your server. The example above shows that setting Startup.FormFieldPrepend will prepend a title to all appended form variables.

If you would like to prevent submitting the form immediately, you can use the Startup.AfterResult() function detailed above. When using the Startup.AfterResult() function, the Device Fingerprint will not append the results to your form. If the service is unable to bind to your supplied trigger, the console log will report errors.
Suppose you prefer to execute code before calling the API during a trigger event. In that case, you can optionally supply a callback function as the second parameter on Startup.Trigger(). It will pass the event object, so you can optionally use preventDefault() or call any other function as needed.

 

Device Fingerprinting with Transaction Data

The form trigger framework allows you to specify additional fields for order submission and payment processing. These additional fields allow us to better track your users and provide better fraud analysis to prevent transaction fraud. This feature requires you to use the Startup.Trigger() function as shown above. Without using this function, JavaScript will not correctly append data to each request. Accepted fields and values are listed in the table below. If the API cannot locate a specified field, it will report these in the console logs.

Additional Methods to Pass Data

Instead of binding to a form, it is possible to delay the initial fingerprint processing using Startup.Pause() and later Startup.Resume(). Doing so pre-loads the necessary JavaScript to fingerprint the user but waits until Startup.Resume() has been called to process the request. Therefore, user-inputted data, not available on the initial page load, can be attached to the initial request as in the example below:

Accepted Order & Transaction Parameters

Below is a list of optionally accepted parameters for order and transaction support, along with a brief description and a listing of their required formatting. All fields are optional and should be passed with Startup.FieldStore().

 

Note: We recommend using our dedicated Transaction Scoring API for more accurate transaction and user data analysis.

 

Key Description Expected Values
billing_first_name The customer's billing first name. String
billing_last_name The customer's billing last name. String
billing_company The customer's billing company. String
billing_country The customer's billing country name or billing country ISO-Alpha2. (EG: United States or US) String
billing_address_1 The customer's billing street address part 1. String
billing_address_2 The customer's billing street address part 2. String
billing_city The customer's billing city. String
billing_region The customer's billing region or state. String
billing_postcode The customer's billing postcode or zipcode. String / Number
billing_email The customer's billing email address. String
billing_phone The customer's billing 11 to 14-digit phone number. (If less than 10 digits are provided, our AI will guess the country code.)     Number
shipping_first_name The customer's shipping first name. String
shipping_last_name The customer's shipping last name. String
shipping_company The customer's shipping company. String
shipping_country The customer's shipping country name or shipping country ISO-Alpha2. (EG: United States or US) String
shipping_address_1 The customer's shipping street address part 1. String
shipping_address_2 The customer's shipping street address part 2. String
shipping_city The customer's shipping city. String
shipping_region The customer's shipping region or state. String
shipping_postcode The customer's shipping postcode or zipcode. String / Number
shipping_email The customer's shipping email address. String
shipping_phone The customer's shipping 11 to 14-digit phone number. (If less than 10 digits are provided, our AI will guess the country code.) Number
username The customer's username. String
password_hash For security reasons and following industry best practices, a SHA256 hash of the user's password for better user analysis. SHA256 / string
credit_card_bin The first six digits of the credit or debit card, referred to as the Bank Identification Number.     Number
credit_card_hash For security reasons and following industry best practices, a SHA256 hash of the credit card number is accepted to check against blocklisted cards.     SHA256 / string
credit_card_expiration_month Two-character format of the credit card's expiration month. For example, May would be "05". Number
credit_card_expiration_year Two-character format of the credit card's expiration year. For example, 2022 would be "22".     Number
avs_code One-letter Address Verification Service (AVS) response code provided by the credit card processor or bank. Number
cvv_code One-letter Card Verification Value (CVV2) response code provided by the credit card processor or bank. Number
order_amount Total balance of the entire order without currency symbols. Number
order_quantity Quantity of items for this order. Number
recurring Is this a recurring order that automatically rebills? boolean
recurring_times If this is a recurring order, how many times has this recurring order rebilled? For example, if this is the third time the user has been billed, please enter this value as "3". If this is the initial recurring order, leave the value as blank or enter "1". Number

 

React Device Fingerprinting

You can easily deploy our React Device Fingerprinting SDK using our NPM package. If you are not using React, then continue using the documentation on this page to integrate JavaScript device fingerprinting. Mobile device fingerprint SDKs for Android and iOS are also available upon request.

Caching Failures

You can specify a function to execute after our API fails to return its results correctly. This could be due to them blocking some of our tracking or disabling third-party scripts.

The AfterResult() function offers a high degree of flexibility. You can call it multiple times and pass it a variety of functions. Our library will execute each of them in the order you passed them.

 

Note: Using the code below before including the script tag on your site will result in errors and failure of your function to fire.

 

Ready to eliminate fraud?

Start fighting fraud now with 5,000 Free Lookups!

We're happy to answer any questions or concerns.

Chat with our fraud detection experts any day of the week.

Call us at: (800) 713-2618