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

# Auditoría por Consentimiento

# Auditoría por Consentimiento

`POST /cl/consent_manager/get_auditoria_by_consent`

Devuelve el audit trail completo de **un único consentimiento** (todos los eventos desde su creación). Equivalente al campo `audit_log` de [`get_consent`](./03-obtener-consentimiento.md), pero sin devolver el resto del consentimiento.

* **URL completa (prod):** `https://api.floid.app/cl/consent_manager/get_auditoria_by_consent`
* **URL sandbox:** `https://sandbox.floid.app/cl/consent_manager/get_auditoria_by_consent`

***

## Headers requeridos

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

***

## Identificadores aceptados

Tenés que enviar **uno** de estos en el body:

| Campo                           | Tipo    | Descripción                     |
| ------------------------------- | ------- | ------------------------------- |
| `consent_token`                 | string  | UUID Floid (preferido)          |
| `codigo_interno_consentimiento` | string  | Código RDC30 propio del cliente |
| `custom_id` o `id_externo`      | string  | UUID externo opcional           |
| `id`                            | integer | Primary key numérico            |

> Si no enviás ninguno, devuelve `code: 400` con `error: "Missing consent identifier (consent_token, codigo_interno_consentimiento, custom_id/id_externo, or id)"`.

***

## Ejemplos

### Por `consent_token`

```bash
curl --location 'https://api.floid.app/cl/consent_manager/get_auditoria_by_consent' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{ "consent_token": "550e8400-e29b-41d4-a716-446655440000" }'
```

### Por `codigo_interno_consentimiento`

```bash
curl --location 'https://api.floid.app/cl/consent_manager/get_auditoria_by_consent' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{ "codigo_interno_consentimiento": "BCH-NAT-001" }'
```

***

## Respuesta exitosa (200)

```json
{
  "code": "200",
  "msg": "OK",
  "caseid": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "consent": {
      "id": 12345,
      "consent_token": "550e8400-e29b-41d4-a716-446655440000",
      "person_rut": "12345678-9",
      "codigo_institucion": "123456789"
    },
    "audit_log": [
      {
        "consent_token": "550e8400-e29b-41d4-a716-446655440000",
        "accion": "REVOKED",
        "estado_anterior": "ACTIVE",
        "estado_nuevo": "REVOKED",
        "campo_modificado": "current_state",
        "valor_anterior": "ACTIVE",
        "valor_nuevo": "REVOKED",
        "modificado_por_tipo": "API",
        "modificado_por_id": "operator-001",
        "modificado_por_rut": "12345678-9",
        "modificado_por_nombre": "Carlos Operador",
        "ip_origen": "172.19.0.7",
        "user_agent": "curl/7.68.0",
        "razon_cambio": "Solicitud del titular",
        "datos_adicionales": "{\"fecha_revocacion\":\"20260512\",\"hora_revocacion\":\"183022\"}",
        "timestamp_cambio": "2026-05-12 18:30:22",
        "timestamp_servidor": "2026-05-12 18:30:22"
      },
      {
        "consent_token": "550e8400-e29b-41d4-a716-446655440000",
        "accion": "ACCESSED",
        "modificado_por_tipo": "API",
        "modificado_por_id": "consent_api_detail",
        "ip_origen": "172.19.0.7",
        "user_agent": "curl/7.68.0",
        "timestamp_cambio": "2026-05-12 14:32:11",
        "timestamp_servidor": "2026-05-12 14:32:11"
      },
      {
        "consent_token": "550e8400-e29b-41d4-a716-446655440000",
        "accion": "CREATED",
        "estado_nuevo": "ACTIVE",
        "modificado_por_tipo": "API",
        "modificado_por_id": "consent_api_create",
        "ip_origen": "172.19.0.7",
        "timestamp_cambio": "2026-05-12 14:30:22",
        "timestamp_servidor": "2026-05-12 14:30:22"
      }
    ],
    "total_records": 3
  }
}
```

### Notas

* El `audit_log` viene ordenado por `timestamp_cambio DESC` (más reciente primero).
* `data.consent` viene resumido (solo `id`, `consent_token`, `person_rut`, `codigo_institucion`). Para el detalle completo del consentimiento, llamá a [`get_consent`](./03-obtener-consentimiento.md).
* Llamar este endpoint **no** agrega un evento `ACCESSED` al audit trail (a diferencia de `get_consent`).

***

## Posibles errores

| `error_code` o `error`                    | HTTP | Mensaje                                                               |
| ----------------------------------------- | ---- | --------------------------------------------------------------------- |
| `error: "Missing consent identifier ..."` | 400  | No enviaste ninguno de los 4 identificadores                          |
| `NOT_FOUND`                               | 400  | "Consent not found" — el identificador no existe para tu `id_cliente` |
| `INTERNAL_ERROR`                          | 500  | Error de DB                                                           |

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