Revocar Consentimiento

Revocar Consentimiento

POST /cl/consent_manager/revoke_consent

Cambia el estado de un consentimiento de ACTIVE a REVOKED. Falla si el consentimiento ya está en otro estado.

  • URL completa (prod): https://api.floid.app/cl/consent_manager/revoke_consent
  • URL sandbox: https://sandbox.floid.app/cl/consent_manager/revoke_consent

Headers requeridos

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

Identificadores aceptados

Tenés que enviar uno de estos en el body:

CampoTipoDescripción
consent_tokenstringUUID Floid devuelto por create_consent (preferido)
codigo_interno_consentimientostringCódigo RDC30 propio del cliente
custom_id o id_externostringUUID externo opcional
idintegerPrimary key numérico

Metadata opcional de quién revoca

CampoTipoDescripción
razonstringRazón de la revocación (queda registrada en audit_log.razon_cambio)
revocado_por_idstringIdentificador interno del operador (default: "consent_api_revoke")
revocado_por_rutstringRUT del operador
revocado_por_nombrestringNombre del operador

El campo es razon, no motivo. Los campos de quién revoca son revocado_por_id / revocado_por_rut / revocado_por_nombre — no un único revocado_por.


Ejemplo

curl --location --request POST 'https://api.floid.app/cl/consent_manager/revoke_consent' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --data '{
    "consent_token": "550e8400-e29b-41d4-a716-446655440000",
    "razon": "Solicitud del titular",
    "revocado_por_id": "operator-001",
    "revocado_por_rut": "12345678-9",
    "revocado_por_nombre": "Carlos Operador"
  }'

Respuesta exitosa (200)

{
  "code": "200",
  "msg": "OK",
  "caseid": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "consent_id": 12345,
    "consent_token": "550e8400-e29b-41d4-a716-446655440000",
    "custom_id": "CONSENT-DEMO-001",
    "previous_state": "ACTIVE",
    "new_state": "REVOKED",
    "timestamp_revocacion": "20260512 183022",
    "revocado_por_tipo": "API",
    "revocado_por_id": "operator-001",
    "razon": "Solicitud del titular"
  }
}

Posibles errores

error_codeHTTPdisplay_message típico
INVALID_REQUEST400"Missing consent identifier" — no enviaste ninguno de los 4 identificadores
INVALID_REQUEST400"Cannot revoke consent: current state is REVOKED (must be ACTIVE)"
INVALID_REQUEST400"Cannot revoke consent: current state is EXPIRED (must be ACTIVE)"
NOT_FOUND400"Consent not found" — el identificador no existe para tu id_cliente
INTERNAL_ERROR500Error de DB al hacer el UPDATE

Para detectar "ya estaba revocado" o "ya expiró", parseá display_message — el error_code siempre es INVALID_REQUEST.

Última actualización: 12 de mayo de 2026.