Biblioteca Go para validar, normalizar, formatar e gerar CNPJ numerico e alfanumerico.
- Validacao de CNPJ com digitos verificadores
- Suporte a entrada numerica e alfanumerica
- Normalizacao automatica (remove pontuacao e aplica uppercase)
- Geracao de CNPJ valido
- Formatacao no padrao
00.000.000/0000-00
go get github.com/thiagozs/go-cnpjpackage main
import (
"fmt"
"github.com/thiagozs/go-cnpj"
)
func main() {
fmt.Println(cnpj.Validate("11444777000161"))
fmt.Println(cnpj.GenerateFormatted())
}Existe um exemplo executavel em examples/main.go.
go run ./examplesValida um CNPJ numerico ou alfanumerico.
- Aceita entrada com ou sem pontuacao
- Os dois ultimos caracteres devem ser digitos (DV)
- Retorna
truepara CNPJ valido
Exemplo:
ok := cnpj.Validate("11.444.777/0001-61")
fmt.Println(ok) // trueGera um CNPJ valido sem pontuacao (14 caracteres).
Exemplo:
raw := cnpj.Generate()
fmt.Println(raw) // ex: F6JQC0Z7R6J260Gera um CNPJ valido ja formatado.
Exemplo:
formatted := cnpj.GenerateFormatted()
fmt.Println(formatted) // ex: F6.JQC.0Z7/R6J2-60Formata um CNPJ para o padrao visual 00.000.000/0000-00.
- Retorna erro quando o valor normalizado nao possui 14 caracteres
- Erro exposto:
ErrInvalidLength
Exemplo:
v, err := cnpj.Format("11444777000161")
if err != nil {
panic(err)
}
fmt.Println(v) // 11.444.777/0001-61Remove caracteres que nao sejam letra ou digito e converte letras para maiusculo.
Exemplo:
v := cnpj.Normalize("f6.jqc.0z7/r6j2-60")
fmt.Println(v) // F6JQC0Z7R6J260Constante exportada com os caracteres aceitos na geracao da base:
const Alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"_, err := cnpj.Format("123")
if errors.Is(err, cnpj.ErrInvalidLength) {
fmt.Println("tamanho invalido")
}- Go Modules
- Linux, macOS e Windows
Este projeto é distribuído sob a Licença MIT. Veja o arquivo LICENSE para detalhes.
2026, Thiago Zilli Sarmento ❤️