Dataset + logos de instituições financeiras e de pagamento do Brasil, de fontes 100% oficiais: participantes do STR e do Pix (Banco Central) + diretório do Open Finance Brasil. Atualizado toda semana, com proveniência por logo.
logos-bancos-br
Dataset + logos das instituições financeiras e de pagamento do Brasil — bancos, fintechs,
IPs e cooperativas — sempre atualizados. Tudo derivado de três fontes 100% oficiais e
nomeadas: a lista de participantes do STR e a lista de participantes ativos do Pix,
ambas do Banco Central do Brasil, e o **diretório de participantes do Open Finance
Brasil**. Reconstruído automaticamente toda semana por CI, com proveniência verificável por
logo. English version
→ galeria interativa (busca por nome/COMPE/ISPB + copiar URL de CDN) · PREVIEW.md
O que este pacote entrega
- A lista de instituições — atualizada automaticamente, em dois conjuntos. A **lista
data/bancos.json) traz as 470 instituições com código
COMPE da lista de participantes do STR do Banco Central. As 643 instituições só-Pix**
(fintechs, IPs e cooperativas afiliadas, sem COMPE) ficam num conjunto separado
(data/instituicoes-pix.json), mantendo a lista principal
enxuta. Ambos trazem nomes oficiais, ISPB, CNPJ (só-Pix) e os atributos de participação no
Pix.
- Logos oficiais, sem duplicação. 473 instituições com logo usando **160 arquivos
logo.source.type: "brand". Logos próprios vêm do diretório público do **Open Finance
Brasil (openfinance) ou do site oficial da instituição** (direct-uri, com curadoria
visual). Cada arquivo carrega proveniência: URI, SHA-256 e data.
- Atualização automática, do BCB ao npm. Toda segunda-feira um GitHub Action
update-logos.yml) reconstrói a lista e os logos a
partir das fontes. Mudanças só de dados (inclusões, renomeações e exclusões feitas pelo
BCB) são validadas por testes, mergeadas e publicadas no npm automaticamente; qualquer
troca de logo abre um PR com o diff visual para revisão humana antes de publicar.
- Uso em qualquer stack. API JavaScript/TypeScript, mapa pronto para React Native, CLI que
Quem já usa
serve o campologo_url apontando para os logos deste pacote.
- Listado no awesome-brazil-data.
Por que fontes oficiais?
Listas mantidas manualmente envelhecem: o BCB inclui, renomeia e exclui instituições ao longo do ano, e os bancos redesenham suas marcas. As bibliotecas existentes ou trazem só dados (sem logos), ou logos coletados de sites variados, sem rastreabilidade. A abordagem aqui:
- Fontes oficiais, e apenas elas — os CSVs de participantes do STR e do Pix (que o próprio
banks().filter(b => b.logo?.source.type === 'openfinance').
- Proveniência por logo —
data/bancos.jsonregistra a URI de origem, o SHA-256 do arquivo
- Correspondência segura — match automático somente por ISPB (= raiz do CNPJ).
- Assets seguros — download só via https com teto de tamanho e de pixels; SVGs
script, event handlers, foreignObject ou
referências externas).
- Trade-off honesto — 473 das 1.113 instituições têm logo (participantes do Open Finance,
As fontes, para conferência
Os mesmos endereços públicos que o pipeline consome — qualquer pessoa pode verificar:
| Fonte | Publicador | O que fornece | Consulta | |---|---|---|---| | Lista de participantes do STR | Banco Central do Brasil | ISPB, código COMPE e nomes oficiais (lista principal) | página · CSV | | Lista de participantes ativos do Pix | Banco Central do Brasil | Instituições do Pix (inclusive sem COMPE), CNPJ e atributos de participação | página (o CSV diário é linkado nela) | | Diretório de participantes | Open Finance Brasil | Logo publicado pela própria instituição, identificado por CNPJ | JSON público |
O campo logo.source.uri de cada logo em data/bancos.json aponta o arquivo exato baixado, com SHA-256 e data.
Instalação e uso
npm install logos-bancos-br
Requer Node ≥ 20 para uso via Node/CLI (em web e React Native vale o ambiente do seu bundler). Zero dependências de runtime. Publicado com npm provenance — verifique a integridade com npm audit signatures.
Os arquivos são nomeados pelo ISPB (8 dígitos, estável e universal — é o que permite cobrir as ~640 instituições do Pix que não têm código COMPE). As consultas aceitam COMPE ou ISPB.
JavaScript / TypeScript (Node ou web)
import { banks, pixInstitutions, allInstitutions, byCompe, byIspb, logoCdnUrl } from 'logos-bancos-br';
banks(); // lista principal: 470 instituições com COMPE pixInstitutions(); // conjunto separado: 643 só-Pix (fintechs, IPs, afiliadas) allInstitutions(); // as duas juntas (1.113)
byCompe(341); // { ispb: '60701190', compe4: '0341', name: 'Itaú Unibanco S.A.', logo: {...} } byCompe('0260'); // Nubank — '260', 260 e '0260' são equivalentes byIspb('00000000'); // Banco do Brasil byIspb('11275560'); // RecargaPay — só-Pix; byIspb resolve nos DOIS conjuntos
logoCdnUrl(341); // https://cdn.jsdelivr.net/npm/logos-bancos-br@x.y.z/logos/png/60701190.png
// Atributos de participação no Pix (verbatim da lista do BCB): byCompe(341)?.pix; // { spiParticipationType: 'Direta', pixParticipationType: 'Obrigatória', ... }
React (web)
import { logoCdnUrl } from 'logos-bancos-br';
<img src={logoCdnUrl(banco.codigo) ?? iconeGenerico} width={40} alt={banco.nome} />
React Native (Expo / Metro)
import logos from 'logos-bancos-br/react-native'; // mapa require() estático
<Image source={logos[codigoBanco.padStart(4, '0')]} style={{ width: 40, height: 40 }} />
As chaves do mapa aceitam o COMPE com 4 dígitos ('0341') e o ISPB ('60701190';
instituições só-Pix aparecem apenas pelo ISPB; afiliadas apontam para o asset compartilhado do
sistema). Importar esse entry adiciona os 160 logos distintos (~1,7 MB) ao bundle. Se
preferir empacotar só alguns, use o CLI abaixo e faça require() dos arquivos copiados.
Node (caminho dos arquivos no disco)
import { logoPngPath, logoSvgPath } from 'logos-bancos-br/node';
logoPngPath('341'); // /…/node_modules/logos-bancos-br/logos/png/60701190.png
Qualquer stack (Flutter, Kotlin, Swift, PHP, .NET…)
Vendorize os assets no seu projeto — sem dependência de runtime:
npx logos-bancos-br copy --dest ./assets/banks # 0341.png, ... (por COMPE; só-Pix ficam de fora)
npx logos-bancos-br copy --dest ./assets/banks --by ispb # 60701190.png, ... (todas, incl. só-Pix)
npx logos-bancos-br copy --dest ./assets/banks --format both --only 341,001,260
npx logos-bancos-br list # tabela COMPE · ISPB · nome · tem logo
Rode de novo a cada atualização do pacote para receber lista e logos novos.
CDN — sem instalar nada
O caminho é sempre logos/{png|svg}/{ispb}.{png|svg}:
https://cdn.jsdelivr.net/npm/logos-bancos-br@0/logos/png/60701190.png
https://cdn.jsdelivr.net/npm/logos-bancos-br@0/logos/svg/18236120.svg
@0 acompanha automaticamente a versão mais recente da série 0.x — os logos e os dados ficam frescos sem você publicar nada (a atualização semanal vira release sozinha). Prefere imutabilidade? Fixe a versão exata (ex.: @0.5.0).
Para resolver COMPE→ISPB, nome oficial e existência de logo em qualquer stack, sem instalar nada, há um índice compacto (~60 KB, ~15 KB gzip):
https://cdn.jsdelivr.net/npm/logos-bancos-br@0/data/cdn-index.min.json
Formato: {"institutions": {"60701190": ["341", "Itaú Unibanco S.A.", 3]}} — cada entrada é [compe, nome, flags], com flags 0 = sem logo, 1 = só PNG, 3 = PNG+SVG. Afiliadas de sistemas cooperativos compartilham o arquivo do sistema: nesses casos há um 4º elemento com o ISPB do arquivo, que é o que deve entrar na URL (ex.: ["16", "…SICOOB CREDITRAN", 3, "04891850"] → logos/svg/04891850.svg).
E se você só quer a URL do logo pronta por ISPB, sem montar caminho nem escolher formato, há um mapa já resolvido ({ISPB: url}, SVG quando existe senão PNG, só quem tem logo):
https://cdn.jsdelivr.net/npm/logos-bancos-br@0/data/logo-urls.min.json
Aí o consumo é direto: logoUrl = mapa[ispb] (ou null se não tiver).
Só os dados
import bancos from 'logos-bancos-br/data/bancos.json'; // lista principal (COMPE)
import soPix from 'logos-bancos-br/data/instituicoes-pix.json'; // só-Pix (sem COMPE)
Referência rápida da API
| Import | Função | Retorna | |---|---|---| | logos-bancos-br | banks() | lista principal — instituições com COMPE (Bank[]) | | | pixInstitutions() | só-Pix, sem COMPE (PixInstitution[]) | | | allInstitutions() | os dois conjuntos (Institution[]) | | | byCompe(codigo) | Bank \| undefined — 341, '341' e '0341' são equivalentes | | | byIspb(ispb) | Institution \| undefined — resolve nos dois conjuntos | | | findBank(codigo) | Institution \| undefined — mais de 4 dígitos trata como ISPB | | | logoCdnUrl(codigo, { format?, version? }) | URL do jsDelivr, ou null se não houver logo | | | normalizeCompe(x) · normalizeIspb(x) | '0341' · '60701190' | | | version | versão do pacote (string) | | logos-bancos-br/node | logoPngPath(codigo) · logoSvgPath(codigo) | caminho absoluto do asset, ou null | | | copyLogos({ dest, format?, by?, only? }) | copia os assets para um diretório (o que o CLI usa) | | logos-bancos-br/react-native | logos (default export) | mapa require() com chaves COMPE4 e ISPB |
Tipos TypeScript exportados: Bank, PixInstitution, Institution, BankLogo, BankLogoSource, PixInfo.
O dataset
Um registro de data/bancos.json:
{
"ispb": "60701190",
"compe": "341",
"compe4": "0341",
"name": "Itaú Unibanco S.A.",
"shortName": "ITAÚ UNIBANCO S.A.",
"pix": {
"spiParticipationType": "Direta",
"pixParticipationType": "Obrigatória",
"modality": "Provedor de Conta Transacional",
"institutionType": "Banco Múltiplo",
"authorizedByBcb": true
},
"logo": {
"png": "logos/png/60701190.png",
"svg": "logos/svg/60701190.svg",
"source": {
"type": "openfinance",
"org": "ITAU UNIBANCO S.A.",
"cnpj": "60701190000104",
"uri": "https://www.itau.com.br/…/Novo_itau.svg",
"sha256": "…",
"updatedAt": "2026-07-17"
}
}
}
logo.png— PNG normalizado 256×256, fundo transparente,fit: contain.logo.svg— vetor original, presente só quando passa na sanitização.logo.source— proveniência completa: de onde veio, hash e quando mudou.source.type:
openfinance (diretório Open Finance, match automático por ISPB ou revisado), direct-uri
(URL no site oficial da instituição, revisada à mão) ou override (arte mantida no repo).
logo: null— instituição sem logo nas fontes oficiais (use seu fallback).logo.source.type: "brand"— logo herdado do sistema cooperativo (campobranddiz qual,
"SICOOB"); o arquivo é compartilhado entre as afiliadas do sistema.
pix— atributos verbatim da lista de participantes ativos do Pix do BCB;nullquando a
- Em
instituicoes-pix.json, cada registro temcompe: null,cnpj(14 dígitos) epix
Como funciona a atualização automática
- Espinha dorsal: a união, por ISPB, de dois CSVs públicos do Banco Central — a lista de
ParticipantesSTR.csv: ISPB + COMPE + nomes oficiais) e a **lista de
participantes ativos do Pix** (arquivo diário datado, que acrescenta as instituições sem
COMPE e os atributos de participação). Ambos atualizados diariamente pelo BCB.
- Logos: o diretório público de participantes do Open Finance Brasil traz, por CNPJ, o logo
- Ponte:
ISPB == 8 primeiros dígitos do CNPJ(é assim que o BCB os atribui na esmagadora
forcedMatches, revisado à mão a partir das sugestões do relatório.
- Sistemas cooperativos: afiliadas que carregam a marca do sistema no nome oficial
- Fora do Open Finance: ferramentas de descoberta (
npm run discoverediscover:ai)
forcedUris.
- Normalização: cada arte vira PNG 256×256; o SVG original é mantido quando seguro.
- Cadência: o workflow roda toda segunda-feira (e sob demanda), regenera
data/bancos.json, logos/, PREVIEW.md e react-native.js, e abre um PR com o
relatório e o diff visual dos PNGs. Diffs só de dados passam por testes e são **mergeados e
publicados no npm automaticamente**; diffs que alteram logos aguardam revisão visual humana
— e o release após o merge é automático. Nada é editado à mão.
Detalhes de manutenção (rodar o pipeline localmente, promover sugestões, overrides, denylist): CONTRIBUTING.md.
Limitações conhecidas
- Cobertura de logos: 473 de 1.113 instituições (153 na lista principal; o restante são
- Algumas instituições publicam no diretório o logo da sua marca de produto (ex.: Banco CSF →
- Instituições em processo de adesão ao Pix (segunda seção da lista do BCB) e participantes
Marcas e remoção
Os logos são marcas das respectivas instituições financeiras e não são cobertos pela licença MIT deste repositório. Eles são redistribuídos para uso nominativo (identificar a instituição em interfaces), a partir de artes que as próprias instituições publicam no diretório público do Open Finance Brasil. Detalhes e base de uso: DISCLAIMER.md.
Representa uma instituição e quer corrigir ou remover um logo? Abra uma issue com o template "Remoção de marca" — removemos prontamente.
Para ferramentas e assistentes de IA
Um resumo machine-readable do projeto está em llms.txt (também incluído no pacote npm). Fatos-chave: **a lista de instituições e os logos são regenerados automaticamente toda semana** a partir do Banco Central (STR) e do Open Finance Brasil; arquivos nomeados por ISPB; consultas por COMPE ou ISPB; dataset completo em data/bancos.json.
Licença
Código e dataset sob MIT. Logos: ver DISCLAIMER.md.