Fluxo - Envio Normal da NF-e

A emissão de notas fiscais pode ser realizada em diferentes cenários, como operações de saída para o consumidor final, saída para revenda, entradas, devoluções, entre outros. As Secretarias de Fazenda (SEFAZ) adotam dois modelos de emissão de notas fiscais:

  • Síncrono: A resposta é obtida imediatamente na mesma chamada de envio.

  • Assíncrono: A SEFAZ processa a solicitação e, após um tempo, disponibiliza a resposta para consulta em uma chamada posterior.

A tabela abaixo detalha o modelo de emissão adotado por cada unidade federativa (UF):

Modelo

UFs

Síncrono

AM, BA, CE, GO, MG, MS, MT, PE, PR, RS, SP, SVAN, SVRS, SVC-AN e SVC-RS

O fluxo demonstrado a seguir trata a emissão da nota dentro da integração com a InvoiSys.

APIs Essenciais 💡

APIs Opcionais 🥈

Etapas e suas APIs

Para uma melhor leitura do fluxo, separamos ele em algumas partes, porém você consegue vê-lo completo por aquiarrow-up-right 📝.

1) Emissão da NF-e

Antes de iniciamos a emissão da nota, é necessário estar com um token de acesso válido, pois este será utilizado no cabeçalho da chamada da API de Envio. Tendo este em mãos, podemos partir para a emissão da nota.

Você irá gerar os dados da operação (Destinatário, Produtos, Impostos, Pagamento, etc), os preencherá nos campos da nota, e fará a chamada diretamente em nossa API.

Assim que recebermos a chamada, validaremos o arquivo. Se estiver correto, geraremos o XML do documento, totalizaremos os valores dos itens e impostos, e criaremos a chave de acesso, caso não tenha sido enviada. Por fim, assinaremos o arquivo para transmiti-lo à SEFAZ.

2) Retorno da chamada

Todo documento enviado para a SEFAZ gera um mensagem de retorno. Esta mensagem será recebida por nós, e em seguida retornaremos na mesma chamada da API juntamente com os dados do documento e suas respectivas ações. É com base nesse retorno que entendemos o que deve ser feito após a emissão da NF-e.

Nele existem algumas informações que podem ser interessantes você guardar, como a chaveDeAcesso e o id do documento criado em nossa base, pois elas são informações fundamentais em outras APIs.

Se você está emitindo em SP ou BA, por favor, veja o tópico referente ao retorno para o modelo assíncrono. Caso esteja emitindo nas demais UFs, confira o tópico a seguir.

2.1) Síncrono

Resumidamente, com base no retorno, podemos chegar a 3 cenários:

a) Autorização da NF-e; b) Rejeição na NF-e; c) Exceção na comunicação com a SEFAZ;

a) Autorização da NF-e

Para identificarmos que a operação foi um sucesso, nós iremos observar algumas tags e seus retornos:

  • Tags do bloco acoes :

  • corrigirDocumento : Retorno false.

  • codigoStatusSEFAZ : Retorno 100

  • descricaoStatusSEFAZ: Retorno Autoriza o uso da NF-e

  • documentoComErro : Retorno false.

A seguir temos um exemplo de autorização do documento

Impressão da NF-e

Se a nota estiver autorizada, então podemos realizar a impressão do DANFE. Você pode utilizar nossa API de Impressão do DANFE ou, se preferir, utilizar o seu modelo de impressão.

circle-info

Minha nota foi autorizada, mas estava com uma informação errada! 😓

Nesse caso, você pode fazer uma carta de correção (CC-e) indicando qual informação deverá ser alterada. Note que a CC-e não irá alterar nada no XML. Ela será um complemento para a NF-e e poderá ser impressa juntamente com o DANFE. Veja o embasamento legal arrow-up-rightaqui:

Cláusula décima quarta-A Após a concessão da Autorização de Uso da NF-e, de que trata a cláusula sétima, o emitente poderá sanar erros em campos específicos da NF-e, por meio de Carta de Correção Eletrônica - CC-e, transmitida à administração tributária da unidade federada do emitente, desde que o erro não esteja relacionado com:

I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação;

II - a correção de dados cadastrais que implique mudança do remetente ou do destinatário;

III - a data de emissão ou de saída.

b) Rejeição da NF-e

Alguns imprevistos ocorrem, e sua nota foi rejeitada pela SEFAZ, mas não se preocupe, pois te instruiremos como tratar uma rejeição.

Para identificarmos que foi uma rejeição, devemos observar se:

  • acoes: corrigirDocumento: Retorno true;

  • dadosDoDocumento: documentoComErro: Retorno true.

Se sim, então precisamos entender qual foi a rejeição. Para isso, podemos checar os seguintes blocos:

  • dadosDoDocumento: codigoStatusSEFAZ: Retorno <código>;

  • dadosDoDocumento: descricaoStatusSEFAZ: Retorno <descrição>.

No exemplo a seguir vemos uma nota que foi rejeitada por estar com um NCM inexistente:

Devemos então corrigir o documento e o reenviá-lo da mesma maneira que fizemos na primeira etapa do envio. Se tudo estiver certo com a nota, então a SEFAZ autorizará a mesma e poderemos prosseguir para a impressão do DANFE.

c) Exceção na comunicação com a SEFAZ

Sabemos que algumas vezes a SEFAZ pode estar intermitente ou até mesmo fora do ar, entretanto, em alguns casos a operação não pode parar.

Para isso existem alguns métodos para envio em contingência. Você pode conferir os detalhes em: Fluxo - Envio Contingência da NF-e.

2.2) Assíncrono

Para identificarmos que a emissão foi realizada, devemos observar se a tag a seguir:

  • codigoStatusSEFAZ: Retorno 103.

  • descricaoSEFAZ: Retorno Lote recebido com sucesso.

Ela sinaliza que a nossa solicitação foi aceita para processamento da SEFAZ. A seguir temos um exemplo de retorno da chamada assíncrona.

Após termos o retorno da chamada, como falamos anteriormente, é importante armazenar a chaveDeAcesso e, opcionalmente, oiddo documento, pois os utilizaremos para consultarmos o status da nota.

Consultando o status da nota

Para sabermos qual o status da nota, podemos utilizar a API de Consulta por Chave de Acesso. No retorno da chamada, verificaremos os campos statuse descricaoSEFAZ para identificarmos o status atual do documento.

a) Autorização da NF-e

Para identificarmos que a operação foi um sucesso, nós iremos observar algumas tags e seus retornos:​

  • status: key : Retorno 0;

  • status: value : Retorno "Autorizado".

  • statusSEFAZ: Retorno <código>;

  • descricaoSEFAZ: Retorno <descrição>.

b) Rejeição da NF-e

Caso a nota tenha sido rejeitada pela SEFAZ, podemos checar pelos campos do bloco de ações abaixo:

  • status: key: Retorno 3;

  • status: value: Retorno erro;

  • erro: Retorno true.

Se sim, para podermos identificar qual foi a rejeição, verifique os campos no grupo "dadosDoDocumento" abaixo, onde constam o código retornado pela SEFAZ, junto de sua descrição:

  • statusSEFAZ: Retorno <código>;

  • descricaoSEFAZ: Retorno <descrição>.

Abaixo temos um exemplo de retorno para uma nota com rejeição:

Devemos então corrigir o documento e o reenviá-lo na mesma numeração, da mesma maneira que fizemos na primeira etapa do envio.

c) Lote Recebido

Um documento pode ser consultado antes dele ser processado pela SEFAZ. Os campos a serem observados são:

  • status: key: Retorno 6;

  • status: value: Retorno Aguardando Consulta Lote.

Quando isto ocorrer, devemos realizar novamente a rotina de consulta após um período de tempo, para verificar o status do documento.

Terminamos esta etapa 😁. Para seguir, basta selecionar a card abaixo.

Last updated

Was this helpful?