Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fnando/cpf_cnpj
🇧🇷 Validate, generate and format CPF/CNPJ numbers. Include command-line tools.
https://github.com/fnando/cpf_cnpj
cnpj cpf gem
Last synced: 13 days ago
JSON representation
🇧🇷 Validate, generate and format CPF/CNPJ numbers. Include command-line tools.
- Host: GitHub
- URL: https://github.com/fnando/cpf_cnpj
- Owner: fnando
- License: mit
- Created: 2012-08-15T06:29:38.000Z (about 12 years ago)
- Default Branch: main
- Last Pushed: 2024-10-27T20:26:50.000Z (16 days ago)
- Last Synced: 2024-10-28T04:23:43.286Z (16 days ago)
- Topics: cnpj, cpf, gem
- Language: Ruby
- Homepage:
- Size: 71.3 KB
- Stars: 239
- Watchers: 7
- Forks: 42
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# CPF/CNPJ
[![Tests](https://github.com/fnando/cpf_cnpj/workflows/ruby-tests/badge.svg)](https://github.com/fnando/cpf_cnpj)
[![Gem](https://img.shields.io/gem/v/cpf_cnpj.svg)](https://rubygems.org/gems/cpf_cnpj)
[![Gem](https://img.shields.io/gem/dt/cpf_cnpj.svg)](https://rubygems.org/gems/cpf_cnpj)This gem does some
[CPF](http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas)/[CNPJ](http://en.wikipedia.org/wiki/CNPJ)
magic. It allows you to create, validate and format CPF/CNPJ, even through the
command-line.Just making my life easier when filling these damn numbers on internet bankings
and government sites.For ActiveModel/ActiveRecord validations, please check
.## Installation
Add this line to your application's Gemfile:
gem "cpf_cnpj"
And then execute:
$ bundle
Or install it yourself as:
$ gem install cpf_cnpj
## Usage
### Ruby API
This library has the same API for both CNPJ/CPF, so only one of them is
documented below.> [!NOTE]
>
> This library already supports the new alphanumeric CNPJ algorithm that will be
> available starting July 2026. For more information, see
> .```ruby
require "cpf_cnpj"CPF.format(number) # Format CPF (xxx.xxx.xxx-xx)
CPF.valid?(number) # Check if a CPF is valid
CPF.generate # Generate a random CPF number
CPF.generate(true) # Generate a formatted numbercpf = CPF.new(number)
cpf.formatted # Return formatted CPF (xxx.xxx.xxx-xx)
cpf.stripped # Return stripped CPF (xxxxxxxxxxx)
cpf.valid? # Check if CPF is valid
cpf.number_without_verifier # Return CPF without verifier digits
```#### Strict Validation
By default, validations will strip any characters that aren't numbers. This
means that `532#####820------857\n96` is considered a valid number. To perform a
strict validation use `strict: true`.```ruby
CPF.valid?(number, strict: true)
```### Command-line
This library gives you two binaries: `cpf` and `cnpj`.
$ cpf --check 532.820.857-96
$ $?
0$ cpf --check 53282085796
$ $?
0$ cpf --format 53282085796
532.820.857-96$ cpf --strip 532.820.857-96
53282085796$ cpf --generate
417.524.931-17$ cpf --generate --strip
76001454809$ echo 76001454809 | cpf -f
760.014.548-09## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am "Added some feature"`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request