curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FIN" \
-F "services=fin_national_id" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F "national_id=010190-123A"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="FIN",
services=["fin_national_id"],
consent=True,
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="010190-123A",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "FIN",
services: ["fin_national_id"],
consent: true,
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "010190-123A",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "FIN",
Services: didit.Some([]string{"fin_national_id"}),
Consent: didit.Bool(true),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("010190-123A"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("FIN")
.services(List.of("fin_national_id"))
.consent(true)
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("010190-123A")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'FIN',
'services' => ['fin_national_id'],
'consent' => true,
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '010190-123A',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "FIN",
services: ["fin_national_id"],
consent: true,
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "010190-123A",
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "FIN",
Services = new string[] { "fin_national_id" },
Consent = true,
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "010190-123A",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FIN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "FIN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FIN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
🇫🇮 फ़िनलैंड
फ़िनलैंड राष्ट्रीय ID सत्यापन API: डेटा मिलान
Didit के साथ फ़िनलैंड डेटाबेस सत्यापन: आधिकारिक फ़िनलैंड डेटाबेस से पहचान जाँच। $3.50 से प्रति कॉल भुगतान, कोई अनुबंध या न्यूनतम नहीं।
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FIN" \
-F "services=fin_national_id" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F "national_id=010190-123A"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="FIN",
services=["fin_national_id"],
consent=True,
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="010190-123A",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "FIN",
services: ["fin_national_id"],
consent: true,
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "010190-123A",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "FIN",
Services: didit.Some([]string{"fin_national_id"}),
Consent: didit.Bool(true),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("010190-123A"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("FIN")
.services(List.of("fin_national_id"))
.consent(true)
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("010190-123A")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'FIN',
'services' => ['fin_national_id'],
'consent' => true,
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '010190-123A',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "FIN",
services: ["fin_national_id"],
consent: true,
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "010190-123A",
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "FIN",
Services = new string[] { "fin_national_id" },
Consent = true,
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "010190-123A",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FIN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "FIN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FIN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
यह सेवा फ़िनलैंड के पहचान कार्ड जारी करने वाली आधिकारिक एजेंसी के रिकॉर्ड से इनपुट डेटा का सत्यापन करती है। Didit इस सेवा को
POST /v3/database-validation/ के माध्यम से उपलब्ध कराता है, ताकि आप सबमिट किए गए डेटा को आधिकारिक स्रोत से मिलाकर सामान्यीकृत मिलान परिणाम प्राप्त कर सकें।
कवरेज
- कवरेज: ~ 100%
- देश: फ़िनलैंड
- सेवा ID:
fin_national_id - डेटा डोमेन: पहचान
- श्रेणी: NationalIDRegistry
इनपुट
| फ़ील्ड | आवश्यक | उदाहरण |
|---|---|---|
first_name | हाँ | John |
last_name | हाँ | Doe |
date_of_birth | हाँ | 1990-01-01 |
national_id | हाँ | 010190-123A |
address.street_1 | नहीं | 123 Sample Street |
address.street_2 | नहीं | Unit 4 |
address.city | नहीं | Sample City |
address.region | नहीं | Sample State |
address.postal_code | नहीं | 10001 |
vendor_data | नहीं | user-1234 |
- आवश्यक इनपुट:
first_name,last_name,date_of_birth,national_id - वैकल्पिक इनपुट:
address.street_1,address.street_2,address.city,address.region,address.postal_code,vendor_data - सहमति: आवश्यक
- वर्कफ़्लो में उपलब्धता: वर्कफ़्लो में उपलब्ध
- कवरेज: ~ 100%
- कीमत: $3.50 प्रति सफल क्वेरी
बॉडी पैरामीटर
string
डिफ़ॉल्ट:"FIN"
आवश्यक
इस डेटाबेस सेवा के लिए ISO 3166-1 alpha-3 देश कोड।उदाहरण:
FINstring
डिफ़ॉल्ट:"fin_national_id"
आवश्यक
इस सेवा ID को शामिल करने वाला एरे। सेवा को पिन करने से अनुरोध इसी सटीक डेटाबेस तक सीमित रहता है।उदाहरण:
fin_national_idboolean
डिफ़ॉल्ट:"true"
आवश्यक
इस सेवा के लिए अंतिम उपयोगकर्ता की स्पष्ट सहमति।उदाहरण:
truestring
डिफ़ॉल्ट:"John"
आवश्यक
सत्यापित किया जाने वाला दिया गया नाम।उदाहरण:
Johnstring
डिफ़ॉल्ट:"Doe"
आवश्यक
सत्यापित किया जाने वाला पारिवारिक नाम।उदाहरण:
Doestring
डिफ़ॉल्ट:"1990-01-01"
आवश्यक
YYYY-MM-DD प्रारूप में जन्म तिथि।उदाहरण: 1990-01-01string
डिफ़ॉल्ट:"010190-123A"
आवश्यक
इस सेवा के लिए राष्ट्रीय पहचान संख्या।उदाहरण:
010190-123Aobject
संरचित निवास पता ऑब्जेक्ट।
street_1, street_2, city, region, postal_code और country का उपयोग करें। पते की पूरी पुरानी स्ट्रिंग अब भी स्वीकार की जाती है, लेकिन इसकी अनुशंसा नहीं की जाती।उदाहरण: {"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}string
डिफ़ॉल्ट:"user-1234"
इस व्यक्ति के लिए आपका स्थिर उपयोगकर्ता संदर्भ, जैसे आपका आंतरिक उपयोगकर्ता ID। Didit इसका उपयोग स्वतंत्र जाँचों को उसी अंतिम उपयोगकर्ता से जोड़ने और डुप्लिकेट-पहचान के शोर को कम करने के लिए करता है।उदाहरण:
user-1234इनपुट नियम और सत्यापन नोट्स
- इस सेवा के लिए
addressवैकल्पिक है। आप एक पूरीaddressस्ट्रिंग भेज सकते हैं, और संभव होने पर Didit उसे संरचित पता तत्वों में विभाजित कर देगा, या आप संरचित फ़ील्ड स्पष्ट रूप से भेज सकते हैं। national_idको(?:\d{6}[-+A]\d{3}[0-9A-Z]|\d{6}\d{3}[0-9A-Z])से मेल खाना चाहिए।- पता-आधारित डेटाबेस सेवाओं के लिए, संभव हो तो एकल
addressस्ट्रिंग के बजाय संरचित पता फ़ील्ड भेजें। address.street_1सड़क का पता है, जिसमें मकान नंबर और सड़क का प्रकार शामिल है।address.street_2अपार्टमेंट, यूनिट, भवन, मंज़िल या कोई अतिरिक्त पता पंक्ति है। इसे केवल तभी भेजें जब आपके पास यह हो।address.cityशहर, उपनगर, ज़िला, इलाका या मोहल्ला है।address.regionराज्य, प्रांत, क्षेत्र या कस्बा है।address.postal_codeपिनकोड या डाक कोड है।- पता-आधारित डेटाबेस सेवाओं के लिए कम से कम सड़क का पता और पोस्टल कोड आवश्यक है; स्रोत में खोज किए जाने से पहले अस्वीकार किए गए अनुरोधों पर शुल्क नहीं लिया जाता।
How to call it
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=FIN" \
-F "services=fin_national_id" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F "national_id=010190-123A"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="FIN",
services=["fin_national_id"],
consent=True,
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
national_id="010190-123A",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "FIN",
services: ["fin_national_id"],
consent: true,
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "010190-123A",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "FIN",
Services: didit.Some([]string{"fin_national_id"}),
Consent: didit.Bool(true),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
NationalID: didit.String("010190-123A"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("FIN")
.services(List.of("fin_national_id"))
.consent(true)
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.nationalId("010190-123A")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'FIN',
'services' => ['fin_national_id'],
'consent' => true,
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'national_id' => '010190-123A',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "FIN",
services: ["fin_national_id"],
consent: true,
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
national_id: "010190-123A",
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "FIN",
Services = new string[] { "fin_national_id" },
Consent = true,
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
NationalId = "010190-123A",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
हर सफल कॉल HTTP 200 लौटाती है। outcome_code फ़ील्ड बताता है कि वास्तव में क्या हुआ। उदाहरण के लिए, यह वास्तविक बायोमेट्रिक असंगति (BIOMETRIC_NO_MATCH) और ऐसी सेल्फ़ी में फ़र्क़ करता है जिसे पढ़ा नहीं जा सका (BIOMETRIC_IMAGE_UNUSABLE)। दिखाया गया status फ़ीचर की डिफ़ॉल्ट स्थिति है। आपकी कॉन्फ़िगर की गई आंशिक मिलान और कोई मिलान नहीं वाली कार्रवाइयाँ इसे बदल सकती हैं।MATCH: रजिस्ट्री ने पहचान की पुष्टि की और जाँचे गए हर फ़ील्ड का मिलान हुआ।{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "FIN",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
PARTIAL_MATCH: पहचान संख्या मिल गई, लेकिन एक या अधिक व्यक्तिगत फ़ील्ड (आमतौर पर नाम या जन्म तिथि) पूरी तरह मेल नहीं खाए।{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "FIN",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
NO_MATCH: सबमिट किए गए डेटा के लिए रजिस्ट्री से कोई मिलान नहीं मिला।{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "FIN",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "fin_national_id",
"service_name": "Finland National ID",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
लौटाया गया डेटा
source_data में कौन-से सटीक फ़ील्ड दिखेंगे, यह इस बात पर निर्भर करता है कि रजिस्ट्री क्या लौटाती है। fin_national_id के लिए बनाया गया उदाहरण फ़िलहाल यह सामान्यीकृत संरचना दर्शाता है:
addressdate_of_birthfirst_nameidentification_numberlast_name
मूल्य निर्धारण और SLA
Finland National ID क्वेरी का बिल तभी बनता है जब Didit को सत्यापन स्रोत से निर्णायक परिणाम मिलता है।- प्रति कॉल मूल्य: $3.50 USD।
- बिलिंग: प्रति सफल क्वेरी। जब रजिस्ट्री तक पहुँच न हो, आवश्यक फ़ील्ड गायब हों, या अनुरोध स्रोत तक पहुँचने से पहले अस्वीकार कर दिया जाए, तब आपसे शुल्क नहीं लिया जाता।
- विलंबता: सामान्यतः p95 2 s से कम।
- उपलब्धता: Didit की ओर से प्रति तिमाही 99.9%; डाउनस्ट्रीम स्रोत की उपलब्धता देश और डेटासेट के अनुसार बदलती है।
आगे पढ़ें
अंतिम संशोधन 7 नवंबर 2026