curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=GBR" \
-F "services=gbr_kingdom_financial_services" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F 'address={"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}'
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="GBR",
services=["gbr_kingdom_financial_services"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
address={"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"},
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: "GBR",
services: ["gbr_kingdom_financial_services"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
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: "GBR",
Services: didit.Some([]string{"gbr_kingdom_financial_services"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
Address: didit.Some[any](map[string]any{"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"}),
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("GBR")
.services(List.of("gbr_kingdom_financial_services"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.address(DatabaseValidationValidateParams.Address.ofVariant1(DatabaseValidationValidateParams.Address.Variant1.builder()
.street1("123 Sample Street")
.street2("Unit 4")
.city("Sample City")
.region("Sample State")
.postalCode("10001")
.country("US")
.build()))
.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' => 'GBR',
'services' => ['gbr_kingdom_financial_services'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'address' => ['street_1' => '123 Sample Street', 'street_2' => 'Unit 4', 'city' => 'Sample City', 'region' => 'Sample State', 'postal_code' => '10001', 'country' => 'US'],
'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: "GBR",
services: ["gbr_kingdom_financial_services"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "GBR",
Services = new string[] { "gbr_kingdom_financial_services" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
Address = new Dictionary<string, object> { ["street_1"] = "123 Sample Street", ["street_2"] = "Unit 4", ["city"] = "Sample City", ["region"] = "Sample State", ["postal_code"] = "10001", ["country"] = "US" },
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "GBR",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"address": "full_match",
"date_of_birth": "full_match",
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GBR",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"address": "full_match",
"date_of_birth": "full_match",
"full_name": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GBR",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "NO_MATCH",
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH"
},
"validation": {
"address": "no_match",
"date_of_birth": "no_match",
"full_name": "no_match"
}
}
]
}
🇬🇧 United Kingdom
United Kingdom Financial Services Verification API
United Kingdom Financial Services: authoritative United Kingdom database lookup via Didit. Pay-per-call from $1.59, no contracts, no minimums.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=GBR" \
-F "services=gbr_kingdom_financial_services" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F 'address={"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}'
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="GBR",
services=["gbr_kingdom_financial_services"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
address={"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"},
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: "GBR",
services: ["gbr_kingdom_financial_services"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
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: "GBR",
Services: didit.Some([]string{"gbr_kingdom_financial_services"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
Address: didit.Some[any](map[string]any{"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"}),
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("GBR")
.services(List.of("gbr_kingdom_financial_services"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.address(DatabaseValidationValidateParams.Address.ofVariant1(DatabaseValidationValidateParams.Address.Variant1.builder()
.street1("123 Sample Street")
.street2("Unit 4")
.city("Sample City")
.region("Sample State")
.postalCode("10001")
.country("US")
.build()))
.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' => 'GBR',
'services' => ['gbr_kingdom_financial_services'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'address' => ['street_1' => '123 Sample Street', 'street_2' => 'Unit 4', 'city' => 'Sample City', 'region' => 'Sample State', 'postal_code' => '10001', 'country' => 'US'],
'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: "GBR",
services: ["gbr_kingdom_financial_services"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "GBR",
Services = new string[] { "gbr_kingdom_financial_services" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
Address = new Dictionary<string, object> { ["street_1"] = "123 Sample Street", ["street_2"] = "Unit 4", ["city"] = "Sample City", ["region"] = "Sample State", ["postal_code"] = "10001", ["country"] = "US" },
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "GBR",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"address": "full_match",
"date_of_birth": "full_match",
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GBR",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"address": "full_match",
"date_of_birth": "full_match",
"full_name": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GBR",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "NO_MATCH",
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH"
},
"validation": {
"address": "no_match",
"date_of_birth": "no_match",
"full_name": "no_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 Kingdom
- Service ID:
gbr_kingdom_financial_services - Data domain: Financial
- Category: FinancialServices
Inputs
| Field | Required | Example |
|---|---|---|
first_name | Yes | John |
last_name | Yes | Doe |
date_of_birth | Yes | 1990-01-01 |
address.street_1 | Yes | 123 Sample Street |
address.postal_code | Yes | 10001 |
phone | No | +15550101000 |
address.street_2 | No | Unit 4 |
address.city | No | Sample City |
address.region | No | Sample State |
vendor_data | No | user-1234 |
- Required inputs:
first_name,last_name,date_of_birth,address.street_1,address.postal_code - Optional inputs:
phone,address.street_2,address.city,address.region,vendor_data - Consent: Not required
- Workflow availability: Available in workflow
- Coverage: ~ 85%
- Price: $1.59 per successful query
Body parameters
string
default:"GBR"
required
ISO 3166-1 alpha-3 country code for this database service.Example:
GBRstring
default:"gbr_kingdom_financial_services"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example:
gbr_kingdom_financial_servicesstring
default:"John"
required
Given name to validate.Example:
Johnstring
default:"Doe"
required
Family name to validate.Example:
Doestring
default:"1990-01-01"
required
Date of birth in
YYYY-MM-DD format.Example: 1990-01-01object
required
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"}string
Phone number in international format.Example:
+15550101000string
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-1234Input rules & validation notes
- For address services, send structured address fields instead of a single
addressstring when possible. address.street_1is the street address, including street number and street type.address.street_2is apartment, unit, building, floor, or extra address line. Send it only when you have it.address.cityis city, suburb, district, locality, or neighborhood.address.regionis state, province, region, or town.address.postal_codeis 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=GBR" \
-F "services=gbr_kingdom_financial_services" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01" \
-F 'address={"street_1":"123 Sample Street","street_2":"Unit 4","city":"Sample City","region":"Sample State","postal_code":"10001","country":"US"}'
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="GBR",
services=["gbr_kingdom_financial_services"],
first_name="John",
last_name="Doe",
date_of_birth="1990-01-01",
address={"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"},
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: "GBR",
services: ["gbr_kingdom_financial_services"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
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: "GBR",
Services: didit.Some([]string{"gbr_kingdom_financial_services"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DateOfBirth: didit.String("1990-01-01"),
Address: didit.Some[any](map[string]any{"street_1": "123 Sample Street", "street_2": "Unit 4", "city": "Sample City", "region": "Sample State", "postal_code": "10001", "country": "US"}),
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("GBR")
.services(List.of("gbr_kingdom_financial_services"))
.firstName("John")
.lastName("Doe")
.dateOfBirth(LocalDate.parse("1990-01-01"))
.address(DatabaseValidationValidateParams.Address.ofVariant1(DatabaseValidationValidateParams.Address.Variant1.builder()
.street1("123 Sample Street")
.street2("Unit 4")
.city("Sample City")
.region("Sample State")
.postalCode("10001")
.country("US")
.build()))
.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' => 'GBR',
'services' => ['gbr_kingdom_financial_services'],
'first_name' => 'John',
'last_name' => 'Doe',
'date_of_birth' => '1990-01-01',
'address' => ['street_1' => '123 Sample Street', 'street_2' => 'Unit 4', 'city' => 'Sample City', 'region' => 'Sample State', 'postal_code' => '10001', 'country' => 'US'],
'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: "GBR",
services: ["gbr_kingdom_financial_services"],
first_name: "John",
last_name: "Doe",
date_of_birth: "1990-01-01",
address: { street_1: "123 Sample Street", street_2: "Unit 4", city: "Sample City", region: "Sample State", postal_code: "10001", country: "US" },
vendor_data: "user-1234"
)
puts result.to_h
using System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "GBR",
Services = new string[] { "gbr_kingdom_financial_services" },
FirstName = "John",
LastName = "Doe",
DateOfBirth = "1990-01-01",
Address = new Dictionary<string, object> { ["street_1"] = "123 Sample Street", ["street_2"] = "Unit 4", ["city"] = "Sample City", ["region"] = "Sample State", ["postal_code"] = "10001", ["country"] = "US" },
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
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.MATCH — The registry confirmed the identity and every checked field matched.{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "GBR",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"address": "full_match",
"date_of_birth": "full_match",
"full_name": "full_match"
}
}
]
}
PARTIAL_MATCH — One or more of the fields this service compares did not fully match. In this example, full_name did not match, while address and date_of_birth matched.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GBR",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "123 Sample Street",
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"address": "full_match",
"date_of_birth": "full_match",
"full_name": "no_match"
}
}
]
}
NO_MATCH — The registry returned no match for the submitted data.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GBR",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "gbr_kingdom_financial_services",
"service_name": "United Kingdom Financial Services",
"source_data": {
"address": "NO_MATCH",
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH"
},
"validation": {
"address": "no_match",
"date_of_birth": "no_match",
"full_name": "no_match"
}
}
]
}
Returned data
The exact fields surfaced insource_data depend on what the registry returns. The generated example for gbr_kingdom_financial_services currently documents this normalized shape:
addressdate_of_birthfirst_namelast_name
Pricing & SLAs
United Kingdom Financial Services queries are billed only when Didit receives a conclusive result from the validation source.- Per-call price: $1.59 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
Last modified on October 29, 2026