Consultar nóminas de pago de Banco Security
Lee la caché ya sincronizada; NO contacta al banco.
| Tool ID | banco_security.nominas.consultar |
| Nombre MCP | banco_security__nominas__consultar |
| Conector | banco_security |
| Plano | action |
| Lee el alcance | nominas (debe estar habilitado en la conexión) |
| Scope (permiso) | banco_security:read |
| Auth | none |
| Versión | 3 |
| Sensible | sí |
| Deprecado | no |
| Comportamiento | readOnly=true, destructive=false, idempotent=true, openWorld=false |
Requiere conexión. Indica cuál en cada llamada: header
X-Connect-Connectionen REST, campoconnectionIden elexecutede MCP y en las opciones del SDK. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale deconexiones.estado.consultar.
Qué hace
Devuelve SOLO las CABECERAS de las nóminas de pago masivas guardadas de esta conexión, de la más reciente a la más antigua, filtrables por período (AAAA-MM). Exige el alcance 'nominas' habilitado. Cada cabecera trae 'numRegistros' para que dimensiones antes de pedir el detalle: las líneas de pago se piden aparte con 'banco_security.nomina_pagos.consultar' pasándole el 'idNomina' de la cabecera (hay nóminas de más de mil líneas, por eso no vienen aquí). Si el período nunca se sincronizó, devuelve una lista vacía: usa 'banco_security.conexion.sincronizar' primero. Los montos vienen como NÚMERO: 'monto' es la magnitud sin signo, 'type' dice si entra ('debit') o sale ('credit') plata según el libro del banco (al revés de como se lee una cartola) y 'display' es ese monto ya formateado a la chilena con su signo. Un saldo NO lleva 'type': es un balance y conserva su propio signo. Pagina con 'cursor': cuando la respuesta trae 'cursor' distinto de null hay más filas: reenvía ese valor tal cual; nunca lo construyas a mano.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
periodo | string ^\d{4}-\d{2}$ | no | Un mes, en formato AAAA-MM y en calendario chileno (por ejemplo '2026-07'). Cada sitio de uso afina qué significa ahí: en una sincronización es el mes que se va a traer, y en una consulta a la caché es el filtro. Esta descripción base existe para que el campo nunca llegue pelado a quien lee el contrato. |
cursor | string | no | Puntero opaco a la página siguiente. Reenvía tal cual el 'cursor' que devolvió la llamada anterior; nunca lo construyas a mano. Omítelo para pedir la primera página. |
limit | entero 1-500 | no · default 100 | Cuántas filas trae la página, entre 1 y 500. Por omisión, 100. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"periodo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$",
"description": "Un mes, en formato AAAA-MM y en calendario chileno (por ejemplo '2026-07'). Cada sitio de uso afina qué significa ahí: en una sincronización es el mes que se va a traer, y en una consulta a la caché es el filtro. Esta descripción base existe para que el campo nunca llegue pelado a quien lee el contrato."
},
"cursor": {
"description": "Puntero opaco a la página siguiente. Reenvía tal cual el 'cursor' que devolvió la llamada anterior; nunca lo construyas a mano. Omítelo para pedir la primera página.",
"type": "string"
},
"limit": {
"default": 100,
"description": "Cuántas filas trae la página, entre 1 y 500. Por omisión, 100.",
"type": "integer",
"minimum": 1,
"maximum": 500
}
}
}Ejemplo
curl -X POST https://connect.emisso.ai/api/v1/tools/banco_security.nominas.consultar/execute \
-H "Authorization: Bearer connect_sk_…" \
-H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
-H "Content-Type: application/json" \
-d '{"input":{"periodo":"2026-07"}}'const data = await connect.tools.banco_security.nominas.consultar({ periodo: "2026-07" }, { connectionId: "conn_9tKfR2mQx4Vb" });{
"tool": "banco_security.nominas.consultar",
"params": {
"periodo": "2026-07"
},
"connectionId": "conn_9tKfR2mQx4Vb"
}Salida esperada (200):
{
"data": {
"nominas": [
{
"idNomina": "611487",
"numeroNomina": "2451",
"fecha": "2026-07-30T11:05:00.000Z",
"tipo": "Remuneraciones",
"estado": "Procesada",
"numRegistros": 12,
"cuentaCargo": "915042876",
"periodo": "2026-07",
"monto": 18450000,
"type": "credit",
"display": "-18.450.000",
"ultimaLecturaEn": "2026-08-07T07:15:42.000Z"
}
],
"cursor": null
},
"meta": {
"request_id": "req_…",
"tool_id": "banco_security.nominas.consultar",
"plane": "action",
"latency_ms": 24,
"audit_status": "recorded"
}
}Recortado a una cabecera. Sus 12 líneas de pago se piden aparte con 'banco_security.nomina_pagos.consultar' pasando este 'idNomina'.
Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
nominas | lista de objeto | sí | Las cabeceras de nómina guardadas que calzan con los filtros, de la más reciente a la más antigua. Las líneas de pago no vienen aquí: se piden con 'banco_security.nomina_pagos.consultar'. |
nominas[].idNomina | string | sí | El identificador de la nómina en el banco. Es el valor que pide 'banco_security.nomina_pagos.consultar' para traer sus líneas de pago. |
nominas[].numeroNomina | string | null | sí |
nominas[].fecha | string | null | sí |
nominas[].tipo | string | null | sí |
nominas[].estado | string | null | sí |
nominas[].numRegistros | entero | null | sí |
nominas[].cuentaCargo | string | null | sí |
nominas[].periodo | string | sí | El mes (AAAA-MM) con el que se sincronizó esta fila. Es cómo se pidió el dato, no una propiedad del objeto: no entra en su identidad, así que volver a traerlo bajo otro período no crea una fila nueva. |
nominas[].monto | número | null | sí |
nominas[].type | "credit" · "debit" | null | sí |
nominas[].display | string | null | sí |
nominas[].ultimaLecturaEn | string | sí | Cuándo se leyó esta fila del banco (ISO 8601). Si está vieja, la caché puede haber dejado de moverse (por ejemplo, con la conexión pausada tras varios fallos de credencial) mientras esta tool sigue respondiendo con filas antiguas. Entre dos filas del mismo hecho, gana la de 'ultimaLecturaEn' mayor. |
cursor | string | null | sí |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"nominas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idNomina": {
"type": "string",
"description": "El identificador de la nómina en el banco. Es el valor que pide 'banco_security.nomina_pagos.consultar' para traer sus líneas de pago."
},
"numeroNomina": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "El número con que el banco rotula la nómina en su listado. No sirve para pedir el detalle: para eso va 'idNomina'."
},
"fecha": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Fecha de la nómina según el banco (ISO 8601). null si no la informa."
},
"tipo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Tipo de nómina en el texto del propio banco (por ejemplo 'Remuneraciones'), sin traducir."
},
"estado": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Estado de la nómina en el texto del propio banco (por ejemplo 'Procesada'), sin traducir."
},
"numRegistros": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Cuántas líneas de pago tiene la nómina. Está aquí para que dimensiones antes de pedir el detalle con 'banco_security.nomina_pagos.consultar': hay nóminas de más de mil líneas."
},
"cuentaCargo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "La cuenta corriente de la empresa contra la que se cargó la nómina."
},
"periodo": {
"type": "string",
"description": "El mes (AAAA-MM) con el que se sincronizó esta fila. Es cómo se pidió el dato, no una propiedad del objeto: no entra en su identidad, así que volver a traerlo bajo otro período no crea una fila nueva."
},
"monto": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "El total de la nómina, como magnitud SIN signo. El sentido lo da 'type', que en una nómina es siempre 'credit' porque es un desembolso que la empresa origina."
},
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"credit",
"debit"
]
},
{
"type": "null"
}
],
"description": "Eje crédito/débito del LIBRO DEL BANCO, no el de la cartola: 'debit' es plata que ENTRA a la cuenta (un abono) y 'credit' es plata que SALE (un cargo). Es al revés de la lectura intuitiva y está así a propósito. El campo 'monto' es la magnitud SIN signo; el signo lo lleva 'display' ('credit' → negativo). 'null' significa que el banco no informó el tipo: no asumas ninguno de los dos."
},
"display": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "El monto ya formateado a la chilena y CON signo, derivado de 'type' ('credit', plata que sale, se muestra negativo). Es una comodidad de presentación: se calcula en la lectura y no se persiste. Para operar con el número usa 'monto' (magnitud sin signo) junto con 'type'."
},
"ultimaLecturaEn": {
"type": "string",
"description": "Cuándo se leyó esta fila del banco (ISO 8601). Si está vieja, la caché puede haber dejado de moverse (por ejemplo, con la conexión pausada tras varios fallos de credencial) mientras esta tool sigue respondiendo con filas antiguas. Entre dos filas del mismo hecho, gana la de 'ultimaLecturaEn' mayor."
}
},
"required": [
"idNomina",
"numeroNomina",
"fecha",
"tipo",
"estado",
"numRegistros",
"cuentaCargo",
"periodo",
"monto",
"type",
"display",
"ultimaLecturaEn"
],
"additionalProperties": false
},
"description": "Las cabeceras de nómina guardadas que calzan con los filtros, de la más reciente a la más antigua. Las líneas de pago no vienen aquí: se piden con 'banco_security.nomina_pagos.consultar'."
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Puntero a la página siguiente. Si viene distinto de null hay más filas: vuelve a llamar reenviándolo tal cual en 'cursor'. Un null significa que no queda nada por traer."
}
},
"required": [
"nominas",
"cursor"
],
"additionalProperties": false
}Errores de esta tool
| Código | HTTP | Reintentable | Qué hacer |
|---|---|---|---|
connection_disabled | 403 | no | Reactívala en /connections o usa otra conexión del mismo sistema. |
alcance_not_enabled | 403 | no | Habilita el alcance en /connections o quítalo del input de la sincronización. |
Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.
Próximos pasos
banco_security.conexion.sincronizar: la tool que escribe los datos que esta lectura devuelve.- Sincronizar y consultar: por qué leer datos reales son dos pasos.