Emisso Connect

Consultar saldos de Banco Security

Lee la caché ya sincronizada; NO contacta al banco.

Tool IDbanco_security.saldos.consultar
Nombre MCPbanco_security__saldos__consultar
Conectorbanco_security
Planoaction
Lee el alcancesaldos (debe estar habilitado en la conexión)
Scope (permiso)banco_security:read
Authnone
Versión3
Sensible
Deprecadono
ComportamientoreadOnly=true, destructive=false, idempotent=true, openWorld=false

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST, campo connectionId en el execute de 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 de conexiones.estado.consultar.

Qué hace

Devuelve los saldos guardados de esta conexión (contable, disponible y provisorio), con el snapshot más reciente primero. Exige el alcance 'saldos' habilitado. Si nunca se sincronizó, devuelve una lista vacía (eso NO significa que la empresa no tenga cuentas); usa 'banco_security.conexion.sincronizar' primero. Los saldos son un snapshot POR DÍA, así que sin filtro de fecha la primera página ya son los más recientes que hay guardados. Los tres saldos vienen como NÚMERO ya normalizado (antes eran la celda cruda del banco, '$ 12.345.678'), y conservan su signo: un sobregiro es negativo. Un saldo no lleva 'type': no es una operación. 'ultimaLecturaEn' dice cuándo se leyó esa fila del banco: si es vieja, la conexión puede estar pausada. 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

CampoTipoRequeridoDescripción
observedDaystring ^\d{4}-\d{2}-\d{2}$noFiltra por el día de la foto de saldo, en formato AAAA-MM-DD. Si lo omites, la primera página ya trae las fotos más recientes que haya guardadas.
numeroCuentastringnoFiltra por un número de cuenta. Omítelo para ver todas las cuentas de la conexión.
cursorstringnoPuntero 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.
limitentero 1-500no · default 100Cuá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": {
    "observedDay": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Filtra por el día de la foto de saldo, en formato AAAA-MM-DD. Si lo omites, la primera página ya trae las fotos más recientes que haya guardadas."
    },
    "numeroCuenta": {
      "description": "Filtra por un número de cuenta. Omítelo para ver todas las cuentas de la conexión.",
      "type": "string"
    },
    "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
curl -X POST https://connect.emisso.ai/api/v1/tools/banco_security.saldos.consultar/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
  -H "Content-Type: application/json" \
  -d '{"input":{}}'
SDK TypeScript
const data = await connect.tools.banco_security.saldos.consultar({}, { connectionId: "conn_9tKfR2mQx4Vb" });
MCP · meta-tool execute
{
  "tool": "banco_security.saldos.consultar",
  "params": {},
  "connectionId": "conn_9tKfR2mQx4Vb"
}

Salida esperada (200):

{
  "data": {
    "saldos": [
      {
        "numeroCuenta": "915042876",
        "currency": "CLP",
        "observedDay": "2026-08-07",
        "observedAt": "2026-08-07T07:15:38.000Z",
        "saldoContable": 12845301,
        "saldoDisponible": 12610301,
        "saldoProvisorio": 235000,
        "ultimaLecturaEn": "2026-08-07T07:15:42.000Z"
      },
      {
        "numeroCuenta": "915042884",
        "currency": "USD",
        "observedDay": "2026-08-07",
        "observedAt": "2026-08-07T07:15:38.000Z",
        "saldoContable": 15230.5,
        "saldoDisponible": 15230.5,
        "saldoProvisorio": 0,
        "ultimaLecturaEn": "2026-08-07T07:15:42.000Z"
      }
    ],
    "cursor": null
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "banco_security.saldos.consultar",
    "plane": "action",
    "latency_ms": 24,
    "audit_status": "recorded"
  }
}

Sin filtros, la primera página trae el snapshot más reciente de cada cuenta; la misma empresa puede tener cuentas en pesos y en dólares.

Salida

CampoTipoRequeridoDescripción
saldoslista de objetoLas fotos de saldo guardadas que calzan con los filtros, de la más reciente a la más antigua. Una lista vacía significa que la conexión nunca sincronizó saldos, no que la empresa no tenga cuentas.
saldos[].numeroCuentastringEl número de la cuenta a la que corresponde esta foto de saldo.
saldos[].currencystringMoneda de la cuenta, en código ISO ('CLP' o 'USD'). La misma empresa puede tener cuentas en pesos y en dólares, y cada una trae su propia fila.
saldos[].observedDaystringEl día de esta foto de saldo, en formato AAAA-MM-DD. Hay una foto por cuenta y por día: volver a sincronizar el mismo día actualiza esta fila en vez de agregar otra.
saldos[].observedAtstringEl instante (ISO 8601) en que se tomó la foto dentro de ese día.
saldos[].saldoContablenúmeronull
saldos[].saldoDisponiblenúmeronull
saldos[].saldoProvisorionúmeronull
saldos[].ultimaLecturaEnstringCuá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.
cursorstringnull
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "saldos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "numeroCuenta": {
            "type": "string",
            "description": "El número de la cuenta a la que corresponde esta foto de saldo."
          },
          "currency": {
            "type": "string",
            "description": "Moneda de la cuenta, en código ISO ('CLP' o 'USD'). La misma empresa puede tener cuentas en pesos y en dólares, y cada una trae su propia fila."
          },
          "observedDay": {
            "type": "string",
            "description": "El día de esta foto de saldo, en formato AAAA-MM-DD. Hay una foto por cuenta y por día: volver a sincronizar el mismo día actualiza esta fila en vez de agregar otra."
          },
          "observedAt": {
            "type": "string",
            "description": "El instante (ISO 8601) en que se tomó la foto dentro de ese día."
          },
          "saldoContable": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "El saldo contable de la cuenta. Es un balance, no una operación: conserva su propio signo (un sobregiro es negativo) y no lleva 'type'. Un null significa que el banco no trajo la celda, que no es lo mismo que cero."
          },
          "saldoDisponible": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "El saldo disponible de la cuenta. Es un balance: conserva su propio signo y no lleva 'type'. Un null significa que el banco no trajo la celda, que no es lo mismo que cero."
          },
          "saldoProvisorio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "El saldo provisorio de la cuenta, tal como lo publica el portal. Es un balance: conserva su propio signo y no lleva 'type'. Un null significa que el banco no trajo la celda."
          },
          "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": [
          "numeroCuenta",
          "currency",
          "observedDay",
          "observedAt",
          "saldoContable",
          "saldoDisponible",
          "saldoProvisorio",
          "ultimaLecturaEn"
        ],
        "additionalProperties": false
      },
      "description": "Las fotos de saldo guardadas que calzan con los filtros, de la más reciente a la más antigua. Una lista vacía significa que la conexión nunca sincronizó saldos, no que la empresa no tenga cuentas."
    },
    "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": [
    "saldos",
    "cursor"
  ],
  "additionalProperties": false
}

Errores de esta tool

CódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
alcance_not_enabled403noHabilita 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

On this page