Consultar saldos de BancoEstado
Lee los saldos de BancoEstado YA sincronizados de esta conexión, del más reciente al más antiguo.
| Tool ID | banco_estado.saldos.consultar |
| Nombre MCP | banco_estado__saldos__consultar |
| Conector | banco_estado |
| Plano | action |
| Lee el alcance | saldos (debe estar habilitado en la conexión) |
| Scope (permiso) | banco_estado:read |
| Auth | none |
| Versión | 1 |
| 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
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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
observedDay | string ^\d{4}-\d{2}-\d{2}$ | no | 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 | string | no | Filtra por un número de cuenta. Omítelo para ver todas las cuentas de la conexión. |
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": {
"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 -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":{}}'const data = await connect.tools.banco_estado.saldos.consultar({}, { connectionId: "conn_9tKfR2mQx4Vb" });{
"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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
saldos | lista de objeto | sí | 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. |
saldos[].numeroCuenta | string | sí | El número de la cuenta a la que corresponde esta foto de saldo. |
saldos[].moneda | string | null | sí |
saldos[].observedDay | string | null | sí |
saldos[].hora | string | null | sí |
saldos[].saldoContable | número | null | sí |
saldos[].saldoDisponible | número | null | sí |
saldos[].retencionUnDia | número | null | sí |
saldos[].retencionDosDias | número | null | sí |
saldos[].retencionOtras | número | null | sí |
saldos[].retencionTotal | número | null | sí |
saldos[].syncedAt | string | null | sí |
cursor | string | null | sí |
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ó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_estado.conexion.sincronizar: la tool que escribe los datos que esta lectura devuelve.- Sincronizar y consultar: por qué leer datos reales son dos pasos.