Developers

Consentimiento

Consulta el resultado canónico y revoca consentimientos generales activos.

Consultar una interacción

GET /v1/consent-interactions/{interactionId} devuelve una interacción pending, expired o completed. Cuando está completada, la lista consents contiene la decisión explícita de cada consentimiento incluido.

curl "$CONSENSA_API_URL/v1/consent-interactions/$INTERACTION_ID" \
  --header "Authorization: Bearer $CONSENSA_API_KEY"

Ésta es la confirmación de negocio. Los eventos del Web Component son notificaciones sanitizadas para la interfaz; el resultado canónico se confirma siempre desde tu backend.

Consultar un consentimiento

Usa GET /v1/consents/{consentId} para obtener el estado vigente, fechas y scopes de un consentimiento general perteneciente a tu tenant.

curl "$CONSENSA_API_URL/v1/consents/$CONSENT_ID" \
  --header "Authorization: Bearer $CONSENSA_API_KEY"
{
  "id": "consent-72c",
  "templateKey": "credit-evaluation",
  "status": "granted",
  "grantedAt": 1787702400000,
  "revokedAt": null,
  "validUntil": null,
  "scopes": ["credit_information"]
}

Consultar Evidence

Estado de consentimiento ≠ Evidence. El estado responde qué está vigente ahora; GET /v1/consents/{consentId}/evidence devuelve la vista pública del hecho canónico que Consensa conserva para auditoría: qué decisión ocurrió, cuándo ocurrió y se registró, sobre qué versión de template, con qué autenticación/provenance y qué scopes quedaron involucrados.

Evidence no es un PDF ni un volcado de la tabla interna. La vista pública excluye ciphertext, RUT, tokens, IDs de ledger/outbox y hashes internos de encadenamiento.

curl "$CONSENSA_API_URL/v1/consents/$CONSENT_ID/evidence" \
  --header "Authorization: Bearer $CONSENSA_API_KEY"
{
  "consentId": "consent-72c",
  "decision": "granted",
  "occurredAt": 1787702400000,
  "recordedAt": 1787702400120,
  "customerId": "customer-4821",
  "template": { "key": "credit-evaluation", "version": 3, "contentHash": "sha256:…" },
  "authentication": { "method": "bank_session", "factors": [], "level": "client_authenticated" },
  "provenance": { "sourceType": "consent_action", "channel": "digital", "origin": null, "sourceSystem": "bank-channel", "sourceReference": "decision-72c" },
  "scopes": ["credit_information"]
}

occurredAt es cuándo decidió el titular; recordedAt es cuándo lo recibió Consensa. En una captura por Embed son prácticamente el mismo instante.

Revocar

La revocación es una escritura canónica e idempotente. No modifica ni borra la evidencia histórica: agrega el hecho de la revocación.

curl --request POST "$CONSENSA_API_URL/v1/consents/$CONSENT_ID/revoke" \
  --header "Authorization: Bearer $CONSENSA_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: revoke-$CONSENT_ID-01" \
  --data '{
    "occurredAt": 1787702460000,
    "sourceSystem": "bank-channel",
    "sourceReference": "revocation-271"
  }'
{ "consentId": "consent-72c", "status": "revoked", "revokedAt": 1787702460000, "replayed": false }

No uses la ausencia de una respuesta, un timeout o un evento de navegador como una revocación. El estado debe provenir de la respuesta canónica de la API.

El titular también puede revocar por su cuenta desde el Centro de Privacidad: en ese caso tu backend se entera por el evento webhook consent_action.created o al volver a consultar el estado.

Para revocar un consentimiento REDEC usa POST /v1/redec/consents/{redecConsentId}/revoke, que tiene reglas propias de canal y assurance.

En esta página