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 padrao global para codigos de pais

A ISO 3166-1 e a parte da familia ISO 3166 que lista os codigos de pais de toda nacao soberana, territorio dependente e area especial reconhecida pela Divisao de Estatistica da ONU. E mantida pela Agencia de Manutencao ISO 3166 em Genebra e e a espinha dorsal silenciosa de i18n, formularios de e-commerce, analytics, sistema bancario (formando os dois primeiros caracteres do IBAN) e nomes de dominio (ccTLDs como .br, .us, .de).

O padrao publica tres representacoes paralelas de cada pais, para que cada sistema use a que se ajusta ao canal. Sao mantidas em sincronia: alterar uma dispara atualizacao nas tres.

As tres variantes

  • Alpha-2: duas letras maiusculas (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: tres letras maiusculas (BRA, USA, GBR, DEU, FRA, JPN). Preferida por entidades esportivas (FIFA e COI tem seus codigos proprios mas referenciam alpha-3) e sistemas proximos do IATA.
  • Numerico: tres digitos (076 BR, 840 US, 826 GB, 276 DE). Agnostico de alfabeto, imune a problemas RTL/LTR e a unica forma utilizavel quando charsets alfabeticos nao estao disponiveis.

Reservas excepcionais e atribuidas pelo usuario

Nem toda combinacao de duas letras e um pais. A ISO reserva codigos para fins especiais: EU e excepcionalmente reservado para a Uniao Europeia; UK e excepcionalmente reservado (o codigo oficial do Reino Unido e GB — "United Kingdom of Great Britain and Northern Ireland"). XK para o Kosovo e um codigo atribuido pelo usuario, nao 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 voce precisa identificar um estado, provincia ou regiao, use a ISO 3166-2. O formato e PAIS-SUBDIVISAO: BR-SP (Sao 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 endereco geralmente usam 3166-2 internamente.

Codigos que mudaram e codigos que nunca mudam

Codigos de pais mudam raramente mas acontece: Eswatini manteve SZ ao renomear-se de Suazilandia (2018), Tchequia manteve CZ apos a renomeacao curta (2016), Macedonia do Norte ficou em MK (2019) — os nomes curtos mudaram no registro mas os codigos ficaram. Novas entradas aparecem: o Sudao do Sul recebeu SS / SSD / 728 em 2011. Sempre fixe a versao 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 regiao.
  • Segmento de locale na URL: /pt-br/ (minuscula, recomendado pelo Google) ou /pt-BR/ (mista, canonica conforme RFC 5646).
  • Formularios de envio e checkout: dropdowns de pais enviam alpha-2 ou alpha-3 para gateways de pagamento.
  • Relatorios geograficos no Google Analytics 4: paises retornam como ISO 3166-1 alpha-2.
  • Residencia de dados LGPD/GDPR: regras de localizacao chaveadas no codigo alpha-2.
  • IBAN: os dois primeiros caracteres do IBAN sao o ISO 3166-1 alpha-2 do pais do banco.
  • Codigos telefonicos: nao sao ISO — sao ITU-T E.164 (+55 Brasil, +1 EUA, +44 Reino Unido).

Trabalhando com ISO 3166-1 em codigo

Bibliotecas populares:

  • JavaScript: iso-3166, i18n-iso-countries, country-list no npm.
  • Python: pycountry (cobre 639, 3166, 4217, 15924).
  • Java: java.util.Locale expoe os codigos 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 codigo oficial. Use GB em qualquer sistema que precise dialogar com bancos, IATA ou APIs de governo.
  • UE nao e pais: o codigo EU e reservado mas nao representa estado soberano — nunca o armazene como nacionalidade.
  • Irlanda do Norte: faz parte do UK / GB mas tem bandeira e identidade politica proprias. Use ISO 3166-2 (GB-NIR) quando granularidade importa.
  • Kosovo: nao tem codigo oficial ISO 3166-1 por disputa politica; o atribuido pelo usuario XK e convencao de facto.
  • Hong Kong, Macau, Taiwan: tem codigos ISO proprios (HK, MO, TW) apesar da sensibilidade politica.

Especificidades do Brasil

O Brasil e identificado por BR (alpha-2), BRA (alpha-3) e 076 (numerico). O locale pt-BR distingue o portugues brasileiro do europeu pt-PT. O ccTLD e .br (administrado pelo NIC.br / Registro.br). Todos os 26 estados + o Distrito Federal tem codigos ISO 3166-2 de BR-AC (Acre) ate BR-TO (Tocantins).

FAQ

Devo usar alpha-2 ou alpha-3?

Para a maioria dos contextos web (locales de URL, lang HTML, GA4, formularios de checkout), alpha-2 e a escolha padrao. Alpha-3 e melhor quando voce precisa de desambiguacao em multiplos idiomas ou compatibilidade com entidades esportivas. Numerico e a opcao segura para sistemas neutros de alfabeto.

Por que o codigo do Reino Unido e GB, nao 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 nao e canonico.

A lista ISO 3166 muda com frequencia?

Raramente. Novas adicoes ocorrem em media menos de uma por decada (a ultima foi o Sudao do Sul, em 2011). Mudancas de nome sao mais comuns mas raramente quebram os codigos. Assine o feed da ISO Online Browsing Platform para receber notificacoes.

Esta ferramenta consulta uma API externa?

Nao. A validacao roda localmente contra a tabela ISO 3166-1 embutida. Nada e enviado a um servidor.

Ferramentas Relacionadas