## Comprot / Processo
A API consulta processos administrativos na COMPROT (Comunicação e Protocolo) do Ministério da Fazenda, pesquisando por CPF, CNPJ ou número do processo, e datas de início e fim. Quando há mais de um processo no retorno da pesquisa, os dados do primeiro processo são retornados e, para os demais processos, apenas os seus números são retornados, permitindo que a consulta de dados completa desse processo seja feita posteriormente. A API automatiza a consulta no site do COMPROT e por isso funciona de segunda a sexta-feira no período das 8:00 às 22:00 (horário de Brasília), que é o mesmo período de funcionamento do site.


### Site URL
- https://comprot.fazenda.gov.br/comprotegov/site/index.html#ajax/processo-consulta.html

### Request
POST endpoint: `https://api.infosimples.com/api/v2/consultas/comprot/processo`



| Parameter    | Description                                                                                                                                                       |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| token*       | The token that will authenticate and authorize the request.                                                                                                       |
| cnpj**       | CNPJ of the company to be queried.                                                                                                                                |
| cpf**        | CPF of the individual to be queried.                                                                                                                              |
| processo**   | Número do processo.                                                                                                                                               |
| data_inicio* | Start date in ISO 8601 format. For example, April 22, 1985 is represented as "1985-04-22". Make sure to include leading zeros; the format "1985-4-22" is invalid. |
| data_fim*    | End date in ISO 8601 format. For example, April 22, 1985 is represented as "1985-04-22". Make sure to include leading zeros; the format "1985-4-22" is invalid.   |

> * 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": "comprot/processo",
    "parameters": {
      "cpf": "11111111111",
      "data_inicio": "2018-09-02",
      "data_fim": "2018-11-05"
    },
    "client_name": "Minha Empresa",
    "token_name": "Token de Produção",
    "billable": true,
    "price": "0.2",
    "requested_at": "2018-11-05T15:07:27.000-02:00",
    "elapsed_time_in_milliseconds": 5107,
    "remote_ip": "111.111.111.111",
    "signature": "U2FsdGVkX1+rv2Q0brBig5FTVBEwT8ZWqNHNVX94jzba/HD7Q+5Osp32zCvQT6AxSAk09X5sKgy5GvHLF4ifpw=="
  },
  "data_count": 1,
  "data": [
    {
      "assunto": "",
      "cnpj": "",
      "cpf": "1111111111",
      "documento_origem": "AUTOPERDIMENTO",
      "eprocesso": "Sim",
      "interessado": "Nome de Exemplo",
      "movimento_data": "04/10/2018",
      "movimentos": [
        {
          "data": "04/10/2018",
          "tipo": "Movimentação",
          "sequencia": "0004",
          "relacao": "10239",
          "origem": "SEC PROGRAMACAO E LOGISTICA-DRF-FCA-SP",
          "destino": "DEL REC FED FRANCA-SP",
          "principal": ""
        },
        {
          "data": "27/09/2018",
          "tipo": "Movimentação",
          "sequencia": "0003",
          "relacao": "11031",
          "origem": "DEL REC FED FRANCA-SP",
          "destino": "SEC PROGRAMACAO E LOGISTICA-DRF-FCA-SP",
          "principal": ""
        },
        {
          "data": "14/09/2018",
          "tipo": "Movimentação",
          "sequencia": "0002",
          "relacao": "10267",
          "origem": "SECAO DE FISCALIZACAO-DRF-FRANCA-SP",
          "destino": "DEL REC FED FRANCA-SP",
          "principal": ""
        },
        {
          "data": "13/09/2018",
          "tipo": "Primeira Distribuição",
          "sequencia": "0001",
          "relacao": "00000",
          "origem": "PROTOCOLO DEL REC FED FRANCA-SP",
          "destino": "SECAO DE FISCALIZACAO-DRF-FRANCA-SP",
          "principal": ""
        }
      ],
      "numero": "11111.111111/1111-11",
      "orgao": "DEL REC FED FRANCA-SP",
      "orgao_origem": "SEC PROGRAMACAO E LOGISTICA-DRF-FCA-SP",
      "posicionamentos": [
        {
          "orgao_codigo": "11111111",
          "orgao_sigla": "Exemplo de texto",
          "orgao": "Exemplo de texto",
          "data": "23/05/2022",
          "hora": "17:23:59",
          "descricao": "Exemplo de texto",
          "detalhe": "Exemplo de texto"
        }
      ],
      "procedencia": "PROCESSO DIGITAL DRF/FCA/SAFIS",
      "profisc": "Não",
      "protocolo_data": "11/11/1111",
      "rm": "10239",
      "sequencia": "0004",
      "sief": "Protocolizado e Cadastrado pelo SIEF",
      "situacao": "EM ANDAMENTO",
      "tipo": "Digital",
      "uf": "SP",
      "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

url = 'https://api.infosimples.com/api/v2/consultas/comprot/processo'
args = {
  "cnpj":        "VALUE_OF_PARAMETER_CNPJ",
  "cpf":         "VALUE_OF_PARAMETER_CPF",
  "processo":    "VALUE_OF_PARAMETER_PROCESSO",
  "data_inicio": "VALUE_OF_PARAMETER_DATA_INICIO",
  "data_fim":    "VALUE_OF_PARAMETER_DATA_FIM",
  "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.
