# Identity Verify Plus

`POST https://api.agilitycredit.net/v3/verify-id`

Docs page: https://apidocs.agilitycredit.com/api/idv-plus · Tag: Compliance

Identity Verify Plus (IDV+) — runs trust scoring and identity verification in a single call. No prior possession or session required. Submit phone number and identity data directly in the request body. The engine performs the trust score and identity verify in one round trip and returns the combined result.

Authentication: `Authorization: Bearer <api key>`.

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `Idempotency-Key` | header | yes | A unique, idempotent key. We recommend to use a guid |
| `Agc-Tenant-Id` | header | yes | The tenant ID provided by Agility Credit. |
| `Agc-User-Id` | header | yes | The requestor user ID. |
| `Agc-Applicant-Id` | header |  | If passed, will assign the report to that applicant. If not, will create a new applicant ID |

## Request body (`application/json`), required

Phone number and identity data for the IDV+ call.

Schema: `IdvPlusRequest`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `phone_number` | string | yes | Applicant mobile phone number. Used for both trust scoring and identity lookup. |
| `first_name` | string | yes |  |
| `last_name` | string | yes |  |
| `address` | string |  |  |
| `extended_address` | string |  |  |
| `city` | string |  |  |
| `state` | string |  |  |
| `zip` | string |  |  |
| `dob` | string |  | Date of birth in ISO 8601 format (YYYY-MM-DD) or year only (YYYY). |
| `ssn` | string |  | Full SSN. Alternatively send `last4_ssn`. |
| `last4_ssn` | string |  | Last four of the SSN, if not sending the full `ssn`. |
| `applicant_id` | string |  | Optional. If passed, associates the IDV+ result with an existing applicant. If omitted, a new applicant is created and returned in the `Agc-Applicant-Id` header. |

## Responses

| Status | Description | Body |
| --- | --- | --- |
| 200 | IDV+ result — trust score and identity verify decision | ProveVerifyResponse |
| 400 | Bad Request | BadRequestResponse |
| 401 | Unauthorized | UnauthorizedResponse |
| 403 | Forbidden | UnauthorizedResponse |
| 429 | Too Many Requests | TooManyRequestsResponse |
| 500 | Internal Server Error | AgilityServerErrorResponse |
Top-level 200 fields: `session_id`, `trust_score`, `trust_passed`, `trust_threshold`, `trust_reason_codes`, `status`, `verify_passed`, `changed`, `verify_result`, `reason_code_details`, `completed`.

### Error bodies

400:

```json
{
  "status": "Bad Request - Invalid Parameters",
  "error": "Failed schema validation. Error: data.pull_type must be one of ['prequal', 'hard'], Path: ['data', 'pull_type'], Data: prequalification"
}
```

401:

```json
{
  "message": "Unauthorized"
}
```

403:

```json
{
  "message": "Unauthorized"
}
```

429:

```json
{
  "error": "Too Many Requests"
}
```

500:

```json
{
  "message": "Agility Server Error"
}
```
