O Bank Statement Parser lida com fluxos de trabalho financeiros reais: ingestão de extratos bancários em PDF, migração MT940 para CAMT, reconciliação automatizada com verificação de saldo, pipelines de conformidade, exportação para contabilidade em texto simples, implantações via REST API, varredura em massa e consolidação multibancária.
Ingestão de Extratos Bancários em PDF
Resultado: Analise extratos bancários digitais e digitalizados em PDF com verificação automática de saldo — sem APIs na nuvem, nenhum dado sai da sua máquina.
O pipeline híbrido de PDF roteia cada PDF pelo caminho de extração ideal e verifica cada resultado.
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
print(result.source_method) # "deterministic" | "llm" | "vision"
print(result.verification.status) # VERIFIED | DISCREPANCY | FAILED
# Review discrepancies interactively
# bankstatementparser --type review --input result.json
Processamento de Extratos em Massa
Resultado: Varra árvores de pastas inteiras (centenas de PDFs, XMLs, CSVs) com deduplicação automática entre arquivos em uma única chamada.
from bankstatementparser.hybrid import scan_and_ingest
batch = scan_and_ingest("statements/2026/", pattern="**/*.pdf")
print(f"Files: {len(batch.results)}, Unique txns: {batch.unique_count}")
Tesouraria: Migração de MT940 para CAMT.053
Resultado: Uma única chamada de API lida com MT940 e CAMT.053 durante a janela de migração SWIFT (novembro de 2025 a novembro de 2028), eliminando a necessidade de pipelines separados.
Equipes de tesouraria no mundo todo estão migrando de MT940 para CAMT.053 antes do prazo SWIFT de novembro de 2027. O Bank Statement Parser lida com ambos os formatos com uma única API, tornando a transição simples.
from bankstatementparser import create_parser, detect_statement_format
# Process both MT940 and CAMT.053 with the same code
for file in daily_statement_files:
fmt = detect_statement_format(file)
parser = create_parser(file, fmt)
df = parser.parse()
load_to_treasury_system(df)
Reconciliação Automatizada com Verificação de Saldo
Resultado: DataFrames independentes de formato com verificação Golden Rule e deduplicação capturam erros e duplicatas antes de chegarem ao seu livro-razão.
Analise extratos bancários, verifique saldos e compare com registros internos automaticamente.
from bankstatementparser import CamtParser, Deduplicator
from bankstatementparser.hybrid import verify_balance_multi_currency
parser = CamtParser("bank_statement.xml")
bank_txns = parser.parse()
# Verify balances per currency
verification = verify_balance_multi_currency(bank_txns)
for ccy, result in verification.items():
assert result.status == "VERIFIED", f"{ccy} balance mismatch!"
# Deduplicate before reconciliation
dedup = Deduplicator()
result = dedup.deduplicate(dedup.from_dataframe(bank_txns))
clean_txns = result.unique_transactions
# Match against internal records
unmatched = reconcile(clean_txns, internal_ledger)
Contabilidade em Texto Simples (hledger / beancount)
Resultado: Ingira automaticamente extratos bancários em PDF e exporte transações categorizadas no formato journal hledger ou beancount.
from bankstatementparser.hybrid import smart_ingest
from bankstatementparser.enrichment import Categorizer
from bankstatementparser.export import to_hledger
result = smart_ingest("statement.pdf")
categorizer = Categorizer()
enriched = categorizer.categorize_batch(result.transactions)
journal = to_hledger(enriched, account="Assets:Bank:Checking")
Implantação via REST API
Resultado: Implante o Bank Statement Parser como microsserviço que aceita arquivos de extrato via HTTP e retorna JSON estruturado.
# Start the API server
bankstatementparser-api --port 8000
# Ingest a statement
curl -X POST http://localhost:8000/ingest \
-F "file=@statement.pdf"
Pipelines de Conformidade e Auditoria
Resultado: Saída determinística, redação automática de PII e verificação Golden Rule geram logs prontos para auditoria que atendem aos requisitos regulatórios de reprodutibilidade.
from bankstatementparser import CamtParser
parser = CamtParser("statement.xml")
# Stream with PII redacted for audit logs
for txn in parser.parse_streaming(redact_pii=True):
audit_log.write(txn)
# Export full data for secure internal processing
parser.export_csv("archive/statement.csv")
Fluxos de Trabalho SFTP-para-DataFrame
Resultado: Analise diretamente de bytes sem E/S de disco, encaixando-se nativamente em fluxos de trabalho de conectividade bancária via SFTP e API.
from bankstatementparser import CamtParser
xml_bytes = sftp_client.read("daily_statement.xml")
parser = CamtParser.from_bytes(xml_bytes, source_name="daily.xml")
df = parser.parse()
Consolidação Multibancária
Resultado: Análise paralela de HSBC (CAMT), Barclays (MT940), Revolut (CSV), Wise (OFX) e Chase (PDF) gera um único conjunto de dados normalizado.
from bankstatementparser import parse_files_parallel
results = parse_files_parallel([
"hsbc/camt053.xml",
"barclays/mt940.sta",
"revolut/transactions.csv",
"wise/statement.ofx",
])
all_transactions = pd.concat([r.transactions for r in results if r.status == "success"])
Processamento em Lote com Arquivos ZIP
Resultado: Proteção integrada contra ZIP bomb (limite de 100:1, limite de 10 MB por entrada, rejeição de entradas criptografadas) permite processar arquivos de extratos mensais com segurança.
from bankstatementparser import iter_secure_xml_entries, CamtParser
for entry in iter_secure_xml_entries("monthly_statements.zip"):
parser = CamtParser.from_bytes(entry.xml_bytes, source_name=entry.source_name)
df = parser.parse()
save_to_warehouse(entry.source_name, df)
Compare com alternativas ❯ | Planeje sua migração ISO 20022 ❯ | Comece agora ❯