Name Picker Malfunction

    br-validate-dfe-access-key

    0.1.0 • Public • Published

    Validador de Chaves de Acesso de DFes (Documentos Fiscais Eletrônicos)

    Logo NFe

    Uma 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).

      import validateAccessKey from 'br-validate-access-key';
     
      validateAccessKey('35120859597245000190550000000095831710040056'); //true
      validateAccessKey('35-12/08-59.597.245/0001-90-55-000-000.009.583-171.004.005-6'); //true
      validateAccessKey('42100484684182000157550010000000020108042108'); //false

    VALIDAÇÕES INDIVIDUAIS

    Para 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:

    import validateAccessKey, { validate } from 'br-validate-access-key';
     
    validateAccessKey('42100484684182000157550010000000020108042108'); //false
    validate.uf('42'); //true
    validate.aamm('1004'); //true
    validate.cnpj('84684182000157'); //true
    validate.model('55'); //true
    validate.series('001'); //true
    validate.number('000000002'); //true
    validate.type('0'); //false
    validate.code('010804210'); //true

    CONFIGURAÇÃO

    É possível passar opções como o segundo argumento do método de validação.

    • ignoreType: Ignora o campo tpEmis e considera o campo cNF com 9 dígitos.
    validateAccessKey('42100484684182000157550010000000020108042108', {
      ignoreType: true,
    }); //true
     
    • describe: Retorna um objeto com as validações individuais ao invés de um booleano.

    Todo campo possui as propriedades isValid e value.

    Para validar a chave de acesso a partir da descrição use:

    validateAccessKey(accessKey, { describe: true })
      .every(field => field.isValid)
    validateAccessKey('42100484684182000157550010000000020108042108', {
      describe: true,
    }); /* {
      uf: {
        isValid: true,
        translation: 'Santa Catarina',
        value: '42'
      },
      aamm: {
        isValid: true,
        value: '1004'
      },
      ...
    */
     

    CONSTRUÇÃO DE UMA CHAVE DE ACESSO

    As 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.

    Os campos que compõem uma chave de acesso são, em ordem da esquerda para a direita:

    • cUF: 02 dígitos
    • AAMM: 04 dígitos
    • CNPJ: 14 dígitos
    • mod: 02 dígitos
    • serie: 03 dígitos
    • nNf: 09 dígitos
    • tpEmis: 01 dígitos*
    • cNF: 08 dígitos*
    • cDV: 01 dígito

    * 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.

    VALIDAÇÕES DE OUTROS TIPOS DE DFe

    Esta 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.

    Visto 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.

    CONTRIBUIÇÕES

    Contribuições serão aceitas desde que acompanhadas da respectiva Nota Técnica que define a regra de validação. Contribuições serão aceitas para todos os tipos de DFe.

    Contribuições que não possuam uma alta cobertura de testes não serão aceitas.

    LICENÇA

    Esta 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.

    Install

    npm i br-validate-dfe-access-key

    DownloadsWeekly Downloads

    152

    Version

    0.1.0

    License

    MIT

    Unpacked Size

    13.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • vmarchesin