Migrando CT-e 2.00 para 3.00

A CTeLibrary suporta a versão 3.00 do CT-e a partir da versão 2017/02.

O prazo final da vigência da versão 2.00 está marcado para 04/12/2017. Portanto, a não ser que haja uma prorrogação, os desenvolvedores têm até 03/12/2017 para atualizar suas aplicações que hoje estão trabalhando com a versão 2.00 para utilizarem a versão 3.00 do CT-e.

Destacaremos aqui as principais mudanças para auxiliá-lo neste processo.

É importante ressaltar que não podemos garantir que todas as alterações realizadas na versão 3.00 estejam nesta documentação. Portanto, recomendamos que você examine o manual de orientação do contribuinte.

Antes de começar a migração para esta nova versão, faça um backup completo de seu ambiente de desenvolvimento, a fim de que possa ser possível retornar à versão anterior no caso de algum problema.

CT-e OS

Na versão 3.00 do XML do CT-e, foi incluído o CT-e Outros Serviços, ou simplesmente, CT-e OS. O CT-e OS usa o modelo 67 e substitui a Nota Fiscal de Serviço de Transporte, modelo 7, para  acobertar os serviços a seguir:

  • Excesso de bagagem
  • Transporte de pessoas
  • Transporte de valores

Foram incluídas duas novas funções na CTeLibrary para suportar o CT-e OS:

O CT-e OS possui um schema XML específico e diferente do CT-e modelo 57. Se precisa desenvolver o CT-e OS para algum cliente, consulte manual de orientação do contribuinte.

Formato de datas

As tags de data e hora agora são do tipo TDateTimeUTC. Este tipo requer a data no formato UTC completo com a informação do TimeZone. Esta representação já é utilizada atualmente no projeto da NF-e.

Na versão 3.00 do layout do CT-e, serão aceitos os horários de qualquer região do mundo (faixa de horário UTC de -11 a +12) e não apenas faixas de horário do Brasil.

Um exemplo de data neste formato: 2017-07-08T13:00:15-03:00.

O desenvolvedor precisará revisar sua aplicação para gerar as datas que requerem este novo formato.

Alterações no modal aéreo

Tags removidas

As tags "xLAgEmi" e "IdT" não existem mais na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais estas tags. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para elas.

Novo grupo peri

O grupo opcional "peri" foi incluído no modal aéreo. Informe os dados deste grupo na estrutura, se necessário, para a função CTeGeraXML gerar o grupo.

Alterações no grupo natCarga

O grupo natCarga agora deve ser gerado logo após a tag dPrevAereo. O desenvolvedor não precisa fazer nenhuma alteração quanto a isto, pois a função CTeGeraXML se encarregará de gerar na ordem correta.

Além disso, a tag "cIMP" for removida e não será mais gerada. Recomendamos que você altere sua rotina de geração do XML para não preencher mais esta tag. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para elas.

Alterações no CT-e multimodal

O grupo opcional "seg" foi incluído no CT-e multimodal. Informe os dados deste grupo na estrutura, se necessário, para a função CTeGeraXML gerar o grupo.

Alteraçoes no modal rodoviário

Tags removidas

As tags "dPrev", "lota" e "CIOT" não existem mais na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais estas tags. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para elas.

Grupos removidos

Os grupos "valePed", "veic", "lacRodo" e "moto"  foram removidos na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais estes grupos e suas tags. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para este grupo.

infCTe.ide

Tag removida

A tag forPag que era opcional na versão 2.00 foi removida na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais esta tag. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para ela.

Novas tags

Foi incluída uma nova tag "indGlobalizado" dentro do grupo "ide". Informe o valor no campo correspondente da estrutura caso deseje gerar esta tag em seu XML.

Foi incluída uma nova tag "indIEToma" dentro do grupo "ide". Informe o valor no campo correspondente da estrutura para gerar esta tag em seu XML. Esta tag é obrigatória.

infCTe.infCTeNorm.infCarga

Uma nova tag "vCargaAverb" foi adicionada no grupo infCarga. Informe o valor no campo correspondente da estrutura caso deseje gerar esta tag em seu XML.

infCte.infCTeNorm.seg

O grupo infCte.infCTeNorm.seg não existe mais na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais este grupo e suas tags. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para este grupo.

infCte.infCTeNorm.peri

O grupo infCte.infCTeNorm.peri não existe mais na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais este grupo e suas tags. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para este grupo.

infCte.infCTeNorm.infCTesub

Novas tags

Foi incluída uma nova tag "refCteAnu" dentro do grupo infCte.infCTeNorm.infCTesub. Informe o valor no campo correspondente da estrutura caso deseje gerar esta tag em seu XML.

Foi incluída uma nova tag "indAlteraToma" dentro do grupo infCte.infCTeNorm.infCTesub. Informe o valor no campo correspondente da estrutura caso deseje gerar esta tag em seu XML.

Tag refCteAnu

A tag "refCteAnu", que ficava dentro do grupo "tomaNaoICMS", agora fica dentro do grupo infCteSub. Para gerar esta tag, preencha o campo correto na estrutura que será passada para a função CTeGeraXML.

Grupo removido

O grupo "tomaNaoICMS" foi removido na versão 3.00. Recomendamos que você altere sua rotina de geração do XML para não preencher mais este grupo e suas tags. Se você não alterar, a função de CTeGeraXML simplesmente irá ignorar qualquer valor informado para este grupo.

infCte.infCTeNorm.infGlobalizado

O grupo opcional "infGlobalizado" foi incluído em infCte.infCTeNorm. Informe os dados deste grupo na estrutura, se necessário, para a função CTeGeraXML gerar o grupo.

infCte.infCTeNorm.infServVinc

O grupo opcional "infServVinc" foi incluído em infCte.infCTeNorm. Informe os dados deste grupo na estrutura, se necessário, para a função CTeGeraXML gerar o grupo.

infCte.infCteComp

O campo "chave" dentro do grupo infCte.infCteComp mudou de nome para "chCTe". A fim de que os desenvolvedores não tenham que alterar nada em seu código fonte, mantivemos o nome do campo na estrutura tCTe_infCTeComp com o nome "chCTe".