Nodda Docs

Banco Security

Banco Security Empresas es una fuente activa de Nodda. Una conexión a Banco Security sincroniza transferencias directas, nóminas masivas, saldos y movimientos de cuenta, proyectando sus registros a un formato consultable por API.

Scopes de Banco Security

ScopeQué sincroniza
directasTransferencias directas (individuales)
masivasNóminas masivas de pago
saldosSaldos de cuenta corriente (historial de saldos observados)
movimientosMovimientos de la cuenta corriente (cartola normalizada)

Habilítalos al crear la conexión (enabled_scopes) y elígelos al gatillar un sync.

Webhook de sync

Al terminar un sync, Nodda emite un webhook sync.succeeded (o sync.partial / sync.failed). El sobre y la firma son genéricos; lo específico de Banco Security es data.scopeOutcomes[], con una entrada por scope sincronizado. Cada entrada trae el scope y el period (YYYY-MM) que sincronizó:

{
  "type": "sync.succeeded",
  "timestamp": "2026-06-05T14:05:33.000Z",
  "data": {
    "syncRunId": "9b8c7d6e-5f4a-3b2c-1d0e-aabbccddee03",
    "organizationId": "11111111-2222-3333-4444-555555555555",
    "connectionId": "3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b",
    "status": "succeeded",
    "scopes": ["directas", "masivas", "saldos"],
    "scopeOutcomes": [
      { "scope": "directas", "status": "ok", "recordsFound": 12, "period": "2026-05" },
      { "scope": "masivas",  "status": "ok", "recordsFound": 3,  "period": "2026-05" },
      { "scope": "saldos",   "status": "ok", "recordsFound": 1,  "period": null }
    ]
  }
}
  • directas, masivas y movimientos son por período → traen period (YYYY-MM). Úsalo para llamar al read endpoint del scope con ?period=2026-05.
  • saldos es puntual (point-in-time) → period: null. Consúltalo con ?latest=true, no por período.
  • Cada scope emite su propia entrada; itera scopeOutcomes[] y actúa por scope según su status. Solo recibirás entradas de los scopes que habilitaste.

Scope directas — Transferencias directas

Metadata de sync

Al gatillar un sync del scope directas puedes pasar los siguientes parámetros en metadata:

ParámetroTipoNotas
periodstringPeríodo a sincronizar en formato YYYY-MM (p. ej. 2026-05)

Listar transferencias

GET /connections/{id}/security-transfers

Lista las transferencias directas proyectadas de una conexión, ordenadas por fecha de transferencia descendente y paginadas (50 por página por defecto).

QueryTipoNotas
periodstringperíodo en formato YYYY-MM
directionstringissued (enviada) o received (recibida)
fromstringfecha mínima YYYY-MM-DD
tostringfecha máxima YYYY-MM-DD
limitnumbermáximo de registros (por defecto 50, máximo 200)
offsetnumberregistros a omitir para paginar (por defecto 0)

direction usa issued para transferencias que tú enviaste y received para las que recibiste. La plataforma las muestra como "Enviada" / "Recibida".

curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-transfers?period=2026-05&direction=issued" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": [
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "numero_transaccion": "TRX-20260515-001",
      "transferred_at": "2026-05-15T14:30:00.000Z",
      "amount": "2500000.00",
      "currency": "CLP",
      "subject": "Pago factura 456",
      "counterparty_rut": "76.543.210-K",
      "counterparty_name": "Proveedor SpA",
      "counterparty_bank": "Banco de Chile",
      "direction": "issued"
    }
  ],
  "pagination": { "total": 42, "limit": 50, "offset": 0, "has_more": false }
}

Campos de una transferencia

CampoTipoNotas
idUUIDidentificador en Nodda
numero_transaccionstring | nullnúmero de transacción del banco
transferred_atdatetime | nullfecha y hora de la transferencia
amountstringmonto (decimal como string)
currencystringmoneda (p. ej. CLP)
subjectstring | nullglosa / descripción
counterparty_rutstring | nullRUT de la contraparte
counterparty_namestring | nullnombre de la contraparte
counterparty_bankstring | nullbanco de la contraparte
directionstringissued (enviada) · received (recibida)

Períodos disponibles (transferencias)

GET /connections/{id}/security-transfers/periods

Devuelve la lista de períodos YYYY-MM con al menos una transferencia proyectada.

curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-transfers/periods" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": ["2026-05", "2026-04", "2026-03"]
}

Scope masivas — Nóminas masivas

Metadata de sync

Al gatillar un sync del scope masivas puedes pasar los siguientes parámetros en metadata:

ParámetroTipoNotas
periodstringPeríodo a sincronizar en formato YYYY-MM

Listar nóminas

GET /connections/{id}/security-nominas

Lista las nóminas masivas proyectadas de una conexión, ordenadas por fecha descendente y paginadas (50 por página por defecto).

QueryTipoNotas
periodstringperíodo en formato YYYY-MM
fromstringfecha mínima YYYY-MM-DD
tostringfecha máxima YYYY-MM-DD
limitnumbermáximo de registros (por defecto 50, máximo 200)
offsetnumberregistros a omitir para paginar (por defecto 0)
curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-nominas?period=2026-05" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": [
    {
      "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "numero_nomina": "NOM-20260514-042",
      "nomina_date": "2026-05-14",
      "tipo": "TEF",
      "cuenta_cargo": "000-001-12345-6",
      "estado": "PROCESADA",
      "num_registros": 50,
      "monto": "48750000.00",
      "currency": "CLP"
    }
  ],
  "pagination": { "total": 8, "limit": 50, "offset": 0, "has_more": false }
}

Campos de una nómina

CampoTipoNotas
idUUIDidentificador en Nodda
numero_nominastring | nullnúmero de nómina del banco
nomina_datestring | nullfecha de la nómina YYYY-MM-DD
tipostring | nulltipo de nómina (p. ej. TEF)
cuenta_cargostring | nullcuenta de cargo
estadostring | nullestado de la nómina (p. ej. PROCESADA)
num_registrosnumber | nullcantidad de pagos en la nómina
montostringmonto total (decimal como string)
currencystringmoneda (p. ej. CLP)

Listar pagos de una nómina

GET /connections/{id}/security-nominas/{nomina_id}/pagos

Lista los pagos individuales (líneas) de una nómina masiva.

QueryTipoNotas
limitnumbermáximo de registros (por defecto 50, máximo 200)
offsetnumberregistros a omitir para paginar (por defecto 0)
curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-nominas/c3d4e5f6-a7b8-9012-cdef-123456789012/pagos" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": [
    {
      "id": "d4e5f6a7-b8c9-0123-defa-234567890123",
      "linea": 1,
      "rut": "12.345.678-9",
      "nombre": "Juan Pérez González",
      "tipo_cuenta": "CTE",
      "numero_cuenta": "000-001-98765-4",
      "banco": "Banco Santander",
      "monto": "975000.00",
      "estado": "PAGADO",
      "mail": "juan.perez@empresa.cl",
      "glosa": "Sueldo mayo 2026",
      "motivo_rechazo": null
    }
  ],
  "pagination": { "total": 50, "limit": 50, "offset": 0, "has_more": false }
}

Campos de un pago

CampoTipoNotas
idUUIDidentificador en Nodda
lineanumber | nullnúmero de línea en la nómina
rutstring | nullRUT del beneficiario
nombrestring | nullnombre del beneficiario
tipo_cuentastring | nulltipo de cuenta destino (p. ej. CTE, AHO)
numero_cuentastring | nullnúmero de cuenta destino
bancostring | nullbanco destino
montostringmonto del pago (decimal como string)
estadostring | nullestado del pago (p. ej. PAGADO, RECHAZADO)
mailstring | nullcorreo del beneficiario
glosastring | nulldescripción / glosa del pago
motivo_rechazostring | nullmotivo de rechazo si estado es RECHAZADO

Períodos disponibles (nóminas)

GET /connections/{id}/security-nominas/periods
curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-nominas/periods" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": ["2026-05", "2026-04"]
}

Scope saldos — Saldos de cuenta

A diferencia de directas y masivas (que son listas por período), saldos es puntual: cada sync registra el saldo observado en ese momento, conservando el historial de saldos (una observación por cuenta/moneda por sync).

Metadata de sync

El scope saldos no recibe parámetros en metadata. La fecha de observación (observed_at) la registra Nodda al momento de leer el saldo.

Listar saldos (historial)

GET /connections/{id}/security-balances

Lista el historial de saldos observados de una conexión, del más reciente al más antiguo y paginado (50 por página por defecto).

QueryTipoNotas
lateststringtrue devuelve solo el saldo más reciente por cuenta/moneda (sin paginación)
currencystringfiltra por moneda (p. ej. CLP, USD)
fromstringfecha mínima YYYY-MM-DD (sobre observed_at)
tostringfecha máxima YYYY-MM-DD (sobre observed_at)
limitnumbermáximo de registros (por defecto 50, máximo 200)
offsetnumberregistros a omitir para paginar (por defecto 0)
# saldo actual de cada cuenta
curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-balances?latest=true" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": [
    {
      "id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
      "numero_cuenta": "234567890",
      "currency": "CLP",
      "saldo_contable": "245397500.00",
      "saldo_disponible": "245397500.00",
      "saldo_provisorio": "245397500.00",
      "observed_at": "2026-06-19T14:30:00.000Z"
    }
  ]
}

Con latest=true la respuesta no incluye pagination (es el saldo vigente por cuenta/moneda). Sin latest, la respuesta es el historial paginado e incluye pagination como en los demás endpoints.

Campos de un saldo

CampoTipoNotas
idUUIDidentificador en Nodda
numero_cuentastringnúmero de cuenta
currencystringmoneda (CLP, USD)
saldo_contablestring | nullsaldo contable (decimal como string)
saldo_disponiblestring | nullsaldo disponible (decimal como string)
saldo_provisoriostring | nullsaldo provisorio (decimal como string)
observed_atdatetimemomento en que Nodda observó el saldo (ISO 8601)

Scope movimientos — Movimientos de cuenta corriente

Captura la cartola completa de la cuenta corriente (todos los movimientos: transferencias, pagos, leasing, cargos masivos, comisiones, …), normalizada al mismo vocabulario que los demás bancos — ver Bancos — modelo de movimientos.

Sin contraparte estructurada. A diferencia de BCI, la cartola de Banco Security no entrega una contraparte estructurada: para este scope counterparty_name, counterparty_rut, counterparty_bank, counterparty_account y category no se exponen. Para datos de contraparte usa los scopes directas / masivas.

Metadata de sync

ParámetroTipoNotas
periodstringYYYY-MM. Por defecto el mes actual (America/Santiago).

Listar movimientos

GET /connections/{id}/security-movements

Lista los movimientos proyectados de una conexión, ordenados por fecha de movimiento descendente y paginados (50 por página por defecto).

QueryTipoNotas
periodstringperíodo en formato YYYY-MM
directionstringfiltra por received o issued
fromstringfecha mínima YYYY-MM-DD
tostringfecha máxima YYYY-MM-DD
limitnumbermáximo de registros (por defecto 50, máximo 200)
offsetnumberregistros a omitir para paginar (por defecto 0)
curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-movements?period=2026-05" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
      "numero_cuenta": "234567890",
      "currency": "CLP",
      "period": "2026-05",
      "fecha_movimiento": "2026-05-15T00:00:00.000Z",
      "descripcion": "Pago proveedor",
      "documento": "DOC-12345",
      "amount": "-2500000",
      "saldo_contable": "11800000",
      "tipo": "C",
      "direction": "issued"
    }
  ],
  "pagination": { "total": 42, "limit": 50, "offset": 0, "has_more": false }
}

Campos de un movimiento

CampoTipoNotas
idUUIDidentificador en Nodda
numero_cuentastringnúmero de cuenta
currencystring | nullmoneda (CLP, USD) — ver limitación abajo
periodstringperíodo YYYY-MM
fecha_movimientodatetime | nullfecha del movimiento
descripcionstring | nullglosa / descripción (la contraparte queda embebida aquí como texto)
documentostring | nullNº de documento del movimiento que entrega el banco
amountstring | nullmonto con signo (decimal como string); negativo para cargos, positivo para abonos
saldo_contablestring | nullsaldo contable tras el movimiento
tipostring | nullC = cargo (débito) · A = abono (crédito)
directionstring | nullreceived (abono/entrada) o issued (cargo/salida)

documento y cruce de fuentes. Nodda preserva documento tal como lo entrega el banco; es la llave que tú puedes usar para correlacionar un movimiento con una transferencia de los scopes directas/masivas. Nodda no cruza fuentes — el join, la deduplicación y las reglas de negocio entre fuentes son responsabilidad del cliente.

Limitación conocida (moneda en cartola histórica). Para períodos cerrados anteriores la cartola histórica de Banco Security no expone la moneda por cuenta, por lo que currency se reporta como CLP. El mes en curso sí refleja la moneda real de la cuenta (p. ej. USD).

Períodos disponibles (movimientos)

GET /connections/{id}/security-movements/periods

Devuelve la lista de períodos YYYY-MM con al menos un movimiento proyectado.

curl "https://app.nodda.cl/api/connections/3f1c9e2a-7b44-4d51-9a0e-1c2d3e4f5a6b/security-movements/periods" \
  -H "Authorization: Bearer nodda_sk_tu_token_aqui"

Respuesta (200):

{
  "data": ["2026-05", "2026-04", "2026-03"]
}