# Como consultar inscrição estadual no Excel?

> Dois caminhos: suba a planilha no painel e baixe o resultado (até 20.000 linhas, sem programar), ou traga a consulta para dentro da sua planilha com o Power Query.

URL: https://docs.fiscalapi.com.br/docs/guias/excel
Atualizado em 07/11/2026

Suba a planilha no painel da FiscalAPI e baixe outro Excel com a inscrição estadual e a situação de cada CNPJ, CPF ou IE nos 27 estados. Sem fórmula, sem macro, sem programar.

* **Custo:** 1 consulta por linha, de R$ 0,025 a R$ 0,67 conforme o plano ([tabela](#quanto-custa)).
* **Grátis para testar:** 10 consultas avulsas por mês de IE em um estado e de CNPJ, no painel e pela API ([condições](#quanto-custa)). A planilha em massa e o Power Query são pagos.
* **Para quem quer o resultado dentro da própria planilha:** Power Query chamando a API ([caminho 2](#caminho-2-power-query-chamando-a-api)).
* **Comece:** [crie a conta no painel](https://app.fiscalapi.com.br?utm_source=docs\&utm_medium=docs\&utm_campaign=guia-excel).

## Caminho 1: planilha no painel, sem programar

1. Entre no [painel](https://app.fiscalapi.com.br?utm_source=docs\&utm_medium=docs\&utm_campaign=guia-excel) e abra a consulta de IE em massa.
2. Baixe o modelo `.xlsx` e preencha a coluna de documentos. CNPJ e CPF podem vir misturados; numa linha com número de IE, marque **Sim** na coluna que pergunta se é inscrição estadual.
3. Envie. O painel mostra quantas consultas o arquivo vai usar; se o saldo não cobrir tudo, você escolhe consultar só as primeiras.
4. Baixe o Excel com o resultado.

Até **20.000 linhas** por arquivo de até **5 MB**. Documento repetido é consultado uma vez só. Formate a coluna como texto para não perder zeros à esquerda. Mais em [consulta de IE em massa](https://fiscalapi.com.br/consulta-ie-em-massa/).

## Caminho 2: Power Query chamando a API

Para quando o resultado precisa ficar dentro da sua planilha. Passos do Excel do Microsoft 365 para Windows.

<Callout type="warn">
  **Cada atualização cobra de novo.** **Atualizar** (ou **Atualizar Tudo**) consulta todas as linhas outra vez, e cada linha é uma consulta. O editor do Power Query também chama a API para montar a prévia. Teste com 2 ou 3 linhas e, com o resultado pronto, cole como valores.
</Callout>

### 1\. Prepare a tabela

Ponha os CNPJs numa coluna `CNPJ`, selecione os dados e tecle `Ctrl+T`. Em **Design da Tabela**, dê à tabela o nome `Documentos`.

### 2\. Crie a função que chama a API

Em **Dados > Obter Dados > De Outras Fontes > Consulta Nula**, abra o **Editor Avançado**, apague o conteúdo e cole o código. Renomeie a consulta para `ConsultarIE`.

```powerquery
(cnpj as text) as record =>
let
    Chave = "fapi_sua_chave_aqui",
    // Segundos entre chamadas: 12 no Lite e sem plano, 3 no Starter, 1 no Pro, 0.5 no Enterprise
    Pausa = 3,
    Resposta = Function.InvokeAfter(
        () => Web.Contents(
            "https://api.fiscalapi.com.br",
            [
                RelativePath = "api/consultar-ie-todos",
                Query = [cnpj = cnpj],
                Headers = [#"X-API-Key" = Chave],
                ManualStatusHandling = {400, 402, 500, 502}
            ]
        ),
        #duration(0, 0, 0, Pausa)
    ),
    Status = Value.Metadata(Resposta)[Response.Status],
    Json = Json.Document(Resposta),
    Inscricoes =
        if Status = 200 then
            List.Combine(
                List.Transform(
                    Json[results],
                    (estado) => List.Transform(
                        estado[results],
                        (ie) => estado[uf] & ": " & ie[inscricao_estadual] & " (" & ie[situacao_ie] & ")"
                    )
                )
            )
        else
            {},
    Resultado = [
        Status = Status,
        Inscricoes = Text.Combine(Inscricoes, "; "),
        Completo = if Status = 200 then Json[complete] else null,
        Erro = if Status = 200 then null else try Json[message] otherwise try Json[detail] otherwise null
    ]
in
    Resultado
```

O que o código faz:

* Chama `GET /api/consultar-ie-todos?cnpj=...` com o header `X-API-Key`: procura o CNPJ nos 27 estados numa chamada.
* Espera `Pausa` segundos antes de cada chamada, para ficar no limite por minuto do plano.
* Devolve o status HTTP, as inscrições numa linha de texto (`MT: 13.234.567-6 (Habilitado); GO: ...`), o campo `complete` e a mensagem de erro, se houver.
* Em `429` e `503`, o Power Query tenta de novo até três vezes e respeita o `Retry-After` ([Microsoft](https://learn.microsoft.com/en-us/power-query/handling-status-codes)). A `Pausa` reduz o 429, mas não o elimina: o Excel não garante uma linha de cada vez.

Na primeira execução, o Excel pergunta como acessar `https://api.fiscalapi.com.br`: escolha **Anônimo** e **Conectar** (a chave vai no header). Chave errada ou revogada volta `403`, que o Excel mostra como erro de credencial.

<Callout type="warn">
  A chave fica gravada no arquivo: quem receber a planilha consulta com o seu saldo. Se o arquivo sair da empresa, gere outra chave no painel e revogue a antiga.
</Callout>

A consulta nos 27 estados não confere o dígito verificador: CNPJ digitado errado é consultado e cobrado. Confira a lista antes (o caminho 1 já descarta documento inválido).

### 3\. Chame a função para cada linha

Crie outra **Consulta Nula**, abra o **Editor Avançado** e cole:

```powerquery
let
    Fonte = Excel.CurrentWorkbook(){[Name = "Documentos"]}[Content],
    Texto = Table.TransformColumnTypes(Fonte, {{"CNPJ", type text}}),
    Consultas = Table.AddColumn(Texto, "Resultado", each ConsultarIE([CNPJ])),
    Colunas = Table.ExpandRecordColumn(
        Consultas, "Resultado", {"Status", "Inscricoes", "Completo", "Erro"}
    )
in
    Colunas
```

Clique em **Fechar e Carregar**. O resultado vai para uma planilha nova.

Erro `Formula.Firewall`? O Excel está bloqueando o envio dos CNPJs à API pelos níveis de privacidade. Em **Dados > Obter Dados > Opções de Consulta > Pasta de Trabalho Atual > Privacidade**, ajuste os níveis ou ignore-os neste arquivo ([Microsoft](https://learn.microsoft.com/en-us/power-query/data-privacy-firewall)).

### 4\. Evite atualizações sem querer

Em **Dados > Consultas e Conexões**, clique com o botão direito na consulta > **Propriedades** > aba **Uso**. Deixe desmarcadas **Atualizar dados ao abrir o arquivo** e **Atualizar a cada N minutos**. Assim a API só é chamada quando você manda.

### Como ler o resultado

| Coluna       | Significado                                                                                                                                                        |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Status`     | `200`: deu certo. `402`: acabaram as consultas do mês e não há recarga. `400`: CNPJ ausente ou sem dígitos. `500` e `502`: falha na consulta; atualize mais tarde. |
| `Inscricoes` | Inscrições com UF e situação (`Habilitado` ou `Não habilitado`). Vazio com `Status` 200: o CNPJ não tem IE.                                                        |
| `Completo`   | `FALSE`: algum estado não respondeu, e vazio não prova que não há IE.                                                                                              |
| `Erro`       | Mensagem da API quando `Status` não é 200.                                                                                                                         |

Para um estado só, troque `RelativePath` por `"api/consultar"` e `Query` por `[uf = "MT", cnpj = cnpj]`. As inscrições passam a vir direto em `results`, sem o agrupamento por UF ([Consultar IE por UF](/docs/consulta-ie/consultar-ie)).

## Quanto custa

|                                 | Lite    | Starter | Pro      | Enterprise |
| ------------------------------- | ------- | ------- | -------- | ---------- |
| Consulta de IE (1 UF ou 27 UFs) | R$ 0,67 | R$ 0,10 | R$ 0,065 | R$ 0,025   |
| Consultas por minuto            | 5       | 20      | 60       | 120        |

Valores por consulta dentro da franquia mensal. No painel, cada linha é uma consulta; no Power Query, cada linha conta de novo a cada atualização. Erro HTTP (400, 402, 429, 500) não é cobrado. Veja [Planos e limites](/docs/referencia/plans-and-limits).

**Grátis para testar:** conta que nunca assinou plano, sem recarga e com e-mail confirmado, tem 10 consultas avulsas por mês de IE em um estado e de CNPJ, no painel e pela API. A planilha em massa e a consulta nos 27 estados (Power Query) são pagas. [Criar conta](https://app.fiscalapi.com.br?utm_source=docs\&utm_medium=docs\&utm_campaign=guia-excel).

## Perguntas frequentes

### Como consultar inscrição estadual de vários CNPJs no Excel?

Suba a planilha com os CNPJs no painel da FiscalAPI e baixe o Excel com a inscrição estadual e a situação de cada um nos 27 estados. Cabem até 20.000 linhas por arquivo, sem macro e sem programar. Se precisa do resultado dentro da sua planilha, use o Power Query chamando a API.

### Dá para consultar o SINTEGRA direto no Excel?

Dá, pela API: o Power Query chama `GET /api/consultar-ie-todos` com o CNPJ de cada linha e traz as inscrições dos 27 estados para a planilha. É preciso uma chave de API, criada no painel.

### Atualizar a consulta no Excel cobra de novo?

Sim. Cada atualização chama a API para todas as linhas, e cada linha conta como uma consulta. Deixe desligadas as opções de atualizar ao abrir e a cada N minutos, e cole como valores o que não precisa mudar.

### Preciso de macro ou VBA?

Não. A planilha do painel não usa macro, e o Power Query já vem no Excel do Microsoft 365.

### Quanto custa consultar a IE pelo Excel?

De R$ 0,025 (Enterprise) a R$ 0,67 (Lite) por linha. As 10 consultas grátis do mês cobrem a consulta avulsa de IE em um estado e de CNPJ, não a planilha em massa nem a consulta nos 27 estados.
