Informe Trimestral — V1¶
Envio (→ CVM) do padrão Informe Trimestral V1, válido até 2017-06 (FMIEE, FIP, FIC-FIP e
FUNCINE) (PadraoXMLInfoTrim.asp).
Substituto: Informe Quadrimestral V2.
Veja também: Referência da API · Uso
Descrição¶
Monte um InformeTrimestralV1Document (um InformeTrimestralV1Header + de 1 a 100
InformeTrimestralV1Inform, um por fundo) e serialize com InformeTrimestralV1().export(...).
O XML usa o namespace urn:inftrim, COD_DOC=51 e VERSAO=1.0, em windows-1252. Todos os
informes de um arquivo têm a mesma competência.
| Modelo | Tag XML | Papel |
|---|---|---|
InformeTrimestralV1Document |
DOC_ARQ |
header + informs (1 a 100 fundos, sem CNPJ repetido). |
InformeTrimestralV1Header |
CAB_INFORM |
dt_compt (MM/AAAA) e dt_gerac_arq (DD/MM/AAAA). |
InformeTrimestralV1Inform |
INFORM |
O informe de um fundo: cnpj_fdo, patrim_liq, qt_cotistas, qt_quota, vl_patrim_quota. |
Cada campo do schema é a tag da página em minúsculas, declarado na ordem do XML. Diferente da V2, não há listas nem blocos aninhados: são cinco campos por fundo. Só o serializador de elementos é compartilhado com o writer da V2.
Tipagem¶
patrim_liq:Decimalcom 2 casas;vl_patrim_quota:Decimalcom 12 casas. Nuncafloat(recusado); casas excedentes são truncadas, nunca arredondadas; vírgula decimal e a escala cheia na saída (1,000000000000). Ambos aceitam valor negativo.qt_cotistaseqt_quota: inteiros ≥ 0 (a página diz apenas "inteiro").cnpj_fdo: CNPJ (formato verificado, depois dígitos verificadores), gravado sem máscara.dt_compt:MM/AAAAreal; o mês fecha um trimestre civil (03,06,09ou12).dt_gerac_arq: data de calendário real.
O que foi medido na página¶
- Exemplo:
DOC_ARQ xmlns="urn:inftrim">CAB_INFORM(COD_DOC,DT_COMPT,DT_GERAC_ARQ,VERSAO) +LISTA_INFORM>INFORM(CNPJ_FDO,PATRIM_LIQ,QT_COTISTAS,QT_QUOTA,VL_PATRIM_QUOTA), codificaçãowindows-1252,COD_DOC=51,VERSAO=1.0. - Notas dos campos:
PATRIM_LIQdecimal com 2 casas;VL_PATRIM_QUOTAdecimal com 12 casas;QT_COTISTASeQT_QUOTAinteiros; vírgula como separador decimal; sem "fillers" de zeros; no máximo 100 fundos por arquivo. - Diferença da V2: a V2 usa
NR_PF_PJ_FDOonde a V1 usaCNPJ_FDO, tem 8 casas decimais em vez de 2/12, e acrescenta listas de categorias e classes de cotas.COD_DOC(51), namespace e encoding são os mesmos.
Limites e pontos em aberto¶
- Conflito na página: o exemplo traz
<VERSAO>1.0</VERSAO>, mas a nota do campo diz "Deve conter o número 2.0 que indica que o arquivo está na nova versão" (texto herdado da V2). Adotado1.0: o exemplo, e o verificador de sintaxe da página é chamado comVERSAO=1."2.0"é recusado. - A página não fixa largura máxima dos números: aceitos até 18 dígitos inteiros nos decimais e até 999.999.999.999 nos inteiros.
- A página não diz se o patrimônio líquido pode ser negativo; aceito (fundo descoberto).
- A página não diz quais meses de competência valem além de "mês final do trimestre civil":
03,06,09e12. - Nenhum validador da CVM foi executado (a página oferece um verificador de sintaxe).
- A gravação em disco usa arquivo temporário no mesmo diretório +
os.replace(atomic_write_bytes).
Exemplos¶
from layouts_cvm import InformeTrimestralV1
doc = dict(
header={"dt_compt": "06/2017", "dt_gerac_arq": "15/07/2017"},
informs=[
{
"cnpj_fdo": "11222333000181",
"patrim_liq": "1000.50",
"qt_cotistas": 12,
"qt_quota": 3400,
"vl_patrim_quota": "12.123456789012",
}
],
)
print(InformeTrimestralV1().export(doc))
InformeTrimestralV1().export(doc, output_path="informe_trimestral_v1.xml")