- 6. API da ANTT para emissão do CIOT
6.4. Declara Operação de Transporte - 6.3. Consulta Frota Transportador
« Anterior - 6.4.1. Declaração Operação de Transporte
Próximo »
6.4. Declara Operação de Transporte
Sumário
- 6.4.1. Declaração Operação de Transporte
- 6.4.2. Veículos
- 6.4.3. Origem e destino
- 6.4.4. Dados da Carga
- 6.4.5. Informações do pagamento do frete
- 6.4.6. Indicadores Operacionais
Declaração da Operação de Transporte (CIOT)
A Declaração da Operação de Transporte é um conjunto de informações da operação de transporte que o prestador de serviço de transporte remunerado deve registrar no sistema da ANTT.
O CIOT - Código de Identificação da Operação de Transporte é um identificador de 12 dígitos gerado pela ANTT que tem a finalidade de identificar as Declarações da Operações de Transporte no sistema na ANTT, este identificador deve ser solicitado através do serviço GeraCIOT.
Após o registro da operação de Transporte, a ANTT fornece um protocolo de autorização do CIOT de 4 dígitos que tem a finalidade de código de verificação necessário para a realização de retificação, cancelamento e encerramento do CIOT.
Geração da Declaração da Operação de Transporte
As informações da Declaração da Operação de Transporte devem ser prestadas em formato JSON conforme especificação técnica do Documento de Contrato de Serviço - Pagamento Eletrônico de Frete - Serviços PEF da ANTT.
O usuário pode gerar a declaração por conta própia ou pode utilizar as funcionalidades de geração disponibilizadas pela DLL:
1) obter um CIOT - Código de Identificação da Operação de Transporte no serviço GeraCIOT;
2) gerar o grupo do veículo usando o ANTT_Veiculo;
3) gerar o grupo de informações da origem e destino da operação de transporte usando o ANTT_OrigemDestino;
4) gerar o grupo de informações da carga usando o ANTT_DadosCarga;
5) gerar as informações do pagamento do frete usando o ANTT_InfPagamento;
6) gerar as informações dos indicadores operacionais usando o ANTT_InfIndicadoresOperacionais;
7) gerar a declaração usando ANTT_DeclaraOpeTransp;
8) transmitir a declaração usando o ANTT_DeclaraOpeTransp;
Assinatura
string ANTT_DeclaraOpeTransp(int tpAmb, string nomeCertificado, string Declaracao, out int cStat, out string msgResultado, out string msgDados, out string CIOT12, out string CodigoVerificador, out string Protocolo, out string Codigo, out string Mensagem, out string AvisoTransportador)
Descrição:
Serviço destinado a recepcionar e armazenar os dados das operações de transporte e retornar o protocolo de autorização.
Parâmetros da chamada:
| nome | tipo | fluxo | descrição |
|---|---|---|---|
| ambiente | inteiro | entrada | informar o código do ambiente que deseja acessar: 1- produção ou 2-homologação |
| nomeCertificado | string | entrada | informar nome do titular do certificado a ser utilizado na autenticação com a API: 1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS". 2. informar: NUMEROSERIE|[número de série] quando não seja possível localizar o certificado digital pelo assunto; 3. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha". 4. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha". |
| Declaracao | string | entrada | informar os dados da Operação de transporte |
| cStat | inteiro | saída | retorna um código numérico devolvido pela API, exemplos de retorno: 200-[mensagem do WS] 400-Bad Request 401-Unauthorized 500-Internal Server Error, etc. |
| msgResultado | string | saída | retorna um texto com a resposta devolvida pela API |
| msgDados | string | saída | retorna a mensagem Json enviada para a API |
| CIOT12 | string | saída | retorna o CIOT12 (Código de Identificação da Operação de Transporte de 12 dígitos) |
| CodigoVerificador | string | saída | retorna o Código verificador gerado pela ANTT validando os dados enviados – protocolo de autorização. |
| Protocolo | string | saída | retorna o Protocolo de sucesso no encerramento |
| Codigo | string | saída | retorna o Código do erro ou sucesso no retorno da informação. |
| Mensagem | string | saída | retorna a mensagem do resultado da chamada da API |
| AvisoTransportador | string | saída | Mensagem de aviso cadastrada pela ANTT para o contratado. Sempre que existir esta mensagem, sua apresentação ao transportador e impressão no documento correspondente é obrigatória. |
Retorno da chamada:
O resultado da chamada da API ANTT_DeclaraOpeTransp é a resposta JSON, exemplo:
{ "IdOperacaoTransporte": "560000119602", "CodigoVerificador": "3535", "Protocolo": "T98000000000720", "Codigo": "110", "Mensagem": "Dados inseridos com sucesso!", "AvisoTransportador": null }
Histórico de atualização:
- 2026-06-01 - versão inicial
Exemplo de JSON enviado para a API da ANTT
{ "IdOperacaoTransporte": "560000119602", "TipoOperacao": 1, "CpfCnpjContratado": "15432946000447", "RNTRCContratado": "045464436", "CpfCnpjContratante": "00000000000272", "CpfCnpjDestinatario": "00000000000191", "ValorFrete": "123456.00", "DataDeclaracao": "2026-05-30T16:10:00", "IndContingencia": "false", "DataInicioViagem": "2026-06-01", "DataFimViagem": "2026-06-05", "Veiculos": [ { "Placa": "ENK1666", "RNTRC": "045464436", "NumeroEixos": "3" } ], "OrigemDestino": [ { "Origem": { "CodigoMunicipioOrigem": "4115200", "CepOrigem": "87013230" }, "Destino": { "CodigoMunicipioDestino": "2304400", "CepDestino": "60874430" }, "DistanciaPercorrida": "3234", "QtdViagens": "1" } ], "DadosCarga": { "CodigoNaturezaCarga": "2202", "PesoCarga": "120", "CodigoTipoCarga": "5" }, "InfPagamento": [ { "TipoPagamento": "6", "ChavePix": "12345678910", "CpfCnpjCreditado": "00000000191", "IdentificadorPix": "E00416968202605292029sdZYM77Ie2l", "IndPagamento": "0" } ], "InfIndicadoresOperacionais": { "IndAltoDesempenho": "false", "IndRetornoVazio": "false", "ComposicaoVeicular": "false" } }
Exemplo de JSON da Declaração realizada com sucesso
{ "IdOperacaoTransporte": "560000119602", "CodigoVerificador": "3435", "Protocolo": "E98000000043628", "Codigo": "110", "Mensagem": "Dados inseridos com sucesso!", "AvisoTransportador": null }
Exemplo de JSON da resposta de rejeição da Declaração
{ "IdOperacaoTransporte": null, "CodigoVerificador": null, "Protocolo": "E98000000043628", "Codigo": "208,219,269", "Mensagem": ["Código de identificação da operação já cadastrado.","Rejeição: A data e hora da declaração está fora do intervalo de tolerância permitido para esta operação.","Rejeição: A data de início da viagem não pode ser inferior à data atual."], "AvisoTransportador": null }
Exemplo de JSON da resposta: "USUARIO_NAO_AUTORIZADO"
{ "error": "USUARIO_NAO_AUTORIZADO", "message": "Rejeição: O CPF/CNPJ do certificado digital não corresponde a nenhum transportador cadastrado no RNTRC", "timestamp": "2026-06-03T01:33:25.3362597Z", "correlationId": "63ee382a-6ca2-4d4d-9a8f-bed7326bfe5b", "path": "/pefServices/api/DeclaracaoOperacaoTransporte/" }
Importante
O trecho do JSON foi formatado para uma melhor visualização, a mensagem original não tem formatação.
Exemplos de uso:
c#
// inicialização das variáveis utilizadas int tpAmb = 2; string nomeCertificado = "CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR"; // usar a funcionalidade ANTT_Declaracao para gerar a Declaração string Declaracao = "{\"IdOperacaoTransporte\": \"560000119602\", \"TipoOperacao\": 1, \"CpfCnpjContratado\": \"15432946000447\", \"RNTRCContratado\": \"045464436\", \"CpfCnpjContratante\": \"00000000000272\", \"CpfCnpjDestinatario\": \"00000000000191\", \"ValorFrete\": \"123456.00\", \"DataDeclaracao\": \"2026-05-30T16:10:00\", \"IndContingencia\": \"false\", \"DataInicioViagem\": \"2026-06-01\", \"DataFimViagem\": \"2026-06-05\", \"Veiculos\": [{\"Placa\": \"ENK1666\", \"RNTRC\": \"045464436\", \"NumeroEixos\": \"3\" }], \"OrigemDestino\": [{\"Origem\": {\"CodigoMunicipioOrigem\": \"4115200\", \"CepOrigem\": \"87013230\" }, \"Destino\": {\"CodigoMunicipioDestino\": \"2304400\", \"CepDestino\": \"60874430\" }, \"DistanciaPercorrida\": \"3234\", \"QtdViagens\": \"1\" }], \"DadosCarga\": { \"CodigoNaturezaCarga\": \"2202\", \"PesoCarga\": \"120\", \"CodigoTipoCarga\": \"5\"}, \"InfPagamento\": [{\"TipoPagamento\": \"6\", \"ChavePix\": \"12345678910\" , \"CpfCnpjCreditado\": \"00000000191\" , \"IdentificadorPix\": \"E00416968202605292029sdZYM77Ie2l\" , \"IndPagamento\": \"0\" }] , \"InfIndicadoresOperacionais\":{\"IndAltoDesempenho\": \"false\", \"IndRetornoVazio\": \"false\", \"ComposicaoVeicular\": \"false\" }}"; string CIOT12 = ""; string CodigoVerificador = ""; string Codigo = ""; string Mensagem = ""; string AvisoTransportador = ""; string Protocolo = ""; int cStat = 0; string msgResultado = ""; string msgDados = ""; string msgRetWS = ""; // instancia DLL MDFe_Util.Util util = new MDFe_Util.Util(); // consome API msgRetWS = util.ANTT_DeclaraOpeTransp(tpAmb, nomeCertificado, Declaracao, out cStat, out msgResultado, out msgDados, out CIOT12, out CodigoVerificador, out Protocolo, out Codigo, out Mensagem, out AvisoTransportador); // exibe JSON gerado com formatação MessageBox.Show(msgResultado,"Declaração Operação de Transporte"); //
- 6.4. Declara Operação de Transporte
6. API da ANTT para emissão do CIOT - « Anterior
6.3. Consulta Frota Transportador - Próximo »
6.4.1. Declaração Operação de Transporte
