Skip to main content
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=USA" \
  -F "services=usa_states_financial_services" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "date_of_birth=1990-01-01"
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "USA",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "usa_states_financial_services",
      "service_name": "United States of America - United States Financial Services",
      "source_data": {
        "address": "123 Sample Street",
        "address_match_score": "1.000",
        "city": "Sample City",
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "full_name": "John Doe",
        "last_name": "Doe",
        "name_match_score": "1.000",
        "postal_code": "10001",
        "state": "Sample State",
        "street": "sample_value",
        "verifications": {
          "date_of_birth": true,
          "full_name": true
        }
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "full_match"
      }
    }
  ]
}
Aggregated service of government and public records, background records, and other services. Didit exposes this service through POST /v3/database-validation/ so you can verify the submitted data against the authoritative source and receive normalized match results.

Coverage

  • Coverage: ~ 85%
  • Country: United States
  • Service ID: usa_states_financial_services
  • Data domain: Financial
  • Category: FinancialServices

Inputs

FieldRequiredExample
first_nameYesJohn
last_nameYesDoe
date_of_birthYes1990-01-01
address.street_1No123 Sample Street
address.street_2NoUnit 4
address.cityNoSample City
address.regionNoSample State
address.postal_codeNo10001
phoneNo+15550101000
ssnNo123456789
emailNojohn.doe@example.com
vendor_dataNouser-1234
  • Required inputs: first_name, last_name, date_of_birth
  • Optional inputs: address.street_1, address.street_2, address.city, address.region, address.postal_code, phone, ssn, email, vendor_data
  • Consent: Not required
  • Workflow availability: Available in workflow
  • Coverage: ~ 85%
  • Price: $0.19 per successful query

Body parameters

issuing_state
string
default:"USA"
required
ISO 3166-1 alpha-3 country code for this database service.Example: USA
services
string
default:"usa_states_financial_services"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example: usa_states_financial_services
first_name
string
default:"John"
required
Given name to validate.Example: John
last_name
string
default:"Doe"
required
Family name to validate.Example: Doe
date_of_birth
string
default:"1990-01-01"
required
Date of birth in YYYY-MM-DD format.Example: 1990-01-01
address
object
Structured residential address object. Use street_1, street_2, city, region, postal_code, and country. A complete legacy address string is still accepted but not recommended.Example: {"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}
phone
string
default:"+15550101000"
Phone number in international format.Example: +15550101000
ssn
string
default:"123456789"
ssn value required by this database service.Example: 123456789
email
string
default:"john.doe@example.com"
Email address.Example: john.doe@example.com
vendor_data
string
default:"user-1234"
Your stable user reference for this person, such as your internal user ID. Didit uses it to link standalone checks to the same end user and reduce duplicate-detection noise.Example: user-1234

Input rules & validation notes

  • address is optional for this service. You can send one complete address string and Didit will split it into structured address elements when possible, or you can send the structured fields explicitly.
  • US Social Security Number or ITIN - full 9 digits (dashes optional) or only the last 4 digits
  • ssn must match (?:\d{9}|\d{3}-\d{2}-\d{4}|\d{4}).
  • For ssn, send either the full 9-digit SSN/ITIN (dashes optional) or only its last 4 digits.
  • This service requires first_name, last_name, and date_of_birth, which already meets the source’s minimum of a name plus one more identity field. Optional fields (ssn, address, phone, email) further strengthen the match.
  • For address services, send structured address fields instead of a single address string when possible.
  • address.street_1 is the street address, including street number and street type.
  • address.street_2 is apartment, unit, building, floor, or extra address line. Send it only when you have it.
  • address.city is city, suburb, district, locality, or neighborhood.
  • address.region is state, province, region, or town.
  • address.postal_code is postcode or postal code.
  • Address-based database services require at least street address and postal code; requests rejected before source lookup are not charged.

How to call it

curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=USA" \
  -F "services=usa_states_financial_services" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "date_of_birth=1990-01-01"
Every successful call returns HTTP 200. The outcome_code field tells you what actually happened — distinguishing, for example, a real biometric mismatch (BIOMETRIC_NO_MATCH) from a selfie that could not be read (BIOMETRIC_IMAGE_UNUSABLE). The status shown is the default feature status; your configured Partial Match / No Match actions can override it.

Returned data

The exact fields surfaced in source_data depend on what the registry returns. The generated example for usa_states_financial_services currently documents this normalized shape:
  • address
  • address_match_score
  • city
  • date_of_birth
  • first_name
  • full_name
  • last_name
  • name_match_score
  • postal_code
  • state
  • street

Pricing & SLAs

United States of America - United States Financial Services queries are billed only when Didit receives a conclusive result from the validation source.
  • Per-call price: $0.19 USD.
  • Billing: per successful query. You are not charged when the registry is unreachable, when required fields are missing, or when the request is rejected before reaching the source.
  • Latency: typical p95 < 2 s.
  • Availability: 99.9% per quarter on Didit’s side; downstream source availability varies by country and dataset.

Continue reading