{"openapi":"3.1.0","info":{"title":"NextsID API","description":"Plataforma de validación de seguridad para flotas de transporte de carga en Colombia y Ecuador. Las operaciones marcadas `x-superficie: integracion` son las que consume un tercero; las de `consola` existen para la consola web y no forman parte del contrato de integración.","version":"3.0.0"},"paths":{"/api/health/connectors":{"get":{"tags":["Salud"],"summary":"Estado de salud de cada conector","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"autenticado"}},"/api/v1/admin/reports/regenerate":{"post":{"tags":["Informes"],"summary":"Regenerar informes en lote","responses":{"202":{"description":"Aceptado: el trabajo quedó encolado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/api-keys":{"get":{"tags":["Llaves"],"summary":"Listar las llaves del inquilino, vigentes y revocadas, sin el secreto ni su hash, en un sobre `{ tenant_id, llaves }`","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin"},"post":{"tags":["Llaves"],"summary":"Emitir una llave de API; devuelve el secreto UNA sola vez, y la base sólo guarda su hash","responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/api-keys/{id}":{"delete":{"tags":["Llaves"],"summary":"Revocar una llave; corta en la petición siguiente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Hecho, sin cuerpo"}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/api-keys/{id}/rotate":{"post":{"tags":["Llaves"],"summary":"Rotar una llave con solape: ambas validan durante la transición y la sucesora usa otro usuario de servicio","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}},"204":{"description":"Hecho, sin cuerpo"}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin"}},"/api/v1/audit/logs":{"get":{"tags":["Auditoría"],"summary":"Consultar el registro de auditoría","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"autenticado"}},"/api/v1/audit/logs/export":{"get":{"tags":["Auditoría"],"summary":"Exportar el registro de auditoría en CSV","responses":{"200":{"description":"OK","content":{"text/csv":{"schema":{"type":"string","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/auth/login":{"post":{"tags":["Auth"],"summary":"Entrar con correo y contraseña; devuelve el token de acceso y el de refresco","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"x-superficie":"integracion","x-acceso":"publico"}},"/api/v1/auth/logout":{"post":{"tags":["Auth"],"summary":"Cerrar la sesión e invalidar los tokens de refresco vivos","responses":{"204":{"description":"Hecho, sin cuerpo"}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/auth/refresh":{"post":{"tags":["Auth"],"summary":"Renovar el token de acceso con el de refresco (rota el de refresco)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"x-acceso":"publico","x-superficie":"integracion"}},"/api/v1/auth/switch-tenant":{"post":{"tags":["Auth"],"summary":"Cambiar el inquilino activo de la sesión","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/background-checks":{"post":{"tags":["Contrato"],"summary":"Abrir un estudio por documento, con la forma del contrato de Truora (acepta form-urlencoded y JSON)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}},"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin|operador|seguridad","x-superficie":"integracion"}},"/api/v1/background-checks/{id}":{"get":{"tags":["Contrato"],"summary":"Estado y puntaje del estudio del contrato, agregado sobre sus miembros","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado","x-nextsid-response-extensions":{"details_url":{"description":"Extensión NextsID: ruta del detalle estructurado de hallazgos por dataset y fuente. No es un campo de la entidad de Truora; un consumidor escrito para Truora puede ignorarla.","nullable":false,"type":"string"},"review_reason":{"description":"Extensión NextsID: por qué el conjunto retuvo su veredicto (`informational_finding_requires_review`, `scoring_verdict_rejected` o `scoring_verdict_requires_review`); null cuando no se retuvo. No es un campo de la entidad de Truora.","nullable":true,"type":["string","null"]}}}},"/api/v1/background-checks/{id}/details":{"get":{"tags":["Contrato"],"summary":"Hallazgos por dataset y fuentes sin resultado verificable","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"}},"/api/v1/background-checks/{id}/pdf":{"get":{"tags":["Contrato"],"summary":"Descargar el informe del estudio en PDF (bytes, no enlace)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"}},"/api/v1/batches":{"post":{"tags":["Lotes"],"summary":"Abrir un lote de estudios sobre varias personas (exige consentimiento)","responses":{"202":{"description":"Aceptado: el trabajo quedó encolado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin|operador|seguridad"}},"/api/v1/batches/{id}":{"get":{"tags":["Lotes"],"summary":"Avance del lote","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/business-rules":{"get":{"tags":["Puntaje"],"summary":"Reglas de negocio del inquilino","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin|seguridad"}},"/api/v1/business-rules/{rule_id}":{"patch":{"tags":["Puntaje"],"summary":"Modificar una regla de negocio","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin"}},"/api/v1/checks":{"get":{"tags":["Estudios"],"summary":"Listar estudios del inquilino, filtrables por etapa","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"},"post":{"tags":["Estudios"],"summary":"Abrir un estudio sobre una persona o un vehículo (exige consentimiento)","responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin|operador|seguridad"}},"/api/v1/checks/pending-reviews":{"get":{"tags":["Puntaje"],"summary":"Estudios que esperan revisión manual","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin|seguridad"}},"/api/v1/checks/propietario":{"post":{"tags":["Estudios"],"summary":"Abrir el estudio de un propietario o tenedor con el de su vehículo (y el del dueño, si es otra persona), agrupados","responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin|operador|seguridad"}},"/api/v1/checks/{check_id}/review":{"post":{"tags":["Puntaje"],"summary":"Registrar la revisión manual de un estudio","parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"seguridad"}},"/api/v1/checks/{check_id}/score":{"get":{"tags":["Puntaje"],"summary":"Traer el puntaje y el veredicto de un estudio","parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"},"post":{"tags":["Puntaje"],"summary":"Puntuar un estudio ya consultado y emitir su veredicto","parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/checks/{id}":{"get":{"tags":["Estudios"],"summary":"Traer un estudio con sus hallazgos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/checks/{id}/agrupamiento":{"get":{"tags":["Estudios"],"summary":"El estudio del contrato al que pertenece este estudio, con sus hermanos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/checks/{id}/connector-results":{"get":{"tags":["Estudios"],"summary":"Resultado por fuente del estudio","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"}},"/api/v1/checks/{id}/enrichment":{"get":{"tags":["Estudios"],"summary":"Estado de enriquecimiento del estudio y qué acciones quedan","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"}},"/api/v1/checks/{id}/override":{"post":{"tags":["Estudios"],"summary":"Levantar una pre-validación caída, con motivo tipado. `admin` y `seguridad` sobre cualquier estudio del inquilino; `operador` sólo sobre los que él pidió y sólo con `falso_positivo` o `datos_desactualizados`","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin|seguridad|operador (sólo sus propios estudios)","x-superficie":"integracion"}},"/api/v1/checks/{id}/report":{"get":{"tags":["Informes"],"summary":"Enlace firmado al informe en PDF del estudio","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/checks/{id}/report/regenerate":{"post":{"tags":["Informes"],"summary":"Regenerar el informe de un estudio","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/connector-results/{id}/certificate":{"get":{"tags":["Certificados"],"summary":"Enlace firmado al certificado de una fuente (se genera al pedirlo)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/connector-results/{id}/certificate/download":{"get":{"tags":["Certificados"],"summary":"Descargar el certificado de una fuente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/ops/expiring-rechecks":{"get":{"tags":["Operación"],"summary":"Estudios cuya vigencia está por vencer","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/ops/recent-checks":{"get":{"tags":["Operación"],"summary":"Los estudios más recientes","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin"}},"/api/v1/ops/source-status":{"get":{"tags":["Operación"],"summary":"Estado de cada fuente","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin"}},"/api/v1/personas":{"get":{"tags":["Personas"],"summary":"Listar personas del inquilino, con filtros y paginación","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"},"post":{"tags":["Personas"],"summary":"Crear una persona (200 si ya existía con ese documento, 201 si es nueva)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}},"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin|operador|seguridad"}},"/api/v1/personas/lookup":{"get":{"tags":["Personas"],"summary":"Consultar fuentes: legacy abre un estudio interno; lookup_phase=independent|dependent sólo preconsulta sin escrituras","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"}},"/api/v1/personas/search":{"get":{"tags":["Personas"],"summary":"Buscar una persona por número de documento","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/personas/{id}":{"get":{"tags":["Personas"],"summary":"Traer una persona por su identificador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"},"patch":{"tags":["Personas"],"summary":"Corregir los datos de una persona","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin|operador|seguridad"}},"/api/v1/personas/{id}/reset-name":{"post":{"tags":["Personas"],"summary":"Devolver el nombre de la persona al que declaran las fuentes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin|operador|seguridad"}},"/api/v1/scoring-configs":{"post":{"tags":["Puntaje"],"summary":"Crear una configuración de puntaje para el inquilino","responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"}},"/api/v1/scoring-configs/active":{"get":{"tags":["Puntaje"],"summary":"La configuración de puntaje vigente","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin|seguridad","x-superficie":"consola"}},"/api/v1/users":{"get":{"tags":["Usuarios"],"summary":"Listar los usuarios del inquilino","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"consola"},"post":{"tags":["Usuarios"],"summary":"Crear un usuario","responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin (sesión de consola; no llave de API)","x-superficie":"consola"}},"/api/v1/users/me/password":{"post":{"tags":["Usuarios"],"summary":"Cambiar la propia contraseña (invalida los refrescos vivos)","responses":{"204":{"description":"Hecho, sin cuerpo"}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"consola"}},"/api/v1/users/{id}/role":{"patch":{"tags":["Usuarios"],"summary":"Cambiar el rol de un usuario","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin (sesión de consola; no llave de API)","x-superficie":"consola"}},"/api/v1/users/{id}/status":{"patch":{"tags":["Usuarios"],"summary":"Activar o desactivar un usuario","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"consola","x-acceso":"admin (sesión de consola; no llave de API)"}},"/api/v1/vehicles":{"get":{"tags":["Vehículos"],"summary":"Listar vehículos del inquilino, con paginación","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"},"post":{"tags":["Vehículos"],"summary":"Crear un vehículo por placa","responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin|operador|seguridad"}},"/api/v1/vehicles/lookup":{"get":{"tags":["Vehículos"],"summary":"Consultar una placa contra las fuentes en vivo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"autenticado","x-superficie":"integracion"}},"/api/v1/vehicles/{id}":{"get":{"tags":["Vehículos"],"summary":"Traer un vehículo por su identificador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"autenticado"}},"/api/v1/webhooks/config":{"get":{"tags":["Avisos"],"summary":"Ver el aviso configurado para el inquilino (sin el secreto)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"integracion"},"put":{"tags":["Avisos"],"summary":"Fijar el URL del aviso; devuelve un secreto de firma nuevo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"integracion"},"delete":{"tags":["Avisos"],"summary":"Quitar el aviso del inquilino","responses":{"204":{"description":"Hecho, sin cuerpo"}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"integracion"}},"/api/v1/webhooks/config/status":{"patch":{"tags":["Avisos"],"summary":"Activar o desactivar la entrega de avisos del inquilino","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-superficie":"integracion","x-acceso":"admin"}},"/api/v1/webhooks/test":{"post":{"tags":["Avisos"],"summary":"Mandar un evento de prueba al receptor y devolver el desenlace","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"security":[{"bearerAuth":[]}],"x-acceso":"admin","x-superficie":"integracion"}},"/health/live":{"get":{"tags":["Salud"],"summary":"Sonda de vida del proceso","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"x-acceso":"publico","x-superficie":"salud"}},"/health/ready":{"get":{"tags":["Salud"],"summary":"Sonda de disponibilidad: base, ocupación del techo y listas","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Envoltura declarada; los campos de adentro todavía no. Este contrato fija ruta, método, credencial, códigos de éxito, tipo de contenido y forma externa del cuerpo."}}}}},"x-superficie":"salud","x-acceso":"publico"}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Token de acceso de POST /api/v1/auth/login. Vive 900 s y se renueva con POST /api/v1/auth/refresh."}}}}