Anular Evento

Anular Evento

POST /cl/consent_manager/void_event

Declara inválido un evento previo (EVENT_VOIDED). No es un inicio, aceptación ni término: conserva el evento objetivo en la historia y elimina retroactivamente su efecto al reconstruir el tratamiento. Floid resuelve el tratamiento desde el evento objetivo, por lo que no se envía data_processing_id ni occurred_at (la anulación es retroactiva; sólo se registra received_at).

  • URL de producción: https://api.floid.app/cl/consent_manager/void_event
  • URL de sandbox: https://sandbox.floid.app/cl/consent_manager/void_event

Headers requeridos

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

Parámetros del body

CampoTipoRequeridoDescripción
data_processing_event_idstring (UUID)Evento que se declara inválido (evento objetivo).
operational_codestringNoCódigo operacional de la corrección.
metadataobjectNoMetadatos libres.
duplicate_protection_keystringNoIdempotencia por tenant.

Campos prohibidos: occurred_at, data_processing_id, activity_code, subject_external_id, subject_snapshot, business_reference, medium, expires_at, terms_and_conditions, tc_version_id, evidence. Incluir cualquiera devuelve INVALID_FIELD_FOR_EVENT_VOIDED.

No se puede anular un EVENT_VOIDED (EVENT_VOIDING_NOT_ALLOWED) ni un evento ya anulado (TARGET_EVENT_ALREADY_VOIDED).


Ejemplo

curl --location 'https://api.floid.app/cl/consent_manager/void_event' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --data '{
    "data_processing_event_id": "e11a22bb-33cc-44dd-55ee-66ff77aa88bb",
    "operational_code": "fix-op-01"
  }'

Respuesta exitosa (200)

{
  "code": 200,
  "message": "Event voided",
  "caseid": "b3f1c2a4-9e77-4c31-8a10-2f6d5e7a1b90",
  "data": {
    "data_processing_id": "550e8400-e29b-41d4-a716-446655440000",
    "data_processing_event_id": "f9f9f9f9-1111-4222-8333-444455556666",
    "event_type": "EVENT_VOIDED",
    "received_at": "2026-09-21T08:00:00.000Z",
    "voided_event": {
      "data_processing_event_id": "e11a22bb-33cc-44dd-55ee-66ff77aa88bb",
      "event_type": "CONSENT_REVOKED"
    },
    "impact": {
      "data_processing_id": "550e8400-e29b-41d4-a716-446655440000",
      "previous_status": "REVOKED",
      "current_status": "ACTIVE"
    },
    "status": "ACTIVE",
    "legal_basis": "CONSENT",
    "validity": { "ends_at": "2026-09-25T13:00:00.000Z", "end_mode": "FIXED_DURATION_FROM_FACT", "ended_at": null },
    "replayed": false
  }
}

Estructura de data

CampoTipoDescripción
data_processing_idstringUUID del tratamiento afectado (resuelto desde el evento objetivo).
data_processing_event_idstringUUID del marcador EVENT_VOIDED creado.
event_typestringSiempre EVENT_VOIDED.
received_atstring (ISO 8601)Momento de recepción del marcador.
voided_eventobjectEvento anulado: { data_processing_event_id, event_type }.
impactobjectImpacto de la reconstrucción: { data_processing_id, previous_status, current_status } (sólo informativo).
statusstringEstado del tratamiento tras la reconstrucción.
legal_basisstringBase legal del tratamiento.
validityobject{ ends_at, end_mode, ended_at } recalculada.
replayedbooleantrue si el request fue una reproducción idempotente.

Errores

HTTPerror_codeCuándo
400TARGET_DATA_PROCESSING_EVENT_ID_REQUIREDFalta data_processing_event_id.
400INVALID_FIELD_FOR_EVENT_VOIDEDSe enviaron campos prohibidos.
404TARGET_DATA_PROCESSING_EVENT_NOT_FOUNDEl evento objetivo no existe o no es accesible.
409EVENT_VOIDING_NOT_ALLOWEDEl objetivo es un EVENT_VOIDED (no hay cadenas de anulación).
409TARGET_EVENT_ALREADY_VOIDEDEl evento objetivo ya estaba anulado.
500INTERNAL_ERRORError inesperado del servidor.