El API datos-comerciales/transaction/execute retorna la siguiente estructura:
interconnectResponse.applicants.primaryConsumer
├── personalInformation # Datos del documento consultado
├── calculates # 126 metricas PRE-CALCULADAS por Equifax
├── elSalvador360 # Codigo de estado de la operacion
└── infoCrediticia # DATA CRUDA detallada
├── scoreActual[1] # Score crediticio actual + mensajes
├── bandeuda[145] # Deudas bancarias (prestamos + TC reportados a bancos)
├── tardeuda[28] # Deudas de tarjetas de credito
├── deucomer[85] # Deudas comerciales (cooperativas, telecom, comercio)
├── sicom[2] # Registro SICOM
├── morinfo[5] # Informacion de mora
├── directoriopersonas[1] # Directorio de personas
├── scoreHistorico[28] # Historico de scores
├── fiadoresbanca[29] # Fiadores bancarios
├── fiadorescomercio[18] # Fiadores comerciales
└── consulta[4] # Consultas realizadas
bandeuda (145 registros, 36 periodos: 202207-202506)
Cubre productos bancarios: PRESTAMOS, TARJETA DE CREDITO, CUENTAS POR COBRAR.
Campos clave: diasMoraCapital, cuotaReferencia, fechaOtorgamiento, estadoCredito, periodoInformacion, tipoPrestamo.
tardeuda (28 registros, 9 periodos: 202312-202506)
Cubre tarjetas de credito especificamente.
Campos clave: limiteDolares, pagoMinimo, estadoCredito, saldoMora.
NO tiene diasMoraCapital — solo saldoMora (monto) y fechaMora (fecha).
deucomer (85 registros, 36 periodos: 202207-202506)
Cubre deuda comercial: cooperativas, telecom (TELEFONICA), retail (ALMACENES SIMAN).
Campos clave: montoCuota, saldoMora, estadoCredito, tipoEntidad.
NO tiene diasMoraCapital — solo saldoMora y fechaMora.
calculates (126 campos pre-calculados por Equifax) Metricas agregadas que cubren TODOS los productos (banco, tarjetas, telecom, IMF, comercial).
| Aspecto | Detalle |
|---|---|
| Fuente | infoCrediticia.tardeuda[] |
| Campo | limiteDolares |
| Filtro | periodoInformacion = mas reciente, estadoCredito = 'NORMAL' |
| Operacion | SUM |
Evidencia con data real (periodo 202506):
| Referencia | Fuente | limiteDolares | estadoCredito |
|---|---|---|---|
| 450820 | CREDIBAC | 5,000 | NORMAL |
| 0044378739 | T.DINERO | 4,000 | NORMAL |
| 0626894026 | T.DINERO | 4,000 | NORMAL |
| 428291 | BANCO CUSCATLAN | 3,950 | NORMAL |
| 8739004437 | T.DINERO | 4,000 | NORMAL |
| 4437873900 | T.DINERO | 4,000 | NORMAL |
| 7390044378 | T.DINERO | 4,000 | NORMAL |
| TOTAL | 28,950.00 |
Justificacion:
- Equifax NO provee este campo pre-calculado. Solo ofrece
be_maxlimite_tar = 5,000(MAX individual, no SUM). - Se DEBE calcular desde data cruda
tardeuda[].limiteDolares. - Se filtran solo tarjetas con
estadoCredito = 'NORMAL'(excluyendo'CANCELADA'). - Se usa el periodo mas reciente para reflejar la situacion actual.
| Aspecto | Detalle |
|---|---|
| Fuente 1 | infoCrediticia.tardeuda[] → campo pagoMinimo |
| Fuente 2 | infoCrediticia.deucomer[] → campo montoCuota |
| Filtro | Periodo mas reciente, estadoCredito != 'CANCELADO'/'CANCELADA' |
| Operacion | SUM(tardeuda.pagoMinimo) + SUM(deucomer.montoCuota) |
Evidencia — Tarjetas (tardeuda 202506, activas):
| Referencia | pagoMinimo |
|---|---|
| 450820 | 18.35 |
| 0044378739 | 1,209.02 |
| 0626894026 | 1,314.44 |
| 428291 | 0.00 |
| 8739004437 | 1,209.02 |
| 4437873900 | 1,209.02 |
| 7390044378 | 1,209.02 |
| Subtotal tarjetas | 6,168.87 |
Validacion cruzada: be_sumcuotaref_tar = 6,168.87 ✅ coincide exactamente.
Evidencia — Comercial (deucomer 202506, no cancelado):
| Fuente | Tipo | Registros | montoCuota |
|---|---|---|---|
| CETYA DE R.L. (cooperativa) | CREDITO A PLAZOS | 8 | 507.76 |
| ALMACENES SIMAN (retail) | LINEA ROTATIVO | 4 | 5.47 |
| TELEFONICA (telecom) | LINEA ROTATIVO | 7 | 5.81 |
| Subtotal comercial | 19 | 519.04 |
sv_sumcuota = 6,168.87 + 519.04 = 6,687.91
Justificacion — ¿Por que NO usar be_sumcuotaref_com (5.47)?
- Equifax clasifica "comercial" (
be_sumcuotaref_com = 5.47) de forma estricta, excluyendo cooperativas y telecom. - Equifax separa:
be_sumcuotaref_com(5.47) +be_sumcuotaref_imf(444.29) +be_sumcuotaref_tel(5.81). - Para evaluar capacidad de pago real, todas las obligaciones mensuales compiten por el mismo ingreso: cooperativas, telecom, retail.
- Usar deucomer completa (519.04) es la vision mas conservadora y correcta para decision de credito.
- Excluir cooperativas/telecom seria subestimar las obligaciones del cliente → mayor riesgo de aprobar creditos impagables.
| Aspecto | Detalle |
|---|---|
| Fuente | infoCrediticia.bandeuda[] |
| Campo | diasMoraCapital |
| Agrupacion | Por periodoInformacion (YYYYMM) |
| Operacion | MAX(diasMoraCapital) por periodo → mapear a escala 0-7 |
| Formato | String de 24 valores separados por ; |
Escala de mapeo dias → nivel:
| Dias mora | Nivel | Significado |
|---|---|---|
| 0 | 0 | Al dia |
| 1-30 | 1 | Mora leve |
| 31-60 | 2 | Mora moderada |
| 61-90 | 3 | Mora significativa |
| 91-120 | 4 | Mora severa |
| 121-150 | 5 | Mora grave |
| 151-180 | 6 | Mora muy grave |
| 180+ | 7 | Default/Castigo |
Evidencia — Ultimos 24 periodos de bandeuda:
| Periodo | Registros | Max diasMora | Nivel |
|---|---|---|---|
| 202307-202502 | 2-11 | 0 | 0 |
| 202503 | 10 | 7 | 1 |
| 202504 | 10 | 36 | 2 |
| 202505 | 10 | 64 | 3 |
| 202506 | 15 | 95 | 4 |
Vector resultante: 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;2;3;4
Justificacion — ¿Por que solo bandeuda?
- bandeuda es la unica fuente con
diasMoraCapitalpor registro por periodo. - tardeuda NO tiene
diasMoraCapital(solosaldoMoraen monto, no dias). - deucomer NO tiene
diasMoraCapital(solosaldoMorayfechaMora). - bandeuda cubre productos bancarios + tarjetas de credito reportadas a bancos, que son la base del vector.
- Los 36 periodos disponibles (202207-202506) superan los 24 necesarios.
- Equifax provee
be_maxdiasmora_tot24mpero como un solo valor MAX del periodo (no per-month), insuficiente para el vector.
Edge case — Menos de 24 meses:
- Si hay < 24 periodos en bandeuda, rellenar las posiciones faltantes con
0a la izquierda. - Esto asume "sin informacion = sin mora", lo cual es conservador para el vector (no penaliza por falta de historial).
| Aspecto | Detalle |
|---|---|
| Fuente | infoCrediticia.bandeuda[] |
| Campo | fechaOtorgamiento |
| Filtro | estadoCredito = 'VIGENTE', periodo mas reciente |
| Operacion | MIN(fechaOtorgamiento) → diff en meses vs fecha de corte |
Evidencia — Registros activos (bandeuda 202506, VIGENTE):
| fechaOtorgamiento | tipoPrestamo | codigoFuente |
|---|---|---|
| 2015-10-15 | DECRECIENTE NO ROT. | BANCO DAVIVIENDA SA |
| 2021-06-26 | CREDITO DECRECIENTE | BANCO AGRICOLA |
| 2024-10-24 | TARJETA DE CREDITO | BANCO CUSCATLAN |
| 2024-10-26 | TARJETA DE CREDITO | BANCO DAVIVIENDA SA |
| 2024-10-28 | CREDITO DECRECIENTE | BANCO DAVIVIENDA SA |
| 2024-11-22 | TARJETA DE CREDITO | BANCO CUSCATLAN |
| 2025-05-13 | TARJETA DE CREDITO | BANCO AGRICOLA |
Calculo: Fecha corte = Junio 2025 (del periodoInformacion 202506)
- Oldest: 2015-10-15
- MOB = (2025-06) - (2015-10) = 116 meses
Justificacion:
- Se usa la
fechaOtorgamientomas antigua de registros VIGENTES (no cancelados). - La fecha de corte se deriva del
periodoInformacionmas reciente en la respuesta. - Equifax NO provee MOB pre-calculado en la seccion
calculates.
| Aspecto | Detalle |
|---|---|
| Fuente | calculates.be_maxdiasmora_actual |
| Operacion | Mapear a escala 0-7 (misma que vector_24m) |
Evidencia — Comparativa de fuentes:
| Fuente | Max dias mora | Cobertura |
|---|---|---|
| bandeuda.diasMoraCapital (202506) | 95 | Solo banco |
| be_maxdiasmora_ban12m | 95 | Solo banco 12m |
| be_maxdiasmora_tar12m | 103 | Solo tarjetas 12m |
| be_maxdiasmora_com12m | 108 | Solo comercial 12m |
| be_maxdiasmora_tel12m | 110 | Solo telecom 12m |
| be_maxdiasmora_imf12m | 97 | Solo IMF 12m |
| be_maxdiasmora_actual | 110 | TODOS los productos |
Calculo: be_maxdiasmora_actual = 110 → nivel 4 (91-120 dias)
Justificacion — ¿Por que be_maxdiasmora_actual y no bandeuda cruda?
- Si usaramos solo bandeuda: max = 95 → nivel 4. Mismo nivel en este caso, pero valor inexacto.
- El valor real es 110 (de telecom), que bandeuda NO captura.
- tardeuda y deucomer NO tienen campo
diasMoraCapital— solo montos de mora (saldoMora) y fecha (fechaMora), sin dias de atraso directo. - Para una fintech evaluando riesgo: la mora en telecom es indicador lider de estres financiero. Ignorarla seria subestimar el riesgo.
- Usar
be_maxdiasmora_actuales la unica forma de cubrir TODOS los productos sin recalcular desde datos incompletos.
| Campo | Fuente | Tipo | Razon |
|---|---|---|---|
| sv_sumlimite | tardeuda.limiteDolares | CRUDA | No existe SUM pre-calculado |
| sv_sumcuota | tardeuda.pagoMinimo + deucomer.montoCuota | CRUDA | Definicion mas amplia que Equifax |
| sv_vector_24m | bandeuda.diasMoraCapital por periodo | CRUDA | Necesita granularidad mensual |
| mob | bandeuda.fechaOtorgamiento | CRUDA | No existe pre-calculado |
| nivel_mora | calculates.be_maxdiasmora_actual | PRE-CALCULADA | Cubre todos los productos |
Principio de diseno: Usar data cruda cuando necesitamos un calculo que Equifax no provee o cuando nuestra definicion difiere. Usar pre-calculada cuando Equifax ya tiene la metrica exacta que necesitamos con mejor cobertura.