Empresas
Endpoints relacionados a dados cadastrais, tickers, cotações/market data, indicadores (ratios), relatórios financeiros padronizados, transações de insiders, documentos oficiais e eventos corporativos.
Recomendação padrão: use
tickerem 99,9% dos casos.
Mesmo quando uma empresa troca de ticker, a base emenda as séries para manter continuidade — então, na prática, você pode indexar o seu sistema por ticker com alta segurança.
Como modelar sua integração (recomendado)
Fluxo ideal
- Use
GET /companies(lista de empresas) para montar o seu índice local. - Salve a lista de tickers associados à empresa.
- Para consumir qualquer endpoint da árvore de
companies, usecompanyIdentifier = <ticker>.
Por que isso funciona bem:
- é o identificador que aparece para o usuário final (UI, portfólio, negociações)
- resolve a maioria absoluta dos casos de produto
- facilita telas, alertas, carteiras e integrações com sistemas externos
- quando há mudança de ticker, as séries ficam “costuradas” para manter histórico contínuo
Boa prática: trate
tickercomo sua primary key externa e mantenha uma tabela simplesticker -> company(e opcionalmentecompany -> [tickers]) atualizada viaGET /companies.
Empresa vs Ativo (ticker)
- Empresa: entidade jurídica e seus dados cadastrais.
- Ticker: ativo negociado associado à empresa (classe específica).
Uma empresa pode ter vários tickers (ON/PN/UNIT etc.). No seu produto, quase sempre a navegação e a identidade começam pelo ticker — por isso ele é o padrão.
Identificadores (companyIdentifier)
A maioria das rotas aceita ticker, symbol ou company_id.
Aqui vai a diferença — com preferência brutal por ticker:
ticker (preferido)
- Identificador do ativo (ex.:
PETR4,VALE3). - É o que faz sentido para o usuário e para 99,9% dos fluxos (carteira, alertas, telas, screening, notícias, conciliação).
- As séries são mantidas contínuas mesmo quando há troca de ticker (histórico “emendado”).
Use sempre que puder.
company_id (CNPJ)
- Identificador jurídico.
- Útil quando você precisa:
- conciliar com bases legais/ERP por CNPJ
- deduplicar entidades em integrações corporativas
- fazer match com cadastros internos que já são CNPJ-first
Na prática: ótimo para “backoffice” e integrações enterprise, mas raramente necessário em produtos voltados ao investidor.
symbol (ID canônico interno)
- Um identificador normalizado/canônico da companhia dentro da base.
- Bom para casos técnicos (ex.: chaves internas, migrações, normalização), mas não é o “idioma” do usuário.
Na prática: use se você tiver um motivo específico; caso contrário, prefira ticker.
Detalhe: endpoints que têm parâmetros como
stock_type,isin, ou retornam dados por classe podem se comportar diferente dependendo se você entrou viatickerou via identificador de empresa. Prefiracompany_idquando sua intenção é a empresa, etickerquando sua intenção é o ativo.
Tipos de tickers (classes mais comuns)
No mercado brasileiro, tickers geralmente indicam a classe do papel:
- ON (Ordinária): normalmente termina com 3 (ex.:
VALE3) - PN (Preferencial): normalmente termina com 4 (ex.:
PETR4) - PNB/PNC/PND/PNE: variações históricas de preferenciais, geralmente terminam em 5, 6, 7 e 8 (menos comuns, mas existentes)
- UNIT: pacote de mais de uma classe (geralmente termina com 11, ex.:
SANB11) - BDR: recibos de ações estrangeiras negociados no Brasil (padrões variam)
Detalhe: o sufixo numérico é uma convenção forte, mas não deve ser o único critério de inferência. Para consistência, use os campos de classificação retornados pela API (quando disponíveis) ou filtros como
stock_typequando o endpoint suportar.
Setorização (metodologia própria)
A Partnr usa uma metodologia própria de setorização, inspirada no GICS (Global Industry Classification Standard), para corrigir inconsistências comuns em categorizações prontas (ex.: classificações que não acompanham mudanças de modelo de negócio, holdings mal rotuladas, empresas “multi-linha” jogadas em um setor genérico, etc.).
A classificação é hierárquica e segue quatro níveis:
- sector (Setor Econômico)
- industry_group (Grupo de Indústrias)
- industry (Indústria)
- sub_industry (Subindústria)
Princípio central: classificamos a companhia pela origem da receita / atividade principal (“o que realmente gera receita recorrente e domina o mix”), e não apenas pelo rótulo histórico ou pela natureza jurídica.
O que cada nível significa
Organizamos empresas em uma hierarquia de 4 níveis (Setor → Grupo → Indústria → Subindústria), onde cada empresa pertence a uma única categoria em cada nível.
1) sector — Setor Econômico
É o nível mais amplo: responde “em qual grande parte da economia a empresa atua?”
Ex.: Financeiro, Energia, Tecnologia, Saúde, etc.
2) industry_group — Grupo de Indústrias
É um recorte dentro do setor, agrupando negócios com dinâmicas semelhantes (modelo operacional, riscos e drivers).
Ex.: dentro de Financeiro, separar bancos, seguros, gestão de ativos, serviços financeiros, etc.
3) industry — Indústria
Nível mais específico: responde “qual é a indústria dominante do negócio?”
Ex.: “Bancos Diversificados” vs “Bancos Regionais” (exemplo ilustrativo de granularidade).
4) sub_industry — Subindústria
É o nível mais fino e “de produto”: responde “o que a empresa faz exatamente?”
Ex.: um nicho bem específico dentro de uma indústria (ex.: meios de pagamento, adquirência, software vertical, etc).
Como decidimos (regras práticas)
A classificação é baseada em receita e atividade econômica predominante:
- Identificamos a origem da receita (principal linha de negócio e suas variações).
- Escolhemos a atividade principal (o “core” que explica valuation, risco e comparáveis).
- Em empresas com múltiplas linhas relevantes, classificamos pelo segmento dominante e usamos dados auxiliares (descrição operacional, notas explicativas e comunicação ao mercado) para evitar distorções.
- Holdings e estruturas societárias são tratadas pelo negócio econômico subjacente, sempre que possível.
Resultado prático: comparáveis melhores, filtros de screener mais úteis e menos “lixo” em setores genéricos.
Onde isso aparece na API
Sempre que você encontrar campos como:
sector_id,sector_nameindustry_group_id,industry_group_nameindustry_id,industry_namesub_industry_id,sub_industry_name
…eles seguem essa taxonomia.
Dica: use
sectorquando você quer uma visão macro (dashboards e agrupamentos amplos) e desça paraindustry/sub_industryquando o objetivo é filtragem fina (screener e análise de comparáveis).
Modelos e agregações: INDIVIDUAL vs CONSOLIDATED
Essa distinção aparece em dois contextos diferentes na rota companies:
- Relatórios financeiros
- Relatórios de transações de insiders