## 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.


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

### Requisição
URL para POST: `https://api.infosimples.com/api/v2/consultas/sefaz/cadastro-centralizado`



| Parâmetro     | Descrição                                                                                                                                                                                                                                                                  |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| token*        | Chave de autenticação da API. É com o token que a API reconhece e autoriza quem está fazendo a consulta.                                                                                                                                                                   |
| 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 da empresa a ser consultada.                                                                                                                                                                                                                                          |
| cpf**         | CPF do indivíduo a ser consultado.                                                                                                                                                                                                                                         |
| ie**          | Inscrição Estadual da empresa a ser consultada.                                                                                                                                                                                                                            |
| uf*           | UF (Unidade da Federação) a ser usada na consulta. Exemplos: SP, RJ.                                                                                                                                                                                                       |

> * Parâmetro obrigatório.

> ** Parâmetro opcional. Pode ser necessário informar algum dos parâmetros opcionais para que a consulta funcione adequadamente.


### Exemplos de respostas (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"
  ]
}
```


### Arquivo de visualização de consulta

O arquivo de visualização de consulta (`site_receipts`) disponibilizado no retorno da API é **emitido pela fonte original**.

### Exemplos de códigos para integração com a API


#### Python
```python
# Testado com: 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":   "VALOR_DO_PARAMETRO_LOGIN_CPF",
  "login_senha": "VALOR_DO_PARAMETRO_LOGIN_SENHA",
  "pkcs12_cert": aes_bridge.encrypt(base64.b64encode(open("certificado.pfx", "rb").read()).decode(), "INFORME_A_CHAVE_DE_CRIPTOGRAFIA").decode("ascii").replace("+", "-").replace("/", "_").rstrip("="),
  "pkcs12_pass": aes_bridge.encrypt("SENHA_DO_CERTIFICADO", "INFORME_A_CHAVE_DE_CRIPTOGRAFIA").decode("ascii").replace("+", "-").replace("/", "_").rstrip("="),
  "cnpj":        "VALOR_DO_PARAMETRO_CNPJ",
  "cpf":         "VALOR_DO_PARAMETRO_CPF",
  "ie":          "VALOR_DO_PARAMETRO_IE",
  "uf":          "VALOR_DO_PARAMETRO_UF",
  "token":       "INFORME_AQUI_O_TOKEN_DA_CHAVE_DE_ACESSO",
  "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'])
```


## Estamos prontos para ajudar
Ainda tem alguma dúvida ou precisa de ajuda na sua integração? Entre em contato em [suporte@infosimples.com.br](mailto:suporte@infosimples.com.br) e receba ajuda da nossa equipe técnica altamente qualificada.
