{
  "info": {
    "name": "PlacApi API",
    "_postman_id": "placapi-collection",
    "description": "Consulta de información vehicular de Colombia (RUNT, SOAT, tecnomecánica, SIMIT, impuestos, FASECOLDA, pico y placa) y licencias de conducción. Configura la variable `apiKey` con tu llave pk_live_… (créala en /integracion).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "x-api-key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://placapi.com/api",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "pk_live_reemplaza_por_tu_llave",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Consulta full (todo en uno)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/consulta-full",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "consulta-full"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"primerApellido\": \"PÉREZ\",\n  \"ciudad\": \"Bogotá\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Todo el conjunto de fuentes en UNA sola llamada: bundle vehicular completo (RUNT, SOAT, tecnomecánica, antecedentes, multas SIMIT, impuesto, avalúo FASECOLDA y pico y placa) MÁS la licencia de conducción del propietario (por la misma cédula). Con `ciudad` o `lat`/`lng` (geolocaliza la ciudad; manda sobre `ciudad`) el pico y placa se filtra a esa ciudad y agrega `picoYPlaca.ubicacion`; sin ubicación trae todas las ciudades monitoreadas. El tipo de vehículo se detecta solo desde la clase RUNT; el dígito de placa evaluado lo fija cada ciudad y viene en `digitoPlaca` (por defecto primero para moto, último para carro). Cuesta 2 créditos.\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC; PAS se normaliza a PA y P.P.T./P.P. a PPT). Con NIT no se consulta licencia: `licencia` viene null.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `primerApellido` (string, opcional). Primer apellido del propietario. Solo afecta al bloque `licencia`: la fuente oficial lo exige desde el 6-ago-2026 y sin él ese bloque llega con `code: \"apellido_requerido\"`. El bundle vehicular no lo necesita y se entrega igual. Alias aceptado: `apellido`.\n- `ciudad` (string, opcional). Filtra el pico y placa a esta ciudad (ej. Bogotá).\n- `lat` (number, opcional). Latitud; requiere lng. Geolocaliza la ciudad del pico y placa y manda sobre `ciudad`.\n- `lng` (number, opcional). Longitud; requiere lat.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/consulta-full",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "consulta-full"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"primerApellido\": \"PÉREZ\",\n  \"ciudad\": \"Bogotá\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Todo el conjunto de fuentes en UNA sola llamada: bundle vehicular completo (RUNT, SOAT, tecnomecánica, antecedentes, multas SIMIT, impuesto, avalúo FASECOLDA y pico y placa) MÁS la licencia de conducción del propietario (por la misma cédula). Con `ciudad` o `lat`/`lng` (geolocaliza la ciudad; manda sobre `ciudad`) el pico y placa se filtra a esa ciudad y agrega `picoYPlaca.ubicacion`; sin ubicación trae todas las ciudades monitoreadas. El tipo de vehículo se detecta solo desde la clase RUNT; el dígito de placa evaluado lo fija cada ciudad y viene en `digitoPlaca` (por defecto primero para moto, último para carro). Cuesta 2 créditos.\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC; PAS se normaliza a PA y P.P.T./P.P. a PPT). Con NIT no se consulta licencia: `licencia` viene null.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `primerApellido` (string, opcional). Primer apellido del propietario. Solo afecta al bloque `licencia`: la fuente oficial lo exige desde el 6-ago-2026 y sin él ese bloque llega con `code: \"apellido_requerido\"`. El bundle vehicular no lo necesita y se entrega igual. Alias aceptado: `apellido`.\n- `ciudad` (string, opcional). Filtra el pico y placa a esta ciudad (ej. Bogotá).\n- `lat` (number, opcional). Latitud; requiere lng. Geolocaliza la ciudad del pico y placa y manda sobre `ciudad`.\n- `lng` (number, opcional). Longitud; requiere lat.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"input\": {\n    \"placa\": \"ABC123\",\n    \"docType\": \"CC\",\n    \"docNumber\": \"1020304050\"\n  },\n  \"mode\": \"live\",\n  \"generatedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"vehicle\": {\n    \"source\": \"vehiculo\",\n    \"status\": \"ok\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": {\n      \"placa\": \"ABC123\",\n      \"marca\": \"MAZDA\",\n      \"linea\": \"CX-30\",\n      \"modelo\": 2023,\n      \"cilindraje\": 2000,\n      \"combustible\": \"GASOLINA\",\n      \"servicio\": \"Particular\",\n      \"carroceria\": \"CAMIONETA\",\n      \"color\": \"ROJO\",\n      \"motor\": \"MTR0000001\",\n      \"chasis\": \"9GAJC6915FB040270\",\n      \"vin\": \"9GAJC6915FB040270\",\n      \"fechaMatricula\": \"15/03/2023\",\n      \"organismoTransito\": \"SECRETARIA DISTRITAL DE MOVILIDAD DE BOGOTA\",\n      \"estado\": \"activo\",\n      \"clase\": \"CAMIONETA\"\n    }\n  },\n  \"soat\": {\n    \"source\": \"soat\",\n    \"status\": \"ok\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": {\n      \"vigente\": true,\n      \"aseguradora\": \"SBS SEGUROS\",\n      \"poliza\": \"1508006948335000\",\n      \"fechaExpedicion\": \"20/09/2025\",\n      \"fechaVencimiento\": \"19/09/2026\",\n      \"diasParaVencer\": 69\n    }\n  },\n  \"rtm\": {\n    \"source\": \"rtm\",\n    \"status\": \"ok\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": {\n      \"vigente\": true,\n      \"exento\": false,\n      \"fechaPrimeraRevision\": null,\n      \"cda\": \"CDA FONTIBON S.A.S\",\n      \"fechaExpedicion\": \"22/09/2025\",\n      \"fechaVencimiento\": \"22/09/2026\",\n      \"diasParaVencer\": 72,\n      \"certificadoNumero\": \"189733821\"\n    }\n  },\n  \"antecedentes\": {\n    \"source\": \"antecedentes\",\n    \"status\": \"ok\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": {\n      \"prendas\": [\n        {\n          \"acreedor\": \"RCI COLOMBIA S.A. COMPAÑIA DE FINANCIAMIENTO\",\n          \"docAcreedor\": \"900977629\",\n          \"tipoDocAcreedor\": \"NIT\",\n          \"fechaInscripcion\": \"2021-09-30\",\n          \"confecamaras\": true\n        }\n      ],\n      \"embargos\": [],\n      \"historicoPropietarios\": 1\n    }\n  },\n  \"simit\": {\n    \"source\": \"multas\",\n    \"status\": \"ok\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": {\n      \"totalDeuda\": 0,\n      \"totalMultas\": 0,\n      \"multas\": [],\n      \"acuerdosPago\": 0\n    }\n  },\n  \"impuestos\": {\n    \"source\": \"Bogotá D.C.\",\n    \"status\": \"info\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": null,\n    \"portalUrl\": \"https://www.haciendabogota.gov.co/es/sdh/pagos-impuesto-vehiculos\",\n    \"error\": \"Tu vehículo está matriculado en Bogotá D.C. Paga tu impuesto en el portal oficial del departamento.\"\n  },\n  \"fasecolda\": {\n    \"source\": \"avaluo\",\n    \"status\": \"info\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"data\": {\n      \"codigo\": \"08053096\",\n      \"marca\": \"MAZDA\",\n      \"linea\": \"CX-30\",\n      \"modelo\": 2023,\n      \"valorComercial\": 98000000,\n      \"rangoMercado\": {\n        \"min\": 92000000,\n        \"max\": 104000000\n      },\n      \"clase\": \"CAMIONETA\"\n    }\n  },\n  \"picoYPlaca\": {\n    \"source\": \"pico-y-placa\",\n    \"status\": \"ok\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n    \"mode\": \"live\",\n    \"ubicacion\": {\n      \"matched\": true,\n      \"source\": \"ciudad\",\n      \"consulta\": {\n        \"ciudad\": \"Bogotá\"\n      },\n      \"ciudad\": \"Bogotá\",\n      \"departamento\": \"Bogotá D.C.\"\n    },\n    \"data\": [\n      {\n        \"ciudad\": \"Bogotá\",\n        \"departamento\": \"Bogotá D.C.\",\n        \"tipoVehiculo\": \"carro\",\n        \"digitoPlaca\": \"ultimo\",\n        \"tienePicoYPlaca\": true,\n        \"esquema\": \"parImpar\",\n        \"hoyAplica\": false,\n        \"manianaAplica\": true,\n        \"digitosHoy\": [\n          1,\n          2,\n          3,\n          4,\n          5\n        ],\n        \"digitosManiana\": [\n          6,\n          7,\n          8,\n          9,\n          0\n        ],\n        \"diasSemana\": [],\n        \"horarios\": \"L–V, 6:00–21:00\",\n        \"vigencia\": \"Vigente en julio de 2026\",\n        \"fuente\": \"https://www.movilidadbogota.gov.co/pico-y-placa\"\n      }\n    ]\n  },\n  \"licencia\": {\n    \"data\": {\n      \"documentType\": \"CC\",\n      \"documentNumber\": \"1020304050\",\n      \"fullName\": \"J**N P***Z\",\n      \"driverStatus\": \"ACTIVO\",\n      \"citizenStatus\": \"ACTIVA\",\n      \"totalLicenses\": \"1\",\n      \"licenses\": [\n        {\n          \"category\": \"B1\",\n          \"status\": \"ACTIVA\",\n          \"licenceNumber\": \"1020304050\",\n          \"otExpide\": \"INSTITUTO DE MOVILIDAD\",\n          \"expeditionDate\": \"23/04/2025\",\n          \"dueDate\": \"23/04/2035\",\n          \"restrictions\": null\n        }\n      ],\n      \"infractions\": {\n        \"tieneMultas\": \"NO\",\n        \"nroPazYSalvo\": \"885466652067\"\n      }\n    },\n    \"mode\": \"live\",\n    \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n  },\n  \"cost\": 2\n}"
        }
      ]
    },
    {
      "name": "Consulta vehicular (RUNT)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/consulta",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "consulta"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Ficha completa del RUNT por placa: informacionGeneral (≈40 campos del vehículo), datosTecnicos, histórico completo de SOAT y de tecnomecánica (todas las vigencias, no solo la última), pólizas de responsabilidad civil, tarjeta de operación, blindaje, solicitudes, garantías mobiliarias, limitaciones a la propiedad y normalización. Es la respuesta más extensa de la API: si solo necesitas marca/línea/modelo usa Vehículo básico.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).\n- `format` (string, opcional). `complete` (default) incluye `data.plate`; `vehicle-by-plate` lo omite para dejar el shape RUNT puro."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/consulta",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "consulta"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Ficha completa del RUNT por placa: informacionGeneral (≈40 campos del vehículo), datosTecnicos, histórico completo de SOAT y de tecnomecánica (todas las vigencias, no solo la última), pólizas de responsabilidad civil, tarjeta de operación, blindaje, solicitudes, garantías mobiliarias, limitaciones a la propiedad y normalización. Es la respuesta más extensa de la API: si solo necesitas marca/línea/modelo usa Vehículo básico.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).\n- `format` (string, opcional). `complete` (default) incluye `data.plate`; `vehicle-by-plate` lo omite para dejar el shape RUNT puro."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"plate\": \"ABC123\",\n    \"vin\": \"9GAJC6915FB040270\",\n    \"informacionGeneral\": {\n      \"capacidadCarga\": null,\n      \"cilindraje\": \"2000\",\n      \"claseVehiculo\": \"CAMIONETA\",\n      \"clasificacion\": \"VEHICULO PARTICULAR\",\n      \"color\": \"ROJO\",\n      \"diasMatriculado\": \"1227\",\n      \"esRegrabadoChasis\": \"NO\",\n      \"esRegrabadoMotor\": \"NO\",\n      \"esRegrabadoSerie\": \"NO\",\n      \"esRegrabadoVin\": \"NO\",\n      \"estadoDelVehiculo\": \"ACTIVO\",\n      \"fechaExpedLTImportacion\": \"\",\n      \"fechaMatricula\": \"15/03/2023\",\n      \"fechaVenciLTImportacion\": \"\",\n      \"idTipoServicio\": \"1\",\n      \"linea\": \"CX-30\",\n      \"marca\": \"MAZDA\",\n      \"modelo\": \"2023\",\n      \"mostrarSolicitudes\": \"NO\",\n      \"noChasis\": \"9GAJC6915FB040270\",\n      \"noEjes\": \"2\",\n      \"noIdentificacion\": null,\n      \"noLicenciaTransito\": \"12345678\",\n      \"noMotor\": \"MTR0000001\",\n      \"noPlaca\": \"ABC123\",\n      \"noSerie\": \"9GAJC6915FB040270\",\n      \"noVin\": \"9GAJC6915FB040270\",\n      \"nombrePais\": null,\n      \"organismoTransito\": \"SECRETARIA DISTRITAL DE MOVILIDAD DE BOGOTA\",\n      \"pasajerosSentados\": \"5\",\n      \"pasajerosTotal\": null,\n      \"pesoBruto\": \"1650\",\n      \"prendas\": \"NO\",\n      \"puertas\": \"5\",\n      \"repotenciado\": \"NO\",\n      \"seguridadEstado\": \"NO\",\n      \"subpartida\": null,\n      \"tarjetaServicio\": \"NO\",\n      \"tieneGravamenes\": \"NO\",\n      \"tieneLTImportacion\": false,\n      \"tipoCarroceria\": \"WAGON\",\n      \"tipoCombustible\": \"GASOLINA\",\n      \"tipoMaquinaria\": null,\n      \"tipoServicio\": \"Particular\",\n      \"validacionDIAN\": \"Exitoso\",\n      \"vehiculoEnsenanza\": \"NO\",\n      \"verValidaDIAN\": true\n    },\n    \"datosTecnicos\": {\n      \"capacidadCarga\": null,\n      \"pesoBrutoVehicular\": null,\n      \"noEjes\": null,\n      \"noLlantas\": null,\n      \"alto\": null,\n      \"ancho\": null,\n      \"largo\": null,\n      \"pasajerosTotal\": null,\n      \"pasajerosSentados\": null,\n      \"rodaje\": null,\n      \"peso\": null\n    },\n    \"soat\": [\n      {\n        \"entidadExpideSoat\": \"SBS SEGUROS\",\n        \"estado\": \"VIGENTE\",\n        \"estadoSoat\": \"VIGENTE\",\n        \"fechaExpediSoat\": \"20/09/2025\",\n        \"fechaExpedicion\": \"20/09/2025\",\n        \"fechaVencimiento\": \"19/09/2026\",\n        \"fechaVigencia\": \"20/09/2025\",\n        \"noPoliza\": \"1508006948335000\",\n        \"nombrePais\": null,\n        \"origen\": \"EXPEDICION\",\n        \"placa\": \"ABC123\",\n        \"tipoTarifa\": \"TARIFA PLENA\"\n      }\n    ],\n    \"tecnoMecanica\": [\n      {\n        \"cdaExpide\": \"CDA FONTIBON S.A.S\",\n        \"estado\": \"APROBADA\",\n        \"fechaExpedicion\": \"22/09/2025\",\n        \"fechaVencimiento\": \"22/09/2026\",\n        \"informacionConsistente\": \"SI\",\n        \"nroCertificado\": \"189733821\",\n        \"numeroPlaca\": \"ABC123\",\n        \"tipoRevision\": \"REVISION PERIODICA\",\n        \"url\": \"d4ef5ac5-6c14-4185-b382-98a204ac6fa7\",\n        \"vigente\": \"SI\"\n      }\n    ],\n    \"polizasResponsabilidadCivil\": [],\n    \"tarjetaOperacion\": null,\n    \"informacionBlindaje\": {\n      \"autorizacion\": null,\n      \"blindado\": null,\n      \"fechaBlindaje\": null,\n      \"fechaDesblindaje\": null,\n      \"fechaExpedicionCertificado\": null,\n      \"fechaExpedicionCertificadoFormatoWS\": null,\n      \"idDocumentoCertificadoBlindaje\": null,\n      \"nivelBlindaje\": null,\n      \"nivelBlindajeNumero\": null,\n      \"numeroResolucion\": null,\n      \"tipoBlindajeNombre\": null\n    },\n    \"solicitudes\": [],\n    \"garantiasMobiliarias\": [],\n    \"garantiasFavorDe\": [],\n    \"limitacionPropiedad\": [],\n    \"normalizacionSaneamiento\": []\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Consulta vehicular por VIN",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/consulta-por-vin",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "consulta-por-vin"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"vin\": \"9GAJC6915FB040270\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "La MISMA ficha del RUNT que `/api/consulta` —informacionGeneral, datosTecnicos, histórico completo de SOAT y tecnomecánica, pólizas, solicitudes, garantías, limitaciones y normalización— pero entrando por VIN en vez de placa, y **sin documento del propietario**. Úsalo cuando tengas el VIN (o el número de chasis) pero no la cédula del dueño: la consulta por placa exige que el documento sea el del propietario ACTIVO y falla si no coincide. La respuesta trae la placa en `data.plate`, así que también sirve de puente VIN → placa. Único campo que cambia frente a `/api/consulta`: `data.documentNumber` viene vacío, porque no se pidió.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `vin` (string, obligatorio). VIN del vehículo (11–17 caracteres, sin I, O ni Q). Alias aceptado: `chasis` — en la mayoría de vehículos el RUNT registra el mismo valor en VIN y número de chasis.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/consulta-por-vin",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "consulta-por-vin"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"vin\": \"9GAJC6915FB040270\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "La MISMA ficha del RUNT que `/api/consulta` —informacionGeneral, datosTecnicos, histórico completo de SOAT y tecnomecánica, pólizas, solicitudes, garantías, limitaciones y normalización— pero entrando por VIN en vez de placa, y **sin documento del propietario**. Úsalo cuando tengas el VIN (o el número de chasis) pero no la cédula del dueño: la consulta por placa exige que el documento sea el del propietario ACTIVO y falla si no coincide. La respuesta trae la placa en `data.plate`, así que también sirve de puente VIN → placa. Único campo que cambia frente a `/api/consulta`: `data.documentNumber` viene vacío, porque no se pidió.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `vin` (string, obligatorio). VIN del vehículo (11–17 caracteres, sin I, O ni Q). Alias aceptado: `chasis` — en la mayoría de vehículos el RUNT registra el mismo valor en VIN y número de chasis.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"data\": {\n    \"documentNumber\": \"\",\n    \"plate\": \"ABC123\",\n    \"vin\": \"9GAJC6915FB040270\",\n    \"informacionGeneral\": {\n      \"capacidadCarga\": null,\n      \"cilindraje\": \"2000\",\n      \"claseVehiculo\": \"CAMIONETA\",\n      \"clasificacion\": \"VEHICULO PARTICULAR\",\n      \"color\": \"ROJO\",\n      \"diasMatriculado\": \"1227\",\n      \"esRegrabadoChasis\": \"NO\",\n      \"esRegrabadoMotor\": \"NO\",\n      \"esRegrabadoSerie\": \"NO\",\n      \"esRegrabadoVin\": \"NO\",\n      \"estadoDelVehiculo\": \"ACTIVO\",\n      \"fechaExpedLTImportacion\": \"\",\n      \"fechaMatricula\": \"15/03/2023\",\n      \"fechaVenciLTImportacion\": \"\",\n      \"idTipoServicio\": \"1\",\n      \"linea\": \"CX-30\",\n      \"marca\": \"MAZDA\",\n      \"modelo\": \"2023\",\n      \"mostrarSolicitudes\": \"NO\",\n      \"noChasis\": \"9GAJC6915FB040270\",\n      \"noEjes\": \"2\",\n      \"noIdentificacion\": null,\n      \"noLicenciaTransito\": \"12345678\",\n      \"noMotor\": \"MTR0000001\",\n      \"noPlaca\": \"ABC123\",\n      \"noSerie\": \"9GAJC6915FB040270\",\n      \"noVin\": \"9GAJC6915FB040270\",\n      \"nombrePais\": null,\n      \"organismoTransito\": \"SECRETARIA DISTRITAL DE MOVILIDAD DE BOGOTA\",\n      \"pasajerosSentados\": \"5\",\n      \"pasajerosTotal\": null,\n      \"pesoBruto\": \"1650\",\n      \"prendas\": \"NO\",\n      \"puertas\": \"5\",\n      \"repotenciado\": \"NO\",\n      \"seguridadEstado\": \"NO\",\n      \"subpartida\": null,\n      \"tarjetaServicio\": \"NO\",\n      \"tieneGravamenes\": \"NO\",\n      \"tieneLTImportacion\": false,\n      \"tipoCarroceria\": \"WAGON\",\n      \"tipoCombustible\": \"GASOLINA\",\n      \"tipoMaquinaria\": null,\n      \"tipoServicio\": \"Particular\",\n      \"validacionDIAN\": \"Exitoso\",\n      \"vehiculoEnsenanza\": \"NO\",\n      \"verValidaDIAN\": true\n    },\n    \"datosTecnicos\": {\n      \"capacidadCarga\": null,\n      \"pesoBrutoVehicular\": null,\n      \"noEjes\": null,\n      \"noLlantas\": null,\n      \"alto\": null,\n      \"ancho\": null,\n      \"largo\": null,\n      \"pasajerosTotal\": null,\n      \"pasajerosSentados\": null,\n      \"rodaje\": null,\n      \"peso\": null\n    },\n    \"soat\": [\n      {\n        \"entidadExpideSoat\": \"SBS SEGUROS\",\n        \"estado\": \"VIGENTE\",\n        \"estadoSoat\": \"VIGENTE\",\n        \"fechaExpediSoat\": \"20/09/2025\",\n        \"fechaExpedicion\": \"20/09/2025\",\n        \"fechaVencimiento\": \"19/09/2026\",\n        \"fechaVigencia\": \"20/09/2025\",\n        \"noPoliza\": \"1508006948335000\",\n        \"nombrePais\": null,\n        \"origen\": \"EXPEDICION\",\n        \"placa\": \"ABC123\",\n        \"tipoTarifa\": \"TARIFA PLENA\"\n      }\n    ],\n    \"tecnoMecanica\": [\n      {\n        \"cdaExpide\": \"CDA FONTIBON S.A.S\",\n        \"estado\": \"APROBADA\",\n        \"fechaExpedicion\": \"22/09/2025\",\n        \"fechaVencimiento\": \"22/09/2026\",\n        \"informacionConsistente\": \"SI\",\n        \"nroCertificado\": \"189733821\",\n        \"numeroPlaca\": \"ABC123\",\n        \"tipoRevision\": \"REVISION PERIODICA\",\n        \"url\": \"d4ef5ac5-6c14-4185-b382-98a204ac6fa7\",\n        \"vigente\": \"SI\"\n      }\n    ],\n    \"polizasResponsabilidadCivil\": [],\n    \"tarjetaOperacion\": null,\n    \"informacionBlindaje\": {\n      \"autorizacion\": null,\n      \"blindado\": null,\n      \"fechaBlindaje\": null,\n      \"fechaDesblindaje\": null,\n      \"fechaExpedicionCertificado\": null,\n      \"fechaExpedicionCertificadoFormatoWS\": null,\n      \"idDocumentoCertificadoBlindaje\": null,\n      \"nivelBlindaje\": null,\n      \"nivelBlindajeNumero\": null,\n      \"numeroResolucion\": null,\n      \"tipoBlindajeNombre\": null\n    },\n    \"solicitudes\": [],\n    \"garantiasMobiliarias\": [],\n    \"garantiasFavorDe\": [],\n    \"limitacionPropiedad\": [],\n    \"normalizacionSaneamiento\": []\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Apto para traspaso",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/apto-traspaso",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "apto-traspaso"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Semáforo SÍ/NO de si un vehículo está apto para traspaso, derivado del RUNT: sin gravámenes, prendas, limitaciones a la propiedad ni garantías, y con el registro activo. Devuelve el flag y la lista de bloqueos concretos en texto listo para mostrar. `status` es ok si está apto, danger si el bloqueo es un gravamen/prenda/limitación y warn si solo el estado no es ACTIVO.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/apto-traspaso",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "apto-traspaso"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Semáforo SÍ/NO de si un vehículo está apto para traspaso, derivado del RUNT: sin gravámenes, prendas, limitaciones a la propiedad ni garantías, y con el registro activo. Devuelve el flag y la lista de bloqueos concretos en texto listo para mostrar. `status` es ok si está apto, danger si el bloqueo es un gravamen/prenda/limitación y warn si solo el estado no es ACTIVO.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"vehiculo\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"placa\": \"ABC123\",\n    \"aptoTraspaso\": true,\n    \"estado\": \"ACTIVO\",\n    \"bloqueos\": [],\n    \"detalle\": {\n      \"tieneGravamenes\": false,\n      \"tienePrendas\": false,\n      \"limitaciones\": 0,\n      \"garantias\": 0,\n      \"estadoDelVehiculo\": \"ACTIVO\"\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Vehículo básico (liviano)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/vehiculo-basico",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "vehiculo-basico"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Proyección liviana de la ficha del RUNT por placa: exactamente 12 campos — placa, marca, línea, modelo, cilindraje, color, clase, servicio, combustible, estado, fecha de matrícula y organismo de tránsito. Todos texto (`fechaMatricula` puede venir null). Respuesta mínima para apps que solo necesitan lo esencial; `status` siempre es info porque describe el vehículo sin calificarlo.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vehiculo-basico",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vehiculo-basico"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Proyección liviana de la ficha del RUNT por placa: exactamente 12 campos — placa, marca, línea, modelo, cilindraje, color, clase, servicio, combustible, estado, fecha de matrícula y organismo de tránsito. Todos texto (`fechaMatricula` puede venir null). Respuesta mínima para apps que solo necesitan lo esencial; `status` siempre es info porque describe el vehículo sin calificarlo.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"vehiculo\",\n  \"status\": \"info\",\n  \"data\": {\n    \"placa\": \"ABC123\",\n    \"marca\": \"MAZDA\",\n    \"linea\": \"CX-30\",\n    \"modelo\": \"2023\",\n    \"cilindraje\": \"2000\",\n    \"color\": \"ROJO\",\n    \"clase\": \"CAMIONETA\",\n    \"servicio\": \"Particular\",\n    \"combustible\": \"GASOLINA\",\n    \"estado\": \"ACTIVO\",\n    \"fechaMatricula\": \"15/03/2023\",\n    \"organismoTransito\": \"SECRETARIA DISTRITAL DE MOVILIDAD DE BOGOTA\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Multas SIMIT",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/multas",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "multas"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Comparendos y deuda del SIMIT consolidados por placa + documento: total adeudado en pesos, número de multas, el detalle de cada una (fecha, organismo, infracción, código, estado pendiente/acuerdo/pagada y valor) y cuántos acuerdos de pago hay. `status`: ok sin multas, warn con multas y danger si la deuda pasa de $1.000.000.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/multas",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "multas"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Comparendos y deuda del SIMIT consolidados por placa + documento: total adeudado en pesos, número de multas, el detalle de cada una (fecha, organismo, infracción, código, estado pendiente/acuerdo/pagada y valor) y cuántos acuerdos de pago hay. `status`: ok sin multas, warn con multas y danger si la deuda pasa de $1.000.000.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"warn\",\n  \"data\": {\n    \"totalDeuda\": 522700,\n    \"totalMultas\": 1,\n    \"multas\": [\n      {\n        \"comparendoId\": \"11001000000012345678\",\n        \"fecha\": \"2025-03-15\",\n        \"organismo\": \"SECRETARÍA DISTRITAL DE MOVILIDAD DE BOGOTÁ\",\n        \"infraccion\": \"No respetar pico y placa\",\n        \"codigo\": \"C14\",\n        \"estado\": \"pendiente\",\n        \"valor\": 522700\n      }\n    ],\n    \"acuerdosPago\": 0\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Comparendos por cédula",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/comparendos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "comparendos"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Comparendos de una persona por cédula (fuente SIMIT): lista tipada con fecha, organismo, infracción, código, estado, valor y departamento de cada comparendo, más el total adeudado. A diferencia de Multas SIMIT (que consolida por placa), este devuelve los comparendos de la persona. `status`: ok sin comparendos, warn con comparendos y danger si la deuda pasa de $1.000.000.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comparendos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comparendos"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Comparendos de una persona por cédula (fuente SIMIT): lista tipada con fecha, organismo, infracción, código, estado, valor y departamento de cada comparendo, más el total adeudado. A diferencia de Multas SIMIT (que consolida por placa), este devuelve los comparendos de la persona. `status`: ok sin comparendos, warn con comparendos y danger si la deuda pasa de $1.000.000.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"warn\",\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"totalComparendos\": 1,\n    \"totalDeuda\": 522700,\n    \"comparendos\": [\n      {\n        \"comparendoId\": \"11001000000012345678\",\n        \"fecha\": \"2025-03-15\",\n        \"organismo\": \"SECRETARÍA DISTRITAL DE MOVILIDAD DE BOGOTÁ\",\n        \"infraccion\": \"No respetar pico y placa\",\n        \"codigo\": \"C14\",\n        \"estado\": \"pendiente\",\n        \"valor\": 522700,\n        \"departamento\": \"BOGOTÁ D.C.\"\n      }\n    ]\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Detalle de comparendo",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/comparendo",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "comparendo"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"numeroComparendo\": \"11001000000012345678\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Detalle de un comparendo puntual: se busca por su número dentro de los comparendos de la persona (cédula) y se devuelve el item completo (fecha, organismo, infracción, código, estado, valor, departamento) o `encontrado: false` con `comparendo: null` si no figura. Ese caso también cobra: la consulta al SIMIT se hizo y la respuesta —que no aparece— es información. `status`: info si no se encontró, ok si está pagada, warn si no.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).\n- `numeroComparendo` (string, obligatorio). Número del comparendo a buscar dentro de los de la persona. Alias aceptado: `comparendo`."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comparendo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comparendo"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"numeroComparendo\": \"11001000000012345678\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Detalle de un comparendo puntual: se busca por su número dentro de los comparendos de la persona (cédula) y se devuelve el item completo (fecha, organismo, infracción, código, estado, valor, departamento) o `encontrado: false` con `comparendo: null` si no figura. Ese caso también cobra: la consulta al SIMIT se hizo y la respuesta —que no aparece— es información. `status`: info si no se encontró, ok si está pagada, warn si no.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).\n- `numeroComparendo` (string, obligatorio). Número del comparendo a buscar dentro de los de la persona. Alias aceptado: `comparendo`."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"warn\",\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"numeroComparendo\": \"11001000000012345678\",\n    \"encontrado\": true,\n    \"comparendo\": {\n      \"comparendoId\": \"11001000000012345678\",\n      \"fecha\": \"2025-03-15\",\n      \"organismo\": \"SECRETARÍA DISTRITAL DE MOVILIDAD DE BOGOTÁ\",\n      \"infraccion\": \"No respetar pico y placa\",\n      \"codigo\": \"C14\",\n      \"estado\": \"pendiente\",\n      \"valor\": 522700,\n      \"departamento\": \"BOGOTÁ D.C.\"\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Acuerdos de pago",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/acuerdos-pago",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "acuerdos-pago"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Acuerdos de pago de comparendos de una persona por cédula (fuente SIMIT): resolución, fecha, estado, valor del acuerdo, saldo pendiente, secretaría y departamento de cada uno, más el total pendiente. `status`: ok sin acuerdos, warn con al menos uno.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/acuerdos-pago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "acuerdos-pago"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Acuerdos de pago de comparendos de una persona por cédula (fuente SIMIT): resolución, fecha, estado, valor del acuerdo, saldo pendiente, secretaría y departamento de cada uno, más el total pendiente. `status`: ok sin acuerdos, warn con al menos uno.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"warn\",\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"totalAcuerdos\": 1,\n    \"totalPendiente\": 500000,\n    \"acuerdos\": [\n      {\n        \"resolucion\": \"324\",\n        \"fechaResolucion\": \"2018-02-16\",\n        \"estado\": \"Acuerdo de pago\",\n        \"valorAcuerdo\": 837716,\n        \"pendiente\": 500000,\n        \"secretaria\": \"Jamundí\",\n        \"departamento\": \"Valle del Cauca\"\n      }\n    ]\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Resoluciones de tránsito",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/resoluciones",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "resoluciones"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Resoluciones sancionatorias asociadas a una persona por cédula (fuente SIMIT): las multas que ya tienen número de resolución, con fecha, organismo, infracción, código, estado, valor y departamento, más el total adeudado. `status`: ok sin resoluciones, warn con al menos una y danger si el total pasa de $1.000.000.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/resoluciones",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "resoluciones"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Resoluciones sancionatorias asociadas a una persona por cédula (fuente SIMIT): las multas que ya tienen número de resolución, con fecha, organismo, infracción, código, estado, valor y departamento, más el total adeudado. `status`: ok sin resoluciones, warn con al menos una y danger si el total pasa de $1.000.000.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"warn\",\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"totalResoluciones\": 1,\n    \"totalDeuda\": 837716,\n    \"resoluciones\": [\n      {\n        \"comparendoId\": \"324\",\n        \"fecha\": \"2018-02-16\",\n        \"organismo\": \"SECRETARÍA DE TRÁNSITO DE JAMUNDÍ\",\n        \"infraccion\": \"No pagar comparendo en término\",\n        \"codigo\": \"B01\",\n        \"estado\": \"acuerdo\",\n        \"valor\": 837716,\n        \"departamento\": \"Valle del Cauca\"\n      }\n    ]\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Suspensión de licencia",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/suspension-licencia",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "suspension-licencia"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Estado de suspensión o cancelación de la licencia de conducción de una persona por cédula (fuente SIMIT): banderas `suspendida`/`cancelada` y, cuando aplica, la vigencia de la medida (fecha desde, fecha hasta y organismo de tránsito); sin medida los tres campos vienen null. `status` es danger si está suspendida o cancelada, ok si no. Crítico para agencias de licencias.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/suspension-licencia",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "suspension-licencia"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Estado de suspensión o cancelación de la licencia de conducción de una persona por cédula (fuente SIMIT): banderas `suspendida`/`cancelada` y, cuando aplica, la vigencia de la medida (fecha desde, fecha hasta y organismo de tránsito); sin medida los tres campos vienen null. `status` es danger si está suspendida o cancelada, ok si no. Crítico para agencias de licencias.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"suspendida\": false,\n    \"cancelada\": false,\n    \"fechaDesde\": null,\n    \"fechaHasta\": null,\n    \"organismo\": null\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Paz y salvo de tránsito",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/paz-salvo",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "paz-salvo"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Certificado de paz y salvo de tránsito de una persona por cédula (fuente SIMIT): indica si está a paz y salvo (sin comparendos ni deuda pendiente), el total adeudado y la cantidad de comparendos. `status` es ok a paz y salvo, warn si no. Paso previo típico de un trámite. No sustituye el certificado oficial del organismo de tránsito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/paz-salvo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "paz-salvo"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Certificado de paz y salvo de tránsito de una persona por cédula (fuente SIMIT): indica si está a paz y salvo (sin comparendos ni deuda pendiente), el total adeudado y la cantidad de comparendos. `status` es ok a paz y salvo, warn si no. Paso previo típico de un trámite. No sustituye el certificado oficial del organismo de tránsito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"multas\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"documentNumber\": \"1020304050\",\n    \"pazSalvo\": true,\n    \"totalDeuda\": 0,\n    \"totalComparendos\": 0\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Impuesto vehicular",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/impuestos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "impuestos"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Departamento donde está matriculado el vehículo y enlace al portal oficial de impuestos. El departamento se resuelve desde el organismo de tránsito del RUNT por placa. NO liquida el impuesto: ningún departamento lo expone por API (todos blindan el portal con captcha y cuestionario), así que `data` siempre viene null y el valor está en `portalUrl` + el mensaje de `error`. Gratis: no cobra crédito.\n\nGratis: no cobra crédito.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/impuestos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "impuestos"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Departamento donde está matriculado el vehículo y enlace al portal oficial de impuestos. El departamento se resuelve desde el organismo de tránsito del RUNT por placa. NO liquida el impuesto: ningún departamento lo expone por API (todos blindan el portal con captcha y cuestionario), así que `data` siempre viene null y el valor está en `portalUrl` + el mensaje de `error`. Gratis: no cobra crédito.\n\nGratis: no cobra crédito.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"Bogotá D.C.\",\n  \"status\": \"info\",\n  \"data\": null,\n  \"portalUrl\": \"https://www.haciendabogota.gov.co/es/sdh/pagos-impuesto-vehiculos\",\n  \"error\": \"Tu vehículo está matriculado en Bogotá D.C. Paga tu impuesto en el portal oficial del departamento.\",\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Avalúo FASECOLDA",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/avaluo",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "avaluo"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Valor comercial FASECOLDA y rango de mercado por placa: código FASECOLDA, marca, línea, modelo (año), valor comercial en pesos, rango min/max y clase. El VIN y el modelo se resuelven primero desde el RUNT, así que la placa basta. `origen` dice cómo se identificó el vehículo: `vin` (exacto) o `catalogo` (marca + año + línea + cilindraje, cuando FASECOLDA no decodifica el chasis — le pasa a los modelos nuevos); con `catalogo`, `aproximado` avisa si quedó más de una versión posible y el rango cubre todas. Valor de referencia del gremio asegurador, no un avalúo pericial.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/avaluo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "avaluo"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\",\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Valor comercial FASECOLDA y rango de mercado por placa: código FASECOLDA, marca, línea, modelo (año), valor comercial en pesos, rango min/max y clase. El VIN y el modelo se resuelven primero desde el RUNT, así que la placa basta. `origen` dice cómo se identificó el vehículo: `vin` (exacto) o `catalogo` (marca + año + línea + cilindraje, cuando FASECOLDA no decodifica el chasis — le pasa a los modelos nuevos); con `catalogo`, `aproximado` avisa si quedó más de una versión posible y el rango cubre todas. Valor de referencia del gremio asegurador, no un avalúo pericial.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento del propietario. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"avaluo\",\n  \"status\": \"info\",\n  \"data\": {\n    \"codigo\": \"08053096\",\n    \"marca\": \"MAZDA\",\n    \"linea\": \"CX-30\",\n    \"modelo\": 2023,\n    \"valorComercial\": 98000000,\n    \"rangoMercado\": {\n      \"min\": 92000000,\n      \"max\": 104000000\n    },\n    \"clase\": \"CAMIONETA\",\n    \"origen\": \"vin\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Avalúo FASECOLDA por código",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/avaluo-por-codigo",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "avaluo-por-codigo"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"codeFasecolda\": \"08053096\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Valor comercial FASECOLDA directo por código, sin resolver placa→código. Para aseguradoras y peritos que ya tienen el código FASECOLDA. Acepta `codeFasecolda` y opcionalmente `modelo` (año) para desambiguar el valor.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `codeFasecolda` (string, obligatorio). Código FASECOLDA del vehículo (numérico). Alias aceptado: `codigo`.\n- `modelo` (number, opcional). Año del modelo; ajusta el valor comercial al año indicado.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/avaluo-por-codigo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "avaluo-por-codigo"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codeFasecolda\": \"08053096\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Valor comercial FASECOLDA directo por código, sin resolver placa→código. Para aseguradoras y peritos que ya tienen el código FASECOLDA. Acepta `codeFasecolda` y opcionalmente `modelo` (año) para desambiguar el valor.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `codeFasecolda` (string, obligatorio). Código FASECOLDA del vehículo (numérico). Alias aceptado: `codigo`.\n- `modelo` (number, opcional). Año del modelo; ajusta el valor comercial al año indicado.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"avaluo\",\n  \"status\": \"info\",\n  \"data\": {\n    \"codigo\": \"08053096\",\n    \"marca\": \"MAZDA\",\n    \"linea\": \"CX-30\",\n    \"modelo\": 2023,\n    \"valorComercial\": 98000000,\n    \"rangoMercado\": {\n      \"min\": 92000000,\n      \"max\": 104000000\n    },\n    \"clase\": \"CAMIONETA\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Catálogo de marcas, modelos y versiones",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/catalogo",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "catalogo"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"marca\": \"Toyota\",\n  \"modelo\": \"2026\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Marcas, modelos, referencias y versiones de vehículos en Colombia, en cascada para poblar un selector: sin filtros trae las marcas y los años; con `marca`, sus referencias; con `marca` + `modelo` (o + `referencia`), las versiones. Cada versión trae su código —el mismo que acepta `/api/avaluo-por-codigo`—, el valor de mercado (`valorUsado`), el precio 0km (`valorNuevo`, solo en años que aún se venden nuevos) y la ficha técnica: cilindraje, potencia, airbags, puertas y tracción. No pide placa ni documento del propietario. Cada lista viene `null` cuando su filtro ya está decidido; con `listas=todas` vuelven todas. Un filtro que no existe en el catálogo responde 404 y no cobra.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `categoria` (string, opcional). Tipo de vehículo: `automovil` (default, incluye las SUV de pasajeros), `camioneta` (pickup y camioneta de carga), `moto` (incluye motocarro), `carga` (pesado de carga), `bus` (bus, buseta y microbús) o `remolque`. Los tres pesados comparten catálogo de marcas en la fuente, así que al elegir uno la lista de marcas puede incluir las de los otros dos; las versiones sí salen separadas.\n- `soloConPrecio` (boolean, opcional). `true` por defecto: solo devuelve las versiones con valor publicado para el año pedido. En `false` aparecen también las que existen sin precio para ese año (Toyota 2024 pasa de 44 a 401 versiones, casi todas en 0).\n- `marca` (string, opcional). Marca por nombre (`Toyota`) o por id del catálogo (`178`). Sin tildes ni mayúsculas importa.\n- `modelo` (string, opcional). Año del modelo (`2024`). En el catálogo vehicular colombiano «modelo» es el año, no la línea.\n- `referencia` (string, opcional). Referencia/línea por nombre o id, resuelta dentro de la marca elegida. Admite prefijo: `Corolla` encuentra `COROLLA [12] [FL]`.\n- `listas` (string, opcional). `todas` devuelve `marcas`, `modelos` y `referencias` aunque su filtro ya esté decidido. Útil para repintar los tres selectores de un formulario con una sola llamada; por defecto cada lista se omite cuando ya elegiste ese filtro.\n- `pagina` (number, opcional). Página de versiones (default 1).\n- `porPagina` (number, opcional). Versiones por página (default 50, máximo 200).\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/catalogo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "catalogo"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"marca\": \"Toyota\",\n  \"modelo\": \"2026\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Marcas, modelos, referencias y versiones de vehículos en Colombia, en cascada para poblar un selector: sin filtros trae las marcas y los años; con `marca`, sus referencias; con `marca` + `modelo` (o + `referencia`), las versiones. Cada versión trae su código —el mismo que acepta `/api/avaluo-por-codigo`—, el valor de mercado (`valorUsado`), el precio 0km (`valorNuevo`, solo en años que aún se venden nuevos) y la ficha técnica: cilindraje, potencia, airbags, puertas y tracción. No pide placa ni documento del propietario. Cada lista viene `null` cuando su filtro ya está decidido; con `listas=todas` vuelven todas. Un filtro que no existe en el catálogo responde 404 y no cobra.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `categoria` (string, opcional). Tipo de vehículo: `automovil` (default, incluye las SUV de pasajeros), `camioneta` (pickup y camioneta de carga), `moto` (incluye motocarro), `carga` (pesado de carga), `bus` (bus, buseta y microbús) o `remolque`. Los tres pesados comparten catálogo de marcas en la fuente, así que al elegir uno la lista de marcas puede incluir las de los otros dos; las versiones sí salen separadas.\n- `soloConPrecio` (boolean, opcional). `true` por defecto: solo devuelve las versiones con valor publicado para el año pedido. En `false` aparecen también las que existen sin precio para ese año (Toyota 2024 pasa de 44 a 401 versiones, casi todas en 0).\n- `marca` (string, opcional). Marca por nombre (`Toyota`) o por id del catálogo (`178`). Sin tildes ni mayúsculas importa.\n- `modelo` (string, opcional). Año del modelo (`2024`). En el catálogo vehicular colombiano «modelo» es el año, no la línea.\n- `referencia` (string, opcional). Referencia/línea por nombre o id, resuelta dentro de la marca elegida. Admite prefijo: `Corolla` encuentra `COROLLA [12] [FL]`.\n- `listas` (string, opcional). `todas` devuelve `marcas`, `modelos` y `referencias` aunque su filtro ya esté decidido. Útil para repintar los tres selectores de un formulario con una sola llamada; por defecto cada lista se omite cuando ya elegiste ese filtro.\n- `pagina` (number, opcional). Página de versiones (default 1).\n- `porPagina` (number, opcional). Versiones por página (default 50, máximo 200).\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"catalogo\",\n  \"status\": \"info\",\n  \"data\": {\n    \"filtros\": {\n      \"categoria\": {\n        \"nombre\": \"automovil\",\n        \"etiqueta\": \"Automóvil\"\n      },\n      \"soloConPrecio\": true,\n      \"marca\": {\n        \"id\": 178,\n        \"nombre\": \"Toyota\"\n      },\n      \"modelo\": {\n        \"id\": 41009,\n        \"nombre\": \"2026\"\n      },\n      \"referencia\": null\n    },\n    \"marcas\": null,\n    \"modelos\": null,\n    \"referencias\": [\n      {\n        \"id\": 211000,\n        \"nombre\": \"Corolla [12] [fl]\"\n      }\n    ],\n    \"versiones\": [\n      {\n        \"codigo\": \"09033079\",\n        \"marca\": \"TOYOTA\",\n        \"referencia\": \"COROLLA [12] [FL]\",\n        \"version\": \"XE-I HYBRID\",\n        \"detalle\": \"TP 1800CC 7AB ABS\",\n        \"linea\": \"COROLLA [12] [FL] XE-I HYBRID TP 1800CC 7AB ABS\",\n        \"modelo\": 2026,\n        \"valorUsado\": 130600000,\n        \"valorNuevo\": 122200000,\n        \"valorComercial\": 130600000,\n        \"clase\": \"AUTOMOVIL\",\n        \"categoria\": \"LIVIANO PASAJEROS\",\n        \"tipologia\": \"SEDAN\",\n        \"combustible\": \"GASOLINA\",\n        \"transmision\": \"4X2\",\n        \"tipoCaja\": \"TIPTRONICA\",\n        \"cilindraje\": 1798,\n        \"potencia\": 168,\n        \"puertas\": 4,\n        \"airbags\": 7,\n        \"traccion\": \"DELANTERA\",\n        \"capacidadPasajeros\": 5,\n        \"peso\": 1370\n      }\n    ],\n    \"paginacion\": {\n      \"pagina\": 1,\n      \"porPagina\": 50,\n      \"paginas\": 1,\n      \"total\": 4\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Pérdida total / siniestros",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/perdida-total",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "perdida-total"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Historial de reclamaciones ante aseguradoras de un vehículo (fuente FASECOLDA, desde 2008): fecha, amparo y `severidad` de cada registro. Solo pide la placa. `severidad: \"mayor\"` = la aseguradora indemnizó el vehículo completo (pérdida total); `\"menor\"` = indemnizó una reparación; `\"desconocida\"` = amparo que la fuente no cataloga. `perdidaTotal` es true SOLO si hay al menos un registro de severidad mayor, así que un carro con reclamaciones menores devuelve `perdidaTotal: false` con `totalSiniestros > 0`. Cobertura parcial: cubre únicamente vehículos que estuvieron asegurados, así que `perdidaTotal: false` significa «no figura», no «nunca chocó». La fuente no informa el valor indemnizado ni la aseguradora. `status` es danger con pérdida total, warn con reclamaciones menores y ok sin registros. Cuesta 2 créditos (el scrape es lento y la fuente topa las consultas diarias).\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/perdida-total",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "perdida-total"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Historial de reclamaciones ante aseguradoras de un vehículo (fuente FASECOLDA, desde 2008): fecha, amparo y `severidad` de cada registro. Solo pide la placa. `severidad: \"mayor\"` = la aseguradora indemnizó el vehículo completo (pérdida total); `\"menor\"` = indemnizó una reparación; `\"desconocida\"` = amparo que la fuente no cataloga. `perdidaTotal` es true SOLO si hay al menos un registro de severidad mayor, así que un carro con reclamaciones menores devuelve `perdidaTotal: false` con `totalSiniestros > 0`. Cobertura parcial: cubre únicamente vehículos que estuvieron asegurados, así que `perdidaTotal: false` significa «no figura», no «nunca chocó». La fuente no informa el valor indemnizado ni la aseguradora. `status` es danger con pérdida total, warn con reclamaciones menores y ok sin registros. Cuesta 2 créditos (el scrape es lento y la fuente topa las consultas diarias).\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"siniestros\",\n  \"status\": \"danger\",\n  \"data\": {\n    \"placa\": \"ABC123\",\n    \"perdidaTotal\": true,\n    \"totalSiniestros\": 2,\n    \"siniestros\": [\n      {\n        \"fecha\": \"2022-09-13\",\n        \"amparo\": \"Pérdida Mayor Cuantía\",\n        \"severidad\": \"mayor\"\n      },\n      {\n        \"fecha\": \"2015-01-20\",\n        \"amparo\": \"Pérdida Menor Cuantía\",\n        \"severidad\": \"menor\"\n      }\n    ],\n    \"fuente\": \"Reclamaciones reportadas por aseguradoras\",\n    \"cobertura\": \"Solo vehículos que estuvieron asegurados; reclamaciones reportadas por las aseguradoras desde 2008.\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Prendas / garantías mobiliarias",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/garantias-rgm",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "garantias-rgm"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Prendas inscritas sobre un vehículo en el RGM de Confecámaras, por placa. Da el detalle que el RUNT a veces no entrega cuando solo marca la bandera: acreedor(es), deudor/garante (nombre y documento), folio electrónico, fecha de inscripción (formato del portal, dd/mm/aaaa hh:mm:ss) y última operación (inscripción, modificación, ejecución). Sin prendas responde `tienePrenda: false` con `garantias: []`. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/garantias-rgm",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "garantias-rgm"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Prendas inscritas sobre un vehículo en el RGM de Confecámaras, por placa. Da el detalle que el RUNT a veces no entrega cuando solo marca la bandera: acreedor(es), deudor/garante (nombre y documento), folio electrónico, fecha de inscripción (formato del portal, dd/mm/aaaa hh:mm:ss) y última operación (inscripción, modificación, ejecución). Sin prendas responde `tienePrenda: false` con `garantias: []`. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"garantias\",\n  \"status\": \"warn\",\n  \"data\": {\n    \"placa\": \"ABC123\",\n    \"tienePrenda\": true,\n    \"garantias\": [\n      {\n        \"folio\": \"20210930000036900\",\n        \"acreedores\": [\n          \"RCI COLOMBIA S.A. COMPAÑIA DE FINANCIAMIENTO\"\n        ],\n        \"deudor\": \"JUAN PEREZ\",\n        \"docDeudor\": \"73140250\",\n        \"fechaInscripcion\": \"30/09/2021 10:55:38 a. m.\",\n        \"ultimaOperacion\": \"Formulario Registral de Modificación\"\n      }\n    ],\n    \"fuente\": \"Prendas y garantías mobiliarias registradas\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Pico y placa",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/pico-y-placa",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "pico-y-placa"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"ciudad\": \"Bogotá\",\n  \"placa\": \"ABC123\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Restricción de pico y placa por ubicación y tipo de vehículo. Filtra por `ciudad` o por `lat`/`lng` (geolocaliza la ciudad; manda sobre `ciudad`). `tipoVehiculo` = carro (default) o moto. Qué dígito de la placa se evalúa lo fija el decreto de cada ciudad y viene en `digitoPlaca`: por defecto el último para carro y el primero para moto, pero no en todas: varias ciudades restringen también la moto por el último, así que hay que leer `digitoPlaca` en vez de asumir la regla. La `placa` es opcional: con placa indica si aplica hoy/mañana; sin placa devuelve qué dígitos restringen. Sin ubicación devuelve todas las ciudades monitoreadas. **En festivo nacional no hay pico y placa en ninguna ciudad**: `digitosHoy` sale vacío, `hoyAplica` en false y el bloque `festivo` trae el nombre del día. También viene incluido en consulta-full, con el mismo filtro por ubicación y el tipo de vehículo detectado solo desde el RUNT.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `ciudad` (string, opcional). Ciudad a consultar (ej. Bogotá).\n- `lat` (number, opcional). Latitud; requiere lng. Geolocaliza la ciudad y manda sobre `ciudad`.\n- `lng` (number, opcional). Longitud; requiere lat.\n- `placa` (string, opcional). Placa; agrega hoyAplica/manianaAplica.\n- `tipoVehiculo` (string, opcional). carro (default) | moto. El dígito que se evalúa lo decide cada ciudad y se devuelve en `digitoPlaca`. taxi y publico se aceptan pero aún no tienen reglas cargadas (devuelven tienePicoYPlaca:false)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pico-y-placa",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pico-y-placa"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ciudad\": \"Bogotá\",\n  \"placa\": \"ABC123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Restricción de pico y placa por ubicación y tipo de vehículo. Filtra por `ciudad` o por `lat`/`lng` (geolocaliza la ciudad; manda sobre `ciudad`). `tipoVehiculo` = carro (default) o moto. Qué dígito de la placa se evalúa lo fija el decreto de cada ciudad y viene en `digitoPlaca`: por defecto el último para carro y el primero para moto, pero no en todas: varias ciudades restringen también la moto por el último, así que hay que leer `digitoPlaca` en vez de asumir la regla. La `placa` es opcional: con placa indica si aplica hoy/mañana; sin placa devuelve qué dígitos restringen. Sin ubicación devuelve todas las ciudades monitoreadas. **En festivo nacional no hay pico y placa en ninguna ciudad**: `digitosHoy` sale vacío, `hoyAplica` en false y el bloque `festivo` trae el nombre del día. También viene incluido en consulta-full, con el mismo filtro por ubicación y el tipo de vehículo detectado solo desde el RUNT.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `ciudad` (string, opcional). Ciudad a consultar (ej. Bogotá).\n- `lat` (number, opcional). Latitud; requiere lng. Geolocaliza la ciudad y manda sobre `ciudad`.\n- `lng` (number, opcional). Longitud; requiere lat.\n- `placa` (string, opcional). Placa; agrega hoyAplica/manianaAplica.\n- `tipoVehiculo` (string, opcional). carro (default) | moto. El dígito que se evalúa lo decide cada ciudad y se devuelve en `digitoPlaca`. taxi y publico se aceptan pero aún no tienen reglas cargadas (devuelven tienePicoYPlaca:false)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"pico-y-placa\",\n  \"status\": \"ok\",\n  \"ubicacion\": {\n    \"matched\": true,\n    \"source\": \"ciudad\",\n    \"consulta\": {\n      \"ciudad\": \"Bogotá\"\n    },\n    \"ciudad\": \"Bogotá\",\n    \"departamento\": \"Bogotá D.C.\"\n  },\n  \"festivo\": {\n    \"hoy\": null,\n    \"maniana\": null\n  },\n  \"data\": [\n    {\n      \"ciudad\": \"Bogotá\",\n      \"departamento\": \"Bogotá D.C.\",\n      \"tipoVehiculo\": \"carro\",\n      \"digitoPlaca\": \"ultimo\",\n      \"tienePicoYPlaca\": true,\n      \"esquema\": \"parImpar\",\n      \"hoyAplica\": false,\n      \"manianaAplica\": true,\n      \"digitosHoy\": [\n        1,\n        2,\n        3,\n        4,\n        5\n      ],\n      \"digitosManiana\": [\n        6,\n        7,\n        8,\n        9,\n        0\n      ],\n      \"diasSemana\": [],\n      \"horarios\": \"L–V, 6:00–21:00\",\n      \"vigencia\": \"Vigente en julio de 2026\",\n      \"fuente\": \"https://www.movilidadbogota.gov.co/pico-y-placa\"\n    }\n  ],\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Licencias de conducción",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/licencia",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "licencia"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"primerApellido\": \"PÉREZ\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Licencias de conducción por cédula (RUNT ciudadano): datos del conductor (nombre, estado de conductor y de ciudadano, número y fecha de inscripción), el arreglo `licenses` con una entrada por categoría —categoría, estado, número, organismo que expide, expedición, vencimiento, restricciones y, si aplica, resolución y fechas de suspensión— y los bloques de infracciones, solicitudes, certificados de aptitud y médicos, trámites SICOV, pagos ANSV, validaciones de identidad e impuestos de tránsito. Los bloques que el RUNT devuelve vacíos para la mayoría de documentos llegan como arreglos vacíos, no como null. Desde el 6-ago-2026 la fuente oficial exige el `primerApellido` del titular y devuelve el nombre ENMASCARADO (`J**N P***Z`): si no mandas el apellido se intenta resolver, y si no se logra la respuesta es 400 `apellido_requerido` sin cobrar.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `primerApellido` (string, opcional). Primer apellido del titular del documento. La fuente oficial lo exige desde el 6-ago-2026: si no lo mandas se intenta resolver y, si no se logra, la respuesta es 400 con `code: \"apellido_requerido\"` y NO se cobra el crédito. Alias aceptado: `apellido`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/licencia",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "licencia"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"primerApellido\": \"PÉREZ\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Licencias de conducción por cédula (RUNT ciudadano): datos del conductor (nombre, estado de conductor y de ciudadano, número y fecha de inscripción), el arreglo `licenses` con una entrada por categoría —categoría, estado, número, organismo que expide, expedición, vencimiento, restricciones y, si aplica, resolución y fechas de suspensión— y los bloques de infracciones, solicitudes, certificados de aptitud y médicos, trámites SICOV, pagos ANSV, validaciones de identidad e impuestos de tránsito. Los bloques que el RUNT devuelve vacíos para la mayoría de documentos llegan como arreglos vacíos, no como null. Desde el 6-ago-2026 la fuente oficial exige el `primerApellido` del titular y devuelve el nombre ENMASCARADO (`J**N P***Z`): si no mandas el apellido se intenta resolver, y si no se logra la respuesta es 400 `apellido_requerido` sin cobrar.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PA`, `TI`, `CD`, `PPT`, `RC`. Tipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `primerApellido` (string, opcional). Primer apellido del titular del documento. La fuente oficial lo exige desde el 6-ago-2026: si no lo mandas se intenta resolver y, si no se logra, la respuesta es 400 con `code: \"apellido_requerido\"` y NO se cobra el crédito. Alias aceptado: `apellido`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"data\": {\n    \"documentType\": \"CC\",\n    \"documentNumber\": \"1020304050\",\n    \"fullName\": \"J**N P***Z\",\n    \"driverStatus\": \"ACTIVO\",\n    \"citizenStatus\": \"ACTIVA\",\n    \"inscriptionNumber\": \"20310213\",\n    \"inscriptionDate\": \"08/02/2021\",\n    \"consultationDateTime\": \"11/07/2026\",\n    \"totalLicenses\": \"1\",\n    \"licenses\": [\n      {\n        \"category\": \"B1\",\n        \"status\": \"ACTIVA\",\n        \"licenceNumber\": \"1020304050\",\n        \"otExpide\": \"INSTITUTO DE MOVILIDAD\",\n        \"expeditionDate\": \"23/04/2025\",\n        \"dueDate\": \"23/04/2035\",\n        \"examExpirationDate\": null,\n        \"restrictions\": null,\n        \"authorityTransit\": null,\n        \"resolutionNumber\": null,\n        \"startDateSuspension\": null,\n        \"endDateSuspension\": null,\n        \"substratum\": \"1020304050\"\n      }\n    ],\n    \"infractions\": {\n      \"tieneMultas\": \"NO\",\n      \"nroPazYSalvo\": \"885466652067\"\n    },\n    \"requests\": [],\n    \"aptitudeCertificates\": [],\n    \"medicalCertificates\": [],\n    \"sicovRequests\": [],\n    \"ANSVpayments\": [],\n    \"identityValidationAttempts\": {\n      \"estadoUsuario\": \"ACTIVO\",\n      \"fechaDesbloqueo\": null,\n      \"validaciones\": []\n    },\n    \"identityValidationRequests\": {\n      \"estadoUsuario\": \"ACTIVO\",\n      \"fechaDesbloqueo\": null,\n      \"validaciones\": []\n    },\n    \"transitTaxes\": {}\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Vehículo Perú",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/vehiculo-pe",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "vehiculo-pe"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC123\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Ficha técnica de un vehículo peruano por placa, desde el registro oficial de propiedad vehicular. Devuelve los 13 campos canónicos comunes a todos los países; en Perú el registro publica 5 de ellos y el resto llega en `null`, listados en `cobertura.noPublicados`. Una placa fuera del registro responde `no_encontrado`. No incluye datos del propietario. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa peruana. Se aceptan guiones (`ABC-123`).\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vehiculo-pe",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vehiculo-pe"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Ficha técnica de un vehículo peruano por placa, desde el registro oficial de propiedad vehicular. Devuelve los 13 campos canónicos comunes a todos los países; en Perú el registro publica 5 de ellos y el resto llega en `null`, listados en `cobertura.noPublicados`. Una placa fuera del registro responde `no_encontrado`. No incluye datos del propietario. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa peruana. Se aceptan guiones (`ABC-123`).\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"vehiculo\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"pais\": \"PE\",\n    \"placa\": \"ABC123\",\n    \"clase\": null,\n    \"tipo\": null,\n    \"carroceria\": null,\n    \"marca\": \"SUZUKI\",\n    \"linea\": \"GRAND NOMADE\",\n    \"capacidadPasajeros\": null,\n    \"capacidadCargaKg\": null,\n    \"color\": \"GRIS\",\n    \"modelo\": 2010,\n    \"servicioPublico\": null,\n    \"vin\": \"JS3TE04V2A4602091\",\n    \"combustible\": null,\n    \"cilindraje\": null\n  },\n  \"cobertura\": {\n    \"disponibles\": [\n      \"marca\",\n      \"linea\",\n      \"color\",\n      \"modelo\",\n      \"vin\"\n    ],\n    \"noPublicados\": [\n      \"clase\",\n      \"tipo\",\n      \"carroceria\",\n      \"capacidadPasajeros\",\n      \"capacidadCargaKg\",\n      \"servicioPublico\",\n      \"combustible\",\n      \"cilindraje\"\n    ]\n  },\n  \"portalUrl\": \"https://consultavehicular.sunarp.gob.pe/consulta-vehicular/inicio\",\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Vehículo México",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/vehiculo-mx",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "vehiculo-mx"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"placa\": \"ABC1234\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Ficha técnica de un vehículo mexicano por placa, desde el registro público vehicular nacional, más su estado de robo cruzado contra cuatro fuentes: fiscalía, aseguradoras, avisos ministeriales y el registro de robo de EE. UU./Canadá. Devuelve los 13 campos canónicos comunes a todos los países; los que el registro no publica llegan en `null` y quedan listados en `cobertura.noPublicados`. Un vehículo fuera del padrón responde `no_inscrito` (la cobertura del registro es parcial y eso no es un error). No incluye datos del propietario. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa mexicana, sin guiones ni espacios.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vehiculo-mx",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vehiculo-mx"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC1234\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Ficha técnica de un vehículo mexicano por placa, desde el registro público vehicular nacional, más su estado de robo cruzado contra cuatro fuentes: fiscalía, aseguradoras, avisos ministeriales y el registro de robo de EE. UU./Canadá. Devuelve los 13 campos canónicos comunes a todos los países; los que el registro no publica llegan en `null` y quedan listados en `cobertura.noPublicados`. Un vehículo fuera del padrón responde `no_inscrito` (la cobertura del registro es parcial y eso no es un error). No incluye datos del propietario. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `placa` (string, obligatorio). Placa mexicana, sin guiones ni espacios.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"vehiculo\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"pais\": \"MX\",\n    \"placa\": \"ABC1234\",\n    \"clase\": \"AUTOMOVIL\",\n    \"tipo\": null,\n    \"carroceria\": \"HATCHBACK\",\n    \"marca\": \"BMW\",\n    \"linea\": \"120IA\",\n    \"capacidadPasajeros\": null,\n    \"capacidadCargaKg\": null,\n    \"color\": null,\n    \"modelo\": 2019,\n    \"servicioPublico\": null,\n    \"vin\": \"WBA1S1106K7D61956\",\n    \"combustible\": null,\n    \"cilindraje\": null,\n    \"reporteRobo\": {\n      \"reportado\": false,\n      \"fuentes\": {\n        \"fiscalia\": false,\n        \"ocra\": false,\n        \"usaCanada\": false,\n        \"avisosJudiciales\": false\n      }\n    }\n  },\n  \"cobertura\": {\n    \"disponibles\": [\n      \"clase\",\n      \"carroceria\",\n      \"marca\",\n      \"linea\",\n      \"modelo\",\n      \"vin\",\n      \"cilindraje\"\n    ],\n    \"noPublicados\": [\n      \"tipo\",\n      \"capacidadPasajeros\",\n      \"capacidadCargaKg\",\n      \"color\",\n      \"servicioPublico\",\n      \"combustible\"\n    ]\n  },\n  \"portalUrl\": \"https://www2.repuve.gob.mx:8443/ciudadania/\",\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\"\n}"
        }
      ]
    },
    {
      "name": "Antecedentes disciplinarios",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/antecedentes-disciplinarios",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "antecedentes-disciplinarios"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Antecedentes disciplinarios de una persona por documento, del sistema SIRI de la Procuraduría General de la Nación. Devuelve si registra sanciones o inhabilidades vigentes, el nombre completo del titular y el número del certificado para verificarlo ante la entidad. Cuando hay anotaciones vienen ESTRUCTURADAS —sanción, término, clase, delitos, providencia (autoridad y fechas) e inhabilidades con su vigencia—, no como bloque de texto. `inhabilitadoHasta` resume la fecha más lejana de todas: es lo que responde \"¿puedo vincular a esta persona hoy?\" sin recorrer el resto (un certificado real trajo 323 anotaciones, y `anotaciones` viene topada en 50 con el conteo real en `totalAnotaciones`). Sin antecedentes responde `tieneAntecedentes: false` — y esa respuesta también cobra: es el dato que se necesita para contratar o vincular a alguien. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PPT`, `PEP`. Tipo de documento. Esta fuente maneja CC, CE, NIT, PPT y PEP; con PA, TI, CD o RC responde 400 `tipo_documento_no_soportado`.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `primerNombre` (string, opcional). Primer nombre del titular. OPCIONAL y no lo exige la fuente: solo ahorra un par de peticiones al resolver la pregunta de seguridad del portal. No cambia el resultado ni la caché.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/antecedentes-disciplinarios",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "antecedentes-disciplinarios"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Antecedentes disciplinarios de una persona por documento, del sistema SIRI de la Procuraduría General de la Nación. Devuelve si registra sanciones o inhabilidades vigentes, el nombre completo del titular y el número del certificado para verificarlo ante la entidad. Cuando hay anotaciones vienen ESTRUCTURADAS —sanción, término, clase, delitos, providencia (autoridad y fechas) e inhabilidades con su vigencia—, no como bloque de texto. `inhabilitadoHasta` resume la fecha más lejana de todas: es lo que responde \"¿puedo vincular a esta persona hoy?\" sin recorrer el resto (un certificado real trajo 323 anotaciones, y `anotaciones` viene topada en 50 con el conteo real en `totalAnotaciones`). Sin antecedentes responde `tieneAntecedentes: false` — y esa respuesta también cobra: es el dato que se necesita para contratar o vincular a alguien. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `NIT`, `PPT`, `PEP`. Tipo de documento. Esta fuente maneja CC, CE, NIT, PPT y PEP; con PA, TI, CD o RC responde 400 `tipo_documento_no_soportado`.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `primerNombre` (string, opcional). Primer nombre del titular. OPCIONAL y no lo exige la fuente: solo ahorra un par de peticiones al resolver la pregunta de seguridad del portal. No cambia el resultado ni la caché.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"antecedentes-disciplinarios\",\n  \"status\": \"danger\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"tipoDocumento\": \"Cédula de ciudadanía\",\n    \"nombre\": \"JUAN PEREZ GOMEZ\",\n    \"tieneAntecedentes\": true,\n    \"descripcion\": \"Registra sanciones o inhabilidades vigentes\",\n    \"anotaciones\": [\n      {\n        \"tipo\": \"SANCIONES PENALES\",\n        \"registroSiri\": \"201221493\",\n        \"sanciones\": [\n          {\n            \"sancion\": \"PRISION\",\n            \"termino\": \"8 AÑOS\",\n            \"clase\": \"PRINCIPAL\",\n            \"suspendida\": \"\"\n          }\n        ],\n        \"delitos\": [\n          \"LAVADO DE ACTIVOS (LEY 599 DE 2000)\"\n        ],\n        \"providencias\": [\n          {\n            \"instancia\": \"PRIMERA\",\n            \"autoridad\": \"JUZGADO 1 PENAL DEL CIRCUITO - BUGA (VALLE DEL CAUCA)\",\n            \"fechaProvidencia\": \"06/09/2017\",\n            \"fechaEfectosJuridicos\": \"11/06/2019\"\n          }\n        ],\n        \"inhabilidades\": [\n          {\n            \"modulo\": \"PENAL\",\n            \"inhabilidad\": \"INHABILIDAD PARA DESEMPEÑAR CARGOS PÚBLICOS LEY 1952 DE 2019 ART 42\",\n            \"fechaInicio\": \"11/06/2019\",\n            \"fechaFin\": \"10/06/2027\"\n          }\n        ]\n      }\n    ],\n    \"totalAnotaciones\": 1,\n    \"inhabilitadoHasta\": \"10/06/2027\",\n    \"certificadoNumero\": \"301011498\",\n    \"fechaExpedicion\": \"11 de agosto del 2026\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Antecedentes fiscales",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/antecedentes-fiscales",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "antecedentes-fiscales"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Antecedentes fiscales de una persona natural por documento, del Boletín de Responsables Fiscales (SIBOR) de la Contraloría General de la República. Devuelve si está reportada como responsable fiscal y el código con el que se comprueba la autenticidad del certificado ante la entidad. Es el requisito para contratar con el Estado y para posesionarse en cargos públicos. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `PA`, `PPT`, `PEP`. Tipo de documento. Esta fuente maneja CC, CE, TI, PA, PPT y PEP (personas naturales). Con NIT, CD o RC responde 400 `tipo_documento_no_soportado`: las personas jurídicas se certifican por otra vía.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/antecedentes-fiscales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "antecedentes-fiscales"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Antecedentes fiscales de una persona natural por documento, del Boletín de Responsables Fiscales (SIBOR) de la Contraloría General de la República. Devuelve si está reportada como responsable fiscal y el código con el que se comprueba la autenticidad del certificado ante la entidad. Es el requisito para contratar con el Estado y para posesionarse en cargos públicos. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `PA`, `PPT`, `PEP`. Tipo de documento. Esta fuente maneja CC, CE, TI, PA, PPT y PEP (personas naturales). Con NIT, CD o RC responde 400 `tipo_documento_no_soportado`: las personas jurídicas se certifican por otra vía.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"antecedentes-fiscales\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"tipoDocumento\": \"Cédula de Ciudadanía\",\n    \"tieneAntecedentes\": false,\n    \"descripcion\": \"No se encuentra reportado como responsable fiscal\",\n    \"codigoVerificacion\": \"1020304050260811171708\",\n    \"fechaConsulta\": \"martes 11 de agosto de 2026 17:17:08\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Antecedentes judiciales",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/antecedentes-judiciales",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "antecedentes-judiciales"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Antecedentes judiciales de una persona por documento, del sistema de la Policía Nacional. Certifica si la persona **tiene asuntos pendientes con las autoridades judiciales HOY**; por la Sentencia SU-458 de 2012 la consulta de terceros no revela condenas ya cumplidas o prescritas, así que no es un historial penal. `descripcion` trae la leyenda textual del registro, que tiene dos formas para el caso sin asuntos pendientes y no son intercambiables: conviene leerla, no solo la bandera. Devuelve además el nombre del titular en orden apellidos-nombres. **`nombre` vacío es una señal, no un hueco**: el registro omite esa línea cuando el documento no figura en la Registraduría. **Cuesta 2 créditos**: es el único endpoint de la familia que paga un resolvedor de captcha en cada consulta viva. Un hit de caché no cobra, y si la fuente falla se devuelven los 2.\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `PA`, `CD`. Tipo de documento. Esta fuente maneja CC, CE, PA y CD (documento de país de origen). Con NIT, TI, PPT, RC o PEP responde 400 `tipo_documento_no_soportado`.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/antecedentes-judiciales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "antecedentes-judiciales"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Antecedentes judiciales de una persona por documento, del sistema de la Policía Nacional. Certifica si la persona **tiene asuntos pendientes con las autoridades judiciales HOY**; por la Sentencia SU-458 de 2012 la consulta de terceros no revela condenas ya cumplidas o prescritas, así que no es un historial penal. `descripcion` trae la leyenda textual del registro, que tiene dos formas para el caso sin asuntos pendientes y no son intercambiables: conviene leerla, no solo la bandera. Devuelve además el nombre del titular en orden apellidos-nombres. **`nombre` vacío es una señal, no un hueco**: el registro omite esa línea cuando el documento no figura en la Registraduría. **Cuesta 2 créditos**: es el único endpoint de la familia que paga un resolvedor de captcha en cada consulta viva. Un hit de caché no cobra, y si la fuente falla se devuelven los 2.\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `PA`, `CD`. Tipo de documento. Esta fuente maneja CC, CE, PA y CD (documento de país de origen). Con NIT, TI, PPT, RC o PEP responde 400 `tipo_documento_no_soportado`.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"antecedentes-judiciales\",\n  \"status\": \"ok\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"nombre\": \"PEREZ GOMEZ JUAN CARLOS\",\n    \"tipoDocumento\": \"Cédula de Ciudadanía\",\n    \"tieneAntecedentes\": false,\n    \"descripcion\": \"No tiene asuntos pendientes con las autoridades judiciales\",\n    \"anotaciones\": [],\n    \"fechaConsulta\": \"11/08/2026 05:50:05 PM\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 2\n}"
        }
      ]
    },
    {
      "name": "Listas restrictivas (OFAC)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/listas-restrictivas",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "listas-restrictivas"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"nombre\": \"JUAN PEREZ GOMEZ\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Búsqueda de una persona o empresa en las listas de sanciones de OFAC (Departamento del Tesoro de EE. UU.): la lista SDN —la \"lista Clinton\"— y las listas consolidadas no-SDN. Se consulta POR NOMBRE, no por documento: estas listas no manejan cédulas. Devuelve cada coincidencia con su puntaje 0–1, el programa de sanciones, la lista de origen y si el emparejamiento fue contra un alias (a.k.a.). La búsqueda cubre también los ~21.000 alias registrados, que es donde aparecen las variantes de escritura. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `nombre` (string, obligatorio). Nombre completo de la persona o razón social. El orden no importa: la comparación es por palabras, sin tildes ni puntuación. Se exige que TODAS las palabras del nombre aparezcan en el registro, así que apellidos sueltos devuelven muchas coincidencias y nombres completos muy pocas.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/listas-restrictivas",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "listas-restrictivas"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nombre\": \"JUAN PEREZ GOMEZ\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Búsqueda de una persona o empresa en las listas de sanciones de OFAC (Departamento del Tesoro de EE. UU.): la lista SDN —la \"lista Clinton\"— y las listas consolidadas no-SDN. Se consulta POR NOMBRE, no por documento: estas listas no manejan cédulas. Devuelve cada coincidencia con su puntaje 0–1, el programa de sanciones, la lista de origen y si el emparejamiento fue contra un alias (a.k.a.). La búsqueda cubre también los ~21.000 alias registrados, que es donde aparecen las variantes de escritura. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `nombre` (string, obligatorio). Nombre completo de la persona o razón social. El orden no importa: la comparación es por palabras, sin tildes ni puntuación. Se exige que TODAS las palabras del nombre aparezcan en el registro, así que apellidos sueltos devuelven muchas coincidencias y nombres completos muy pocas.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"listas-restrictivas\",\n  \"status\": \"danger\",\n  \"data\": {\n    \"nombreConsultado\": \"JUAN PEREZ GOMEZ\",\n    \"tieneAntecedentes\": true,\n    \"descripcion\": \"Coincide con 1 registro(s) de las listas de sanciones\",\n    \"enListas\": true,\n    \"totalCoincidencias\": 1,\n    \"coincidencias\": [\n      {\n        \"nombre\": \"PEREZ GOMEZ, Juan\",\n        \"tipo\": \"individual\",\n        \"programas\": [\n          \"SDNT\"\n        ],\n        \"lista\": \"SDN\",\n        \"esAlias\": false,\n        \"observaciones\": \"DOB 23 Nov 1943; Cedula No. 1020304050 (Colombia).\",\n        \"documentos\": [\n          \"Cedula 1020304050\"\n        ],\n        \"fechasNacimiento\": [\n          \"23 Nov 1943\"\n        ],\n        \"coincidencia\": 1\n      }\n    ],\n    \"listaActualizada\": \"2026-07-24T15:04:05.000Z\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Notificaciones rojas (INTERPOL)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/notificaciones-internacionales",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "notificaciones-internacionales"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"nombres\": \"JUAN\",\n  \"apellidos\": \"PEREZ GOMEZ\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Notificaciones rojas públicas de INTERPOL por nombre. Nombres y apellidos van SEPARADOS porque la fuente los filtra por campos distintos; mandarlo todo junto en uno solo no encuentra nada. Devuelve cada notificación con su identificador oficial, fecha de nacimiento, nacionalidades y el enlace a la ficha pública. Cuesta 1 crédito. **Hoy responde 503 `fuente_no_disponible` y no cobra**: la fuente rechaza todas nuestras salidas de red y queda pendiente habilitar una que acepte.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `nombres` (string, opcional). Nombres de pila. Se requiere al menos uno de `nombres` o `apellidos`.\n- `apellidos` (string, opcional). Apellidos. Se requiere al menos uno de `nombres` o `apellidos`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/notificaciones-internacionales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "notificaciones-internacionales"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nombres\": \"JUAN\",\n  \"apellidos\": \"PEREZ GOMEZ\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Notificaciones rojas públicas de INTERPOL por nombre. Nombres y apellidos van SEPARADOS porque la fuente los filtra por campos distintos; mandarlo todo junto en uno solo no encuentra nada. Devuelve cada notificación con su identificador oficial, fecha de nacimiento, nacionalidades y el enlace a la ficha pública. Cuesta 1 crédito. **Hoy responde 503 `fuente_no_disponible` y no cobra**: la fuente rechaza todas nuestras salidas de red y queda pendiente habilitar una que acepte.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `nombres` (string, opcional). Nombres de pila. Se requiere al menos uno de `nombres` o `apellidos`.\n- `apellidos` (string, opcional). Apellidos. Se requiere al menos uno de `nombres` o `apellidos`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"notificaciones-internacionales\",\n  \"status\": \"danger\",\n  \"data\": {\n    \"nombreConsultado\": \"JUAN PEREZ GOMEZ\",\n    \"tieneAntecedentes\": true,\n    \"descripcion\": \"Coincide con 1 notificación(es) roja(s) publicada(s)\",\n    \"tieneNotificacion\": true,\n    \"totalCoincidencias\": 1,\n    \"notificaciones\": [\n      {\n        \"id\": \"2025/81694\",\n        \"nombres\": \"JUAN\",\n        \"apellidos\": \"PEREZ GOMEZ\",\n        \"fechaNacimiento\": \"1985/03/14\",\n        \"nacionalidades\": [\n          \"CO\"\n        ],\n        \"fichaUrl\": \"https://www.interpol.int/en/How-we-work/Notices/Red-Notices/View-Red-Notices#2025-81694\"\n      }\n    ]\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Contratación estatal (SECOP II)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/secop",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "secop"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"documento\": \"900123456\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Contratos de una persona o una empresa con el Estado colombiano, del SECOP II de Colombia Compra Eficiente. Se busca por `documento` (NIT o cédula) o por `nombre` del proveedor; el documento manda si llegan los dos. Devuelve un **resumen agregado sobre el histórico completo** —total de contratos, valor contratado, valor pagado, entidades distintas y conteo por estado— y una página de hasta 50 contratos con entidad, objeto, modalidad, valores y fechas. Es la respuesta a \"¿este proveedor ya le ha contratado al Estado, a quién y por cuánto?\", el dato que se pide en una debida diligencia. **Sin contratos también responde 200 con datos y cobra**: \"no ha contratado con el Estado\" es exactamente lo que se vino a comprobar. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `documento` (string, opcional). NIT o cédula del proveedor, solo dígitos y sin el dígito de verificación. Se requiere `documento` o `nombre`; si llegan los dos manda este, que identifica sin ambigüedad. Alias aceptados: `doc` y `nit`.\n- `nombre` (string, opcional). Nombre o razón social del proveedor, o parte de ella (búsqueda parcial, sin distinguir mayúsculas). Útil cuando no se tiene el NIT. Mínimo 3 caracteres.\n- `estado` (string, opcional). Filtra por el estado del contrato tal como lo publica la fuente: `En ejecución`, `Terminado`, `Cerrado`, `Cancelado`, `Modificado`. Sin este parámetro vienen todos.\n- `offset` (number, opcional). Paginación en filas, no en número de página (0, 50, 100…). Cada página trae hasta 50 contratos; `paginacion.hayMas` dice si vale la pena pedir la siguiente.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/secop",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "secop"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"documento\": \"900123456\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Contratos de una persona o una empresa con el Estado colombiano, del SECOP II de Colombia Compra Eficiente. Se busca por `documento` (NIT o cédula) o por `nombre` del proveedor; el documento manda si llegan los dos. Devuelve un **resumen agregado sobre el histórico completo** —total de contratos, valor contratado, valor pagado, entidades distintas y conteo por estado— y una página de hasta 50 contratos con entidad, objeto, modalidad, valores y fechas. Es la respuesta a \"¿este proveedor ya le ha contratado al Estado, a quién y por cuánto?\", el dato que se pide en una debida diligencia. **Sin contratos también responde 200 con datos y cobra**: \"no ha contratado con el Estado\" es exactamente lo que se vino a comprobar. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `documento` (string, opcional). NIT o cédula del proveedor, solo dígitos y sin el dígito de verificación. Se requiere `documento` o `nombre`; si llegan los dos manda este, que identifica sin ambigüedad. Alias aceptados: `doc` y `nit`.\n- `nombre` (string, opcional). Nombre o razón social del proveedor, o parte de ella (búsqueda parcial, sin distinguir mayúsculas). Útil cuando no se tiene el NIT. Mínimo 3 caracteres.\n- `estado` (string, opcional). Filtra por el estado del contrato tal como lo publica la fuente: `En ejecución`, `Terminado`, `Cerrado`, `Cancelado`, `Modificado`. Sin este parámetro vienen todos.\n- `offset` (number, opcional). Paginación en filas, no en número de página (0, 50, 100…). Cada página trae hasta 50 contratos; `paginacion.hayMas` dice si vale la pena pedir la siguiente.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"contratacion-estatal\",\n  \"status\": \"info\",\n  \"data\": {\n    \"proveedor\": {\n      \"nombre\": \"CONSTRUCTORA EJEMPLO S.A.S.\",\n      \"documento\": \"900123456\",\n      \"tipoDocumento\": \"NIT\"\n    },\n    \"resumen\": {\n      \"tieneContratos\": true,\n      \"totalContratos\": 21,\n      \"valorTotal\": 491032542,\n      \"valorPagado\": 305118000,\n      \"totalEntidades\": 4,\n      \"porEstado\": {\n        \"En ejecución\": 3,\n        \"Terminado\": 18\n      },\n      \"primerContrato\": \"2019-04-02\",\n      \"ultimoContrato\": \"2026-06-18\"\n    },\n    \"contratos\": [\n      {\n        \"id\": \"CO1.PCCNTR.4168447\",\n        \"referencia\": \"CPS-3548-2022\",\n        \"entidad\": \"GOBERNACIÓN DEL QUINDÍO\",\n        \"nitEntidad\": \"890000464\",\n        \"objeto\": \"Prestación de servicios profesionales para la interventoría de la obra\",\n        \"tipoContrato\": \"Prestación de servicios\",\n        \"modalidad\": \"Contratación directa\",\n        \"estado\": \"En ejecución\",\n        \"valorContrato\": 16000000,\n        \"valorPagado\": 8000000,\n        \"valorPendiente\": 8000000,\n        \"fechaFirma\": \"2026-02-01\",\n        \"fechaInicio\": \"2026-02-05\",\n        \"fechaFin\": \"2026-12-31\",\n        \"departamento\": \"Quindío\",\n        \"ciudad\": \"Armenia\",\n        \"urlProceso\": \"https://community.secop.gov.co/Public/Tendering/OpportunityDetail/Index?noticeUID=CO1.NTC.0000\"\n      }\n    ],\n    \"paginacion\": {\n      \"offset\": 0,\n      \"limit\": 50,\n      \"hayMas\": false\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Procesos judiciales",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/rama-judicial",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "rama-judicial"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"radicado\": \"11001310300320210012300\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Procesos judiciales de la Consulta de Procesos Nacional Unificada de la Rama Judicial. Se busca por `radicado` (23 dígitos) o por `nombre` de una de las partes, indicando si es persona natural o jurídica. Devuelve despacho, departamento, fechas y las **partes procesales ya separadas por rol** (la fuente las entrega en un solo texto plano). Consultando por radicado agrega además el **detalle** (ponente, tipo y clase de proceso, ubicación del expediente) y las **últimas actuaciones con su anotación**, que es lo que responde \"en qué va el proceso\" y no solo \"existe\". `status` es siempre `info` cuando hay procesos, nunca `danger`: la lista incluye tutelas, casos cerrados y procesos donde la persona es la DEMANDANTE. Cuesta 1 crédito. Por nombre, cero procesos es un resultado válido y cobra; un radicado que no existe responde 404 y **no cobra**.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `radicado` (string, opcional). Número de radicado, exactamente 23 dígitos (CCCJJJSSAAAA00000000D: ciudad, juzgado, especialidad, año, consecutivo y dígito de verificación). Los guiones y espacios se ignoran. Se requiere `radicado` o `nombre`. Alias aceptado: `numero`.\n- `nombre` (string, opcional). Nombre o razón social de una de las partes. Mínimo 3 caracteres. Si la búsqueda arroja más de mil procesos la fuente la rechaza con 400 `consulta_invalida`: hay que acotarla. Alias aceptado: `razonSocial`.\n- `tipoPersona` (string, opcional). Valores: `nat`, `jur`. Solo aplica con `nombre`: `nat` (natural) o `jur` (jurídica). Por defecto `nat`. La fuente NO busca en las dos a la vez — pedir una empresa como `nat` devuelve vacío en silencio, que se lee como \"no tiene procesos\".\n- `soloActivos` (boolean, opcional). `true` deja solo los procesos activos. Por defecto vienen todos, incluidos los terminados: un proceso cerrado hace dos años sigue siendo información para quien verifica.\n- `pagina` (number, opcional). Página de resultados, empezando en 1. La fuente devuelve 20 procesos por página; `paginacion.cantidadPaginas` dice cuántas hay.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/rama-judicial",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "rama-judicial"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"radicado\": \"11001310300320210012300\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Procesos judiciales de la Consulta de Procesos Nacional Unificada de la Rama Judicial. Se busca por `radicado` (23 dígitos) o por `nombre` de una de las partes, indicando si es persona natural o jurídica. Devuelve despacho, departamento, fechas y las **partes procesales ya separadas por rol** (la fuente las entrega en un solo texto plano). Consultando por radicado agrega además el **detalle** (ponente, tipo y clase de proceso, ubicación del expediente) y las **últimas actuaciones con su anotación**, que es lo que responde \"en qué va el proceso\" y no solo \"existe\". `status` es siempre `info` cuando hay procesos, nunca `danger`: la lista incluye tutelas, casos cerrados y procesos donde la persona es la DEMANDANTE. Cuesta 1 crédito. Por nombre, cero procesos es un resultado válido y cobra; un radicado que no existe responde 404 y **no cobra**.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `radicado` (string, opcional). Número de radicado, exactamente 23 dígitos (CCCJJJSSAAAA00000000D: ciudad, juzgado, especialidad, año, consecutivo y dígito de verificación). Los guiones y espacios se ignoran. Se requiere `radicado` o `nombre`. Alias aceptado: `numero`.\n- `nombre` (string, opcional). Nombre o razón social de una de las partes. Mínimo 3 caracteres. Si la búsqueda arroja más de mil procesos la fuente la rechaza con 400 `consulta_invalida`: hay que acotarla. Alias aceptado: `razonSocial`.\n- `tipoPersona` (string, opcional). Valores: `nat`, `jur`. Solo aplica con `nombre`: `nat` (natural) o `jur` (jurídica). Por defecto `nat`. La fuente NO busca en las dos a la vez — pedir una empresa como `nat` devuelve vacío en silencio, que se lee como \"no tiene procesos\".\n- `soloActivos` (boolean, opcional). `true` deja solo los procesos activos. Por defecto vienen todos, incluidos los terminados: un proceso cerrado hace dos años sigue siendo información para quien verifica.\n- `pagina` (number, opcional). Página de resultados, empezando en 1. La fuente devuelve 20 procesos por página; `paginacion.cantidadPaginas` dice cuántas hay.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"procesos-judiciales\",\n  \"status\": \"info\",\n  \"data\": {\n    \"consulta\": {\n      \"radicado\": \"11001310300320210012300\",\n      \"nombre\": \"\",\n      \"tipoPersona\": \"\"\n    },\n    \"resumen\": {\n      \"tieneProcesos\": true,\n      \"totalProcesos\": 1\n    },\n    \"procesos\": [\n      {\n        \"idProceso\": 89834312,\n        \"radicado\": \"11001310300320210012300\",\n        \"fechaRadicacion\": \"2021-03-25\",\n        \"fechaUltimaActuacion\": \"2021-04-12\",\n        \"despacho\": \"JUZGADO 003 CIVIL DEL CIRCUITO DE BOGOTÁ\",\n        \"departamento\": \"BOGOTÁ\",\n        \"esPrivado\": false,\n        \"partes\": [\n          {\n            \"rol\": \"Demandante\",\n            \"nombre\": \"JUAN PEREZ GOMEZ\"\n          },\n          {\n            \"rol\": \"Demandado\",\n            \"nombre\": \"ENTIDAD PUBLICA DE EJEMPLO\"\n          }\n        ],\n        \"detalle\": {\n          \"ponente\": \"NOMBRE DEL PONENTE\",\n          \"tipoProceso\": \"Acción de Tutela\",\n          \"claseProceso\": \"Tutelas\",\n          \"subclaseProceso\": \"Sin Subclase de Proceso\",\n          \"recurso\": \"Sin Tipo de Recurso\",\n          \"ubicacion\": \"Secretaria - Oficios\",\n          \"ultimaActualizacion\": \"2026-08-19T18:33:50.517\"\n        },\n        \"actuaciones\": [\n          {\n            \"fecha\": \"2021-04-12\",\n            \"actuacion\": \"Sentencia tutela primera Instancia\",\n            \"anotacion\": \"CONCEDE\",\n            \"fechaInicial\": \"\",\n            \"fechaFinal\": \"\",\n            \"fechaRegistro\": \"2021-04-12\",\n            \"tieneDocumentos\": false\n          }\n        ],\n        \"totalActuaciones\": 7\n      }\n    ],\n    \"paginacion\": {\n      \"pagina\": 1,\n      \"registrosPagina\": 20,\n      \"cantidadPaginas\": 1,\n      \"cantidadRegistros\": 1\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Declaraciones de bienes y rentas",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/sigep",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sigep"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"documento\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Declaraciones de bienes y rentas y conflicto de interés (Ley 2013 de 2019) de servidores públicos y contratistas del Estado, del buscador ciudadano de la Función Pública. Se busca por `documento` o por `nombre`. Devuelve cada declaración con la entidad, el cargo, el motivo (ingreso, periódico o retiro), el número, la fecha de publicación y su estado, más un resumen con las entidades donde ha declarado. Responde \"¿esta persona de verdad trabaja o contrata con el Estado, dónde y desde cuándo?\". **No entrega el PDF de la declaración**: la descarga del portal sí valida captcha y no se puede automatizar; se devuelve `idDeclaracion` y `portalUrl` para bajarlo a mano. Cuesta 1 crédito, y \"no tiene declaraciones publicadas\" es una respuesta válida que cobra.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `documento` (string, opcional). Número de documento del declarante. Se requiere `documento` o `nombre`. Alias aceptados: `doc` y `cedula`.\n- `nombre` (string, opcional). Nombre del declarante, o parte de él (búsqueda parcial). Mínimo 3 caracteres.\n- `tipoPersona` (string, opcional). Valores: `nat`, `jur`. `nat` (natural, por defecto) o `jur` (jurídica). La fuente consulta las dos por separado y NO busca en ambas a la vez.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/sigep",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "sigep"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"documento\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Declaraciones de bienes y rentas y conflicto de interés (Ley 2013 de 2019) de servidores públicos y contratistas del Estado, del buscador ciudadano de la Función Pública. Se busca por `documento` o por `nombre`. Devuelve cada declaración con la entidad, el cargo, el motivo (ingreso, periódico o retiro), el número, la fecha de publicación y su estado, más un resumen con las entidades donde ha declarado. Responde \"¿esta persona de verdad trabaja o contrata con el Estado, dónde y desde cuándo?\". **No entrega el PDF de la declaración**: la descarga del portal sí valida captcha y no se puede automatizar; se devuelve `idDeclaracion` y `portalUrl` para bajarlo a mano. Cuesta 1 crédito, y \"no tiene declaraciones publicadas\" es una respuesta válida que cobra.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `documento` (string, opcional). Número de documento del declarante. Se requiere `documento` o `nombre`. Alias aceptados: `doc` y `cedula`.\n- `nombre` (string, opcional). Nombre del declarante, o parte de él (búsqueda parcial). Mínimo 3 caracteres.\n- `tipoPersona` (string, opcional). Valores: `nat`, `jur`. `nat` (natural, por defecto) o `jur` (jurídica). La fuente consulta las dos por separado y NO busca en ambas a la vez.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"declaraciones-bienes-rentas\",\n  \"status\": \"info\",\n  \"data\": {\n    \"consulta\": {\n      \"documento\": \"1020304050\",\n      \"nombre\": \"\"\n    },\n    \"resumen\": {\n      \"tieneDeclaraciones\": true,\n      \"totalDeclaraciones\": 2,\n      \"entidades\": [\n        \"ALCALDIA DE MUNICIPIO EJEMPLO\"\n      ],\n      \"ultimaPublicacion\": \"2026-07-10 12:07\"\n    },\n    \"declaraciones\": [\n      {\n        \"idDeclaracion\": \"9000001\",\n        \"nombre\": \"MARIA FERNANDA GOMEZ RUIZ\",\n        \"tipoDocumento\": \"CEDULA DE CIUDADANIA\",\n        \"numeroDocumento\": \"1020304050\",\n        \"entidad\": \"ALCALDIA DE MUNICIPIO EJEMPLO\",\n        \"cargo\": \"CONTRATISTA\",\n        \"tipoPublicacion\": \"PERIÓDICO\",\n        \"declaracionNo\": \"8100001-02\",\n        \"observacion\": \"Corrección de 8100001-01\",\n        \"fechaPublicacion\": \"2026-07-10 12:07\",\n        \"estado\": \"FINALIZADO\"\n      }\n    ],\n    \"portalUrl\": \"https://www.funcionpublica.gov.co/fdci/consultaCiudadana\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Registro mercantil",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/rues",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "rues"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"documento\": \"899999068\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Empresas y comerciantes inscritos en las Cámaras de Comercio (el registro que el público consulta como \"RUES\"). Se busca por `documento` (NIT o cédula, vía exacta y recomendada) o por `nombre`. Devuelve razón social, matrícula, cámara, **estado de la matrícula**, tipo de sociedad, organización jurídica, códigos CIIU principal y secundario, fechas de matrícula, renovación, vigencia y cancelación, el último año renovado, si está inscrita como proponente y el **representante legal con su documento**. La búsqueda por `nombre` es de **texto completo**: \"EL OSO\" encuentra también \"INVERSIONES ALTAMIRA EL OSO\", y los resultados llegan por relevancia. `resumen.totalCoincidencias` es el conteo real en las dos vías. Cuesta 1 crédito, y cero coincidencias es un resultado válido que cobra.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `documento` (string, opcional). NIT o cédula del inscrito. Se acepta con puntos y con el dígito de verificación (`900123456-7`): se normaliza y el dígito se descarta, porque el registro lo guarda en una columna aparte y buscarlo pegado no encuentra nada. Alias aceptados: `doc`, `nit`.\n- `nombre` (string, opcional). Razón social o cualquier parte de ella: es búsqueda de texto completo, no por prefijo. Mínimo 3 caracteres. Alias aceptado: `razonSocial`.\n- `termino` (string, opcional). Campo único que acepta NIT **o** razón social; se enruta según su contenido (solo dígitos = documento). Existe para migrar desde proveedores que usan un solo campo de búsqueda.\n- `offset` (number, opcional). Paginación en filas (0, 50, 100…). Cada página trae hasta 50 registros.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/rues",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "rues"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"documento\": \"899999068\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Empresas y comerciantes inscritos en las Cámaras de Comercio (el registro que el público consulta como \"RUES\"). Se busca por `documento` (NIT o cédula, vía exacta y recomendada) o por `nombre`. Devuelve razón social, matrícula, cámara, **estado de la matrícula**, tipo de sociedad, organización jurídica, códigos CIIU principal y secundario, fechas de matrícula, renovación, vigencia y cancelación, el último año renovado, si está inscrita como proponente y el **representante legal con su documento**. La búsqueda por `nombre` es de **texto completo**: \"EL OSO\" encuentra también \"INVERSIONES ALTAMIRA EL OSO\", y los resultados llegan por relevancia. `resumen.totalCoincidencias` es el conteo real en las dos vías. Cuesta 1 crédito, y cero coincidencias es un resultado válido que cobra.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `documento` (string, opcional). NIT o cédula del inscrito. Se acepta con puntos y con el dígito de verificación (`900123456-7`): se normaliza y el dígito se descarta, porque el registro lo guarda en una columna aparte y buscarlo pegado no encuentra nada. Alias aceptados: `doc`, `nit`.\n- `nombre` (string, opcional). Razón social o cualquier parte de ella: es búsqueda de texto completo, no por prefijo. Mínimo 3 caracteres. Alias aceptado: `razonSocial`.\n- `termino` (string, opcional). Campo único que acepta NIT **o** razón social; se enruta según su contenido (solo dígitos = documento). Existe para migrar desde proveedores que usan un solo campo de búsqueda.\n- `offset` (number, opcional). Paginación en filas (0, 50, 100…). Cada página trae hasta 50 registros.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"registro-mercantil\",\n  \"status\": \"info\",\n  \"data\": {\n    \"consulta\": {\n      \"documento\": \"899999068\",\n      \"nombre\": \"\"\n    },\n    \"resumen\": {\n      \"tieneRegistro\": true,\n      \"totalCoincidencias\": 1,\n      \"exacto\": true,\n      \"activas\": 1\n    },\n    \"empresas\": [\n      {\n        \"razonSocial\": \"EMPRESA DE EJEMPLO S A\",\n        \"numeroIdentificacion\": \"899999068\",\n        \"claseIdentificacion\": \"NIT\",\n        \"digitoVerificacion\": \"1\",\n        \"matricula\": \"1291197\",\n        \"camaraComercio\": \"BOGOTA\",\n        \"estadoMatricula\": \"ACTIVA\",\n        \"tipoSociedad\": \"SOCIEDAD COMERCIAL\",\n        \"organizacionJuridica\": \"SOCIEDAD ANONIMA\",\n        \"categoriaMatricula\": \"SOCIEDAD ó PERSONA JURIDICA PRINCIPAL ó ESAL\",\n        \"ciiuPrincipal\": \"0610\",\n        \"ciiuSecundario\": \"0620\",\n        \"fechaMatricula\": \"2003-07-18\",\n        \"fechaRenovacion\": \"2026-03-30\",\n        \"fechaCancelacion\": \"\",\n        \"fechaVigencia\": \"2103-07-07\",\n        \"ultimoAnoRenovado\": \"2026\",\n        \"representanteLegal\": \"NOMBRE DEL REPRESENTANTE LEGAL\",\n        \"documentoRepresentanteLegal\": \"19451246\",\n        \"inscritaComoProponente\": false\n      }\n    ],\n    \"paginacion\": {\n      \"offset\": 0,\n      \"limit\": 50,\n      \"hayMas\": false\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Nombre por documento",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/cedula",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "cedula"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Nombre completo del titular de un documento de identidad. Devuelve el nombre ya partido en `partes`, para no tener que adivinar del lado del cliente dónde termina el nombre y empieza el apellido. Consulta DOS registros en cascada: primero el registro social del DNP —instantáneo, y de regalo trae `sexo`, `edad`, `municipio` y `departamento`—, y si la persona no figura ahí cae al certificado de la Procuraduría, que cubre a cualquiera con documento colombiano pero tarda más. `origen` dice cuál respondió, así se sabe por qué unos campos vienen vacíos. Es el primer paso de cualquier verificación: confirmar que el documento existe y a quién pertenece antes de gastar consultas en antecedentes o en el vehículo. **Un documento sin titular registrado responde 404 y NO cobra** — a diferencia de los antecedentes, donde \"no registra\" sí cobra: acá el producto es el nombre, y si no vino no se entregó nada. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `NIT`, `PPT`, `PEP`. Tipo de documento. La cobertura depende de cuál de los dos registros responda: el social maneja RC, TI, CC, CE, PA, PEP y PPT; el certificado maneja CC, CE, NIT, PPT y PEP. Un tipo que ninguno acepta responde 400 `tipo_documento_no_soportado` sin cobrar.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `primerNombre` (string, opcional). Primer nombre del titular. OPCIONAL: solo se usa si la consulta cae al certificado, donde ahorra un par de peticiones al resolver la pregunta de seguridad del portal. No cambia el resultado ni la caché.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/cedula",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "cedula"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Nombre completo del titular de un documento de identidad. Devuelve el nombre ya partido en `partes`, para no tener que adivinar del lado del cliente dónde termina el nombre y empieza el apellido. Consulta DOS registros en cascada: primero el registro social del DNP —instantáneo, y de regalo trae `sexo`, `edad`, `municipio` y `departamento`—, y si la persona no figura ahí cae al certificado de la Procuraduría, que cubre a cualquiera con documento colombiano pero tarda más. `origen` dice cuál respondió, así se sabe por qué unos campos vienen vacíos. Es el primer paso de cualquier verificación: confirmar que el documento existe y a quién pertenece antes de gastar consultas en antecedentes o en el vehículo. **Un documento sin titular registrado responde 404 y NO cobra** — a diferencia de los antecedentes, donde \"no registra\" sí cobra: acá el producto es el nombre, y si no vino no se entregó nada. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `NIT`, `PPT`, `PEP`. Tipo de documento. La cobertura depende de cuál de los dos registros responda: el social maneja RC, TI, CC, CE, PA, PEP y PPT; el certificado maneja CC, CE, NIT, PPT y PEP. Un tipo que ninguno acepta responde 400 `tipo_documento_no_soportado` sin cobrar.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `primerNombre` (string, opcional). Primer nombre del titular. OPCIONAL: solo se usa si la consulta cae al certificado, donde ahorra un par de peticiones al resolver la pregunta de seguridad del portal. No cambia el resultado ni la caché.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"identidad\",\n  \"status\": \"info\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"tipoDocumento\": \"Cédula de ciudadanía\",\n    \"nombre\": \"JUAN CARLOS PEREZ GOMEZ\",\n    \"partes\": [\n      \"JUAN\",\n      \"CARLOS\",\n      \"PEREZ\",\n      \"GOMEZ\"\n    ],\n    \"sexo\": \"Masculino\",\n    \"edad\": 38,\n    \"municipio\": \"CALI\",\n    \"departamento\": \"VALLE DEL CAUCA\",\n    \"origen\": \"registro-social\"\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Clasificación social (Sisbén y RUI)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/sisben",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sisben"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Clasificación socioeconómica de una persona por documento, de la Ventanilla Social del DNP. Devuelve el **grupo del Sisbén IV** (A pobreza extrema · B pobreza moderada · C vulnerable · D no pobre/no vulnerable) con su subgrupo y descripción, el **grupo del RUI** —el Registro Universal de Ingresos, la escala que reemplazó al Sisbén como criterio de focalización— y los datos básicos de la persona: nombre, sexo, edad, municipio y departamento. Sirve para verificar elegibilidad a subsidios y programas sociales. **Una persona no registrada responde 404 y NO cobra.** ⚠️ Nota de calidad que conviene conocer: el endpoint oficial del grupo Sisbén le asigna \"D4 – no pobre, no vulnerable\" a documentos que **no existen**; acá la existencia la decide el registro de ingresos y el grupo solo se publica si esa verificación pasó, así que un `sisben: null` significa \"la persona existe pero no tiene grupo publicado\", nunca un dato inventado. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`, `PEP`. Tipo de documento. Es un registro de PERSONAS naturales: con NIT o carné diplomático responde 400 `tipo_documento_no_soportado` sin cobrar.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/sisben",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "sisben"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Clasificación socioeconómica de una persona por documento, de la Ventanilla Social del DNP. Devuelve el **grupo del Sisbén IV** (A pobreza extrema · B pobreza moderada · C vulnerable · D no pobre/no vulnerable) con su subgrupo y descripción, el **grupo del RUI** —el Registro Universal de Ingresos, la escala que reemplazó al Sisbén como criterio de focalización— y los datos básicos de la persona: nombre, sexo, edad, municipio y departamento. Sirve para verificar elegibilidad a subsidios y programas sociales. **Una persona no registrada responde 404 y NO cobra.** ⚠️ Nota de calidad que conviene conocer: el endpoint oficial del grupo Sisbén le asigna \"D4 – no pobre, no vulnerable\" a documentos que **no existen**; acá la existencia la decide el registro de ingresos y el grupo solo se publica si esa verificación pasó, así que un `sisben: null` significa \"la persona existe pero no tiene grupo publicado\", nunca un dato inventado. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`, `PEP`. Tipo de documento. Es un registro de PERSONAS naturales: con NIT o carné diplomático responde 400 `tipo_documento_no_soportado` sin cobrar.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"clasificacion-social\",\n  \"status\": \"info\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"tipoDocumento\": \"CC\",\n    \"persona\": {\n      \"nombre\": \"JUAN CARLOS PEREZ GOMEZ\",\n      \"sexo\": \"Masculino\",\n      \"edad\": 38\n    },\n    \"ubicacion\": {\n      \"departamento\": \"VALLE DEL CAUCA\",\n      \"municipio\": \"CALI\",\n      \"codigoMunicipio\": \"76001\"\n    },\n    \"sisben\": {\n      \"grupo\": \"B\",\n      \"nivel\": \"B6\",\n      \"descripcion\": \"Pobreza moderada\"\n    },\n    \"rui\": {\n      \"tieneClasificacion\": true,\n      \"grupo\": \"C\",\n      \"nivel\": \"C15\",\n      \"grupoIngresos\": \"Ingreso observado y estimado\"\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Registro Universal de Ingresos (RUI)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/rui",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "rui"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Grupo del **Registro Universal de Ingresos (RUI)** de una persona por documento, de la Ventanilla Social del DNP: el nivel y el grupo de ingresos con los que hoy se decide el acceso a programas sociales. **Es el mismo endpoint que `/api/sisben`** y devuelve el mismo objeto —la fuente entrega las dos escalas juntas y aquí se entregan las dos—, así que da igual cuál se llame; existe con nombre propio porque el RUI reemplazó al Sisbén como criterio de focalización y quien trae una regla escrita en grupos del RUI no puede traducirla a grupos del Sisbén. Junto al RUI vienen el grupo del **Sisbén IV** y los datos básicos de la persona; el detalle de esa escala está en `/api/sisben`. **Una persona no registrada responde 404 y NO cobra.** ⚠️ La existencia del documento la decide el registro de ingresos y no el grupo del Sisbén: el endpoint oficial de ese grupo le asigna \"D4 – no pobre, no vulnerable\" a documentos que **no existen**, así que aquí un `sisben: null` significa \"la persona existe y no tiene grupo publicado\", nunca un dato inventado. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`, `PEP`. Tipo de documento. Es un registro de PERSONAS naturales: con NIT o carné diplomático responde 400 `tipo_documento_no_soportado` sin cobrar.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/rui",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "rui"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Grupo del **Registro Universal de Ingresos (RUI)** de una persona por documento, de la Ventanilla Social del DNP: el nivel y el grupo de ingresos con los que hoy se decide el acceso a programas sociales. **Es el mismo endpoint que `/api/sisben`** y devuelve el mismo objeto —la fuente entrega las dos escalas juntas y aquí se entregan las dos—, así que da igual cuál se llame; existe con nombre propio porque el RUI reemplazó al Sisbén como criterio de focalización y quien trae una regla escrita en grupos del RUI no puede traducirla a grupos del Sisbén. Junto al RUI vienen el grupo del **Sisbén IV** y los datos básicos de la persona; el detalle de esa escala está en `/api/sisben`. **Una persona no registrada responde 404 y NO cobra.** ⚠️ La existencia del documento la decide el registro de ingresos y no el grupo del Sisbén: el endpoint oficial de ese grupo le asigna \"D4 – no pobre, no vulnerable\" a documentos que **no existen**, así que aquí un `sisben: null` significa \"la persona existe y no tiene grupo publicado\", nunca un dato inventado. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`, `PEP`. Tipo de documento. Es un registro de PERSONAS naturales: con NIT o carné diplomático responde 400 `tipo_documento_no_soportado` sin cobrar.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"clasificacion-social\",\n  \"status\": \"info\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"tipoDocumento\": \"CC\",\n    \"persona\": {\n      \"nombre\": \"JUAN CARLOS PEREZ GOMEZ\",\n      \"sexo\": \"Masculino\",\n      \"edad\": 38\n    },\n    \"ubicacion\": {\n      \"departamento\": \"VALLE DEL CAUCA\",\n      \"municipio\": \"CALI\",\n      \"codigoMunicipio\": \"76001\"\n    },\n    \"sisben\": {\n      \"grupo\": \"B\",\n      \"nivel\": \"B6\",\n      \"descripcion\": \"Pobreza moderada\"\n    },\n    \"rui\": {\n      \"tieneClasificacion\": true,\n      \"grupo\": \"C\",\n      \"nivel\": \"C15\",\n      \"grupoIngresos\": \"Ingreso observado y estimado\"\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Puesto de votación",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/puesto-votacion",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "puesto-votacion"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Dónde le toca votar a una persona, por cédula, del censo electoral de la Registraduría. Devuelve el **puesto** con su nombre oficial, la **dirección**, el **número de mesa**, el **municipio y departamento**, el **código DIVIPOL** del puesto —el mismo con el que la Registraduría publica logística y resultados— y las **coordenadas** del sitio con enlace de navegación, cuando la fuente lo tiene georreferenciado. Trae además `fechaInscripcion`, que es desde cuándo la persona figura en ese puesto: eso delata a quien acaba de trasladarse. **No es estacional**: consulta el lugar de votación vigente y responde también fuera de calendario electoral. Sirve para logística de transporte el día de elecciones, verificación de residencia electoral y validación de datos de afiliados. ⚠️ **Solo cédula de ciudadanía** — el censo electoral no maneja otro documento, y cualquier otro tipo responde 400 sin cobrar. **Un documento que no figura en el censo responde 404 y NO cobra**: acá el producto es el puesto, y si no vino no se entregó nada. La fuente distingue dos formas de \"no hay puesto\": que el documento no figure en el censo, y que tenga una **novedad** que lo saca de él (cédula cancelada por muerte, no expedida). Las dos responden 404 con el mensaje textual del registro y ninguna cobra: el estado de la cédula es otra pregunta, y no la vendemos como si fuera esta. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`. Tipo de documento. El censo electoral es de ciudadanos colombianos y solo maneja cédula de ciudadanía: cualquier otro valor responde 400 `tipo_documento_no_soportado` sin cobrar y sin consultar a la fuente.\n- `docNumber` (string, obligatorio). Número de cédula. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/puesto-votacion",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "puesto-votacion"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Dónde le toca votar a una persona, por cédula, del censo electoral de la Registraduría. Devuelve el **puesto** con su nombre oficial, la **dirección**, el **número de mesa**, el **municipio y departamento**, el **código DIVIPOL** del puesto —el mismo con el que la Registraduría publica logística y resultados— y las **coordenadas** del sitio con enlace de navegación, cuando la fuente lo tiene georreferenciado. Trae además `fechaInscripcion`, que es desde cuándo la persona figura en ese puesto: eso delata a quien acaba de trasladarse. **No es estacional**: consulta el lugar de votación vigente y responde también fuera de calendario electoral. Sirve para logística de transporte el día de elecciones, verificación de residencia electoral y validación de datos de afiliados. ⚠️ **Solo cédula de ciudadanía** — el censo electoral no maneja otro documento, y cualquier otro tipo responde 400 sin cobrar. **Un documento que no figura en el censo responde 404 y NO cobra**: acá el producto es el puesto, y si no vino no se entregó nada. La fuente distingue dos formas de \"no hay puesto\": que el documento no figure en el censo, y que tenga una **novedad** que lo saca de él (cédula cancelada por muerte, no expedida). Las dos responden 404 con el mensaje textual del registro y ninguna cobra: el estado de la cédula es otra pregunta, y no la vendemos como si fuera esta. Cuesta 1 crédito.\n\nCosto: 1 crédito por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, obligatorio). Valores: `CC`. Tipo de documento. El censo electoral es de ciudadanos colombianos y solo maneja cédula de ciudadanía: cualquier otro valor responde 400 `tipo_documento_no_soportado` sin cobrar y sin consultar a la fuente.\n- `docNumber` (string, obligatorio). Número de cédula. Alias aceptado: `doc`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"puesto-votacion\",\n  \"status\": \"info\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"departamento\": \"VALLE\",\n    \"municipio\": \"CALI\",\n    \"puesto\": \"INSTITUCION EDUCATIVA EJEMPLO\",\n    \"direccion\": \"CALLE 00 # 00-00\",\n    \"mesa\": \"24\",\n    \"codigoPuesto\": \"310019914\",\n    \"fechaInscripcion\": \"2026-02-07\",\n    \"ubicacion\": {\n      \"lat\": 3.35393,\n      \"lng\": -76.523,\n      \"mapsUrl\": \"https://www.google.com/maps/dir/?api=1&destination=3.35393,-76.52300\"\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 1\n}"
        }
      ]
    },
    {
      "name": "Afiliaciones a seguridad social",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/ruaf",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "ruaf"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"fechaExpedicion\": \"05/10/2018\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Todas las afiliaciones de una persona al sistema de seguridad social, del RUAF del Ministerio de Salud, en UNA llamada: **salud** (EPS, régimen, tipo de afiliado y estado), **pensiones** (fondo y régimen), **riesgos laborales** (ARL), **caja de compensación**, **cesantías**, si está **pensionada** y a qué **programas de asistencia social** está vinculada. Responde \"¿esta persona está cotizando hoy, dónde y por qué régimen?\" — la pregunta de una vinculación laboral o un estudio de seguridad. Requiere la **fecha de expedición** del documento: la exige la fuente para autenticar, no nosotros. `fechaCorte` dice hasta cuándo están actualizados los datos, que NO es la fecha de la consulta: el Ministerio consolida con rezago. **Cuesta 2 créditos** — es el scrape más caro del catálogo de personas y sustituye a siete consultas. ⏱️ **Es también el más lento: cuenta con decenas de segundos**, porque el informe lo genera un visor de reportes del Ministerio que no se puede apurar; conviene llamarlo de forma asíncrona y no dentro de una petición web con el usuario esperando. Una fecha que no coincide responde 404 y no cobra.\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, opcional). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`, `PEP`. Tipo de documento. Por defecto `CC`. Con NIT responde 400 `tipo_documento_no_soportado`: el RUAF es un registro de personas naturales.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptados: `doc`, `documento`.\n- `fechaExpedicion` (string, obligatorio). Fecha de expedición del documento en formato **DD/MM/AAAA**. Se aceptan guiones y puntos como separador y se normalizan. NO se acepta AAAA-MM-DD: la fuente lo leería al revés y respondería \"no coincide\" sin explicar por qué. Alias aceptados: `fecha`, `fecha_expedicion`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
      },
      "response": [
        {
          "name": "200 OK — ejemplo",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ruaf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ruaf"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"docType\": \"CC\",\n  \"docNumber\": \"1020304050\",\n  \"fechaExpedicion\": \"05/10/2018\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Todas las afiliaciones de una persona al sistema de seguridad social, del RUAF del Ministerio de Salud, en UNA llamada: **salud** (EPS, régimen, tipo de afiliado y estado), **pensiones** (fondo y régimen), **riesgos laborales** (ARL), **caja de compensación**, **cesantías**, si está **pensionada** y a qué **programas de asistencia social** está vinculada. Responde \"¿esta persona está cotizando hoy, dónde y por qué régimen?\" — la pregunta de una vinculación laboral o un estudio de seguridad. Requiere la **fecha de expedición** del documento: la exige la fuente para autenticar, no nosotros. `fechaCorte` dice hasta cuándo están actualizados los datos, que NO es la fecha de la consulta: el Ministerio consolida con rezago. **Cuesta 2 créditos** — es el scrape más caro del catálogo de personas y sustituye a siete consultas. ⏱️ **Es también el más lento: cuenta con decenas de segundos**, porque el informe lo genera un visor de reportes del Ministerio que no se puede apurar; conviene llamarlo de forma asíncrona y no dentro de una petición web con el usuario esperando. Una fecha que no coincide responde 404 y no cobra.\n\nCosto: 2 créditos por consulta con datos. Las consultas sin resultado (404) tienen 10 gratis al mes por cada `code` de error —las cuotas son independientes— y después cobran igual; repetir una que ya salió sin resultado no cobra nunca.\n\n### Parámetros\n\n- `docType` (string, opcional). Valores: `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`, `PEP`. Tipo de documento. Por defecto `CC`. Con NIT responde 400 `tipo_documento_no_soportado`: el RUAF es un registro de personas naturales.\n- `docNumber` (string, obligatorio). Número de documento. Alias aceptados: `doc`, `documento`.\n- `fechaExpedicion` (string, obligatorio). Fecha de expedición del documento en formato **DD/MM/AAAA**. Se aceptan guiones y puntos como separador y se normalizan. NO se acepta AAAA-MM-DD: la fuente lo leería al revés y respondería \"no coincide\" sin explicar por qué. Alias aceptados: `fecha`, `fecha_expedicion`.\n- `refresh` (boolean, opcional). Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no)."
          },
          "status": "OK",
          "code": 200,
          "_postman_previewlanguage": "json",
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "cookie": [],
          "body": "{\n  \"source\": \"afiliaciones-seguridad-social\",\n  \"status\": \"info\",\n  \"data\": {\n    \"documento\": \"1020304050\",\n    \"tipoDocumento\": \"CC\",\n    \"fechaCorte\": \"2026-08-14\",\n    \"persona\": {\n      \"nombre\": \"MARIA FERNANDA GOMEZ RUIZ\",\n      \"primerNombre\": \"MARIA\",\n      \"segundoNombre\": \"FERNANDA\",\n      \"primerApellido\": \"GOMEZ\",\n      \"segundoApellido\": \"RUIZ\",\n      \"sexo\": \"F\"\n    },\n    \"salud\": {\n      \"tiene\": true,\n      \"registros\": [\n        {\n          \"administradora\": \"NUEVA EPS S.A.\",\n          \"regimen\": \"Contributivo\",\n          \"fechaAfiliacion\": \"01/11/2024\",\n          \"estado\": \"Activo\",\n          \"tipoAfiliado\": \"COTIZANTE\",\n          \"ubicacion\": \"SANTIAGO DE CALI\",\n          \"actividadEconomica\": \"\",\n          \"tipoMiembro\": \"\"\n        }\n      ]\n    },\n    \"pensiones\": {\n      \"tiene\": true,\n      \"registros\": [\n        {\n          \"administradora\": \"FONDO DE PENSIONES DE EJEMPLO S.A.\",\n          \"regimen\": \"PENSIONES: AHORRO INDIVIDUAL\",\n          \"fechaAfiliacion\": \"2022-09-06\",\n          \"estado\": \"Inactivo\",\n          \"tipoAfiliado\": \"\",\n          \"ubicacion\": \"\",\n          \"actividadEconomica\": \"\",\n          \"tipoMiembro\": \"\"\n        }\n      ]\n    },\n    \"riesgosLaborales\": {\n      \"tiene\": true,\n      \"registros\": []\n    },\n    \"compensacionFamiliar\": {\n      \"tiene\": true,\n      \"registros\": []\n    },\n    \"cesantias\": {\n      \"tiene\": true,\n      \"registros\": []\n    },\n    \"pensionado\": {\n      \"tiene\": false,\n      \"registros\": []\n    },\n    \"asistenciaSocial\": {\n      \"tiene\": true,\n      \"registros\": [\n        {\n          \"administradora\": \"DEPARTAMENTO PARA LA PROSPERIDAD SOCIAL\",\n          \"programa\": \"Jovenes en Acción\",\n          \"fechaVinculacion\": \"2020-09-03\",\n          \"estadoVinculacion\": \"Activo\",\n          \"estadoBeneficio\": \"Terminado\",\n          \"fechaUltimoBeneficio\": \"2021-10-29\",\n          \"ubicacion\": \"Risaralda- PEREIRA\"\n        }\n      ]\n    }\n  },\n  \"mode\": \"live\",\n  \"fetchedAt\": \"2026-07-24T15:04:05.000Z\",\n  \"cost\": 2\n}"
        }
      ]
    }
  ]
}