kAI Vision Pro — Documentación
Last Update:08/05/2025
💠 Descripción general
Descripción
La autenticación de cada cliente se gestiona mediante un token JWT (JSON Web Token). Dicho token encapsula elprocessId y el secretTokenasignados al cliente, además de otros datos de autenticación necesarios para la operación.
Autenticación
La autenticación se gestiona mediante un token JWT (JSON Web Token), el cual debe ser suministrado dentro del encabezado HTTP Authorization en cada solicitud. El formato especificado para dicho encabezado es:
Authorization: Bearer <token>El servidor, como parte del proceso de autenticación, valida los siguientes campos extraídos del token:
idCompany(identificador de la empresa)
name(nombre identificativo)
processId
secretToken
La validación es considerada exitosa, y por ende la autenticación concedida, únicamente si todos estos valores coinciden rigurosamente con los datos correspondientes de la empresa.
Endpoint: Generar token
POST https://us-central1-kai-project-26879.cloudfunctions.net/createCompanyToken
Body:
{
"idCompany": "empresa123",
"name": "MiEmpresa",
"processId": "proceso_1",
"secretToken": "supersecreto123"
}Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5c..."
}
Endpoint: Enviar imagen a validar
POST https://us-central1-kai-project-26879.cloudfunctions.net/kAIVisionPro
Headers:
Authorization: Bearer <token>
Content-Type: application/jsonBody:
{
"imageBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." // Tu imagen en base 64
}Response:
{
"result": {
"tag": "true",
"probability": 0.9823456,
"result": true
}
}Importante:
- El tamaño máximo de la imagen es 4MB.
- La imagen debe ser codificada en base64.
♦️ ERRORES
Estructura general
La API siempre responde con objetos JSON estandarizados cuando ocurre un error.
{
"code": 400,
"error": "Mensaje general del error",
"error_description": "Descripción más detallada y específica del problema"
}| Campo | Descripción |
code | Código HTTP del error (ej. 400, 403, 500, etc.) |
error | Mensaje corto y general del error |
error_description | Descripción detallada del error |
El status code será consistente con el tipo de error y la respuesta incluirá una descripción detallada en error_description.
Tipos de errores comunes
| Código | Descripción | Ejemplo |
| 400 | Bad Request (Solicitud inválida) | Faltan campos obligatorios o el formato del body es incorrecto. |
| 401 | Unauthorized (No autorizado) | El token es inválido, expiró o los datos del token no coinciden con la empresa. |
| 400. | Bad Request | La imagen enviada supera el tamaño máximo permitido (4MB). |
| 500 | Internal Server Error | Error inesperado en el servidor. |
Errores posibles en autenticación
| Código | error | error_description |
| 401 | Falta o formato inválido en Authorization. | El header Authorization es obligatorio y debe iniciar con 'Bearer '. |
| 401 | Token inválido o modificado. | El Token proporcionado no pudo ser verificado o ha sido alterado. |
| 400 | El token enviado está mal formateado. | Falta el parámetro 'id' en el token. |
| 400 | El token enviado está mal formateado. | Falta el parámetro 'name' en el token. |
| 400 | El token enviado está mal formateado. | Falta el parámetro 'processId' en el token. |
| 400 | El token enviado está mal formateado. | Falta el parámetro 'secretToken' en el token. |
| 403 | El processId no está permitido o no existe. | El processId no está asignado a la empresa o fue eliminado. |
| 404 | Empresa no encontrada. | No se encontró la empresa con el ID proporcionado. |
| 403 | Datos del token no coinciden con la empresa. | El parámetro 'name' del token no coincide con el valor registrado. |
| 403 | El secretToken no es válido. | El parámetro 'secretToken' del token no coincide con el valor registrado. |
Ejemplos de respuestas de error
🟥 Error 400: Campos faltantes
{
"code": 400,
"error": "Falta el campo imageBase64 en el body.",
"error_description": "El cliente no envió el campo imageBase64 requerido."
}🟦 Error 404: Empresa no encontrada
{
"code": 404,
"error": "Empresa no encontrada.",
"error_description": "No se encontró la empresa con el ID empresa123."
}🟧 Error 401: Token inválido
{
"code": 401,
"error": "Token inválido o modificado.",
"error_description": "El Token proporcionado no pudo ser verificado o ha sido alterado."
}🟨 Error 403 — processId no permitido
{
"code": 403,
"error": "El processId no está permitido o no existe.",
"error_description": "El processId no está asignado a la empresa o fue eliminado."
}🟦 Error 400: Archivo demasiado grande
{
"code": 400,
"error": "Archivo demasiado grande.",
"error_description": "El archivo excede el tamaño máximo permitido de 4MB."
}🟥 Error 500: Error interno del Modelo
{
"code": 500,
"error": "Error al guardar el registro de la petición.",
"error_description": "No se pudo registrar el uso de la API."
}