Obtener Tratamiento
Obtener Tratamiento
POST /cl/consent_manager/get_processing
Devuelve el detalle completo de un tratamiento (DataProcessing): estado principal, vigencia, eje de evidencia con piezas, snapshot histórico de la actividad y de los T&C, trazabilidad, historia inmutable de eventos y las solicitudes de derechos abiertas que lo alcanzan. Es una operación de solo lectura: no muta nada.
- URL de producción:
https://api.floid.app/cl/consent_manager/get_processing - URL de sandbox:
https://sandbox.floid.app/cl/consent_manager/get_processing
Headers requeridos
Authorization: Bearer {{TOKEN}}
Content-Type: application/json
El
client_idse deriva del Bearer token. Si lo envías en el body, el servidor lo ignora. No lo incluyas.
Parámetros del body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
processing_id | string (UUID) | Sí | Identificador del tratamiento (processing_id) devuelto por create_processing. |
sandbox | boolean | No | true consulta el espacio sandbox (datos aislados). Por defecto false (producción). |
Si no envías
processing_id, la API devuelveMISSING_PROCESSING_ID(400). Si el tratamiento no existe o no pertenece a tu cliente, devuelvePROCESSING_NOT_FOUND(404).
Ejemplo
curl --location 'https://api.floid.app/cl/consent_manager/get_processing' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{TOKEN}}' \
--data '{ "processing_id": "550e8400-e29b-41d4-a716-446655440000" }'Respuesta exitosa (200)
El envelope estándar es { code, message, caseid, data }. El caseid corresponde a la llamada del gateway (no al tratamiento). En data viaja el detalle del tratamiento.
{
"code": 200,
"message": "OK",
"caseid": "b3f1c2a4-9e77-4c31-8a10-2f6d5e7a1b90",
"data": {
"processing_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "ACTIVE",
"legal_basis": "CONSENT",
"legal_framework": "REDEC",
"activity": {
"version_number": 3,
"activity_code": "marketing-redec",
"activity_uid": "act_9f8e7d6c",
"nombre": "Marketing directo",
"descripcion": "Envío de comunicaciones comerciales",
"legal_framework": "REDEC",
"base_legal": "CONSENT",
"estado": "PUBLISHED",
"requires_sensitive": false,
"data_categories_json": ["identidad.nombre", "identidad.rut", "contacto.email"],
"data_uses_json": ["uso.marketing"],
"data_subjects_json": ["sujeto.cliente"],
"retention_days": 365,
"expiration_days": 365,
"tc_version_id": 42,
"term_policy": "FIXED_DURATION_FROM_FACT",
"evidence_requirement": "REQUIRED",
"evidence_custody": "CLIENT",
"evidence_formats_json": ["JSON", "PDF"],
"evidence_deferred_days": null,
"institution_code": "1234",
"rights_rules_json": [
{ "who_code": "sujeto.cliente", "right_type": "ACCESS", "allowed": true, "online": false, "deadline_days": 15 }
]
},
"terms": {
"version": 2,
"title": "Términos de marketing",
"status": "PUBLISHED",
"snapshot_url": "https://cdn.floid.app/tc/marketing-v2.pdf",
"hash": "9f2b...e7"
},
"subject": {
"external_id_index": "a1b2c3d4e5f6... (blind index HMAC, no reversible)",
"snapshot": {
"subject_type": "NATURAL",
"subject_identification": { "type": "CL_RUT", "value": "12.345.678-5" },
"name": "Juan Pérez",
"email": "[email protected]"
}
},
"trace": {
"operational_code": "crm-op-8891",
"business_reference": "order-2026-0091",
"consent_token": "c0ffee00-1111-2222-3333-444455556666",
"medium": "ELECTRONIC",
"origin": {
"created_by": "gateway",
"is_sandbox": false,
"source_ip": "200.1.2.3",
"widget_id": null
}
},
"term": {
"end_mode": "FIXED_DURATION_FROM_FACT",
"started_at": "2026-09-10T13:00:00.000Z",
"anchor_at": null,
"ends_at": "2027-09-10T13:00:00.000Z",
"expires_at": "2027-09-10T13:00:00.000Z",
"ended_at": null,
"terminated_at": null
},
"evidence": {
"status": "RECEIVED",
"due_at": null,
"pieces": [
{
"evidence_id": "ev_7c2a1b0d",
"source_event_id": "evt_11aa22bb",
"source_event_type": "CONSENT_GRANTED",
"received_at": "2026-09-10T13:00:00.000Z",
"format": "JSON",
"custody": "CLIENT",
"hash": "hash-declarado",
"ref": "https://institution.example/evidence/redec-001.json"
}
]
},
"redec": {
"consent_id": "institution-consent-001",
"institution_code": "1234",
"purpose": 2,
"objective": "02",
"executive_rut": "98765432-1"
},
"history": [
{
"event_id": "evt_11aa22bb",
"event_type": "CONSENT_GRANTED",
"occurred_at": "2026-09-10T13:00:00.000Z",
"received_at": "2026-09-10T13:00:05.000Z",
"voided": false,
"voided_by_event_id": null,
"targets_event_id": null,
"origin": null,
"activity_version_number": 3
}
],
"rights": {
"open": [
{
"rights_request_id": "9c1f4b2a-77de-4a10-9b33-1e2f3a4b5c6d",
"right_code": "ACCESS",
"who_code": "sujeto.cliente",
"status": "RECEIVED",
"received_at": "2026-09-12T09:15:00.000Z",
"due_at": "2026-09-27T09:15:00.000Z",
"is_overdue": false
}
]
}
}
}Estructura de data
dataNivel principal
| Campo | Tipo | Descripción |
|---|---|---|
processing_id | string | UUID del tratamiento (su identidad; no se fusiona con otros). |
status | string | Estado del tratamiento: ACTIVE, REVOKED, TERMINATED, EXPIRED. |
legal_basis | string | Base legal inferida de la actividad: CONSENT, CONTRACT, LEGITIMATE_INTEREST, LEGAL_OBLIGATION. |
legal_framework | string | Marco legal: REDEC o LPDP. |
activity — snapshot histórico de la actividad
activity — snapshot histórico de la actividadVersión inmutable de la actividad resuelta por el ID almacenado al iniciar el tratamiento (no la versión vigente al leer). Se identifica sólo por version_number.
| Campo | Tipo | Descripción |
|---|---|---|
version_number | number | Número de versión de la actividad aplicada. |
activity_code | string | Código de la actividad. |
nombre / descripcion | string | Nombre y descripción de la versión. |
legal_framework / base_legal | string | Marco y base legal de la versión. |
data_categories_json / data_uses_json / data_subjects_json | array | Categorías de datos, usos y titulares declarados. |
term_policy | string | Política de término: FIXED_DURATION_FROM_FACT, RETENTION_PERIOD_FROM_ANCHOR, TERMINATION_DEFINED_BY_CONTROLLER. |
evidence_requirement / evidence_custody / evidence_formats_json / evidence_deferred_days | mixto | Política de evidencia de la actividad. |
rights_rules_json | array | Reglas de derechos aplicables (titular, derecho, plazo, online). |
terms — snapshot de los T&C
terms — snapshot de los T&Cnull si la actividad no exige T&C.
| Campo | Tipo | Descripción |
|---|---|---|
version | number | Número de versión pública de los T&C aplicados. |
title | string | Título del documento. |
status | string | Estado de la versión de T&C. |
snapshot_url | string | URL del snapshot inmutable del documento. |
hash | string | Hash del archivo del snapshot. |
subject — titular
subject — titular| Campo | Tipo | Descripción |
|---|---|---|
external_id_index | string | Blind index (HMAC) del subject_external_id. No reversible; sirve para búsquedas por igualdad. |
snapshot | object | Snapshot descifrado del titular. El único campo obligatorio es subject_identification; el resto (name, email, etc.) es opcional. |
trace — trazabilidad (opaca)
trace — trazabilidad (opaca)Nunca se usa para identidad, deduplicación ni sucesión.
| Campo | Tipo | Descripción |
|---|---|---|
operational_code | string | Código operacional del responsable. |
business_reference | string | Referencia de negocio del evento de inicio. |
consent_token | string | Token público del consentimiento (correlación legacy). |
medium | string | Medio de captura: ELECTRONIC, VERBAL, PHYSICAL. |
origin | object | Procedencia del registro (ver tabla siguiente). |
trace.origin
trace.origin| Campo | Tipo | Descripción |
|---|---|---|
created_by | string | Fuente del registro: gateway, USER_MANUAL, SYSTEM, etc. |
is_sandbox | boolean | true si el tratamiento vive en el espacio sandbox. |
source_ip | string | IP de origen (si se registró). |
widget_id | number | Widget de origen (null si fue API/manual). |
term — vigencia
term — vigencia| Campo | Tipo | Descripción |
|---|---|---|
end_mode | string | Política de término: FIXED_DURATION_FROM_FACT, RETENTION_PERIOD_FROM_ANCHOR, TERMINATION_DEFINED_BY_CONTROLLER. |
started_at | string (ISO 8601) | Inicio del tratamiento (hecho de inicio). |
anchor_at | string (ISO 8601) | Ancla de retención (sólo RETENTION_PERIOD_FROM_ANCHOR). |
ends_at | string (ISO 8601) | Fin máximo calculado desde el hecho. |
expires_at | string (ISO 8601) | Acortamiento del consentimiento (nunca extiende ends_at). |
ended_at | string (ISO 8601) | Término real (null si sigue vigente). |
terminated_at | string (ISO 8601) | Alias conservado de ended_at. |
evidence — eje de evidencia
evidence — eje de evidencia| Campo | Tipo | Descripción |
|---|---|---|
status | string | Estado del eje: NOT_REQUIRED, PENDING, RECEIVED, OVERDUE. |
due_at | string (ISO 8601) | Vencimiento de evidencia diferida (null si no aplica). |
pieces | array | Piezas de evidencia activas (ver tabla siguiente). |
evidence.pieces[]
evidence.pieces[]| Campo | Tipo | Descripción |
|---|---|---|
evidence_id | string | Identificador público de la pieza. |
source_event_id | string | Evento que aportó la pieza. |
source_event_type | string | Tipo del evento fuente. |
received_at | string (ISO 8601) | Momento de recepción de la pieza. |
format | string | Formato de la evidencia (JSON, PDF, etc.). |
custody | string | Custodia de la evidencia. |
hash | string | Hash declarado de la pieza. |
ref | string | Referencia/URL de la evidencia. |
redec — bloque REDEC
redec — bloque REDECnull para tratamientos LPDP.
| Campo | Tipo | Descripción |
|---|---|---|
consent_id | string | Identificador del consentimiento en la institución. |
institution_code | string | Código de institución REDEC. |
purpose | number | Finalidad (1 | 2). |
objective | string | Objetivo (01..07). |
executive_rut | string | RUT del ejecutivo. |
history[] — historia inmutable
history[] — historia inmutableLista ordenada cronológicamente de eventos.
| Campo | Tipo | Descripción |
|---|---|---|
event_id | string | Identificador público del evento. |
event_type | string | CONSENT_GRANTED, PROCESSING_DECLARED, CONSENT_REVOKED, PROCESSING_TERMINATED, EVIDENCE_RECEIVED, EVENT_VOIDED. |
occurred_at | string (ISO 8601) | Momento en que ocurrió el hecho. |
received_at | string (ISO 8601) | Momento en que Floid recibió el evento. |
voided | boolean | true si el evento fue anulado por otro. |
voided_by_event_id | string | Evento que lo anuló (null si no aplica). |
targets_event_id | string | Sólo en EVENT_VOIDED: evento objetivo anulado. |
origin | object | Origen de sólo lectura RIGHTS_REQUEST (null en eventos operacionales). |
activity_version_number | number | Versión de la actividad vigente al ocurrir el evento. |
rights — solicitudes de derechos abiertas
rights — solicitudes de derechos abiertasrights.open[] contiene sólo los RightsRequest en estado RECEIVED que alcanzan este tratamiento. Un caso RESOLVED deja de aparecer sin cambiar la forma del contenedor.
| Campo | Tipo | Descripción |
|---|---|---|
rights_request_id | string | Identificador público de la solicitud. |
right_code | string | Derecho solicitado (ACCESS, DELETE, etc.). |
who_code | string | Titular al que aplica la regla. |
status | string | Estado del caso (RECEIVED). |
received_at | string (ISO 8601) | Momento de recepción. |
due_at | string (ISO 8601) | Vencimiento (null si la regla es en línea). |
is_overdue | boolean | true si venció y sigue RECEIVED. |
Errores
| HTTP | error_code | Cuándo |
|---|---|---|
| 400 | MISSING_PROCESSING_ID | Falta processing_id en el body. |
| 404 | PROCESSING_NOT_FOUND | El processing_id no existe o no pertenece a tu cliente. |
| 401 | UNAUTHORIZED | Bearer token ausente o inválido. |
| 500 | INTERNAL_ERROR | Error inesperado del servidor. |
Updated about 10 hours ago
