Crear Solicitud de Derecho

Crear Solicitud de Derecho

POST /cl/consent_manager/create_rights_request

Crea uno o más casos de solicitud de derecho (RightsRequest) en estado RECEIVED. Si no se informan data_processing_ids, la solicitud alcanza todos los tratamientos conocidos del titular.

Partición en casos: ACCESS y PORTABILITY agrupan los tratamientos objetivo que comparten la misma versión de Activity aplicada (un caso consolidado por versión); el resto de los derechos crea un caso por tratamiento.

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

Headers requeridos

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

Parámetros del body

CampoTipoRequeridoDescripción
subject_external_idstringIdentificador del titular.
who_codestringTitular al que aplica la regla (catálogo sujeto.*, p. ej. sujeto.cliente).
right_codestringDerecho solicitado: ACCESS, RECTIFY, UPDATE, COMPLETE, DELETE, OBJECT, PORTABILITY.
data_processing_idsarrayNoTratamientos objetivo. Si se omite, alcanza todos los del titular.
operational_codestringNoCódigo operacional.
business_referencestringNoReferencia de negocio libre.
requesterobjectNoDatos de quien presenta la solicitud (se conservan tal cual).
metadataobjectNoMetadatos libres.
duplicate_protection_keystringNoIdempotencia por tenant. Un reintento idéntico devuelve replayed: true.

El vencimiento (due_at) se calcula desde la política de derechos de la Activity aplicada (deadline_days). Si la regla es en línea (online), el caso no vence: due_at queda null y permanece RECEIVED.


Ejemplo

curl --location 'https://api.floid.app/cl/consent_manager/create_rights_request' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --data '{
    "subject_external_id": "customer-8293",
    "who_code": "sujeto.cliente",
    "right_code": "ACCESS",
    "operational_code": "rights-op-01"
  }'

Respuesta exitosa (200)

{
  "code": 200,
  "message": "RightsRequest created",
  "caseid": "b3f1c2a4-9e77-4c31-8a10-2f6d5e7a1b90",
  "data": {
    "received_at": "2026-09-12T09:15:00.000Z",
    "rights_requests": [
      {
        "rights_request_id": "9c1f4b2a-77de-4a10-9b33-1e2f3a4b5c6d",
        "status": "RECEIVED",
        "subject_external_id": "customer-8293",
        "who_code": "sujeto.cliente",
        "right_code": "ACCESS",
        "received_at": "2026-09-12T09:15:00.000Z",
        "due_at": "2026-09-27T09:15:00.000Z",
        "is_overdue": false,
        "applied_version_number": 3,
        "data_processing_ids": ["550e8400-e29b-41d4-a716-446655440000"]
      }
    ]
  }
}

Estructura de data

CampoTipoDescripción
received_atstring (ISO 8601)Momento de recepción del lote de casos.
rights_requestsarrayCasos creados (ver tabla).
replayedbooleanPresente y true cuando el request fue una reproducción idempotente.

rights_requests[] — caso

CampoTipoDescripción
rights_request_idstringIdentificador público del caso.
statusstringSiempre RECEIVED al crear.
subject_external_idstringIdentificador del titular (eco en claro).
who_codestringTitular al que aplica la regla.
right_codestringDerecho solicitado.
received_atstring (ISO 8601)Momento de recepción.
due_atstring (ISO 8601)Vencimiento (null si la regla es en línea).
is_overduebooleantrue si venció y sigue RECEIVED.
applied_version_numbernumberVersión de la Activity cuya política de derechos se aplicó.
data_processing_idsarrayTratamientos alcanzados por el caso.

Errores

HTTPerror_codeCuándo
400SUBJECT_EXTERNAL_ID_REQUIREDFalta subject_external_id.
400WHO_CODE_REQUIRED / WHO_CODE_INVALIDwho_code ausente o fuera de catálogo.
400RIGHT_CODE_REQUIRED / RIGHT_CODE_INVALIDright_code ausente o fuera de catálogo.
404DATA_PROCESSING_NOT_FOUNDUn data_processing_ids informado no existe.
409DATA_PROCESSING_SUBJECT_MISMATCHUn tratamiento informado no pertenece al titular.
409NO_DATA_PROCESSINGS_FOUNDNo hay tratamientos objetivo para el titular.
409RIGHTS_POLICY_NOT_CONFIGUREDNingún tratamiento objetivo tiene política de derechos aplicable.
409DUPLICATE_PROTECTION_KEY_PAYLOAD_MISMATCHLa clave de idempotencia se reutilizó con otro contenido.
500INTERNAL_ERRORError inesperado del servidor.