# eIDV

The USA eIDV (electronic Identity Verification) service provides automated, remote identity verification for individuals within the United States. It utilizes a person's first name, last name, and date of birth to check against official records. The service returns a match score along with a detailed description of the verification outcome, enabling quick and reliable identity checks.

Endpoint: POST /services/us/eidv
Version: 1.0
Security: API-Key

## Security:

  - `API-Key` (unknown)
    apiKey in header API-Key

## Request fields (application/json):

  - `first_name` (string, required)
    Example: Josh

  - `middle_name` (string | null)
    The middle name of a person
    Example: David

  - `last_name` (string, required)
    Example: Coffey

  - `dob` (string, required)
    Example: 1976-02-21

  - `address` (string | null)
    An address (a street name, a building number, and a unit number) of a person or a company
    Example: 45 High Street, Flat 2A

  - `city` (string | null)
    A city or a town of a person or a company
    Example: London

  - `state` (string | null)
    A state of a person or a company
    Example: null

  - `postal_code` (string | null)
    A postal code (zip code, postcode) of a person or a company
    Example: SW1A 1AA

  - `phone` (string | null)
    The phone number of a person or a company
    Example: 441172345678

  - `email` (string | null)
    The email address of a person or a company
    Example: josh.coffey@example.com

  - `ssn` (string | null)
    The US Social Security Number of a person (SSN). The value must be an unformatted string of digits, either 4 digits (partial) or exactly 9 digits (full). No dashes, spaces, or other characters are allowed
    Example: 545180772

  - `drivers_license` (string | null)
    The unique driver identification number issued by a US state or territory. It is a mix of numbers and letters, and its format is state-dependent
    Example: P620-7949

## Response 200:

  - `200` (unknown)
    **OK**
The request was successful, and our system returned an expected response.

## Response 200 fields (application/json):

  - `data` (object)

  - `data.match_score` (number | null)
    Overall identity match score
    Example: 80

  - `data.name_match` (string | null)
    The type of match found for the person’s full name during US eIDV verification
- **MATCH**: The person’s full name has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s full name address partially matches the record in the database
- **NO_MATCH**: The person’s full name address did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.dob_match` (string | null)
    The type of match found for the person’s date of birth during US eIDV verification
- **MATCH**: The person’s date of birth has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s date of birth partially matches the record in the database
- **NO_MATCH**: The person’s date of birth did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.address_match` (string | null)
    The type of match found for the person’s address during US eIDV verification
- **MATCH**: The person’s address has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s address partially matches the record in the database
- **NO_MATCH**: The person’s address did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.city_match` (string | null)
    The type of match found for the person’s city during US eIDV verification
- **MATCH**: The person’s city has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s city partially matches the record in the database
- **NO_MATCH**: The person’s city did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.state_match` (string | null)
    The type of match found for the person’s state during US eIDV verification
- **MATCH**: The person’s state has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s state partially matches the record in the database
- **NO_MATCH**: The person’s state did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.postal_code_match` (string | null)
    The type of match found for the person’s postal code (ZIP) during US eIDV verification
- **MATCH**: The person’s postal code (ZIP) has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s postal code (ZIP) partially matches the record in the database
- **NO_MATCH**: The person’s postal code (ZIP) did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.phone_match` (string | null)
    The type of match found for the person’s phone number
- **MATCH**: The person’s phone number has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s phone number partially matches the record in the database
- **NO_MATCH**: The person’s phone number did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.email_match` (string | null)
    The type of match found for the person’s email address during US eIDV verification
- **MATCH**: The person’s email address has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s email address partially matches the record in the database
- **NO_MATCH**: The person’s email address did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.ssn_match` (string | null)
    The type of match found for the person’s Social Security Number (SSN) during US eIDV verification
- **MATCH**: The person’s SSN has a total match against the record in the database
- **PARTIAL_MATCH**: The person’s SSN partially matches the record in the database
- **NO_MATCH**: The person’s SSN did not match a record in the database
- **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

  - `data.drivers_license_match` (string | null)
    | The type of match found for the person’s driver’s license number during US eIDV verification
- **MATCH**: The person’s driver’s license number has a total match against the record in the database - **PARTIAL_MATCH**: The person’s driver’s license number partially matches the record in the database - **NO_MATCH**: The person’s driver’s license number did not match a record in the database - **null**: No data was provided in the request
    Enum: "MATCH", "PARTIAL_MATCH", "NO_MATCH", null

## Response 400:

  - `400` (unknown)
    **Bad Request**
Our system could not process the request due to invalid syntax, missing parameters, or incorrect data format. Check the request structure and try again.

## Response 400 fields (application/json):

  - `type` (string)
    Example: bad_request

  - `errors` (array)

## Response 402:

  - `402` (unknown)
    **Payment Required**
Access to the requested resource is restricted until a payment is successfully processed. Ensure your account has a valid payment method or sufficient funds to complete this action.

## Response 402 fields (application/json):

  - `type` (string)
    Example: insufficient_funds

  - `errors` (array)

## Response 404:

  - `404` (unknown)
    **Not Found**
The requested resource does not exist or can’t be found in our system.

## Response 500:

  - `500` (unknown)
    **Internal Server Error**
This response indicates that our system encountered an unexpected condition that prevented it from fulfilling the request.

## Response 500 fields (application/json):

  - `type` (string)
    Example: internal_server

  - `errors` (array)

## Response 502:

  - `502` (unknown)
    **Bad Gateway**
This response indicates that our system is unable to reach or communicate properly with an upstream server it relies on, the URL provided is incorrect, or a required token is missing from the request.

