> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Clear Individual Match

## Clear Individual Match

Clear Individual Match compares an individual's application data with CLEAR public-record data. It returns candidate records, field-level match scores, an overall match score, known-address data, and identity indicators. A match result is identity evidence, not an approval or risk decision.

The Workflow Builder block is **Clear Individual Match** (`clear_individual_match`), applies to an individual entity, and runs CLEAR ID Confirm Person Search. The current API provider ID is `clear_id_confirm_person`.

## Requirements

| Application field | Requirement | Notes |
| - | - | - |
| Primary owner's first name | Required | Uses the primary owner's identity record. |
| Primary owner's last name | Required | Uses the primary owner's identity record. |
| Primary owner's city | Required | Uses the city from the primary owner's personal address. |
| Primary owner's state | Required | This service is US-only and requires a valid uppercase US state code. |
| Address line 1 | Optional | Additional address information can improve matching. |
| ZIP code | Optional | Must be valid for the primary owner's address country when present. |
| Date of birth | Optional | Must be a valid date when present. |
| SSN or ITIN | Optional | Uses the SSN when present; otherwise, it uses the ITIN when available. |
| Phone | Optional | Uses the primary owner's telephone when available. |

Country is used to validate and normalize state and ZIP values, but it is not a separate field in the current CLEAR person request.

## API flow

1. Call [Enrich Business Credit Application](/api-reference/workflow-management/enrich-business-credit-application) with the application ID in the URL.
2. Set `provider` to `clear_id_confirm_person`.
3. Optionally include `stage_id`. When supplied, it must be the UUID of an underwriting stage in the application's workflow.
4. Do not include `options`; this service has no provider-specific API options.
5. Confirm that the response contains `data.onqueue: true`. This means the job was queued, not that CLEAR finished.
6. Poll [Get Commercial Data](/api-reference/workflow-management/get-commercial-data) with `services[]=clear_id_confirm_person`.

```json theme={"system"}
{
  "provider": "clear_id_confirm_person",
  "stage_id": "00000000-0000-4000-8000-000000000000"
}
```

| Operation | Method and route | Parameters |
| - | - | - |
| Queue the search | `PUT /api/applications/{application_id}/enrich` | Required `provider`; optional `stage_id`; no `options`. |
| Retrieve status, request, and response | `GET /api/applications/{application_id}/commercial_data` | Optional repeated `services[]` filter. |

## Data Orchestration availability and flow

CLEAR Individual Match attributes are available in Data Orchestration under **Match > Clear > Person Match**.

1. Add an outcome condition that uses a CLEAR Person Match attribute.
2. Publish the Data Orchestration template and execute it for an application.
3. If no stored `clear_id_confirm_person` response exists, Data Orchestration runs the prerequisite search synchronously before evaluating the condition.
4. Data Orchestration evaluates the returned value and continues through the configured outcome.

The service has no upstream data-service dependency, but the required application fields must exist and CLEAR must be enabled. By default, an existing stored response satisfies the prerequisite and is reused instead of being fetched again.

## What the service returns

| Result area | Lendflow response path | What it means |
| - | - | - |
| Lifecycle | `data.statuses.clear.clear_id_confirm_person` | Lendflow's latest execution state or failure message. |
| Provider data | `data.commercial_data.clear.clear_id_confirm_person` | CLEAR's person search response converted from XML to JSON-compatible objects and arrays. |
| Submitted request | `data.request_data.clear.clear_id_confirm_person` | The request stored by Lendflow. It can contain highly sensitive personal data; restrict access and logging. |

## Representative response

This sanitized response is abbreviated. CLEAR may return one entity or an array of entities, and one search record or an array of records.

```json theme={"system"}
{
  "data": {
    "statuses": {
      "clear": {
        "clear_id_confirm_person": "Success"
      }
    },
    "commercial_data": {
      "clear": {
        "clear_id_confirm_person": {
          "Status": {
            "StatusCode": "200",
            "SubStatusCode": "200"
          },
          "EIDVPersonSearchResults": {
            "EIDVPersonSearchResult": {
              "PersonEntities": {
                "PersonEntity": {
                  "Death": {
                    "DeathIndicator": "NO"
                  },
                  "Summary": {
                    "FirstName": {
                      "@attributes": {
                        "matchtype": "MATCH",
                        "matchscore": "100.00"
                      }
                    }
                  },
                  "TotalScore": "91.25",
                  "MultipleSSNs": {
                    "MultipleSSNsIndicator": "NO"
                  },
                  "SearchRecords": {
                    "SearchRecord": {
                      "FirstName": {
                        "@text": "JANE",
                        "@attributes": {
                          "matchtype": "MATCH",
                          "matchscore": "100.00"
                        }
                      },
                      "ContentSource": "Credit Header"
                    }
                  },
                  "EntityIdentifier": "P1__EXAMPLE"
                }
              }
            }
          }
        }
      }
    }
  }
}
```

## Response attributes

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `Status.StatusCode` | String | CLEAR response status code. | HTTP-like numeric string, such as `"200"`. | With a stored CLEAR response. |
| `Status.SubStatusCode` | String | Provider substatus. | Provider-defined numeric string. | When supplied by CLEAR. |
| `PersonEntity` | Object or array of objects | Candidate person records. | One or more entities; code must support both shapes. | When CLEAR finds candidates. |
| `Death.DeathIndicator` | String | Whether CLEAR associated the entity with a death record. | Usually `YES` or `NO`. | When supplied by CLEAR. |
| `Summary` | Object | Aggregate match result by submitted field. | Keys can include name, birth date, SSN, address, ZIP, and phone. | Per entity when CLEAR scored fields. |
| `@attributes.matchtype` | String | CLEAR's categorical comparison result. | Common values include `MATCH`, `PARTIAL MATCH`, and `NO MATCH`. | Per scored field. |
| `@attributes.matchscore` | String | Field-level identity match score. | Numeric string from `"0.00"` to `"100.00"`. | Per scored field. |
| `TotalScore` | String | Overall identity match score for the entity. | Numeric string from `"0.00"` to `"100.00"`; higher means a closer identity match. | Per entity. |
| `MultipleSSNs.MultipleSSNsIndicator` | String | Whether CLEAR found multiple SSNs associated with the entity. | Usually `YES` or `NO`. | When supplied by CLEAR. |
| `SearchRecord` | Object or array of objects | Supporting public-record matches. | One or more records. | When candidate source records are available. |
| `@text` | String | Provider value found in a supporting record. | Field-specific text; sensitive values such as SSNs can be masked. | When CLEAR returns the underlying value. |
| `ContentSource` | String | Source category for a supporting record. | Provider-defined label. | Per search record when available. |
| `KnownAddresses.KnownAddress` | Object or array of objects | Addresses associated with the candidate. | Address text plus provider source and confirmation metadata. | When available. |
| `OfacListing.OfacListingIndicator` | String | Whether CLEAR associated the entity with an OFAC listing. | Usually `YES` or `NO`. | When supplied by CLEAR. |
| `SSNMatchesMultipleIndividuals.SSNMatchesMultipleIndividualsIndicator` | String | Whether the returned SSN is associated with multiple people. | Usually `YES` or `NO`. | When supplied by CLEAR. |
| `EntityIdentifier` | String | Opaque CLEAR person identifier saved for related CLEAR services. | Provider-defined string. | Per entity when available. |

### Missing values, dates, and collections

| Shape | Interpretation |
| - | - |
| Missing key or `null` wrapper | The service has not stored that part of the result, or CLEAR did not return it. |
| `[]` for an XML element | CLEAR returned an empty element. Treat it as unavailable, not as a negative match. |
| Object or array | XML-to-array conversion can represent a single entity, record, address, or source as an object or string and repeated values as arrays. |
| Numeric-looking strings | Preserve scores, ZIP codes, record numbers, and identifiers as strings. |
| `LastConfirmed` | CLEAR fixture responses use an eight-digit `YYYYMMDD` string. |
| Partial dates | Provider values can mask unknown day or month components, such as `09/XX/1964`. |

## Errors and statuses

| Status or message | Meaning | Action |
| - | - | - |
| `Not yet started` | No run is recorded for the service. | Queue the service or execute the workflow. |
| `Started` | The asynchronous job is running or waiting for CLEAR results. | Continue polling. CLEAR can return `204` while results are not ready. |
| `Success` | Lendflow stored the CLEAR response. | Read the provider data; `Success` does not mean the individual matched. |
| `Authorization failed.` | CLEAR rejected the configured credentials. | Contact Lendflow or correct your organization's CLEAR configuration. |
| Validation message | A required field is missing or an optional value is invalid. | Correct the application data before retrying. |
| Provider message | CLEAR returned another search or retrieval error. | Follow the message when actionable; otherwise retry or contact Lendflow. |

See [Data Provider Status Messages](/api-docs/docs/error-handling-external-data-provider-status-messages) for shared status guidance.

## FAQ

<AccordionGroup>
  <Accordion title="Which provider ID should I send?">
    Send `clear_id_confirm_person`. The backend definition is named CLEAR ID Confirm Person Search, but `clear_id_confirm_person_search` is not the current executable API provider ID.
  </Accordion>

  <Accordion title="Are date of birth, SSN, and phone required?">
    No. First name, last name, city, and US state are required. Date of birth, SSN or ITIN, street, ZIP, and phone are optional.
  </Accordion>

  <Accordion title="Do I send CLEAR credentials or permissible-purpose values?">
    No. Lendflow resolves the configured CLEAR credentials and permissible-purpose settings. Send only your Lendflow bearer token with the API request.
  </Accordion>

  <Accordion title="Does data.onqueue true mean the match is complete?">
    No. It only confirms that Lendflow queued the job. Poll commercial data until the lifecycle status leaves `Started`.
  </Accordion>

  <Accordion title="Does Success mean the person matched?">
    No. `Success` means Lendflow stored CLEAR's response. Evaluate `TotalScore`, field scores, and indicators according to your policy.
  </Accordion>

  <Accordion title="Why can a record or address be either an object or an array?">
    CLEAR responds in XML. When Lendflow converts it, one value can appear as an object while repeated values appear as an array. Integrations must support both shapes.
  </Accordion>
</AccordionGroup>
