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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
subject_external_id | string | Sí | Identificador del titular. |
who_code | string | Sí | Titular al que aplica la regla (catálogo sujeto.*, p. ej. sujeto.cliente). |
right_code | string | Sí | Derecho solicitado: ACCESS, RECTIFY, UPDATE, COMPLETE, DELETE, OBJECT, PORTABILITY. |
data_processing_ids | array | No | Tratamientos objetivo. Si se omite, alcanza todos los del titular. |
operational_code | string | No | Código operacional. |
business_reference | string | No | Referencia de negocio libre. |
requester | object | No | Datos de quien presenta la solicitud (se conservan tal cual). |
metadata | object | No | Metadatos libres. |
duplicate_protection_key | string | No | Idempotencia 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_atquedanully permaneceRECEIVED.
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
data| Campo | Tipo | Descripción |
|---|---|---|
received_at | string (ISO 8601) | Momento de recepción del lote de casos. |
rights_requests | array | Casos creados (ver tabla). |
replayed | boolean | Presente y true cuando el request fue una reproducción idempotente. |
rights_requests[] — caso
rights_requests[] — caso| Campo | Tipo | Descripción |
|---|---|---|
rights_request_id | string | Identificador público del caso. |
status | string | Siempre RECEIVED al crear. |
subject_external_id | string | Identificador del titular (eco en claro). |
who_code | string | Titular al que aplica la regla. |
right_code | string | Derecho solicitado. |
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. |
applied_version_number | number | Versión de la Activity cuya política de derechos se aplicó. |
data_processing_ids | array | Tratamientos alcanzados por el caso. |
Errores
| HTTP | error_code | Cuándo |
|---|---|---|
| 400 | SUBJECT_EXTERNAL_ID_REQUIRED | Falta subject_external_id. |
| 400 | WHO_CODE_REQUIRED / WHO_CODE_INVALID | who_code ausente o fuera de catálogo. |
| 400 | RIGHT_CODE_REQUIRED / RIGHT_CODE_INVALID | right_code ausente o fuera de catálogo. |
| 404 | DATA_PROCESSING_NOT_FOUND | Un data_processing_ids informado no existe. |
| 409 | DATA_PROCESSING_SUBJECT_MISMATCH | Un tratamiento informado no pertenece al titular. |
| 409 | NO_DATA_PROCESSINGS_FOUND | No hay tratamientos objetivo para el titular. |
| 409 | RIGHTS_POLICY_NOT_CONFIGURED | Ningún tratamiento objetivo tiene política de derechos aplicable. |
| 409 | DUPLICATE_PROTECTION_KEY_PAYLOAD_MISMATCH | La clave de idempotencia se reutilizó con otro contenido. |
| 500 | INTERNAL_ERROR | Error inesperado del servidor. |
Updated about 10 hours ago
