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.
Atualizado em
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, 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.
- 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_contribuinteesem_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 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
curl -X GET "https://api.fiscalapi.com.br/api/consultar-cnd?uf=MT&cnpj=12345678000195" \
-H "X-API-Key: fapi_sua_chave_aqui"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);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"])$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();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();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:
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 ou 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
{
"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.
API de certidões (CND, CNDT, CRF) · Planos e preços
Esta pagina foi util?