cnpjcpf.
Código · Go

CPF e CNPJ em Go

Funções em Go puro (só a biblioteca padrão) para validar CPF e CNPJ — já com o formato alfanumérico. Cada tarefa tem sua página com o código completo e os casos de borda.

Por tarefa

Início rápido

A validação de CPF em uma função, só com a biblioteca padrão:

Go
func allSame(s string) bool {
	for i := 1; i < len(s); i++ {
		if s[i] != s[0] {
			return false
		}
	}
	return len(s) > 0
}

func IsValidCPF(cpf string) bool {
	cpf = reCPF.ReplaceAllString(cpf, "")
	if len(cpf) != 11 || allSame(cpf) {
		return false
	}
	for i := 9; i < 11; i++ {
		soma := 0
		for j := 0; j < i; j++ {
			soma += int(cpf[j]-'0') * ((i + 1) - j)
		}
		dv := (soma * 10 % 11) % 10
		if dv != int(cpf[i]-'0') {
			return false
		}
	}
	return true
}

Página completa, com os casos de borda e a nota do RE2: validar CPF em Go.

publicidade

Prefere uma biblioteca?

Para projetos maiores, vale usar uma lib mantida: klassmann/cpfcnpj ou paemuri/brdoc. Confirme o suporte ao CNPJ alfanumérico na versão que você importar.

Continue

Código em Go verificado por transliteração contra o núcleo (4000 amostras, 0 divergência). Algoritmo módulo 11 (numérico e alfanumérico). Revisado em 06/2026.