Captura consentimientos REDEC
Captura consentimientos REDEC
El registro REDEC te permite cumplir con la NCG 540 de la CMF capturando el RUT del usuario chileno junto con el consentimiento para evaluación de riesgo crediticio.
Antes de comenzar
Esta guía asume que ya sabes cómo capturar consentimientos usando el SDK de Soyio.
Si aún no has capturado un consentimiento, lee primero la guía de captura de consentimientos para obtener el action_token necesario.
Requisitos específicos para REDEC:
- ✅ Tienes un
action_tokendel consentimiento capturado - ✅ Conoces el RUT chileno del usuario (entity_nin)
- ✅ Tu plantilla de consentimiento es REDEC-compliant (verifica aquí)
- ✅ Has configurado el código REDEC de tu empresa (configuración)
Lo que aprenderás:
- Cómo registrar consentimientos que cumplen con NCG 540
- Qué parámetros usar según tu escenario
- Cómo manejar diferentes casos de uso (sucursal, online, usuarios existentes)
Cómo funciona el registro REDEC
El registro REDEC extiende el flujo estándar de consentimientos con información regulatoria requerida por la CMF.
Diferencias con consent_actions estándar
| Aspecto | Consent Actions Estándar | REDEC Consent Actions |
|---|---|---|
| Endpoint | /api/v1/consent_actions | /api/v1/redec/consent_actions |
| Identificación | No aplica | entity_nin (RUT, obligatorio) |
| Ejecutivo | No aplica | executive_nin (RUT, opcional) |
| Cumplimiento | Ley 21.719 | NCG 540 (CMF Chile) |
| Reportes | No genera | Incluido en reportes RDC30 |
| Template | Cualquiera | Solo REDEC-compliant |
Flujo de registro REDEC
entity_nin: RUT del usuario chileno (obligatorio para REDEC). Las entidades en Soyio se vinculan a este RUT.entity_id: ID interno de Soyio creado automáticamente al registrar el consentimiento. Se puede reusar en futuros consentimientos del mismo usuario.user_reference: Tu identificador interno del usuario. Si siempre usas el mismo, podemos resolver automáticamente la entidad correcta. Si incluyesentity_id, este tiene prioridad sobreuser_reference.
Para más información sobre estos identificadores, revisa la guía de captura de consentimientos.
Endpoint de registro REDEC
POST /api/v1/redec/consent_actions
Este endpoint está diseñado específicamente para cumplimiento regulatorio chileno y requiere información adicional comparado con el registro estándar de consentimientos.
Parámetros según tu escenario
| Escenario | action_token | entity_nin | executive_nin | entity_id / user_reference |
|---|---|---|---|---|
| Sucursal con ejecutivo | ✅ Requerido | ✅ Requerido | ✅ Incluir | Opcional (identifica al usuario) |
| Solicitud online | ✅ Requerido | ✅ Requerido | ❌ No aplica | Opcional (identifica al usuario) |
| Usuario existente | ✅ Requerido | ✅ Requerido | Según caso | ✅ entity_id prima sobre user_reference |
- Ambos sirven para identificar al usuario en tu sistema
- Si incluyes
entity_id, este tiene prioridad sobreuser_reference - Si solo incluyes
user_referencey siempre usas el mismo valor, lo resolvemos automáticamente a la entidad correcta
Implementa según tu escenario
Elige el escenario que coincida con tu caso de uso:
Escenario 1: Solicitud en sucursal (con ejecutivo)
Cuándo usar: Un ejecutivo bancario, asesor de crédito o funcionario gestiona la solicitud presencialmente. En este caso, el usuario no hace el "opt-in click" directamente.
Parámetros: action_token, entity_nin, executive_nin, user_reference
Como el ejecutivo es quien gestiona la solicitud, necesitas crear el action_token mediante integración sin SDK. Revisa la guía de captura de consentimientos para aprender a generar action tokens con la información del usuario.
- JavaScript
- cURL
- Python
// Registra el consentimiento REDEC con información del ejecutivo
const response = await fetch('https://api.soyio.id/api/v1/redec/consent_actions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
action_token: actionToken, // Token generado sin SDK
entity_nin: '12.345.678-9', // RUT del usuario
executive_nin: '98.765.432-1', // RUT del ejecutivo
user_reference: 'cliente_00042' // ID interno del cliente
})
});
const { consent_action } = await response.json();
curl -X POST https://api.soyio.id/api/v1/redec/consent_actions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action_token": "at_abc123...",
"entity_nin": "12.345.678-9",
"executive_nin": "98.765.432-1",
"user_reference": "cliente_00042"
}'
import requests
response = requests.post(
'https://api.soyio.id/api/v1/redec/consent_actions',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'action_token': action_token,
'entity_nin': '12.345.678-9',
'executive_nin': '98.765.432-1',
'user_reference': 'cliente_00042'
}
)
consent_action = response.json()['consent_action']
Revisa la referencia del API para Crear un consent action para REDEC para mas detalles.
Escenario 2: Solicitud online (sin ejecutivo)
Cuándo usar: El usuario solicita crédito desde tu app o sitio web sin intervención de un ejecutivo.
Parámetros: action_token, entity_nin, user_reference
Captura el consentimiento usando el SDK de Soyio (el usuario hace el opt-in click) o mediante integración sin SDK. Revisa la guía de captura de consentimientos para ambas opciones.
- JavaScript
- cURL
- Python
// Registra el consentimiento REDEC
const response = await fetch('https://api.soyio.id/api/v1/redec/consent_actions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
action_token: actionToken,
entity_nin: '12.345.678-9', // RUT del usuario
user_reference: 'web_user_5678' // ID interno del usuario
})
});
const { consent_action } = await response.json();
curl -X POST https://api.soyio.id/api/v1/redec/consent_actions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action_token": "at_xyz789...",
"entity_nin": "12.345.678-9",
"user_reference": "web_user_5678"
}'
import requests
response = requests.post(
'https://api.soyio.id/api/v1/redec/consent_actions',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'action_token': action_token,
'entity_nin': '12.345.678-9',
'user_reference': 'web_user_5678'
}
)
consent_action = response.json()['consent_action']
Escenario 3: Usuario existente
Cuándo usar: El usuario ya tiene consentimientos previos (de otros módulos o re-consentimientos REDEC) y quieres asociar esta acción a su entidad existente.
Parámetros: action_token, entity_nin, entity_id, user_reference
- JavaScript
- cURL
- Python
// 1. Busca el entity_id existente del usuario
const existingUser = await db.users.findOne({ rut: '11.111.111-1' });
// 2. Registra la nueva acción asociada a la entidad existente
const response = await fetch('https://api.soyio.id/api/v1/redec/consent_actions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
action_token: actionToken,
entity_nin: '11.111.111-1',
entity_id: existingUser.soyioEntityId, // Asocia a entidad existente
user_reference: 'app_user_999'
})
});
const { consent_action } = await response.json();
// 3. La acción se registra para el mismo usuario
console.log('Consentimiento registrado:', consent_action.id);
curl -X POST https://api.soyio.id/api/v1/redec/consent_actions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action_token": "at_def456...",
"entity_nin": "11.111.111-1",
"entity_id": "ent_existing123",
"user_reference": "app_user_999"
}'
# Busca el entity_id del usuario
existing_user = db.users.find_one({'rut': '11.111.111-1'})
# Registra asociado a la entidad existente
response = requests.post(
'https://api.soyio.id/api/v1/redec/consent_actions',
headers={'Authorization': f'Bearer {API_KEY}'},
json={
'action_token': action_token,
'entity_nin': '11.111.111-1',
'entity_id': existing_user['soyio_entity_id'],
'user_reference': 'app_user_999'
}
)
consent_action = response.json()['consent_action']
Al registrar la acción con el mismo entity_nin y el mismo entity_id o user_reference, la acción se asocia al mismo usuario y se mantiene el historial completo.
Revocación de consentimiento
Para registrar una revocación, necesitas crear un action_token de tipo revocación mediante integración sin SDK.
Revisa la guía de captura de consentimientos para aprender a generar action tokens de revocación. La revocación se incluirá automáticamente en los reportes RDC30.
Consentimiento verbal con audio
REDEC soporta consentimientos capturados mediante grabación de audio (por ejemplo, call centers o IVR). Esto permite registrar consentimientos verbales con evidencia de audio verificable.
Paso 1: Crear el action_token
Primero, debes crear un action_token con los campos de audio requeridos en el action_data:
audio_reference: URL del archivo MP3 que contiene la grabación del consentimientoaudio_hash: Hash SHA256 del archivo de audio en formato hexadecimal (minúsculas)
- Ambos campos son obligatorios: Si incluyes uno de estos campos, debes incluir ambos. No puedes enviar solo
audio_referencesinaudio_hasho viceversa. - Solo formato MP3: El archivo de audio debe ser formato MP3. No se soportan otros formatos (WAV, AAC, OGG, etc.).
Paso 2: Crear el consent_action
Una vez generado el action_token con los campos de audio, crea el consent_action:
- JavaScript
- cURL
- Python
// Crea el consent_action usando el action_token con audio
const response = await fetch('https://api.soyio.id/api/v1/redec/consent_actions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
action_token: actionToken, // Token creado con audio_reference y audio_hash
entity_nin: '12.345.678-9',
executive_nin: '98.765.432-1',
user_reference: 'call_center_user_123'
})
});
const { consent_action } = await response.json();
console.log('Consentimiento con audio registrado:', consent_action.id);
curl -X POST https://api.soyio.id/api/v1/redec/consent_actions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action_token": "at_with_audio...",
"entity_nin": "12.345.678-9",
"executive_nin": "98.765.432-1",
"user_reference": "call_center_user_123"
}'
import requests
# Crea el consent_action usando el action_token con audio
response = requests.post(
'https://api.soyio.id/api/v1/redec/consent_actions',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'action_token': action_token, # Token creado con audio_reference y audio_hash
'entity_nin': '12.345.678-9',
'executive_nin': '98.765.432-1',
'user_reference': 'call_center_user_123'
}
)
consent_action = response.json()['consent_action']
print(f'Consentimiento con audio registrado: {consent_action["id"]}')
Registro en lote (Consent Commits)
Cuando necesites registrar múltiples acciones de consentimiento simultáneamente, usa el endpoint de consent commits. Esto te permite enviar varios action_tokens en una sola petición HTTP, incluyendo una mezcla de acciones de otorgamiento (grant) y revocación (revoke).
¿Cuándo usar commits?
| Escenario | Usar Commits | Usar Individual |
|---|---|---|
| Múltiples consentimientos del mismo usuario | ✅ Sí | ❌ No recomendado |
| Batch processing de solicitudes | ✅ Sí | ❌ No recomendado |
| Sincronización masiva de datos | ✅ Sí | ❌ No recomendado |
| Un solo consentimiento | ❌ No | ✅ Sí |
Endpoint de consent commits
POST /api/v1/redec/consent_commits
Cómo implementar
Para ver la estructura completa del request, parámetros, respuestas y ejemplos de código en múltiples lenguajes, consulta la documentación del endpoint.
Requisitos del commit
- Mínimo 1 action_token: Debes incluir al menos un action token
- Al menos uno REDEC-compatible: Mínimo una acción debe ser REDEC-compliant
- Mismo usuario: Todas las acciones se asocian al mismo
entity_nin
- Mejor rendimiento: Una sola petición HTTP para múltiples acciones
- Simplifica batch processing: Ideal para sincronización masiva de datos
Próximos pasos
Ya registraste tu primera acción de consentimiento REDEC. Ahora puedes:
- RDC30 - Crea reportes regulatorios para la CMF y programa reportes periódicos automáticos
- Configura webhooks - Recibe notificaciones cuando se registren consentimientos y se generen reportes
- Gestiona consentimientos - Consulta, actualiza y revoca consentimientos de tus usuarios
¿Tienes dudas sobre el modelo de datos o la arquitectura? Revisa la guía de cómo funciona REDEC para entender el flujo completo.