1001Ferramentas
🌍Validadores

Validador de Código ISO 3166 (País)

Valida códigos de país no formato ISO 3166-1 alpha-2 (BR, US, FR) e alpha-3 (BRA, USA, FRA), retornando o nome do país.

ISO 3166-1: o padrão global para códigos de pais

A ISO 3166-1 e a parte da família ISO 3166 que lista os códigos de pais de toda nacao soberana, territorio dependente e área especial reconhecida pela Divisão de Estatistica da ONU. E mantida pela Agência de Manutencao ISO 3166 em Genebra e e a espinha dorsal silenciosa de i18n, formulários de e-commerce, analytics, sistema bancario (formando os dois primeiros caracteres do IBAN) e nomes de domínio (ccTLDs como .br, .us, .de).

O padrão publica três representacoes paralelas de cada pais, para que cada sistema use a que se ajusta ao canal. São mantidas em sincronia: alterar uma dispara atualizacao nas três.

As três variantes

  • Alpha-2: duas letras maiúsculas (BR, US, GB, DE, FR, JP). E a forma mais comum na web — usada em URLs, identificadores de locale, ccTLDs e atributos HTML lang.
  • Alpha-3: três letras maiúsculas (BRA, USA, GBR, DEU, FRA, JPN). Preferida por entidades esportivas (FIFA e COI tem seus códigos próprios mas referenciam alpha-3) e sistemas próximos do IATA.
  • Numérico: três dígitos (076 BR, 840 US, 826 GB, 276 DE). Agnostico de alfabeto, imune a problemas RTL/LTR e a única forma utilizavel quando charsets alfabeticos não estão disponíveis.

Reservas excepcionais e atribuidas pelo usuário

Nem toda combinação de duas letras e um pais. A ISO reserva códigos para fins especiais: EU e excepcionalmente reservado para a União Europeia; UK e excepcionalmente reservado (o código oficial do Reino Unido e GB — "United Kingdom of Great Britain and Northern Ireland"). XK para o Kosovo e um código atribuído pelo usuário, não oficial em ISO 3166-1. Reservas indeterminadas como AN (Antilhas Holandesas, aposentado em 2010) permanecem bloqueadas por pelo menos 50 anos.

ISO 3166-2: subdivisoes dentro de um pais

Quando você precisa identificar um estado, provincia ou região, use a ISO 3166-2. O formato e PAIS-SUBDIVISAO: BR-SP (São Paulo), BR-RJ (Rio de Janeiro), US-CA (California), US-NY (Nova York), GB-ENG (Inglaterra), DE-BY (Baviera). APIs de envio, motores tributarios e autocompletes de endereço geralmente usam 3166-2 internamente.

Códigos que mudaram e códigos que nunca mudam

Códigos de pais mudam raramente mas acontece: Eswatini manteve SZ ao renomear-se de Suazilandia (2018), Tchequia manteve CZ após a renomeacao curta (2016), Macedonia do Norte ficou em MK (2019) — os nomes curtos mudaram no registro mas os códigos ficaram. Novas entradas aparecem: o Sudao do Sul recebeu SS / SSD / 728 em 2011. Sempre fixe a versão da sua biblioteca ISO 3166 e revise as notas de release uma vez por ano.

Onde a ISO 3166-1 aparece na stack

  • Atributo HTML lang: <html lang="pt-BR"> — BCP 47 reaproveita a ISO 3166-1 alpha-2 como subtag de região.
  • Segmento de locale na URL: /pt-br/ (minuscula, recomendado pelo Google) ou /pt-BR/ (mista, canônica conforme RFC 5646).
  • Formulários de envio e checkout: dropdowns de pais enviam alpha-2 ou alpha-3 para gateways de pagamento.
  • Relatórios geograficos no Google Analytics 4: paises retornam como ISO 3166-1 alpha-2.
  • Residencia de dados LGPD/GDPR: regras de localização chaveadas no código alpha-2.
  • IBAN: os dois primeiros caracteres do IBAN são o ISO 3166-1 alpha-2 do pais do banco.
  • Códigos telefonicos: não são ISO — são ITU-T E.164 (+55 Brasil, +1 EUA, +44 Reino Unido).

Trabalhando com ISO 3166-1 em código

Bibliotecas populares:

  • JavaScript: iso-3166, i18n-iso-countries, country-list no npm.
  • Python: pycountry (cobre 639, 3166, 4217, 15924).
  • Java: java.util.Locale expõe os códigos via getCountry() (alpha-2) e getISO3Country() (alpha-3).
  • .NET: a classe RegionInfo encapsula alpha-2 e alpha-3.

Exemplo em JavaScript:

const countries = require('i18n-iso-countries')
countries.getName('BR', 'pt') // "Brasil"
countries.getAlpha3Code('Brasil', 'pt') // "BRA"
countries.getNumericCode('BR') // "076"

Pegadinhas comuns

  • UK vs GB: UK e informal e excepcionalmente reservado; GB e o código oficial. Use GB em qualquer sistema que precise dialogar com bancos, IATA ou APIs de governo.
  • UE não e pais: o código EU e reservado mas não representa estado soberano — nunca o armazene como nacionalidade.
  • Irlanda do Norte: faz parte do UK / GB mas tem bandeira e identidade política próprias. Use ISO 3166-2 (GB-NIR) quando granularidade importa.
  • Kosovo: não tem código oficial ISO 3166-1 por disputa política; o atribuído pelo usuário XK e convenção de facto.
  • Hong Kong, Macau, Taiwan: tem códigos ISO próprios (HK, MO, TW) apesar da sensibilidade política.

Especificidades do Brasil

O Brasil e identificado por BR (alpha-2), BRA (alpha-3) e 076 (numérico). O locale pt-BR distingue o português brasileiro do europeu pt-PT. O ccTLD e .br (administrado pelo NIC.br / Registro.br). Todos os 26 estados + o Distrito Federal tem códigos ISO 3166-2 de BR-AC (Acre) até BR-TO (Tocantins).

FAQ

Devo usar alpha-2 ou alpha-3?

Para a maioria dos contextos web (locales de URL, lang HTML, GA4, formulários de checkout), alpha-2 e a escolha padrão. Alpha-3 e melhor quando você precisa de desambiguacao em múltiplos idiomas ou compatibilidade com entidades esportivas. Numérico e a opção segura para sistemas neutros de alfabeto.

Por que o código do Reino Unido e GB, não UK?

Porque o nome oficial ISO do pais e "United Kingdom of Great Britain and Northern Ireland". A ISO 3166-1 derivou o alpha-2 de "Great Britain". UK esta informalmente reservado mas não e canônico.

A lista ISO 3166 muda com frequência?

Raramente. Novas adicoes ocorrem em média menos de uma por década (a última foi o Sudao do Sul, em 2011). Mudanças de nome são mais comuns mas raramente quebram os códigos. Assine o feed da ISO Online Browsing Platform para receber notificacoes.

Esta ferramenta consulta uma API externa?

Não. A validação roda localmente contra a tabela ISO 3166-1 embutida. Nada e enviado a um servidor.

Ferramentas Relacionadas