Pular para conteúdo

Disponível (cash) — arquivo de instrumentos (BVBG.028.02)

Leitura do bloco CshInf do arquivo de instrumentos do pregão (IN{aammdd}.zip), publicado em www.b3.com.br/pesquisapregao/download. Registra os instrumentos do mercado disponível (cash) da sessão.

Veja também: Visão geral da seção para a forma do reader, proveniência e path_raw · Arquivo consolidado para a visão de todos os tipos.


Descrição

InstrumentsFileCshReader baixa o mesmo IN{aammdd}.zip que os demais readers da família, mantém apenas os registros que carregam o bloco CshInf e mapeia a lista completa de campos desse bloco — 4 campos próprios, mais as colunas comuns a todo instrumento (data de referência, identificação e atributos comuns), totalizando 17 colunas de origem.

Na sessão reconciliada (IN260729), o bloco trouxe 3 registros, com 3 dos 4 campos preenchidos. O ausente, ISIN, é declarado [0..1] — um instrumento disponível não precisa ter um — e por isso é mapeado mas nunca exigido.

O layout vem do Catálogo de Mensagens — Cadastro de Instrumento v2.6 da B3 (âncora de bloco 4.13), conferido contra a aba BVBG.028 - Taxonomia e contra um arquivo IN real.

Amostra pequena

O bloco trouxe apenas 3 registros na sessão reconciliada. É o bastante para confirmar que o mapeamento resolve, mas pouco para tratar "preenchido em todas as linhas" como evidência forte de obrigatoriedade — as cardinalidades vêm do catálogo, não da amostra.

O contrato exige ASST, ASST_DESC, MKT_IDR_CD, MKT_NM, OTHR_ID, RPT_DT, SCTY_CTGY_NM, SGMT_NM.

Tipagem Colunas
datetime.date RPT_DT
decimal.Decimal exato

As demais colunas preservam o texto exato da fonte.


Exemplos

Ler o bloco de um pregão

from datetime import date
from filings_b3.search_trading_session import InstrumentsFileCshReader

df = InstrumentsFileCshReader(date(2026, 7, 29)).read()
print(df[["OTHR_ID", "ASST", "SCTY_CTGY_NM", "CCY_CD", "CFICD"]].head())

date_ref é obrigatório — o endpoint é endereçado por data.

Manter o artefato bruto (camada bronze)

from pathlib import Path

df = InstrumentsFileCshReader(
    date(2026, 7, 29), path_raw=Path("/data/bronze/b3")
).read()

print(df[["source_key", "content_hash", "updated_at"]].iloc[0])

Consolidado ou por tipo?

Uma leitura consolidada (InstrumentsFileReader) traz todos os tipos sob o layout de 52 colunas publicado pela B3. Este reader traz um tipo com todos os campos que a B3 declara para ele — mais colunas, um tipo só. Os dois leem o mesmo download.