> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# التحقق من الهوية في الدنمارك: واجهة Consumer 2

> يقدم Didit التحقق من قواعد البيانات الرسمية في الدنمارك عبر بنيته التحتية للهوية. الدفع من $1.62 لكل استدعاء، بدون عقود ولا حد أدنى.

يتم التحقق من المدخلات مقابل مصدر يتكون من عدة مجموعات بيانات من سجلات المستهلكين والاتصالات الهاتفية وخدمات المرافق. يتيح لك Didit الوصول إلى هذه الخدمة عبر `POST /v3/database-validation/` للتحقق من البيانات المُرسلة مقابل المصدر الموثوق والحصول على نتائج تطابق موحّدة.

## التغطية

* **التغطية:** \~ 50%
* **الدولة:** الدنمارك
* **معرّف الخدمة:** `dnk_consumer_2`
* **نطاق البيانات:** العنوان
* **الفئة:** سكنية

## المدخلات

| الحقل | مطلوب | مثال |
| - | -: | - |
| `first_name` | نعم | `John` |
| `last_name` | نعم | `Doe` |
| `date_of_birth` | نعم | `1990-01-01` |
| `address.street_1` | لا | `123 Sample Street` |
| `address.street_2` | لا | `Unit 4` |
| `address.city` | لا | `Sample City` |
| `address.region` | لا | `Sample State` |
| `address.postal_code` | لا | `10001` |
| `phone` | لا | `+15550101000` |
| `email` | لا | `john.doe@example.com` |
| `vendor_data` | لا | `user-1234` |

* **المدخلات المطلوبة:** `first_name` و`last_name` و`date_of_birth`
* **المدخلات الاختيارية:** `address.street_1` و`address.street_2` و`address.city` و`address.region` و`address.postal_code` و`phone` و`email` و`vendor_data`
* **الموافقة:** غير مطلوبة
* **التوفر في سير العمل:** متاح في سير العمل
* **التغطية:** \~ 50%
* **السعر:** \$1.62 لكل استعلام ناجح

## معاملات الجسم

**issuing\_state** `string` *required* (default: DNK)

رمز الدولة وفق ISO 3166-1 alpha-3 لخدمة قاعدة البيانات هذه.

مثال: `DNK`

**services** `string` *required* (default: dnk\_consumer\_2)

مصفوفة تحتوي على معرّف هذه الخدمة. تثبيت الخدمة يُبقي الطلب مقصوراً على قاعدة البيانات المحددة هذه بالضبط.

مثال: `dnk_consumer_2`

**first\_name** `string` *required* (default: John)

الاسم الأول المراد التحقق منه.

مثال: `John`

**last\_name** `string` *required* (default: Doe)

اسم العائلة المراد التحقق منه.

مثال: `Doe`

**date\_of\_birth** `string` *required* (default: 1990-01-01)

تاريخ الميلاد بصيغة `YYYY-MM-DD`.

مثال: `1990-01-01`

**address** `object`

كائن عنوان سكني منظم. استخدم `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"}`

**phone** `string`

رقم الهاتف بالصيغة الدولية.

مثال: `+15550101000`

**email** `string`

عنوان البريد الإلكتروني.

مثال: `john.doe@example.com`

**vendor\_data** `string` (default: user-1234)

معرّفك الثابت لهذا الشخص، مثل معرّف المستخدم الداخلي لديك. يستخدمه Didit لربط عمليات الفحص المستقلة بالمستخدم النهائي نفسه وتقليل ضجيج اكتشاف التكرار.

مثال: `user-1234`

## قواعد الإدخال وملاحظات التحقق

* `address` اختياري لهذه الخدمة. يمكنك إرسال سلسلة `address` كاملة واحدة، وسيقسمها Didit إلى عناصر عنوان منظمة متى أمكن، أو يمكنك إرسال الحقول المنظمة صراحةً.
* بالنسبة لخدمات العناوين، أرسل حقول العنوان المنظمة بدلاً من سلسلة `address` واحدة متى أمكن.
* `address.street_1` هو عنوان الشارع، ويتضمن رقم المبنى ونوع الشارع.
* `address.street_2` هو الشقة أو الوحدة أو المبنى أو الطابق أو أي سطر إضافي للعنوان. أرسله فقط عندما يتوفر لديك.
* `address.city` هو المدينة أو الضاحية أو المقاطعة أو الحي أو المنطقة السكنية.
* `address.region` هو الولاية أو المحافظة أو الإقليم أو البلدة.
* `address.postal_code` هو الرمز البريدي.
* تتطلب خدمات قواعد البيانات القائمة على العناوين على الأقل عنوان الشارع والرمز البريدي؛ والطلبات المرفوضة قبل البحث في المصدر لا تُفرض عليها رسوم.

## كيفية استدعائها

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=DNK" \
  -F "services=dnk_consumer_2" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "date_of_birth=1990-01-01"
```

```python Python theme={null}
from didit import Didit

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="DNK",
    services=["dnk_consumer_2"],
    first_name="John",
    last_name="Doe",
    date_of_birth="1990-01-01",
    vendor_data="user-1234",
)
print(result)
```

```javascript Node.js theme={null}
import Didit from "@didit-protocol/sdk-node";

// Reads DIDIT_API_KEY.
const didit = new Didit();

const result = await didit.databaseValidation.validate({
  issuing_state: "DNK",
  services: ["dnk_consumer_2"],
  first_name: "John",
  last_name: "Doe",
  date_of_birth: "1990-01-01",
  vendor_data: "user-1234",
});
console.log(result);
```

```go Go theme={null}
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()

result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
	IssuingState: "DNK",
	Services:     didit.Some([]string{"dnk_consumer_2"}),
	FirstName:    didit.String("John"),
	LastName:     didit.String("Doe"),
	DateOfBirth:  didit.String("1990-01-01"),
	VendorData:   didit.String("user-1234"),
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%+v\n", result)
```

```java Java theme={null}
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("DNK")
        .services(List.of("dnk_consumer_2"))
        .firstName("John")
        .lastName("Doe")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .vendorData("user-1234")
        .build());
System.out.println(result);
```

```php PHP theme={null}
<?php

require 'vendor/autoload.php';

use Didit\DiditClient;

// Reads DIDIT_API_KEY.
$didit = new DiditClient();

$result = $didit->databaseValidation->validate([
    'issuing_state' => 'DNK',
    'services' => ['dnk_consumer_2'],
    'first_name' => 'John',
    'last_name' => 'Doe',
    'date_of_birth' => '1990-01-01',
    'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
```

```ruby Ruby theme={null}
require "didit"

# Reads DIDIT_API_KEY.
didit = Didit::Client.new

result = didit.database_validation.validate(
  issuing_state: "DNK",
  services: ["dnk_consumer_2"],
  first_name: "John",
  last_name: "Doe",
  date_of_birth: "1990-01-01",
  vendor_data: "user-1234"
)
puts result.to_h
```

```csharp .NET theme={null}
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 = "DNK",
    Services = new string[] { "dnk_consumer_2" },
    FirstName = "John",
    LastName = "Doe",
    DateOfBirth = "1990-01-01",
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

كل استدعاء ناجح يُرجع HTTP `200`. يخبرك الحقل **`outcome_code`** بما حدث فعلاً، فيميّز مثلاً بين عدم تطابق بيومتري حقيقي (`BIOMETRIC_NO_MATCH`) وصورة سيلفي تعذّر قراءتها (`BIOMETRIC_IMAGE_UNUSABLE`). الحالة `status` المعروضة هي الحالة الافتراضية للميزة، ويمكن لإجراءاتك المُهيأة [Partial Match / No Match](https://docs.didit.me/ar/core-technology/database-validation/database-validation-warnings.md) أن تتجاوزها.

**`MATCH`** — أكّد السجل الهوية، وتطابقت كل الحقول التي تم فحصها.

```json 200 OK — MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "DNK",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "dnk_consumer_2",
      "service_name": "Denmark Consumer 2",
      "source_data": {
        "address": "123 Sample Street",
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "last_name": "Doe"
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "full_match"
      }
    }
  ]
}
```

**`PARTIAL_MATCH`** — لم يتطابق حقل واحد أو أكثر من الحقول التي تقارنها هذه الخدمة بالكامل. في هذا المثال، لم يتطابق `full_name`، بينما تطابق `date_of_birth`.

```json 200 OK — PARTIAL_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "DNK",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "dnk_consumer_2",
      "service_name": "Denmark Consumer 2",
      "source_data": {
        "address": "123 Sample Street",
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "last_name": "Doe"
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "no_match"
      }
    }
  ]
}
```

**`NO_MATCH`** — لم يُرجع السجل أي تطابق للبيانات المُرسلة.

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "DNK",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "dnk_consumer_2",
      "service_name": "Denmark Consumer 2",
      "source_data": {
        "date_of_birth": "NO_MATCH",
        "full_name": "NO_MATCH"
      },
      "validation": {
        "date_of_birth": "no_match",
        "full_name": "no_match"
      }
    }
  ]
}
```

## البيانات المُعادة

تعتمد الحقول الدقيقة الظاهرة في `source_data` على ما يُرجعه السجل. يوثّق المثال المُولَّد لـ `dnk_consumer_2` حالياً هذا الشكل الموحّد:

* `address`
* `date_of_birth`
* `first_name`
* `last_name`

## الأسعار واتفاقيات مستوى الخدمة (SLAs)

تُحتسب رسوم استعلامات Denmark Consumer 2 فقط عندما يتلقى Didit نتيجة حاسمة من مصدر التحقق.

* **سعر كل استدعاء:** \$1.62 USD.
* **الفوترة:** لكل استعلام ناجح. لا تُحتسب عليك رسوم عندما يتعذر الوصول إلى السجل، أو عندما تكون الحقول المطلوبة مفقودة، أو عندما يُرفض الطلب قبل وصوله إلى المصدر.
* **زمن الاستجابة:** تبلغ قيمة p95 النموذجية أقل من ثانيتين.
* **التوفر:** 99.9% لكل ربع سنة من جانب Didit؛ ويختلف توفر المصدر الخارجي حسب الدولة ومجموعة البيانات.

## مواصلة القراءة

* [نظرة عامة على التحقق من قواعد البيانات في الدنمارك](https://docs.didit.me/api-reference/database-validation/denmark.md)
* [نظرة عامة على التحقق من قواعد البيانات](https://docs.didit.me/ar/core-technology/database-validation/overview.md)
* [رموز النتيجة](https://docs.didit.me/ar/core-technology/database-validation/database-validation-outcome-codes.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.