> 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-cancelamento-da-nfs-e.md).

# Fluxo - Cancelamento da NFS-e

O cancelamento permite ao contribuinte invalidar uma nota fiscal já autorizada, nos casos em que o serviço não foi realizado ou houve erro na emissão da NFS-e.

## API's Essenciais 💡​ <a href="#apis-essenciais" id="apis-essenciais"></a>

* **Cancelar documento por CNPJ**: [/api/nfse/cancelarnfsecnpj](/invoisys/endpoints/emissao-notas/nfs-e-1/api-cancelamento-da-nfs-e-por-cnpj-prestador-de-servico.md)​

## API's Opcionais 🥈

* **Consulta da 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 API's

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

### 1) Emitindo o Cancelamento

Da mesma maneira que no [Envio Assíncrono da NFS-e](/invoisys/endpoints/emissao-notas/nfs-e-1/api-envio-completo-do-rps.md), também precisamos nos atentar para termos um [token de acesso](/invoisys/endpoints/autorizacao/autenticacao.md) válido.

Tendo ele em mãos devemos então utilizaremos o endpoint:

* [API - Cancelar NFS-e por CNPJ Prestador de Serviço](/invoisys/endpoints/emissao-notas/nfs-e-1/api-cancelamento-da-nfs-e-por-cnpj-prestador-de-servico.md).

Com base nos campos do endpoint acima, devemos preparar o JSON com as informações e então realizar a chamada da API.

![](/files/-LvH0qKPoJsdl3eMM8IP)

{% hint style="warning" %}

#### Prazo máximo para cancelamento!

**1) Antes do recolhimento do ISS:**\
O cancelamento da NFS-e poderá ser feito desde que não tenha ultrapassado o prazo de *6 meses* contados da data de emissão da NFS-e.

**2) Após o recolhimento do ISS:**\
O prazo do cancelamento varia para cada município. O serviço deve NÃO ter sido prestado, e um processo administrativo deverá ser aberto na devida Prefeitura.
{% endhint %}

### 2) Retorno da chamada

Conforme falamos no tópico anterior, o retorno da chamada da API variará de acordo com o status do documento na Prefeitura. É com base nesse retorno que entendemos o que deve ser feito após a emissão do mesmo.

Assim como no [Envio Assíncrono](/invoisys/endpoints/emissao-notas/nfs-e-1/api-envio-completo-do-rps.md), nele existem algumas informações que podem ser interessantes você guardar, como o `id` do documento criado em nossa base, pois são utilizados em outras APIs.

![](/files/-LwKUiJpxXsOMgTjgN1E)

Com base no retorno podemos chegar a 2 cenários:

[a) Cancelamento da NFC-e (Sucesso)](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-cancelamento-da-nfs-e.md#a-cancelamento-da-nfs-e-sucesso); [b) Rejeição no Cancelamento](/invoisys/getting-started/documentos-fiscais/emissao/nfs-e/fluxo-operacional/fluxo-cancelamento-da-nfs-e.md#b-rejeicao-no-cancelamento).

![](/files/-LwKUlK4vHpgPoz9OOs1)

### a) Cancelamento da NFS-e (Sucesso)

Cenário de sucesso na chamada da API. Para isso devemos observar as seguintes informações:

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

Veja no exemplo abaixo:

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

```javascript
{
  "id": 1486
  ...
  "status": "Cancelado",
  "sucesso": true,
  ...
}
```

{% endtab %}
{% endtabs %}

![](/files/-LvH0yVlGw58jQk42GsY)

### b) Rejeição no Cancelamento

Caso o cancelamento possua algum erro, iremos retornar para você o que ocorreu, seja por conta de validação interna ou por alguma validação da Prefeitura. Abaixo um exemplo de um retorno:

```javascript
"Documento não localizado, ou com status diferente de autorizado."
```

![](/files/-LwKUpGGtoxRAb7umBD9)

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