> For the complete documentation index, see [llms.txt](https://integracao.gitbook.io/invoisys/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://integracao.gitbook.io/invoisys/getting-started/documentos-fiscais/emissao/nfc-e/fluxo-operacional/envio-normal-nfc-e-fluxo-completo.md).

# 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 %}
