Saltar al contenido principal

Catálogos

Endpoints de solo lectura que exponen los catálogos de configuración de tu compañía y devuelven los IDs reales que el alta de tareas necesita. Antes de crear una tarea, tu integración consulta estos catálogos para resolver qué procedencia, producto, cobertura, prestación, causa, geografía, finalización, formulario y campos dinámicos puede enviar.

Cada catálogo devuelve el ID real junto al nombre humano, así podés referenciar cada entrada con exactitud al armar el cuerpo de una tarea.

Requisitos previos

Todos los endpoints requieren un token JWT válido, una clave de API y el encabezado tenant. Consultá Autenticación.

Patrón de cascada

Varios catálogos son jerárquicos: un catálogo hijo se filtra por el ID de su padre, pasado en la ruta. Por ejemplo, para listar los productos de una procedencia llamás a /catalogs/origins/{proid}/products; para listar ciudades recorrés país → departamento → ciudad → zona. Listá siempre un nivel para descubrir los IDs que vas a usar en el siguiente nivel — no hay búsqueda por nombre.

Un padre inexistente devuelve lista vacía

Un catálogo hijo llamado con un ID de padre que no existe responde 200 con data vacío, no 404. El endpoint contesta "no hay hijos para ese padre" sin verificar el padre por separado. Tomá la lista vacía como "sin resultados"; si necesitás distinguir los dos casos, validá antes el ID del padre contra su propio catálogo.

Notas comunes
  • Los IDs son strings opacos (BigInt) — nunca los interpretes como números. Devolvelos exactamente como los recibís.
  • Solo registros activos. Cada catálogo devuelve las entradas activas; las inactivas nunca se listan.
  • Sin paginación. Los catálogos son chicos — se devuelve la lista plana completa. El filtro de consulta name acota los resultados por coincidencia parcial sin distinguir mayúsculas.
  • Límite de solicitudes: todos los endpoints de catálogos comparten un presupuesto de 60 solicitudes/min (ventana deslizante).
  • Envoltura de respuesta: { success, data, meta }, donde meta.count es la cantidad de filas.

Geográficos​

Los catálogos geográficos forman una cascada estricta de cuatro niveles: País → Departamento → Ciudad → Zona. Cada nivel se filtra por los IDs de los niveles superiores, todos pasados en la ruta.

Países​

GET/apidev/v1/catalogs/countries
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del país. Omitir para listar todo.

Campos de la respuesta​

CampoTipoDescripción
paiidstringID del país (usalo en el alta de tareas).
namestringNombre del país.
gmtnumberDesfase de zona horaria (horas enteras).
curl -s "https://$TENANT/apidev/v1/catalogs/countries" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "paiid": "1", "name": "Uruguay", "gmt": -3 },
{ "paiid": "2", "name": "Argentina", "gmt": -3 }
],
"meta": { "count": 2 }
}

Departamentos de un país​

GET/apidev/v1/catalogs/countries/{paiid}/departments
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
paiidstringSíID del país (padre).

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del departamento.

Campos de la respuesta​

CampoTipoDescripción
paiidstringID del país (padre).
paideplinstringID del departamento (usalo en el alta de tareas).
namestringNombre del departamento.
curl -s "https://$TENANT/apidev/v1/catalogs/countries/1/departments" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "paiid": "1", "paideplin": "4", "name": "Montevideo" },
{ "paiid": "1", "paideplin": "5", "name": "Canelones" }
],
"meta": { "count": 2 }
}

Ciudades de un departamento​

GET/apidev/v1/catalogs/countries/{paiid}/departments/{paideplin}/cities
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
paiidstringSíID del país.
paideplinstringSíID del departamento.

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la ciudad.

Campos de la respuesta​

CampoTipoDescripción
paiidstringID del país.
paideplinstringID del departamento.
paidepciulinstringID de la ciudad (usalo en el alta de tareas).
namestringNombre de la ciudad.
curl -s "https://$TENANT/apidev/v1/catalogs/countries/1/departments/4/cities?name=mont" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "paiid": "1", "paideplin": "4", "paidepciulin": "21", "name": "Montevideo" }
],
"meta": { "count": 1 }
}

Zonas de una ciudad​

GET/apidev/v1/catalogs/countries/{paiid}/departments/{paideplin}/cities/{paidepciulin}/zones
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
paiidstringSíID del país.
paideplinstringSíID del departamento.
paidepciulinstringSíID de la ciudad.

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la zona.

Campos de la respuesta​

CampoTipoDescripción
paiidstringID del país.
paideplinstringID del departamento.
paidepciulinstringID de la ciudad.
paidepciuzonlinstringID de la zona (usalo en el alta de tareas).
namestringNombre de la zona.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "paiid": "1", "paideplin": "4", "paidepciulin": "21", "paidepciuzonlin": "7", "name": "Centro" }
],
"meta": { "count": 1 }
}

Lugares especiales​

Puntos de interés definidos para tu compañía. Devuelve solo los lugares que el usuario de la integración tiene permitido ver.

GET/apidev/v1/catalogs/special-places
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del lugar.

Campos de la respuesta​

CampoTipoDescripción
lugespidstringID del lugar especial.
namestringNombre del lugar.
latitudestring | nullLatitud (string decimal en crudo).
longitudestring | nullLongitud (string decimal en crudo).

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "lugespid": "31", "name": "Central Warehouse", "latitude": "-34.8721", "longitude": "-56.1234" }
],
"meta": { "count": 1 }
}

Tipos de lugar especial​

GET/apidev/v1/catalogs/special-place-types
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del tipo.

Campos de la respuesta​

CampoTipoDescripción
tiplugidstringID del tipo de lugar especial.
namestringNombre del tipo.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "tiplugid": "1", "name": "Warehouse" },
{ "tiplugid": "2", "name": "Branch office" }
],
"meta": { "count": 2 }
}

Dominio​

Catálogos de clasificación que describen una tarea: de dónde viene, qué producto y cobertura aplican, qué prestación se solicita y su causa/subcausa.

Procedencias​

Procedencias — la fuente que genera una tarea.

GET/apidev/v1/catalogs/origins
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la procedencia.

Campos de la respuesta​

CampoTipoDescripción
proidstringID de la procedencia (usalo en el alta de tareas).
namestringNombre de la procedencia.
statestringSiempre "A" (activo).
curl -s "https://$TENANT/apidev/v1/catalogs/origins" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "proid": "12", "name": "Seguros ACME", "state": "A" }
],
"meta": { "count": 1 }
}

Productos de una procedencia​

GET/apidev/v1/catalogs/origins/{proid}/products
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
proidstringSíID de la procedencia (padre).

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del producto.

Campos de la respuesta​

CampoTipoDescripción
proidstringID de la procedencia (padre).
protipclilinstringID del producto (usalo en el alta de tareas).
namestringNombre del producto.
curl -s "https://$TENANT/apidev/v1/catalogs/origins/12/products?name=gru" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "proid": "12", "protipclilin": "3", "name": "Grúa Liviana" },
{ "proid": "12", "protipclilin": "7", "name": "Grúa Pesada" }
],
"meta": { "count": 2 }
}

Coberturas de un producto​

GET/apidev/v1/catalogs/origins/{proid}/products/{protipclilin}/coverages
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
proidstringSíID de la procedencia.
protipclilinstringSíID del producto.

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la cobertura.

Campos de la respuesta​

CampoTipoDescripción
proidstringID de la procedencia.
protipclilinstringID del producto.
procoblinstringID de la cobertura (usalo en el alta de tareas).
namestringNombre de la cobertura.
monthly_quotanumberCupo mensual configurado.
yearly_quotanumberCupo anual configurado.
quota_controlstring | nullFlag/código de control de cupo.

Respuesta de ejemplo​

{
"success": true,
"data": [
{
"proid": "12",
"protipclilin": "7",
"procoblin": "5",
"name": "Cobertura Premium",
"monthly_quota": 4,
"yearly_quota": 24,
"quota_control": "S"
}
],
"meta": { "count": 1 }
}

Prestaciones​

Prestaciones — el tipo de servicio solicitado para una tarea.

GET/apidev/v1/catalogs/services
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la prestación.

Campos de la respuesta​

CampoTipoDescripción
prestaidstringID de la prestación (usalo en el alta de tareas).
namestringNombre de la prestación.
requires_destinationbooleanSi exige una causa/subcausa de destino.
statestringSiempre "A" (activo).

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "prestaid": "20", "name": "Asistencia en ruta", "requires_destination": false, "state": "A" }
],
"meta": { "count": 1 }
}

Causas de una prestación​

Devuelve solo las causas asignadas a la prestación — no el catálogo general de causas. Esto es lo que el alta de tareas espera.

GET/apidev/v1/catalogs/services/{prestaid}/causes
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
prestaidstringSíID de la prestación (padre).

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la causa.

Campos de la respuesta​

CampoTipoDescripción
prestaidstringID de la prestación (padre).
cauidstringID de la causa (usalo en el alta de tareas).
namestringNombre de la causa.
assigned_subcausesnumberCuántas subcausas tiene asignadas bajo esta prestación.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "prestaid": "20", "cauid": "8", "name": "Neumático pinchado", "assigned_subcauses": 3 }
],
"meta": { "count": 1 }
}
Asignadas vs generales

Listar las causas por prestación garantiza que solo obtengas las causas que la prestación realmente acepta. Una causa que existe en el catálogo general pero no está asignada a la prestación sería rechazada al crear la tarea.


Subcausas de una causa​

GET/apidev/v1/catalogs/causes/{cauid}/subcauses
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
cauidstringSíID de la causa (padre).

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la subcausa.

Campos de la respuesta​

CampoTipoDescripción
cauidstringID de la causa (padre).
causubcaulinstringID de la subcausa (usalo en el alta de tareas).
namestringNombre de la subcausa.
priority_namestring | nullNombre de la prioridad asociada (puede ser null).

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "cauid": "8", "causubcaulin": "15", "name": "Delantero izquierdo", "priority_name": "Alta" }
],
"meta": { "count": 1 }
}

Motivos​

Motivos de servicio — usados en el modo simple del alta de tareas.

GET/apidev/v1/catalogs/reasons
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del motivo.

Campos de la respuesta​

CampoTipoDescripción
motidstringID del motivo (usalo en el alta de tareas).
namestringNombre del motivo.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "motid": "3", "name": "Avería del vehículo" }
],
"meta": { "count": 1 }
}

Prioridades​

GET/apidev/v1/catalogs/priorities
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la prioridad.

Campos de la respuesta​

CampoTipoDescripción
priidstringID de la prioridad.
namestringNombre de la prioridad.
valuenumberValor numérico de orden (típicamente 1–3).

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "priid": "1", "name": "Alta", "value": 1 },
{ "priid": "2", "name": "Media", "value": 2 }
],
"meta": { "count": 2 }
}

Estados de tarea​

GET/apidev/v1/catalogs/task-statuses
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del estado.

Campos de la respuesta​

CampoTipoDescripción
idstringID del estado.
codestringCódigo del estado (SA, ASI, ACE, INI, USU, FIN, CAN).
namestringEtiqueta humana del estado.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "estid": "1", "code": "SA", "name": "Sin asignar" },
{ "estid": "6", "code": "FIN", "name": "Finalizada" }
],
"meta": { "count": 2 }
}

Turnos​

GET/apidev/v1/catalogs/shifts
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del turno.

Campos de la respuesta​

CampoTipoDescripción
turidstringID del turno (usalo en la reserva de la tarea).
namestringNombre del turno.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "turid": "1", "name": "Mañana" },
{ "turid": "2", "name": "Noche" }
],
"meta": { "count": 2 }
}

Recursos​

Catálogos operativos: finalizaciones, formularios, listas de formulario, tipos de vehículo y los dos catálogos sensibles de flota (prestadores y dispositivos) que requieren un permiso dedicado.

Finalizaciones​

GET/apidev/v1/catalogs/end-reasons
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la finalización.

Campos de la respuesta​

CampoTipoDescripción
finseridstringID de la finalización.
namestringNombre de la finalización.
successfulbooleanSi marca la tarea como exitosa.
pendingbooleanSi deja la tarea pendiente.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "finserid": "3", "name": "Resuelto en sitio", "successful": true, "pending": false }
],
"meta": { "count": 1 }
}

Finalizaciones por productos​

Resolvé las finalizaciones de varios productos en una sola llamada. El cuerpo de la solicitud es un filtro (es de solo lectura y cacheable, no una mutación), por eso este endpoint usa POST.

POST/apidev/v1/catalogs/products/end-reasons
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Cuerpo de la solicitud​

CampoTipoRequeridoDescripción
productsarraySíDe 1 a 50 pares de producto.
products[].proidstringSíID de la procedencia.
products[].protipclilinstringSíID del producto.

Campos de la respuesta​

data es un array agrupado por producto. Si un producto no tiene finalizaciones configuradas, cae a todas las activas.

CampoTipoDescripción
proidstringID de la procedencia del producto pedido.
protipclilinstringID del producto pedido.
end_reasons[].finseridstringID de la finalización.
end_reasons[].namestringNombre de la finalización.
curl -s -X POST "https://$TENANT/apidev/v1/catalogs/products/end-reasons" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{ "products": [ { "proid": "12", "protipclilin": "7" } ] }'

Respuesta de ejemplo​

{
"success": true,
"data": [
{
"proid": "12",
"protipclilin": "7",
"end_reasons": [
{ "finserid": "3", "name": "Resuelto en sitio" },
{ "finserid": "8", "name": "Trasladado a taller" }
]
}
],
"meta": { "count": 1 }
}

Formularios​

GET/apidev/v1/catalogs/forms
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del formulario.

Campos de la respuesta​

CampoTipoDescripción
formidstringID del formulario.
namestringNombre del formulario.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "formid": "9", "name": "Reporte de daños" }
],
"meta": { "count": 1 }
}

Formularios de un producto​

Formularios habilitados para un producto específico.

GET/apidev/v1/catalogs/products/{proid}/{protipclilin}/forms
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
proidstringSíID de la procedencia.
protipclilinstringSíID del producto.

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del formulario.

Campos de la respuesta​

CampoTipoDescripción
formidstringID del formulario.
namestringNombre del formulario.
requiredbooleanSi el formulario es obligatorio para el producto.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "formid": "9", "name": "Reporte de daños", "required": true }
],
"meta": { "count": 1 }
}

Listas de formulario​

Listas de opciones de formulario/OAV. Cada lista se referencia por el list_id de un campo dinámico.

GET/apidev/v1/catalogs/form-lists
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre de la lista.

Campos de la respuesta​

CampoTipoDescripción
forlisidstringID de la lista (referenciado por oav-fields.list_id).
namestringNombre de la lista.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "forlisid": "5", "name": "Colores de vehículo" }
],
"meta": { "count": 1 }
}

Tipos de vehículo​

GET/apidev/v1/catalogs/vehicle-types
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del tipo de vehículo.

Campos de la respuesta​

CampoTipoDescripción
tipvehidstringID del tipo de vehículo (usalo en el alta de tareas).
namestringNombre del tipo de vehículo.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "tipvehid": "1", "name": "Auto" },
{ "tipvehid": "2", "name": "Moto" }
],
"meta": { "count": 2 }
}

Prestadores​

Catálogo sensible

Los prestadores exponen vínculos persona/flota con la compañía. Este endpoint requiere el permiso dedicado APICLI_FLEET_DEVICES_READ, no APICLI_CATALOGS_READ.

GET/apidev/v1/catalogs/providers
PermisoAPICLI_FLEET_DEVICES_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del prestador.

Campos de la respuesta​

CampoTipoDescripción
preidstringID del prestador (usalo en la reserva de la tarea).
namestringNombre del prestador.

Respuesta de ejemplo​

{
"success": true,
"data": [
{ "preid": "30", "name": "Grúas Región Norte" }
],
"meta": { "count": 1 }
}

Dispositivos​

Catálogo sensible

Los dispositivos exponen vínculos de flota con la compañía. Este endpoint requiere APICLI_FLEET_DEVICES_READ. Devuelve solo los dispositivos que el usuario de la integración tiene permitido ver.

GET/apidev/v1/catalogs/devices
PermisoAPICLI_FLEET_DEVICES_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de consulta​

ParámetroTipoRequeridoDescripción
namestringNoCoincidencia parcial, sin distinguir mayúsculas, sobre el nombre del dispositivo.

Campos de la respuesta​

CampoTipoDescripción
vehidstringID del dispositivo (usalo en la reserva de la tarea).
namestringNombre del dispositivo.
platestring | nullPatente / alias.
vehicle_typestring | nullNombre del tipo de vehículo.
providerstring | nullNombre del prestador.

Respuesta de ejemplo​

{
"success": true,
"data": [
{
"vehid": "104820579301",
"name": "Movil 10",
"plate": "ABC123",
"vehicle_type": "Grúa",
"provider": "Grúas Región Norte"
}
],
"meta": { "count": 1 }
}

OAV​

Los OAV (campos dinámicos) definen los campos personalizados que un producto requiere. Es el catálogo clave para armar el cuerpo de una tarea: cruzalo contra tus dynamic_fields para evitar los errores OAV_REQUIRED_MISSING, OAV_TYPE_MISMATCH y OAV_LIST_VALUE_INVALID al crear la tarea.

Campos dinámicos de un producto​

Devuelve cada campo dinámico del producto con su tipo, si es obligatorio y —cuando el campo es una lista— sus opciones válidas resueltas en la misma respuesta.

GET/apidev/v1/catalogs/products/{proid}/{protipclilin}/oav-fields
PermisoAPICLI_CATALOGS_READ
Límite de solicitudes60 solicitudes/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
proidstringSíID de la procedencia.
protipclilinstringSíID del producto.

Campos de la respuesta​

CampoTipoDescripción
item_idstringID del campo dinámico.
labelstringNombre humano del campo.
typestringTEXT, NUMBER, BOOLEAN, DATE, DATETIME o LISTA.
requiredbooleanSi el campo es obligatorio para crear la tarea.
readonlybooleanFlag informativo de solo lectura.
ordernumberOrden de presentación.
list_idstring | nullCuando type es LISTA, el ID de la lista de opciones.
list_optionsarrayOpciones válidas cuando type es LISTA; vacío en otros casos. Cada una: { value, label }.
curl -s "https://$TENANT/apidev/v1/catalogs/products/12/7/oav-fields" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Respuesta de ejemplo​

{
"success": true,
"data": [
{
"item_id": "42",
"label": "Póliza",
"type": "TEXT",
"required": true,
"readonly": false,
"order": 1,
"list_id": null,
"list_options": []
},
{
"item_id": "55",
"label": "Tipo de daño",
"type": "LISTA",
"required": true,
"readonly": false,
"order": 2,
"list_id": "9",
"list_options": [
{ "value": "MEC", "label": "Mecánico" },
{ "value": "ELE", "label": "Eléctrico" }
]
}
],
"meta": { "count": 2 }
}
Las opciones de lista vienen resueltas

Cuando el type de un campo es LISTA, sus opciones válidas ya vienen anidadas bajo list_options. No necesitás llamar a Listas de formulario por separado para validar un campo dinámico — usá list_options[].value como el valor aceptado.


Errores​

Todos los endpoints de catálogos usan la envoltura de error moderna: { success: false, error: { code, message, hint } }. Consultá Manejo de errores para la referencia completa.

CódigoHTTPDescripción
INVALID_ID400Un ID de la ruta no es un identificador válido.
INVALID_BODY400products[] está vacío, ausente o supera los 50 (en Finalizaciones por productos).
UNAUTHORIZED401tenant / Authorization / X-API-Key ausente, inválido o expirado.
FORBIDDEN403El token no tiene APICLI_CATALOGS_READ (o APICLI_FLEET_DEVICES_READ en prestadores/dispositivos).
NOT_FOUND404El padre de una cascada no existe en tu compañía.
RATE_LIMITED429Se superaron 60 solicitudes/min.
INTERNAL_ERROR500Error inesperado del servidor.