# Identity Fraud Check

## Run an identity fraud check

To run an Identity Fraud Check, you must [create a check ](/documentation/api-reference/core-resources/checks/create-a-check.md)with `type` set to `identity_fraud_check`.

[Learn more about Identity Fraud Checks.](/documentation/product-guides/identity-verification/identity-fraud-check.md)

## Check request

<table><thead><tr><th width="262.4">Attribute</th><th width="93">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>clientId</code></td><td>string</td><td>The ID of the client associated with this check. (<strong>Required</strong>)</td></tr><tr><td><code>type</code></td><td>string</td><td>This must be set to <code>identity_fraud_check</code>. (<strong>Required</strong>)</td></tr><tr><td><code>addressId</code></td><td>string</td><td>The ID of the address. (<strong>Required</strong>)</td></tr></tbody></table>

## Example requests

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://api.complycube.com/v1/checks \
     -H 'Authorization: <YOUR_API_KEY>' \
     -H 'Content-Type: application/json' \
     -d '{
          "clientId":"CLIENT_ID",
          "addressId":"ADDRESS_ID",
          "type": "identity_fraud_check"
        }'

```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const check = await complycube.check.create("CLIENT_ID", {
        addressId: "ADDRESS_ID",
        type: "identity_fraud_check"
});
```

{% endtab %}

{% tab title="Python" %}

```python
check = cc_api.check.create(
    'CLIENT_ID', 
    'identity_fraud_check',
    addressId='ADDRESS_ID'
)
```

{% endtab %}

{% tab title="PHP" %}

```php
$result = $ccapi->checks()->create('CLIENT_ID',
                                   ['type' => 'identity_fraud_check',
                                   'addressId' => 'ADDRESS_ID']);
```

{% endtab %}

{% tab title=".NET" %}

```csharp
var checkRequest = new CheckRequest {
  clientId = "CLIENT_ID",
  addressId = "ADDRESS_ID",
  type = "identity_fraud_check"
};

var check = await checkApi.CreateAsync(checkRequest);
```

{% endtab %}
{% endtabs %}

## Result object

The `result` object is only returned when the status of the check is `complete`. It has two components - `outcome` and `breakdown`.

### Outcome

The outcome attribute represents the overall check result. Returned values include:

1. `clear`: Indicates every analysis type conducted returned a successful result.
2. `attention`: Indicates at least one of the analysis results requires attention.

### Breakdown

The breakdown comprises the following objects:

#### `identityVerification` object

The identity verification results. It has the following constituents:

* `name`: Indicates whether the client's name matches authoritative sources.
* `dob`: Indicates whether the client's date of birth matches authoritative sources.
* `address`: Indicates whether the client's address matches authoritative sources.
* `telephone`: Indicates whether the client's telephone number matches authoritative sources.
* `mobile`: Indicates whether the client's mobile number matches authoritative sources.
* `email`: Indicates whether the client's email matches authoritative sources.
* `activity`: Indicates whether the client's UK activity/footprint are as expected.
* `breakdown`: This is an array that comprises of objects with the following constituents:
  * `field`: The attribute verified (e.g. `dob`).
  * `source`: The source type that has matched the attribute. Values include:
    * `credit_agency`
    * `government_authority`
    * `consumer_database`
    * `utility_authority`
    * `proprietary_database`
    * `telecom_agency`
    * `postal_authority`
    * `other_source`
  * `status`: A status will have one of the following values:
    * `clear`: Indicates an attribute **fully** **matched** with data held by sources.
    * `attention`: Indicates an attribute **partially matched** with data held by sources.

#### `databaseAnalysis` object

The database analysis results. It has the following constituents:

* `mortality`: Indicates a match against mortality/deceased records.
* `fraud`: Indicates a match against fraud databases.
* `fakeProfile`: Indicates a match against synthetic or fake identities.
* `police`: Indicates a match against police records.
* `breakdown`: This is an array that comprises of objects with the following constituents:
  * `field`: The dataset screened (e.g. `police`).
  * `sourceDescription`: The description of the source (e.g. "Amberhill").
  * `status`: A status will have one of the following values:
    * `clear`: Indicates **no records** held by the source.
    * `attention`: Indicates **matching records** held by the source.

## Sample Response

{% code overflow="wrap" fullWidth="false" %}

```json
{
    "id": "688f1e2e37d2a9000202ad7f",
    "entityName": "John Doe",
    "type": "identity_fraud_check",
    "clientId": "688f1e2e37d2a9000202ad70",
    "addressId": "688f1e2e37d2a9000202ad76",
    "status": "complete",
    "result": {
        "outcome": "clear",
        "breakdown": {
            "identityVerification": {
                "name": "clear",
                "dob": "clear",
                "address": "clear",
                "telephone": "clear",
                "mobile": "clear",
                "email": "clear",
                "activity": "clear",
                "breakdown": [
                    {
                        "status": "clear",
                        "field": "dob",
                        "source": "telecom_agency"
                    }
                ]
            },
            "databaseAnalysis": {
                "mortality": "clear",
                "fraud": "clear",
                "fakeProfile": "clear",
                "police": "clear",
                "breakdown": [
                    {
                        "status": "clear",
                        "field": "police",
                        "sourceDescription": "Amberhill"
                    },
                    {
                        "status": "clear",
                        "field": "fraud",
                        "sourceDescription": "SIRA Checks - Private Sector"
                    }
                ]
            }
        }
    },
    "updatedAt": "2025-01-01T08:30:40.334Z",
    "createdAt": "2025-01-01T08:30:38.527Z"
}
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.complycube.com/documentation/api-reference/check-types/identity-fraud-check.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
