{"id":23718391,"url":"https://github.com/tongedev/rfb-document","last_synced_at":"2025-09-03T19:33:25.009Z","repository":{"id":43376888,"uuid":"464706234","full_name":"tongedev/rfb-document","owner":"tongedev","description":"Um pacote PHP para validar/gerar/formatar um número de documento da Receita Federal (CPF/CNPJ)","archived":false,"fork":false,"pushed_at":"2023-02-10T23:15:23.000Z","size":174,"stargazers_count":10,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-30T01:48:33.486Z","etag":null,"topics":["cnpj","cnpj-generator","cnpj-validator","cpf","cpf-generator","cpf-validador","hacktoberfest","hacktoberfest2022","laravel","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tongedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-01T01:45:42.000Z","updated_at":"2024-07-29T21:02:37.000Z","dependencies_parsed_at":"2023-01-25T16:00:37.671Z","dependency_job_id":null,"html_url":"https://github.com/tongedev/rfb-document","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongedev%2Frfb-document","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongedev%2Frfb-document/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongedev%2Frfb-document/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongedev%2Frfb-document/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tongedev","download_url":"https://codeload.github.com/tongedev/rfb-document/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231882183,"owners_count":18440325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnpj","cnpj-generator","cnpj-validator","cpf","cpf-generator","cpf-validador","hacktoberfest","hacktoberfest2022","laravel","php"],"created_at":"2024-12-30T21:21:23.635Z","updated_at":"2024-12-30T21:24:13.399Z","avatar_url":"https://github.com/tongedev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://banners.beyondco.de/RFB%20Document.png?theme=light\u0026packageManager=composer+require\u0026packageName=tongedev%2Frfb-document\u0026pattern=architect\u0026style=style_1\u0026description=+valide%2Fgere%2Fformate+um+n%C3%BAmero+de+RG%2FCPF\u0026md=1\u0026showWatermark=0\u0026fontSize=100px\u0026images=identification\" width=\"600\" alt=\"RFB-document\"\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"https://github.com/tongedev/rfb-document/actions\"\u003e\u003cimg alt=\"Total Downloads\" src=\"https://github.com/tongedev/rfb-document/actions/workflows/tests.yml/badge.svg?branch=main\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/tongedev/rfb-document/issues\"\u003e\u003cimg alt=\"Issues Open\" src=\"https://img.shields.io/github/issues/tongedev/rfb-document\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://packagist.org/packages/tongedev/rfb-document\"\u003e\u003cimg alt=\"Total Downloads\" src=\"https://img.shields.io/packagist/dt/tongedev/rfb-document\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://packagist.org/packages/tongedev/rfb-document\"\u003e\u003cimg alt=\"Latest Version\" src=\"https://img.shields.io/packagist/v/tongedev/rfb-document\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://packagist.org/packages/tongedev/rfb-document\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/packagist/l/tongedev/rfb-document\"\u003e\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/p\u003e\n\n------\n\n**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.\n\n\u003e ❗ 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 algoritmo utilizado para gerar os números de cadastro.\n\n## Requisitos\n\n\u003e **Requer [PHP 8.0+](https://www.php.net/releases/)**\n\nSe você usa o Laravel, verifique a compatibilidade de versões:\n\n| Laravel | RFB Document |\n|---------|--------------|\n| 8.x     | 1.x          |\n| 9.x     | 1.x          |\n\n## Instalação\n\nPara instalar o pacote, basta usar o [composer](https://getcomposer.org):\n\n```bash\ncomposer require tongedev/rfb-document\n```\n\nEm 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.\n\n## Como usar\n\n### Classes\n\nUma 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:\n\n```php\n// no caso de querer manipular CPF\n$cpfClass = new Tongedev\\RfbDocument\\CPFDocument(); \n\n$cpf = $cpfClass-\u003egenerate(); // retorno: xxxxxxxxxxx (um número de CPF aleatório)\n\n// no caso de querer manipular CNPJ\n$cnpjClass = new Tongedev\\RfbDocument\\CNPJDocument(); \n\n$cnpj = $cnpjClass-\u003egenerate(); // retorno: xxxxxxxxxxx (um número de CNPJ aleatório)\n```\n\n### Facades\n\nEm 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:\n\n```php\n$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (um número de CPF aleatório)\n\n$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxx (um número de CNPJ aleatório)\n```\n\n## Recursos\n\nOs 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.\n\n| Recurso    | Parâmetro                            | Retorno                              |\n|------------|--------------------------------------|--------------------------------------|\n| generate() | bool   \\| formatted (default: false) | documento, formatado ou não (string) |\n| sanitize() | string \\| documentNumber             | documento sanitizado (string)        |\n| format()   | string \\| documentNumber             | documento formatado (string)         |\n| validate() | string \\| documentNumber             | (bool) se documento é válido (true) ou não (false)  |\n\nTodos os exemplos abaixo funcionam para `CPF` e `CPNJ`, bastando apenas alterar a classe utilizada.\n\n```php\n$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (cpf sanitizado)\n\n$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxxx (cnpj sanitizado)\n```\n\nE os demais métodos:\n\n```php\n$cpf = CPF::generate(true); // retorno: xxx.xxx.xxx-xx (cpf formatado)\n\n$cpf = CPF::sanitize('xxx.xxx.xxx-xx'); // retorno: xxxxxxxxxxx (cpf sanitizado)\n\n$cpf = CPF::format('xxxxxxxxxxx'); //retorno: xxx.xxx.xxx-xx (cpf formatado)\n\n$cpf = CPF::validate('xxx.xxx.xxx-xx'); // retorno: booleano dependendo do valor passado no parâmetro\n\n$cpf = CPF::validate('xxxxxxxxxxx'); // é possível passar documento sanitizado também para validação\n```\n\n## Exceções\n\nCaso 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:\n\n```php\n$cpf = CPF::format('123456ASasdfas'); // esse código irá gerar uma exceção do tipo `RfbDocumentException`.\n```\n\n## Contribuindo\n\nObrigado por considerar contribuir para o RFB Document. Tudo sobre contribuições está descrito [aqui](CONTRIBUTING.md).\n\n👋 Siga o autor [@devatreides](https://twitter.com/tongedev) no Twitter para saber das últimas novidades e conhecer outros projetos. Diga oi!\n\n## Licença\n\nRFB Document é um software open source licenciado sob a [Licença MIT](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftongedev%2Frfb-document","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftongedev%2Frfb-document","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftongedev%2Frfb-document/lists"}