Wheelz

Documentación

Documentación DNI Español

La API de Wheelz ofrece soporte completo para la extracción de datos de DNIs españoles, tanto electrónicos (2006 - actualidad) como pre-electrónicos (1990 - 2006). Nuestro sistema utiliza OCR avanzado e Inteligencia Artificial para extraer y validar todos los campos del documento.

Endpoint

POST https://api.wheelz-app.es/dni/process/v2

Autenticación

La autenticación se realiza mediante la cabecera x-api-key. La clave de la API se puede encontrar en el dashboard.

Ejemplos de uso

cURL

curl --location 'https://api.wheelz-app.es/dni/process/v2' \
--header 'x-api-key: tu-clave-api' \
--form 'files=@"/ruta/al/anverso.jpg"' \
--form 'files=@"/ruta/al/reverso.jpg"'

JavaScript (Axios)

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const data = new FormData();
data.append('files', fs.createReadStream('/ruta/al/anverso.jpg'));
data.append('files', fs.createReadStream('/ruta/al/reverso.jpg'));

const config = {
  method: 'post',
  url: 'https://api.wheelz-app.es/dni/process/v2',
  headers: {
    'x-api-key': 'tu-clave-api',
    ...data.getHeaders()
  },
  data: data
};

axios(config)
  .then((response) => console.log(response.data))
  .catch((error) => console.error(error));

Respuesta de la API

La API devuelve un objeto JSON con los siguientes campos:

Campos principales:

  • fields.documentNumber: Número del DNI (con verificación)
  • fields.name: Nombre (con verificación)
  • fields.firstSurname: Primer apellido (con verificación)
  • fields.secondSurname: Segundo apellido (con verificación)
  • fields.birthDate: Fecha de nacimiento (con verificación)
  • fields.expirationDate: Fecha de caducidad (con verificación)
  • fields.documentSupportNumber: Número de soporte del documento (con verificación)
  • fields.gender: Género (con verificación)

Campos de dirección:

  • fields.rawAddress: Dirección completa sin procesar
  • fields.addressRoadType: Tipo de vía
  • fields.addressRoadName: Nombre de la vía
  • fields.addressNumber: Número
  • fields.addressFloor: Piso
  • fields.addressDoor: Puerta
  • fields.addressProvince: Provincia
  • fields.addressMunicipality: Municipio
  • fields.addressTown: Localidad

Campos de verificación:

  • mrzDetected: Indica si se detectó la MRZ en el documento
  • Cada campo incluye un booleano verified que indica si el valor ha sido verificado

Ejemplo de respuesta

{
  "fields": {
    "documentNumber": {
      "value": "36645681B",
      "verified": true
    },
    "name": {
      "value": "JULIAN",
      "verified": false
    },
    "firstSurname": {
      "value": "NIETO",
      "verified": true
    },
    "secondSurname": {
      "value": "ADELL",
      "verified": false
    },
    "birthDate": {
      "value": "1934-07-07",
      "verified": true
    },
    "expirationDate": {
      "value": "2099-01-01",
      "verified": true
    },
    "documentSupportNumber": {
      "value": "36645681B",
      "verified": true
    },
    "rawAddress": {
      "value": "AVDA JOSEP TARRADELLAS I JOAN 189 ET 1, L'HOSPITALET DE LLOBREGAT, BARCELONA",
      "verified": false
    },
    "gender": {
      "value": "M",
      "verified": true
    },
    "addressRoadType": {
      "value": "AVENIDA",
      "verified": false
    },
    "addressRoadName": {
      "value": "JOSEP TARRADELLAS I JOAN",
      "verified": false
    },
    "addressNumber": {
      "value": "189",
      "verified": false
    },
    "addressFloor": {
      "value": "ET 1",
      "verified": false
    },
    "addressDoor": {
      "value": null,
      "verified": false
    },
    "addressProvince": {
      "value": "BARCELONA",
      "verified": false
    },
    "addressMunicipality": {
      "value": "L'HOSPITALET DE LLOBREGAT",
      "verified": false
    },
    "addressTown": {
      "value": "L'HOSPITALET DE LLOBREGAT",
      "verified": false
    }
  },
  "mrzDetected": true
}

Consideraciones importantes

  • La API acepta imágenes en formato JPG, PNG y PDF
  • Se pueden enviar una o dos imágenes (anverso y reverso)
  • La verificación MRZ solo está disponible cuando se envía el reverso del DNI
  • Los documentos se procesan en tiempo real y no se almacenan
  • Todas las conexiones están cifradas mediante SSL/TLS

Formatos de documento soportados

La API soporta documentos PDF, JPEG y PNG que contengan únicamente DNIs, tanto electrónicos (2006 - actualidad) como pre-electrónicos (1990 - 2006).

Puedes enviar una imagen con ambas caras, una imagen por cara o sólo una de las caras. En el caso de PDF, puedes enviar un PDF con ambas caras en una página o una página por cara.

Ejemplos de formatos válidos

Dos imágenes (reverso y anverso)
Una imagen con ambas caras
Un PDF con ambas caras en la misma página
Un PDF con ambas caras en diferentes páginas
Dos PDF, uno con cada cara
Una sola cara del DNI (devolverá datos parciales o no validados)

Formatos no soportados

Más de un DNI en la misma imagen/documento
Documentos o imágenes donde aparezcan otros documentos

Calidad de las imágenes

El modelo que usa la API puede devolver buenos resultados incluso en imágenes con poca calidad. Sin embargo, cuanto mayor sea la calidad, mejores serán los resultados.

El modelo puede fallar cuando ambas caras estén en la misma imagen / documento pero con diferente orientación de texto.

Ejemplos de calidad de imagen

Fotografías de alta calidad
Fotografías de baja calidad
Fotocopias en PDF (color y blanco y negro)
Fotografías con sombras

¿Necesitas ayuda?

Si tienes alguna duda o necesitas asistencia, no dudes en contactarnos en [email protected]