<p align="center">
  <img src="https://raw.githubusercontent.com/radarlabs/radar-sdk-js/master/assets/logo.svg">
</p>

<h4 align="center">
  <a href="https://radar.com">Website</a> |
  <a href="https://radar.com/blog">Blog</a> |
  <a href="https://radar.com/documentation">Documentation</a> |
  <a href="mailto:support@radar.com">Support</a>
</h4>

<p align="center">
  <a href="https://www.npmjs.com/package/@radarlabs/plugin-fraud"><img src="https://img.shields.io/npm/v/@radarlabs/plugin-fraud.svg" alt="npm"></a>
</p>

<p align="center">
  Fraud detection plugin for <a href="https://github.com/radarlabs/radar-sdk-js">radar-sdk-js</a>. Provides verified location tracking via the Radar Verify companion app.
</p>

## 🚀 Installation and Usage

### With npm

```bash
# with npm
npm install @radarlabs/plugin-fraud radar-sdk-js

# with yarn
yarn add @radarlabs/plugin-fraud radar-sdk-js
```

Then import and initialize:

```ts
import Radar from 'radar-sdk-js';
import { createFraudPlugin } from '@radarlabs/plugin-fraud';

Radar.registerPlugin(createFraudPlugin());
Radar.initialize('prj_live_pk_...');
```

### With a script tag

Include after the core SDK:

```html
<script src="https://js.radar.com/v5.0.0/radar.min.js"></script>
<script src="https://js.radar.com/fraud/v1.4.1/radar-fraud.min.js"></script>
```

The CDN bundle auto-registers with the core SDK when loaded.

## Quickstart

### Track verified location

```ts
const { token, user, events } = await Radar.fraud.trackVerified();
```

### Continuous verified tracking

```ts
Radar.fraud.startTrackingVerified({ interval: 10 });

Radar.fraud.onTokenUpdated((token) => {
  console.log(token);
});
```

### Get cached verified location token

```ts
const token = await Radar.fraud.getVerifiedLocationToken();
```

### Set expected jurisdiction

```ts
Radar.fraud.setExpectedJurisdiction('US', 'NJ');
```

## API

All methods are available on `Radar.fraud`:

| Method                                              | Description                                                      |
| --------------------------------------------------- | ---------------------------------------------------------------- |
| `trackVerified(params?)`                            | Track the user's verified location                               |
| `startTrackingVerified(params)`                     | Start continuous verified tracking at an interval                |
| `stopTrackingVerified()`                            | Stop continuous verified tracking                                |
| `getVerifiedLocationToken(params?)`                 | Get the cached verified location token                           |
| `clearVerifiedLocationToken()`                      | Clear the cached verified location token                         |
| `revealRisk()`                                      | Reveal network, device, and fraud risk signals (no location)     |
| `setExpectedJurisdiction(countryCode?, stateCode?)` | Set the expected jurisdiction for verified tracking              |
| `onTokenUpdated(callback)`                          | Register a callback for token updates during continuous tracking |

## Deprecated root-level API

For backwards compatibility, all methods are also available directly on `Radar` (e.g., `Radar.trackVerified()`). These are deprecated — use `Radar.fraud.*` instead.

## 📫 Support

Have questions? We're here to help! Email us at [support@radar.com](mailto:support@radar.com).
