Saltar al contenido principal

Genera reportes RDC31

Genera reportes RDC31

El reporte RDC31 consolida los accesos a la base de deuda realizados bajo un consentimiento REDEC válido. Soyio almacena cada acceso reportable y genera el archivo en el formato de ancho fijo requerido por la CMF.

Cuándo usar RDC31

Usa RDC31 cuando tu institución:

  • consulta directamente la base de deuda consolidada
  • ya registró el consentimiento REDEC del deudor en Soyio
  • necesita informar cada acceso exitoso realizado bajo ese consentimiento

RDC31 no reemplaza el registro del consentimiento. Primero registra el consentimiento REDEC y luego informa cada acceso exitoso asociado a ese redec_id.

Qué registra Soyio

Cada acceso informado incluye:

  • redec_id del consentimiento usado en la consulta
  • fecha del acceso (access_date)
  • hora del acceso (access_time)
  • RUT del mandatario, si la consulta fue hecha por un tercero autorizado

Soyio valida antes de persistir:

  • que el redec_id exista para tu empresa
  • que el consentimiento siga vigente al momento del acceso
  • que no haya sido revocado antes del acceso
  • que el acceso no sea un duplicado exacto

Paso 1: guarda el redec_id del consentimiento

Necesitas conservar el redec_id retornado por el flujo REDEC para reutilizarlo cada vez que consultes la base de deuda bajo ese consentimiento.

Si ya generas y almacenas los recibos o webhooks REDEC, usa ese identificador como llave de referencia para RDC31.

Paso 2: informa cada acceso exitoso

Usa el endpoint POST /api/v1/redec/accesses para registrar cada acceso. Puedes enviar una sola entrada o un arreglo cuando procesas múltiples accesos en lote.

Payload base

{
"redec_id": "REDECIDABC1234567890",
"access_date": "20250616",
"access_time": "213000",
"mandatary_nin": "11.111.111-1"
}

Campos clave:

  • redec_id: identificador del consentimiento REDEC asociado al acceso
  • access_date: fecha del acceso en formato YYYYMMDD
  • access_time: hora del acceso en formato HHMMSS
  • mandatary_nin: RUT del mandatario si aplica. Si el acceso fue directo, envía null o no lo incluyas
POST /api/v1/redec/accesses
curl -X POST https://api.soyio.id/api/v1/redec/accesses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"redec_id": "REDECIDABC1234567890",
"access_date": "20250616",
"access_time": "213000",
"mandatary_nin": "11.111.111-1"
}'

Registro masivo

Cuando tu proceso genera múltiples accesos exitosos en la misma corrida, envía un arreglo:

POST /api/v1/redec/accesses
[
{
"redec_id": "REDECIDABC1234567890",
"access_date": "20250616",
"access_time": "083000",
"mandatary_nin": null
},
{
"redec_id": "REDECIDABC1234567890",
"access_date": "20250616",
"access_time": "213000",
"mandatary_nin": "11.111.111-1"
}
]

Registra cada consulta exitosa por separado. Si consultas dos veces el mismo redec_id a distinta hora, informa dos accesos.

Paso 3: genera el reporte RDC31

Usa el endpoint POST /api/v1/reports con kind: "rdc31" y el rango semanal que deseas reportar.

Payload base
{
"kind": "rdc31",
"starts_at": "2025-06-14T00:00:00Z",
"ends_at": "2025-06-20T23:59:59Z"
}
POST /api/v1/reports
curl -X POST https://api.soyio.id/api/v1/reports \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "rdc31",
"starts_at": "2025-06-14T00:00:00Z",
"ends_at": "2025-06-20T23:59:59Z"
}'

Qué retorna el reporte

La respuesta incluye el contenido ASCII del archivo y la metadata que necesitas para completar la cuadratura.

Respuesta de ejemplo
{
"report": {
"id": "rep_abc123...",
"kind": "rdc31",
"starts_at": "2025-06-14T00:00:00Z",
"ends_at": "2025-06-20T23:59:59Z",
"created_at": "2025-06-21T00:30:00Z",
"generated_by": null,
"content": "0000123456RDC3120250620 \nREDECIDABC1234567890202506162130000111111111\n",
"metadata": {
"institution_name": "Acme Bank",
"institution_code": 123456,
"information_date": "20062025",
"total_records": 1,
"mandatary_accesses_count": 1,
"business_day_accesses_count": 1,
"non_business_hours_accesses_count": 1
}
}
}

Cómo usar metadata

Usa report.metadata para completar la carátula de cuadratura del RDC31. Hoy Soyio entrega estas métricas junto al reporte:

  • total_records
  • mandatary_accesses_count
  • business_day_accesses_count
  • non_business_hours_accesses_count

El contenido del archivo y la metadata de cuadratura se generan juntos. Eso te permite automatizar la descarga del TXT y también poblar tu flujo interno de revisión antes de subirlo a la CMF.

Formato del archivo

El contenido del RDC31 se entrega en texto ASCII con líneas de ancho fijo.

  • Encabezado: código de institución CMF, identificador RDC31, fecha de referencia y relleno
  • Detalle: redec_id, fecha de acceso, hora de acceso y RUT del mandatario cuando aplica
Ejemplo simplificado
0000123456RDC3120250620                     
REDECIDABC1234567890202506162130000111111111

Configura generación automática

Activa la generación automática semanal desde la configuración de consentimiento:

PATCH /api/v1/config
{
"consent": {
"redec_enabled": true,
"redec_automatic_rdc31": true
}
}

Cuando esta opción está activa, Soyio genera el RDC31 automáticamente cada sábado después del cierre semanal y lo publica con el webhook report.created.

Usa webhooks para sincronizar el proceso

El webhook report.created se envía también para RDC31. Verifica el campo kind antes de procesarlo.

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

if (event === 'report.created' && data.kind === 'rdc31') {
await storeCoverSheetData(data.metadata);
await sendToCMF(data.content);
}

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

Buenas prácticas

  • Guarda el redec_id junto con tu solicitud de crédito o evaluación
  • Informa el acceso inmediatamente después de una consulta exitosa
  • Usa el modo masivo solo cuando controles deduplicación en tu propio proceso
  • Automatiza la descarga del reporte con report.created
  • Revisa Configuración para activar la generación semanal

Próximos pasos