# Phone Number Risk Check

Incode’s Phone Number Risk Check determines the level of risk associated with a phone number. It supports global phone numbers and checks for the following:

- If the number is an active line
- Any fraudulent activity associated with the phone number. This can include whether it was exposed in recent breaches, reported for spam/harassment, is associated with robocalls, etc.

The check provides a risk score based on the activity observed with the phone number.

The Phone Number Risk Check module can be added to your workflow to evaluate the trust and potential risk of a phone number based on intelligence and behavioral signals.

## User input flow

Phone Number Risk Check module configuration allows collection of user data via a user input flow where users can select the country code and type in their phone number. See an example below:

## Module configuration

The module configuration can be leveraged to select the applicable fields for the input data you would like to collect from the end user.

## Single Session Dashboard Result

## Direct API Approach

All module configurations and user data can be forwarded directly in the request for performing an eKYC search. This will override existing configuration and data collected about the user.

### API Authentication

All endpoints require authentication headers to be specified as stated in [Incode API Documentation](https://developer.incode.com/reference/introduction).

### eKYC request

**POST /omni/externalVerification/ekyc**

This endpoint performs an eKYC check for the individual specified. Note: Endpoint can have empty body {} and in that case information will be pulled from module configuration and session details.

- **phone**: (mandatory) String.
- **country**: (mandatory) String. Must be "GL".
- **source**: (mandatory) String. Must be "PHONE_RISK_1".

Example request:

```jsx
{
  "countryCode": "GL",
  "phone": "+13421111234",
  "plugins": [
    "kyc"
  ],
  "source": "PHONE_RISK_1"
}
```

## Direct API Response

Note: Endpoint can have empty body {} and in that case information will be pulled from module configuration and session details.

```jsx
{
  "kyc": [
    {
      "key": "phoneValid",
      "status": "true"
    },
    {
      "key": "phoneFraudScore",
      "status": "low"
    },
    {
      "key": "phoneCarrier",
      "status": "AT&T"
    },
    {
      "key": "phoneLineType",
      "status": "Wireless"
    },
    {
      "key": "phoneActive",
      "status": "true"
    },
    {
      "key": "phoneVOIP",
      "status": "false"
    },
    {
      "key": "phonePrepaid",
      "status": "false"
    },
    {
      "key": "phoneRisky",
      "status": "false"
    },
    {
      "key": "phoneLeaked",
      "status": "false"
    },
    {
      "key": "phoneSpammer",
      "status": "false"
    },
    {
      "key": "overallLevel",
      "status": "low"
    }
  ]
}
```

### eKYC error responses

Please refer to [error response](https://developer.incode.com/reference/introduction#api-responses) to see conventional HTTP response codes to indicate the success or failure of an API request.
