Skip to content

cuducos/go-cnpf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go CNPF Tests GoDoc Go version

A Go module to validate CPF and CNPJ numbers (Brazilian people and companies unique identifier for the Federal Revenue).

The pseudo-acronym CNPF is a sort of tong-twister and a common typo when developers discuss the implementation of objects that could hold either a CPF or a CNPJ numbers.

package main

import "github.com/cuducos/go-cnpf"


func main() {
	// these return true
	cnpf.IsValid("23858488135")
	cnpf.IsValid("238.584.881-35")
	cnpf.IsValid("11222333000181")
	cnpf.IsValid("11.222.333/0001-81")
	cnpj.IsValid("12.ABC.345/01DE-35")
	cnpj.IsValid("12ABC34501DE35")

	// these return false
	cnpf.IsValid("111.111.111-11")
	cnpf.IsValid("11.111.111/1111-11")
	cnpf.IsValid("123.456.769/01")
	cnpf.IsValid("12.345.678 9012-34")
	cnpf.IsValid("ABC.DEF.GHI-JK")
	cnpf.IsValid("AB.CDE.FGH/IJKL-MN")
	cnpf.IsValid("123")

	// these return 11111111111, 11111111111111 and 12ABC34501DE35
	cnpf.Unmask("111.111.111-11")
	cnpf.Unmask("11.111.111/1111-11")
	cnpj.Unmask("12.ABC.345/01DE-35")

	// this return 111.111.111-11, 11.111.111/1111-11 and 12.ABC.345/01DE-35
	cnpf.Mask("11111111111")
	cnpf.Mask("11111111111111")	
	cnpj.Mask("12ABC34501DE35")
}

Important

Starting in July 2026 the CNPJ number will be alphanumeric. This package already supports the new format. If you do not want to support the new format, tag this package to v0.0.1.

Based on Go CPF and Go CNPJ ❤️