Emisso Connect

Consultar saldos de BancoEstado

Lee los saldos de BancoEstado YA sincronizados de esta conexión, del más reciente al más antiguo.

Tool IDbanco_estado.saldos.consultar
Nombre MCPbanco_estado__saldos__consultar
Conectorbanco_estado
Planoaction
Lee el alcancesaldos (debe estar habilitado en la conexión)
Scope (permiso)banco_estado:read
Authnone
Versión1
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

Lectura pura: NO contacta al banco ni dispara una sincronización, así que si nunca se sincronizó devuelve una lista vacía. Para traer datos nuevos usa 'banco_estado.conexion.sincronizar' primero. Los saldos son una foto POR DÍA y vienen como NÚMERO conservando su signo: un sobregiro es negativo, y un saldo no lleva 'type' porque no es una operación. Pagina con 'cursor': cuando la respuesta trae 'cursor' distinto de null hay más filas, reenvía ese valor tal cual y 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_estado.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_estado.saldos.consultar({}, { connectionId: "conn_9tKfR2mQx4Vb" });
MCP · meta-tool execute
{
  "tool": "banco_estado.saldos.consultar",
  "params": {},
  "connectionId": "conn_9tKfR2mQx4Vb"
}

Salida esperada (200):

{
  "data": {
    "saldos": [
      {
        "numeroCuenta": "12345678901",
        "moneda": "PESOS",
        "observedDay": "2026-08-11",
        "hora": "14:30",
        "saldoContable": 300000,
        "saldoDisponible": 250000,
        "retencionUnDia": 0,
        "retencionDosDias": 0,
        "retencionOtras": 0,
        "retencionTotal": 0,
        "syncedAt": "2026-08-11T17:32:04.000Z"
      }
    ],
    "cursor": null
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "banco_estado.saldos.consultar",
    "plane": "action",
    "latency_ms": 24,
    "audit_status": "recorded"
  }
}

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[].monedastringnull
saldos[].observedDaystringnull
saldos[].horastringnull
saldos[].saldoContablenúmeronull
saldos[].saldoDisponiblenúmeronull
saldos[].retencionUnDianúmeronull
saldos[].retencionDosDiasnúmeronull
saldos[].retencionOtrasnúmeronull
saldos[].retencionTotalnúmeronull
saldos[].syncedAtstringnull
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."
          },
          "moneda": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "La moneda de la cuenta, en el texto del propio banco (por ejemplo 'PESOS'). null cuando el listado de cuentas no la trae."
          },
          "observedDay": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "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. Se llama 'observedDay' y no 'fecha' para que sea el mismo nombre que en los otros bancos de Connect."
          },
          "hora": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "La hora en que el banco reportó esta foto, en su propio formato (por ejemplo '14:30'). BancoEstado la entrega y los otros bancos de Connect no, así que conserva el nombre del banco."
          },
          "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."
          },
          "retencionUnDia": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lo retenido a un día. Un 0 afirma que no hay retención; un null dice que el banco no informó la celda, que es un dato distinto."
          },
          "retencionDosDias": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lo retenido a dos días. Un 0 afirma que no hay retención; un null dice que el banco no informó la celda."
          },
          "retencionOtras": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "El resto de las retenciones, sumando las dos celdas que el banco publica por separado. null si no vino ninguna de las dos; un 0 sí afirma que no hay retención."
          },
          "retencionTotal": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "El total de retenciones según el banco. null significa que no informó la celda."
          },
          "syncedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "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."
          }
        },
        "required": [
          "numeroCuenta",
          "moneda",
          "observedDay",
          "hora",
          "saldoContable",
          "saldoDisponible",
          "retencionUnDia",
          "retencionDosDias",
          "retencionOtras",
          "retencionTotal",
          "syncedAt"
        ],
        "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