# SEON JavaScript SDK v6

To successfully utilize this library, you must have a SEON account set up. (https://seon.io)

## Installation

You can either use one of our CDNs, or this npm package to load the SDK.

### CDN

It is preferred to use one of our CDNs directly, because this way you will always receive the latest version.

```html
<script src="https://cdn.dfsdk.com/js/v6/agent.umd.js"></script>
<!-- or -->
<script src="https://cdn.deviceinf.com/js/v6/agent.umd.js"></script>
<!-- or -->
<script src="https://cdn.seonintelligence.com/js/v6/agent.umd.js"></script>
```

Then in your JavaScript you can use the `window.seon` object:

```javascript
// On page load
window.seon.init();

// Later when the fingerprint is needed
const session = await window.seon.getSession();
// 'session' variable holds the encrypted device fingerprint as a base64 encoded string
```

For more information about the config options, please visit https://docs.seon.io/api-reference/fraud-api#javascript-agent-v6 .
This will give you the collected device info in an encrypted format. You can not decrypt it yourself,
you have to send it as the `session` parameter to SEON's proprietary Fraud API (see https://docs.seon.io/api-reference/fraud-api).
The Fraud API will return the device fingerprint in the `device_details` field.

### NPM

**Note that with this method you will have to keep the package updated yourself to include our latest features and bugfixes.**

```bash
npm install @seontechnologies/seon-javascript-sdk
# or
yarn add @seontechnologies/seon-javascript-sdk
```

### Note:

In our package we do not include polyfills but we rely on newer browser features like Promise functionality (namely Promise.allSettled) support. Including polyfills are required for older browser support.

Usage:

```javascript
import seon from '@seontechnologies/seon-javascript-sdk';
// or
// const seon = require('@seontechnologies/seon-javascript-sdk');

// On page load
seon.init();

// Later when the fingerprint is needed
const session = await seon.getSession();
// 'session' variable holds the encrypted device fingerprint as a base64 encoded string
```

For more information and configuration options, visit our public GitHub [repository](https://github.com/seontechnologies/seon-web-sdk-public) and consult the [API reference](https://docs.seon.io/api-reference/fraud-api#javascript-agent-v6).
