{"id":13405295,"url":"https://github.com/brazanation/php-documents","last_synced_at":"2025-05-15T09:02:33.278Z","repository":{"id":10563790,"uuid":"66179431","full_name":"brazanation/php-documents","owner":"brazanation","description":"Library to provide Brazilian Documents as Value Objects in PHP","archived":false,"fork":false,"pushed_at":"2024-10-28T10:56:55.000Z","size":189,"stargazers_count":212,"open_issues_count":3,"forks_count":22,"subscribers_count":25,"default_branch":"main","last_synced_at":"2024-10-30T04:50:22.756Z","etag":null,"topics":["brasil","brazil","brazilian","cartaosus","cnh","cnpj","cns","cpf","documento","documents","judiciario","nfe","php","php7","php8","pis","pispasep","renavam","rg","tituloeleitor"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brazanation.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-21T03:29:10.000Z","updated_at":"2024-10-26T14:58:35.000Z","dependencies_parsed_at":"2024-11-11T18:27:20.331Z","dependency_job_id":"304fcd57-1f06-4114-be76-6ac51222463e","html_url":"https://github.com/brazanation/php-documents","commit_stats":{"total_commits":107,"total_committers":13,"mean_commits":8.23076923076923,"dds":"0.26168224299065423","last_synced_commit":"292f2b4d6e41a813d623478614aebfe914c446b7"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brazanation%2Fphp-documents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brazanation%2Fphp-documents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brazanation%2Fphp-documents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brazanation%2Fphp-documents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brazanation","download_url":"https://codeload.github.com/brazanation/php-documents/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248890519,"owners_count":21178452,"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":["brasil","brazil","brazilian","cartaosus","cnh","cnpj","cns","cpf","documento","documents","judiciario","nfe","php","php7","php8","pis","pispasep","renavam","rg","tituloeleitor"],"created_at":"2024-07-30T19:01:58.599Z","updated_at":"2025-05-15T09:02:33.269Z","avatar_url":"https://github.com/brazanation.png","language":"PHP","readme":"Brazanation Documents\n=====================\n\n[![Build Status](https://scrutinizer-ci.com/g/brazanation/php-documents/badges/build.png?b=main)](https://scrutinizer-ci.com/g/brazanation/php-documents/build-status/main)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/f8c31359fca64c0c9c8375182fbceefd)](https://www.codacy.com/gh/brazanation/php-documents/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=brazanation/php-documents\u0026amp;utm_campaign=Badge_Grade)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/brazanation/php-documents/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/brazanation/php-documents/?branch=main)\n[![Code Coverage](https://scrutinizer-ci.com/g/brazanation/php-documents/badges/coverage.png?b=main)](https://scrutinizer-ci.com/g/brazanation/php-documents/?branch=main)\n[![StyleCI](https://github.styleci.io/repos/66179431/shield?branch=main)](https://github.styleci.io/repos/66179431?branch=main)\n\nA PHP library to provide Brazilian Documents safer, easier and fun!\n\nInstallation\n------------\n\nInstall the library using [composer][1]. Add the following to your `composer.json`:\n\n```json\n{\n    \"require\": {\n        \"brazanation/documents\": \"2.1.*\"\n    }\n}\n```\n\nNow run the `install` command.\n\n```sh\n$ composer.phar install\n```\n\nor\n\n```sh\n$ composer require brazanation/documents 2.1.*\n```\n\n### CPF (cadastro de pessoas físicas)\n\nRegistration of individuals or Tax Identification\n\n```php\nuse Brazanation\\Documents\\Cpf;\n\n$document = Cpf::createFromString('06843273173');\nif (false === $document) {\n   echo \"Not Valid\";\n}\necho $document; // prints 06843273173\necho $document-\u003eformat(); // prints 068.432.731-73\n\n```\nor\n```php\nuse Brazanation\\Documents\\Cpf;\nuse Brazanation\\Documents\\Exception\\InvalidDocument as  InvalidDocumentException;\n\ntry {\n    $document = new Cpf('06843273173');\n    echo $document; // prints 06843273173\n    echo $document-\u003eformat(); // prints 068.432.731-73\n} catch (InvalidDocumentException $e) {\n    echo $e-\u003egetMessage();\n}\n```\n\n### CNPJ (cadastro nacional da pessoa jurídica)\n\nCompany Identification or National Register of Legal Entities\n\n```php\nuse Brazanation\\Documents\\Cnpj;\n\n$document = Cnpj::createFromString('99999090910270');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\necho $document; // prints 99999090910270\necho $document-\u003eformat(); // prints 99.999.090/9102-70\n```\n\n### CNPJ (cadastro nacional da pessoa jurídica ALFA) a partir de 2026\n\nCompany Identification or National Register of Legal Entities\n\u003e NOTE: In 2026 this identification changes to Alphanumeric Type with:\n\u003e - 12 alphamuneric chacters A-Z and 0-9\n\u003e - last two control digits (numeric only) (MODULE 11)\n\n```php\nuse Brazanation\\Documents\\Cnpj;\n\n$document = Cnpj::createFromString('12ABC34501DE35');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\necho $document; 12ABC34501DE35\necho $document-\u003eformat(); // prints 12.ABC.345/01DE-35\n```\n\n\n### CNH (carteira nacional de habilitação)\n\nNational Driving License\n\n```php\nuse Brazanation\\Documents\\Cnh;\n\n$document = Cnh::createFromString('83592802666');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\necho $document; // prints 83592802666\necho $document-\u003eformat(); // prints 83592802666\n```\n\n### Chave de Acesso Sped (chave da NFe, CTe e MDFe)\n\nSped Access Key\n\nAvailable models:\n* NFe\n* NFCe\n* CTe\n* CTeOther\n* MDFe\n\n```php\nuse Brazanation\\Documents\\Sped\\NFe;\n\n$document = NFe::createFromString('52060433009911002506550120000007801267301613');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\necho $document; // prints 52060433009911002506550120000007801267301613\necho $document-\u003eformat(); // prints 5206 0433 0099 1100 2506 5501 2000 0007 8012 6730 1613\n```\nor generate your number\n\n```php\ntry {\n    $nfeKey = NFe::generate(\n        52,\n        $generatedAt,\n        new Cnpj('33009911002506'),\n        12,\n        780,\n        EmissionType::normal(),\n        26730161\n    );\n    echo $accessKey; // prints 52060433009911002506550120000007801267301613\n}catch (InvalidDocumentException $e){\n    echo $e-\u003egetMessage();\n}\n```\n\n### PIS/PASEP (programa de integração social e programa de formação do patrimônio do servidor público)\n\nSocial Integration Program and Training Program of the Heritage of Public Servant\n\n```php\nuse Brazanation\\Documents\\PisPasep;\n\n$document = PisPasep::createFromString('518.23129.49-1');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\necho $document; // prints 51823129491\necho $document-\u003eformat(); // prints 518.23129.49-1\n```\n\n### Título de Eleitor\n\nVoter Registration\n\n```php\nuse Brazanation\\Documents\\Voter;\n\n$document = Voter::createFromString('106644440302', 20, 42);\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\necho $document; // prints 106644440302\necho $document-\u003egetSection(); // prints 0020\necho $document-\u003egetZone(); // prints 042\n```\n\n### Inscrição Estadual\n\nState Registration\n\n```php\nuse Brazanation\\Documents\\StateRegistration;\n\n// for Commercial São Paulo\n$state = StateRegistration::SP('110.042.490.114');\necho $state; // prints 110042490114\necho $state-\u003eformat(); // prints 110.042.490.114\n\n// for Rural Producer São Paulo\n$state = StateRegistration::SP('P011004243002');\necho $state; // prints P011004243002\necho $state-\u003eformat(); // prints P-01100424.3/002\n```\nor\n```php\nuse Brazanation\\Documents\\StateRegistration;\n\n$document = StateRegistration::createFromString('P011004243002', 'SP');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\n```\n\n### Cartão Nacional de Saúde (SUS)\n\nNational Health Card\n\n```php\nuse Brazanation\\Documents\\Cns;\n\n$document = Cns::createFromString('242912018460005');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\necho $document; // prints 242912018460005\necho $document-\u003eformat(); // prints 242 9120 1846 0005\n```\n\n### Renavam (Registro Nacional de Veículos Automotores)\n\nNational Registry of Motor Vehicles\n\n```php\nuse Brazanation\\Documents\\Renavam;\n\n$document = Renavam::createFromString('61855253306');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\necho $document; // prints 61855253306\necho $document-\u003eformat(); // prints 6185.525330-6\n```\n\n### Processos Judiciais\n\nNumbers of legal proceedings related to Judiciary assessments\n\n```php\nuse Brazanation\\Documents\\JudiciaryProcess;\n\n$document = JudiciaryProcess::createFromString('0048032982009809');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\necho $document; //prints  0048032982009809\necho $document-\u003eformat(); //prints  0048032.98.2009.8.09.0000\n\n```\n\n### Suframa\n\nNumber of registration in \"Superintendência da Zona Franca de Manaus\" (Free Comercial Zones)\n\n```php\n\nuse Brazanation\\Documents\\Suframa;\n\n$document = Suframa::createFromString('201111019');\n\nif (false === $document) {\n   echo \"Not Valid\";\n}\n\necho $document; //prints  201111019\necho $document-\u003eformat(); //prints  20.1111.019\n\n```\n\n### License\n\nMIT, hell yeah!\n\n[1]: http://getcomposer.org/\n","funding_links":[],"categories":["PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrazanation%2Fphp-documents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrazanation%2Fphp-documents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrazanation%2Fphp-documents/lists"}