> ## 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.

# التحقق من الهوية الوطنية السويدية: مطابقة الهوية

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

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

## التغطية

* **التغطية:** \~ 100%
* **الدولة:** السويد
* **معرّف الخدمة:** `swe_national_id`
* **نطاق البيانات:** الهوية
* **الفئة:** NationalIDRegistry

## المدخلات

| الحقل | مطلوب | مثال |
| - | -: | - |
| `first_name` | نعم | `John` |
| `last_name` | نعم | `Doe` |
| `date_of_birth` | نعم | `1990-01-01` |
| `national_id` | نعم | `199001011234` |
| `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%
* **السعر:** \$0.59 لكل استعلام ناجح

ليست كل مستندات تقبلها هذه الخدمة تحمل المعرّف الذي تستعلم به. عندما لا يُستخرج المعرّف من المستند، تُسجَّل الفحوصة على أنها **غير قابلة للتطبيق**، ولا يُجرى أي استعلام في قاعدة بيانات ولا تُحتسب أي رسوم، وهذا يمثل نسبة كبيرة من المستخدمين الفعليين في بعض الدول. لتغطيتهم، اجمع المعرّف أيضًا من إجابة في الاستبيانات، أو من حقل استخراج في Document AI، أو من قيمة ترسلها عند إنشاء الجلسة، ثم اربطه في خطوة التحقق من قاعدة البيانات.

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

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

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

مثال: `SWE`

**services** `string` *required* (default: swe\_national\_id)

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

مثال: `swe_national_id`

**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`

**national\_id** `string` *required* (default: 199001011234)

الرقم الوطني للهوية لهذه الخدمة.

مثال: `199001011234`

**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"}`

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

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

مثال: `user-1234`

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

* `address` اختياري لهذه الخدمة. يمكنك إرسال `address` واحد كامل كنص، وستقوم Didit بتقسيمه إلى عناصر عنوان منظّمة عند الإمكان، أو يمكنك إرسال الحقول المنظّمة صراحةً.
* يجب أن يحتوي `national_id` على أرقام فقط. أزل المسافات والشرطات وعلامات الترقيم قبل إرسال الطلب.
* يجب أن يطابق `national_id` النمط `(\d{10}|\d{12})`.
* بالنسبة لخدمات العناوين، أرسل حقول العنوان المنظّمة بدلًا من نص `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=SWE" \
  -F "services=swe_national_id" \
  -F "vendor_data=user-1234" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "date_of_birth=1990-01-01" \
  -F "national_id=199001011234"
```

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

# Reads DIDIT_API_KEY.
client = Didit()

result = client.database_validation.validate(
    issuing_state="SWE",
    services=["swe_national_id"],
    first_name="John",
    last_name="Doe",
    date_of_birth="1990-01-01",
    national_id="199001011234",
    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: "SWE",
  services: ["swe_national_id"],
  first_name: "John",
  last_name: "Doe",
  date_of_birth: "1990-01-01",
  national_id: "199001011234",
  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: "SWE",
	Services:     didit.Some([]string{"swe_national_id"}),
	FirstName:    didit.String("John"),
	LastName:     didit.String("Doe"),
	DateOfBirth:  didit.String("1990-01-01"),
	NationalID:   didit.String("199001011234"),
	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("SWE")
        .services(List.of("swe_national_id"))
        .firstName("John")
        .lastName("Doe")
        .dateOfBirth(LocalDate.parse("1990-01-01"))
        .nationalId("199001011234")
        .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' => 'SWE',
    'services' => ['swe_national_id'],
    'first_name' => 'John',
    'last_name' => 'Doe',
    'date_of_birth' => '1990-01-01',
    'national_id' => '199001011234',
    '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: "SWE",
  services: ["swe_national_id"],
  first_name: "John",
  last_name: "Doe",
  date_of_birth: "1990-01-01",
  national_id: "199001011234",
  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 = "SWE",
    Services = new string[] { "swe_national_id" },
    FirstName = "John",
    LastName = "Doe",
    DateOfBirth = "1990-01-01",
    NationalId = "199001011234",
    VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
```

يعيد كل استدعاء ناجح رمز HTTP `200`. يوضح الحقل **`outcome_code`** ما حدث فعلاً، فيميّز مثلاً بين عدم تطابق بيومتري حقيقي (`BIOMETRIC_NO_MATCH`) وصورة سيلفي تعذّرت قراءتها (`BIOMETRIC_IMAGE_UNUSABLE`). الحالة `status` الموضحة هي الحالة الافتراضية للميزة، ويمكن لـ[إجراءات المطابقة الجزئية وعدم المطابقة](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": "SWE",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "swe_national_id",
      "service_name": "Sweden National ID",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "name_match_score": "1.000",
        "verifications": {
          "date_of_birth": true,
          "full_name": true,
          "identification_number": true
        }
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`PARTIAL_MATCH`**: عُثر على رقم الهوية، لكن حقلاً شخصياً واحداً أو أكثر (عادةً الاسم أو تاريخ الميلاد) لم يتطابق تطابقاً كاملاً.

```json 200 OK — PARTIAL_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "SWE",
  "match_type": "partial_match",
  "validations": [
    {
      "outcome_code": "PARTIAL_MATCH",
      "service_id": "swe_national_id",
      "service_name": "Sweden National ID",
      "source_data": {
        "date_of_birth": "1990-01-01",
        "first_name": "John",
        "full_name": "John Doe",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "name_match_score": "1.000",
        "verifications": {
          "date_of_birth": true,
          "full_name": false,
          "identification_number": true
        }
      },
      "validation": {
        "date_of_birth": "full_match",
        "full_name": "no_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

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

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "SWE",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "swe_national_id",
      "service_name": "Sweden 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` حسب ما يُرجعه السجل. يوثّق المثال المُنشأ للمعرّف `swe_national_id` حالياً هذا الشكل الموحّد:

* `date_of_birth`
* `first_name`
* `full_name`
* `identification_number`
* `last_name`
* `name_match_score`

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

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

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

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

* [نظرة عامة على التحقق من قواعد البيانات في السويد](https://docs.didit.me/api-reference/database-validation/sweden.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.