{"_id":"br-validate-dfe-access-key","_rev":"1-46fc51797abe5b976ef6b53c5feadbec","name":"br-validate-dfe-access-key","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"br-validate-dfe-access-key","version":"0.1.0","author":{"name":"Vinicius Marchesin Araujo"},"description":"Um validador de chave de acesso de DFes (Documentos Fiscais eletrônicos)","license":"MIT","main":"dist/index.js","scripts":{"babel":"babel src/index.js","build":"webpack --mode production","lint":"eslint src/*","mocha":"mocha --require @babel/register","test":"nyc --reporter=html mocha --require @babel/register -- src/*"},"keywords":["chave-de-acesso","dfe","nfe","cte","sefaz","validation"],"repository":{"type":"git","url":"git+https://github.com/vmarchesin/br-validate-access-key.git"},"bugs":{"url":"https://github.com/vmarchesin/br-validate-access-key/issues"},"homepage":"https://github.com/vmarchesin/br-validate-access-key#readme","devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/preset-env":"^7.2.3","@babel/register":"^7.0.0","babel-eslint":"^8.2.6","babel-loader":"^8.0.5","chai":"^4.2.0","eslint":"^5.3.0","eslint-config-airbnb-base":"^13.1.0","eslint-plugin-import":"^2.14.0","mocha":"^5.2.0","nyc":"^13.1.0","undefined":"^0.1.0","webpack":"^4.28.3","webpack-cli":"^3.2.0"},"gitHead":"93c03b739275040a9c443312ac180ba0bb1f40b2","_id":"br-validate-dfe-access-key@0.1.0","_npmVersion":"6.5.0","_nodeVersion":"8.10.0","_npmUser":{"name":"vmarchesin","email":"vinicius.marchesinaraujo@gmail.com"},"dist":{"integrity":"sha512-di519P0wX6F8ShkwJNrgqQhFt9K3VI/0WVN5leP0u6FmV9NaNwamwNGa2QXUWmWkpqFkwaFSI03MZU+gDubMSQ==","shasum":"dc89c28971f1381610532e2786720b21fd7b87c6","tarball":"https://registry.npmjs.org/br-validate-dfe-access-key/-/br-validate-dfe-access-key-0.1.0.tgz","fileCount":5,"unpackedSize":13078,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNN6JCRA9TVsSAnZWagAAB4YP+QD1uwbvCYdZzQ1EoQNl\nwrfTnqCKJ90t4l1BqXBPBjH8UEJIB+QRLylxHyu5GD4L6o3SCVMsdqwE3pZ8\n1CYEu0OIQYC42C2yUilGir4/6msbFHl4XMQAxmEmTuGDB0EJcIHTjCtKXUOH\nrl7hivHt7qJrjSsM2hSFI3UkV+N/p1n14kUnQm12HEuV5jUvJDRs74agqIvG\noMMoYmMbcJfC+02NdzgSKl+InSR2UHvzffIfgXUpb4G51mq3mLRQlV1XxG6h\n/WNTZWcGMxPNgV9CH3v2uFbGqdEI6NFAJWjryjeWDnopdZROBBZSMrAVlTuk\nk3Sw5Cpaa1MMf5l8Qq5C1zYrv+fvNCGyKmFRymBi2jaI1JQ73QJ6i6Egbx/D\n40CBlxxAYRLpMJTEfcml0plvkOFoB+T1IyefRq282wGP+kCiu8FG433tfR5I\nLjGIh54m06gxpjpWX+8N+HzuGJJXVA1xWUu29FjgKsmJvrv8FDPhTsP7htWt\nm6lTvBvvkVTQp7Up7LA4mxuMdDHHCX84BuVM+gRyPnCO7aEkGzkFlT8p1shm\nhufg98ej8dKr+phVJoLLCmlMNkwfN+o/3piD/ZUUn6bXz3xsZW+cyGh7UHzW\n8hL0UNO/kGNjDhTBws8F0CUCvyMRRZ+2HaByWTbyHr2UniaHp4FmKU/uIA28\n2zAw\r\n=4HzN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFaHydnAhNfDoyjkj6qGCWaylt77SczyD6R+nOQ1ykzmAiEAxYbhhvSjjjxjzM1qo9YTRuy7ZT/0K/ucWkOt1CcUnOk="}]},"maintainers":[{"name":"vmarchesin","email":"vinicius.marchesinaraujo@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/br-validate-dfe-access-key_0.1.0_1546968712458_0.44521551118379543"},"_hasShrinkwrap":false}},"time":{"created":"2019-01-08T17:31:52.457Z","0.1.0":"2019-01-08T17:31:52.576Z","modified":"2022-04-12T04:13:17.104Z"},"maintainers":[{"name":"vmarchesin","email":"vinicius.marchesinaraujo@gmail.com"}],"description":"Um validador de chave de acesso de DFes (Documentos Fiscais eletrônicos)","homepage":"https://github.com/vmarchesin/br-validate-access-key#readme","keywords":["chave-de-acesso","dfe","nfe","cte","sefaz","validation"],"repository":{"type":"git","url":"git+https://github.com/vmarchesin/br-validate-access-key.git"},"author":{"name":"Vinicius Marchesin Araujo"},"bugs":{"url":"https://github.com/vmarchesin/br-validate-access-key/issues"},"license":"MIT","readme":"# Validador de Chaves de Acesso de DFes (Documentos Fiscais Eletrônicos)\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).\n\n```js\n  import validateAccessKey from 'br-validate-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## 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> Todo campo possui as propriedades `isValid` e `value`.\n>\n> Para validar a chave de acesso a partir da descrição use:\n>\n> ```js\n> validateAccessKey(accessKey, { describe: true })\n>   .every(field => field.isValid)\n> ```\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<small>\\* 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.</small>\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.","readmeFilename":"README.md"}