Endpoints
Autoinspector API está organizado sobre el ecosistema REST.
Nuestra API soporta multipart/form-data
, application/json
, retorna siempre respuestas de tipo json
y usa los códigos http estándares.
https://api.autoinspector.ai
SDK's
Node.JS
PHP
npm i autoinspector
composer require autoinspector/autoinspector-php
Templates
Un template es un manifiesto declarativo que define las especificaciones de una inspección.
GET /v1/inspection/template
GET /v1/inspection/template/:templateId
Parámetros
_id
string
El identificador unico del template
type
enum
El tipo de template.
variables
object
Las variables del template
inspectionType
enum
El tipo de de inspección para la cual aplica el template
createdAt
string - ISO 8601
Fecha de creacion del template
updatedAt
string - ISO 8601
Fecha de la ultima vez que se actualizo el template
name
string
El nombre unico del template dentro de la empresa
parameters
object
Los parametros de configuracion del template
images
array
Las imágenes que se agregaron al template
inputs
array
Los campos personalizados agregados al template
features
array
Las funcionalidades extras agregadas al template
schema
object
El schema que debe tener el objeto a enviarse para la creación de la inspección con el template actual. El formato corresponde a un Autoinspector Draft de la especificación json schema.
{
"_id": "62867bd460eab13d9bb95c63",
"type": "created",
"inspectionType": "car",
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"variables": [
{
"name":"score",
"type":"numeric",
"initialValue":2
},
{
"name":"plan",
"type":"text",
"initialValue":"base"
}
],
"images": [
{
"side": "back",
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdd60eab13d9bb95c6e"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdd60eab13d9bb95c6f"
},
{
"run": true,
"required": false,
"validation": "recaptured",
"_id": "62867bdd60eab13d9bb95c70"
}
],
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c5"
}
],
"inputs": [
{
"label": "TIPO DE POLIZA",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL"
},
{
"label": "POLIZA B - SEGURO PARCIAL"
}
],
"type": "select",
"stages": ["create"],
"validationSchema": {
"required": true
},
"helperMessage": "Selecciona una opcion",
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7"
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}
Partiento de este manifiesto, una inspección extrae los recursos que la van a componer:
images
: Las imágenes con sus validaciones que deberá subir un usuario para validar un producto.inputs
: Los campos personalizados que se deberá completar. Puede configurarse para que sea requerido en la creación de una inspección o en la actualización de la misma.features
: Los agregados que agregan funcionalidad extra a un tipo de inspección.
Cada template pertenece a un tipo de inspección y en función del tipo se podrán seleccionar ciertos recursos.
Built-in Templates
Los templates pre-integrados son templates creados bajo la opinión de Autoinspector y que se encuentran en todos los tipos de inspecciones. Es la manera más rápida de integrar debido a que no hace falta crear un template desde cero, ya cuentan con un flujo de inspección y validaciones predeterminadas.
Estos templates se encuentran a disposición para ser usados por cualquier usuario que pueda crear una inspección.
Alias
Al momento de crear una inspección, no es necesario enviar el identificador único del template, si no que puedes usar su alias:
easy
(*)deep
(car - moto)damage
(car)
Automáticamente al momento de que se recibió un built-in template alias, Autoinspector API buscará las especificaciones de dicho template mapeando el alias por su identificador único.
Custom Templates
Los templates personalizados son templates creados bajo el criterio, requerimientos y necesidades de un usuario. Se tiene total libertad al momento de definir las especificaciones y recursos que tendrá un template de esta categoría.
Autoinspector brinda una aplicación amigable llamada Inspection Studio, la cual posee una UI que te permite administrar todos tus templates mediante interacciones de última generación. Puedes encontrarlo dentro del Dashboard y empezar a jugar con el mismo.
Hay ciertos roles de usuario que pueden administrar templates. Asegúrate de que poseas un rol apto en caso de no tenerlo.
Persistencia de templates
El estado de un template puede cambiar, es decir, los recursos que lo componen pueden actualizarse cuantas veces se necesite.
Cada inspección guarda por sí misma el estado del template en ese momento. Esto permite que las inspecciones sean persistentes a lo largo del tiempo y evitar que puedan surgir comportamientos raros por actualizaciones abruptas de un template.
Al momento que uno realiza un cambio en un custom template, dicho cambio aplicará únicamente para las inspecciones que se creen posteriormente. Las inspecciones ya creadas, tendrán el estado del template anterior.
Obtener template
Para obtener un template en específico y poder obtener sus detalles.
Parámetros
No hay parámetros
Retorna
Si todo sale bien, retorna un template object.
- CURL
- NodeJS
- PHP
GET/v1/inspection/template/:templateId
curl https://api.autoinspector.ai/v1/inspection/template/<TEMPLATE_IDS>
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>'
GET/v1/inspection/template/:templateId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const template = await autoinspector.templates.retrieve("60f021d61234567890000000");
GET/v1/inspection/template/:templateId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$template = $autoinspector->templates->retrieve("60f021d61234567890000000");
{
"type": "created",
"_id": "62867bd460eab13d9bb95c63",
"variables": [
{
"name":"score",
"type":"numeric",
"initialValue":2
},
{
"name":"plan",
"type":"text",
"initialValue":"base"
}
],
"inspectionType": "car",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"images": [
{
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdf60eab13d9bb95c82"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdf60eab13d9bb95c83"
},
{...}
],
"side": "front",
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c5",
"__v": 0
}
],
"inputs": [
{
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL",
},
{
"label": "POLIZA B - SEGURO TOTAL"
}
],
"stages": ["create"],
"validationSchema": {
"required": true
},
"type": "select",
"label": "TIPO DE POLIZA",
"helperMessage": "Selecciona una opción",
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}
Listar templates
Para listar los templates tu empresa creó como así también los built-in templates, puedes realizar una request con ciertos filtros:
Query Parameters
inspectionType
enum
El tipo de inspection por el que quieres filtrar. Por default lista todas.
type
enum
El tipo de templates por el que quieres filtrar. Por default lista todas.
Retorna
Si todo sale bien, retorna una lista de template objects.
- CURL
- NodeJS
- PHP
GET/v1/inspection/template
curl -G \
'https://api.autoinspector.ai/v1/inspection/template' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-d inspectionType=car \
-d type=created
GET/v1/inspection/template
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const templates = await autoinspector.templates.list({
inspectionType:"car",
type:"created"
});
GET/v1/inspection/template
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$templates = $autoinspector->templates->list([
"inspectionType" => "car",
"type" => "created"
]);
[
{
"type": "created",
"_id": "62867bd460eab13d9bb95c63",
"inspectionType": "car",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"variables": [
{
"name":"score",
"type":"numeric",
"initialValue":2
},
{
"name":"plan",
"type":"text",
"initialValue":"base"
}
],
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"images": [
{
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdf60eab13d9bb95c82"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdf60eab13d9bb95c83"
},
{...}
],
"side": "front",
}
],
"inputs": [
{
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL"
},
{
"label": "POLIZA B - SEGURO TOTAL"
}
],
"stages": ["create"],
"validationSchema": {
"required": true
},
"type": "select",
"label": "TIPO DE POLIZA",
"templateId": "62867bd460eab13d9bb95c63",
"helperMessage": "Selecciona una opcion"
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}
]
Inputs Dinámicos
Uno de los recursos que forman parte de un template son los inputs. Estos inputs permiten al usuario poder armar su propio formulario para que luego sea solicitado en la inspección.
Dependiendo del tipo, cada input tiene ciertas validaciones que se pueden definir para sanitizar el tipo de dato y registrarlo con cierta formato del objeto inspección.
Por ejemplo, uno puede asignar como input, un campo de tipo select con sus opciones, o un tipo fecha con sus respectivas validaciones, etc. Puedes ver los diferentes Inputs Elements con sus validaciones dentro de la sección inspecciones en el dashboard.
Para poder indicar en qué punto de la inspección el campo debe ser solicitado, cada input tiene sus stages. Un stage representa una acción determinada que ocurre en un punto del flujo de inspección.
Los stages que pueden ser asignados a un input son:
create
(solicitud)update
(actualización)
Algunos ejemplos del comportamiento de los inputs dependiendo de la validación, si es requerido y de los stages asignados:
input.type | stages | validationSchema.isRequired | Obligatorio en solicitud | Obligatorio en actualizacion |
---|---|---|---|---|
select | create update | true | ❌ | ✅ |
text | create update | false | ❌ | ❌ |
date | update | true | ❌ | ✅ |
file | create | true | ✅ | ❌ |
Variables
Las variables en un template son valores de tipo numérico o texto que pueden ir mutando o cambiando de estado en base a tu lógica.
Por ejemplo, puedes crear una variable llamada puntaje
que vaya incrementando en función de las respuestas de otros campos.
Las variables de tipo numéricas permiten poder realizar cálculos numéricos como lo son: suma, resta, multiplicación y division.
Puedes administrar las variables de tu template dentro de la sección Configuración
en el detalle del template (Inspection Studio - Dashboard)
Valores de las variables
El resultado calculado de las variables pasara a ser inmutables/persistentes cuando la inspección hay sido finalizada
Esto quiere decir que si consultas por el detalle de una inspección en un estado no finalizada, es posible que los valores de las variables cambien debido al progreso de la inspección
Inspections
Para validar que un producto sea realmente lo que un cliente declara, se requiere de un proceso de verificación. Este proceso es el que denominamos como inspection.
Una inspección puede contar con múltiples productos y su output más importante es el veredict: approved
o disapproved
, el cual indica si la inspección se encuentra aprobada o desaprobada en base a las especificaciones y parámetros previamente establecidos.
Podrás crear, obtener y listar inspecciones con Autoinspector API. Las inspecciones son identificadas por un ID único generado de manera aleatoria.
POST /v1/inspection/:type
PUT /v1/inspection/:inspectionId
PUT /v1/inspection/:type/:productId
GET /v1/inspection
GET /v1/inspection/:inspectionId
Parámetros
_id
string
El identificador de la inspección.
template
object
La plantilla usada en la inspección
producer
object
El usuario a quien le pertenece la inspección creada.
identity
object
Información relacionada con el usuario asignado para realizar la inspección
custom
object
Campos e imágenes personalizados que fueron agregados a la especificación del template
variables
object
Las variables de la inspección heredadas del template utilizado
status
enum
El estado actual de la inspección
products
array
Los productos que fueron validados en la inspeccion
completedBy
enum
Indica si la inspección fue completada por el usuario o por un proceso automático.
type
enum
El tipo de de inspección.
veredict
enum
El veredicto final de la inspección.
{
"_id": "62cd9d05d9d5fd39750a84f5",
"template": {
"_id": "62cd9d05d9d5fd39750a84f2",
"name": "Template #1",
"type": "custom",
"inputs": [
{
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"label": "Nombre",
"value": "John"
},
{
"identifier": "input_db30b856-594e-4799-9ee9-2dacfbe2a338",
"label": "Apellido",
"value": "Doe"
},
{
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b5166a",
"label": "Identificación",
"value": "44188219"
},
{
"identifier": "input_1b00981a-1484-4f53-8702-2a6d43fd6662",
"label": "Email",
"value": "johndoe@gmail.com"
},
{
"identifier": "input_79bdb79b-c3d4-40d5-905e-bdaf1f1e02cb",
"label": "Ciudad",
"value": "testing"
},
{
"identifier": "input_a00ae5cb-e633-4b9a-98b8-863eeac96e5c",
"label": "País",
"value": "AR"
},
{
"identifier": "input_53ca83e7-413a-4435-9c2f-8206630142a8",
"label": "Provincia",
"value": "T"
},
{
"identifier": "input_21de8e3a-87c9-474a-9f10-a4dc9ecbf083",
"label": "Sexo",
"value": "male"
},
{
"identifier": "input_25dd4378-395d-4fe6-8306-65dcead884b0",
"label": "Nacimiento",
"value": "2002-06-19T00:00:00.000Z"
},
{
"identifier": "input_3f8023b1-2062-4679-b455-f69a1211af1e",
"label": "Dirección",
"value": "testing 100"
},
{
"identifier": "input_f2aaa964-9944-4d04-b86c-33044d00fef6",
"label": "Teléfono",
"value": "03813635420"
},
{
"identifier": "input_35c6a25f-6407-4755-a225-47d72bc02530",
"label": "Patente",
"value": "AZ204SU"
},
{
"identifier": "input_9f7a5106-09ae-49ab-a58a-b28952725ce0",
"label": "Año",
"value": 2020
},
{
"identifier": "input_e7f39d45-cf28-422f-a643-4f6e81127065",
"label": "Color",
"value": "grey"
},
{
"identifier": "input_23fa1c2b-b87f-4780-92d8-f8665f21288b",
"label": "Uso",
"value": "PRIVADO"
},
{
"identifier": "input_8e20f135-42b9-42cc-9ab5-abc4d32cdea3",
"label": "Marca",
"value": "JEEP"
},
{
"identifier": "input_0f2e6fb5-ca87-480a-984f-0afa54d5f924",
"label": "Modelo",
"value": "RENEGADE"
}
]
},
"metadata": {
"my_own_key": "my_own_value"
},
"producer": {
"companyId": "6189346deb464c00197f1247",
"userId": "618933efeb464c00197f123f"
},
"status": "completed",
"completedBy": "client",
"type": "car",
"veredict": "approved",
"variables": [
{
"name": "Puntaje",
"value": 10
},
{
"name": "Plan",
"value": "base"
}
],
"products": [
{
"_id": "62cd9d05d9d5fd39750a8511",
"type": "car",
"car": {
"plate": "AZ204SU",
"color": "grey",
"make": "JEEP",
"model": "RENEGADE",
"use": "PRIVADO",
"year": 2020
},
"inputs": [
{
"label": "Kilometraje",
"type": "numeric",
"identifier": "input_3c2d0f47-80de-47d5-b221-a68955c6d3ab",
"value": 100
}
],
"images": [
{
"_id": "62cd9d53d9d5fd39750a859d",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166a",
"validations": [
{
"validation": "date",
"_id": "62cd9d6cd9d5fd39750a85c1",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9d6cd9d5fd39750a85c2",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9d6cd9d5fd39750a85c3",
"confidence": 98.25,
"valid": true
},
{
"validation": "angle",
"_id": "62cd9d6cd9d5fd39750a85c4",
"confidence": 92.80000000000001,
"valid": true
},
{
"validation": "plate",
"_id": "62cd9d6cd9d5fd39750a85c6",
"confidence": 94.5,
"valid": true
},
{
"validation": "color",
"_id": "62cd9d6cd9d5fd39750a85c8",
"confidence": 99.98971223831177,
"valid": true
},
{
"validation": "make",
"_id": "62cd9d6cd9d5fd39750a85ca",
"confidence": 95.8,
"valid": true
},
{
"validation": "model",
"_id": "62cd9d6cd9d5fd39750a85cb",
"confidence": 95.8,
"valid": true
},
{
"validation": "complete",
"_id": "62cd9d6cd9d5fd39750a85cc",
"confidence": 99.99427795410156,
"valid": true
},
{
"validation": "object",
"_id": "62cd9d6cd9d5fd39750a85cd",
"confidence": 99.97334289550781,
"valid": true
},
{
"validation": "damage",
"_id": "62cd9d7dd9d5fd39750a861e",
"confidence": 100,
"valid": false
}
],
"damages": [
{
"part": "trunk",
"percentage": 1.9,
"damage": "dent",
"severity": "unknown"
}
],
"side": "back",
"processed": true,
"uploadedAt": "2022-07-12T16:12:03.000Z",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/back-1657642319385.jpeg",
"type": "normal",
"target": "product"
}
],
"extraImages": [
{
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166a",
"target": "product",
"uploadedAt": "2022-07-12T16:12:25.000Z",
"side": "unknown",
"_id": "62cd9d6bd9d5fd39750a85ae",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642331666.jpeg",
"productInspectionId": "62cd9d05d9d5fd39750a8511"
}
]
}
],
"identity": {
"address": "testing 100",
"city": "testing",
"country": "Argentina",
"state": "Tucumán",
"phone": "03813635420",
"sex": 1,
"birthdate": "2002-12-06T00:00:00.000Z",
"email": "lucianoalvarez1212@gmail.com",
"identification": "44188219",
"lastName": "Alvarez",
"firstName": "Luciano",
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd9215ecac9905ccf303d5",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9215ecac9905ccf303d6",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9215ecac9905ccf303d7",
"confidence": 95.01,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9215ecac9905ccf303d8",
"confidence": 100,
"valid": true
},
{
"validation": "birthdate",
"_id": "62cd9215ecac9905ccf303d9",
"confidence": 100,
"valid": false
},
{
"validation": "dni",
"_id": "62cd9215ecac9905ccf303db",
"confidence": 100,
"valid": true
},
{
"validation": "full_name",
"_id": "62cd9215ecac9905ccf303de",
"confidence": 100,
"valid": true
},
{
"validation": "sex",
"_id": "62cd9215ecac9905ccf303e0",
"confidence": 100,
"valid": true
},
{
"validation": "age",
"_id": "62cd9215ecac9905ccf303e2",
"confidence": 100,
"valid": false
},
{
"validation": "object",
"_id": "62cd9215ecac9905ccf303e3",
"confidence": 98.41889953613281,
"valid": true
}
],
"damages": [],
"side": "dni",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf3039d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/dni-1657639433699.jpeg",
"target": "identity",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166a"
},
{
"validations": [
{
"validation": "date",
"_id": "62cd9210ecac9905ccf303bd",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9210ecac9905ccf303be",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9210ecac9905ccf303bf",
"confidence": 99.95,
"valid": true
},
{
"validation": "age",
"_id": "62cd9210ecac9905ccf303c0",
"confidence": 99.99873352050781,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9210ecac9905ccf303c1",
"confidence": 0,
"valid": false
},
{
"validation": "object",
"_id": "62cd9210ecac9905ccf303c2",
"confidence": 99.8077163696289,
"valid": true
}
],
"damages": [],
"side": "selfie",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf303a7",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/selfie-1657639435560.jpeg",
"target": "identity",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b5166b"
}
],
"extraImages": [
{
"target": "identity",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b51666"
}
]
},
"custom": {
"images": [
{
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b51668",
"validations": [
{
"validation": "date",
"_id": "62cd927decac9905ccf30402",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd927decac9905ccf30403",
"confidence": 100,
"valid": true
},
{
"validation": "object",
"_id": "62cd927decac9905ccf30404",
"confidence": 100,
"valid": true
}
],
"damages": [],
"side": "Denuncia",
"processed": true,
"uploadedAt": "2022-07-12T15:25:46.000Z",
"_id": "62cd927aecac9905ccf303f2",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/denuncia-1657639543794.jpeg",
"target": "custom"
}
],
"inputs": [
{
"label": "Seleccione los accesorios que desea asegurar",
"type": "multiselect",
"identifier": "input_525a71d5-3e1d-47e3-b2f5-1238d33190be",
"value": [
{
"selected": "Llantas especiales"
},
{
"selected": "Radio"
}
]
},
{
"label": "Nro. de reclamo",
"type": "text",
"value": "AB705SU2020",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51668"
},
{
"label": "Póliza",
"type": "text",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51661"
},
{
"label": "PASAPORTE",
"type": "text",
"value": "ARG123",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51662"
},
{
"label": "¿Se robaron todas las cubiertas?",
"type": "check",
"value": true,
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51663"
},
{
"label": "¿La cubierta de auxilio estuvo comprometida en el robo?",
"type": "check",
"value": true,
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51664"
},
{
"label": "¿Hizo la denuncia policial?",
"type": "check",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51665"
},
{
"label": "Marca, modelo y medida de las cubiertas a reponer",
"type": "textarea",
"value": "CUBIERTAS PREMIUM ",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51666"
},
{
"label": "Video 360 del vehículo",
"type": "video",
"value": "https://ai-inspections.s3.amazonaws.com/videoplayback(1).mp4",
"identifier": "input_79519a40-3047-48c4-b8db-5c95c8b51667"
}
],
"extraImages": [
{
"target": "custom",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg",
"templateImageIdentifier": "image_79519a40-3047-48c4-b8db-5c95c8b51667"
}
]
}
}
Crear inspección
Para validar productos, bienes o personas, primero debes crear una inspection
. Al momento de crear una inspección, tienes que indicar qué tipo de productos estarán incluídos en dicha inspección. Por el momento, se encuentran habilitados los siguientes tipos de inspección, que hacen referencia al o los productos que pueden contener:
car
moto
bike
machinery
goods
people
custom
cellphone
Parámetros
DEPENDE
Los parámetros con la etiqueta 'depende' serán requeridos sólo si en las especificaciones del 'template' hay una regla que lo exija.
En el caso de los campos personalizados, solo serán requeridos en base a su obligatoriedad y esquema de validación.
- car
- bike
- moto
- machinery
- goods
- people
- custom
- cellphone
car
object
DEPENDE
Informacion del auto a inspeccionar
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/car
curl -X POST 'https://api.autoinspector.ai/v1/inspection/car' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": false,
"channel": "wsp",
"destination": "3813635420",
"countryISO": "AR"
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"car": {
"plate": "AQ701ZA"
},
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
}
}'
POST/v1/inspection/car
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.car.create({
locale: "es_AR",
metadata:{
policyID: "1895"
},
inputs:[
{
identifier: "input_35c6a25f-6407-4755-a225-47d72bc02530",
value: true
},
],
callbackURL: "https://myapp.localhost/inspection",
delivery:{
disabled: false,
channel:"sms",
destination:"3815555620",
countryISO:"AR",
},
initialStatus: "created",
templateId: "631767edfa4f790013dc3829",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
car: {
plate: "AB705SU",
},
});
POST/v1/inspection/car
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->car->create([
'initialStatus' => 'started'
'templateId' => "easy",
'producer' => [
'internalId' => '123'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232',
],
'car' => [
'plate' => 'AB705SU',
],
'delivery' => [
'channel' => 'email',
'destination' => 'john_doe@gmail.com',
'disabled' => false,
'countryISO' => 'AR'
],
'locale' => 'es_AR'
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Car inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
bike
object
DEPENDE
Información de la bicicleta a inspeccionar
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/bike
curl -X POST 'https://api.autoinspector.ai/v1/inspection/bike' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": false,
"channel": "wsp",
"destination": "3813635420",
"countryISO": "AR"
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
}
}'
POST/v1/inspection/bike
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.bike.create({
metadata:{
policyID: "1895"
},
callbackURL: "https://myapp.localhost/inspection",
delivery: {
disabled: false,
channel: "sms",
destination: "3815555620",
countryISO: "AR",
},
initialStatus: "created",
templateId: "easy",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
locale: "es_AR",
});
POST/v1/inspection/bike
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->bike->create([
'locale' => 'es_AR',
'initialStatus' => 'started'
'templateId' => "easy",
'producer' => [
'internalId' => '123'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232'
],
'delivery' => [
'disabled' => false,
'channel' => 'wsp',
'destination' => '3815555621',
'countryISO' => 'AR'
]
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Bike inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
moto
object
DEPENDE
Informacion de la moto a inspeccionar
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/moto
curl -X POST 'https://api.autoinspector.ai/v1/inspection/moto' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": true
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"moto":{
"plate":"QW705SU"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
}
}'
POST/v1/inspection/moto
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.moto.create({
locale: "es_AR",
delivery:{
disabled: true
},
initialStatus: "started",
templateId: "easy",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
moto: {
plate: "AB705SU2020",
},
});
POST/v1/inspection/moto
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->moto->create([
'locale' => 'es_AR',
'initialStatus' => 'started'
'templateId' => "easy",
'producer' => [
'internalId' => '123'
],
'delivery' => [
'channel' => 'email',
'destination' => 'john_doe@gmail.com',
'disabled' => false,
'countryISO' => 'AR'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232',
],
'moto' => [
'plate' => 'AB705SU',
],
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Moto inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
machinery
object
DEPENDE
Informacion de la maquinaria a inspeccionar
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/machinery
curl -X POST 'https://api.autoinspector.ai/v1/inspection/machinery' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": true
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"machinery":{
"type":"tractor"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
}
}'
POST/v1/inspection/machinery
const inspection = await autoinspector.inspections.machinery.create({
initialStatus: "started",
delivery:{
disabled: true
},
templateId: "easy",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
machinery: {
type: "backhoe",
color: "black",
use: "OFICIAL",
purpose: "Agrícola",
}});
POST/v1/inspection/machinery
$autoinspector = new AutoinspectorAutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->machinery->create([
'locale' => 'es_AR',
'initialStatus' => 'started',
'templateId' => "easy",
'producer' => [
'internalId' => '123'
],
'delivery' => [
'channel' => 'email',
'destination' => 'john_doe@gmail.com',
'disabled' => false,
'countryISO' => 'AR'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232',
],
'machinery' => [
"type" => "backhoe",
"color" => "black",
"use" => "OFICIAL",
"purpose" => "Agrícola",
],
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Machinery inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
goods
array
DEPENDE
Informacion los bienes a inspeccionar
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y una lista en productIds con los identificadores únicos de los bienes
- CURL
- NodeJS
- PHP
POST/v1/inspection/goods
curl -X POST 'https://api.autoinspector.ai/v1/inspection/goods' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": true
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
},
"goods": [
{
"make": "Apple",
"model": "iPhone 6s",
"type": "mobile",
"category": "electronics",
"serialNumber": "IMEI1235",
"price": 188881
}
]
}'
POST/v1/inspection/goods
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.goods.create({
delivery:{
disabled: true
},
initialStatus: "started",
templateId: "easy",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
goods: [
{
type: "tv",
category: "home",
serialNumber: "A23SD2",
make: "LG",
model: "LG342",
},
{
type: "mobile",
category: "electronics",
serialNumber: "AS324S",
make: "Apple",
model: "iPhone XR",
},
],
});
POST/v1/inspection/goods
$autoinspector = new AutoinspectorAutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->goods->create([
'locale' => 'es_AR',
'initialStatus' => 'started',
'templateId' => "easy",
'producer' => [
'internalId' => '123'
],
'delivery' => [
'channel' => 'email',
'destination' => 'john_doe@gmail.com',
'disabled' => false,
'countryISO' => 'AR'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232',
],
'goods' => [
[
"type" => "mobile",
"category" => "electronics",
"serialNumber" => "AS324S",
"make" => "Apple",
"model" => "iPhone XR",
],
[
"type" => "tv",
"category" => "home",
"serialNumber" => "A23SD2",
"make" => "LG",
"model" => "LG342",
]
],
]);
{"inspectionId":"60f021d61234567890000000","productIds":["60f021d6123456789000000"],"message":"Goods inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/people
curl -X POST https://api.autoinspector.ai/v1/inspection/people \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": true
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "easy",
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
}
}'
POST/v1/inspection/people
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.people.create({
delivery:{
disabled: true
},
initialStatus: "started",
templateId: "easy",
locale: "es_AR",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
});
POST/v1/inspection/people
$autoinspector = new AutoinspectorAutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->people->create([
'initialStatus' => 'started',
'templateId' => "easy",
'producer' => [
'internalId' => '123'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232',
],
'locale' => 'es_AR',
'delivery' => [
'channel' => 'email',
'destination' => 'john_doe@gmail.com',
'disabled' => false,
'countryISO' => 'AR'
],
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"People inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/custom
curl -X POST 'https://api.autoinspector.ai/v1/inspection/custom' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": true
},
"locale": "es_CL",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "60f021d61234567890000666",
"inputs": [
{
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"value": "Siniestro"
}
]
}'
POST/v1/inspection/custom
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.custom.create({
delivery:{
disabled: true,
},
initialStatus: "started",
templateId: "60f021d61234567890000000",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
});
POST/v1/inspection/custom
$autoinspector = new AutoinspectorAutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->custom->create([
'locale' => 'es_AR',
'initialStatus' => 'started',
'templateId' => "60f021d61234567890000000",
'producer' => [
'internalId' => '123'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232',
],
'delivery' => [
'channel' => 'email',
'destination' => 'john_doe@gmail.com',
'disabled' => false,
'countryISO' => 'AR'
]
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Custom inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
cellphone
object
DEPENDE
Información del celular a inspeccionar
producer
object
Representa el usuario/entidad creador de la inspección.
consumer
object
DEPENDE
Información sobre la persona que va a realizar la inspección
inputs
array
DEPENDE
Las respuestas a los campos personalizados agregados al template
templateId
string
REQUERIDO
El identificador del template a usarse en la inspeccion. En caso que el tipo de inspeccion soporte built-in templates, puedes enviar su alias. Por ejemplo 'easy'.
delivery
object
REQUERIDO
Especificacion sobre las notificaciones de la inspeccion
locale
enum
REQUERIDO
Estándar IETF language tag concatenado con el estándar ISO 3166-1. El valor enviado sera tomado en cuenta para las variantes configuradas en el template.
initialStatus
enum
Con que estado debe iniciar la inspeccion
metadata
object
Objeto dinámico para almacenar clave-valor de tipo string. Maximo 50 clave-valor. El Maximo longitud de las claves es de 50 y el maximo longitud de los valores es de 500
Retorna
Si todo sale como se espera, retorna un objeto con el inspectionId y el productId
- CURL
- NodeJS
- PHP
POST/v1/inspection/cellphone
curl -X POST 'https://api.autoinspector.ai/v1/inspection/cellphone' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"delivery": {
"disabled": false,
"channel": "wsp",
"destination": "3813635420",
"countryISO": "AR"
},
"locale": "es_AR",
"metadata": {
"policy_id": "5912"
},
"producer": {
"internalId": "1234"
},
"templateId": "670d1acc374cce9ace192fca",
"consumer": {
"firstName": "John",
"lastName": "Doe",
"identification": "44188219",
"email": "john@doe.com"
},
"cellphone": {
"make": "Apple",
"model": "iPhone X",
"serialNumber": "IMEI1235",
"price": 778259
}
}'
POST/v1/inspection/cellphone
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.cellphone.create({
metadata:{
policyID: "1895"
},
callbackURL: "https://myapp.localhost/inspection",
delivery: {
disabled: false,
channel: "sms",
destination: "3815555620",
countryISO: "AR",
},
initialStatus: "created",
templateId: "670d1acc374cce9ace192fca",
producer: {
internalId: "123",
},
consumer: {
firstName: "John",
lastName: "Doe",
identification: "2323232",
email: "john@doe.gmail",
},
locale: "es_AR",
cellphone: {
make: "Apple",
model: "iPhone X",
serialNumber: "IMEI1235",
price: 778259
}
});
POST/v1/inspection/cellphone
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->cellphone->create([
'locale' => 'es_AR',
'initialStatus' => 'started'
'templateId' => "670d1acc374cce9ace192fca",
'producer' => [
'internalId' => '123'
],
'consumer' => [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john_doe@gmail.com',
'identification' => '3213232'
],
'delivery' => [
'disabled' => false,
'channel' => 'wsp',
'destination' => '3815555620',
'countryISO' => 'AR'
],
'cellphone' => [
'make' => 'Apple',
'model' => 'iPhone X',
'serialNumber' => 'IMEI1235',
'price' => 778259
]
]);
{"inspectionId":"60f021d61234567890000000","productId":"60f021d6123456789000000","message":"Cellphone inspection created!", "magicLink":"https://app.autoinspector.ai/inspection/60f021d61234567890000000?accessCode=1234"}
Código de errores
Junto con los Errors Comunes, los errores de código pueden llegar a ocurrir al realizar una solicitud a este endpoint son los siguientes:
code | description | status |
---|---|---|
invalid_template_id | El template id proporcionado no cumple con el formato establecido en el contrato | 400 |
wrong_template_provided | El template id proporcionado existe pero no es del tipo de inspección que se pretende crear | 400 |
not_found_template | No se ha podido encontrar ningún template con el id proporcionado | 404 |
input_value_not_provided | Hay un input personalizado del template que necesita ser enviado para la creación de la inspección | 400 |
invalid_input_value | Hay un input personalizado del template que no es valido | 400 |
not_found_user | El producer.internalId id enviado no macheó con ningún miembro de la compañía | 404 |
Obtener inspección
Retorna el detalle de una inspección que fue anteriormente creada. Proporciona el inspectionId
y Autoinspector retornará el objeto inspección.
Parámetros
No hay parámetros.
Retorna
Retorna un objeto inspección si el identificador proporcionado es válido. De caso contrario, retorna un error.
- CURL
- NodeJS
- PHP
GET/v1/inspection/:inspectionId
curl 'https://api.autoinspector.ai/v1/inspection/<INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>'
GET/v1/inspection/:inspectionId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.retrieve("60f021d61234567890000000");
GET/v1/inspection/:inspectionId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->retrieve("60f021d61234567890000000");
{
"metadata": {},
"_id": "62cd9d05d9d5fd39750a84f5",
"template": {
"_id": "62be865212ca0918bcabf2a5",
"name": "My custom workflow",
"type": "custom"
},
"producer": {
"companyId": "6189346deb464c00197f1247",
"userId": "618933efeb464c00197f123f"
},
"status": "completed",
"variables": [
{
"name": "Puntaje",
"value": 10
},
{
"name": "Plan",
"value": "base"
}
],
"products": [
{
"_id": "62cd9d05d9d5fd39750a8511",
"type": "car",
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd9d6cd9d5fd39750a85c1",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9d6cd9d5fd39750a85c2",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9d6cd9d5fd39750a85c3",
"confidence": 98.25,
"valid": true
},
{
"validation": "angle",
"_id": "62cd9d6cd9d5fd39750a85c4",
"confidence": 92.80000000000001,
"valid": true
},
{
"validation": "plate",
"_id": "62cd9d6cd9d5fd39750a85c6",
"confidence": 94.5,
"valid": true
},
{
"validation": "color",
"_id": "62cd9d6cd9d5fd39750a85c8",
"confidence": 99.98971223831177,
"valid": true
},
{
"validation": "make",
"_id": "62cd9d6cd9d5fd39750a85ca",
"confidence": 95.8,
"valid": true
},
{
"validation": "model",
"_id": "62cd9d6cd9d5fd39750a85cb",
"confidence": 95.8,
"valid": true
},
{
"validation": "complete",
"_id": "62cd9d6cd9d5fd39750a85cc",
"confidence": 99.99427795410156,
"valid": true
},
{
"validation": "object",
"_id": "62cd9d6cd9d5fd39750a85cd",
"confidence": 99.97334289550781,
"valid": true
},
{
"validation": "damage",
"_id": "62cd9d7dd9d5fd39750a861e",
"confidence": 100,
"valid": false
}
],
"damages": [
{
"part": "trunk",
"percentage": 42,
"damage": "dent",
"severity": "minor"
}
],
"side": "back",
"processed": true,
"uploadedAt": "2022-07-12T16:12:03.000Z",
"_id": "62cd9d53d9d5fd39750a859d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/back-1657642319385.jpeg",
"type": "normal",
"target": "product"
}
],
"extraImages": [
{
"target": "product",
"uploadedAt": "2022-07-12T16:12:25.000Z",
"side": "unknown",
"_id": "62cd9d6bd9d5fd39750a85ae",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642331666.jpeg",
"productInspectionId": "62cd9d05d9d5fd39750a8511"
}
]
}
],
"identity": {
"address": "testing 100",
"city": "testing",
"country": "Argentina",
"state": "Tucumán",
"phone": "03813635420",
"sex": 1,
"birthdate": "2002-12-06T00:00:00.000Z",
"email": "lucianoalvarez1212@gmail.com",
"identification": "44188219",
"lastName": "Alvarez",
"firstName": "Luciano",
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd9215ecac9905ccf303d5",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9215ecac9905ccf303d6",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9215ecac9905ccf303d7",
"confidence": 95.01,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9215ecac9905ccf303d8",
"confidence": 100,
"valid": true
}
],
"entities": [
{
"entity": "passport",
"valid": true,
"result": {
"sex": "M",
"surname": "CASTILLO",
"givenNames": "JUAN PABLO",
"nationality": "ARGENTINA",
"dateOfBirth": "21 FEB/FEB 87",
"placeOfBirth": "ARG",
"dateOfIssue": "13 JUN/JUN 16",
"dateOfExpiry": "13 JUN/JUN 26",
"personalNumber": "32815355",
"authority": "RENAPER",
"documentNumber": "AAE054537",
"issuingCountry": "ARG"
}
}
],
"damages": [],
"side": "pasaporte",
"processed": true,
"uploadedAt": "2022-07-12T15:22:56.000Z",
"_id": "62cd920cecac9905ccf3032d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/pasaporte-1657639433699.jpeg",
"target": "identity"
},
{
"validations": [
{
"validation": "date",
"_id": "62cd9215ecac9905ccf303d5",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9215ecac9905ccf303d6",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9215ecac9905ccf303d7",
"confidence": 95.01,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9215ecac9905ccf303d8",
"confidence": 100,
"valid": true
},
{
"validation": "birthdate",
"_id": "62cd9215ecac9905ccf303d9",
"confidence": 100,
"valid": false
},
{
"validation": "dni",
"_id": "62cd9215ecac9905ccf303db",
"confidence": 100,
"valid": true
},
{
"validation": "full_name",
"_id": "62cd9215ecac9905ccf303de",
"confidence": 100,
"valid": true
},
{
"validation": "sex",
"_id": "62cd9215ecac9905ccf303e0",
"confidence": 100,
"valid": true
},
{
"validation": "age",
"_id": "62cd9215ecac9905ccf303e2",
"confidence": 100,
"valid": false
},
{
"validation": "object",
"_id": "62cd9215ecac9905ccf303e3",
"confidence": 98.41889953613281,
"valid": true
}
],
"damages": [],
"side": "dni",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf3039d",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/dni-1657639433699.jpeg",
"target": "identity"
},
{
"validations": [
{
"validation": "date",
"_id": "62cd9210ecac9905ccf303bd",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd9210ecac9905ccf303be",
"confidence": 100,
"valid": true
},
{
"validation": "recaptured",
"_id": "62cd9210ecac9905ccf303bf",
"confidence": 99.95,
"valid": true
},
{
"validation": "age",
"_id": "62cd9210ecac9905ccf303c0",
"confidence": 99.99873352050781,
"valid": true
},
{
"validation": "face_comparison",
"_id": "62cd9210ecac9905ccf303c1",
"confidence": 0,
"valid": false
},
{
"validation": "object",
"_id": "62cd9210ecac9905ccf303c2",
"confidence": 99.8077163696289,
"valid": true
}
],
"damages": [],
"side": "selfie",
"processed": true,
"uploadedAt": "2022-07-12T15:23:56.000Z",
"_id": "62cd920cecac9905ccf303a7",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/selfie-1657639435560.jpeg",
"target": "identity"
}
],
"extraImages": [
{
"target": "identity",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg"
}
]
},
"custom": {
"images": [
{
"validations": [
{
"validation": "date",
"_id": "62cd927decac9905ccf30402",
"confidence": 100,
"valid": true
},
{
"validation": "distance",
"_id": "62cd927decac9905ccf30403",
"confidence": 100,
"valid": true
},
{
"validation": "object",
"_id": "62cd927decac9905ccf30404",
"confidence": 100,
"valid": true
}
],
"damages": [],
"side": "Denuncia",
"processed": true,
"uploadedAt": "2022-07-12T15:25:46.000Z",
"approved": true,
"src": "https://ai-inspections.s3.amazonaws.com/denuncia-1657639543794.jpeg",
"target": "custom",
"templateImageIdentifier": "image_151a3347-8cde-4c72-9e75-1d36a762b02f"
}
],
"inputs": [
{
"label": "Nro. de reclamo",
"type": "text",
"value": "AB705SU2020",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7"
},
{
"label": "Póliza",
"type": "text",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c1"
},
{
"label": "PASAPORTE",
"type": "text",
"value": "ARG123",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c2"
},
{
"label": "¿Se robaron todas las cubiertas?",
"type": "check",
"value": true,
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c3"
},
{
"label": "¿La cubierta de auxilio estuvo comprometida en el robo?",
"type": "check",
"value": true,
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c4"
},
{
"label": "¿Hizo la denuncia policial?",
"type": "check",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c5"
},
{
"label": "Marca, modelo y medida de las cubiertas a reponer",
"type": "textarea",
"value": "CUBIERTAS PREMIUM ",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c6"
},
{
"label": "Video 360 del vehículo",
"type": "video",
"value": "https://ai-inspections.s3.amazonaws.com/videoplayback(1).mp4",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7"
}
],
"extraImages": [
{
"target": "custom",
"uploadedAt": "2022-07-12T16:11:35.000Z",
"side": "unknown",
"_id": "62cd9d37d9d5fd39750a8585",
"src": "https://ai-inspections.s3.amazonaws.com/unknown-1657642293074.jpeg"
}
]
},
"completedBy": "client",
"type": "car",
"veredict": "approved"
}
Código de errores
Junto con los Errors Comunes, los errores de código pueden llegar a ocurrir al realizar una solicitud a este endpoint son los siguientes:
code | description | status |
---|---|---|
inspection_not_found | El id de inspección proporcionado no fue encontrado | 404 |
Actualizar inspección
Actualiza una inspección en específico pasando ciertos parámetros. Los parámetros que no se hayan pasado, no tendrán cambio alguno.
De los parámetros que pases, únicamente serán tenidos en cuenta los que no se encuentren definidos en el objeto original. El resto, serán ignorados.
Parámetros
consumer
object
Información sobre la persona que va a realizar la inspección
metadata
object
Objeto dinámico para almacenar key values. Usualmente usado para guardar ids externos a Autoinspector en una inspección.
Retorna
Si los valores tenidos en cuenta son válidos, devuelve un objeto con un mensaje indicando que todo salió OK.
- CURL
- NodeJS
- PHP
PUT/v1/inspection/:inspectionId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/<INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"consumer": {
"country": "AR",
"state": "T"
},
"inputs": [
{
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"value": "Afirmativo"
}
]
}'
PUT/v1/inspection/:inspectionId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspection = await autoinspector.inspections.update("60f021d61234567890000000", {
consumer:{
country:"AR",
state:"B",
},
metadata:{
my_own_platform_user_id: "1234"
},
inputs:[
{
identifier:"input_35c6a25f-6407-4755-a225-47d72bc02530",
value:"POLIZA B"
}
]
});
PUT/v1/inspection/:inspectionId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->update("60f021d61234567890000000", [
"consumer" => [
"country" => "Argentina",
"state" => "Buenos Aires",
],
"metadata" => [
"my_own_platform_user_id" => "1234"
],
"inputs" => [
[
"identifier" => "input_35c6a25f-6407-4755-a225-47d72bc02530",
"value" => "POLIZA B"
]
]
]);
{ "message": "inspection updated successfully" }
Únicamente puedes actualizar una inspección que tenga el estado created
o started
. De lo contrario, recibirás un error.
Actualizar producto
Actualiza un producto de una inspección pasando ciertos parámetros. Los parámetros que no se hayan pasado, no tendrán cambio alguno.
La inspección de tipo 'people' no se encuentra en esta sección debido a que toda la información de ese 'product inspection' se encuentra dentro del objeto/entidad consumer
.
El equivalente de actualizar un product inspection de tipo 'people' es actualizar el objeto inspection.
- car
- moto
- bike
- machinery
- goods
- cellphone
car
object
Informacion del auto a inspeccionar
Retorna
Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.
- CURL
- NodeJS
- PHP
PUT/v1/inspection/car/:productId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/car/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"car": {
"milage": 100,
"year": 2018,
"color": "red"
}
}'
PUT/v1/inspection/car/:productId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const car = await autoinspector.inspections.car.update("60f021d61234567890000000", {
milage:100,
year:2018,
color:"red"
});
PUT/v1/inspection/car/:productId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$car = $autoinspector->inspections->car->update("60f021d61234567890000000", [
"milage" => 100,
"year" => 2018,
"color" => "red"
]);
{"message":"Car updated successfully!"}
moto
object
Informacion de la moto a inspeccionar
Retorna
Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.
- CURL
- NodeJS
- PHP
PUT/v1/inspection/moto/:productId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/moto/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"moto": {
"milage": 100,
"year": 2018,
"color": "red"
}
}'
PUT/v1/inspection/moto/:productId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const moto = await autoinspector.inspections.moto.update("60f021d61234567890000000", {
milage:100,
year:2018,
color:"red"
});
PUT/v1/inspection/moto/:productId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$moto = $autoinspector->inspections->moto->update("60f021d61234567890000000", [
"milage" => 100,
"year" => 2018,
"color" => "red"
]);
{"message":"Moto updated successfully!"}
bike
object
Información de la bicicleta a inspeccionar
Retorna
Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.
- CURL
- NodeJS
- PHP
PUT/v1/inspection/bike/:productId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/bike/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"bike": {
"price": 10000,
"serialNumber": "A2135"
}
}'
PUT/v1/inspection/bike/:productId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
await autoinspector.inspections.bike.update("60f021d61234567890000000", {
serialNumber:"AB6W212"
});
PUT/v1/inspection/bike/:productId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$moto = $autoinspector->inspections->bike->update("60f021d61234567890000000", [
"serialNumber" => "AB6W212"
]);
{"message":"Bike updated successfully!"}
machinery
object
Informacion de la maquinaria a inspeccionar
Retorna
Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.
- CURL
- NodeJS
- PHP
POST/v1/inspection/machinery/:productId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/machinery/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"machinery": {
"purpose":"Vial",
"color": "yellow",
"use": "OFICIAL"
}
}'
POST/v1/inspection/machinery/:productId
const inspection = await autoinspector.inspections.machinery.update("60f021d61234567890000000", {
purpose:"Vial",
color: "yellow",
use: "OFICIAL"
});
POST/v1/inspection/machinery/:productId
$autoinspector = new AutoinspectorAutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->machinery->update("60f021d61234567890000000", [
"purpose" => "Vial",
"color" => "yellow",
"use" => "OFICIAL"
]);
{"message":"Machinery updated successfully!"}
good
object
Informacion del bien a inspeccionar
Retorna
Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.
- CURL
- NodeJS
- PHP
POST/v1/inspection/goods/:productId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/goods/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"goods": {
"serialNumber":"AZ234D",
"price": 123455
}
}'
POST/v1/inspection/goods/:productId
const inspection = await autoinspector.inspections.goods.update("60f021d61234567890000000", {
serialNumber:"AZ234D",
price: 123455
});
POST/v1/inspection/goods/:productId
$autoinspector = new AutoinspectorAutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspection = $autoinspector->inspections->goods->update("60f021d61234567890000000", [
"serialNumber" => "AZ234D",
"price" => 123455
]);
{"message":"Good updated successfully"}
cellphone
object
Información del celular a inspeccionar
Retorna
Si los parámetros enviados son validos, retorna un objeto con un mensaje avisando que todo salio OK.
- CURL
- NodeJS
- PHP
PUT/v1/inspection/cellphone/:productId
curl -X PUT 'https://api.autoinspector.ai/v1/inspection/cellphone/<PRODUCT_INSPECTION_ID>' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
--data '{
"cellphone": {
"price": 10000,
"serialNumber": "IMEI123"
}
}'
PUT/v1/inspection/cellphone/:productId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
await autoinspector.inspections.cellphone.update("60f021d61234567890000000", {
serialNumber: "IMEI123",
price: 10000
});
PUT/v1/inspection/cellphone/:productId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$moto = $autoinspector->inspections->cellphone->update("60f021d61234567890000000", [
"serialNumber" => "IMEI123",
"price" => 10000
]);
{"message":"Cellphone updated successfully!"}
Listar inspecciones
Retorna una lista de inspecciones previamente creadas. Las inspecciones son retornadas de manera cronológica.
Parámetros
page
string
DEFAULT
1
El número de pagina.
limite
string
DEFAULT
10
El límite de inspecciones a retornar por página. Por defecto es 10
status
enum
El estado actual de la inspección.
veredict
enum
El veredicto final de la inspección.
type
enum
El tipo de de inspección.
consumerIdentification
string
El numero de identificación (DNI) del usuario que realiza la inspección
plate
string
La matricula/patente del vehículo
templateId
string
El ID del template/plantilla
Retorna
Retorna una array de objetos inspección junto con la metadata de la paginación.
- CURL
- NodeJS
- PHP
GET/v1/inspection
curl -G \
'https://api.autoinspector.ai/v1/inspection' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-d page=1 \
-d limit=10 \
-d status=completed \
-d veredict=approved
GET/v1/inspection
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const inspections = await autoinspector.inspections.list({
limit:1,
page:1,
status:"completed",
veredict:"approved",
});
GET/v1/inspection
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$inspections = $autoinspector->inspections->list([
"limit" => 1,
"page" => 1,
"status" => "completed",
"veredict" => "approved"
]);
{
"inspections": [
{
"type": "created",
"_id": "62867bd460eab13d9bb95c63",
"variables": [
{
"name": "Puntaje",
"value": 10
},
{
"name": "Plan",
"value": "base"
}
],
"inspectionType": "car",
"name": "Template #1",
"parameters": {
"maxAttempts": 2
},
"createdAt": "2022-05-19T17:18:12.329Z",
"updatedAt": "2022-05-19T17:18:57.339Z",
"template": {
"_id": "62be865212ca0918bcabf2a5",
"name": "easy",
"type": "built-in"
},
"images": [
{
"validations": [
{
"run": true,
"required": false,
"validation": "date",
"_id": "62867bdf60eab13d9bb95c82"
},
{
"run": true,
"required": false,
"validation": "distance",
"_id": "62867bdf60eab13d9bb95c83"
},
{...}
],
"side": "front",
"identifier":"image_bf5dd369-3a82-4b0d-b8be-5186da9c07c5",
"__v": 0
}
],
"inputs": [
{
"identifier":"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
"options": [
{
"label": "POLIZA A - SEGURO TOTAL",
},
{
"label": "POLIZA B - SEGURO TOTAL"
}
],
"stages": ["create"],
"validationSchema": {
"required": true
},
"type": "select",
"label": "TIPO DE POLIZA",
"helperMessage": "Selecciona una opción",
}
],
"features": [
{
"_id": "62867bd460eab13d9bb95c65",
"feature": "damage_declaration"
}
],
"schema": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"required": true,
"label": "Idioma + País"
},
"delivery": {
"channel": {
"type": "string",
"required": true,
"label": "Canal"
},
"countryISO": {
"type": "string",
"required": false,
"label": "delivery.countryISO"
},
"destination": {
"type": "string",
"required": true,
"label": "Destino"
}
},
"inputs": {
"input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7": {
"label": "TIPO DE POLIZA",
"identifier": "input_bf5dd369-3a82-4b0d-b8be-5186da9c07c7",
...
}
}
}
}
}
],
"totalInspections": 8725,
"limit": 1,
"totalPages": 8725,
"page": 1,
"pagingCounter": 1,
"hasPrevPage": false,
"hasNextPage": true,
"prevPage": null,
"nextPage": 2
}
Reports
Para exportar la información de una inspección en un documento PDF, se puede generar un reporte de inspección
Este reporte cuenta con el detalle de la inspección: datos del cliente, información e imágenes de los productos inspeccionados, respuestas a los campos solicitados, validaciones y entre otras cosas
Para obtener este documento, la inspección debe estar finalizada y se debe crear una solicitud de reporte de inspección
La generación del reporte de inspección es un proceso asíncrono
POST /v1/inspection/:inspectionId/report/request
GET /v1/inspection/:inspectionId/report/request
GET /v1/inspection/:inspectionId/report/request/:reportRequestId
Parámetros
_id
string
El identificador de la solicitud de reporte de inspección.
status
enum
El estado de la solicitud de reporte de inspección.
callbackURL
string
El endpoint o URL donde se enviará una notificación con el reporte generado
result
object
El resultado de la solicitud de reporte de inspección. Esta definido cuando el estado es `completed`
processingAt
date
La fecha y hora en que se inició el proceso de generación del reporte de inspección
completedAt
date
La fecha y hora en que se completó el proceso de generación del reporte de inspección
failedAt
date
La fecha y hora en que se falló el proceso de generación del reporte de inspección
{
"_id": "670f126994829d0a16aae5ab",
"inspectionId": "66b3c87dbe66d8a15ffe9aba",
"companyId": "668c32ec9d1c20ea83699aa2",
"status": "completed",
"processingAt": "2024-10-16T01:10:01.646Z",
"completedAt": "2024-10-16T05:10:01.646Z",
"result": {
"url": "https://ai-inspections.s3.amazonaws.com/1657642319385-report.pdf"
}
}
Crear solicitud de reporte
La generación de un reporte de inspección de procesa de manera asíncrona. Puedes recibir una notificación en tiempo real con el reporte generado enviando un endpoint o url al parámetro callbackURL
Parámetros
callbackURL
string
El endpoint o URL donde se enviará una notificación con el reporte generado
Retorna
Retorna el id de la solicitud de reporte
- CURL
- NodeJS
- PHP
GET/v1/inspection/report/request
curl -X POST 'http://localhost:9001/api/v1/inspection/report/request' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"callbackURL": "https://webhook.site/bcd4342b-31f3-46e9-9b0a-201dca7502e4"
}'
GET/v1/inspection/report/request
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const reportRequest = await autoinspector.inspections.createReportRequest('66b3c87dbe66d8a15ffe9aba', {
callbackURL: 'https://webhook.site/bcd4342b-31f3-46e9-9b0a-201dca7502e4',
})
GET/v1/inspection/report/request
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$reportRequest = $this->autoinspector->inspections->createReportRequest(
'66b3c87dbe66d8a15ffe9aba',
[
'callbackURL' => 'https://webhook.site/bcd4342b-31f3-46e9-9b0a-201dca7502e4',
]
);
{
"_id": "62867bd460eab13d9bb95c63"
}
Obtener solicitud de reporte
Para saber el progreso o estado de la generación de una solicitud de reporte de inspección, puedes consumir este servicio
Cuando la solicitud de reporte se encuentre el estado completed
, el parámetro result
tendrá el atributo url
. Este atributo corresponde a la url del reporte de inspección a la cual puedes realizar el respectivo GET
para obtener el contenido del reporte (PDF)
El parámetro url
es un link dinámico y seguro que es valido por un tiempo de 15 minutos desde el momento en que se recibió el objeto solicitud de reporte de inspección
Para refrescar una url expirada, puedes consumir nuevamente este servicio
Parámetros
inspectionId
string
El ID de la inspección
reportRequestId
string
El ID de la solicitud de reporte de inspección
Retorna
Retorna el objeto solicitud de reporte de inspección
- CURL
- NodeJS
- PHP
GET/v1/inspection/:inspectionId/report/request/:reportRequestId
curl 'http://localhost:9001/api/v1/inspection/670f11e7685f0547ce71ff92/report/request/670f11e7685f0547ce71ff92' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>'
GET/v1/inspection/:inspectionId/report/request/:reportRequestId
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const reportRequest = await autoinspector.inspections.retrieveReportRequest('66b3c87dbe66d8a15ffe9aba', '670f12a95a0a5e7e6c528e2e')
GET/v1/inspection/:inspectionId/report/request/:reportRequestId
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$reportRequest = $this->autoinspector->inspections->retrieveReportRequest(
'66b3c87dbe66d8a15ffe9aba',
'670f12a95a0a5e7e6c528e2e'
);
{
"_id": "670f126994829d0a16aae5ab",
"inspectionId": "66b3c87dbe66d8a15ffe9aba",
"companyId": "668c32ec9d1c20ea83699aa2",
"status": "processing",
"processingAt": "2024-10-16T01:10:01.646Z"
}
Listar solicitudes de reporte
Te permite obtener la lista de solicitudes de reportes asociados a una inspección
Util si se desea verificar si ya existe un reporte de inspección procesado para evitar generar uno nuevo
Parámetros
inspectionId
string
El ID de la inspección
Retorna
Retorna una lista de objetos de solicitud de reporte de inspección
- CURL
- NodeJS
- PHP
GET/v1/inspection/:inspectionId/report/request
curl 'http://localhost:9001/api/v1/inspection/670f11e7685f0547ce71ff92/report/request' \
-H 'x-api-key: <YOUR_API_KEY_GOES_HERE>'
GET/v1/inspection/:inspectionId/report/request
const Autoinspector = require("autoinspector");
const autoinspector = new Autoinspector({ apikey: "YOUR_API_KEY" });
const reportRequests = await autoinspector.inspections.listReportRequests('66b3c87dbe66d8a15ffe9aba')
GET/v1/inspection/:inspectionId/report/request
$autoinspector = new \Autoinspector\AutoinspectorClient('YOU_API_KEY_GOES_HERE');
$reportRequests = $this->autoinspector->inspections->listReportRequests(
'66b3c87dbe66d8a15ffe9aba',
);
{
"reportRequests": [
{
"_id": "670f09136061ccb86228219d",
"inspectionId": "66b3c87dbe66d8a15ffe9aba",
"companyId": "668c32ec9d1c20ea83699aa2",
"status": "completed",
"processingAt": "2024-10-16T00:30:11.763Z",
"completedAt": "2024-10-16T00:30:15.895Z",
"result": {
"url": "https://ai-inspections.s3.amazonaws.com/1657642319385-report.pdf"
}
},
{
"_id": "670f0999b763706e71493232",
"inspectionId": "66b3c87dbe66d8a15ffe9aba",
"companyId": "668c32ec9d1c20ea83699aa2",
"status": "processing",
"processingAt": "2024-10-16T00:32:25.175Z"
}
]
}