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

# दक्षिण अफ़्रीका ड्राइविंग लाइसेंस सत्यापन API

> Didit के माध्यम से दक्षिण अफ़्रीका के आधिकारिक डेटाबेस में ड्राइविंग लाइसेंस की जाँच करें। प्रति कॉल $0.80 से, कोई अनुबंध या न्यूनतम सीमा नहीं।

यह दक्षिण अफ़्रीकी ड्राइविंग लाइसेंस की जाँच NATIS / परिवहन विभाग के रजिस्टर से करती है। Didit इस सेवा को `POST /v3/database-validation/` के माध्यम से उपलब्ध कराता है, ताकि आप सबमिट किए गए डेटा की पुष्टि प्रामाणिक स्रोत से कर सकें और सामान्यीकृत मिलान परिणाम प्राप्त कर सकें।

## कवरेज

* **कवरेज:** —
* **देश:** दक्षिण अफ़्रीका
* **सेवा ID:** `zaf_drivers_license`
* **डेटा डोमेन:** पहचान
* **श्रेणी:** DriverLicence

## इनपुट

| फ़ील्ड | आवश्यक | उदाहरण |
| - | -: | - |
| `national_id` | हाँ | `SAMPLE-NID-12345` |
| `last_name` | हाँ | `Doe` |
| `initials` | हाँ | `JD` |
| `licence_number` | हाँ | `LIC123456` |
| `first_name` | नहीं | `John` |
| `date_of_birth` | नहीं | `1990-01-01` |
| `vendor_data` | नहीं | `user-1234` |

* **आवश्यक इनपुट:** `national_id`, `last_name`, `initials`, `licence_number`
* **वैकल्पिक इनपुट:** `first_name`, `date_of_birth`, `vendor_data`
* **सहमति:** आवश्यक नहीं
* **वर्कफ़्लो में उपलब्धता:** फ़ील्ड मैपिंग के साथ वर्कफ़्लो में उपलब्ध
* **कवरेज:** —
* **कीमत:** प्रति सफल क्वेरी \$0.80

वर्कफ़्लो में `initials` और `licence_number` पहचान दस्तावेज़ पर प्रिंट नहीं होते, इसलिए कोई चरण इन्हें अपने आप उत्पन्न नहीं करता। इन्हें प्रश्नावली के उत्तर, Document AI के निष्कर्षण फ़ील्ड, या सत्र बनाते समय आपके भेजे गए मान से एकत्र करें, और हर एक को डेटाबेस सत्यापन चरण पर मैप करें। मैप होने तक वर्कफ़्लो एडिटर इस सेवा को अक्षम दिखाता है और बताता है कि कौन सा इनपुट गायब है। रन के समय यदि इनपुट गायब हो, तो क्वेरी से पहले ही जाँच छोड़ दी जाती है, इसलिए ऐसे डेटाबेस के लिए आपसे कभी शुल्क नहीं लिया जाता जिससे पूछा ही नहीं जा सका।

## बॉडी पैरामीटर

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

इस डेटाबेस सेवा के लिए ISO 3166-1 alpha-3 देश कोड।

उदाहरण: `ZAF`

**services** `string` *required* (default: zaf\_drivers\_license)

इस सेवा ID वाला एरे। सेवा को पिन करने से अनुरोध इसी सटीक डेटाबेस तक सीमित रहता है।

उदाहरण: `zaf_drivers_license`

**national\_id** `string` *required* (default: SAMPLE-NID-12345)

इस सेवा के लिए राष्ट्रीय पहचान संख्या।

उदाहरण: `SAMPLE-NID-12345`

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

सत्यापित किया जाने वाला परिवार का नाम।

उदाहरण: `Doe`

**initials** `string` *required* (default: JD)

इस डेटाबेस सेवा के लिए आवश्यक `initials` मान।

उदाहरण: `JD`

**licence\_number** `string` *required* (default: LIC123456)

इस डेटाबेस सेवा के लिए आवश्यक `licence_number` मान।

उदाहरण: `LIC123456`

**first\_name** `string`

सत्यापित किया जाने वाला पहला नाम।

उदाहरण: `John`

**date\_of\_birth** `string`

`YYYY-MM-DD` प्रारूप में जन्म तिथि।

उदाहरण: `1990-01-01`

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

इस व्यक्ति के लिए आपका स्थिर उपयोगकर्ता संदर्भ, जैसे आपकी आंतरिक उपयोगकर्ता ID। Didit इसका उपयोग स्टैंडअलोन जाँचों को उसी अंतिम उपयोगकर्ता से जोड़ने और डुप्लिकेट-पहचान के शोर को कम करने के लिए करता है।

उदाहरण: `user-1234`

## इनपुट नियम और सत्यापन नोट्स

* ऊपर सूचीबद्ध फ़ील्ड को ठीक वैसे ही भेजें जैसे वे उपयोगकर्ता या दस्तावेज़ से कैप्चर किए गए हों।
* Didit डेटाबेस को कॉल करने से पहले आवश्यक फ़ील्ड की जाँच करता है। स्रोत तक पहुँचने से पहले अस्वीकार किए गए अनुरोधों पर शुल्क नहीं लगता।

## इसे कैसे कॉल करें

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=ZAF" \
  -F "services=zaf_drivers_license" \
  -F "vendor_data=user-1234" \
  -F "national_id=SAMPLE-NID-12345" \
  -F "last_name=Doe" \
  -F "initials=JD" \
  -F "licence_number=LIC123456"
```

हर सफल कॉल HTTP `200` लौटाती है। **`outcome_code`** फ़ील्ड बताता है कि वास्तव में क्या हुआ। उदाहरण के लिए, यह वास्तविक बायोमेट्रिक मिसमैच (`BIOMETRIC_NO_MATCH`) को उस सेल्फ़ी से अलग करता है जिसे पढ़ा नहीं जा सका (`BIOMETRIC_IMAGE_UNUSABLE`)। दिखाया गया `status` डिफ़ॉल्ट सुविधा की स्थिति है; आपकी कॉन्फ़िगर की गई [आंशिक मिलान / कोई मिलान नहीं कार्रवाइयाँ](https://docs.didit.me/hi/core-technology/database-validation/database-validation-warnings.md) इसे बदल सकती हैं।

**`MATCH`** — रजिस्टर ने इस लाइसेंस नंबर का लाइसेंस रिकॉर्ड लौटाया और सबमिट किया गया विवरण उससे मेल खाता है।

```json 200 OK — MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "ZAF",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "zaf_drivers_license",
      "service_name": "South Africa - Driving License Verification",
      "source_data": {
        "expiration_date": "2030-05-31",
        "first_name": "John",
        "identification_number": "SAMPLE-ID-12345",
        "last_name": "Doe",
        "vehicle_codes": "EB"
      },
      "validation": {
        "full_name": "full_match",
        "identification_number": "full_match"
      }
    }
  ]
}
```

**`NO_MATCH`** — रजिस्टर ने लाइसेंस खोजा और उसे मान्य नहीं बताया। आपकी ‘कोई मिलान नहीं’ कार्रवाई लागू होती है।

```json 200 OK — NO_MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "ZAF",
  "match_type": null,
  "validations": [
    {
      "outcome_code": "NO_MATCH",
      "service_id": "zaf_drivers_license",
      "service_name": "South Africa - Driving License Verification",
      "source_data": {
        "licence_valid": false
      },
      "validation": {}
    }
  ]
}
```

**`INCONCLUSIVE`** — रजिस्टर ने क्वेरी स्वीकार की, लेकिन तुलना के लिए कोई लाइसेंस रिकॉर्ड नहीं लौटाया, इसलिए लाइसेंस के बारे में कुछ भी पुष्ट नहीं होता और जाँच समीक्षा के लिए भेजी जाती है। यह तब भी होता है जब उसी अनुरोध की किसी दूसरी सेवा ने व्यक्ति से मिलान किया हो।

```json 200 OK — INCONCLUSIVE theme={null}
{
  "request_id": "req_01H…",
  "status": "In Review",
  "issuing_state": "ZAF",
  "match_type": null,
  "validations": [
    {
      "outcome_code": "INCONCLUSIVE",
      "service_id": "zaf_drivers_license",
      "service_name": "South Africa - Driving License Verification",
      "source_data": {
        "licence_valid": true
      },
      "validation": {}
    }
  ]
}
```

## लौटाया गया डेटा

`source_data` में दिखने वाले सटीक फ़ील्ड इस बात पर निर्भर करते हैं कि रजिस्ट्री क्या लौटाती है। `zaf_drivers_license` के लिए बनाया गया उदाहरण फ़िलहाल इस सामान्यीकृत संरचना का दस्तावेजीकरण करता है:

* `expiration_date`
* `first_name`
* `identification_number`
* `last_name`
* `licence_valid`
* `vehicle_codes`

## मूल्य निर्धारण और SLA

दक्षिण अफ़्रीका - ड्राइविंग लाइसेंस सत्यापन की क्वेरी केवल तभी बिल की जाती हैं जब Didit को सत्यापन स्रोत से निर्णायक परिणाम मिलता है।

* **प्रति कॉल कीमत:** \$0.80 USD।
* **बिलिंग:** प्रति सफल क्वेरी। जब रजिस्ट्री तक पहुँचा न जा सके, आवश्यक फ़ील्ड गायब हों, या अनुरोध स्रोत तक पहुँचने से पहले अस्वीकार हो जाए, तब आपसे शुल्क नहीं लिया जाता।
* **विलंबता:** सामान्य p95 \< 2 सेकंड।
* **उपलब्धता:** Didit की ओर से प्रति तिमाही 99.9%; डाउनस्ट्रीम स्रोत की उपलब्धता देश और डेटासेट के अनुसार अलग होती है।

## जाँच के परिणामों का अर्थ

यह जाँच ड्राइविंग लाइसेंस रजिस्टर से उस लाइसेंस नंबर के बारे में पूछती है जो आप भेजते हैं, साथ में दक्षिण अफ़्रीकी ID नंबर, उपनाम और आद्याक्षर भी। परिणाम इस पर निर्भर करता है कि रजिस्टर क्या लौटाता है:

* **`MATCH`** - रजिस्टर ने इस लाइसेंस नंबर का लाइसेंस रिकॉर्ड लौटाया, और आपके द्वारा भेजा गया विवरण उससे मेल खाता है। `source_data` में वह रिकॉर्ड होता है: `identification_number` (लाइसेंस नंबर), `first_name` और `last_name`, `vehicle_codes` (लाइसेंस की श्रेणियाँ, जैसे `EB`, `C1`) और `expiration_date` (लाइसेंस कार्ड की समाप्ति तिथि)।
* **`INCONCLUSIVE`** - रजिस्टर ने अनुरोध स्वीकार किया, लेकिन कोई लाइसेंस रिकॉर्ड नहीं लौटाया, इसलिए भेजे गए विवरण की तुलना करने के लिए कुछ नहीं था। इस मामले में `source_data.licence_valid` का मान `true` होता है, `validation` खाली होता है और `match_type` `null` होता है। लाइसेंस के बारे में कुछ भी पुष्ट नहीं होता, इसलिए जाँच समीक्षा के लिए भेजी जाती है। यही बात तब भी लागू होती है जब उसी अनुरोध में कोई दूसरी सेवा, जैसे राष्ट्रीय ID जाँच, व्यक्ति का मिलान हो गया हो, क्योंकि वह व्यक्ति की पुष्टि करती है, लाइसेंस की नहीं।
* **`NO_MATCH`** - रजिस्टर ने लाइसेंस की खोज की और उसे मान्य नहीं पाया (`source_data.licence_valid: false`)। आपकी नो-मैच कार्रवाई लागू होती है।
* **`REGISTRY_ERROR`** - रजिस्टर ने खोज नहीं की, इसलिए लाइसेंस के बारे में कुछ भी स्थापित नहीं हुआ। जाँच समीक्षा के लिए भेजी जाती है और उसका बिल नहीं बनता।

**क्या कभी नहीं लौटाया जाता।** इसमें निलंबन, रद्दीकरण, वापसी, पृष्ठांकन या डिमेरिट पॉइंट का कोई फ़ील्ड नहीं है। इसलिए `MATCH` होने पर भी अपने उपयोगकर्ताओं से यह न कहें कि "लाइसेंस मान्य है और स्थिति अच्छी है।" `expiration_date`, जब रजिस्टर इसे लौटाता है, वह लाइसेंस की स्थिति से संबंधित एकमात्र तथ्य है। यह जाँचने के लिए कि लाइसेंस की अवधि समाप्त हो गई है या नहीं, इसकी तुलना सत्र की तिथि से करें। इस निर्णय को अपना नियम मानें, न कि मिलान परिणाम का हिस्सा।

यदि आपको इसे नियमों और शर्तों में लिखना है, तो इस तरह लिखें: Didit राष्ट्रीय रजिस्टर से लाइसेंस विवरण की जाँच करता है और, जब रजिस्टर लाइसेंस रिकॉर्ड लौटाता है, तो उसकी श्रेणियों और समाप्ति तिथि की भी जाँच करता है। यह नहीं कि Didit पुष्टि करता है कि धारक आज वाहन चलाने के लिए लाइसेंसधारी है।

## आगे पढ़ें

* [दक्षिण अफ़्रीका डेटाबेस सत्यापन का अवलोकन](https://docs.didit.me/api-reference/database-validation/south-africa.md)
* [डेटाबेस सत्यापन का अवलोकन](https://docs.didit.me/hi/core-technology/database-validation/overview.md)
* [परिणाम कोड](https://docs.didit.me/hi/core-technology/database-validation/database-validation-outcome-codes.md)


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