Registrar Evidencia

Registrar Evidencia

POST /cl/consent_manager/register_evidence

Agrega una o más piezas de evidencia a un tratamiento existente (EVIDENCE_RECEIVED). Es aditivo: no cambia el estado principal del tratamiento. Puede agregarse a un tratamiento ACTIVE, REVOKED, EXPIRED o TERMINATED; se rechaza sobre uno INVALIDATED.

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

Headers requeridos

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

Parámetros del body

CampoTipoRequeridoDescripción
processing_idstring (UUID)Tratamiento al que se agrega la evidencia.
occurred_atstring (ISO 8601)Momento real de recepción de la evidencia. No puede ser anterior al inicio del tratamiento.
evidencearrayAl menos una pieza (ver tabla).
operational_codestringNoCódigo operacional.
metadataobjectNoMetadatos libres.
duplicate_protection_keystringNoIdempotencia por tenant.

evidence[]

CampoTipoRequeridoDescripción
formatstringFormato permitido por la Activity (PDF_A, MP3, JSON).
external_referencestringCondicionalURL válida cuando la custodia es EXTERNAL_URL_ONLY.
hashstringCondicionalObligatorio en REDEC.
custodystringNoSe valida contra la política de la Activity.

Ejemplo

curl --location 'https://api.floid.app/cl/consent_manager/register_evidence' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --data '{
    "processing_id": "550e8400-e29b-41d4-a716-446655440000",
    "occurred_at": "2026-09-12T09:00:00.000Z",
    "evidence": [
      { "format": "PDF_A", "external_reference": "https://institution.example/evidence/extra-001.pdf", "hash": "sha256-extra" }
    ],
    "operational_code": "evi-op-12"
  }'

Respuesta exitosa (200)

No cambia el estado principal; expone el eje de evidencia resultante y las piezas agregadas por este evento.

{
  "code": 200,
  "message": "Evidence received",
  "caseid": "b3f1c2a4-9e77-4c31-8a10-2f6d5e7a1b90",
  "data": {
    "data_processing_id": "550e8400-e29b-41d4-a716-446655440000",
    "data_processing_event_id": "c3d4e5f6-7788-4a99-8b00-11cc22dd33ee",
    "event_type": "EVIDENCE_RECEIVED",
    "occurred_at": "2026-09-12T09:00:00.000Z",
    "received_at": "2026-09-12T09:00:02.000Z",
    "data_processing_status": "ACTIVE",
    "evidence_status": "RECEIVED",
    "evidence_due_at": null,
    "evidence_added": [
      {
        "evidence_id": "ev_9a8b7c6d",
        "data_processing_id": "550e8400-e29b-41d4-a716-446655440000",
        "source_event_id": "c3d4e5f6-7788-4a99-8b00-11cc22dd33ee",
        "source_event_type": "EVIDENCE_RECEIVED",
        "received_at": "2026-09-12T09:00:02.000Z",
        "format": "PDF_A",
        "custody": "EXTERNAL_URL_ONLY",
        "external_reference": "https://institution.example/evidence/extra-001.pdf",
        "hash": "sha256-extra"
      }
    ],
    "replayed": false
  }
}

Estructura de data

CampoTipoDescripción
data_processing_idstringUUID del tratamiento.
data_processing_event_idstringUUID del evento EVIDENCE_RECEIVED.
event_typestringSiempre EVIDENCE_RECEIVED.
occurred_atstring (ISO 8601)Momento de la evidencia.
received_atstring (ISO 8601)Momento de recepción por Floid.
data_processing_statusstringEstado principal del tratamiento (no cambia por este evento).
evidence_statusstringEstado del eje: NOT_REQUIRED, PENDING, RECEIVED, OVERDUE.
evidence_due_atstring (ISO 8601)Vencimiento de evidencia diferida (null si no aplica).
evidence_addedarrayPiezas incorporadas por este evento (ver tabla).
replayedbooleantrue si el request fue una reproducción idempotente.

evidence_added[]

CampoTipoDescripción
evidence_idstringIdentificador público de la pieza.
data_processing_idstringUUID del tratamiento.
source_event_idstringEvento que aportó la pieza.
source_event_typestringSiempre EVIDENCE_RECEIVED.
received_atstring (ISO 8601)Momento de recepción.
formatstringFormato de la pieza.
custodystringCustodia aplicada.
external_referencestringURL/referencia de la evidencia.
hashstringHash declarado.

Errores

HTTPerror_codeCuándo
400DATA_PROCESSING_ID_REQUIREDFalta processing_id.
400OCCURRED_AT_REQUIRED / OCCURRED_AT_INVALIDoccurred_at ausente o inválido.
400EVIDENCE_REQUIREDNo se envió ninguna pieza.
400EVIDENCE_FORMAT_NOT_ALLOWED / EVIDENCE_CUSTODY_MISMATCH / EVIDENCE_HASH_REQUIREDPieza inválida para la política de la Activity.
400EVIDENCE_BEFORE_ORIGINoccurred_at anterior al inicio del tratamiento.
404PROCESSING_NOT_FOUNDEl tratamiento no existe o no pertenece a tu cliente.
409DATA_PROCESSING_INVALIDATEDEl tratamiento está invalidado.
500INTERNAL_ERRORError inesperado del servidor.