> 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/nfs-e/fluxo-operacional/fluxo-envio-assincrono-da-nfs-e.md).

# Fluxo - Envio Assíncrono da NFS-e

A emissão de uma NFS-e abrange as operações comerciais de uma prestação de serviços.&#x20;

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

## Endpoints Essenciais 💡

* **Envio Completo do documento**: [/api/nfse/enviocompleto\_async](/invoisys/endpoints/emissao-notas/nfs-e-1/api-envio-completo-do-rps.md)
* **Consultar RPS na Prefeitura**: [/api/nfse/consultarenviorps](/invoisys/endpoints/emissao-notas/nfs-e-1/api-consultar-rps-na-prefeitura.md)​

## Endpoints Opcionais 🥈

* **Consultar NFS-e por Id Documento:** [**/**&#x61;pi/nfse/{id}](/invoisys/endpoints/emissao-notas/nfs-e-1/api-consultar-nfs-e-por-id-rps.md)

## Etapas e seus endpoints

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=1Gy3r24D1GxZhITUSO8eP6654e1zMYb7u) 📝.

### 1) Operação da Prestação de Serviço

Antes de iniciamos a emissão da nota, é necessário estar com um [token](/invoisys/endpoints/autorizacao/autenticacao.md) de acesso válido, pois este será utilizado no cabeçalho da chamada do [Envio Assíncrono da NFS-e](/invoisys/endpoints/emissao-notas/nfs-e-1/api-envio-completo-do-rps.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 Serviço, Número/Série do RPS, etc., e criar um JSON que será repassado para nós.

Assim que recebermos a chamada, faremos algumas validações, e se estiver correto, assinaremos o mesmo e o transmitiremos à Prefeitura.

![](/files/-LvGLvrSLkpK92erVz1O)

### 2) Retorno da Chamada

Todo documento enviado para a SEFAZ gera um mensagem de retorno. Esta mensagem será recebida por nós e te repassaremos. Como se trata de uma operação assíncrona, o que você irá ver são as informações principais da NFS-e.

![](/files/-LwKTqgQEf997V-QWWDh)

As informações que você deverá se atentar em guardar é o `id`. Abaixo temos um exemplo de retorno de uma operação assíncrona:

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

```javascript
{
  "id": "4600",
  "excecao": null
}
```

{% endtab %}
{% endtabs %}

Posteriormente você poderá realizar a consulta destes documentos por nosso endpoint de [Consulta por ID documento](/invoisys/endpoints/emissao-notas/nfs-e-1/api-consultar-nfs-e-por-id-rps.md) para obter novamente o retorno completo destas NFS-es.

### 3) Consulta do RPS na Prefeitura

Com os dados em mãos, devemos realizar a consulta do status desta nota. Para isto, usamos a [API de Consulta do Envio RPS](/invoisys/endpoints/emissao-notas/nfs-e-1/api-consultar-rps-na-prefeitura.md) para verificar na Prefeitura qual a situaçao do do documento.

![](/files/-LwKU--UpM24E7ZlVW_j)

Entre os cenários previstos na consulta de uma NFS, estão:

[a) Autorização](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-envio-assincrono-da-nfs-e.md#a-autorizacao-da-nfs-e);\
[b) Rejeição](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-envio-assincrono-da-nfs-e.md#b-rejeicao-da-nfs-e);\
[c) Aguardando Processamento](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-envio-assincrono-da-nfs-e.md#c-aguardando-processamento).

![](/files/-LwKUBL9nA5ASEQuouzm)

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

Para identificarmos que foi um sucesso, devemos checar as informações abaixo de nosso retorno:

* `status`: Retorno `Autorizado`;
* `sucesso`: Retorno `true`.

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

{% tabs %}
{% tab title="Response code: OK 200" %}

```javascript
{
  "numeroNFSe": 68,
  "sucesso": true,
  "autenticidade": null,
  "linkImpressao": "https://itapira.sigiss.com.br/nfe_ver.php?id=1840098&id_cadastro=156909&hash=YMI9VDS9&nfe=68",
  "xml": null,
  "excecao": null,
  "status": "Autorizado"
}
```

{% endtab %}
{% endtabs %}

#### Impressão da NFS-e

Se a nota estiver autorizada, então podemos realizar a impressão do DANFE. Nós deixamos disponivel na tag `linkImpressao` um link de acesso criado pela Prefeitura que possuirá este recibo.

{% 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 nota NFS-e.
{% endhint %}

### b) Rejeição da NFS-e

Alguns imprevistos ocorrem. Para identificarmos se o documento apresentou uma rejeição, devemos checar se a

* `sucesso`: Retorno `false`.
* `status`: Retorno `Erro`.

![](/files/-LwKUMoTn1YHp81XAK36)

Realmente houve um erro? Então podemos checar a seguintes informações retornada para você:

* `excecoes`: Retorno da rejeição, informado pela Prefeitura;
* `solucao`: Caso a Prefeitura disponibilize, informando como corrigir a rejeição.

No exemplo a seguir vemos uma nota que foi rejeitada por estar com um código de serviço inválido:

{% tabs %}
{% tab title="Response code: OK 200" %}

```javascript
{
  "id": 1220,
  "numeroNFSe": 0,
  "numeroRPS": 6,
  "serieRPS": "6",
  "status": "Erro",
  "sucesso": false,
  "linkImpressao": null,
  "codigoVerificacao": null,
  "excecoes": [
    "E15 Código do Serviço não encontrado, favor informar apenas números."
  ],
  "solucao": null
}
```

{% endtab %}
{% endtabs %}

Corrigido? Então vamos voltar para [primeira etapa do envio](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-envio-assincrono-da-nfs-e.md#1-operacao-da-prestacao-de-servico). Se desta vez tudo estiver certo, a Prefeitura irá autorizar esta NFS-e.

### c) Aguardando Processamento

Uma Prefeitura pode demorar um tempo até que um RPS seja processado. Quando isto ocorre, nós te mostraremos as seguintes informações:

* `sucesso`: Retorno `false`;
* `status`: Retorno `Aguardando consulta lote`.

{% tabs %}
{% tab title="Response code: OK 200" %}

```javascript
{
  "id": 1220,
  "numeroNFSe": 0,
  "numeroRPS": 6,
  "serieRPS": "6",
  "status": "Aguardando consulta lote",
  "sucesso": false,
  "linkImpressao": null,
  "codigoVerificacao": null,
  "excecoes": null,
  "solucao": null
}
```

{% endtab %}
{% endtabs %}

Neste cenário, você deverá esperar um momento antes de realizar uma nova [tentativa de consulta do RPS](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-envio-assincrono-da-nfs-e.md#3-consulta-do-rps-na-prefeitura).&#x20;

{% hint style="info" %}
É necessário implementar essa rotina de consulta do documento, atentando-se aos seguintes detalhes:&#x20;

* [x] Não requisitar outra antes de obter uma reposta à consulta anterior.
* [x] Manter a nota na rotina de consulta, até receber o status final dela (Erro/Autorizado).
* [x] Agendar as consultas com um espaço de tempo entre as mesmas.
* [x] Interromper a rotina de consulta assim que finalizada a operação (status final do documento).
  {% endhint %}

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