Listar Consentimientos

Listar Consentimientos

POST /cl/consent_manager/list_consents

Devuelve una lista paginada de consentimientos del cliente autenticado, con filtros opcionales y respuesta consciente del ambiente (sandbox/prod).

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

Headers requeridos

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

Sandbox host-aware

HostComportamiento por defaultinclude_sandbox: true
api.floid.appSolo consentimientos de producción (sandbox_mode: "prod_only")Mezcla prod + sandbox (sandbox_mode: "mixed")
sandbox.floid.appSolo consentimientos sandbox (sandbox_mode: "sandbox_only")Ignorado — un host sandbox no puede leer prod

Filtros (todos opcionales, body JSON)

CampoTipoDescripción
person_rutstringRUT exacto del titular
codigo_institucionstringCódigo de 9 dígitos de la institución
codigo_internostringCódigo interno regulatorio del consentimiento
consent_tokenstringUUID Floid (devuelto por create_consent)
custom_idstringMatch contra id_externo o codigo_interno_consentimiento (lo que el cliente haya pasado)
rut_empresastringRUT de empresa (para JURIDICA)
estadostringACTIVE | REVOKED | EXPIRED
tipo_personastringNATURAL | JURIDICA
finalidadinteger1 (comercial) | 2 (crediticia)
mediointeger1 | 2 | 3
objetivostring"01""07" (con cero a la izquierda)
has_evidencebooleantrue ⇒ solo consentimientos con evidence_hash cargado
evidence_hashstringMatch exacto contra el SHA-256 de la evidencia
evidence_statusstringPENDING | SUCCESS | FAILED | EXTERNAL
fecha_desdestringYYYY-MM-DD (filtra por timestamp_otorgamiento)
fecha_hastastringYYYY-MM-DD
include_sandboxboolean(solo desde api.floid.app) mezcla prod + sandbox
order_bystringtimestamp_carga (default) | timestamp_otorgamiento_fecha | current_state | person_rut
order_directionstringDESC (default) | ASC
limitintegerDefault 50, máximo 500 (valores mayores se truncan automáticamente)
offsetintegerDefault 0

id_cliente se deriva del Bearer token. No lo envíes.


Ejemplo — listado básico

curl --location 'https://api.floid.app/cl/consent_manager/list_consents' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "limit": 10,
    "offset": 0
  }'

Ejemplo — filtros

curl --location 'https://api.floid.app/cl/consent_manager/list_consents' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "person_rut": "12345678-9",
    "estado": "ACTIVE",
    "limit": 50
  }'

Ejemplo — desde prod, mezclando sandbox

curl --location 'https://api.floid.app/cl/consent_manager/list_consents' \
  --header 'Authorization: Bearer {{TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "include_sandbox": true,
    "limit": 100
  }'

Respuesta exitosa (200)

{
  "code": "200",
  "msg": "OK",
  "caseid": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "consents": [
      {
        "id": 501,
        "id_cliente": 10,
        "is_sandbox": 0,
        "consent_token": "b9c2d0d3-7c4f-4e0a-9d3c-9e9c1f3a1234",
        "codigo_institucion": "987654321",
        "codigo_interno_consentimiento": "CONS-INT-001",
        "custom_id": "CONSENT-DEMO-001",
        "tipo_persona": "NATURAL",
        "person_rut": "12345678-5",
        "person_email": "[email protected]",
        "person_cellphone": "56998765432",
        "person_name": "GONZALEZ/SILVA/CARLOS",
        "rut_empresa": null,
        "rut_ejecutivo": "11222333-4",
        "medio": 1,
        "finalidad": 2,
        "objetivo": "01",
        "estado": "ACTIVE",
        "timestamp_otorgamiento_fecha": "20260115",
        "timestamp_otorgamiento_hora": "103015",
        "timestamp_expiracion_fecha": "20270115",
        "timestamp_expiracion_hora": "103015",
        "timestamp_revocacion_fecha": null,
        "timestamp_revocacion_hora": null,
        "timestamp_carga": "2026-01-15 10:30:15",
        "uploaded_by": "API",
        "ip": "192.168.10.25",
        "navegador": "Chrome",
        "evidence": {
          "url": "https://storage.example.com/evidence/consent_501.pdf",
          "hash": "0F6400343D627EEF5A5346BC3E8006EE17B888D9D37945959602A5EC28980A47",
          "status": "SUCCESS"
        },
        "codigo_encriptado_consentimiento": "0F6400343D627EEF5A5346BC3E8006EE17B888D9D37945959602A5EC28980A47"
      }
    ],
    "pagination": {
      "total": 137,
      "limit": 50,
      "offset": 0,
      "has_more": true
    },
    "filters_applied": {
      "limit": 50,
      "offset": 0,
      "order_by": "timestamp_carga",
      "order_direction": "DESC"
    },
    "sandbox_mode": "prod_only",
    "sandbox_included": false
  }
}

Campos importantes en la respuesta

CampoDescripción
data.consents[].consent_tokenIdentificador único Floid (UUID). Úsalo para get_consent, revoke_consent, etc.
data.consents[].custom_idEl custom_id/id_externo que pasó el cliente al crear (puede ser null).
data.consents[].estadoRenombrado en la respuesta desde la columna interna current_state.
data.consents[].evidenceBloque consolidado con url, hash y status. Sólo aparece si el consentimiento tiene evidencia cargada.
data.pagination.has_moreSi es true, hay más resultados — incrementá offset por limit.
data.sandbox_mode"prod_only" | "sandbox_only" | "mixed". Indica qué subconjunto de datos devolvió la query.
data.sandbox_includedCompatibilidad: true cuando la respuesta incluye filas sandbox (sandbox_only o mixed).

Posibles errores

error_codeHTTPCuándo
INVALID_REQUEST400Filtro con valor incompatible (ej. medio no numérico)
INTERNAL_ERROR500Error de DB

Si limit > 500, el servidor lo trunca a 500 silenciosamente — no es error. Si necesitás más, paginá con offset.

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