# API de CND estadual: certidão negativa de débitos de ICMS por UF

> Consulta a Certidão Negativa de Débitos estadual (CND de ICMS) de um CNPJ ou CPF em um estado e devolve situação, validade e, quando disponível, o PDF.

URL: https://docs.fiscalapi.com.br/docs/cnd/consultar-cnd
Atualizado em 12/11/2026

`GET /api/consultar-cnd?uf=XX` devolve a situação da Certidão Negativa de Débitos estadual (CND de ICMS) de um CNPJ ou CPF no estado informado, com validade, protocolo e, quando o estado fornece, o PDF em base64, e conta como **1 consulta** (de R$ 0,025 a R$ 0,67, conforme o plano).

Funciona nas 27 UFs. A certidão é emitida pela Secretaria de Fazenda (ou Economia) de cada estado; a API devolve o resultado num formato único. Para as 27 UFs de uma vez, use [CND em todos os estados](/docs/cnd/consultar-cnd-todos), que também conta como 1 consulta.

## ## Resumo

| Item       | Valor                                                                                                                                                                     |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Endpoint   | `GET https://api.fiscalapi.com.br/api/consultar-cnd`                                                                                                                      |
| Você envia | `uf` + `cnpj` ou `cpf`                                                                                                                                                    |
| Volta      | `status` (`negativa`, `positiva`, `positiva_com_efeitos_de_negativa`, `nao_contribuinte`, `sem_certidao` ou `erro`), validade, emissão, protocolo e PDF quando disponível |
| Formato    | JSON                                                                                                                                                                      |

## ## Quanto custa cada chamada

| Chamada                             | Conta como | Lite    | Starter | Pro      | Enterprise |
| ----------------------------------- | ---------- | ------- | ------- | -------- | ---------- |
| 1 UF (`/api/consultar-cnd`)         | 1 consulta | R$ 0,67 | R$ 0,10 | R$ 0,065 | R$ 0,025   |
| 27 UFs (`/api/consultar-cnd-todos`) | 1 consulta | R$ 0,67 | R$ 0,10 | R$ 0,065 | R$ 0,025   |

Valores por consulta dentro da franquia mensal; recarga a R$ 0,12 (Starter), R$ 0,07 (Pro) ou R$ 0,02 (Enterprise). Veja [Planos e limites](/docs/referencia/plans-and-limits).

* **Não é cobrada:** erro HTTP e resultado `erro`, que é quando o portal do estado está fora do ar ou recusa o pedido.
* **É cobrada:** toda resposta do órgão, inclusive `positiva`, `nao_contribuinte` e `sem_certidao` (o órgão respondeu, mas não emitiu a certidão).

## ## O que muda de um estado para outro

Cada estado tem a sua certidão e as suas regras. Alguns exemplos:

| UF | Particularidade                                                                                                                                              |
| -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| SP | Desde 14/10/2026 a CND é única da SEFAZ e da PGE, emitida em dias úteis, das 6h às 21h. Pelo CNPJ base, vale para matriz e filiais.                          |
| RJ | A certidão pela internet (CRF Unificada) é só para quem **não** é contribuinte do ICMS. Inscrito no ICMS emite com certificado digital, no portal do estado. |
| MG | O documento é a CDT (Certidão de Débitos Tributários).                                                                                                       |
| RS | O documento é a Certidão de Situação Fiscal.                                                                                                                 |
| GO | O documento é a Certidão de Débito em Dívida Ativa (negativa, positiva ou positiva com efeito de negativa).                                                  |
| RN | O documento é a Certidão Negativa Conjunta.                                                                                                                  |
| TO | Validade de 30 dias.                                                                                                                                         |

## ## Autenticação

Envie sua chave no header `X-API-Key`. Veja [Autenticação](/docs/getting-started/authentication) para detalhes.

## ## Parâmetros de consulta

Você deve informar pelo menos um dos parâmetros `cpf` ou `cnpj`.

| Name          | Type    | Required | Description                                                                                        |
| ------------- | ------- | -------- | -------------------------------------------------------------------------------------------------- |
| `uf`          | string  | Sim      | Sigla do estado (ex: MT, SP, RJ).                                                                  |
| `cpf`         | string  | Não      | CPF do contribuinte (somente números, 11 dígitos).                                                 |
| `cnpj`        | string  | Não      | CNPJ do contribuinte (somente números, 14 dígitos).                                                |
| `emitir_nova` | boolean | Não      | `true` vai ao órgão de novo, sem usar a certidão consultada nas últimas 24 horas. Padrão: `false`. |

## ## Exemplos

### ### CND estadual de um CNPJ em uma UF

<Tabs items="[&#x22;curl&#x22;, &#x22;JavaScript&#x22;, &#x22;Python&#x22;, &#x22;PHP&#x22;, &#x22;C#&#x22;]">
  <Tab value="curl">
    ```bash
    curl -X GET "https://api.fiscalapi.com.br/api/consultar-cnd?uf=MT&cnpj=12345678000195" \
      -H "X-API-Key: fapi_sua_chave_aqui"
    ```
  </Tab>

  <Tab value="JavaScript">
    ```javascript
    const response = await fetch(
      "https://api.fiscalapi.com.br/api/consultar-cnd?uf=MT&cnpj=12345678000195",
      { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
    );
    const data = await response.json();
    console.log(data.result.status);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    import requests

    response = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-cnd",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"uf": "MT", "cnpj": "12345678000195"},
    )
    data = response.json()
    print(data["result"]["status"])
    ```
  </Tab>

  <Tab value="PHP">
    ```php
    $response = Http::withHeaders([
        'X-API-Key' => 'fapi_sua_chave_aqui',
    ])->get('https://api.fiscalapi.com.br/api/consultar-cnd', [
        'uf' => 'MT',
        'cnpj' => '12345678000195',
    ]);
    $data = $response->json();
    ```
  </Tab>

  <Tab value="C#">
    ```csharp
    var client = new HttpClient();
    client.DefaultRequestHeaders.Add("X-API-Key", "fapi_sua_chave_aqui");
    var response = await client.GetAsync(
        "https://api.fiscalapi.com.br/api/consultar-cnd?uf=MT&cnpj=12345678000195"
    );
    var data = await response.Content.ReadAsStringAsync();
    ```
  </Tab>
</Tabs>

### ### Pedir a certidão de novo ao órgão

Por padrão, o mesmo documento consultado de novo em até 24 horas devolve a certidão da consulta anterior (`cached: true`). Com `emitir_nova=true`, a API vai ao órgão outra vez, mesmo que a empresa já tenha uma certidão vigente:

```bash
curl -X GET "https://api.fiscalapi.com.br/api/consultar-cnd?uf=MT&cnpj=12345678000195&emitir_nova=true" \
  -H "X-API-Key: fapi_sua_chave_aqui"
```

Se a certidão do documento foi obtida do órgão há até 15 minutos, a API devolve essa, sem ir de novo. Em MG, a certidão emitida nos últimos 7 dias e ainda válida continua sendo devolvida. Fora do horário de emissão de SP, volta a certidão vigente.

## ## Resposta

### ### Campos de nível superior

| Campo           | Tipo    | Descrição                                                  |
| --------------- | ------- | ---------------------------------------------------------- |
| `request_id`    | string  | Identificador único da requisição (UUID).                  |
| `document`      | string  | Documento enviado na consulta.                             |
| `document_type` | string  | Tipo do documento: `cpf` ou `cnpj`.                        |
| `uf`            | string  | UF consultada.                                             |
| `cached`        | boolean | Indica se o resultado veio do cache.                       |
| `source_status` | object  | Status da fonte (`status`, `error_code`, `error_message`). |
| `result`        | object  | Dados da certidão.                                         |

### ### Campos de `result`

| Campo                 | Tipo   | Descrição                                                                                                                                                                                                                                                                                      |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status`              | string | Status normalizado da certidão. Veja tabela abaixo.                                                                                                                                                                                                                                            |
| `status_raw`          | string | Status original retornado pela SEFAZ.                                                                                                                                                                                                                                                          |
| `validade`            | string | Data de validade da certidão, como o estado informa (em geral `DD/MM/AAAA`).                                                                                                                                                                                                                   |
| `validade_iso`        | string | Data de validade em ISO 8601 (`YYYY-MM-DD`).                                                                                                                                                                                                                                                   |
| `emissao`             | string | Data de emissão da certidão, como o estado informa (em geral `DD/MM/AAAA`).                                                                                                                                                                                                                    |
| `emissao_iso`         | string | Data de emissão em ISO 8601 (`YYYY-MM-DD`).                                                                                                                                                                                                                                                    |
| `protocolo`           | string | Número do protocolo da certidão.                                                                                                                                                                                                                                                               |
| `pdf_base64`          | string | PDF da certidão codificado em base64 (quando disponível).                                                                                                                                                                                                                                      |
| `url_verificacao`     | string | URL para verificação da autenticidade (quando disponível).                                                                                                                                                                                                                                     |
| `codigo_autenticacao` | string | Código impresso na certidão para conferir a autenticidade no site do órgão emissor. Hoje preenchido para **MT** (o "Número de Autenticação" do rodapé, conferido em [www.sefaz.mt.gov.br](http://www.sefaz.mt.gov.br) ou [www.pge.mt.gov.br](http://www.pge.mt.gov.br)); vazio nas demais UFs. |

### ### Valores de status da CND

| Status                             | Significado                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `negativa`                         | O contribuinte **não possui débitos** de ICMS no estado. Situação regular.                                                                                                                                                                                                                                                                                                                     |
| `positiva`                         | O contribuinte **possui débitos** de ICMS pendentes no estado.                                                                                                                                                                                                                                                                                                                                 |
| `positiva_com_efeitos_de_negativa` | O contribuinte possui débitos, mas estes estão **suspensos ou garantidos** (por recurso administrativo, decisão judicial, parcelamento, etc.). Tem os mesmos efeitos práticos de uma certidão negativa.                                                                                                                                                                                        |
| `nao_contribuinte`                 | O contribuinte **não possui inscrição estadual** no estado consultado, portanto não é contribuinte de ICMS naquela UF.                                                                                                                                                                                                                                                                         |
| `sem_certidao`                     | O órgão **respondeu, mas não emitiu certidão**. Não é falha de coleta (`erro`) e não equivale a `positiva`: quando há débito exigível a SEFAZ emite Certidão Positiva. Aqui o órgão apenas não atesta a regularidade no canal público, e o motivo (que pode ser cadastro, declaração em falta ou débito) só aparece na área autenticada do contribuinte. O texto do órgão vem em `status_raw`. |
| `erro`                             | Ocorreu um erro ao consultar a CND naquele estado. Verifique `source_status` para detalhes.                                                                                                                                                                                                                                                                                                    |

### ### Exemplo de resposta

```json
{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "document": "12345678000195",
  "document_type": "cnpj",
  "uf": "MT",
  "cached": false,
  "source_status": {
    "status": "success",
    "error_code": "",
    "error_message": ""
  },
  "result": {
    "status": "negativa",
    "status_raw": "Certidao Negativa",
    "validade": "13/09/2026",
    "validade_iso": "2026-09-13",
    "emissao": "13/03/2026",
    "emissao_iso": "2026-03-13",
    "protocolo": "123456",
    "pdf_base64": "...",
    "url_verificacao": "",
    "codigo_autenticacao": "ABCD1234EFGH5678"
  }
}
```

## ## Códigos de erro

| Código                  | HTTP Status | Descrição                                      |
| ----------------------- | ----------- | ---------------------------------------------- |
| `PARAMETRO_AUSENTE`     | 400         | Parâmetro obrigatório não foi informado.       |
| `PARAMETRO_CONFLITANTE` | 400         | Mais de um documento (cpf e cnpj) foi enviado. |
| `UF_NAO_SUPORTADA`      | 400         | A UF informada não é suportada.                |
| `SITE_INDISPONIVEL`     | 503         | O serviço de CND do estado está indisponível.  |
| `ERRO_INTERNO`          | 500         | Erro interno no servidor.                      |

## ## Integração com ERPs

A chamada é um `GET` com o header `X-API-Key`, em geral na homologação de fornecedores ou antes de liberar crédito a um cliente. Não existe conector pronto.

| Sistema                      | Como chamar a API REST                                                                                      |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------- |
| TOTVS Protheus               | Num fonte ADVPL/TLPP, com a classe `FWRest` ou a função `HttpGet`.                                          |
| SAP (ECC, S/4HANA)           | Em ABAP, com `cl_http_client`, ou por um fluxo no SAP Integration Suite.                                    |
| Sankhya, Senior, Omie, Bling | Por um serviço intermediário (script, n8n, Make) que chama a FiscalAPI e grava o resultado pela API do ERP. |
| Odoo                         | Num módulo próprio em Python, com `requests`.                                                               |

## ## Perguntas frequentes

### ### Existe API de CND estadual?

Sim. `GET /api/consultar-cnd` recebe a UF e o CNPJ ou CPF e devolve em JSON a situação da certidão negativa de débitos de ICMS daquele estado, com validade, protocolo e o PDF quando o estado fornece. Funciona nas 27 UFs.

### ### Quanto custa a CND estadual por API?

1 consulta por chamada: R$ 0,025 no Enterprise, R$ 0,065 no Pro, R$ 0,10 no Starter e R$ 0,67 no Lite, dentro da franquia. As 27 UFs de uma vez também contam como 1 consulta. Falha ou recusa do portal do estado não é cobrada.

### ### A API devolve o PDF da certidão?

Sim, no campo `pdf_base64`, quando o estado entrega o documento. Quando o estado não fornece PDF, o campo vem vazio e o resultado traz a situação, a validade e o protocolo.

### ### O que é `positiva_com_efeitos_de_negativa`?

Há débito, mas ele está suspenso ou garantido (parcelamento, recurso, decisão judicial). Na prática, vale como certidão negativa.
