---
updatedAt: 2026-09-17T06:12:01.000Z
agentTools:
  projectIndex: https://readme.floid.io/llms.txt
---

# Logs de Acceso

# Logs de Acceso

Dos endpoints relacionados:

* **`POST /cl/consent_manager/get_accesos`** — lista paginada de cada acceso a un consentimiento (validación, lectura, listado).
* **`POST /cl/consent_manager/get_accesos_stats`** — agregados de los accesos en un período.

> ⚠️ **Importante:** la doc anterior mencionaba un endpoint `/get_access_logs`. **No existe.** Los reales son `/get_accesos` y `/get_accesos_stats` (en español).

* **URLs (prod):**
  * `https://api.floid.app/cl/consent_manager/get_accesos`
  * `https://api.floid.app/cl/consent_manager/get_accesos_stats`
* **URLs sandbox:**
  * `https://sandbox.floid.app/cl/consent_manager/get_accesos`
  * `https://sandbox.floid.app/cl/consent_manager/get_accesos_stats`

***

## Headers requeridos

```
Authorization: Bearer {{TOKEN}}
Content-Type: application/json
```

***

## `get_accesos` — listado paginado

### Filtros (todos opcionales, body JSON)

| Campo             | Tipo    | Descripción                              |
| ----------------- | ------- | ---------------------------------------- |
| `person_rut`      | string  | RUT del titular cuyos accesos querés ver |
| `tipo_acceso`     | string  | Ver tabla de tipos abajo                 |
| `ip_acceso`       | string  | IP exacta desde la que se accedió        |
| `fecha_desde`     | string  | `YYYY-MM-DD` (filtra `timestamp_acceso`) |
| `fecha_hasta`     | string  | `YYYY-MM-DD`                             |
| `limit`           | integer | Default 100, máximo 1000                 |
| `offset`          | integer | Default 0                                |
| `order_direction` | string  | `DESC` (default) \| `ASC`                |

### Ejemplo

```bash
curl --location 'https://api.floid.app/cl/consent_manager/get_accesos' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "tipo_acceso": "API_DETAIL",
    "fecha_desde": "2026-05-01",
    "limit": 50
  }'
```

### Respuesta exitosa (200)

```json
{
  "code": "200",
  "msg": "OK",
  "caseid": "",
  "data": {
    "access_records": [
      {
        "id": 789,
        "person_rut": "12345678-9",
        "tipo_acceso": "API_DETAIL",
        "is_sandbox": 0,
        "consentimientos_consultados": [12345],
        "filtros_aplicados": { "consent_id": 12345 },
        "resultados_mostrados": 1,
        "ip_acceso": "172.19.0.5",
        "user_agent": "curl/7.68.0",
        "timestamp_acceso": "2026-05-12 14:32:11"
      },
      {
        "id": 790,
        "person_rut": "12345678-9",
        "tipo_acceso": "API_VALIDATE",
        "is_sandbox": 0,
        "consentimientos_consultados": null,
        "filtros_aplicados": {
          "codigo_institucion": "123456789",
          "finalidad": 2,
          "validation_result": true
        },
        "resultados_mostrados": 1,
        "ip_acceso": "172.19.0.5",
        "user_agent": "curl/7.68.0",
        "timestamp_acceso": "2026-05-12 14:35:00"
      }
    ],
    "pagination": {
      "total": 2,
      "limit": 100,
      "offset": 0,
      "has_more": false
    },
    "filters_applied": {
      "tipo_acceso": "API_DETAIL",
      "limit": 100,
      "offset": 0,
      "order_direction": "DESC"
    }
  }
}
```

### Tipos de acceso (`tipo_acceso`)

| Valor                       | Cuándo se registra                            |
| --------------------------- | --------------------------------------------- |
| `API_LIST`                  | Llamada a `list_consents`                     |
| `API_DETAIL`                | Llamada a `get_consent`                       |
| `API_VALIDATE`              | Llamada a `validate_consent`                  |
| `API_REVOKE`                | Llamada a `revoke_consent`                    |
| `API_AUDIT_QUERY`           | Llamada a `get_auditoria`                     |
| `API_AUDIT_DETAIL`          | Llamada a `get_auditoria_by_consent`          |
| `API_ACCESS_QUERY`          | Llamada a este mismo endpoint (`get_accesos`) |
| `REPORT_RDC30` / `REPORT_*` | Generación de reporte (`generate_report`)     |

> Cuando `person_rut` no es identificable (ej. listados sin filtro), se registra como `MULTIPLE`.

***

## `get_accesos_stats` — estadísticas agregadas

### Parámetros (body JSON)

| Campo         | Tipo   | Default         | Descripción  |
| ------------- | ------ | --------------- | ------------ |
| `fecha_desde` | string | `hoy - 30 días` | `YYYY-MM-DD` |
| `fecha_hasta` | string | `hoy`           | `YYYY-MM-DD` |

### Ejemplo

```bash
curl --location 'https://api.floid.app/cl/consent_manager/get_accesos_stats' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "fecha_desde": "2026-04-01",
    "fecha_hasta": "2026-05-12"
  }'
```

### Respuesta exitosa (200)

```json
{
  "code": "200",
  "msg": "OK",
  "caseid": "",
  "data": {
    "date_range": {
      "desde": "2026-04-01",
      "hasta": "2026-05-12"
    },
    "access_by_type": {
      "API_DETAIL": 412,
      "API_LIST": 87,
      "API_VALIDATE": 35,
      "API_REVOKE": 4
    },
    "access_by_date": [
      { "date": "2026-04-01", "count": 12 },
      { "date": "2026-04-02", "count": 23 },
      { "date": "2026-05-12", "count": 5 }
    ],
    "top_ips": [
      { "ip": "172.19.0.5", "count": 234 },
      { "ip": "172.19.0.7", "count": 189 }
    ]
  }
}
```

> `top_ips` devuelve los 10 más frecuentes ordenados desc.

***

## Posibles errores (ambos endpoints)

| `error_code`     | HTTP | Cuándo      |
| ---------------- | ---- | ----------- |
| `INTERNAL_ERROR` | 500  | Error de DB |

> Si no hay registros, devuelve listas vacías (no es error).

**Última actualización:** 12 de mayo de 2026.