Construindo um Bot Python RPA para Monitorar Status de Pagamentos no ICICI Instabiz

Construindo um Bot Python RPA para Monitorar Status de Pagamentos no ICICI Instabiz

A conciliação financeira em tempo quase real é um dos maiores desafios de tesouraria para empresas que operam volumes expressivos de transações diárias. Em plataformas corporativas como o ICICI Instabiz, consultar manualmente o status de liquidação de pagamentos hora a hora não apenas drena horas produtivas da equipe financeira, como também introduz atrasos operacionais críticos. A solução técnica para esse atrito reside na criação de agentes de Robotic Process Automation (RPA) leves, previsíveis e resilientes a falhas de rede.

Neste artigo, você entenderá como arquitetar um bot de monitoramento bancário em Python projetado para executar consultas periódicas com integridade transacional e segurança de credenciais.


O Desafio da Automação em Portais Bancários Corporativos

Automatizar rotinas em internet banking corporativo apresenta peculiaridades que scripts web comuns não conseguem contornar de forma sustentável:

  1. Sessões efêmeras e timeouts: Portais corporativos desconectam rapidamente conexões ociosas.
  2. Elementos DOM dinâmicos: Interfaces corporativas modernas renderizam dados via JavaScript assíncrono com IDs dinâmicos.
  3. Sensibilidade de dados: O manuseio de credenciais e relatórios de fluxo de caixa exige isolamento total de segredos de execução.

Para resolver isso de forma confiável, o design deve priorizar uma stack orientada a eventos com tratamento preventivo de exceções.


Stack Recomendada e Arquitetura do Bot

Para criar uma automação horária robusta, evitamos navegadores pesados sem controle de contexto. A combinação recomendada inclui:

  • Playwright (Python): Melhor gerenciamento de contextos isolados, renderização veloz de Single Page Applications (SPAs) e suporte nativo a esperas inteligentes de seletores.
  • APScheduler / Cron de SO: Para disparo programado a cada 60 minutos sem dependência de loops infinitos frágeis (time.sleep).
  • Pandas / OpenPyXL: Para parsing imediato de relatórios tabulares e normalização de dados.
  • Pydantic: Para validação estrita do esquema de saída das transações extraídas.

Implementando o Fluxo de Extração Resiliente

1. Gestão Segura de Credenciais

Nunca armazene senhas no código-fonte. Utilize variáveis de ambiente ou cofres dedicados (como HashiCorp Vault ou AWS Secrets Manager):

python
import os
from pydantic import BaseModel, SecretStr

class BankCredentials(BaseModel):
userid: str
corporate
id: str
password: SecretStr

credentials = BankCredentials(
userid=os.environ[“ICICIUSERID”],
corporate
id=os.environ[“ICICICORPID”],
password=SecretStr(os.environ[“ICICI_PASSWORD”])
)

2. Autenticação e Navegação com Playwright

O principal erro em automações bancárias é o uso de seletores frágeis baseados em hierarquia rígida de nós HTML. Use seletores funcionais e mecanismos explícitos de espera:

python
from playwright.syncapi import syncplaywright

def fetchpaymentstatuses(creds: BankCredentials):
with syncplaywright() as p:
browser = p.chromium.launch(headless=True)
context = browser.new
context(
viewport={“width”: 1920, “height”: 1080},
useragent=”Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36″
)
page = context.new
page()

    try:
        # Acesso ao portal Instabiz
        page.goto("https://www.icicibank.com/corporate/login", timeout=45000)

        # Preenchimento de credenciais corporativas
        page.fill("input#corpId", creds.corporate_id)
        page.fill("input#userId", creds.user_id)
        page.fill("input#password", creds.password.get_secret_value())
        page.click("button#loginBtn")

        # Aguarda a estabilização do dashboard pós-login
        page.wait_for_selector("div.dashboard-summary", timeout=30000)

        # Navegação até o extrato/status de transações pendentes
        page.goto("https://www.icicibank.com/corporate/payments/status")
        page.wait_for_selector("table.transaction-status-table", timeout=20000)

        # Extração dos dados tabulares
        rows = page.query_selector_all("table.transaction-status-table tbody tr")
        results = []
        for row in rows:
            cols = [col.inner_text().strip() for col in row.query_selector_all("td")]
            if cols:
                results.append({
                    "transaction_id": cols[0],
                    "beneficiary": cols[1],
                    "amount": cols[2],
                    "status": cols[3],
                    "timestamp": cols[4]
                })

        return results

    finally:
        # Garante encerramento limpo da sessão no banco
        context.close()
        browser.close()

3. Persistência e Alertas Delta

A cada execução horária, o bot deve comparar os registros coletados com o banco de dados interno e notificar apenas quando houver transição de estado (ex: de Pending para Success ou Failed). Isso reduz ruído de telemetria e evita gravações duplicadas.


Boas Práticas de Tolerância a Falhas

Como especialista em IA e engenharia de software aplicada à automação de processos, recomendo estruturar a infraestrutura seguindo três premissas fundamentais:

  1. Política de Backoff Exponencial: Se o portal bancário responder com erro 5xx ou lentidão no handshake, o script não deve insistir continuamente. Implemente retentativas com intervalos progressivos (1 min, 5 min, 15 min).
  2. Screenshots em Falhas: Configure handlers no Playwright para capturar o snapshot da tela no exato momento em que uma asserção falhar. Isso reduz o tempo de diagnóstico operacional a minutos.
  3. Isolamento em Contêiner: Execute o RPA dentro de um contêiner Docker rodando em modo headless para garantir paridade de ambiente e evitar conflitos de versões de bibliotecas e drivers do navegador.

Conclusão e Próximos Passos

Automatizar a coleta de status transacional no ICICI Instabiz via Python traz previsibilidade contábil e elimina tarefas manuais repetitivas. A chave do sucesso dessa solução não reside apenas em simular cliques, mas em projetar uma arquitetura desacoplada, segura e tolerante a instabilidades transitórias do portal corporativo.

Se a sua empresa necessita de pipelines de automação bancária, integrações RPA corporativas e fluxos de auditoria construídos com padrões industriais de segurança, entre em contato para uma consultoria técnica especializada e descubra como otimizar suas operações financeiras.

Preencha o formulário abaixo para que eu consiga entrar em contato com você.