Consultar transferencias de Banco Security
Lee la caché ya sincronizada; NO contacta al banco.
| Tool ID | banco_security.transferencias.consultar |
| Nombre MCP | banco_security__transferencias__consultar |
| Conector | banco_security |
| Plano | action |
| Lee el alcance | transferencias (debe estar habilitado en la conexión) |
| Scope (permiso) | banco_security:read |
| Auth | none |
| Versión | 4 |
| 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 las transferencias TEF guardadas de esta conexión, de la más reciente a la más antigua, filtrables por período (AAAA-MM) y por dirección. Exige el alcance 'transferencias' habilitado. Omitir 'direccion' trae enviadas y recibidas juntas; el campo 'direction' de cada fila las distingue ('issued' = enviada, 'received' = recibida). 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. 'numeroTransaccion' sí es texto (tiene 14 dígitos y no entra en un entero de 32 bits). 'ultimaLecturaEn' dice cuándo se leyó esa fila del banco. 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. |
direccion | "enviadas" · "recibidas" | no | Filtra por dirección: 'enviadas' son las que la empresa cursó y 'recibidas' las que le llegaron. Omítelo para traer las dos juntas; el campo 'direction' de cada fila las distingue. |
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."
},
"direccion": {
"description": "Filtra por dirección: 'enviadas' son las que la empresa cursó y 'recibidas' las que le llegaron. Omítelo para traer las dos juntas; el campo 'direction' de cada fila las distingue.",
"type": "string",
"enum": [
"enviadas",
"recibidas"
]
},
"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.transferencias.consultar/execute \
-H "Authorization: Bearer connect_sk_…" \
-H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
-H "Content-Type: application/json" \
-d '{"input":{"periodo":"2026-07","direccion":"enviadas"}}'const data = await connect.tools.banco_security.transferencias.consultar({ periodo: "2026-07", direccion: "enviadas" }, { connectionId: "conn_9tKfR2mQx4Vb" });{
"tool": "banco_security.transferencias.consultar",
"params": {
"periodo": "2026-07",
"direccion": "enviadas"
},
"connectionId": "conn_9tKfR2mQx4Vb"
}Salida esperada (200):
{
"data": {
"transferencias": [
{
"sourceTransferId": "issued:39262015878491",
"direction": "issued",
"periodo": "2026-07",
"numeroTransaccion": "39262015878491",
"transferredAt": "2026-07-15T14:23:08.000Z",
"currency": "CLP",
"statusCode": 1,
"transferType": "Transferencia a terceros",
"nominaNumber": null,
"ownRut": "77123456-9",
"ownAccount": "915042876",
"monto": 2380000,
"type": "credit",
"display": "-2.380.000",
"subject": "Pago factura 10452",
"counterpartyRut": "76543210-3",
"counterpartyName": "Distribuidora Los Andes Ltda",
"counterpartyBank": "Banco de Chile",
"counterpartyAccount": "001234567801",
"counterpartyEmail": "pagos@ejemplo.cl",
"creatorRut": "12345678-5",
"approverRut": "9876543-3",
"payerRut": "77123456-9",
"ultimaLecturaEn": "2026-08-07T07:15:42.000Z"
}
],
"cursor": null
},
"meta": {
"request_id": "req_…",
"tool_id": "banco_security.transferencias.consultar",
"plane": "action",
"latency_ms": 24,
"audit_status": "recorded"
}
}Recortado a una transferencia enviada. 'type' es 'credit' porque la plata SALE (libro del banco) y 'display' ya la muestra en negativo.
Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
transferencias | lista de objeto | sí | Las transferencias guardadas que calzan con los filtros, de la más reciente a la más antigua. Una lista vacía significa que ese período no se ha sincronizado, no que no haya transferencias. |
transferencias[].sourceTransferId | string | sí | Identificador estable de la transferencia dentro de Connect, compuesto por la dirección y el número de transacción (por ejemplo 'issued:39262015878491'). Sirve para reconocer la misma transferencia entre dos lecturas; el banco no lo muestra. |
transferencias[].direction | "issued" · "received" | sí | 'issued' es una transferencia que la empresa envió y 'received' una que recibió. Es el campo que las distingue cuando consultas sin filtrar por 'direccion'. |
transferencias[].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. |
transferencias[].numeroTransaccion | string | sí | El número de transacción que emite el banco. Viene como texto a propósito: tiene unos 14 dígitos y no cabe en un entero de 32 bits. Trátalo como identificador y no lo conviertas a número. |
transferencias[].transferredAt | string | null | sí |
transferencias[].currency | string | sí | Moneda de la transferencia, en código ISO ('CLP' o 'USD'). |
transferencias[].statusCode | entero | null | sí |
transferencias[].transferType | string | null | sí |
transferencias[].nominaNumber | entero | null | sí |
transferencias[].ownRut | string | null | sí |
transferencias[].ownAccount | string | null | sí |
transferencias[].monto | número | null | sí |
transferencias[].type | "credit" · "debit" | null | sí |
transferencias[].display | string | null | sí |
transferencias[].subject | string | null | sí |
transferencias[].counterpartyRut | string | null | sí |
transferencias[].counterpartyName | string | null | sí |
transferencias[].counterpartyBank | string | null | sí |
transferencias[].counterpartyAccount | string | null | sí |
transferencias[].counterpartyEmail | string | null | sí |
transferencias[].creatorRut | string | null | sí |
transferencias[].approverRut | string | null | sí |
transferencias[].payerRut | string | null | sí |
transferencias[].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": {
"transferencias": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceTransferId": {
"type": "string",
"description": "Identificador estable de la transferencia dentro de Connect, compuesto por la dirección y el número de transacción (por ejemplo 'issued:39262015878491'). Sirve para reconocer la misma transferencia entre dos lecturas; el banco no lo muestra."
},
"direction": {
"type": "string",
"enum": [
"issued",
"received"
],
"description": "'issued' es una transferencia que la empresa envió y 'received' una que recibió. Es el campo que las distingue cuando consultas sin filtrar por 'direccion'."
},
"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."
},
"numeroTransaccion": {
"type": "string",
"description": "El número de transacción que emite el banco. Viene como texto a propósito: tiene unos 14 dígitos y no cabe en un entero de 32 bits. Trátalo como identificador y no lo conviertas a número."
},
"transferredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Cuándo se cursó la transferencia (ISO 8601). null si el banco no trajo la fecha."
},
"currency": {
"type": "string",
"description": "Moneda de la transferencia, en código ISO ('CLP' o 'USD')."
},
"statusCode": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "El código de estado que el banco asigna a la transferencia, tal cual, sin traducir. Solo viene en las enviadas ('issued'); en las recibidas es null."
},
"transferType": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Tipo de transferencia en el texto del propio banco (por ejemplo 'Transferencia a terceros'). null cuando no lo informa."
},
"nominaNumber": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Número de la nómina de pago masiva de la que salió esta transferencia. null significa que no vino de una nómina."
},
"ownRut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "RUT del lado propio de la operación: el de origen si la empresa envió la transferencia, el de destino si la recibió."
},
"ownAccount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Número de la cuenta propia en esta transferencia: la de origen si la empresa la envió, la de destino si la recibió."
},
"monto": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Magnitud de la transferencia SIN signo. El sentido lo da 'type' y el signo visible lo trae 'display'. Un null significa que el banco no trajo la celda, que no es lo mismo que cero."
},
"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'."
},
"subject": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "El asunto con que se cursó la transferencia, tal como lo escribió quien la hizo (por ejemplo 'Pago factura 10452')."
},
"counterpartyRut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "RUT de la contraparte: el destinatario si la transferencia salió, el emisor si entró."
},
"counterpartyName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Nombre de la contraparte, tal como lo informa el banco."
},
"counterpartyBank": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Banco de la contraparte, en el texto del portal (por ejemplo 'Banco de Chile')."
},
"counterpartyAccount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Número de cuenta de la contraparte."
},
"counterpartyEmail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Correo al que el banco avisó la transferencia a la contraparte, cuando lo hay."
},
"creatorRut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "RUT de quien creó la transferencia en el portal. Solo viene en las enviadas ('issued'); en las recibidas es null."
},
"approverRut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "RUT de quien la aprobó en el portal. Solo viene en las enviadas ('issued'); en las recibidas es null."
},
"payerRut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "RUT que el banco registra como pagador de la transferencia. Solo viene en las enviadas ('issued'); en las recibidas es null."
},
"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": [
"sourceTransferId",
"direction",
"periodo",
"numeroTransaccion",
"transferredAt",
"currency",
"statusCode",
"transferType",
"nominaNumber",
"ownRut",
"ownAccount",
"monto",
"type",
"display",
"subject",
"counterpartyRut",
"counterpartyName",
"counterpartyBank",
"counterpartyAccount",
"counterpartyEmail",
"creatorRut",
"approverRut",
"payerRut",
"ultimaLecturaEn"
],
"additionalProperties": false
},
"description": "Las transferencias guardadas que calzan con los filtros, de la más reciente a la más antigua. Una lista vacía significa que ese período no se ha sincronizado, no que no haya transferencias."
},
"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": [
"transferencias",
"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.