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"
{
"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"
}
}
]
}
{
"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": {}
}
]
}
{
"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": {}
}
]
}
🇿🇦 Sudáfrica
API de verificación de licencia de conducir de Sudáfrica
Verifica licencias de conducir de Sudáfrica con Didit en la base de datos oficial. Pago por consulta desde $0.80, sin contratos ni mínimos.
POST
/
v3
/
database-validation
/
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"
{
"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"
}
}
]
}
{
"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": {}
}
]
}
{
"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": {}
}
]
}
Verifica una licencia de conducir sudafricana con el registro NATIS / Department of Transport. Didit ofrece este servicio a través de
POST /v3/database-validation/ para que puedas verificar los datos enviados con la fuente oficial y recibir resultados de coincidencia normalizados.
Cobertura
- Cobertura: —
- País: Sudáfrica
- ID del servicio:
zaf_drivers_license - Dominio de datos: Identidad
- Categoría: DriverLicence
Entradas
| Campo | Obligatorio | Ejemplo |
|---|---|---|
national_id | Sí | SAMPLE-NID-12345 |
last_name | Sí | Doe |
initials | Sí | JD |
licence_number | Sí | LIC123456 |
first_name | No | John |
date_of_birth | No | 1990-01-01 |
vendor_data | No | user-1234 |
- Entradas obligatorias:
national_id,last_name,initials,licence_number - Entradas opcionales:
first_name,date_of_birth,vendor_data - Consentimiento: No es necesario
- Disponibilidad en flujos: Disponible en workflows con mapeo de campos
- Cobertura: —
- Precio: $0.80 por consulta exitosa
initials y licence_number no aparecen impresos en un documento de identidad, así que ningún paso los genera por sí solo. Obtenlos de una respuesta de un cuestionario, de un campo de extracción de Document AI o de un valor que envíes al crear la sesión, y mapea cada uno en el paso de Validación de base de datos. Mientras no estén mapeados, el editor de flujos muestra este servicio desactivado e indica la entrada que falta; en tiempo de ejecución, si falta una entrada, la comprobación se omite antes de realizar cualquier consulta, por lo que nunca se te factura por una base de datos que no se pudo consultar.
Parámetros del cuerpo
string
predeterminado:"ZAF"
requerido
Código de país ISO 3166-1 alfa-3 para este servicio de base de datos.Ejemplo:
ZAFstring
predeterminado:"zaf_drivers_license"
requerido
Array que contiene el ID de este servicio. Fijar el servicio limita la solicitud a esta base de datos concreta.Ejemplo:
zaf_drivers_licensestring
predeterminado:"SAMPLE-NID-12345"
requerido
Número de identidad nacional para este servicio.Ejemplo:
SAMPLE-NID-12345string
predeterminado:"Doe"
requerido
Apellido que se va a validar.Ejemplo:
Doestring
predeterminado:"JD"
requerido
Valor de
initials que requiere este servicio de base de datos.Ejemplo: JDstring
predeterminado:"LIC123456"
requerido
Valor de
licence_number que requiere este servicio de base de datos.Ejemplo: LIC123456string
Nombre de pila que se va a validar.Ejemplo:
Johnstring
Fecha de nacimiento en formato
YYYY-MM-DD.Ejemplo: 1990-01-01string
predeterminado:"user-1234"
Tu referencia estable de usuario para esta persona, como tu ID de usuario interno. Didit la usa para vincular comprobaciones independientes al mismo usuario final y reducir el ruido en la detección de duplicados.Ejemplo:
user-1234Reglas de entrada y notas de validación
- Envía los campos indicados arriba exactamente como se obtuvieron del usuario o del documento.
- Didit valida los campos obligatorios antes de consultar la base de datos. Las solicitudes rechazadas antes de consultar la fuente no se cobran.
Cómo invocarlo
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"
Toda llamada exitosa devuelve HTTP
200. El campo outcome_code te indica qué ocurrió realmente; por ejemplo, distingue una discrepancia biométrica real (BIOMETRIC_NO_MATCH) de una selfie que no se pudo leer (BIOMETRIC_IMAGE_UNUSABLE). El status que se muestra es el estado predeterminado de la función; tus acciones de Partial Match / No Match configuradas pueden anularlo.MATCH: el registro devolvió un registro de licencia para este número de licencia y los datos enviados coincidieron con él.{
"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: el registro buscó la licencia e indicó que no es válida. Se aplica tu acción de no coincidencia.{
"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: el registro aceptó la consulta, pero no devolvió ningún registro de licencia con el que comparar los datos enviados, por lo que no se confirma nada sobre la licencia y la comprobación se envía a revisión, también cuando otro servicio de la misma solicitud encontró una coincidencia con la persona.{
"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": {}
}
]
}
Datos devueltos
Los campos exactos que aparecen ensource_data dependen de lo que devuelva el registro. El ejemplo generado para zaf_drivers_license documenta actualmente esta estructura normalizada:
expiration_datefirst_nameidentification_numberlast_namelicence_validvehicle_codes
Precios y SLA
Las consultas de Sudáfrica - Verificación de licencia de conducir solo se facturan cuando Didit recibe un resultado concluyente de la fuente de validación.- Precio por llamada: $0.80 USD.
- Facturación: por consulta exitosa. No se te cobra cuando no se puede acceder al registro, cuando faltan campos obligatorios o cuando la solicitud se rechaza antes de llegar a la fuente.
- Latencia: p95 típico < 2 s.
- Disponibilidad: 99.9% por trimestre por parte de Didit; la disponibilidad de la fuente externa varía según el país y el conjunto de datos.
Qué significa cada resultado
Esta comprobación consulta al registro de permisos de conducir el número de permiso que envías, junto con el número de identidad sudafricano, el apellido y las iniciales. El resultado depende de lo que devuelva el registro:MATCH- el registro devolvió un expediente de permiso para este número de permiso, y los datos que enviaste coincidieron con él.source_datacontiene el expediente:identification_number(el número de permiso),first_nameylast_name,vehicle_codes(las clases del permiso, p. ej.,EB,C1) yexpiration_date(la fecha de caducidad de la tarjeta del permiso).INCONCLUSIVE- el registro aceptó la consulta pero no devolvió ningún expediente de permiso, por lo que no había nada con qué comparar los datos enviados.source_data.licence_validestrue,validationestá vacío ymatch_typeesnull. No se confirma nada sobre el permiso, por lo que la comprobación se envía a revisión, también cuando otro servicio de la misma solicitud, como la comprobación del documento nacional de identidad, encontró coincidencia con la persona, porque eso confirma a la persona y no el permiso.NO_MATCH- el registro buscó el permiso y lo notificó como no válido (source_data.licence_valid: false). Se aplica tu acción para los casos sin coincidencia.REGISTRY_ERROR- el registro no realizó la búsqueda, por lo que no se estableció nada sobre el permiso. La comprobación se envía a revisión y no se factura.
MATCH debe comunicarse a tus usuarios como “el permiso es válido y está en regla”. expiration_date, cuando el registro lo devuelve, es el único dato relacionado con la vigencia que obtienes: compáralo con la fecha de la sesión para decidir si el permiso ha caducado, y trátalo como una regla propia y no como parte del resultado de la coincidencia.
Si necesitas indicarlo en los términos y condiciones, redáctalo así: Didit comprueba los datos del permiso con el registro nacional y, cuando el registro devuelve un expediente de permiso, sus clases y su fecha de caducidad, pero no confirma que el titular esté habilitado para conducir hoy.
Sigue leyendo
Última modificación el 1 de noviembre de 2026