## SEFAZ / Cadastro Centralizado de Contribuinte (CCC)
Consulta o Cadastro Centralizado de Contribuinte (CCC) mantido pela SEFAZ RS com outras secretarias de estado da fazenda do Brasil, com o objetivo de viabilizar a validação do destinatário em uma operação interestadual. Atenção: caso o registro pesquisado possua múltiplas inscrições estaduais, serão retornados resultados detalhados das 4 primeiras páginas. Os resultados das páginas seguintes serão retornados sem detalhes, porém com os números das inscrições estaduais. Para obter os resultados detalhados das inscrições estaduais das páginas posteriores, basta efetuar a consulta utilizando a inscrição estadual desejada.


### Site URL
- https://dfe-portal.svrs.rs.gov.br/NFE/CCC

### Request
POST endpoint: `https://api.infosimples.com/api/v2/consultas/sefaz/cadastro-centralizado`



| Parameter     | Description                                                                                                                                                                                                                                                                |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| token*        | The token that will authenticate and authorize the request.                                                                                                                                                                                                                |
| login_cpf**   | Este parâmetro é necessário caso o login no GOV.BR seja feito com CPF e senha. Deve ser informado o CPF para fazer login no GOV.BR.                                                                                                                                        |
| login_senha** | Este parâmetro é necessário caso o login no GOV.BR seja feito com CPF e senha. Deve ser informada a senha para fazer login no GOV.BR.                                                                                                                                      |
| pkcs12_cert** | Este parâmetro é necessário caso o login no GOV.BR seja feito com certificado digital. Conteúdo do arquivo do certificado digital A1 encriptado seguindo <a href="https://api.infosimples.com/consultas/docs/certificados#criptografia">as instruções de criptografia</a>. |
| pkcs12_pass** | Este parâmetro é necessário caso o login no GOV.BR seja feito com certificado digital. Senha do certificado digital A1 encriptada seguindo <a href="https://api.infosimples.com/consultas/docs/certificados#criptografia">as instruções de criptografia</a>.               |
| cnpj**        | CNPJ of the company to be queried.                                                                                                                                                                                                                                         |
| cpf**         | CPF of the individual to be queried.                                                                                                                                                                                                                                       |
| ie**          | State Registration of the company to be queried.                                                                                                                                                                                                                           |
| uf*           | State (UF) to be used in the query. Examples: SP, RJ.                                                                                                                                                                                                                      |

> * Required parameter.

> ** Optional parameter. Sometimes it is necessary to set at least one of the optional parameters for the service to work properly.


### Response examples (OK)
```json
{
  "code": 200,
  "code_message": "A requisição foi processada com sucesso.",
  "errors": [],
  "header": {
    "api_version": "v2",
    "service": "sefaz/cadastro-centralizado",
    "parameters": {
      "uf": "SP",
      "cnpj": "11111111111111"
    },
    "client_name": "Minha Empresa",
    "token_name": "Token de Produção",
    "billable": true,
    "price": "0.24",
    "requested_at": "2019-06-21T22:19:36.000-03:00",
    "elapsed_time_in_milliseconds": 127,
    "remote_ip": "111.111.111.111",
    "signature": "U2FsdGVkX1+7TCBBW7MqA7TiTjIgPQfCV3V6aBWOPEX62PkY/hBGR3HeAhEfiLc6PNZTXMRnAMKVW6Mpw9r3Lg=="
  },
  "data_count": 1,
  "data": [
    {
      "abertura_data": "22/05/1952",
      "atividade_economica": "1111111",
      "cnpj": "11.111.111/1111-11",
      "completo": true,
      "cpf": "",
      "credito_presumido": "Não informado",
      "dfe_habilitados": "Exemplo de texto",
      "endereco_bairro": "Jardins",
      "endereco_cep": "01311-300",
      "endereco_complemento": "Apartamento Prédio A",
      "endereco_logradouro": "Avenida Paulista",
      "endereco_municipio": "3550308 - São Paulo",
      "endereco_municipio_nome": "São Paulo",
      "endereco_numero": "1111",
      "endereco_uf": "SP",
      "fim_atividade_data": "",
      "historico": [
        {
          "nsu": "11111111",
          "cod_uf": "SP",
          "cnpj": "11.111.111/1111-11",
          "cpf": "",
          "inscricao_estadual": "111111111111",
          "situacao_cadastral_ie": "Habilitado",
          "situacao_cadastral_cnpj": "Sem restrição",
          "situacao_cadastral": "Habilitado",
          "regime_icms": "Normal",
          "situacao_cadastral_data": "",
          "atualizacao_data": "06/04/2018",
          "motivo": "Alteração"
        },
        {
          "nsu": "11111111",
          "cod_uf": "SP",
          "cnpj": "11.111.111/1111-11",
          "cpf": "",
          "inscricao_estadual": "111111111111",
          "situacao_cadastral_ie": "Habilitado",
          "situacao_cadastral_cnpj": "Sem restrição",
          "situacao_cadastral": "Habilitado",
          "regime_icms": "Normal",
          "situacao_cadastral_data": "",
          "atualizacao_data": "21/11/2016",
          "motivo": "Alteração"
        },
        {
          "nsu": "11111111",
          "cod_uf": "SP",
          "cnpj": "11.111.111/1111-11",
          "cpf": "",
          "inscricao_estadual": "111111111111",
          "situacao_cadastral_ie": "Habilitado",
          "situacao_cadastral_cnpj": "Sem restrição",
          "situacao_cadastral": "Habilitado",
          "regime_icms": "Não informado",
          "situacao_cadastral_data": "",
          "atualizacao_data": "19/09/2013",
          "motivo": "Alteração"
        },
        {
          "nsu": "11111111",
          "cod_uf": "SP",
          "cnpj": "11.111.111/1111-11",
          "cpf": "",
          "inscricao_estadual": "111111111111",
          "situacao_cadastral_ie": "Habilitado",
          "situacao_cadastral_cnpj": "Sem restrição",
          "situacao_cadastral": "Habilitado",
          "regime_icms": "Não informado",
          "situacao_cadastral_data": "",
          "atualizacao_data": "16/09/2013",
          "motivo": "Exclusão"
        },
        {
          "nsu": "11111111",
          "cod_uf": "SP",
          "cnpj": "11.111.111/1111-11",
          "cpf": "",
          "inscricao_estadual": "111111111111",
          "situacao_cadastral_ie": "Habilitado",
          "situacao_cadastral_cnpj": "Sem restrição",
          "situacao_cadastral": "Habilitado",
          "regime_icms": "Não informado",
          "situacao_cadastral_data": "",
          "atualizacao_data": "04/09/2013",
          "motivo": "Inclusão"
        }
      ],
      "informacao_ie_destinatario": "Opcional",
      "inscricao_estadual": "111111111111",
      "inscricao_estadual_tipo": "IE Normal",
      "nome_fantasia": "Nome de Exemplo",
      "normalizado_abertura_data": "22/05/1952",
      "normalizado_cnpj": "11111111111111",
      "normalizado_cpf": "",
      "normalizado_endereco_cep": "01311-300",
      "normalizado_fim_atividade_data": "",
      "normalizado_inscricao_estadual": "111111111111",
      "normalizado_situacao_cadastral_data": "",
      "outras_inscricoes": [
        {
          "uf_cadastro": "ES - 32",
          "cnpj": "11.111.111/0001-11",
          "ie": "11111111",
          "ie_tipo": "IE Normal",
          "ie_situacao": "Habilitado",
          "cnpj_situacao": "Sem restrição",
          "uf_endereco": "ES"
        }
      ],
      "porte": "Demais empresas",
      "razao_social": "Empresa XYZ",
      "regime_tributacao": "Normal",
      "situacao_cadastral": "Habilitado",
      "situacao_cadastral_cnpj": "Sem restrição",
      "situacao_cadastral_data": "",
      "situacao_cadastral_ie": "Habilitado",
      "tipo_produtor": "Não",
      "site_receipt": "https://api.infosimples.com/receipt/exemplo-de-url"
    }
  ],
  "site_receipts": [
    "https://api.infosimples.com/receipt/exemplo-de-url"
  ]
}
```


### Preview file

The preview file (`site_receipts`) in the response JSON is **generated by the source (website/app)** that processed the automation.

### Code snippets


#### Python
```python
# Tested with: Python 3.10.19, Python 3.14.0
import requests
import base64
# pip install aes-bridge
import aes_bridge

url = 'https://api.infosimples.com/api/v2/consultas/sefaz/cadastro-centralizado'
args = {
  "login_cpf":   "VALUE_OF_PARAMETER_LOGIN_CPF",
  "login_senha": "VALUE_OF_PARAMETER_LOGIN_SENHA",
  "pkcs12_cert": aes_bridge.encrypt(base64.b64encode(open("certificate.pfx", "rb").read()).decode(), "ENCRYPTION_KEY").decode("ascii").replace("+", "-").replace("/", "_").rstrip("="),
  "pkcs12_pass": aes_bridge.encrypt("CERTIFICATE_PASSWORD", "ENCRYPTION_KEY").decode("ascii").replace("+", "-").replace("/", "_").rstrip("="),
  "cnpj":        "VALUE_OF_PARAMETER_CNPJ",
  "cpf":         "VALUE_OF_PARAMETER_CPF",
  "ie":          "VALUE_OF_PARAMETER_IE",
  "uf":          "VALUE_OF_PARAMETER_UF",
  "token":       "WRITE_YOUR_TOKEN_HERE",
  "timeout":     "300"
}

response = requests.post(url, args)
response_json = response.json()
response.close()

if response_json['code'] == 200:
  print("Retorno com sucesso: ", response_json['data'])
elif response_json['code'] in range(600, 799):
  mensagem = "Resultado sem sucesso. Leia para saber mais: \n"
  mensagem += "Código: {} ({})\n".format(response_json['code'], response_json['code_message'])
  mensagem += "; ".join(response_json['errors'])
  print(mensagem)

print("Cabeçalho da consulta: ", response_json['header'])
print("URLs com arquivos de visualização (HTML/PDF): ", response_json['site_receipts'])
```


## We are here to help
Do you still need to figure something out? Reach us at [suporte@infosimples.com.br](mailto:suporte@infosimples.com.br) and our highly qualified support team will be happy to help.
