curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_bank_verification_number" \
-F "vendor_data=user-1234" \
-F "bvn=11111111111" \
-F "selfie=@./selfie.jpg" \
-F "date_of_birth=1990-01-01"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_bank_verification_number"],
date_of_birth="1990-01-01",
bvn="11111111111",
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "NGA",
services: ["nga_bank_verification_number"],
date_of_birth: "1990-01-01",
bvn: "11111111111",
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "NGA",
Services: didit.Some([]string{"nga_bank_verification_number"}),
DateOfBirth: didit.String("1990-01-01"),
Bvn: didit.String("11111111111"),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
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("NGA")
.services(List.of("nga_bank_verification_number"))
.dateOfBirth(LocalDate.parse("1990-01-01"))
.bvn("11111111111")
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'NGA',
'services' => ['nga_bank_verification_number'],
'date_of_birth' => '1990-01-01',
'bvn' => '11111111111',
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "NGA",
services: ["nga_bank_verification_number"],
date_of_birth: "1990-01-01",
bvn: "11111111111",
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
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 = "NGA",
Services = new string[] { "nga_bank_verification_number" },
DateOfBirth = "1990-01-01",
Bvn = "11111111111",
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {},
"validation": {}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
🇳🇬 Nigeria
Bankverifizierungsnummer (BVN) Nigeria API
Nigeria-BVN-Abfrage über Didit: maßgebliche Datenbankabfrage in Nigeria. Pay-per-call ab $0.35, ohne Verträge und Mindestabnahme.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_bank_verification_number" \
-F "vendor_data=user-1234" \
-F "bvn=11111111111" \
-F "selfie=@./selfie.jpg" \
-F "date_of_birth=1990-01-01"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_bank_verification_number"],
date_of_birth="1990-01-01",
bvn="11111111111",
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "NGA",
services: ["nga_bank_verification_number"],
date_of_birth: "1990-01-01",
bvn: "11111111111",
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "NGA",
Services: didit.Some([]string{"nga_bank_verification_number"}),
DateOfBirth: didit.String("1990-01-01"),
Bvn: didit.String("11111111111"),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
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("NGA")
.services(List.of("nga_bank_verification_number"))
.dateOfBirth(LocalDate.parse("1990-01-01"))
.bvn("11111111111")
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'NGA',
'services' => ['nga_bank_verification_number'],
'date_of_birth' => '1990-01-01',
'bvn' => '11111111111',
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "NGA",
services: ["nga_bank_verification_number"],
date_of_birth: "1990-01-01",
bvn: "11111111111",
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
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 = "NGA",
Services = new string[] { "nga_bank_verification_number" },
DateOfBirth = "1990-01-01",
Bvn = "11111111111",
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {},
"validation": {}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
Prüft Eingabedaten gegen die Datenbank der nigerianischen Bankenbranche. Ein Selfie ist erforderlich: Das beim BVN hinterlegte Registrierungsfoto wird per Gesichtsabgleich mit dem Selfie verglichen, und der Datensatz wird nur zurückgegeben, wenn es sich um dieselbe Person handelt. Didit stellt diesen Dienst über
POST /v3/database-validation/ bereit, damit Sie die übermittelten Daten gegen die maßgebliche Quelle prüfen und normalisierte Abgleichsergebnisse erhalten. Eingabeformat: bvn nimmt die nigerianische Bank Verification Number entgegen (genau 11 Ziffern).
Abdeckung
- Abdeckung: ~ 100%
- Land: Nigeria
- Service-ID:
nga_bank_verification_number - Datenbereich: Finanzen
- Kategorie: Bankwesen
Eingaben
| Feld | Pflicht | Beispiel |
|---|---|---|
bvn | Ja | 11111111111 |
selfie | Ja | @./selfie.jpg |
first_name | Nein | John |
last_name | Nein | Doe |
date_of_birth | Nein | 1990-01-01 |
vendor_data | Nein | user-1234 |
- Pflichteingaben:
bvn,selfie - Optionale Eingaben:
first_name,last_name,date_of_birth,vendor_data - Einwilligung: Nicht erforderlich
- Verfügbarkeit im Workflow: Im Workflow mit Feldzuordnung verfügbar
- Abdeckung: ~ 100%
- Preis: $0.35 pro erfolgreicher Abfrage
bvn nicht auf einem Ausweisdokument, daher wird es von keinem Schritt automatisch erzeugt. Erfassen Sie es aus einer Fragebogen-Antwort, einem Feld einer Document-AI-Extraktion oder einem Wert, den Sie beim Erstellen der Sitzung übergeben, und ordnen Sie es dem Schritt Datenbankvalidierung zu. Solange es nicht zugeordnet ist, zeigt der Workflow-Editor diesen Dienst als deaktiviert an und nennt die fehlende Eingabe. Fehlt sie zur Laufzeit, wird die Prüfung übersprungen, bevor eine Abfrage erfolgt. So wird Ihnen nie eine Datenbankabfrage berechnet, die nicht ausgeführt werden konnte.
Body-Parameter
string
Standard:"NGA"
erforderlich
ISO-3166-1-Alpha-3-Ländercode für diesen Datenbankdienst.Beispiel:
NGAstring
Standard:"nga_bank_verification_number"
erforderlich
Array mit dieser Service-ID. Die Festlegung des Dienstes beschränkt die Anfrage auf genau diese Datenbank.Beispiel:
nga_bank_verification_numberstring
Standard:"11111111111"
erforderlich
Bank Verification Number.Beispiel:
11111111111file
erforderlich
Selfie-Bilddatei, die für die biometrische Datenbankvalidierung hochgeladen wird. Akzeptierte Formate: JPEG, PNG oder WebP.Beispiel:
@./selfie.jpgstring
Zu validierender Vorname.Beispiel:
Johnstring
Zu validierender Nachname.Beispiel:
Doestring
Standard:"1990-01-01"
Geburtsdatum im Format
YYYY-MM-DD.Beispiel: 1990-01-01string
Standard:"user-1234"
Ihre stabile Benutzerreferenz für diese Person, etwa Ihre interne Benutzer-ID. Didit verwendet sie, um eigenständige Prüfungen derselben Endbenutzerin bzw. desselben Endbenutzers zuzuordnen und die Zahl unnötiger Dublettenmeldungen zu verringern.Beispiel:
user-1234Eingaberegeln und Hinweise zur Validierung
- Nigerianische Bank Verification Number (genau 11 Ziffern)
bvndarf nur Ziffern enthalten. Entfernen Sie Leerzeichen, Bindestriche und Satzzeichen, bevor Sie die Anfrage senden.bvnmuss genau 11 Zeichen lang sein.
So rufen Sie es auf
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_bank_verification_number" \
-F "vendor_data=user-1234" \
-F "bvn=11111111111" \
-F "selfie=@./selfie.jpg" \
-F "date_of_birth=1990-01-01"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_bank_verification_number"],
date_of_birth="1990-01-01",
bvn="11111111111",
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "NGA",
services: ["nga_bank_verification_number"],
date_of_birth: "1990-01-01",
bvn: "11111111111",
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "NGA",
Services: didit.Some([]string{"nga_bank_verification_number"}),
DateOfBirth: didit.String("1990-01-01"),
Bvn: didit.String("11111111111"),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
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("NGA")
.services(List.of("nga_bank_verification_number"))
.dateOfBirth(LocalDate.parse("1990-01-01"))
.bvn("11111111111")
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'NGA',
'services' => ['nga_bank_verification_number'],
'date_of_birth' => '1990-01-01',
'bvn' => '11111111111',
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "NGA",
services: ["nga_bank_verification_number"],
date_of_birth: "1990-01-01",
bvn: "11111111111",
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
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 = "NGA",
Services = new string[] { "nga_bank_verification_number" },
DateOfBirth = "1990-01-01",
Bvn = "11111111111",
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
Jeder erfolgreiche Aufruf gibt HTTP 200 zurück. Das Feld outcome_code zeigt, was tatsächlich passiert ist. So lässt sich etwa ein echter biometrischer Nichtabgleich (BIOMETRIC_NO_MATCH) von einem Selfie unterscheiden, das nicht gelesen werden konnte (BIOMETRIC_IMAGE_UNUSABLE). Der angezeigte status ist der Standardstatus der Funktion; Ihre konfigurierten Aktionen bei Partial Match / No Match können ihn überschreiben.MATCH: Das Register hat die Identität bestätigt, und jedes geprüfte Feld stimmt überein.{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
PARTIAL_MATCH: Die BVN ist im Register erfasst und das Selfie stimmt mit dem NIBSS-Registrierungsfoto überein, aber ein Name oder Geburtsdatum, das Sie übermittelt haben, weicht vom Registereintrag ab. Der Datensatz wird zurückgegeben, damit Sie sehen können, welches Feld abweicht.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"last_name": "Doe"
},
"validation": {
"date_of_birth": "no_match",
"identification_number": "full_match"
}
}
]
}
BIOMETRIC_NO_MATCH: Der Übereinstimmungswert lag unter dem Akzeptanzschwellenwert. Das Selfie zeigt nicht dieselbe Person wie das Registerfoto.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
INCONCLUSIVE: Das Register konnte nicht feststellen, ob die Person mit einem Registereintrag übereinstimmt. Das Ergebnis ist tatsächlich unsicher, denn die Person kann im Register enthalten sein oder nicht. Dies ist weder ein Nichtabgleich noch ein technisches Bildproblem. Es wird kein Feld bestätigt, daher ist match_type null, und die Prüfung wird zur Überprüfung weitergeleitet.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {},
"validation": {}
}
]
}
DOCUMENT_NOT_FOUND: Die übermittelte Dokumentnummer entspricht keinem Datensatz im Register.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_bank_verification_number",
"service_name": "Nigeria Bank Verification Number (BVN)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
Rückgabedaten
Die genauen Felder, die insource_data ausgegeben werden, hängen davon ab, was das Register zurückgibt. Das generierte Beispiel für nga_bank_verification_number dokumentiert derzeit diese normalisierte Struktur:
date_of_birthfirst_namelast_name
Preise und SLAs
Abfragen der nigerianischen Bank Verification Number (BVN) werden nur berechnet, wenn Didit von der Validierungsquelle ein eindeutiges Ergebnis erhält.- Preis pro Aufruf: $0.35 USD.
- Abrechnung: pro erfolgreicher Abfrage. Ihnen wird nichts berechnet, wenn das Register nicht erreichbar ist, wenn Pflichtfelder fehlen oder wenn die Anfrage abgelehnt wird, bevor sie die Quelle erreicht.
- Latenz: typischer p95-Wert unter 2 s.
- Verfügbarkeit: 99.9% pro Quartal auf Seiten von Didit. Die Verfügbarkeit der nachgelagerten Quelle variiert je nach Land und Datensatz.
Weiterlesen
Zuletzt geändert am 7. November 2026