Marco Tulio Lima Alves Postado 28 Maio Postado 28 Maio Boa tarde! Como eu consigo identificar o CodigoNaturezaCarga? Existe uma tabela interna na ANTT disso? O que eu preciso informar neste campo?
Membros Pro Centrodata Sistemas Postado 28 Maio Membros Pro Postado 28 Maio Agora, Marco Tulio Lima Alves disse: Boa tarde! Como eu consigo identificar o CodigoNaturezaCarga? Existe uma tabela interna na ANTT disso? O que eu preciso informar neste campo? Boa tarde. É o NCM do produto de maior valor da carga. Ou 0001 que significa Carga Geral. 1
edivanrs Postado 29 Maio Postado 29 Maio (editado) Acredito que a forma correta seja atravez da url: https://appservices-hml.antt.gov.br/pefServices/api/DeclaracaoOperacaoTransporte no json de retono vem o CIOT no campo (CodigoIdentificacaoOperacao) Editado 29 Maio por edivanrs
Membros Pro VFADev Postado 29 Maio Membros Pro Postado 29 Maio Alguém que conseguiu fazer essa geração do CIOT em produção poderia compartilhar seu código?
Consultores Juliomar Marchetti Postado 29 Maio Consultores Postado 29 Maio 19 minutos atrás, VFADev disse: Alguém que conseguiu fazer essa geração do CIOT em produção poderia compartilhar seu código? em que? pois o CIOT existem diveros IPEF? Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Membros Pro Centrodata Sistemas Postado 29 Maio Membros Pro Postado 29 Maio 2 minutos atrás, Juliomar Marchetti disse: em que? pois o CIOT existem diveros IPEF? Boa tarde Parece que neste topico a galera está tratando de gerar o CIOT direto pelo webservice da ANTT, sem passar por um IPEF, que é permitido para a Frota Propria. 1
Membros Pro VFADev Postado 29 Maio Membros Pro Postado 29 Maio 29 minutos atrás, Centrodata Sistemas disse: Boa tarde Parece que neste topico a galera está tratando de gerar o CIOT direto pelo webservice da ANTT, sem passar por um IPEF, que é permitido para a Frota Propria. Isso mesmo!
Membros Pro Precisa Informatica Postado 1 Junho Membros Pro Postado 1 Junho Boa tarde! Alguém achou alguma solução para fazer em Produção?
Leandro Miler Santana Postado 2 Junho Postado 2 Junho Também estou procurando uma solução, pois em homologação gera perfeito, mas em produção não gera.
ben-hur.hungaro Postado 2 Junho Postado 2 Junho Alguem conseguiu gerar um id valido? eu tentei pela DLL tbm, ela gera o id.. porem ao transmtir ele da como invalido
fabio Postado 2 Junho Autor Postado 2 Junho somente usando o executável que esta disponível no site junto com o documentação de integração. Se possível passa o seu fonte aqui pra acessar a dll pra gerar o id, pro pessoal dar uma olhada
Membros liontecnologia Postado 2 Junho Membros Postado 2 Junho 3 horas atrás, ben-hur.hungaro disse: Alguem conseguiu gerar um id valido? eu tentei pela DLL tbm, ela gera o id.. porem ao transmtir ele da como invalido Até mais cedo estava funcionando. ninguém me reclamou pela tarde. Eu gerei em contingência com as tags e depois de uma hora consegui fazer envio.
Gm Saldanha Postado 3 Junho Postado 3 Junho Olá a todos, gostaria de saber se alguem obteve exito, se pode informar os endpoints. tentei gerar o Id , URL := 'https://appservices.antt.gov.br/pefServices/gerar'; , mas o retorno foi inviavel: === GERANDO CIOT === JSON Enviado: {"CpfCnpj":"31383970000147"} Status Code: 500 . E para a geracao do Ciot estou usando: https://appservices.antt.gov.br/pefServices/api/DeclaracaoOperacaoTransporte , mas ainda tenho varios bugs no meu codigo: {"IdOperacaoTransporte":null,"CodigoVerificador":null,"Protocolo":"E98000002677917","Codigo":"205,208,225","Mensagem":"[\"Rejeição: O campo IdOperacaoTransporte é inválido.\",\"Rejeição: É obrigatório informar ao menos um implemento quando o veÃculo automotor for do tipo cavalo-trator.\",\"Rejeição: CPF/CNPJ do destinatário obrigatório para o tipo de operação informado.\",\"Rejeição: O(s) contratante(s) da carga fracionada não pode(m) ser igual(is) ao contratante da operação de transporte.\",\"Rejeição: A data de inÃcio da viagem não pode ser inferior à data atual.\",\"Rejeição: A data de inÃcio da viagem não pode ser inferior à data de declaração.\"]","AvisoTransportador":null} . Se alguem tiver e puder fornecer mais informações, agradeço. Ps: Se nao houver problemas posso postar o codigo que estou utilizando no Xe8.
Membros Pro VFADev Postado 3 Junho Membros Pro Postado 3 Junho Pergunta do milhão, mas que ninguém responde. ACBr já foi mais colaborativo! 1
Gm Saldanha Postado 3 Junho Postado 3 Junho Ainda continuo tentando, vou postar um txt com o codigo que ja tenho para nao poluir o forum. Ps: 01- Estou validando usando o AcbrMdfe, achei mais simples. 02 - homologação: https://appservices-hml.antt.gov.br/pefServices/api/ , Produção: https://appservices.antt.gov.br/pefServices/api/. Se alguem puder dar uma olhada e dar um feedback, agradeço. Se faltar algo pode pedir aqui. Ate.Codigo geracao CIOT.txt
Marco Tulio Lima Alves Postado 3 Junho Postado 3 Junho (editado) 5 horas atrás, Gm Saldanha disse: Olá a todos, gostaria de saber se alguem obteve exito, se pode informar os endpoints. tentei gerar o Id , URL := 'https://appservices.antt.gov.br/pefServices/gerar'; , mas o retorno foi inviavel: === GERANDO CIOT === JSON Enviado: {"CpfCnpj":"31383970000147"} Status Code: 500 . E para a geracao do Ciot estou usando: https://appservices.antt.gov.br/pefServices/api/DeclaracaoOperacaoTransporte , mas ainda tenho varios bugs no meu codigo: {"IdOperacaoTransporte":null,"CodigoVerificador":null,"Protocolo":"E98000002677917","Codigo":"205,208,225","Mensagem":"[\"Rejeição: O campo IdOperacaoTransporte é inválido.\",\"Rejeição: É obrigatório informar ao menos um implemento quando o veÃculo automotor for do tipo cavalo-trator.\",\"Rejeição: CPF/CNPJ do destinatário obrigatório para o tipo de operação informado.\",\"Rejeição: O(s) contratante(s) da carga fracionada não pode(m) ser igual(is) ao contratante da operação de transporte.\",\"Rejeição: A data de inÃcio da viagem não pode ser inferior à data atual.\",\"Rejeição: A data de inÃcio da viagem não pode ser inferior à data de declaração.\"]","AvisoTransportador":null} . Se alguem tiver e puder fornecer mais informações, agradeço. Ps: Se nao houver problemas posso postar o codigo que estou utilizando no Xe8. Então. No seu Json, o campo IdOperacaoTransporte é o Valor gerado pela rota https://appservices.antt.gov.br/pefServices/gerar Inclusive, este é o numero que vai para o MDFe. Consegui fazer a declaração no Ambiente de Homologação, mas ainda não subimos para produção no nosso ERP. Inclusive, alguns grupos que eu tenho de transportadora esta dizendo que o ambiente de prod ainda está instavel e a orientação é emitir em contigencia. Editado 3 Junho por Marco Tulio Lima Alves 2 1
Gm Saldanha Postado 4 Junho Postado 4 Junho Ola, Marcos. O Valor foi gerado pela rota https://appservices-hml.antt.gov.br/pefServices/gerar que é de homologação, como fiz no codigo anexo acima e gera o json de saida: URL: https://appservices-hml.antt.gov.br/pefServices/gerar Status Code: 200 Resposta Bruta: {"Sucesso":true,"Mensagem":"CIOT gerado com sucesso","Dados":{"CIOT":"560000157333","CpfCnpj":"xx.xxx/xxxx-xx","DataGeracao":"2026-06-04T09:36:48.5855354"},"Erros":null} Mensagem do servidor: CIOT gerado com sucesso , >>> CIOT GERADO COM SUCESSO: 560000157333 <<< , mas se for feito em contingencia o prazo para validar posteriormente é de 7 dias, o problema é se a validação não der certo. Gostaria de saber se o codigo que estou usando com o acbrmdfe pra validar o certificado esta funcionando. 1
Gm Saldanha Postado 5 Junho Postado 5 Junho Alguem tem alguma novidade, consegui consumir todos os endpoints em homologação, mas em producao nao consigo gerar o IdOperacao: URL: https://appservices.antt.gov.br/pefServices/gerar Status Code: 500
Membros Pro Precisa Informatica Postado 8 Junho Membros Pro Postado 8 Junho Em 05/06/2026 at 17:37, Gm Saldanha disse: Alguem tem alguma novidade, consegui consumir todos os endpoints em homologação, mas em producao nao consigo gerar o IdOperacao: URL: https://appservices.antt.gov.br/pefServices/gerar Status Code: 500 Também não consegui descobrir nada por aqui ainda.
Gm Saldanha Postado 8 Junho Postado 8 Junho Só conseguir gerar um IdoperacaoTransporte valido usando o aplicativo https://www.gov.br/antt/pt-br/assuntos/cargas/ciot-para-todos-1/documentos-tecnicos/piso-minimo-ciot em producao com a Dll, de posse do codigo funcionou normal: Retorno: Status Code: 200 Resposta: {"IdOperacaoTransporte":"520004603581","CodigoVerificador":"3558","Protocolo":"5200046035813558","Codigo":"110","Mensagem":"Dados inseridos com sucesso!","AvisoTransportador":null}
Membro Pro Verificado Dangelo2010 Postado 9 Junho Membro Pro Verificado Postado 9 Junho Boa tarde! O ACBr ja tem um componente para o CIOT ANTT ou e feito somente direto pelo site? Dangelo Porto
Consultores Juliomar Marchetti Postado 10 Junho Consultores Postado 10 Junho 8 horas atrás, Dangelo2010 disse: Boa tarde! O ACBr ja tem um componente para o CIOT ANTT ou e feito somente direto pelo site? Existe o componente ACBrCIOT mas está funcional somente com eFrete . Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 10 Junho Postado 10 Junho (editado) Tive algum progresso aqui, usando diretamente o TDFeSSL do próprio ACBr. Obtive os dados tanto em produção como em homologação, claro que é apenas uma consulta, não evolui ainda para a geração do CIOT, mas fica a dica de utilizar o próprio TDFeSSL do ACBr procedure TForm1.Button1Click(Sender: TObject); const LUrlHomologacao : String = 'https://appservices-hml.antt.gov.br/pefServices'; LUrlProducao : String = 'https://appservices.antt.gov.br/pefServices'; var LSSL: TDFeSSL; //uses ACBrDFeSSL LJson: String; LRetorno: String; LUrl: String; begin if (not FDConnection1.Connected) then FDConnection1.Open; qCertificado.Close; qCertificado.Open; LSSL := TDFeSSL.Create; LSSL.SSLCryptLib := cryWinCrypt; LSSL.SSLHttpLib := httpWinHttp; LSSL.SSLXmlSignLib := xsLibXml2; //Carrega certificado A1 armazenado no abnco LSSL.Senha := qCertificadoSENHA.AsString; LSSL.NumeroSerie := qCertificadoNUMERO_SERIE.AsString; LSSL.DadosPFX := TNetEncoding.Base64.Decode(qCertificadoDADOS_PFX.AsAnsiString); LSSL.CarregarCertificado; if (not LSSL.CertificadoLido) then raise Exception.Create('Certificado digital não pode ser carregado! ' + 'Verifique certificado cadastrado no cadastro de filiais.'); if (LSSL.CertDataVenc < Now) then raise Exception.Create('Certificado da filial X venceu em ' + DateTimeToStr(LSSL.CertDataVenc)); //LUrl := LUrlHomologacao + '/api/ConsultarSituacaoTransportador'; LUrl := LUrlProducao + '/api/ConsultarSituacaoTransportador'; //segundo o manual o RNTRC se for 7 digitos deveria aceitar, mas aqui rejeitou, entao adicionei 0 a esquerda ate completar os 9 e passou LJson := '{"CpfCnpjInteressado": "xxxx", "CpfCnpjTransportador": "xxxx", "RNTRCTransportador": "999999999"}'; LRetorno := LSSL.Enviar(LJson, LUrl, '', 'application/json; charset=utf-8', '', False); end; Editado 10 Junho por MarcosRWeimer 1 -=Ma®©oS=-
Gm Saldanha Postado 11 Junho Postado 11 Junho Ola a todos, preciso de ajuda pra saber se o processo é valido. Abri a Dll GeradorCIOTShared.dll no ILSpy e ela foi compilada como uma DLL .NET. dentro dela temos: GeradorCIOTService_v3 ValidarCIOT GerarCIOT AutenticarEObterTokenAsync ObterApiKey. Ou seja a DLL possui autenticação própria. Então achei o token que é fixo : 3UwR]CYTeAQRF , pra usar em URL := 'https://mtcuybq605.execute-api.sa-east-1.amazonaws.com/api-ciot-prd/GeradorCIOT/token'; Depois disso montei o codigo: procedure TFRMMDFENEW.BitBtn31Click(Sender: TObject); var Http: TIdHTTP; SSL: TIdSSLIOHandlerSocketOpenSSL; JsonEnvio: TStringStream; Resposta: string; URL: string; Token: string; JsonResposta: TJSONObject; begin URL := 'https://mtcuybq605.execute-api.sa-east-1.amazonaws.com/api-ciot-prd/GeradorCIOT/token'; Http := TIdHTTP.Create(nil); SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil); SSL.SSLOptions.Method := sslvTLSv1_2; SSL.SSLOptions.SSLVersions := [sslvTLSv1_2]; try Http.IOHandler := SSL; Http.Request.ContentType := 'application/json'; Http.Request.Accept := 'application/json'; // vamos descobrir se a chave está correta Http.Request.CustomHeaders.Values['chave'] := '3UwR]CYTeAQRF'; JsonEnvio := TStringStream.Create('{}', TEncoding.UTF8); try Resposta := Http.Post(URL, JsonEnvio); MemoCIOT.Lines.Add('HTTP: ' + IntToStr(Http.ResponseCode)); MemoCIOT.Lines.Add('Resposta:'); MemoCIOT.Lines.Add(Resposta); finally JsonEnvio.Free; end; except on E: Exception do begin MemoCIOT.Lines.Add('ERRO: ' + E.Message); if Assigned(Http.Response) then MemoCIOT.Lines.Add('HTTP: ' + IntToStr(Http.ResponseCode)); end; end; JsonResposta := TJSONObject.ParseJSONValue(Resposta) as TJSONObject; if JsonResposta <> nil then begin try memociot.Lines.Add('=== Dados ==='); memociot.Lines.Add('token: ' + JsonResposta.GetValue<string>('token', '')); token:= JsonResposta.GetValue<string>('token', ''); finally JsonResposta.Free; end; end; URL :='https://mtcuybq605.execute-api.sa-east-1.amazonaws.com/api-ciot-prd/GeradorCIOT/gerar'; Http.Request.CustomHeaders.Values['Authorization'] := 'Bearer ' + Token; JsonEnvio := TStringStream.Create( '{"cpfCnpj":"'+OnlyNumbers(frmmodule.tblempresaCNPJ.Text)+'"}', TEncoding.UTF8 ); Resposta := Http.Post(URL, JsonEnvio); MemoCIOT.Lines.Add('Resposta: ' + Resposta); SSL.Free; Http.Free; end; Que vai retornar este resultado: HTTP: 200 Resposta: {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkV4ZWN1dGF2ZWxDbGllbnRlIiwibmJmIjoxNzgxMTgwNzQ3LCJleHAiOjE3ODExODQzNDcsImlhdCI6MTc4MTE4MDc0NywiaXNzIjoiR2VyYWRvckNJT1RBUEkiLCJhdWQiOiJHZXJhZG9yQ0lPVENsaWVudCJ9.XEk3ftq3a7wiHRTaHTBqeV6Niax4W4sUXxZ_NN7QiRU"} === Dados === token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkV4ZWN1dGF2ZWxDbGllbnRlIiwibmJmIjoxNzgxMTgwNzQ3LCJleHAiOjE3ODExODQzNDcsImlhdCI6MTc4MTE4MDc0NywiaXNzIjoiR2VyYWRvckNJT1RBUEkiLCJhdWQiOiJHZXJhZG9yQ0lPVENsaWVudCJ9.XEk3ftq3a7wiHRTaHTBqeV6Niax4W4sUXxZ_NN7QiRU Resposta: {"sucesso":true,"mensagem":"CIOT gerado com sucesso","dados":{"ciot":"520005524641","cnpj":"xx.xxx/xxxx-xx","dataGeracao":"2026-06-11T12:25:47.8038116+00:00"},"erros":null} , consegui consultar o ciot normalmente. Com isso não vou precisar usar o aplicativo da ANTT indiretamente, mas quero saber se não vai haver algum problema com isso, Obrigado. 2
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora