---
updatedAt: 2025-06-10T21:39:06.000Z
agentTools:
  siteIndex: https://docs.recurly.com/llms.txt
  projectIndex: https://docs.recurly.com/recurly-subscriptions/v1.2.2/llms.txt
---

# Fraud

Add device-fingerprinting data to every Recurly.js token so Recurly Fraud Management, Kount, or Braintree can score the transaction before it reaches your gateway.

Recurly.js can automatically embed the browser/device data required by common fraud-screening tools:

* **Recurly Fraud Management** (built on Kount)
* **Standalone Kount** accounts—including Enterprise plans with custom UDFs
* **Braintree Advanced Fraud Tools**

Enable the relevant collector once, and every token returned by Recurly.js includes the proper payload for the gateway or provider. No extra API calls or client libraries are needed, except for Braintree’s own device-data snippet.

## Prerequisites and limitations

* Fraud protection must be **enabled on your Recurly site** and—if applicable—your Kount or Braintree credentials must be configured in the Recurly admin UI.
* **Kount / Recurly Fraud Management**
  * Set `fraud.kount.dataCollector: true` in `recurly.configure`; pass the checkout `form` element.
  * Enterprise customers may add or mutate `fraud.kount.udf` (User Defined Fields) before tokenization.
* **Braintree**
  * You must first call `braintree.dataCollector` in your page to obtain the `deviceData` string, then supply it via `fraud.braintree.deviceData`.
* Device collection runs **once per page load**; ensure the configuration executes **before** the first call to tokenize.
* Collected data is attached only to **newly-generated tokens**; reusing a previously created token will not refresh fraud data.
* Fraud payload size is controlled by the provider; very large custom UDF objects may be truncated.

# Key details

Recurly.js provides a fraud protection suite with support for our [Fraud Management](https://docs.recurly.com/v1.0/docs/fraud-management) toolkit, [Kount](https://docs.recurly.com/v1.0/docs/kount) integration, and [Braintree](https://docs.recurly.com/v1.0/docs/additional#section-braintree) gateway integration.

With fraud protection enabled, tokens created with Recurly.js will include device data we use to analyze fraud risk and flag subsequent transactions accordingly. Configuration is simple.

### Configuring Fraud Protection

Once you have enabled fraud protection on your site, modify your Recurly.js configuration call according to your fraud protection setup.

### Recurly Fraud Management & Kount Integration

If you are using Recurly Fraud Management or Kount, Recurly.js will handle all device data collection when configured as follows. Recurly Fraud Managment uses Kount's device data collector under the hood. The `form` parameter should be your checkout form.

```js
recurly.configure({
  // ...
  fraud: {
    kount: {
      dataCollector: true,
      form: document.querySelector('.my-checkout-form-selector')
    }
  }
  // ..
});
```

This will enable device data collection and automatically apply it to your tokens.

When using a **Kount Enterprise Fraud Management** plan you can provide your own [User Defined Fields](https://kount.com/user-defined-fields/) with the `udf` option.

```js
recurly.configure({
  // ...
  fraud: {
    kount: {
      dataCollector: true,
      form: document.querySelector('.my-checkout-form-selector'),
      udf: {
        FREQUENCY: 107,
        COUPON: 'BUY11',
      }
    }
  }
  // ..
});
```

In order to add or remove User Defined Fields after configuring Recurly, you can assign a reference to an object that you can modify later.

### Braintree Gateway Fraud Integration

First, you will need to collect device data [using the Braintree JavaScript client](https://developers.braintreepayments.com/guides/advanced-fraud-management-tools/client-side/javascript/v2). This is required by Braintree.

Once you have obtained deviceData, you'll provide it to `recurly.configure` as follows. Note that we're passing the complete deviceData string as exposed by the Braintree library.

```js
// Collect device data using the Braintree client
// ...

const { deviceData } = braintreeInstance;

recurly.configure({
  // ...
  fraud: {
    braintree: { deviceData }
  }
  // ...
});
```

This will apply Braintree fraud data to your tokens generated by Recurly.js. Transactions created with those tokens will pass the fraud data to Braintree for fraud analysis.

***

# Sibling pages

* [Overview](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/overview-recurlyjs-4350.md)
* [Getting started](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/getting-started.md)
* [Styling elements](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/styling-elements.md)
* [Getting a token](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/getting-a-token.md)
* [Using a token](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/using-a-token.md)
* [Events](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/events.md)
* [Elements](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/elements.md)
* [Apple Pay](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/apple-pay.md)
* [Google Pay ™](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/google-pay-tm.md)
* [Bank accounts: US, IBAN, BACS, BECS](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/bank-accounts-us-iban-bacs-becs.md)
* [Boleto, iDEAL, Sofort, and CashApp](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/boleto-ideal-sofort-and-cashapp.md)
* [PayPal](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/paypal.md)
* [Venmo](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/venmo.md)
* [Amazon Pay V2](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/amazon-pay-v2.md)
* [Pricing](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/pricing.md)
* [3D Secure](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/3d-secure.md)
* [Validation](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/validation.md)
* [Errors](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/errors.md)
* [Examples](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/examples.md)
* [React & TypeScript support](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/react-typescript-support.md)
* [Upgrading](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/upgrading.md)
* [Support](https://docs.recurly.com/recurly-subscriptions/v1.2.2/docs/support.md)