eIDV Advance API
Introduction
The eIDV Advance API enables real-time electronic identity verification (eIDV) of individual consumers in the U.S. using a combination of personal data points such as name, SSN, phone number, address, and date of birth. The API cross-checks each input field against authoritative databases and returns detailed match indicators for each field, helping businesses assess the accuracy and legitimacy of a user's identity.
This robust, data-driven verification process plays a critical role in compliance, fraud prevention, and secure onboarding.
Key Benefits
- Multi-attribute identity verification using trusted U.S. data sources.
- Field-level match indicators (e.g., name match, SSN match, DOB match).
- Reduces risk of synthetic identity fraud and impersonation.
- Improves user trust and onboarding speed.
Common Use Cases
- Banking & Financial Services (KYC/CIP)
- Verify consumer identities during account opening, credit applications, or lending decisions to meet regulatory compliance.
- Online Marketplaces & Gig Economy Platforms
- Confirm legitimacy of users, sellers, drivers, or service providers before activation on the platform.
- Cryptocurrency & Fintech Platforms
- Perform identity verification during wallet creation or crypto trading onboarding, reducing regulatory and fraud risk.
- Healthcare Registration
- Confirm patient identity using SSN and DOB to avoid duplicate records and insurance fraud.
- Insurance Onboarding & Claims
- Validate the identity of policyholders or claimants during online application or payout processes.
- E-commerce or BNPL (Buy Now Pay Later) Platforms
- Use full or partial SSN-based verification to determine if users are legitimate before extending credit or high-value services.
Sample cURL
curl --location 'https://api-preproduction.signzy.us/api/v3/us-kyc/eidv-advance' \
--header 'Content-Type: application/json' \
--header 'Authorization: ' \
--data-raw '{
"ssn": "",
"dob": "",
"addressLine1": "",
"city": "",
"state": "",
"zip": "",
"firstName": "",
"middleName": "",
"lastName": "",
"driverLicense": "",
"email": "",
"phone": ""
}'Request Body Parameters
Parameter | Data Type | Required | Description |
|---|---|---|---|
ssn | String | Optional | 9 digits or 4 digits, numeric only (no dashes). Example: 123456789 |
dob | String | Optional | Date in YYYY-MM-DD format. Example: 1990-09-21 |
addressLine1 | String | Optional | House number, street name and Unit number (i.e. 770 skokie blvd, unit 930) or PO Box (i.e. 1607 westminster dr) Example: 22 Horizon Cir note :- Addresss line 2 is not required in input |
city | String | Optional | City name. Example: Aurora |
state | String | Optional | 2-letter uppercase U.S. state code. Example: IL |
zip | String | Optional | 5-digit U.S. ZIP code. Example: 60501 |
firstName | String | Optional | Given name. Example: John |
middleName | String | Optional | Middle initial or blank. Example: A. |
lastName | String | Optional | Family name. Example: Doe |
driverLicense | String | Optional | Driver’s license number. Example: P620-7949 |
String | Optional | Must be a valid email format. Example: [email protected] | |
phone | String | Optional | Must be 10 digits, or prefixed with 1 or +1 followed by 10 digits. Digits only, no spaces or symbols. Example: 9XXXXXXXXXX |
Minimum Input Requirements :-
Provide one or more of the following: ssn, phone, email, Full Address (addressLine1, city, state, zip), or (firstName, lastName, dob)
Sample Response
{
"result": {
"score": 100,
"scoreDescriptions": [
"NA",
"NA",
"FULL_DOB_MATCH",
"NA",
"NA",
"SSN_EXACT_MATCH",
"NA",
"NA",
"NA"
],
"addressMatchType": "NA",
"nameMatchType": "NA",
"dobMatchType": "MATCH",
"phoneMatchType": "NA",
"emailMatchType": "NA",
"ssnMatchType": "MATCH",
"cityMatchType": "NA",
"zipMatchType": "NA",
"stateMatchType": "NA",
"driverLicenseMatchType": "NA",
"dataProvenance": {
"identityFirstSeenDate": "2013-12-07",
"identityLastSeenDate": "2013-12-07",
"addressFirstSeenDate": "2017-06-01",
"addressLastSeenDate": "2025-10-01",
"phoneFirstSeenDate": "2012-03-13",
"phoneLastSeenDate": "2025-10-01",
"emailFirstSeenDate": "NA",
"emailLastSeenDate": "NA"
},
"riskIndicators": {
"isDeceased": "false",
"deathRecordSource": "NA",
"isHighRiskAddress": "false",
"highRiskCategory": "NA",
"isResidentialAddress": "false",
"firstPartyRiskScore": "NA"
},
"metadata": {
"firstName": {
"sourceValue": "sourceValue",
"matchTypeCode": "NO_MATCH"
},
"middleName": {
"sourceValue": "sourceValue",
"matchTypeCode": "NO_MATCH"
},
"lastName": {
"sourceValue": "sourceValue",
"matchTypeCode": "NO_MATCH"
},
"ssn": {
"sourceValue": "sourceValue",
"matchTypeCode": "PARTIAL_MATCH"
},
"driverLicense": {
"sourceValue": "sourceValue",
"matchTypeCode": "NA"
},
"address": {
"sourceValue": "sourceValue",
"matchTypeCode": "NA"
},
"email": {
"sourceValue": "sourceValue",
"matchTypeCode": "NA"
}
}
},
"reason": "Request Successful",
"code": "S001"
}Response Body Parameters
Parameter | Data Type | Description |
|---|---|---|
score | Number (Float) | Overall identity match score (0–100) |
scoreDescriptions[] | Array[String] | Descriptions of individual field match results |
addressMatchType | String | Match status for address |
nameMatchType | String | Match status for name |
dobMatchType | String | Match status for date of birth |
phoneMatchType | String | Match status for phone number |
emailMatchType | String | Match status for email |
ssnMatchType | String | Match status for SSN |
cityMatchType | String | Match status for city |
zipMatchType | String | Match status for ZIP code |
stateMatchType | String | Match status for state |
driverLicenseMatchType | String | Match status for driver’s license |
dataProvenance.identityFirstSeenDate | String (Date) | Date when the identity was first seen in the system |
dataProvenance.identityLastSeenDate | String (Date) | Date when the identity was most recently seen |
dataProvenance.addressFirstSeenDate | String (Date) | Date when the address was first seen |
dataProvenance.addressLastSeenDate | String (Date) | Date when the address was last seen |
dataProvenance.phoneFirstSeenDate | String (Date) | Date when the phone number was first seen |
dataProvenance.phoneLastSeenDate | String (Date) | Date when the phone number was last seen |
dataProvenance.emailFirstSeenDate | String (Date/NA) | Date when the email was first seen (or NA if unavailable) |
dataProvenance.emailLastSeenDate | String (Date/NA) | Date when the email was last seen (or NA if unavailable) |
riskIndicators.isDeceased | Boolean (String) | Indicates whether the identity is associated with a death record |
riskIndicators.deathRecordSource | String | Source of the death record (if any) |
riskIndicators.isHighRiskAddress | Boolean (String) | Indicates whether the address is categorized as high-risk |
riskIndicators.highRiskCategory | String | Category of high-risk address, if applicable |
riskIndicators.isResidentialAddress | Boolean (String) | Indicates whether the address is residential |
riskIndicators.firstPartyRiskScore | String/Number | First-party risk scoring information |
Match Types Values :-
Logic Description | Match Type |
|---|---|
When data in input matches exactly with database | MATCH |
When data in input matches partially with database | PARTIAL_MATCH |
When data in input does not match with database | NO_MATCH |
When no input is passed for corresponding data field | NA |
When no data is available in records (esp. for DL) | NO_DL_AVAILABLE_ON_RECORD |
Guidelines to use :-
It is recommended to base decisions primarily on the Score and Match Type values. As a general guideline, a score above 70 indicates a strong match.
The Score Descriptions offer additional context on the matching logic used but are not intended for automated decision-making purposes.
For automated decision making, we recommend use our score and elemental match/partial & no match. You can use score description as part of your review process in case of borderline cases
Score Descriptions Values :-
Address
Logic Description | Score Descriptions |
|---|---|
Full Address Match | ADDRESS_MATCH |
Full address match on a previous/historical address | PREV_ADDRESS_MATCH |
Full address match excluding the unit | ADDRESS_MATCH_MINUS_UNIT |
Full address match on previous/historical address excluding the unit | PREV_ADDRESS_MATCH_MINUS_UNIT |
Match on house number and first 4 chars of street name | HOUSE_NUMBER_1ST_FOUR_OF_STREET_NAME_MATCH |
Match on previous/historical house number and first 4 chars of street name | PREV_HOUSE_NUMBER_1ST_FOUR_OF_STREET_NAME_MATCH |
House number match | HOUSE_NUMBER_MATCH |
House number match on previous/historical address | PREV_HOUSE_NUMBER_MATCH |
Street name match | STREET_NAME_MATCH |
Street name match on previous/historical address | PREV_STREET_NAME_MATCH |
No Match On Address | ADDRESS_NO_MATCH |
Name
Field Description | Score Description |
|---|---|
Full name match including middle if included in request | FULL_NAME_MATCH |
Full name match (on AKA) including middle if included in request | PREV_FULL_NAME_MATCH |
First and last names match, but not middle name | FIRST_NAME_LAST_NAME_MATCH |
First and last names match on AKA, but not middle name | PREV_FIRST_NAME_LAST_NAME_MATCH |
Last name and 1st 4 chars of first name match | LAST_NAME_AND_1ST_FOUR_OF_FIRST_NAME_MATCH |
Last name and 1st 4 chars of first name of AKA | PREV_LAST_NAME_ONLY_MATCH |
Last name and 1st letter of first name match | LAST_NAME_AND_1ST_LETTER_OF_FIRST_NAME_MATCH |
Last name and 1st letter of first name match of AKA | PREV_LAST_NAME_ONLY_MATCH |
Last name only match | LAST_NAME_ONLY_MATCH |
Last name only matches on AKA | PREV_LAST_NAME_ONLY_MATCH |
First name only matches | FIRST_NAME_ONLY_MATCH |
First name only matches on AKA | PREV_FIRST_NAME_ONLY_MATCH |
No Name Match | NAME_NO_MATCH |
Date of Birth
Field Description | Score Description |
|---|---|
Full DOB match | FULL_DOB_MATCH |
Month and Year match, not day | MONTH_YEAR_MATCH |
Year of DOB only match | YEAR_MATCH |
No DOB Match | DOB_NO_MATCH |
Phone
Field Description | Score Description |
|---|---|
Full phone match | FULL_PHONE_MATCH |
Full phone match on previous/historical phone | PREV_FULL_PHONE_MATCH |
Last 7 digits of phone match | PHONE_LAST_7_MATCH |
Last 7 digits of phone match or previous/historical phone | PREV_PHONE_LAST_7_MATCH |
No Phone Match | PHONE_NO_MATCH |
Field Description | Score Description |
|---|---|
Full email match | FULL_EMAIL_MATCH |
User name only match | USERNAME_MATCH |
No Email Match | EMAIL_NO_MATCH |
No Email Available | NO_EMAIL_AVAIL_ON_RECORD |
SSN
Field Description | Score Description |
|---|---|
SSN exact match | SSN_EXACT_MATCH |
Last 4 digits of SSN match | LAST_4_MATCH |
Last 4 digits of SSN when full SSN's are not permitted by access profile | LAST_4_MATCH_REDACTED |
No SSN Match | SSN_NO_MATCH |
City
Field Description | Score Description |
|---|---|
City exact match | CITY_EXACT_MATCH |
City no match | CITY_NO_MATCH |
ZIP
Field Description | Score Description |
|---|---|
Zip code exact match | ZIP_EXACT_MATCH |
Only 3 digits match of zip code match | FIRST_3_DIGITS_MATCH |
Zip no match | ZIP_NO_MATCH |
State
Field Description | Score Description |
|---|---|
State exact match | STATE_EXACT_MATCH |
Previous state match | PREV_STATE_EXACT_MATCH |
State no match | STATE_NO_MATCH |
Sample Error
{
"result": {},
"reason": "Minimum input not satisfied. Provide one or more of the following: ssn, phone, email, Full Address (addressLine1, city, state, zip), or (firstName, lastName, dob)",
"code": "E002"
}Error Response Parameters
Parameter | Description |
|---|---|
result | Empty result object |
reason | Reason for error |
status | Status of the api |
code | Error code from Signzy |
Error Codes
HTTP Status Code | Error Code | Description |
|---|---|---|
400 | E001 | Bad Request |
401 | E1001 | Unauthorized Access |
403 | E201 | Forbidden |
404 | E301 | Data Not Found |
409 | E401 | Upstream error |
429 | E501 | Rate Limit Exceeded |
500 | E601 | Internal Server Error |
503 | E701 | Service Unavailable |
504 | E801 | Timeout |
Success Codes
HTTP Status Code | Success Code | Description |
|---|---|---|
200 | S001 | Request Successful. |
200 | S003 | Data not Found on source. |
Getting help
Please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better.
You can reach out to us at [email protected]. We strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively.
We value your feedback and are committed to making your experience smooth and enjoyable. Our team is dedicated to assisting you with any needs you may have. Thank you for choosing our services. We look forward to helping you!