Connect

Sincronizar conexión BCI 360

Sincroniza saldos actuales y movimientos mensuales de la empresa autorizada en BCI 360.

Tool IDbci_360.conexion.sincronizar
Nombre MCPbci_360__conexion__sincronizar
Conectorbci_360
Planoread
Alcancessaldos, movimientos
Scope (permiso)bci_360:read
Authconnection_credentials
Versión1
Sensible
Deprecadono
ComportamientoreadOnly=false, destructive=false, idempotent=true, openWorld=true

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

Recorre todas las páginas y actualiza por ID bancario y cuenta, sin duplicar movimientos. No ejecuta pagos.

Entrada

CampoTipoRequeridoDescripción
periodostring ^\d{4}-\d{2}$Mes AAAA-MM que se sincronizará.
alcanceslista de "saldos" · "movimientos"Módulos que se sincronizarán en la misma sesión.
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": "Mes AAAA-MM que se sincronizará."
    },
    "alcances": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "saldos",
          "movimientos"
        ]
      },
      "description": "Módulos que se sincronizarán en la misma sesión."
    }
  },
  "required": [
    "periodo",
    "alcances"
  ]
}

Ejemplo

curl
curl -X POST https://connect.emisso.ai/api/v1/tools/bci_360.conexion.sincronizar/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
  -H "Content-Type: application/json" \
  -d '{"input":{"periodo":"2026-09","alcances":["movimientos"]}}'
SDK TypeScript
const data = await connect.tools.bci_360.conexion.sincronizar({ periodo: "2026-09", alcances: ["movimientos"] }, { connectionId: "conn_9tKfR2mQx4Vb" });
MCP · meta-tool execute
{
  "tool": "bci_360.conexion.sincronizar",
  "params": {
    "periodo": "2026-09",
    "alcances": [
      "movimientos"
    ]
  },
  "connectionId": "conn_9tKfR2mQx4Vb"
}

Salida esperada (200):

{
  "data": {
    "periodo": "2026-09",
    "results": [
      {
        "alcance": "movimientos",
        "status": "ok",
        "recordsSynced": 17
      }
    ]
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "bci_360.conexion.sincronizar",
    "plane": "read",
    "latency_ms": 58240,
    "audit_status": "recorded"
  }
}

Salida

CampoTipoRequeridoDescripción
periodostringMes solicitado.
resultslista de objetoResultado por módulo solicitado.
results[].alcancestringMódulo sincronizado.
results[].status"ok" · "failed"Resultado del módulo; failed nunca implica cero movimientos.
results[].recordsSyncedenteroRegistros recibidos para persistir.
results[].errorstringnoCódigo de error del módulo.
results[].detallestringnoExplicación del resultado.
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "periodo": {
      "type": "string",
      "description": "Mes solicitado."
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "alcance": {
            "type": "string",
            "description": "Módulo sincronizado."
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "failed"
            ],
            "description": "Resultado del módulo; failed nunca implica cero movimientos."
          },
          "recordsSynced": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Registros recibidos para persistir."
          },
          "error": {
            "description": "Código de error del módulo.",
            "type": "string"
          },
          "detalle": {
            "description": "Explicación del resultado.",
            "type": "string"
          }
        },
        "required": [
          "alcance",
          "status",
          "recordsSynced"
        ],
        "additionalProperties": false
      },
      "description": "Resultado por módulo solicitado."
    }
  },
  "required": [
    "periodo",
    "results"
  ],
  "additionalProperties": false
}

Errores de esta tool

CódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
connection_credential_required428noCrea un enlace con conexiones.enlace.crear (modo reconectar si la conexión ya existe) y pide a la persona que entregue la credencial de nuevo. No reintentes con la credencial anterior.
connection_busy409Espera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.
upstream_error502Reintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.
timeout504Reintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo.
connection_session_pending409Ejecuta la sincronización de esa conexión (ella acuña la sesión) o espera la programada, y reintenta.
connection_sync_in_progress409Espera a que termine y reintenta, o consulta directamente: puede que ya haya datos.
too_many_pending429Deja terminar los trabajos en curso antes de encolar más.

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