# Overview

The Fraud Prevention library for Angular (`@transmitsecurity/ngx-ts-riskid`) is a wrapper of the Mosaic [Fraud Prevention JavaScript SDK](/sdk-ref/platform/modules/drs_overview). Once integrated, the library automatically collects device and behavioral telemetry and submits it to Mosaic for analysis. When specific user actions occur (such as login or account registration), you can report those events to receive risk-based recommendations via the [Recommendations](/openapi/risk/recommendations.openapi) backend API.

## Capabilities

- Collects device and behavioral data automatically in the background
- Reports user action events (login, registration, transaction, etc.) for risk assessment
- Provides action tokens for correlating client-side and backend events
- Angular module and injectable service-based API


## Installation

npm
```shell
npm install @transmitsecurity/ngx-ts-riskid --save
```

yarn
```shell
yarn add @transmitsecurity/ngx-ts-riskid
```

## Initialization

Import the `NgxTsRiskidModule` and configure the `RISKID_SDK_CONFIG` provider in your root module:

```js
import { NgxTsRiskidModule, RiskidSdkConfig, RISKID_SDK_CONFIG } from '@transmitsecurity/ngx-ts-riskid';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, FormsModule, HttpClientModule, NgxTsRiskidModule],
  providers: [
    {
      provide: RISKID_SDK_CONFIG,
      useValue: {
        clientId: 'CLIENT_ID',
        serverUrl: 'https://api.transmitsecurity.io/risk-collect/',
      } as RiskidSdkConfig,
    }
  ],
  bootstrap: [AppComponent],
})
export class AppModule { }
```

Configure the server URL based on your region:

| Region | Server URL |
|  --- | --- |
| US | `https://api.transmitsecurity.io/risk-collect/` |
| EU | `https://api.eu.transmitsecurity.io/risk-collect/` |
| Canada | `https://api.ca.transmitsecurity.io/risk-collect/` |
| Australia | `https://api.au.transmitsecurity.io/risk-collect/` |
| Sandbox | `https://api.sbx.transmitsecurity.io/risk-collect/` |
| Custom domain | `https://<your_custom_domain>/risk-collect/` (see [Custom domains](/guides/deployment/custom_domains)) |


## Usage

Inject the `NgxTsRiskidService` to trigger actions and manage user context:

```js
import { NgxTsRiskidService } from '@transmitsecurity/ngx-ts-riskid';

@Component({ ... })
export class AppComponent {

  constructor(private riskidService: NgxTsRiskidService) {}

  async loginTriggered() {
    const actionResponse = await this.riskidService.triggerAction(NgxTsRiskidService.ACTION_TYPES.LOGIN);
    const actionToken = actionResponse.actionToken;
    // Send actionToken to your backend
  }
}
```

## Next steps

- [Angular quickstart](/guides/risk/quick_start_angular)
- [Recommendations API](/openapi/risk/recommendations.openapi)