## Receita Federal / CTe
Retorna todos os dados e eventos do Conhecimento de Transporte Eletrônico a partir da chave de acesso informada.


### URL do site
- https://www.cte.fazenda.gov.br/portal/consultaRecaptcha.aspx?tipoConsulta=resumo&tipoConteudo=cktLvUUKqh0=

### Requisição
URL para POST: `https://api.infosimples.com/api/v2/consultas/receita-federal/cte`



| 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.                                                                                                                                                                                                                                   |
| cte*          | Chave de acesso do CT-e.                                                                                                                                                                                                                                                                                                                   |
| pkcs12_cert** | Se você deseja fazer o download do XML da CTE usando seu certificado digital, você deve informar este parâmetro. O parâmetro deve ser enviado com o conteúdo do arquivo do certificado digital A1 criptografado seguindo <a href="https://api.infosimples.com/consultas/docs/certificados#criptografia">as instruções de criptografia</a>. |
| pkcs12_pass** | Se você deseja fazer o download do XML da CTE usando seu certificado digital, você deve informar este parâmetro. O parâmetro deve ser enviado com a senha do certificado digital A1 criptografada seguindo <a href="https://api.infosimples.com/consultas/docs/certificados#criptografia">as instruções de criptografia</a>.               |

> * 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": "receita-federal/cte",
    "parameters": {
      "cte": "11111111111111111111111111111111111111111111"
    },
    "client_name": "Minha Empresa",
    "token_name": "Token de Produção",
    "billable": true,
    "price": "0.24",
    "requested_at": "2019-03-11T10:37:33.000-03:00",
    "elapsed_time_in_milliseconds": 4,
    "remote_ip": "111.111.111.111",
    "signature": "U2FsdGVkX1+SsjvyAQR2U2qpmnyWmmVUAPNZiUAqNGrfp1te03S1xsfHgT6z+virI5kdZDHPwU17Q89MXMpv1Q=="
  },
  "data_count": 1,
  "data": [
    {
      "aquaviario": {
        "adicional": {
          "valor_bc": "Valor BC AFRMM 1234.56",
          "valor": "Valor AFRMM 1234.56",
          "normalizado_valor_bc": 1234.56,
          "normalizado_valor": 1234.56
        },
        "viagem": {
          "navio": "Exemplo de texto",
          "balsa": "Exemplo de texto",
          "numero_viagem": "Exemplo de texto",
          "direcao": "Exemplo de texto",
          "tipo_navegacao": "Exemplo de texto",
          "irin": "Exemplo de texto"
        }
      },
      "autorizador": {
        "autorizados_download": []
      },
      "carga": {
        "valor": null,
        "produto": "",
        "outras_caracteristicas": "",
        "normalizado_valor": 0.0,
        "quantidades": {
          "unidade": "",
          "medida": "",
          "quantidade": "",
          "normalizado_quantidade": "1.1"
        },
        "nfes": [],
        "seguros": []
      },
      "cte": {
        "chave_acesso": "11-1111-11111111111111-11-111-111111111-111111111-1",
        "numero": "",
        "serie": "",
        "data_emissao": "",
        "versao_xml": "",
        "normalizado_chave_acesso": "11111111111111111111111111111111111111111111",
        "valores": {
          "valor_total": "0,00",
          "base_calculo_icms": "0,00",
          "valor_icms": "0,00",
          "normalizado_valor_total": 0.0,
          "normalizado_base_calculo_icms": 0.0,
          "normalizado_valor_icms": 0.0
        },
        "emitente": {
          "cnpj": "11.111.111/1111-11",
          "nome": "Nome de Exemplo",
          "ie": "111111111",
          "uf": "SP",
          "normalizado_cnpj": "11111111111111",
          "cpf": "111.111.111-11",
          "normalizado_cpf": "11111111111"
        },
        "tomador": {
          "cnpj": "11.111.111/1111-11",
          "nome": "Nome de Exemplo",
          "ie": "111111111",
          "uf": "SP",
          "normalizado_cnpj": "11111111111111",
          "cpf": "111.111.111-11",
          "normalizado_cpf": "11111111111"
        },
        "remetente": {
          "cnpj": "",
          "nome": "Nome de Exemplo",
          "ie": "",
          "uf": "SP",
          "normalizado_cnpj": ""
        },
        "destinatario": {
          "cnpj": "",
          "nome": "Nome de Exemplo",
          "ie": "",
          "uf": "SP",
          "normalizado_cnpj": ""
        },
        "expedidor": {
          "cnpj": "",
          "nome": "Nome de Exemplo",
          "ie": "",
          "uf": "SP",
          "normalizado_cnpj": ""
        },
        "recebedor": {
          "cnpj": "",
          "nome": "Nome de Exemplo",
          "ie": "",
          "uf": "SP",
          "normalizado_cnpj": ""
        },
        "caracteristicas": {
          "modal": "",
          "tipo_servico": "",
          "finalidade": "",
          "forma": "",
          "cfop": "",
          "natureza": "",
          "digest_cte": "",
          "inicio_prestacao": "-",
          "fim_prestacao": "-"
        },
        "situacao": "AUTORIZADO",
        "eventos": []
      },
      "cte_completo": true,
      "destinatario": {
        "nome_razao_social": "Nome de Exemplo",
        "cnpj": "",
        "ie": "",
        "endereco": "Avenida Paulista",
        "bairro": "Jardins",
        "fone_fax": "",
        "cep": "01311-300",
        "municipio": "São Paulo",
        "uf": "SP",
        "pais": "Nome de Exemplo",
        "suframa": "SP"
      },
      "emitente": {
        "nome_razao_social": "Nome de Exemplo",
        "nome_fantasia": "Nome de Exemplo",
        "cnpj": "",
        "ie": "-",
        "endereco": "Avenida Paulista",
        "bairro": "Jardins",
        "fone_fax": "",
        "cep": "01311-300",
        "municipio": "São Paulo",
        "uf": "SP",
        "pais": "Nome de Exemplo"
      },
      "expedidor": {
        "nome_razao_social": "Nome de Exemplo",
        "cnpj": "",
        "ie": "",
        "endereco": "Avenida Paulista",
        "bairro": "Jardins",
        "fone_fax": "",
        "cep": "01311-300",
        "municipio": "São Paulo",
        "uf": "SP",
        "pais": "Nome de Exemplo"
      },
      "informacoes_adicionais": {
        "fisco": "",
        "contribuinte": ""
      },
      "recebedor": {
        "nome_razao_social": "Nome de Exemplo",
        "cnpj": "",
        "ie": "",
        "endereco": "Avenida Paulista",
        "bairro": "Jardins",
        "fone_fax": "",
        "cep": "01311-300",
        "municipio": "São Paulo",
        "uf": "SP",
        "pais": "Nome de Exemplo"
      },
      "remetente": {
        "nome_razao_social": "Nome de Exemplo",
        "nome_fantasia": "Nome de Exemplo",
        "cnpj": "",
        "ie": "",
        "endereco": "Avenida Paulista",
        "bairro": "Jardins",
        "fone_fax": "",
        "cep": "01311-300",
        "municipio": "São Paulo",
        "uf": "SP",
        "pais": "Nome de Exemplo"
      },
      "responsavel_tecnico": {
        "cnpj": "12.345.678/9012-34",
        "contato": "11111111111",
        "telefone": "11111111111",
        "telefonte": "11111111111",
        "email": "exemplo@email.com"
      },
      "resumida": {
        "cte": {
          "natureza_operacao": "Exemplo de Texto"
        }
      },
      "rodoviario": {
        "rntrc": "",
        "data_entrega": null,
        "lotacao": null,
        "ciot": null,
        "veiculos": [],
        "motoristas": []
      },
      "tomador": {
        "nome_razao_social": "Nome de Exemplo",
        "nome_fantasia": "Nome de Exemplo",
        "cnpj": "",
        "ie": "Outros",
        "endereco": "Avenida Paulista",
        "bairro": "Jardins",
        "fone_fax": "",
        "cep": "01311-300",
        "municipio": "São Paulo",
        "uf": "SP",
        "pais": "Nome de Exemplo",
        "relacao_carga": null
      },
      "totais": {
        "valor_prestacao_servico": "0,00",
        "valor_a_receber": "0,00",
        "componentes": [],
        "impostos": {
          "cst": null,
          "percentual_reducao_bc": null,
          "valor_credito": null,
          "base_calculo_icms": null,
          "aliquota_icms": null,
          "valor_icms": null,
          "valor_icms_outra_uf": "SP",
          "valor_total_tributos": null,
          "normalizado_cst": 0.0,
          "normalizado_percentual_reducao_bc": 0.0,
          "normalizado_valor_credito": 0.0,
          "normalizado_base_calculo_icms": 0.0,
          "normalizado_aliquota_icms": 0.0,
          "normalizado_valor_icms": 0.0,
          "normalizado_valor_icms_outra_uf": "SP",
          "normalizado_valor_total_tributos": 0.0
        },
        "diferencial_aliquota": {
          "base_calculo_uf_fim": "SP",
          "aliquota_interna_uf_fim": "SP",
          "aliquota_interestadual": null,
          "percentual_partilha": null,
          "icms_uf_fim": "SP",
          "icms_uf_inicio": "SP",
          "percentual_icms_fundo_combate_pobreza": null,
          "icms_fundo_combate_pobreza": null,
          "normalizado_base_calculo_uf_fim": "SP",
          "normalizado_aliquota_interna_uf_fim": "SP",
          "normalizado_aliquota_interestadual": 0.0,
          "normalizado_percentual_partilha": 0.0,
          "normalizado_icms_uf_fim": "SP",
          "normalizado_icms_uf_inicio": "SP",
          "normalizado_percentual_icms_fundo_combate_pobreza": 0.0,
          "normalizado_icms_fundo_combate_pobreza": 0.0
        }
      },
      "url_html": "https://api.infosimples.com/receipt/exemplo-de-url",
      "url_xml": "https://api.infosimples.com/receipt/exemplo-de-url",
      "xml_baixado_com_certificado": false,
      "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/receita-federal/cte'
args = {
  "cte":         "VALOR_DO_PARAMETRO_CTE",
  "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("="),
  "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.
