VIN OCR
Una API para detectar números de bastidor de vehículos en imágenes, y documentos escaneados.
VIN, son las siglas para Vehicle Identification Number. Esta API permite detectar números VIN válidos dentro de imágenes y fotografías. La API de VinOcr proporciona además información extra sobre el VIN encontrado en el documento, como por ejemplo el fabricante, el año y el país de fabricación.
Conectando a la API
Servidor y protocolos para la conexión
Servidor: | https://zpk.systems |
---|---|
Esquema: | HTTPS, solo conexiones seguras SSL. |
Protocolo: |
JSON recomendado
Enviando un JSON en el body del request, y especificando una cabecera Content-Type: application/json en el request Si envia ficheros como imágenes o documentos, estos deberán estar codificados en base64. Form-Data no recomendado
Formato usado en los formularios web, no recomendado. Al enviar una solicitud tipo form_data puede enviar todos los campos como parámetros POST separados. Sin embargo si la solicitud es muy grande recomendamos que envie el contenido de la peticion en un único campo de texto llamado _json (con un guión bajo). Este parametro especial sera procesado por nuestro backend como si se tratase de una solicitud JSON habitual. |
El servidor dónde enviar las solicitudes es https://zpk.systems mediante una conexión HTTPS segura.
El tipo de comunicación recomendado es JSON, en cuyo caso especificaremos en la conexión un Content-Type: application/json, y enviaremos el body de la solicitud como un string JSON válido.
Endpoint y parámetros
Parámetro | Descripción |
---|---|
application_id |
alfanumérico requerido Una id de aplicación, puede obtener la id de una aplicación haciendo click en 'detalles' en su panel |
api_key |
alfanumérico requerido La API KEY de la aplicación que efectúa la llamada a esta API, puede obtenerla en su panel, haciendo click en 'detalles' de una aplicación |
image_file |
fichero requerido Una imágen jpg o png a ser escaneada y que podría contener uno o mas códigos VIn Obligatorio si no se envía el parámetro image_url |
image_url |
string requerido Una dirección http / https donde esta disponible la imágen a ser escaneada y que podría contener uno o mas códigos VIn Obligatorio si no se envía el parámetro image |
score_filters |
array opcional Cuando la imágen no dispone de una buena calidad, es posible que haya confusiones entre diferentes códigos VIN válidos, el array score_filters le permite alterar la puntuación interna que reciben diferentes códigos VIN a partir de datos como zona de fabricación, país de fabricación, nombre del fabricante, o la marca. score_filters debe contener un array de elementos, cada uno de ellos indicando un filtro y una puntuación en caso de que ese filtro se cumpla En este ejemplo se han aplicado tres filtros para alterar la puntuación, se desea dar prioridad a los vehículos fabricados en África, y penalizar los fabricados en America. Adicionalmente se desea filtrar fuera aquellos fabricantes de tractores, y motocicletas.
Zonas, Paises y FabricantesPuede obtener una lista de zonas países y fabricantes a través de nuestra API VehicleVIN, consulte: Obteniendo fabricantes, países, marcas. |
wildcard_at_end |
boolean opcional y por defecto a: false Si wildcard_at_end es especificado, el detector de VINS se permitirá añadir un asterisco* en aquellos VINS en los que se detecte que falta un caracter al final del código. Por ejemplo, dado el código VIN L6TCX2E70ME00515, dónde falta un carácter, la API determinará que el carácter faltante es el último, y retornará como VIN principal el código L6TCX2E70ME00515* Esta opción, puede ser usada para intentar determinar el código correcto en su propia base de datos de vehículos si dispone de ella. |
include_considered_vins |
boolean opcional y por defecto a: false Si se establece a true la respuesta contendrá un nuevo elemento considered_vins que contendrá un array con todos los VINS considerados en el analisis de visión y sus puntuaciones. |
Respuesta
Respuesta con éxito
{
"success": true,
"results": [
{
"vin_number": "VSSZZZ5F216532078",
"dev_from_ocr": "SSZZZ5F216532078",
"valid": true,
"fixed": true,
"quality": 1,
"year": 2001,
"wmi": "VSS",
"vis": "16532078",
"serial": "16532078",
"manufacturer_name": "SEAT",
"uses_manufacturation_plant_code": false,
"manufacturation_plant_code": "6",
"manufacturer_code": "VSS",
"uses_check_digit": false,
"provided_check_digit": "2",
"expected_check_digit": "5",
"valid_check_digit": false,
"low_volume_manufacturer": false,
"brands": [
"seat"
],
"country_name": "Spain",
"country_zone": "Europe"
}
],
"costs": {
"total_cost": 0.005
}
}
Estructura de respuesta
Parámetro | Descripción |
---|---|
success |
boleano
Un boleano con valor true si se pudo procesar su solicitud. O false, en caso de errores. |
results |
array
Un array que contendrá todos los VINs que hayan sido enviados, junto a los datos extraídos y un análisis sobre la válidez de cada código VIN enviado. Consulte la siguiente tabla para detalles sobre los elementos de este array. |
costs |
array : asociativo
Información detallada del coste de la solicitud enviada, dónde:
total_cost: El coste total de esta solicitud.
|
Parámetro | Descripción |
---|---|
vin_number |
string
El VIN que la API procesó finalmente, este VIN podría estar corregido si se detectó un posible error de escritura, o si faltaba algún carácter en el código enviado que pueda ser automáticamente deducido. |
dev_from_ocr |
string
El número que fue leído por el OCR, sin procesar. Puede coincidir con vin_number si no fue necesaria ninguna corrección |
valid |
boleano
Un boleano indicando si el VIN final se considera correcto o no. En aquellos fabricantes o países dónde se use un digito de control, este es considerado a la hora de determinar si el VIN es correcto o no. |
fixed |
boleano
En caso de que el VIN enviado haya sido corregido por la API al considerarse incorrecto, estará a true |
year |
númerico
El año de fabricación del vehículo en caso de poder ser calculado. |
wmi |
string
El código WMI (World Merchant Identifier) del VIN. Un identificador del fabricante. |
vis |
string
Sección VIS (Vehicle Identification Section), el código que cada fabricante usa a su discreción internamente para determinar el vehículo y sus características. |
serial |
string
El número de serie del fabricante, usado por los fabricantes internamente y a su discreción. |
manufacturer_name |
string
El nombre del fabricante. |
uses_manufacturation_plant_code |
boleano
Si hay constancia de que este fabricante usa internamente el código de planta de fabricación, true en caso afirmativo. |
manufacturation_plant_code |
string
Código de un carácter que identifica la planta de fabricación del vehículo. |
manufacturer_code |
string
Código del fabricante, habitualmente el mismo que WMI, con excepciones para algunos países y fabricantes. |
uses_check_digit |
boleano
Si este fabricante usa un dígito de control o no. Dependiente de fabricantes, y zonas geográficas. true en caso afirmativo. Para vehículos que usan este dígito la API puede realizar comprobaciones extra para determinar mejor si el código VIN facilitado es correcto o no. |
provided_check_digit |
string
El dígito de control extraido del VIN que se facilitó a la API. Antes de posibles correcciones. |
expected_check_digit |
string
El dígito de control que se esperaba para este fabricante. |
valid_check_digit |
boleano
Si el dígito de control facilitado es correcto o no. Para determinar el código vin final esta validación es ignorada en caso de que el fabricante no use dígito de control. |
low_volume_manufacturer |
boleano
Indica si es un fabricante con un bajo volumen de producción. Suele indicar en la mayoria de casos que varios fabricantes con una cantidad baja de vehículos fabricados operan bajo un mismo código de fabricante. |
brands |
array : strings
Un array de strings que contiene los nombres de las marcas involucradas en la producción y/o fabricación del vehículo. En la mayoría de casos suele contener un solo elemento. |
country_name |
string
El país donde el vehículo fue fabricado o ensamblado. |
country_zone |
string
La zona geográfica donde el vehículo fue ensamblado o fabricado. Valores posibles: Africa, Asia, Europe, North America, South America y Oceania |
considered_vins |
array
Una lista de los VIN que fueron considerados durante la fase de autocorrección, en caso de que el vin haya sido considerado como correcto tal y como fue proporcionado a la API contendrá un único elemento. En caso de que la API haya considerado varios VINs esta lista contendrá aquellos que haya contemplado junto a una puntuación quality). Cada elemento del array considered_vins contiene:
vin_code: El código VIN considerado.
quality: La puntuación que la API otorgó a ese código vin, y que puede estar afectada por los filtros de puntuación si se han
proporcionado.
|
Respuesta JSON con errores
{
"success": false,
"errors": [
{
"id": "MISSING_REQUIRED_PARAMETER",
"image_file": "Specify an image with 'image_file' or 'image_url'",
"on": "image_file"
}
]
}
Respuesta JSON sin errores ni VINs detectables
{
"results": [],
"found_vins": 0,
"success": true
}
Respuestas sin VINs, y facturación
Cuando no se pueda encontrar ningún código VIN, la aplicación no enviará el array de errores, success será true, y el array results estará vacio.
Esto permite usar la API para asegurar que la imágen no contiene ningun VIN detectable.
Se facturarán como requests válidos todos aquellos en los que la imágen haya podido ser escaneada y no retorne errores en el array de errors
Un request cuya imágen no contenga VINS detectables tiene su coste habitual y será facturada.
Obtener todos los fabricantes
Si necesita obtener todos los fabricantes de vehículos que la API puede devolver para preparar su base de datos, o bien para crear filtros, puede usar el siguiente endpoint.
Parámetro | Descripción |
---|---|
application_id |
alfanumérico requerido Una id de aplicación, puede obtener la id de una aplicación haciendo click en 'detalles' en su panel |
api_key |
alfanumérico requerido La API KEY de la aplicación que efectúa la llamada a esta API, puede obtenerla en su panel, haciendo click en 'detalles' de una aplicación |
Se retornará una lista con todos los fabricantes posibles:
{
"success": true,
"manufacturers": [
{
"code": "LDC",
"name": "Dongfeng Peugeot-Citroën",
"zone": "Europe",
"country": "Slovenia",
"brands": ["Peugeot","Citroën"]
}
]
}
Obtener todos los países
Si necesita obtener todos los países donde operan los fabricantes de vehículos que la API puede devolver para preparar su base de datos, o bien para crear filtros, puede usar el siguiente endpoint.
Parámetro | Descripción |
---|---|
application_id |
alfanumérico requerido Una id de aplicación, puede obtener la id de una aplicación haciendo click en 'detalles' en su panel |
api_key |
alfanumérico requerido La API KEY de la aplicación que efectúa la llamada a esta API, puede obtenerla en su panel, haciendo click en 'detalles' de una aplicación |
Se retornará una lista con todos los países posibles:
{
"success": true,
"countries": [
{
"code": "KA-KE",
"name": "Sri Lanka",
"zone": "Asia"
}
]
}
Obtener todas las marcas
Si necesita obtener todas las marcas comerciales de vehículo que la API puede devolver para preparar su base de datos, o bien para crear filtros, puede usar el siguiente endpoint.
Parámetro | Descripción |
---|---|
application_id |
alfanumérico requerido Una id de aplicación, puede obtener la id de una aplicación haciendo click en 'detalles' en su panel |
api_key |
alfanumérico requerido La API KEY de la aplicación que efectúa la llamada a esta API, puede obtenerla en su panel, haciendo click en 'detalles' de una aplicación |
Se retornará una lista con todas las marcas posibles:
{
"success": true,
"brands": [
"opel","peugeot","sundiro","..."
]
}
Integración con PHP
ZPK-PHP es una librería de código abierto instalable mediante composer que le permitirá integrar nuestras APIs en su proyecto PHP con un mínimo esfuerzo.
Integrar Vin OCR con el SDK en PHPInstalando PHPZPK con composer
composer require zpksystems/phpzpk
Ejemplo de request
<?php // Initialize ZPK application
$zpk = new PHPZPK(APPLICATION_ID,API_KEY);
// Initialize VinOcr
$vinOcr = new VinOcr($zpk);
$vinOcr->setImageFile('test_vin_image.png');
// Make a request
$response = $vinOcr->fetch();
// Dump the response as array
var_dump($response);
Precio
VinOCR tiene un coste por petición a la API, el precio por petición es de 0.003 € que será substraído de su crédito restante.
En caso de no disponer de crédito en su cuenta al realizar una petición la API de VinOCR retornará un error.
Regístrese para probar esta API
Regístrese para obtener crédito gratuito y probar esta y otras APIs de ZPK