Saltar al contenido principal

Genera reportes RDC30

Genera reportes RDC30

Los reportes RDC30 de Soyio consolidan acciones de consentimiento en un período específico para cumplir con los requisitos regulatorios de la NCG 540 de la CMF en Chile.

Estructura del reporte

Desglose visual de los campos del formato RDC30

El contenido del RDC30 se organiza en un encabezado y líneas de detalle en formato de ancho fijo.

  • Código de institución: código CMF de 10 dígitos asignado a tu institución.
  • Identificación de archivo: identificador del tipo de archivo, correspondiente a RDC30.
  • Fecha del reporte: fecha asociada al archivo reportado.
  • ID único del consentimiento: identificador interno del consentimiento registrado.
  • Fecha del consentimiento: fecha en la que se registró el consentimiento.
  • Hora del consentimiento: hora exacta en la que se registró el consentimiento.
  • Fecha de fin: fecha de término de la vigencia o del evento reportado.
  • Hora de fin: hora de término de la vigencia o del evento reportado.
  • RUT consultado: identificador de la persona titular del consentimiento.
  • Medio del consentimiento: canal o mecanismo por el cual se obtuvo el consentimiento.
  • Finalidad: propósito para el que fue otorgado el consentimiento.
  • Objetivo: tipo de producto o uso asociado al consentimiento.
  • RUT ejecutivo: contraparte que obtuvo el consentimiento cuando aplica.
  • Hash encriptado: valor de 64 caracteres que resguarda la integridad de la línea reportada.

Genera un reporte

Crea reportes de cumplimiento usando el dashboard de administración o usando la API de Soyio con el endpoint POST /api/v1/reports.

Define el tipo de reporte

Especifica el tipo de reporte que deseas generar usando el parámetro kind.

{
"kind": "rdc30"
}

Tipos de reporte disponibles:

  • rdc30 - Reporte RDC30 para cumplimiento CMF (Chile)

Define el período del reporte

Establece el rango de fechas para el reporte usando formato ISO 8601.

{
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-31T23:59:59Z"
}

Consideraciones:

  • Usa zona horaria UTC (Z al final)
  • La fecha de inicio debe ser anterior a la fecha de fin
  • El período admite cualquier duración (semanal, mensual, trimestral, etc.)
curl -X POST https://api.soyio.id/api/v1/reports \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "rdc30",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-31T23:59:59Z"
}'

La API retorna la información del reporte creado con el contenido completo:

{
"report": {
"id": "rep_abc123...", // ID del reporte
"kind": "rdc30", // Tipo de reporte
"starts_at": "2026-01-01T00:00:00Z", // Inicio del período
"ends_at": "2026-01-31T23:59:59Z", // Fin del período
"created_at": "2026-02-01T09:00:00Z",// Fecha de creación
"generated_by": null, // null para reportes vía API o automáticos
"content": "0000009876RDC3020260201...\n..." // Contenido ASCII del reporte
}
}
Campo generated_by

Si el reporte se genera vía API o automáticamente, el campo generated_by será null. Solo contendrá información del usuario cuando el reporte se genere manualmente desde el dashboard.

Opciones de generación

Genera reportes de dos formas:

Opción 1: Generación manual

Crea reportes manualmente cuando los necesites usando el endpoint o el dashboard. Esta opción te da control total sobre cuándo generar cada reporte.

Cuándo usar: Para reportes específicos, auditorías puntuales, o cuando prefieres control manual del proceso.

Opción 2: Generación automática

Activa la generación automática de reportes RDC30 desde la configuración de tu cuenta. Soyio generará un reporte automáticamente cada sábado entre las 00:00 y 01:00 (UTC).

Cuándo usar: Para cumplimiento regulatorio que requiere reportes periódicos (como RDC30). Recibirás notificaciones por webhook cada vez que se genere un reporte.

Recomendado para REDEC

Para cumplir con NCG 540, activa la generación automática y suscríbete al webhook report.created. Esto asegura que nunca te pierdas un reporte semanal.

Formato del reporte

Cada tipo de reporte tiene su propio formato de contenido.

Formato del reporte RDC30

El reporte RDC30 incluye todas las acciones de consentimiento del período en formato ASCII siguiendo las especificaciones técnicas de la CMF:

{
"report": {
"id": "rep_abc123...",
"kind": "rdc30",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-31T23:59:59Z",
"created_at": "2026-02-01T09:00:00Z",
"generated_by": null,
"content": "0000009876RDC3020251027 \nabc123def45678ghij90122025102710300020251117103000012345678K12009876543202\nxyz789ghi01234klmn56782025102015000020251026091500008765432122011222333403\n"
}
}

El campo content contiene un texto ASCII con el formato requerido por la CMF:

  • Línea 1: Encabezado con el total de registros, tipo de reporte (RDC30) y fecha
  • Líneas siguientes: Cada acción de consentimiento en formato de ancho fijo
Formato CMF

El contenido del reporte RDC30 cumple con las especificaciones técnicas de la CMF, por lo que puede ser enviado directamente a su plataforma.

Configura la generación automática de reportes

Activa la generación automática de reportes usando el dashboard o la API con el endpoint PATCH /api/v1/config:

{
"consent": {
"redec_enabled": true,
"redec_automatic_rdc30": true
}
}

Desde el dashboard:

  1. Navega a Configuración > Consentimiento
  2. Activa Reportes periódicos automáticos (RDC30)
  3. Guarda la configuración

Los reportes se generarán automáticamente cada sábado entre las 00:00 y 01:00 (UTC). Recibirás una notificación por webhook con el evento report.created cada vez que se genere un reporte.

Más detalles

Consulta la guía de configuración para opciones avanzadas de configuración.

Suscríbete al evento de creación de reportes

Suscríbete al webhook report.created para recibir notificaciones cuando se genere un reporte.

report.created

Se envía cuando un nuevo reporte ha sido generado y está listo para consultar:

Webhook payload
{
"event": "report.created",
"data": {
"id": "rep_abc123...",
"kind": "rdc30",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-31T23:59:59Z",
"created_at": "2026-02-01T09:00:00Z",
"generated_by": null,
"content": "0000009876RDC3020260201...\n..."
},
"created_at": "2026-02-01T09:00:00Z"
}

Cuándo usar: Rastrea la generación de reportes y sincroniza automáticamente con sistemas externos (ej. CMF para reportes RDC30).

Verifica el tipo de reporte

Usa el campo kind en el payload para identificar el tipo de reporte antes de procesarlo. Esto es importante porque el webhook report.created se envía para todos los tipos de reportes.

Ejemplo de handler

app.post('/webhooks/soyio', async (req, res) => {
const { event, data } = req.body;

if (event === 'report.created') {
// Verificar el tipo de reporte usando el campo 'kind'
if (data.kind === 'rdc30') {
// El contenido del reporte ya está en data.content
await syncReportToCMF(data);
}
}

res.status(200).send('OK');
});

Sincroniza con la CMF

La NCG 540 requiere sincronización semanal con la CMF. Usa webhooks para automatizar este proceso:

Paso 1: Activa reportes automáticos

  • Los reportes se generan automáticamente cada sábado entre las 00:00 y 01:00 (UTC)

Paso 2: Suscríbete al webhook report.created

  • Recibirás el reporte completo con el contenido en cada notificación

Paso 3: Procesa y sincroniza desde el webhook

async function syncReportToCMF(report) {
// 1. El contenido ya viene en formato CMF (report.content)
// Listo para enviar directamente a la plataforma CMF

// 2. Enviar a plataforma CMF
await sendToCMF(report.content);

// 3. Almacenar para auditoría
await storeReportLocally(report);
}

De esta forma, cada sábado cuando Soyio genere el reporte automáticamente, tu sistema recibirá el webhook con el contenido en formato CMF listo para sincronizar sin intervención manual.

Próximos pasos