Pular para conteúdo

Processos de Emissão

Para fácil entendimento de como funciona o processo de emissão pelo InvoiCy Framework, disponibilizamos um fluxo em anexo, contendo todas as possíveis situações que possam ocorrer. No processo de emissão vamos tratar a emissão Online e a emissão em Contingência Offline. Para ambos, a função utilizada é a "InvoiCyFramework_EmiteDocumento".

Formas de Emissão

A seguir, detalhamos o ciclo completo de emissão de documentos fiscais eletrônicos (DF-e) gerenciado pelo InvoiCy Framework. Este guia explora os diversos processos de autorização disponíveis, garantindo a continuidade operacional do seu Aplicativo Comercial sob quaisquer condições. A documentação aborda os procedimentos para a Emissão Online (Normal) e os diferentes mecanismos de contingência implementados pelo Framework.

Emissão Online

Este é processo ideal, onde a comunicação entre Aplicação Comercial, InvoiCy Framework, Plataforma InvoiCy e SEFAZ ocorre com sucesso.

Emissão em Contingência

O InvoiCy Framework está preparado para realizar emissões de NFC-e em contingência Offline (tpEmis= 9). Este formato de emissão consiste em gerar o XML da NFC-e com tpEmis= 9 e transmitir para a Secretária da Fazenda assim que for sanado o problema de conexão ou restabelecido o serviço da SEFAZ.

No estado de Santa Catarina existem particularidades que precisam ser tratadas para que seja possível a emissão de NFC-e em contingência. Para isso, entre em contato com a Migrate pelo e-mail integracao@migrate.info informando sua necessidade de implementação.

O Framework trata cada forma de contingência de maneira distinta dependendo da definição do parâmetro "TIPO_CONTINGENCIA", conforme decrito a seguir:

  • Sem Contingência (valor = 0): Ao utilizar esta opção o InvoiCy Framework só realizará emissão de NFC-e se conseguir comunicação com a API da Plataforma InvoiCy. Se o Framework não conseguir estabelecer a conexão com Plataforma InvoiCy, ou se não receber o retorno, o mesmo irá retornar o código 999 para o Aplicativo Comercial.

Caso receba algum retorno de erro da Plataforma, seja alguma rejeição ou falha de comunicação da Plataforma InvoiCy com a SEFAZ, este erro será repassado ao Aplicativo Comercial.

Neste cenário, o documento ficará com o status de Pendente na plataforma InvoiCy, aguardando o retorno da comunicação com a SEFAZ para ser reenviado.

  • Contingência Offline (valor = 1): Ao utilizar esta opção o InvoiCy Framework poderá tratar a contingência offline de duas formas que dependerão dos parâmetros AUTO_INCREMENTA e AUTO_PREENCHE.

É preciso definir se o controle do sequencial será feito pelo InvoiCy Framework ou pelo Aplicativo Comercial, pois isso impactará na forma de integração e utilização do InvoiCy Framework.

Se o sequencial estiver sendo controlado pelo InvoiCy Framework, ao receber um retorno de timeout 108, ele realizará o processo de emissão em Contingência Offline e o pedido de descarte da NFC-e substituída.

Se o controle do sequencial estiver sendo feito pelo Aplicativo Comercial e ocorrer o retorno 108, o mesmo deverá solicitar o descarte do sequencial original (ver ítem Descarte de Documentos) e solicitar novamente a emissão do documento, porém avançando o sequencial. Nesta situação, como o InvoiCy Framework entrou em contingência em função do retorno 108, consequentemente essa próxima tentativa de emissão será realizada em Contingência Offline.

Emissão Forçada em Contingência

Em situações onde PDV perder conexão com a Plataforma InvoiCy, o Aplicativo Comercial pode configurar o parâmetro EMITIR_EM_CONTINGENCIA e assim ativar a emissão de NFC-e em Contingência Offline forçada. Quando sanado os problemas de conectividade, este tipo de emissão deverá ser desativada, voltando a emissão online e permitindo a sincronização dos documentos pendentes com o InvoiCy.

Para utilizar esta configuração é preciso que o parâmetro TIPO_CONTINGENCIA esteja definido para 1 = Contingência Offline.

Cancelamento de Documento

As NFC-es autorizadas e que não tiveram trânsito de mercadorias, podem ser canceladas quando necessário. Já as NFC-es que acobertaram trânsito de mercadorias e por algum motivo precisam ser canceladas, ou as NFC-e que estão fora do prazo de cancelamento, devem ser referenciadas em uma NF-e (modelo 55) de devolução para desfazer a operação de venda.

O cancelamento de documento pode ser realizado chamando a função "InvoiCyFramework_EmiteDocumento". Deverá ser passado um XML contendo os dados do emissor e do documento fiscal a ser cancelado, no campo XML entrada, conforme exemplo abaixo:

<EnvioEvento>
  <ModeloDocumento>NFe</ModeloDocumento>
  <Versao>4.00</Versao>
  <Evento>
    <NtfCnpjEmissor>99999999999999</NtfCnpjEmissor>
    <NtfNumero>100</NtfNumero>
    <NtfSerie>1</NtfSerie>
    <tpAmb>2</tpAmb>
    <EveInf>
      <EveDh>2017-07-18T10:18:21</EveDh>
      <EveFusoHorario>-03:00</EveFusoHorario>
      <EveTp>110111</EveTp>
      <EvenSeq>1</EvenSeq>
      <Evedet>
        <EveDesc>Cancelamento</EveDesc>
        <EvexJust>Cancelamento para testes</EvexJust>
        <EvenProt>0</EvenProt>
      </Evedet>
    </EveInf>
  </Evento>
</EnvioEvento>

Este evento de cancelamento pode ser utilizado tanto para NFC-e emitidos Online ou em Contingência Offline. O prazo do cancelamento normal é de 30 minutos a partir da data e hora de autorização da NFC-e.

Os emissores que controlam o sequencial e contingência, podem utilizar o evento de Cancelamento por substituição (EveTp = 110112) para NFC-e. Em que o emissor deve solicitar o cancelamento por substituição de uma NFC-e, desde que seja emitida outra NFC-e em contingência (tpEmis= 9) para substituir essa primeira operação, respeitando o prazo máximo de 168h, que pode variar para cada UF.

Inutilização de Documentos

A inutilização é utilizada quando ocorre um pulo no sequencial de numeração dos documentos, ou quando um documento é rejeitado e não se deseja corrigi-lo. Neste caso, podemos inutilizar aquela numeração e emitir um novo documento com um novo número. Não existe um prazo limite estipulado pela SEFAZ para realizar a inutilização de uma numeração.

Além do mais, pode ser realizada a inutilização de um único número, ou ainda de uma faixa de números em um único pedido de inutilização. A ação de inutilização pode ser realizada em qualquer momento, bastando chamar a função "InvoiCyFramework_EmiteDocumento" no campo XML entrada, conforme demonstrado no exemplo abaixo:

<Inutilizacao>
  <ModeloDocumento>NFe</ModeloDocumento>
  <Versao>4.00</Versao>
  <CnpjEmissor>99999999999999</CnpjEmissor>
  <tpAmb>2</tpAmb>
  <NumeroInicial>545</NumeroInicial>
  <NumeroFinal>545</NumeroFinal>
  <Serie>35</Serie>
  <Justificativa>Teste de inutilizacao</Justificativa>
</Inutilizacao>

Consulta de Documentos

A consulta de documentos pode ser utilizada para verificar o status de um documento, ou uma faixa de documentos, emitidos anteriormente.

Para realizar a consulta, a Aplicação Comercial deve chamar a função "InvoiCyFramework_EmiteDocumento". Deverá ser passado um XML contendo dados de identificação do emissor, a série e sequenciais dos documentos que se deseja consultar, no campo XML entrada, conforme exemplo abaixo:

<Consulta>
  <ModeloDocumento>NFCe</ModeloDocumento>
  <Versao>4.00</Versao>
  <tpAmb>2</tpAmb>
  <CnpjEmissor>99999999999999</CnpjEmissor>
  <NumeroInicial>1</NumeroInicial>
  <NumeroFinal>10</NumeroFinal>
  <Serie>1</Serie>
</Consulta>

Descarte de Documentos

Durante o processo de emissão dos documentos fiscais podem acontecer inúmeros imprevistos que impedem de obter o status final do documento. Quando o emitente desconhece o que aconteceu com o documento enviado, ou não possui o status final do mesmo, recomenda-se emitir um novo documento, avançando a numeração sequencial, e solicitar o descarte do documento emitido anteriormente.

Por exemplo: emitido o documento do sequencial 100 com tpEmis= 1 (emissão online), mas não recebeu retorno ou recebeu um 108 (timeout), este documento não terá seu DANFE NFC-e gerado, pois o 108 não é um status final. Devido a isto será necessário gerar a mesma venda, mas com numeração 101, que será emitido em contingência Offline (tpEmis= 9) que indiferente de estar autorizada ou não, terá seu DANFE NFC-e gerado para acobertar a venda.

Atenção: O avanço de numeração se faz necessário para evitar a duplicidade de documentos com a mesma chave de acesso.

Este processo de descarte trata a NFC-e 100 que recebeu o 108 timeout como sendo NFC-e substituída e a NFC-e 101 como NFC-e substituta. O processo de descarte consiste em se a NFC-e 100 não constar como autorizada na SEFAZ, deverá ser inutilizado este sequencial 100 e se constar como autorizada, deverá ser cancelada através do evento de cancelamento por substituição.

Atenção: Este processo é nativo no InvoiCy Framework desde que o mesmo esteja configurado para controlar o sequencial.

Caso o controle de sequencial for por conta do Aplicativo Comercial, este deverá estar preparado para receber o retorno 108 do InvoiCy Framework e assim gerar novo XML com avanço do sequencial e junto disponibilizar o XML de parâmetros adicionais para solicitar o descarte da NFC-e que recebeu o 108. Para isso, deve-se considerar o envio do descarte em uma das opçõe a seguir:

Pedido de Substituição

O InvoiCy disponibiliza no layout de integração um grupo chamado “SubstituirDocumento”, onde poderá ser informado o número e a série do documento que deverá ser substituído.

Este pedido deve ser informado através do parâmetro XML de parâmetros adicionais da função "InvoiCyFramework_EmiteDocumento". O InvoiCy detecta automaticamente quando a SEFAZ de origem do emissor voltar a operar e irá inutilizar ou cancelar o documento marcado como substituído, dependendo de qual status ele apresentar junto à SEFAZ. Basta enviar a estrutura de tags conforme exemplo abaixo:

<SubstituirDocumento>
  <nNF>2035</nNF>
  <serie>260</serie>
  <modelo>NFCe</modelo>
  <CNPJ_emit>1234567801234</CNPJ_emit>
  <nNFSubstituta>2036</nNFSubstituta>
  <serieSubstituta>260</serieSubstituta>
  </SubstituirDocumento>

É importante destacar que a nota substituída deve estar emitida com tpEmis=1, e a nota substituta sempre deve ser enviada com tpEmis=9, caso contrário o evento será rejeitado com código 920 – Tipo de Emissão inválido no Cancelamento por Substituição.

Além disso, a data de emissão da nota substituta não pode ser maior que 2 horas da data de emissão da nota que será descartada/cancelada, ou resultará na rejeição 915 – Data de emissão da NF-e Substituta maior que 2 horas da data de emissão da NFe a ser cancelada.

Atenção: A nota substituta sempre deve estar com status Autorizado, caso contrário o evento de cancelamento não será enviado, e resultará na rejeição 913 – NF-e Substituta Denegada ou Cancelada.