Skip to content

Sintegra

Sintegra stands for Sistema Integrado de Informações Sobre Operações Interestaduais com Mercadorias e Serviços — the integrated system for information on interstate operations involving goods and services. It is a central system that gathers taxpayer information and relays it to the tax authority of each state.

This endpoint accepts three lookups — by CNPJ, by CPF + state, and by state tax registration + state.

🚧 The body is passed through from the provider, with no transformation

The content of data is whatever the provider returns, delivered as is inside the standard envelope. Three practical consequences:

  • The field names are in Portuguese, in the provider's vocabulary (razaoSocial, inscricaoEstadual, situacaoCadastral), and not in the English camelCase used by the rest of the API.
  • Every block is optional. A block only shows up when the provider has data for it. Never assume a key exists: test before accessing it.
  • There is no type guarantee. Since there is no conversion along the way, the same field may arrive as a number or as text depending on where the data came from.

The only transformation the API applies is removing the urlComprovante fields — see below.

Request

GET /receita-federal-and-sintegra/v1

You must provide one of the three parameter sets below.

Parameters - Lookup by CNPJ

ParameterDescriptionRequired
cnpjCNPJ (the Brazilian company taxpayer number)Yes

E.g.: GET /receita-federal-and-sintegra/v1?cnpj=12.345.678/0001-95

The taxId parameter is accepted as a synonym of cnpj and produces exactly the same lookup. Prefer cnpj, which is the name used in the other sets.

Parameters - Lookup by CPF + UF

ParameterDescriptionRequired
cpfCPF (the Brazilian individual taxpayer number)Yes
ufState, as the two-letter code (UF)Yes

E.g.: GET /receita-federal-and-sintegra/v1?cpf=12345678909&uf=SP

Parameters - Lookup by IE + UF

ParameterDescriptionRequired
ieState tax registration (inscrição estadual, IE)Yes
ufState, as the two-letter code (UF)Yes
ieprParaná state tax registration, used as a second attempt when uf=PRNo

E.g.: GET /receita-federal-and-sintegra/v1?ie=111222333&uf=SP

iepr only has an effect in Paraná

With uf=PR and both ie and iepr informed, the lookup is attempted first with ie; if the Paraná Sintegra does not recognize the registration, it is retried with iepr. Outside Paraná, or without ie alongside it, iepr is not used as a second attempt.

CNPJ and CPF format

TIP

The CNPJ or CPF can be sent with or without the mask (12.345.678/0001-95 or 12345678000195) and must be sent with all its characters, including any leading zeros.

A CNPJ or CPF that fails the check-digit validation returns 422 before any lookup is performed.

Alphanumeric CNPJ

The endpoint accepts the alphanumeric CNPJ defined by IN RFB 2.229/2024 (a Brazilian Federal Revenue Service normative instruction), in which the first eight positions of the root and the four of the order number may contain letters, while the two check digits remain numeric.

GET /receita-federal-and-sintegra/v1?cnpj=12ABC34501DE35

The letters can be sent in lowercase: the API normalizes them to uppercase before querying the provider. The mask is accepted as well: 12.ABC.345/01DE-35.

Headers

http
Authorization: ApiKey <your-api-key>

An unknown query parameter is ignored

A parameter that is not one of taxId, cnpj, cpf, uf, ie and iepr does not raise an error: it is simply ignored.

The same goes for the case in which no identifier at all is informed. The call is not blocked on the way in — it goes through to the provider, which answers with no result.

Example request

bash
curl -i -G 'https://api.nxcd.app/receita-federal-and-sintegra/v1' \
  --header 'Authorization: ApiKey YOUR_API_KEY' \
  --data-urlencode 'cnpj=12345678000195'

Response

FieldDescriptionType
idUnique ID of the requestString
versionAPI versionString
dataObject with the result of the lookupObject
data.cnpjCNPJ queriedString
data.receitaFederalRegistration data at the Federal Revenue Service. Only in the lookup by CNPJ.Object
data.sintegraObject with the result of the lookupObject
data.sintegra.inscricoesEstaduaisList with the data for each state tax registration foundObject[]
metadataObject with the metadata of the requestObject
metadata.timeSpentRequest time, in millisecondsNumber

🚧 There is no urlComprovante in this response

The API removes the urlComprovante field from the receitaFederal block and from each item of sintegra.inscricoesEstaduais before answering. The receipt of the lookup is not delivered by this endpoint.

JSON examples

Here are some JSON examples of the response.

  1. Example when the data is found
Status Code: 200
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "version": "v1",
  "data": {
    "cnpj": "12345678000195",
    "sintegra": {
      "inscricoesEstaduais": [
        {
          "cnpj": "12345678000195",
          "inscricaoEstadual": "00.000.000-0",
          "razaoSocial": "EMPRESA LTDA",
          "nomeFantasia": "EMPRESA LTDA",
          "logradouro": "RUA",
          "numero": "10",
          "complemento": "COMPLEMENTO",
          "bairro": "CENTRO",
          "cep": "00000000",
          "municipio": "GOIANIA",
          "uf": "GO",
          "telefone": "",
          "atividadeEconomica": "4692300 - Comércio atacadista de mercadorias em geral, com predominância de insumos agropecuários (MERCADORIAS EM GERAL, COM PREDOMINÂNCIA DE INSUMOS AGROPECUÁRIOS; COMÉRCIO ATACADISTA DE)",
          "atividadesEconomicasSecundarias": [
            "4623109 - Comércio atacadista de alimentos para animais",
            "4644302 - Comércio atacadista de medicamentos e drogas de uso veterinário"
          ],
          "dataInicioAtividade": "",
          "dataSituacaoCadastral": "01/12/2000",
          "regimeRecolhimento": "Normal",
          "observacao": "",
          "situacaoCadastral": "Suspenso - NÃO HABILITADO",
          "situacaoCadastralTratada": 1,
          "ocorrenciaFiscal": "",
          "atividadeEconomicaTratada": "4930-2/02 - Transporte rodoviário de carga, exceto produtos perigosos e mudanças, intermunicipal, interestadual e internacional",
          "atividadesEconomicasSecundariasTratada": [
            "7719-5/99 - Locação de outros meios de transporte não especificados anteriormente, sem condutor",
            "4744-0/99 - Comércio varejista de materiais de construção em geral"
          ],
          "camposExclusivos": {}
        }
      ]
    }
  },
  "metadata": {
    "timeSpent": 10000
  }
}

Two fields of the item call for an explanation:

  • situacaoCadastralTratada ("normalized registration status") normalizes situacaoCadastral: 1 for the positive statuses (ATIVO, HABILITADO) and 0 for the negative ones (INATIVO, SUSPENSO).
  • camposExclusivos ("exclusive fields") is the space for data specific to the Sintegra being queried. Implementing it is optional, and it may come back empty.

Response headers

HeaderWhen it appears
Nextid-ReqIdOn every response. Carries the request identifier, the same one as the id field of the body.

Errors

CodeWhen it happens
401 UnauthorizedAPI key missing, invalid, or without the nextid.bureaus.rfAndSintegra permission.
404 Not FoundThe version informed in the URL does not exist. Only v1 is accepted.
422 Unprocessable EntityCNPJ or CPF that fails the check-digit validation.
500 Internal Server ErrorUnexpected failure during processing.

The 422 carries a message that identifies which parameter failed:

ParameterMessage
cnpjInvalid cnpj
cpfInvalid cpf
taxIdInvalid taxId (CPF/CNPJ)

taxId is validated as a CNPJ

Even though the message mentions both CPF and CNPJ, the taxId of this endpoint is validated as a CNPJ. To query by CPF, use the cpf parameter together with uf.

Example of a response with an invalid CNPJ:

Status Code: 422
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "error": {
    "statusCode": 422,
    "error": "Unprocessable Entity",
    "message": "Invalid cnpj"
  }
}

The format of the error responses is described in HTTP response codes.

Versions

The only version is v1, and it is the one that answers when the version is omitted from the URL. /receita-federal-and-sintegra and /receita-federal-and-sintegra/v1 are equivalent.

VersionStatusWhat changes
v1RecommendedThe only version. It is what answers when the version is omitted from the URL.

Any other value in place of v1 returns 404 with the message API version not found.

For the ownership structure of the same CNPJ, see QSA.

Nextcode | Identity Verification Solutions