# Fluxo - Envio Normal NFC-e

A emissão de uma NFC-e abrange as operações comerciais de venda presencial ou venda para entrega em domicílio a consumidor final (*delivery*).

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

## APIs Essenciais 💡

* **Envio Completo do documento**: [/api/nfce/envioxmlnormal](/invoisys/endpoints/emissao-notas/nfc-e-1/api-envio-normal-completo-da-nfc-e.md)
* **Envio Híbrido do documento**: [/api/nfce/enviohibridanormal](/invoisys/endpoints/emissao-notas/nfc-e-1/api-envio-normal-hibrido-da-nfc-e.md)
* **Gerar DANFE**: [/api/nfce/getdanfe/{id}](/invoisys/endpoints/emissao-notas/nf-e/api-danfe-por-id.md)

## APIs Opcionais 🥈

* **Consulta do documento por ID**: [/api/nfce/{id}](/invoisys/endpoints/emissao-notas/nfc-e-1/api-consulta-nfc-e-por-id.md)
* **Consulta do documento por Chave de Acesso**: [/api/nfce/getbychavedeacesso/{chave}](/invoisys/endpoints/emissao-notas/nfc-e-1/api-consulta-nfc-e-por-chave-de-acesso.md)
* **Consulta do documento por Número/Série**: [/api/nfce/getby\_numero\_serie\_cnpj/{numero}/{serie}/{cnpj}/{ambiente}](/invoisys/endpoints/emissao-notas/nfc-e-1/api-consulta-nfc-e-por-numero-e-serie.md)
* **Consulta paginada de NFC-es:** [/api/nfce/{pagina}/{n\_itens}](/invoisys/endpoints/emissao-notas/nfc-e-1/api-consulta-paginada-de-nfc-es.md)

## Etapas e suas APIs

Para detalharmos melhor a operação, a separamos em tópicos, [porém você consegue ver o fluxo completo aqui](https://drive.google.com/open?id=1hruHx_lrPDH66bC69pRNhYKHpg8OvSgt) 📝.

### 1) Operação de Venda

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 Completo](/invoisys/endpoints/emissao-notas/nfc-e-1/api-envio-normal-completo-da-nfc-e.md) ou a [API de Envio Híbrida](/invoisys/endpoints/emissao-notas/nfc-e-1/api-envio-normal-hibrido-da-nfc-e.md). Tendo ele em mãos, podemos partir para a emissão da nota.

A sua missão é gerar os dados da operação, como Produtos, Pagamentos, etc., e criar um XML (Modelo Completo) ou JSON (Modelo Híbrido) que será mandado em nossas APIs.

Assim que recebermos a chamada, faremos algumas validações no XML. Se estiver correto, assinaremos o mesmo e o transmitiremos à SEFAZ.

![](/files/-LvLDuxGeNHRsfTxNUbt)

### 2) Retorno da chamada

Todo documento enviado para a SEFAZ gera um mensagem de retorno. Esta mensagem será recebida por nós, e na mesma chamada, iremos retorna-lo para você, junto dos dados do documento.

![](/files/-LwDyxJ8uIV2koQVnZQM)

Aqui existem algumas informações que podem ser interessantes você guardar, como a `chaveDeAcesso` e o `id` do documento criado em nossa base. Estas informações são importante, já que elas são utilizados em outras APIs.

![](/files/-LwDz4SSKaiuOJPvLgT3)

### a) Autorização da NFC-e

Para identificarmos que foi um sucesso, podemos observar as seguintes tags:

* Tags do bloco `acoes` :&#x20;
* `corrigirDocumento` : Retorno `false`.
* `codigoStatusSEFAZ` : Retorno `100`Autorizado o uso da NF-e);
* `documentoComErro` : Retorno `false`

A seguir temos um exemplo de um retorno após a autorização de um documento:

{% tabs %}
{% tab title=" Response code: 201 Created" %}

```javascript
{
  "dadosDoDocumento": {
    ...
    "dataHoraEmissao": "2019-11-13T15:28:57.7912076Z",
    "dataDeAutorizacao": "2019-11-13T15:28:58Z",
    "documentoComErro": false,
    "codigoStatusSEFAZ": "100",
    "descricaoStatusSEFAZ": "Autorizado o uso da NF-e",
    "protocoloSEFAZ": "113190007596784",
    ...
    "status": {
      "key": 0,
      "value": "Autorizado"
    }
  },
  "acoes": {
    "corrigirDocumento": false,
    "cancelar": false,
    "enviarContingencia": false,
    "tentarNovamenteMaisTarde": false,
    "entrarEmContatoComSuporteImediatamente": false,
    "emitirProximoDocumentoNormal": true
  },
  "excecao": null
}

```

{% endtab %}

{% tab title="Descrição dos campos do retorno:" %}

```javascript
"dadosDoDocumento": Grupo onde serão retornadas as informações da NF-e após processamento. 
   
     "id": ID gerado pela plataforma da Invoisys. O ID é único por nota, é necessário que a aplicação do integrador armazene esse dado pois o mesmo será utilizado em rotinas com outras APIs. 

    "chaveDeAcesso": Chave de acesso da NF-e.

    "dataHoraEmissao": Data e hora da emissão da NF-e.

    "dataDeAutorizacao": Data e hora de autorização de NF-e.

    "documentoComErro": Campo que indica se o documento está com erro.

    "codigoStatusSEFAZ": Código do status do documento de acordo com a SEFAZ. 

    "descricaoStatusSEFAZ": Descrição do status do documento de acordo com a SEFAZ.

    "protocoloSEFAZ": Protocolo da requisição na SEFAZ.

    "urlConsultaViaQRCode": URL para consulta do QR Code na SEFAZ (NFC-e).

    "urlConsultaViaChaveDeAcesso": URL de consulta da chave de acesso da NF-e na SEFAZ.

    "codigoMensagemSEFAZ": código da mensagem da SEFAZ do status do documento.

    "descricaoMensagemSEFAZ": Descrição da mensagem da SEFAZ do status do documento. 

Bloco de Ações: 

O sistema Invoisys interpreta o retorno da SEFAZ e complementa com um "bloco de ações", exibindo ao sistema integrador diversas orientações para guiar os próximos passos da operação: 

  },
  "acoes": {
    "corrigirDocumento": false/true, Indica se o documento precisa ou não ser corrigido.

    "cancelar": false/true, Indica se o documento precisa ou não ser cancelado/Inutilizado.

    "enviarContingencia": false/true, Indica se será necessário emitir eo próximo documento em modo de contingência. 

    "tentarNovamenteMaisTarde": false/true, Indica se houve um timeout e será necessário tentar novamente mais tarde.

    "entrarEmContatoComSuporteImediatamente": false/true, erro desconhecido, necessário contatar o suporte. 
  },
  "excecao": Descrição de erro, caso tenha ocorrido uma exceção na requisição. 
}
```

{% endtab %}
{% endtabs %}

#### 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](/invoisys/endpoints/emissao-notas/nf-e/api-danfe-por-id.md) ou, se preferir, utilizar o seu modelo de impressão.

{% hint style="info" %}

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

Neste caso, a opção é realizar o cancelamento do documento, e realizar a emissão de uma nova NFC-e.

Mas se atente, pois o prazo máximo do Cancelamento é de 30 minutos!
{% endhint %}

### b) Rejeição da NFC-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 a tag:

* `acoes: corrigirDocumento`: 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 o troco incorreto:

{% tabs %}
{% tab title="Response code: 201 Created" %}

```javascript
{
  "dadosDoDocumento": {
    ...
    "dataHoraEmissao": "2019-11-13T15:28:57.7912076Z",
    "dataDeAutorizacao": null,
    "documentoComErro": false,
    "codigoStatusSEFAZ": "869",
    "descricaoStatusSEFAZ": "Rejeicao: Valor do troco incorreto",
    ...
    "status": {
      "key": 3,
      "value": "Erro"
    }
  },
  "acoes": {
    "corrigirDocumento": true,
    "cancelar": false,
    "enviarContingencia": false,
    "tentarNovamenteMaisTarde": false,
    "entrarEmContatoComSuporteImediatamente": false,
    "emitirProximoDocumentoNormal": true
  },
  "excecao": null
}

```

{% endtab %}
{% endtabs %}

Corrigido? Então vamos voltar para [primeira etapa do envio](/invoisys/getting-started/documentos-fiscais/emissao/nfc-e/fluxo-operacional/envio-normal-nfc-e-fluxo-completo.md#1-operacao-de-venda). Se tudo estiver certo, a emissão será realizada, a SEFAZ a autorizará e poderemos prosseguir para a [impressão do DANFE](/invoisys/getting-started/documentos-fiscais/emissao/nf-e/teste-fluxos-operacionais/envio-normal-modelo-completo.md#impressao-da-nf-e).

{% hint style="warning" %}
**Seu documento apresentou falha de comunicação com a SEFAZ?**

Não se preocupe, nós falamos disto no [Fluxo de Envio em Contingência](/invoisys/getting-started/documentos-fiscais/emissao/nfc-e/fluxo-operacional/envio-contingencia-sefaz-nfc-e-flux.md)!
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://integracao.gitbook.io/invoisys/getting-started/documentos-fiscais/emissao/nfc-e/fluxo-operacional/envio-normal-nfc-e-fluxo-completo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
