Skip to main content
Fraud Intelligence

Device fingerprint collection

The J.P. Morgan Device Fingerprint feature provides an easy way to collect data from your checkout page to aid in fraud detection. A device fingerprint, also known as a machine fingerprint, includes hardware, browser, geographic, and IP address information related to a remote computing device. This allows you to capture device telemetry from your checkout page to input into our fraud risk assessment process and help identify fraud patterns.

Enable device fingerprint collection

You must perform the following steps to enable device fingerprint collection:

Step 1: Add a script tag to install the device fingerprint JavaScript on your checkout page. Add the following to the body of your checkout page - as early as possible, preferably immediately after the opening <body> tag so the SDK has the maximum time to bootstrap before payment submission:

<script src="https://dfp-static.chase.com/static/dfp.js"></script>

Step 2: Verify the package by visiting your checkout page in a browser. 

  1. Open Developer Tools and select Network. 
  2. Confirm dfp.js shows as loaded with a 200 response. This confirms the file downloaded. Step 3 confirms the SDK executed successfully.

Step 3: Perform the following steps to check for the Session ID. The Session ID is a UUID (e.g., fe76ef6c-3aee-4407-9fa0-625e8e52de8a) stored as a JSON value in localStorage.

  1. Based on your browser, perform the following:
    • Chromium-based browsers (Chrome, Edge, Opera, and Brave):
      • Open Developer Tools.
      • Select Application.
      • Select Local Storage and click on your website. 
    • Safari and Firefox:
      • Open Developer Tools.
      • Select Storage.
      • Select Local Storage and click on your website.
  2. The value at key deviceFingerprintSessionId is a JSON string containing a timestamp and a deviceFingerprintSessionId property. Parse the JSON and read the deviceFingerprintSessionId property. Example stored value:
{"timestamp":"2026-08-27T20:02:41.610Z","deviceFingerprintSessionId":"fe76ef6c-3aee-4407-9fa0-625e8e52de8a"}

Step 4: Include the deviceFingerprintSessionId value in the risk.consumerDeviceInfo.deviceFingerprintSessionId field of your payment request. On each payment submission, read the JSON string from localStorage at key deviceFingerprintSessionId, parse it, and use the deviceFingerprintSessionId property.

The following table shows the required field for Device Fingerprint:

Required field for device fingerprint
Field name Description
risk.consumerDeviceInfo.deviceFingerprintSessionId

An auto-generated fraud session identifier.

  • Stored in localStorage as a JSON string under the key deviceFingerprintSessionId. You must parse and read the deviceFingerprintSessionId property.
  • If the SDK did not populate localStorage, omit the field and do not generate a placeholder value.

The following code sample shows a payment request with device fingerprint data:

HTTP Method: POST
Endpoint: /payments

{
    "captureMethod": "NOW",
    "amount": 1234,
    "currency": "USD",
    "risk": {
        "consumerDeviceInfo": {
            "deviceFingerprintSessionId": "fe76ef6c-3aee-4407-9fa0-625e8e52de8a"
        }
    },
    "merchant": {
        "merchantId": "991234567890",
        "merchantSoftware": {
            "companyName": "Payment Company",
            "productName": "Application Name",
            "version": "1.235",
            "softwareId": "string"
        },
        "merchantCategoryCode": "4819",
        "merchantLogoUrl": "string"
    },
    "paymentMethodType": {
        "card": {
            "accountNumberType": "PAN",
            "accountNumber": "string",
            "expiry": {},
            "walletProvider": "APPLE_PAY",
            "cardType": "VI",
            "cardTypeName": "VISA",
            "cvv": "string",
            "originalNetworkTransactionId": "1c4b1100-4017-11e9-b649-8de064224186",
            "isBillPayment": true,
            "maskedAccountNumber": "123456XXXXXX9876",
            "maskedCardNumber": "string",
            "cardTypeIndicators": {
                "cardProductTypes": []
            }
        }
    }
}
Is this page helpful?