A PHP package for validating/generating/formatting an IRS document number (CPF/CNPJ)

Overview

RFB-document

Total Downloads Issues Open Total Downloads Latest Version License


RFB Document é um pacote que te ajuda a lidar com números de cadastro da Receita Federal do Brasil, CPF (cadastro de pessoa física) e CNPJ (cadastro nacional de pessoa jurídica). Através dele é possível gerar números de CPF/CNPJ válidos, validar um número existente e formatá-los. Tudo de maneira simples e prática.

IMPORTANTE: Este pacote não realiza nenhuma consulta na Receita Federal, portanto, não verifica a situação atual do documento ou se o mesmo está atrelado a uma pessoa ou empresa específica. Toda a checagem é baseada no algorítimo utilizado para gerar os números de cadastro.

Requisitos

Requer PHP 8.0+

Se você usa o Laravel, verifique a compatibilidade de versões:

Laravel RFB Document
8.x 1.x
9.x 1.x

Instalação

Para instalar o pacote, basta usar o composer:

composer require tongedev/rfb-document

Em caso de aplicações Laravel, não é preciso publicar o pacote nos Providers, isso é feito de forma automática pelo auto discovery, durante a instalação.

Como usar

Classes

Uma forma de se usar o RFB Document se dá instanciando a classe correspondente ao documento desejado (CPF ou CNPJ) e então usufruindo dos recursos disponíveis:

// no caso de querer manipular CPF
$cpfClass = new Tongedev\RfbDocument\CPFDocument(); 

$cpf = $cpfClass->generate(); // retorno: xxxxxxxxxxx (um número de CPF aleatório)

// no caso de querer manipular CNPJ
$cnpjClass = new Tongedev\RfbDocument\CNPJDocument(); 

$cnpj = $cnpjClass->generate(); // retorno: xxxxxxxxxxx (um número de CNPJ aleatório)

Facades

Em aplicações Laravel, é possível tirar proveito do container IoC (inversion of control) presente no framework. Quando o pacote é instalado, suas facades são automaticamente publicadas entre os Providers, permitindo um uso mais rápido dos recursos:

$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (um número de CPF aleatório)

$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxx (um número de CNPJ aleatório)

Recursos

Os recursos disponíveis são: geração de um novo documento válido, sanitização, formatação e validação de um dado documento. Destacando que as chamadas dos recursos são as mesmas para CPF e CNPJ.

Recurso Parâmetro Retorno
generate() bool | formatted (default: false) documento, formatado ou não (string)
sanitize() string | documentNumber documento sanitizado (string)
format() string | documentNumber documento formatado (string)
validate() string | documentNumber (bool) se documento é válido (true) ou não (false)

Todos os exemplos abaixo funcionam para CPF e CPNJ, bastando apenas alterar a classe utilizada.

$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (cpf sanitizado)

$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxxx (cnpj sanitizado)

E os demais métodos:

$cpf = CPF::generate(true); // retorno: xxx.xxx.xxx-xx (cpf formatado)

$cpf = CPF::sanitized('xxx.xxx.xxx-xx'); // retorno: xxxxxxxxxxx (cpf sanitizado)

$cpf = CPF::format('xxxxxxxxxxx'); //retorno: xxx.xxx.xxx-xx (cpf formatado)

$cpf = CPF::validate('xxx.xxx.xxx-xx'); // retorno: booleano dependendo do valor passado no parâmetro

$cpf = CPF::validate('xxxxxxxxxxx'); // é possível passar documento sanitizado também para validação

Exceções

Caso as funções recebam valores ou cadeias de caracteres que não correspondem a um conjunto de dígitos esperado de um dos documentos, uma exceção é lançada:

$cpf = CPF::format('123456ASasdfas'); // esse código irá gerar uma exceção do tipo `RfbDocumentException`.

Contribuindo

Obrigado por considerar contribuir para o RFB Document. Tudo sobre contribuições está descrito aqui.

👋 Siga o autor @tongedev no Twitter para saber das últimas novidades e conhecer outros projetos. Diga oi!

Licença

RFB Document é um software open source licenciado sob a Licença MIT.

You might also like...
PHP library to validate and format license plate numbers.
PHP library to validate and format license plate numbers.

License plate validator and formatter CI Status Lint Coverage Tests This library can be used to validate and format license plate numbers. Countries s

FyreValidation is a free, open-source validation library for PHP.

FyreValidation FyreValidation is a free, validation library for PHP. Table Of Contents Installation Validators Rules Error Messages Installation Using

API para Consulta de CPF, Gerador e Validador de CPF feito em PHP

Ferramentas para CPF em PHP Você poderá desenvolver paineis de consulta, geradores, bots e o que mais a sua mente imaginar. Instalação e atualização D

Document templates Laravel package is intended for creating/managing user editable document template
Document templates Laravel package is intended for creating/managing user editable document template

Document Templates Introduction Document templates Laravel package is intended for creating/managing user editable document templates, with ability to

A library for generating and validating passwords

PHP-PasswordLib Build Status Version The current version is considered Beta. This means that it is ready enough to test and use, but beware that you s

Security CSRF (cross-site request forgery) component provides a class CsrfTokenManager for generating and validating CSRF tokens.

Security Component - CSRF The Security CSRF (cross-site request forgery) component provides a class CsrfTokenManager for generating and validating CSR

This package is used to validate the telephone numbers of the countries taken into account. It also makes it possible to verify that a number is indeed a number of an operator X

phone-number-checker This package is used to validate the telephone numbers of the countries taken into account. It also makes it possible to verify t

A lightweight php class for formatting sql statements. Handles automatic indentation and syntax highlighting.

SqlFormatter A lightweight php class for formatting sql statements. It can automatically indent and add line breaks in addition to syntax highlighting

A lightweight php class for formatting sql statements. Handles automatic indentation and syntax highlighting.

SqlFormatter A lightweight php class for formatting sql statements. It can automatically indent and add line breaks in addition to syntax highlighting

A lightweight php class for formatting sql statements. Handles automatic indentation and syntax highlighting.

A lightweight php class for formatting sql statements. Handles automatic indentation and syntax highlighting.

Termage provides a fluent and incredibly powerful object-oriented interface for customizing CLI output text color, background, formatting, theming and more.
Termage provides a fluent and incredibly powerful object-oriented interface for customizing CLI output text color, background, formatting, theming and more.

Termage provides a fluent and incredibly powerful object-oriented interface for customizing CLI output text color, background, formatting, theming and

Robust, composite logger with filtering, formatting, and PSR-3 support

laminas-log 🇷🇺 Русским гражданам Мы, участники Laminas, родились и живем в разных странах. У многих из нас есть друзья, родственники и коллеги как в

Text formatting for humans.
Text formatting for humans.

Deutsch English Svenska Markdown 0.8.22 Text formatting for humans. How to format text Markdown is a practical way to edit web pages. Write text like

A PHP package for MRZ (Machine Readable Zones) code parser for Passport, Visa & Travel Document (TD1 & TD2).

MRZ (Machine Readable Zones) Parser for PHP A PHP package for MRZ (Machine Readable Zones) code parser for Passport, Visa & Travel Document (TD1 & TD2

A small PHP library for validating VAT identification numbers (VATINs).

VATIN A small PHP library for validating VAT identification numbers (VATINs). Installation This library is available on Packagist: $ composer require

PHP Email address validator - A library for validating emails against several RFC.

EmailValidator A library for validating emails against several RFC. Supported RFCs This library aims to support RFCs: 5321, 5322, 6530, 6531, 6532, 10

Modern PHP validator on steroids for validating forms and/or array's.

Modern PHP Validator - Standalone Validation on Steroids Introduction Head first example Installation Adding fields for validation Execute validation

A validating SQL lexer and parser with a focus on MySQL dialect.

SQL Parser A validating SQL lexer and parser with a focus on MySQL dialect. Code status Installation Please use Composer to install: composer require

Automatically validating Eloquent models for Laravel

Validating, a validation trait for Laravel Validating is a trait for Laravel Eloquent models which ensures that models meet their validation criteria

Comments
  • Refactor Pest Tests & README

    Refactor Pest Tests & README

    Hi Tom,

    This PR proposes a refactoring on Pest Tests and minor improvements on the README.

    Pest tests:

    • The tests were converted to Higher Order Tests promoting readability.
    • I have added Custom Helpers on Pest.php to avoid repeating code.
    • There is now a LaravelTestCase which extends the \Orchestra\Testbench\TestCase. This test case is only used in tests/FacadesTest.php. Future tests involving Laravel can individually use() this test case.

    Please, kindly review the tests thoroughly. Although they are all passing, I might have overlooked something.

    CleanShot 2022-03-04 at 10 16 58@2x

    Greetings and thanks,

    Daniel

    opened by dansysanalyst 2
  • Adicionar Passporte

    Adicionar Passporte

    Replicar as funcionalidades disponíveis para em CPF e CNPJ para Passporte.

    Ponto de atenção: o Passporte varia entre países, então o foco é o Brasil. Outros passportes são bem-vindos mas sempre mantendo o brasileiro como padrão.

    • generate
    • sanitize
    • format
    • validate
    hacktoberfest 
    opened by tombenevides 0
  • Adicionar RG

    Adicionar RG

    Replicar as funcionalidades disponíveis para em CPF e CNPJ para RG.

    Ponto de atenção: o RG varia entre estados, é preciso verificar o impacto disso e possivelmente permitir que o usuário escolha de qual padrão será gerado, adotando algum como padrão

    • generate
    • sanitize
    • format
    • validate
    hacktoberfest 
    opened by tombenevides 0
Releases(v1.1.3)
Owner
null
Modern PHP validator on steroids for validating forms and/or array's.

Modern PHP Validator - Standalone Validation on Steroids Introduction Head first example Installation Adding fields for validation Execute validation

Kris Kuiper 5 Oct 5, 2022
PHP library for ArCaptcha. This package supports PHP 7.3+.

PHP ArCaptcha Library PHP library for ArCaptcha. This package supports PHP 7.3+. List of contents PHP ArCaptcha Library List of contents Installation

Mohammad Abbasi 10 Aug 12, 2022
A simple package to validate against common passwords and help keep your application secure.

common-passwords A simple package to validate against common passwords and help keep your application secure. composer require crumbls/common-password

Crumbls 4 Oct 16, 2021
This package contains validatiors of data used in Poland (PESEL, NIP, REGON etc.)

This package contains validatiors of data used in Poland (PESEL, NIP, REGON etc.)

Pawel Lukas 2 Mar 18, 2022
This package provides tools to validate and sanitize objects and arrays.

Aura.Filter This package provides tools to validate and sanitize objects and arrays. Foreword Installation This library requires PHP 7.2 or later; we

Aura for PHP 153 Jan 2, 2023
PHP library - Validators for standards from ISO, International Finance, Public Administrations, GS1, Manufacturing Industry, Phone numbers & Zipcodes for many countries

IsoCodes PHP library - Validators for standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes

Ronan Guilloux 767 Jan 2, 2023
A simple filtering library for PHP

Filterus - A flexible PHP 5.3 filter package Filter Methods: Each filter class has two primary methods: $filter->filter($var) - returns a modified ver

Anthony Ferrara 451 Dec 27, 2022
Lightweight and feature-rich PHP validation and filtering library. Support scene grouping, pre-filtering, array checking, custom validators, custom messages. 轻量且功能丰富的PHP验证、过滤库。支持场景分组,前置过滤,数组检查,自定义验证器,自定义消息。

PHP Validate 一个简洁小巧且功能完善的php验证、过滤库。 简单方便,支持添加自定义验证器 支持前置验证检查, 自定义如何判断非空 支持将规则按场景进行分组设置。或者部分验证 支持在进行验证前对值使用过滤器进行净化过滤内置过滤器 支持在进行验证前置处理和后置处理独立验证处理 支持自定义每

Inhere 246 Jan 5, 2023
php binding for IUP toolkit

php-iup php-ffi experiment php7.4 interface to the IUP toolkit for building GUI's. Description IUP-Toolkit IUP is a multi-platform toolkit for buildin

Shubham Chaudhary 20 Nov 13, 2022
PHP library to validate and convert ISBNs and EANs

biblys/isbn biblys/isbn can be used to: validate a string against the ISBN-10, ISBN-13 and EAN-13 formats convert an ISBN to ISBN-10, ISBN-13, EAN-13

Biblys 48 Apr 10, 2022