Consultar movimientos de tarjetas de Banco de Chile
Lee exclusivamente la caché de movimientos de tarjetas de crédito de esta conexión; NO abre una sesión ni contacta al banco.
| Tool ID | bch_empresas.movimientos_tarjetas.consultar |
| Nombre MCP | bch_empresas__movimientos_tarjetas__consultar |
| Conector | bch_empresas |
| Plano | action |
| Lee el alcance | movimientos_tarjetas (debe estar habilitado en la conexión) |
| Scope (permiso) | bch_empresas: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
Incluye pendientes del período actual y estados de cuenta facturados en CLP y USD. El monto conserva el signo que entregó el banco: no se infiere cargo o abono. Por defecto devuelve solo filas vigentes; usa soloVigentes=false para incluir pendientes que ya no aparecen en la última captura. Nunca devuelve PAN, titular, RUT, número de cuenta, IDs crudos ni raw.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
periodo | string ^\d{4}-\d{2}$ | no | Filtra por el mes AAAA-MM con que se sincronizó la fila. |
currency | "CLP" · "USD" | no | Filtra por la moneda primaria. |
estado | "pendiente" · "facturado" | no | Filtra por etapa de facturación. |
cardReference | string ^[a-f0-9]{64}$ | no | Filtra por la referencia opaca devuelta en otra fila. |
soloVigentes | booleano | no · default true | Por defecto excluye pendientes que desaparecieron de la captura más reciente. false también los incluye. |
cursor | string | no | Para pedir la página siguiente: el valor que la respuesta anterior devolvió en 'cursor', tal cual. Nunca lo construyas ni lo edites a mano. Omítelo para empezar por la primera página. |
limit | entero 1-500 | no · default 100 | Cuántas filas trae una página, entre 1 y 500. Por defecto, 100. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"periodo": {
"description": "Filtra por el mes AAAA-MM con que se sincronizó la fila.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}$"
},
"currency": {
"description": "Filtra por la moneda primaria.",
"type": "string",
"enum": [
"CLP",
"USD"
]
},
"estado": {
"description": "Filtra por etapa de facturación.",
"type": "string",
"enum": [
"pendiente",
"facturado"
]
},
"cardReference": {
"description": "Filtra por la referencia opaca devuelta en otra fila.",
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"soloVigentes": {
"default": true,
"description": "Por defecto excluye pendientes que desaparecieron de la captura más reciente. false también los incluye.",
"type": "boolean"
},
"cursor": {
"description": "Para pedir la página siguiente: el valor que la respuesta anterior devolvió en 'cursor', tal cual. Nunca lo construyas ni lo edites a mano. Omítelo para empezar por la primera página.",
"type": "string"
},
"limit": {
"default": 100,
"description": "Cuántas filas trae una página, entre 1 y 500. Por defecto, 100.",
"type": "integer",
"minimum": 1,
"maximum": 500
}
},
"additionalProperties": false
}Ejemplo
curl -X POST https://connect.emisso.ai/api/v1/tools/bch_empresas.movimientos_tarjetas.consultar/execute \
-H "Authorization: Bearer connect_sk_…" \
-H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
-H "Content-Type: application/json" \
-d '{"input":{"periodo":"2026-09","currency":"USD"}}'const data = await connect.tools.bch_empresas.movimientos_tarjetas.consultar({ periodo: "2026-09", currency: "USD" }, { connectionId: "conn_9tKfR2mQx4Vb" });{
"tool": "bch_empresas.movimientos_tarjetas.consultar",
"params": {
"periodo": "2026-09",
"currency": "USD"
},
"connectionId": "conn_9tKfR2mQx4Vb"
}Salida esperada (200):
{
"data": {
"movimientosTarjetas": [
{
"id": "8c17b8e4960715f7eb127b945add1066897251cb61794f751d6b55bec0e7837a",
"cardReference": "4152a185babf4df0ca71b80cd31c5fb6ef03d4dfec157110d434c849b194b1b1",
"terminacionTarjeta": "1234",
"tipoTarjeta": "Visa Empresa",
"currency": "USD",
"estado": "facturado",
"vigente": true,
"periodo": "2026-09",
"fechaTransaccion": "2026-09-03",
"fechaFacturacion": "2026-09-30",
"horaAutorizacion": null,
"seccion": "compras",
"descripcion": "Compra internacional",
"comercio": "Comercio de ejemplo",
"monto": 19.75,
"display": "19,75",
"montoMonedaOrigen": 21.1,
"displayMonedaOrigen": "21,1",
"cuotas": null,
"pais": "US",
"rubro": null,
"ciudad": null,
"grupo": null,
"repeticiones": 1,
"ultimaLecturaEn": "2026-09-04T12:00:00.000Z"
}
],
"cursor": null
},
"meta": {
"request_id": "req_…",
"tool_id": "bch_empresas.movimientos_tarjetas.consultar",
"plane": "action",
"latency_ms": 24,
"audit_status": "recorded"
}
}Todos los datos son sintéticos. cardReference e id son referencias opacas, no IDs del banco.
Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
movimientosTarjetas | lista de objeto | sí | Movimientos de tarjetas guardados. Una lista vacía significa que el alcance aún no se sincronizó o no encontró filas. |
movimientosTarjetas[].id | string ^[a-f0-9]{64}$ | sí | Identidad opaca y estable del movimiento. Nunca contiene el ID crudo del banco ni el número de tarjeta. |
movimientosTarjetas[].cardReference | string ^[a-f0-9]{64}$ | null | sí |
movimientosTarjetas[].terminacionTarjeta | string ^\d{4}$ | null | sí |
movimientosTarjetas[].tipoTarjeta | string | null | sí |
movimientosTarjetas[].currency | "CLP" · "USD" | sí | Moneda del monto primario: pesos chilenos o dólares estadounidenses. |
movimientosTarjetas[].estado | "pendiente" · "facturado" | sí | Etapa del movimiento dentro del ciclo de facturación. |
movimientosTarjetas[].vigente | booleano | sí | En pendientes indica si apareció en la captura completa más reciente. Los facturados permanecen vigentes. |
movimientosTarjetas[].periodo | string ^\d{4}-\d{2}$ | sí | Mes solicitado al sincronizar esta fila, en formato AAAA-MM. |
movimientosTarjetas[].fechaTransaccion | string ^\d{4}-\d{2}-\d{2}$ | null | sí |
movimientosTarjetas[].fechaFacturacion | string ^\d{4}-\d{2}-\d{2}$ | null | sí |
movimientosTarjetas[].horaAutorizacion | string | null | sí |
movimientosTarjetas[].seccion | "no_facturados" · "operaciones" · "cargos_impuestos_abonos" · "compras_en_cuotas" · "productos_servicios_voluntarios" · "pagos" · … | sí | Sección cerrada del portal de la que salió el movimiento. |
movimientosTarjetas[].descripcion | string | null | sí |
movimientosTarjetas[].comercio | string | null | sí |
movimientosTarjetas[].monto | número | sí | Monto primario con el signo exacto que entregó Banco de Chile. |
movimientosTarjetas[].display | string | sí | El monto primario formateado para mostrar; conserva el signo de 'monto'. |
movimientosTarjetas[].montoMonedaOrigen | número | null | sí |
movimientosTarjetas[].displayMonedaOrigen | string | null | sí |
movimientosTarjetas[].cuotas | string | null | sí |
movimientosTarjetas[].pais | string | null | sí |
movimientosTarjetas[].rubro | string | null | sí |
movimientosTarjetas[].ciudad | string | null | sí |
movimientosTarjetas[].grupo | string | null | sí |
movimientosTarjetas[].repeticiones | entero | sí | Cantidad de objetos indistinguibles agrupados sin fabricar una identidad basada en su posición. |
movimientosTarjetas[].ultimaLecturaEn | string | sí | Instante ISO 8601 en que esta fila se observó por última vez. |
cursor | string | null | sí |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"movimientosTarjetas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Identidad opaca y estable del movimiento. Nunca contiene el ID crudo del banco ni el número de tarjeta."
},
"cardReference": {
"anyOf": [
{
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
{
"type": "null"
}
],
"description": "Referencia opaca de la tarjeta de procedencia. Es null si el mismo objeto apareció en más de una tarjeta."
},
"terminacionTarjeta": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}$"
},
{
"type": "null"
}
],
"description": "Solo los últimos cuatro dígitos. Nunca es un PAN completo; null cuando el banco no permite atribuir la fila."
},
"tipoTarjeta": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Nombre o tipo que entrega el banco, o null cuando no está disponible."
},
"currency": {
"type": "string",
"enum": [
"CLP",
"USD"
],
"description": "Moneda del monto primario: pesos chilenos o dólares estadounidenses."
},
"estado": {
"type": "string",
"enum": [
"pendiente",
"facturado"
],
"description": "Etapa del movimiento dentro del ciclo de facturación."
},
"vigente": {
"type": "boolean",
"description": "En pendientes indica si apareció en la captura completa más reciente. Los facturados permanecen vigentes."
},
"periodo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$",
"description": "Mes solicitado al sincronizar esta fila, en formato AAAA-MM."
},
"fechaTransaccion": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "Día de la transacción en America/Santiago, o null si el banco no lo trajo."
},
"fechaFacturacion": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "Día del estado de cuenta para filas facturadas; null en pendientes."
},
"horaAutorizacion": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Hora que informa el banco para un pendiente, o null si no viene."
},
"seccion": {
"type": "string",
"enum": [
"no_facturados",
"operaciones",
"cargos_impuestos_abonos",
"compras_en_cuotas",
"productos_servicios_voluntarios",
"pagos",
"compras",
"comisiones"
],
"description": "Sección cerrada del portal de la que salió el movimiento."
},
"descripcion": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Descripción o glosa que entrega el banco, o null si no viene."
},
"comercio": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Nombre del comercio que entrega el banco, o null si no viene."
},
"monto": {
"type": "number",
"description": "Monto primario con el signo exacto que entregó Banco de Chile."
},
"display": {
"type": "string",
"description": "El monto primario formateado para mostrar; conserva el signo de 'monto'."
},
"montoMonedaOrigen": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Monto en moneda de origen cuando el banco lo informa, sin inventar su código; null cuando no viene."
},
"displayMonedaOrigen": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Presentación de montoMonedaOrigen, o null cuando no viene."
},
"cuotas": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Descripción de cuotas del banco, o null si no aplica."
},
"pais": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "País o código de país informado por el banco, o null."
},
"rubro": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Rubro del comercio informado por el banco, o null."
},
"ciudad": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Ciudad informada por el banco, o null."
},
"grupo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Grupo de presentación del estado de cuenta, o null."
},
"repeticiones": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "Cantidad de objetos indistinguibles agrupados sin fabricar una identidad basada en su posición."
},
"ultimaLecturaEn": {
"type": "string",
"description": "Instante ISO 8601 en que esta fila se observó por última vez."
}
},
"required": [
"id",
"cardReference",
"terminacionTarjeta",
"tipoTarjeta",
"currency",
"estado",
"vigente",
"periodo",
"fechaTransaccion",
"fechaFacturacion",
"horaAutorizacion",
"seccion",
"descripcion",
"comercio",
"monto",
"display",
"montoMonedaOrigen",
"displayMonedaOrigen",
"cuotas",
"pais",
"rubro",
"ciudad",
"grupo",
"repeticiones",
"ultimaLecturaEn"
],
"additionalProperties": false
},
"description": "Movimientos de tarjetas guardados. Una lista vacía significa que el alcance aún no se sincronizó o no encontró filas."
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Cursor de la página siguiente. Reenvíalo tal cual; null significa que no quedan más filas."
}
},
"required": [
"movimientosTarjetas",
"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
bch_empresas.conexion.sincronizar: la tool que escribe los datos que esta lectura devuelve.- Sincronizar y consultar: por qué leer datos reales son dos pasos.
Verificar conexión Banco de Chile
Prueba las credenciales de la conexión contra Banco de Chile haciendo un login real (y su logout, a cargo del pipeline).
Consultar movimientos de Banco de Chile
Lee los movimientos ya sincronizados de esta conexión, del más reciente al más antiguo, filtrables por período (AAAA-MM) y por cuenta.