AgentSkillsCN

didit-database-validation

集成Didit数据库验证API,将个人数据与政府数据库进行核验。当用户希望将身份信息与政府记录进行比对、验证国民身份证号码、核查CPF/CURP/DNI/cedula号码、进行身份数据库查询、将身份证明文件与官方来源进行比对,或使用Didit对拉丁美洲或西班牙的身份证明文件进行数据库验证时使用此功能。支持18个国家,采用1x1与2x2匹配方法。

SKILL.md
--- frontmatter
name: didit-database-validation
description: >
  Integrate Didit Database Validation API to verify personal data against government
  databases. Use when the user wants to validate identity against government records,
  verify national ID numbers, check CPF/CURP/DNI/cedula numbers, perform identity database
  lookups, validate identity documents against official sources, or implement database
  verification for Latin American or Spanish identity documents using Didit.
  Supports 18 countries with 1x1 and 2x2 matching methods.
version: 1.0.0
metadata:
  openclaw:
    requires:
      env:
        - DIDIT_API_KEY
    primaryEnv: DIDIT_API_KEY
    emoji: "🗄️"
    homepage: https://docs.didit.me

Didit Database Validation API

Overview

Verifies personal data and identity documents against trusted government and financial databases. Prevents synthetic identity fraud and ensures identity authenticity.

Key constraints:

  • Requires at least the national ID/document number for the target country
  • Coverage: 18 countries (primarily Latin America + Spain)
  • Results: full_match, partial_match, or no_match
  • Only charged per successful query — no charge if insufficient data

Matching methods:

MethodDescriptionStarting Price
1x1Single data source validation$0.05
2x2Two data sources cross-validation$0.30

API Reference: https://docs.didit.me/reference/database-validation-api


Authentication

All requests require x-api-key header. Get your key from Didit Business Console → API & Webhooks.


Endpoint

code
POST https://verification.didit.me/v3/database-validation/

Headers

HeaderValueRequired
x-api-keyYour API keyYes
Content-Typeapplication/jsonYes

Body (JSON)

ParameterTypeRequiredDescription
id_numberstringYesUniversal ID number — auto-maps to correct country field
first_namestringNoFirst name for matching
last_namestringNoLast name for matching
date_of_birthstringNoDOB in YYYY-MM-DD (required for some countries)
issuing_statestringNoISO 3166-1 alpha-3 country code
save_api_requestbooleanNoSave in Business Console
vendor_datastringNoYour identifier for session tracking

The id_number field auto-maps to the correct country-specific field:

CountryMapped FieldDocumentFormat
ARGdocument_numberDNI
BOLdocument_numberCI
BRAtax_numberCPF11 digits
CHLpersonal_numberRUT
COLpersonal_numberCedula
CRIpersonal_numberCedula
DOMpersonal_numberCedula11 digits
ECUpersonal_numberCedula10 digits
ESPpersonal_numberDNI/NIE
GTMdocument_numberDPI
HNDdocument_numberDNI
MEXpersonal_numberCURP18 chars
PANdocument_numberCedula
PERpersonal_numberDNI8 digits
PRYdocument_numberCI
SLVdocument_numberDUI
URYpersonal_numberCI
VENdocument_numberCedula

Example

python
import requests

response = requests.post(
    "https://verification.didit.me/v3/database-validation/",
    headers={"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "id_number": "12345678",
        "first_name": "Carlos",
        "last_name": "Garcia",
        "issuing_state": "PER",
    },
)
print(response.json())
typescript
const response = await fetch("https://verification.didit.me/v3/database-validation/", {
  method: "POST",
  headers: { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    id_number: "12345678",
    first_name: "Carlos",
    last_name: "Garcia",
    issuing_state: "PER",
  }),
});

Response (200 OK)

json
{
  "request_id": "a1b2c3d4-...",
  "database_validation": {
    "status": "Approved",
    "match_type": "full_match",
    "issuing_state": "PER",
    "validation_type": "1x1",
    "screened_data": {
      "personal_number": "12345678",
      "first_name": "Carlos",
      "last_name": "Garcia"
    },
    "validations": {
      "full_name": "full_match",
      "identification_number": "full_match"
    }
  }
}

Status Values & Handling

StatusMeaningAction
"Approved"Full match against government recordsIdentity confirmed
"Declined"No match foundIdentity could not be verified
"In Review"Partial match or insufficient dataReview screened_data and validations

Error Responses

CodeMeaningAction
400Invalid requestCheck ID number format for target country
401Invalid API keyVerify x-api-key header
403Insufficient creditsTop up at business.didit.me

Matching Logic

Name Matching

ResultCriteria
Full MatchFull name concatenation at 85% similarity (Levenshtein), OR First + Last both full match
Partial MatchAny single name component full match
No MatchNo component reaches 70% similarity

Individual name components use 70% Levenshtein threshold. Example: "Christophel" vs "Christopher" = Full Match; "Chris" vs "Christopher" = No Match.

1x1 Decision

Match TypeNameID Number
full_matchFull MatchFull Match
partial_matchPartial MatchFull Match
no_matchAll other combinations

2x2 Decision

Requires matching against 2 independent data sources:

Match TypeCondition
full_matchBoth sources confirm name + ID
partial_matchOne source confirms
no_matchNeither source confirms

DOB and ID number matching is exact only — no fuzzy matching.


Warning Tags

TagDescription
COULD_NOT_PERFORM_DATABASE_VALIDATIONMissing required data — provide ID number, name, and country
DATABASE_VALIDATION_PARTIAL_MATCHPartial match found — requires investigation
DATABASE_VALIDATION_NO_MATCHNo match found in government records

When COULD_NOT_PERFORM_DATABASE_VALIDATION fires, session goes to "In Review". Validation auto-retriggers once missing data is provided.


Supported Countries

CountryMethodCoverageRequired Input
Argentina1x195%Document number
Bolivia1x195%Document number + DOB
Brazil1x195%Tax number (CPF)
Chile1x195%Personal number (RUT)
Colombia1x195%Document number + type
Costa Rica1x195%Personal number
Dominican Republic1x195%Personal number
Ecuador1x1 / 2x290-96%Personal number
El Salvador1x195%Document number + DOB
Guatemala1x195%Document number
Honduras1x195%Document number
Mexico1x195%Personal number (CURP)
Panama1x195%Document number + DOB
Paraguay1x195%Document number
Peru1x1 / 2x295-99%Personal number
Spain1x195%Personal number + doc type + expiry
Uruguay1x195%Personal number + DOB
Venezuela1x195%Document number