# Como migrar do SintegrAPI ou do SintegraWS para a FiscalAPI?

> Equivalência de endpoints, parâmetros, campos e erros entre o SintegrAPI, o SintegraWS e a FiscalAPI na consulta de inscrição estadual, com o que muda no código e o custo por consulta pelos preços públicos.

URL: https://docs.fiscalapi.com.br/docs/guias/migrar-sintegrapi-sintegraws
Atualizado em 07/11/2026

Troque o endereço, passe a chave no header `X-API-Key` e leia as inscrições agrupadas por estado em `results[].results`. A consulta continua sendo um `GET` com o documento na query string e resposta em JSON; as tabelas abaixo dão o equivalente de cada parâmetro, campo e erro.

* **Custo:** a consulta de IE nos 27 estados, com endereço, é 1 consulta: de R$ 0,025 a R$ 0,67 conforme o plano ([comparação](#custo-comparado)).
* **Também aceita:** CPF (produtor rural) e IE, além de CNPJ.
* **Comece:** [crie a conta e a chave de API](https://app.fiscalapi.com.br?utm_source=docs\&utm_medium=docs\&utm_campaign=guia-migracao) e siga o [checklist da troca](#checklist-da-troca).

<Callout type="info">
  O lado do SintegrAPI e do SintegraWS foi conferido na documentação e nas páginas de preço públicas de cada um em **07/11/2026** (links em cada seção). Se algo mudou do lado deles depois disso, vale a documentação deles.
</Callout>

## Do SintegrAPI

Fonte: [docs.sintegrapi.com.br/sintegra](https://docs.sintegrapi.com.br/sintegra), [docs.sintegrapi.com.br/errors](https://docs.sintegrapi.com.br/errors) e [sintegrapi.com.br/planos](https://www.sintegrapi.com.br/planos), lidas em 07/11/2026.

### Requisição

| SintegrAPI                                                       | FiscalAPI                                                                                                                      |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `GET https://api.sintegrapi.com.br/consultas/v2/sintegra/{cnpj}` | `GET https://api.fiscalapi.com.br/api/consultar-ie-todos?cnpj={cnpj}`                                                          |
| Header `x-api-key`                                               | Header `X-API-Key` (o nome do header não diferencia maiúsculas)                                                                |
| `uf=BR` (todas as UFs)                                           | `/api/consultar-ie-todos`                                                                                                      |
| `uf=SP` (uma UF)                                                 | `GET /api/consultar?uf=SP&cnpj={cnpj}`                                                                                         |
| Consulta só por CNPJ                                             | Aceita `cnpj`, `cpf` ou `ie`                                                                                                   |
| `endereco=true`                                                  | Endereço sempre vem, sem custo extra                                                                                           |
| `cache`, `cache_strategy`                                        | Sem parâmetro de cache na consulta de IE. A resposta diz o que veio do cache: `cached_ufs` (todas as UFs) ou `cached` (uma UF) |

### Resposta

No SintegrAPI, as inscrições vêm numa lista única `inscricoes_estaduais`. Na FiscalAPI, `results` tem um item por estado, e cada estado tem a sua lista `results` de inscrições.

| SintegrAPI                                                                   | FiscalAPI (`/api/consultar-ie-todos`)                                                |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| `inscricoes_estaduais[]`                                                     | `results[].results[]`                                                                |
| `inscricoes_estaduais[].inscricao_estadual`                                  | `results[].results[].inscricao_estadual`                                             |
| `inscricoes_estaduais[].uf`                                                  | `results[].uf` (ou `uf_ie` em cada inscrição)                                        |
| `inscricoes_estaduais[].ativa` (booleano)                                    | `situacao_ie`: `Habilitado` ou `Não habilitado` (compare sem diferenciar maiúsculas) |
| `inscricoes_estaduais[].tipo_ie`                                             | `tipo_ie`                                                                            |
| `inscricoes_estaduais[].data_status` (`AAAA-MM-DD`)                          | `data_situacao` (texto, por exemplo `15/03/2020`)                                    |
| `razao_social` (raiz)                                                        | `razao_social` em cada inscrição                                                     |
| `endereco.logradouro`, `numero`, `complemento`, `bairro`, `municipio`, `cep` | Mesmos nomes, direto em cada inscrição                                               |
| `endereco.codigo_municipio_ibge`                                             | `municipio_ibge`                                                                     |
| `is_cache`                                                                   | `cached_ufs`                                                                         |
| `request_id`                                                                 | `request_id`                                                                         |
| `success`, `error`, `error_message`                                          | Status HTTP; em erro, `message` ou `detail` no corpo                                 |

A FiscalAPI também traz, em cada inscrição, `nome_fantasia`, `cnae_codigo`, `cnae_descricao`, `regime_apuracao_icms`, `situacao_nfe` e `situacao_contribuinte`. A lista completa está em [Consultar IE por UF](/docs/consulta-ie/consultar-ie#campos-de-cada-resultado-results).

### Erros

| Situação              | SintegrAPI         | FiscalAPI                                                                                                                                           |
| --------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Chave inválida        | `401`, corpo vazio | `403`, `API_KEY_ERROR`                                                                                                                              |
| Sem saldo             | `402`              | `402`                                                                                                                                               |
| Limite de requisições | `429`, corpo vazio | `429` com header `Retry-After`                                                                                                                      |
| Fonte do estado fora  | `503`              | Uma UF: `502` `PROCESSAMENTO_FALHOU` ou `503` `SITE_INDISPONIVEL`. Todas as UFs: `200` com `complete: false` e `source_status` do estado que falhou |

### O código, antes e depois

<Tabs items="[&#x22;Antes (SintegrAPI)&#x22;, &#x22;Depois (FiscalAPI)&#x22;]">
  <Tab value="Antes (SintegrAPI)">
    ```python
    import requests

    r = requests.get(
        "https://api.sintegrapi.com.br/consultas/v2/sintegra/12345678000195",
        headers={"x-api-key": "SUA_CHAVE"},
        params={"uf": "BR", "endereco": "true"},
    )
    for ie in r.json()["inscricoes_estaduais"]:
        print(ie["uf"], ie["inscricao_estadual"], ie["ativa"])
    ```
  </Tab>

  <Tab value="Depois (FiscalAPI)">
    ```python
    import requests

    r = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-ie-todos",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"cnpj": "12345678000195"},
    )
    r.raise_for_status()
    for estado in r.json()["results"]:
        for ie in estado["results"]:
            ativa = ie["situacao_ie"].lower() == "habilitado"
            print(estado["uf"], ie["inscricao_estadual"], ativa)
    ```
  </Tab>
</Tabs>

## Do SintegraWS

Fonte: [documentação da API SINTEGRA do SintegraWS](https://www.sintegraws.com.br/api/documentacao-api-sintegra.php) e [página de pagamento](https://www.sintegraws.com.br/pagamento/pagamento.php), lidas em 07/11/2026.

### Requisição

| SintegraWS                                                 | FiscalAPI                                                                                                           |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `GET https://www.sintegraws.com.br/api/v1/execute-api.php` | `GET https://api.fiscalapi.com.br/api/consultar-ie-todos` (não pede UF) ou `/api/consultar` (quando você sabe a UF) |
| `token` na query string                                    | Header `X-API-Key`. A chave não vai na URL                                                                          |
| `plugin=ST`                                                | Não existe: o endpoint já define a consulta                                                                         |
| `cnpj` (sem UF)                                            | `cnpj` em `/api/consultar-ie-todos`, que procura nos 27 estados                                                     |
| `ie` + `uf`                                                | `ie` + `uf` em `/api/consultar`; em `/api/consultar-ie-todos`, só `ie`, e a UF é descoberta                         |
| Não documentado                                            | `cpf`, para produtor rural pessoa física                                                                            |

### Resposta

No SintegraWS, a resposta descreve um estabelecimento, e as outras inscrições vêm em `outras_ies` (em beta, sem endereço). Na FiscalAPI, `/api/consultar-ie-todos` devolve, para cada estado, a lista `results` de inscrições com todos os campos; `/api/consultar` devolve a lista de uma UF.

| SintegraWS                                                          | FiscalAPI (cada inscrição)                                                                               |
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `nome_empresarial`                                                  | `razao_social`                                                                                           |
| `nome_fantasia`                                                     | `nome_fantasia`                                                                                          |
| `inscricao_estadual`                                                | `inscricao_estadual`                                                                                     |
| `tipo_inscricao`                                                    | `tipo_ie`                                                                                                |
| `situacao_ie` (`Ativo`, `Inativo`, `Baixado`)                       | `situacao_ie` (`Habilitado` ou `Não habilitado`)                                                         |
| `data_situacao_cadastral` (`dd-MM-yyyy`)                            | `data_situacao` (texto, por exemplo `15/03/2020`)                                                        |
| `data_inicio_atividade`                                             | `data_inicio_atividade`                                                                                  |
| `cnae_principal.code`, `cnae_principal.text`                        | `cnae_codigo`, `cnae_descricao`                                                                          |
| `logradouro`, `numero`, `complemento`, `bairro`, `municipio`, `cep` | Mesmos nomes                                                                                             |
| `uf`                                                                | `uf_ie`                                                                                                  |
| `ibge.codigo_municipio`                                             | `municipio_ibge`                                                                                         |
| `informacao_ie_como_destinatario`                                   | `situacao_contribuinte`, o mais próximo (traz restrições como "Vedada operação como Destinatário na UF") |
| `outras_ies`                                                        | `/api/consultar-ie-todos`                                                                                |

### Erros

O SintegraWS informa o resultado nos campos `status` e `code` do corpo. A FiscalAPI usa o status HTTP.

| SintegraWS (`code`)                   | FiscalAPI                                                                                                                                                                                            |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0` Pesquisa realizada com sucesso    | `200` com inscrições em `results`                                                                                                                                                                    |
| `1` Nenhum estabelecimento encontrado | `200` com `results` vazio                                                                                                                                                                            |
| `2` CNPJ inválido                     | `/api/consultar`: `400` `DOCUMENTO_INVALIDO`. `/api/consultar-ie-todos` só recusa documento sem dígitos e não confere o dígito verificador: valide o CNPJ antes, para não pagar por um número errado |
| `3` Token inválido                    | `403` `API_KEY_ERROR`                                                                                                                                                                                |
| `4` e `5` Sem créditos                | `402`                                                                                                                                                                                                |
| `7` Instabilidade na fonte            | Todas as UFs: `complete: false` e `source_status` do estado. Uma UF: `502` `PROCESSAMENTO_FALHOU` ou `503` `SITE_INDISPONIVEL`                                                                       |
| `8` Erro interno                      | `500` `ERRO_INTERNO`                                                                                                                                                                                 |

### O código, antes e depois

<Tabs items="[&#x22;Antes (SintegraWS)&#x22;, &#x22;Depois (FiscalAPI)&#x22;]">
  <Tab value="Antes (SintegraWS)">
    ```python
    import requests

    r = requests.get(
        "https://www.sintegraws.com.br/api/v1/execute-api.php",
        params={"token": "SEU_TOKEN", "cnpj": "12345678000195", "plugin": "ST"},
    )
    dados = r.json()
    if dados["status"] == "OK" and dados["code"] == "0":
        print(dados["inscricao_estadual"], dados["situacao_ie"])
    ```
  </Tab>

  <Tab value="Depois (FiscalAPI)">
    ```python
    import requests

    r = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-ie-todos",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"cnpj": "12345678000195"},
    )
    r.raise_for_status()  # 400, 402, 403, 429 e 5xx viram exceção
    dados = r.json()
    for estado in dados["results"]:
        for ie in estado["results"]:  # lista vazia = sem IE nesse estado
            print(estado["uf"], ie["inscricao_estadual"], ie["situacao_ie"])
    if not dados["complete"]:
        print("Algum estado não respondeu: tente de novo antes de concluir que não há IE.")
    ```
  </Tab>
</Tabs>

## Custo comparado

Só com os preços públicos lidos em 07/11/2026. Na FiscalAPI, a consulta nos 27 estados e a de uma UF contam como **1 consulta**, com endereço.

| Serviço e plano            | Preço                  | Incluído                           | Uma UF                         | Todas as UFs, com endereço                                     |
| -------------------------- | ---------------------- | ---------------------------------- | ------------------------------ | -------------------------------------------------------------- |
| SintegrAPI Freelancer      | R$ 25/mês              | 100 créditos                       | R$ 0,25 (R$ 0,50 com endereço) | 3 créditos: R$ 0,75                                            |
| SintegrAPI Profissional    | R$ 200/mês             | 1.000 créditos                     | R$ 0,20 (R$ 0,40 com endereço) | 3 créditos: R$ 0,60                                            |
| SintegrAPI Business        | R$ 1.800/mês           | 10.000 créditos                    | R$ 0,18 (R$ 0,36 com endereço) | 3 créditos: R$ 0,54                                            |
| SintegraWS pacote Business | R$ 179,90              | 1.000 consultas, válidas por 1 ano | R$ 0,18                        | Por CNPJ, a resposta já traz `outras_ies` (beta), sem endereço |
| FiscalAPI Lite             | R$ 19,99/mês           | 30 consultas                       | R$ 0,67                        | R$ 0,67                                                        |
| FiscalAPI Starter          | R$ 50/mês              | 500 consultas                      | R$ 0,10                        | R$ 0,10                                                        |
| FiscalAPI Pro              | R$ 130/mês             | 2.000 consultas                    | R$ 0,065                       | R$ 0,065                                                       |
| FiscalAPI Enterprise       | a partir de R$ 250/mês | 10.000 consultas                   | R$ 0,025                       | R$ 0,025                                                       |

Pelas páginas do SintegrAPI: uma UF custa 1 crédito (2 com endereço) e todas as UFs, 2 créditos (3 com endereço). O SintegrAPI tem 10 créditos grátis por mês e planos anuais com bônus de créditos (por exemplo, Freelancer a R$ 285/ano com 100 créditos mais 20 de bônus por mês). A página do SintegraWS cita outros pacotes (Standard, Professional, Gold, Platinum), mas sem preço e quantidade que desse para conferir.

Na FiscalAPI, a recarga além da franquia custa R$ 0,12 (Starter), R$ 0,07 (Pro) e R$ 0,02 (Enterprise) por consulta. Resposta com erro HTTP não é cobrada. Conta que nunca assinou plano, sem recarga e com e-mail confirmado, tem 10 consultas grátis por mês de IE em um estado e de CNPJ, no painel e pela API; a consulta nos 27 estados usa plano ou recarga. Veja [Planos e limites](/docs/referencia/plans-and-limits).

## Checklist da troca

1. Crie a conta e a chave no [painel](https://app.fiscalapi.com.br?utm_source=docs\&utm_medium=docs\&utm_campaign=guia-migracao) e teste com as consultas grátis (`/api/consultar`, uma UF).
2. Troque o endereço e passe a chave no header `X-API-Key`.
3. Ajuste a leitura da resposta: inscrições em `results` (uma UF) ou `results[].results` (todas as UFs).
4. Troque a checagem de ativa/inativa por `situacao_ie` igual a `Habilitado`.
5. Trate os erros pelo status HTTP: `402` sem saldo, `429` limite por minuto, `400` documento ausente ou sem dígitos. Valide o dígito verificador do CNPJ antes de chamar: na consulta em todos os estados, um CNPJ errado é consultado e cobrado.
6. Respeite o limite por minuto do plano, somando todas as chaves: 5 no Lite, 20 no Starter, 60 no Pro e 120 no Enterprise. Veja [Rate limiting](/docs/referencia/rate-limiting).
7. Na consulta de todas as UFs, confira `complete` antes de concluir que não há IE.

Se o seu código é Python, Node.js ou PHP, os SDKs oficiais já tratam 429 e falhas temporárias: veja os guias de [Python](/docs/guias/python-lote), [Node.js](/docs/guias/node-lote) e [PHP](/docs/guias/php).

## Perguntas frequentes

### Como trocar o SintegrAPI pela FiscalAPI?

Troque `GET https://api.sintegrapi.com.br/consultas/v2/sintegra/{cnpj}?uf=BR` por `GET https://api.fiscalapi.com.br/api/consultar-ie-todos?cnpj={cnpj}`, mantendo a chave no header (`X-API-Key`). As inscrições passam a vir agrupadas por estado em `results[].results`, e `ativa` vira `situacao_ie` igual a `Habilitado`.

### Como trocar o SintegraWS pela FiscalAPI?

Troque `execute-api.php?token=...&cnpj=...&plugin=ST` por `GET https://api.fiscalapi.com.br/api/consultar-ie-todos?cnpj=...`, com a chave no header `X-API-Key`. Não precisa de UF: a consulta procura o CNPJ nos 27 estados. O resultado deixa de vir em `status` e `code` no corpo e passa a vir no status HTTP; as inscrições ficam em `results[].results`.

### A FiscalAPI consulta a inscrição estadual por CPF?

Sim. `/api/consultar` e `/api/consultar-ie-todos` aceitam `cpf`, além de `cnpj` e `ie`. É o caso do produtor rural pessoa física.

### Quanto custa a consulta de IE em todos os estados na FiscalAPI?

1 consulta por chamada, com endereço: R$ 0,67 no Lite, R$ 0,10 no Starter, R$ 0,065 no Pro e R$ 0,025 no Enterprise, dentro da franquia do plano.

### Dá para testar a FiscalAPI antes de migrar?

Dá. Conta que nunca assinou plano, sem recarga e com e-mail confirmado, tem 10 consultas grátis por mês de IE em um estado (`/api/consultar`) e de CNPJ, também pela API. A consulta nos 27 estados usa plano ou recarga.
