{"id":18406547,"url":"https://github.com/vmarchesin/br-validate-dfe-access-key","last_synced_at":"2025-04-07T08:32:26.298Z","repository":{"id":33972277,"uuid":"164490878","full_name":"vmarchesin/br-validate-dfe-access-key","owner":"vmarchesin","description":"Um validador de chave de acesso de DFes","archived":false,"fork":false,"pushed_at":"2023-01-07T02:44:41.000Z","size":1931,"stargazers_count":8,"open_issues_count":14,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T18:55:09.550Z","etag":null,"topics":["chave-de-acesso","cte","dfe","nfe","sefaz","validation"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/vmarchesin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-07T20:31:59.000Z","updated_at":"2024-02-02T11:27:01.000Z","dependencies_parsed_at":"2023-01-15T03:42:50.538Z","dependency_job_id":null,"html_url":"https://github.com/vmarchesin/br-validate-dfe-access-key","commit_stats":null,"previous_names":["vmarchesin/br-validate-access-key"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchesin%2Fbr-validate-dfe-access-key","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchesin%2Fbr-validate-dfe-access-key/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchesin%2Fbr-validate-dfe-access-key/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmarchesin%2Fbr-validate-dfe-access-key/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmarchesin","download_url":"https://codeload.github.com/vmarchesin/br-validate-dfe-access-key/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247620439,"owners_count":20968213,"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":["chave-de-acesso","cte","dfe","nfe","sefaz","validation"],"created_at":"2024-11-06T03:09:33.284Z","updated_at":"2025-04-07T08:32:25.854Z","avatar_url":"https://github.com/vmarchesin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Validador de Chaves de Acesso de DFes (Documentos Fiscais Eletrônicos)\n\n[![npm](https://img.shields.io/npm/v/br-validate-dfe-access-key.svg)]()\n[![npm](https://img.shields.io/npm/dt/br-validate-dfe-access-key.svg)]()\n![Travis](https://img.shields.io/travis/com/vmarchesin/br-validate-dfe-access-key.svg)\n![Maintenance](https://img.shields.io/maintenance/yes/2019.svg)\n\n![Logo NFe](./assets/nfe-logo.png)\n\nUma **Chave de Acesso** é um identificador único que referencia um DFe (Documento Fiscal Eletrônico), controlado pela SEFAZ (Secretaria da Fazenda, órgão do governo que gerencia os DFes). Esta biblioteca valida apenas o formato da chave de acesso. Não é possível recuperar a informação ou confirmar a existência da chave de acesso através desta biblioteca.\n\nEsta biblioteca possui zero dependências.\n\n```js\n  import validateAccessKey from 'br-validate-dfe-access-key';\n\n  validateAccessKey('35120859597245000190550000000095831710040056'); //true\n  validateAccessKey('35-12/08-59.597.245/0001-90-55-000-000.009.583-171.004.005-6'); //true\n  validateAccessKey('42100484684182000157550010000000020108042108'); //false\n```\n\n## INSTALAÇÃO\n\n[![NPM](https://nodei.co/npm/br-validate-dfe-access-key.png)](https://www.npmjs.com/package/br-validate-dfe-access-key)\n\n\n```bash\nnpm i -S br-validate-dfe-access-key\n```\n\n## VALIDAÇÕES INDIVIDUAIS\n\nPara que a validação da chave de acesso seja feita, é necessário fazer várias validações menores em cada campo. A chave só será válida se todos os campos forem válidos. Também é possível fazer validações diretamente nos campos de forma individual:\n\n```js\nimport validateAccessKey, { validate } from 'br-validate-access-key';\n\nvalidateAccessKey('42100484684182000157550010000000020108042108'); //false\nvalidate.uf('42'); //true\nvalidate.aamm('1004'); //true\nvalidate.cnpj('84684182000157'); //true\nvalidate.model('55'); //true\nvalidate.series('001'); //true\nvalidate.number('000000002'); //true\nvalidate.type('0'); //false\nvalidate.code('010804210'); //true\n```\n\n## CONFIGURAÇÃO\n\nÉ possível passar opções como o segundo argumento do método de validação.\n\n* `ignoreType`: Ignora o campo **tpEmis** e considera o campo **cNF** com 9 dígitos.\n\n```js\nvalidateAccessKey('42100484684182000157550010000000020108042108', {\n  ignoreType: true,\n}); //true\n\n```\n\n* `describe`: Retorna um objeto com as validações individuais ao invés de um booleano.\n\u003e Todo campo possui as propriedades `isValid` e `value`.\n\u003e\n\u003e Para validar a chave de acesso a partir da descrição use:\n\u003e\n\u003e ```js\n\u003e validateAccessKey(accessKey, { describe: true })\n\u003e   .every(field =\u003e field.isValid)\n\u003e ```\n\n\n```js\nvalidateAccessKey('42100484684182000157550010000000020108042108', {\n  describe: true,\n}); /* {\n  uf: {\n    isValid: true,\n    translation: 'Santa Catarina',\n    value: '42'\n  },\n  aamm: {\n    isValid: true,\n    value: '1004'\n  },\n  ...\n} */\n\n```\n\n## CONSTRUÇÃO DE UMA CHAVE DE ACESSO\n\nAs chaves de acesso são únicas para cada documento, mas todas seguem um padrão. O valor semântico dos campos é diferente para cada tipo de documento, mas a sua distribuição ao longo dos 44 caracteres é sempre a mesma.\n\nOs campos que compõem uma chave de acesso são, em ordem da esquerda para a direita:\n\n* **cUF**: 02 dígitos\n* **AAMM**: 04 dígitos\n* **CNPJ**: 14 dígitos\n* **mod**: 02 dígitos\n* **serie**: 03 dígitos\n* **nNf**: 09 dígitos\n* **tpEmis**: 01 dígitos\\*\n* **cNF**: 08 dígitos\\*\n* **cDV**: 01 dígito\n\n\u003csmall\u003e\\* O campo **tpEmis** passou a compor a chave de acesso a partir da versão 1.1 da NFe. Para as versões anteriores à 1.1 o campo **cNF** possui 9 dígitos.\u003c/small\u003e\n\n## VALIDAÇÕES DE OUTROS TIPOS DE DFe\n\nEsta biblioteca valida apenas chaves de acesso de NFes. Apesar do layout de todos os DFes ser o mesmo, o valor semântico de cada campo é importante para a validação da chave. Por exemplo: em uma NFe o campo **tpEmis** assume valores entre 1 e 5, porém em um CTe os valores 7 e 8 são válidos, e possuem significados diferentes.\n\nVisto que existem vários tipos de DFe, com vários valores semânticos diferentes, a implementação da validação completa de todos os DFes se dará pela demanda de tal validação. Caso queira a validação de um DFe específico, faça uma contribuição ou abra uma Issue.\n\n## CONTRIBUIÇÕES\n\nContribuições serão aceitas desde que acompanhadas da respectiva [Nota Técnica](http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=tW+YMyk/50s=) que define a regra de validação. Contribuições serão aceitas para todos os tipos de DFe.\n\nContribuições que não possuam uma alta cobertura de testes não serão aceitas.\n\n## LICENÇA\n\nEsta biblioteca está publicada sob a licença MIT, o que significa que você é livre para modificar e/ou reusar o código gratuitamente ou para fins comerciais. Se você fizer alterações a partir do código original por favor faça referência ao autor.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmarchesin%2Fbr-validate-dfe-access-key","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmarchesin%2Fbr-validate-dfe-access-key","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmarchesin%2Fbr-validate-dfe-access-key/lists"}