🔌 Módulo btgapi¶
O módulo btgapi provê um wrapper autenticado para integração com as APIs do BTG Pactual, incluindo funcionalidades para:
- Autenticação JWT
- Solicitação e consulta de relatórios
- Processamento de arquivos retornados
- Envio e acompanhamento de boletas offshore
Este módulo faz parte do LuxorASAP (PyPI) e é utilizado principalmente para automação de fluxos de marcação, controle e reporting.
📌 Autenticação¶
get_access_token¶
Obtém um token JWT válido (~1h) para autenticação nas APIs do BTG.
from luxorasap.btgapi import get_access_token
token = get_access_token(test_env=True)
Parâmetros:
- client_id (str, opcional): ID do cliente. Se None, será lido de variável de ambiente.
- client_secret (str, opcional): Segredo do cliente. Se None, será lido de variável de ambiente.
- test_env (bool): Define se usa ambiente de testes. Default: True.
- timeout (int): Tempo máximo de espera (em segundos). Default: 20.
Retorna: str — Token de autenticação.
Erros: BTGApiError em caso de falha.
📑 Relatórios¶
request_portfolio¶
Solicita relatório de carteira para um fundo.
ticket = request_portfolio(token, "FUND NAME", start_date, end_date)
Parâmetros:
- token (str): Token JWT.
- fund_name (str): Nome do fundo.
- start_date, end_date (datetime.date): Período do relatório.
- format (str): "excel", "xml5" ou "pdf".
Retorna: str — Ticket da requisição.
check_report_ticket¶
Verifica se um ticket de relatório foi processado.
Retorna: bytes — Conteúdo do arquivo se pronto.
Erros: BTGApiError em caso de pendência ou erro.
await_report_ticket_result¶
Aguarda até que o ticket esteja pronto e retorna o conteúdo binário.
zip_bytes = await_report_ticket_result(token, ticket)
process_zip_to_dfs¶
Extrai todos os arquivos de um .zip e retorna como DataFrames.
dfs = process_zip_to_dfs(zip_bytes)
Retorna: dict[str, pd.DataFrame].
request_investors_transactions_report¶
Solicita relatório de movimentações por cotistas (RTA).
request_fundflow_report¶
Gera relatório FundFlow (RTA) com base em datas e fundo.
ticket = request_fundflow_report(token, start_date, end_date, fund_name="FUND")
📥 Trades Offshore¶
submit_offshore_equity_trades¶
Submete uma lista de trades offshore (equities).
ticket = submit_offshore_equity_trades(token, trades=[{...}], test_env=True)
await_transaction_ticket_result¶
Consulta e aguarda o resultado de uma boleta enviada.
df = await_transaction_ticket_result(token, ticket)
Retorna: pd.DataFrame com colunas como:
- status
- ticket
- referencia
- mensagens
⚠️ Exceções¶
BTGApiError¶
Exceção customizada lançada em qualquer falha de: - Autenticação - Requisição - Processamento de ticket ou relatório