馃嚙馃嚪 CPF and CNPJ validation in Go
Go 100.0%
7 1 3

Clone this repository

https://tangled.org/cuducos.me/go-cnpf https://tangled.org/did:plc:3272gdrjsuikiff7qsgokgas/go-cnpf
git@tangled.org:cuducos.me/go-cnpf git@tangled.org:did:plc:3272gdrjsuikiff7qsgokgas/go-cnpf

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Go CNPF GoDoc#

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 "tangled.org/cuducos.me/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 鉂わ笍