diff --git a/CTe.AppTeste/CTe.AppTeste.csproj b/CTe.AppTeste/CTe.AppTeste.csproj index 808601034..e7087b778 100644 --- a/CTe.AppTeste/CTe.AppTeste.csproj +++ b/CTe.AppTeste/CTe.AppTeste.csproj @@ -134,6 +134,14 @@ Designer Always + + Designer + Always + + + Designer + Always + Designer Always @@ -158,6 +166,10 @@ Designer Always + + Designer + Always + Designer Always @@ -166,6 +178,10 @@ Designer Always + + Designer + Always + Designer Always @@ -174,6 +190,10 @@ Designer Always + + Designer + Always + Designer Always @@ -182,6 +202,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -190,6 +222,10 @@ Designer Always + + Designer + Always + Designer Always @@ -198,6 +234,10 @@ Designer Always + + Designer + Always + Designer Always @@ -206,6 +246,10 @@ Designer Always + + Designer + Always + Designer Always @@ -214,10 +258,18 @@ Designer Always + + Designer + Always + Designer Always + + Designer + Always + Designer Always @@ -226,6 +278,10 @@ Designer Always + + Designer + Always + Designer Always @@ -234,10 +290,18 @@ Designer Always + + Designer + Always + Designer Always + + Designer + Always + Designer Always @@ -246,6 +310,10 @@ Designer Always + + Designer + Always + Designer Always @@ -254,6 +322,22 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -266,6 +350,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -274,6 +370,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -282,6 +390,70 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -290,6 +462,10 @@ Designer Always + + Designer + Always + Designer Always @@ -298,6 +474,10 @@ Designer Always + + Designer + Always + Designer Always @@ -306,14 +486,30 @@ Designer Always + + Designer + Always + Designer Always + + Designer + Always + + + Designer + Always + Designer Always + + Designer + Always + Designer Always @@ -322,6 +518,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -330,6 +538,10 @@ Designer Always + + Designer + Always + Designer Always @@ -338,14 +550,46 @@ Designer Always + + Designer + Always + + + Designer + Always + Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always + + Designer + Always + Designer Always @@ -354,6 +598,10 @@ Designer Always + + Designer + Always + Designer Always @@ -362,6 +610,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -370,10 +630,22 @@ Designer Always + + Designer + Always + Designer Always + + Designer + Always + + + Designer + Always + Designer Always @@ -390,6 +662,10 @@ Designer Always + + Designer + Always + Designer Always @@ -398,10 +674,42 @@ Designer Always + + Designer + Always + + + Designer + Always + Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -422,6 +730,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always @@ -430,6 +750,14 @@ Designer Always + + Designer + Always + + + Designer + Always + Designer Always @@ -454,6 +782,10 @@ Designer Always + + Designer + Always + Designer Always diff --git a/CTe.AppTeste/CTeTesteModel.cs b/CTe.AppTeste/CTeTesteModel.cs index b53a8c392..3a904142e 100644 --- a/CTe.AppTeste/CTeTesteModel.cs +++ b/CTe.AppTeste/CTeTesteModel.cs @@ -623,7 +623,7 @@ public void ConsultarStatusServico2() CarregarConfiguracoes(config); var statusServico = new StatusServico(); - var retorno = statusServico.ConsultaStatus(); + var retorno = statusServico.ConsultaStatusV4(); OnSucessoSync(new RetornoEEnvio(retorno)); } @@ -662,10 +662,18 @@ public void ConsultaPorProtocolo() CarregarConfiguracoes(config); var servicoConsultaProtocolo = new ConsultaProtcoloServico(); - var retorno = servicoConsultaProtocolo.ConsultaProtocolo(chave); - OnSucessoSync(new RetornoEEnvio(retorno)); + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve200) + { + var retorno = servicoConsultaProtocolo.ConsultaProtocolo(chave); + OnSucessoSync(new RetornoEEnvio(retorno)); + } + else // versao 4.00 + { + var retorno = servicoConsultaProtocolo.ConsultaProtocoloV4(chave); + OnSucessoSync(new RetornoEEnvio(retorno)); + } } @@ -864,7 +872,12 @@ public void CriarEnviarCTe2e3() #region infCte cteEletronico.infCte = new infCte(); - cteEletronico.infCte.versao = config.ConfigWebService.Versao; + + if (config.ConfigWebService.Versao == versao.ve400 || config.ConfigWebService.Versao == versao.ve300) + { + cteEletronico.infCte.versao = versao.ve300; + } + #endregion @@ -903,7 +916,7 @@ public void CriarEnviarCTe2e3() cteEletronico.infCte.ide.UFFim = config.Empresa.SiglaUf; cteEletronico.infCte.ide.retira = retira.Nao; - if (config.ConfigWebService.Versao == versao.ve300) + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve400) { cteEletronico.infCte.ide.indIEToma = indIEToma.ContribuinteIcms; } @@ -916,7 +929,7 @@ public void CriarEnviarCTe2e3() }; } - if (config.ConfigWebService.Versao == versao.ve300) + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve400) { cteEletronico.infCte.ide.tomaBase3 = new toma3 { @@ -946,6 +959,11 @@ public void CriarEnviarCTe2e3() cteEletronico.infCte.emit.enderEmit.UF = config.Empresa.SiglaUf; cteEletronico.infCte.emit.enderEmit.fone = config.Empresa.Telefone; + if (config.ConfigWebService.Versao == versao.ve400) + { + cteEletronico.infCte.emit.CRT = CRT.SimplesNacionalMei; // agora temos o simples nacional MEI , é diferente de simples nacional. + } + #endregion // Remetente , no caso adicionei os mesmos dados do emitente.. mas seriam o do remente. @@ -1006,7 +1024,7 @@ public void CriarEnviarCTe2e3() cteEletronico.infCte.imp.ICMS.TipoICMS = icmsSimplesNacional; - if (config.ConfigWebService.Versao == versao.ve300) + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve400) { icmsSimplesNacional.CST = CST.ICMS90; } @@ -1056,6 +1074,11 @@ public void CriarEnviarCTe2e3() cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM300; } + if (config.ConfigWebService.Versao == versao.ve400) + { + cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM400; + } + var rodoviario = new rodo(); rodoviario.RNTRC = config.Empresa.RNTRC; @@ -1070,16 +1093,30 @@ public void CriarEnviarCTe2e3() #endregion - var numeroLote = InputBoxTuche("Número Lote"); + var servicoRecepcao = new ServicoCTeRecepcao(); - // Evento executado antes do envio do CT-e para o WebService - // servicoRecepcao.AntesDeEnviar += AntesEnviarLoteCte; - var retornoEnvio = servicoRecepcao.CTeRecepcao(int.Parse(numeroLote), new List { cteEletronico }); + if (config.ConfigWebService.Versao == versao.ve300) + { + var numeroLote = InputBoxTuche("Número Lote"); + // Evento executado antes do envio do CT-e para o WebService + // servicoRecepcao.AntesDeEnviar += AntesEnviarLoteCte; + + var retornoEnvio = servicoRecepcao.CTeRecepcao(int.Parse(numeroLote), new List { cteEletronico }); + + OnSucessoSync(new RetornoEEnvio(retornoEnvio)); + } + + if (config.ConfigWebService.Versao == versao.ve400) + { + var retornoEnvio = servicoRecepcao.CTeRecepcaoSincronoV4(cteEletronico); + + OnSucessoSync(new RetornoEEnvio(retornoEnvio)); + + } - OnSucessoSync(new RetornoEEnvio(retornoEnvio)); config.ConfigWebService.Numeracao++; new ConfiguracaoDao().SalvarConfiguracao(config); @@ -1110,7 +1147,12 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() #region infCte cteEletronico.infCte = new infCte(); - cteEletronico.infCte.versao = config.ConfigWebService.Versao; + + if (config.ConfigWebService.Versao == versao.ve400 || config.ConfigWebService.Versao == versao.ve300) + { + cteEletronico.infCte.versao = versao.ve300; + } + #endregion @@ -1129,7 +1171,7 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() cteEletronico.infCte.ide.mod = ModeloDocumento.CTe; cteEletronico.infCte.ide.serie = config.ConfigWebService.Serie; cteEletronico.infCte.ide.nCT = config.ConfigWebService.Numeracao; - cteEletronico.infCte.ide.dhEmi = DateTime.Now; + cteEletronico.infCte.ide.dhEmi = DateTimeOffset.Now; cteEletronico.infCte.ide.tpImp = tpImp.Retrado; cteEletronico.infCte.ide.tpEmis = tpEmis.teNormal; cteEletronico.infCte.ide.tpAmb = config.ConfigWebService.Ambiente; // o serviço adicionara automaticamente isso para você @@ -1149,7 +1191,7 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() cteEletronico.infCte.ide.UFFim = config.Empresa.SiglaUf; cteEletronico.infCte.ide.retira = retira.Nao; - if (config.ConfigWebService.Versao == versao.ve300) + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve400) { cteEletronico.infCte.ide.indIEToma = indIEToma.ContribuinteIcms; } @@ -1162,7 +1204,7 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() }; } - if (config.ConfigWebService.Versao == versao.ve300) + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve400) { cteEletronico.infCte.ide.tomaBase3 = new toma3 { @@ -1192,6 +1234,11 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() cteEletronico.infCte.emit.enderEmit.UF = config.Empresa.SiglaUf; cteEletronico.infCte.emit.enderEmit.fone = config.Empresa.Telefone; + if (config.ConfigWebService.Versao == versao.ve400) + { + cteEletronico.infCte.emit.CRT = CRT.SimplesNacionalMei; // agora temos o simples nacional MEI , é diferente de simples nacional. + } + #endregion // Remetente , no caso adicionei os mesmos dados do emitente.. mas seriam o do remente. @@ -1252,7 +1299,7 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() cteEletronico.infCte.imp.ICMS.TipoICMS = icmsSimplesNacional; - if (config.ConfigWebService.Versao == versao.ve300) + if (config.ConfigWebService.Versao == versao.ve300 || config.ConfigWebService.Versao == versao.ve400) { icmsSimplesNacional.CST = CST.ICMS90; } @@ -1302,6 +1349,11 @@ public void CriarEnviarCTeConsultaReciboAutomatico2e3() cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM300; } + if (config.ConfigWebService.Versao == versao.ve400) + { + cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM400; + } + var rodoviario = new rodo(); rodoviario.RNTRC = config.Empresa.RNTRC; diff --git a/CTe.AppTeste/MainWindow.xaml b/CTe.AppTeste/MainWindow.xaml index aa32f16ef..f928d0d3c 100644 --- a/CTe.AppTeste/MainWindow.xaml +++ b/CTe.AppTeste/MainWindow.xaml @@ -213,7 +213,7 @@ - + diff --git a/CTe.AppTeste/schemas/GTVe_v3.00.xsd b/CTe.AppTeste/schemas/GTVe_v3.00.xsd new file mode 100644 index 000000000..2ca3b86c6 --- /dev/null +++ b/CTe.AppTeste/schemas/GTVe_v3.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Guia de Trasnsporte Eletrônica + + + diff --git a/CTe.AppTeste/schemas/GTVe_v4.00.xsd b/CTe.AppTeste/schemas/GTVe_v4.00.xsd new file mode 100644 index 000000000..66cd2adb3 --- /dev/null +++ b/CTe.AppTeste/schemas/GTVe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Guia de Trasnsporte Eletrônica + + + diff --git a/CTe.AppTeste/schemas/consNSUFaltCTe_v3.00.xsd b/CTe.AppTeste/schemas/consNSUFaltCTe_v3.00.xsd new file mode 100644 index 000000000..f952c98c6 --- /dev/null +++ b/CTe.AppTeste/schemas/consNSUFaltCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação da área de dados da mensagem da consulta NSU Faltantes + + + diff --git a/CTe.AppTeste/schemas/consProtFaltCTe_v3.00.xsd b/CTe.AppTeste/schemas/consProtFaltCTe_v3.00.xsd new file mode 100644 index 000000000..cf77307e7 --- /dev/null +++ b/CTe.AppTeste/schemas/consProtFaltCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Pedido de consulta de Protocolos Faltantes de CT-e + + + diff --git a/CTe.AppTeste/schemas/consSitCTeTiposBasico_v3.00.xsd b/CTe.AppTeste/schemas/consSitCTeTiposBasico_v3.00.xsd index caac0a22a..1bbcc44e6 100644 --- a/CTe.AppTeste/schemas/consSitCTeTiposBasico_v3.00.xsd +++ b/CTe.AppTeste/schemas/consSitCTeTiposBasico_v3.00.xsd @@ -1,5 +1,5 @@ - + diff --git a/CTe.AppTeste/schemas/consSitCTeTiposBasico_v4.00.xsd b/CTe.AppTeste/schemas/consSitCTeTiposBasico_v4.00.xsd new file mode 100644 index 000000000..27525a233 --- /dev/null +++ b/CTe.AppTeste/schemas/consSitCTeTiposBasico_v4.00.xsd @@ -0,0 +1,123 @@ + + + + + + + + Tipo Pedido de Consulta da Situação Atual do Conhecimento de Transporte eletrônico + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + Chaves de acesso da CT-e + + + + + + + + + + + + Tipo Retorno de Pedido de Consulta da Situação Atual do Conhecimento de Transporte eletrônico + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o CT-e + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + código da UF de atendimento + + + + + + + + Retornar protCTe da versão correspondente do CT-e autorizado + + + + + + + + + + + + + + + + + + + + + + + Retornar procEventoCTe da versão correspondente do evento CT-e autorizado + + + + + + + + + + + + + + + + + + + + + + Tipo Versão do Consulta situação de CT-e - 4.00 + + + + + + diff --git a/CTe.AppTeste/schemas/consSitCTe_v4.00.xsd b/CTe.AppTeste/schemas/consSitCTe_v4.00.xsd new file mode 100644 index 000000000..c9825f322 --- /dev/null +++ b/CTe.AppTeste/schemas/consSitCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema de validação XML dp Pedido de Consulta da Situação Atual do CT-e. + + + diff --git a/CTe.AppTeste/schemas/consStatServCTe_v4.00.xsd b/CTe.AppTeste/schemas/consStatServCTe_v4.00.xsd new file mode 100644 index 000000000..bc2ed3598 --- /dev/null +++ b/CTe.AppTeste/schemas/consStatServCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Pedido de Consulta do Status do Serviço CT-e + + + diff --git a/CTe.AppTeste/schemas/consStatServTiposBasico_v4.00.xsd b/CTe.AppTeste/schemas/consStatServTiposBasico_v4.00.xsd new file mode 100644 index 000000000..a79fae2cc --- /dev/null +++ b/CTe.AppTeste/schemas/consStatServTiposBasico_v4.00.xsd @@ -0,0 +1,115 @@ + + + + + + + Tipo Pedido de Consulta do Status do Serviço CTe + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Código da UF a ser verificado o status + Utilizar a Tabela do IBGE. + + + + + Serviço Solicitado + + + + + + + + + + + + Tipo Resultado da Consulta do Status do Serviço CTe + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o CT-e + + + + + + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + Código da UF responsável pelo serviço + + + + + AAAA-MM-DDTHH:MM:SS TZD + + + + + Tempo médio de resposta do serviço (em segundos) dos últimos 5 minutos + + + + + + + + + + AAAA-MM-DDTHH:MM:SSDeve ser preenchida com data e hora previstas para o retorno dos serviços prestados. + + + + + Campo observação utilizado para incluir informações ao contribuinte + + + + + + + + + + + + + + + Tipo Versão do Consulta do Status do Serviço CTe + + + + + + diff --git a/CTe.AppTeste/schemas/cteConsultaDFeTiposBasico_v1.00.xsd b/CTe.AppTeste/schemas/cteConsultaDFeTiposBasico_v1.00.xsd new file mode 100644 index 000000000..85935c021 --- /dev/null +++ b/CTe.AppTeste/schemas/cteConsultaDFeTiposBasico_v1.00.xsd @@ -0,0 +1,155 @@ + + + + + + + Tipo Pedido de Consulta do Conhecimento de Transporte eletrônico + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + Chaves de acesso da CT-e, compostas por: UF do emitente, AAMM da emissão da CT-e, CNPJ do emitente, modelo, série e número da CT-e e código numérico + DV. + + + + + + + + + + + + Tipo Retorno de Pedido de Consulta do Conhecimento de Transporte eletrônico + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a consulta do CT-e + + + + + Código do status da consulta do CT-e + + + + + Descrição literal do status da consulta do CT-e + + + + + + + + + Tipo Documento Fiscal Eletrônico CT-e + + + + + + + + Autorização de Uso do CT-e + + + + + + Versão do proc + + + + + + + + + + + + + + + + + + + + Solicitação de Cancelamento do CT-e + + + + + + Versão do procCancCTe + + + + + + + + + + + + + + + + + + Demais eventos vinculados ao CT-e + + + + + + Versão do procEventoCTe + + + + + + + + + + + + + + + + + + Tipo Versão do Consulta DFe de CT-e - 1.00 + + + + + + diff --git a/CTe.AppTeste/schemas/cteConsultaDFe_v1.00.xsd b/CTe.AppTeste/schemas/cteConsultaDFe_v1.00.xsd new file mode 100644 index 000000000..e859d3d3d --- /dev/null +++ b/CTe.AppTeste/schemas/cteConsultaDFe_v1.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema de validação XML do Pedido de Consulta do CT-e. + + + diff --git a/CTe.AppTeste/schemas/cteModalAereo_v4.00.xsd b/CTe.AppTeste/schemas/cteModalAereo_v4.00.xsd new file mode 100644 index 000000000..fbb254601 --- /dev/null +++ b/CTe.AppTeste/schemas/cteModalAereo_v4.00.xsd @@ -0,0 +1,240 @@ + + + + + + + Informações do modal Aéreo + + + + + + Número da Minuta + Documento que precede o CT-e, assinado pelo expedidor, espécie de pedido de serviço + + + + + + + + + + + Número Operacional do Conhecimento Aéreo + Representa o número de controle comumente utilizado pelo conhecimento aéreo composto por uma sequência numérica de onze dígitos. Os três primeiros dígitos representam um código que os operadores de transporte aéreo associados à IATA possuem. Em seguida um número de série de sete dígitos determinados pelo operador de transporte aéreo. Para finalizar, um dígito verificador, que é um sistema de módulo sete imponderado o qual divide o número de série do conhecimento aéreo por sete e usa o resto como dígito de verificação. + + + + + + + + + + + Data prevista da entrega + Formato AAAA-MM-DD + + + + + Natureza da carga + + + + + + Dimensão + Formato:1234X1234X1234 (cm). Esse campo deve sempre que possível ser preenchido. Entretanto, quando for impossível o preenchimento das dimensões, fica obrigatório o preenchimento da cubagem em metro cúbico do leiaute do CT-e da estrutura genérica (infQ). + + + + + + + + + + + + Informações de manuseio + 01 - certificado do expedidor para embarque de animal vivo; + +02 - artigo perigoso conforme Declaração do Expedidor anexa; + +03 - somente em aeronave cargueira; + +04 - artigo perigoso - declaração do expedidor não requerida; + +05 - artigo perigoso em quantidade isenta; + +06 - gelo seco para refrigeração (especificar no campo observações a quantidade); + +07 - não restrito (especificar a Disposição Especial no campo observações); + +08 - artigo perigoso em carga consolidada (especificar a quantidade no campo observações) +; +09 - autorização da autoridade governamental anexa (especificar no campo observações); + +10 – baterias de íons de lítio em conformidade com a Seção II da PI965 – CAO +; +11 - baterias de íons de lítio em conformidade com a Seção II da PI966 +; +12 - baterias de íons de lítio em conformidade com a Seção II da PI967 +; +13 – baterias de metal lítio em conformidade com a Seção II da PI968 — CAO; + +14 - baterias de metal lítio em conformidade com a Seção II da PI969; + +15 - baterias de metal lítio em conformidade com a Seção II da PI970 +; +99 - outro (especificar no campo observações) +. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Informações de tarifa + + + + + + Classe + Preencher com: + M - Tarifa Mínima; + G - Tarifa Geral; + E - Tarifa Específica + + + + + + + + + + + + + + Código da Tarifa + Deverão ser incluídos os códigos de três dígitos, correspondentes à tarifa. + + + + + + + + + + + Valor da Tarifa + Valor da tarifa por kg quando for o caso. + + + + + + + + Preenchido quando for transporte de produtos classificados pela ONU como perigosos. + O preenchimento desses campos não desobriga a empresa aérea de emitir os demais documentos que constam na legislação vigente. + + + + + + Número ONU/UN + Ver a legislação de transporte de produtos perigosos aplicadas ao modal + + + + + + + + + + + Quantidade total de volumes contendo artigos perigosos + Preencher com o número de volumes (unidades) de artigos perigosos, ou seja, cada embalagem devidamente marcada e etiquetada (por ex.: número de caixas, de tambores, de bombonas, dentre outros). Não deve ser preenchido com o número de ULD, pallets ou containers. + + + + + + + + + + + Grupo de informações das quantidades totais de artigos perigosos + Preencher conforme a legislação de transporte de produtos perigosos aplicada ao modal + + + + + + Quantidade total de artigos perigosos + 15 posições, sendo 11 inteiras e 4 decimais. +Deve indicar a quantidade total do artigo perigoso, tendo como base a unidade referenciada na Tabela 3-1 do Doc 9284, por exemplo: litros; quilogramas; quilograma bruto etc. O preenchimento não deve, entretanto, incluir a unidade de medida. No caso de transporte de material radioativo, deve-se indicar o somatório dos Índices de Transporte (TI). Não indicar a quantidade do artigo perigoso por embalagem. + + + + + Unidade de medida + 1 – KG; +2 – KG G (quilograma bruto); +3 – LITROS; +4 – TI (índice de transporte para radioativos); 5- Unidades (apenas para artigos perigosos medidos em unidades que não se enquadram nos itens acima. Exemplo: baterias, celulares, equipamentos, veículos, dentre outros) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/cteModalAquaviario_v4.00.xsd b/CTe.AppTeste/schemas/cteModalAquaviario_v4.00.xsd new file mode 100644 index 000000000..a4fe08399 --- /dev/null +++ b/CTe.AppTeste/schemas/cteModalAquaviario_v4.00.xsd @@ -0,0 +1,207 @@ + + + + + + + Informações do modal Aquaviário + + + + + + Valor da Prestação Base de Cálculo do AFRMM + + + + + AFRMM (Adicional de Frete para Renovação da Marinha Mercante) + + + + + Identificação do Navio + + + + + + + + + + + Grupo de informações das balsas + + + + + + Identificador da Balsa + + + + + + + + + + + + + + Número da Viagem + + + + + + + + + + + Direção + Preencher com: N-Norte, L-Leste, S-Sul, O-Oeste + + + + + + + + + + + + + + Irin do navio sempre deverá ser informado + + + + + + + + + + + + Grupo de informações de detalhamento dos conteiners +(Somente para Redespacho Intermediário e Serviço Vinculado a Multimodal) + + + + + + Identificação do Container + + + + + Grupo de informações dos lacres dos cointainers da qtde da carga + + + + + + Lacre + + + + + + + + + + + + + + Informações dos documentos dos conteiners + + + + + + Informações das NF + + + + + + Série + + + + + + + + + + + Número + + + + + + + + + + + Unidade de medida rateada (Peso,Volume) + + + + + + + + Informações das NFe + + + + + + Chave de acesso da NF-e + + + + + Unidade de medida rateada (Peso,Volume) + + + + + + + + + + + + + + Tipo de Navegação + Preencher com: + 0 - Interior; + 1 - Cabotagem + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/cteModalDutoviario_v4.00.xsd b/CTe.AppTeste/schemas/cteModalDutoviario_v4.00.xsd new file mode 100644 index 000000000..bc9c8940a --- /dev/null +++ b/CTe.AppTeste/schemas/cteModalDutoviario_v4.00.xsd @@ -0,0 +1,30 @@ + + + + + + + + Informações do modal Dutoviário + + + + + + Valor da tarifa + + + + + Data de Início da prestação do serviço + + + + + Data de Fim da prestação do serviço + + + + + + diff --git a/CTe.AppTeste/schemas/cteModalFerroviario_v4.00.xsd b/CTe.AppTeste/schemas/cteModalFerroviario_v4.00.xsd new file mode 100644 index 000000000..2a789ac65 --- /dev/null +++ b/CTe.AppTeste/schemas/cteModalFerroviario_v4.00.xsd @@ -0,0 +1,231 @@ + + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município + Utilizar a tabela do IBGE + Informar 9999999 para operações com o exterior. + + + + + Nome do município + Informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + + + + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + + + Informações do modal Ferroviário + + + + + + Tipo de Tráfego + Preencher com: + 0-Próprio; + 1-Mútuo; + 2-Rodoferroviário; + 3-Rodoviário. + + + + + + + + + + + + + + Detalhamento de informações para o tráfego mútuo + + + + + + Responsável pelo Faturamento + Preencher com: + 1-Ferrovia de origem; + 2-Ferrovia de destino + + + + + + + + + + + + Ferrovia Emitente do CTe + Preencher com: + 1-Ferrovia de origem; + 2-Ferrovia de destino + + + + + + + + + + + + Valor do Frete do Tráfego Mútuo + + + + + Chave de acesso do CT-e emitido pelo ferrovia de origem + + + + + Informações das Ferrovias Envolvidas + + + + + + Número do CNPJ + Informar o CNPJ da Ferrovia Envolvida. Caso a Ferrovia envolvida não seja inscrita no CNPJ o campo deverá preenchido com zeros. +Informar os zeros não significativos. + + + + + Código interno da Ferrovia envolvida + Uso da transportadora + + + + + + + + + + + Inscrição Estadual + + + + + Razão Social ou Nome + + + + + + + + + + + Dados do endereço da ferrovia envolvida + + + + + + + + + + + Fluxo Ferroviário + Trata-se de um número identificador do contrato firmado com o cliente + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/cteModalRodoviarioOS_v3.00.xsd b/CTe.AppTeste/schemas/cteModalRodoviarioOS_v3.00.xsd index 4e40e9db5..bfbe38e51 100644 --- a/CTe.AppTeste/schemas/cteModalRodoviarioOS_v3.00.xsd +++ b/CTe.AppTeste/schemas/cteModalRodoviarioOS_v3.00.xsd @@ -1,5 +1,5 @@ - + @@ -70,7 +70,7 @@ - Proprietários do Veículo. + Proprietário ou possuidor do Veículo. Só preenchido quando o veículo não pertencer à empresa emitente do CT-e OS @@ -131,7 +131,7 @@ Só preenchido quando o veículo não pertencer à empresa emitente do CT-e OS - Tipo Proprietário + Tipo Proprietário ou possuidor Preencher com: 0-TAC – Agregado; 1-TAC Independente; ou @@ -149,7 +149,7 @@ Só preenchido quando o veículo não pertencer à empresa emitente do CT-e OS - + UF em que veículo está licenciado Sigla da UF de licenciamento do veículo. diff --git a/CTe.AppTeste/schemas/cteModalRodoviarioOS_v4.00.xsd b/CTe.AppTeste/schemas/cteModalRodoviarioOS_v4.00.xsd new file mode 100644 index 000000000..23bcb62a6 --- /dev/null +++ b/CTe.AppTeste/schemas/cteModalRodoviarioOS_v4.00.xsd @@ -0,0 +1,193 @@ + + + + + + + + Tipo Termo de Autorização de Fretamento – TAF + + + + + + + + + + Tipo Número de Registro Estadual + + + + + + + + + + Informações do modal Rodoviário + + + + + + + Termo de Autorização de Fretamento – TAF + Registro obrigatório do emitente do CT-e OS junto à ANTT, de acordo com a Resolução ANTT nº 4.777/2015 + + + + + Número do Registro Estadual + Registro obrigatório do emitente do CT-e OS junto à Agência Reguladora Estadual. + + + + + + Dados do Veículo + + + + + + Placa do veículo + + + + + + + + RENAVAM do veículo + + + + + + + + + + + Proprietário ou possuidor do Veículo. +Só preenchido quando o veículo não pertencer à empresa emitente do CT-e OS + + + + + + + Número do CPF + Informar os zeros não significativos. + + + + + Número do CNPJ + Informar os zeros não significativos. + + + + + + + Termo de Autorização de Fretamento – TAF + De acordo com a Resolução ANTT nº 4.777/2015 + + + + + Número do Registro Estadual + Registro obrigatório do emitente do CT-e OS junto à Agência Reguladora Estadual + + + + + + Razão Social ou Nome do proprietário + + + + + + + + + + + + Inscrição Estadual + + + + + + + + UF + + + + + + Tipo Proprietário ou possuidor + Preencher com: + 0-TAC – Agregado; + 1-TAC Independente; ou + 2 – Outros. + + + + + + + + + + + + + + + + UF em que veículo está licenciado + Sigla da UF de licenciamento do veículo. + + + + + + + + Dados do fretamento (apenas para Transporte de Pessoas) + + + + + + Tipo Fretamento + Preencher com: + 1 - Eventual 2 - Continuo + + + + + + + + + + + + Data e hora da viagem (Apenas para fretamento eventual) + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + + diff --git a/CTe.AppTeste/schemas/cteModalRodoviario_v4.00.xsd b/CTe.AppTeste/schemas/cteModalRodoviario_v4.00.xsd new file mode 100644 index 000000000..210232290 --- /dev/null +++ b/CTe.AppTeste/schemas/cteModalRodoviario_v4.00.xsd @@ -0,0 +1,102 @@ + + + + + + + + Informações do modal Rodoviário + + + + + + Registro Nacional de Transportadores Rodoviários de Carga + Registro obrigatório do emitente do CT-e junto à ANTT para exercer a atividade de transportador rodoviário de cargas por conta de terceiros e mediante remuneração. + + + + + + + + + Ordens de Coleta associados + + + + + + Série da OCC + + + + + + + + + + + Número da Ordem de coleta + + + + + + + + + + + Data de emissão da ordem de coleta + Formato AAAA-MM-DD + + + + + + + + Número do CNPJ + Informar os zeros não significativos. + + + + + Código interno de uso da transportadora + Uso intermo das transportadoras. + + + + + + + + + + + Inscrição Estadual + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + Telefone + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/cteMultiModal_v4.00.xsd b/CTe.AppTeste/schemas/cteMultiModal_v4.00.xsd new file mode 100644 index 000000000..05dc7949f --- /dev/null +++ b/CTe.AppTeste/schemas/cteMultiModal_v4.00.xsd @@ -0,0 +1,100 @@ + + + + + + + + Informações do Multimodal + + + + + + Número do Certificado do Operador de Transporte Multimodal + + + + + + + + + + + + + Indicador Negociável +Preencher com: 0 - Não Negociável; 1 - Negociável + + + + + + + + + + + + Informações de Seguro do Multimodal + + + + + + Informações da seguradora + + + + + + Nome da Seguradora + + + + + + + + + + + Número do CNPJ da seguradora + Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte - pessoa jurídica + + + + + + + + Número da Apólice + Obrigatório pela lei 11.442/07 (RCTRC) + + + + + + + + + + + Número da Averbação + Não é obrigatório, pois muitas averbações ocorrem aapós a emissão do CT, mensalmente, por exemplo. + + + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/cteOS_v4.00.xsd b/CTe.AppTeste/schemas/cteOS_v4.00.xsd new file mode 100644 index 000000000..9ac66b268 --- /dev/null +++ b/CTe.AppTeste/schemas/cteOS_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Conhecimento de Transporte Eletrônico Outros Serviços + + + diff --git a/CTe.AppTeste/schemas/cteTiposBasico_v3.00.xsd b/CTe.AppTeste/schemas/cteTiposBasico_v3.00.xsd index e9176804b..014573d76 100644 --- a/CTe.AppTeste/schemas/cteTiposBasico_v3.00.xsd +++ b/CTe.AppTeste/schemas/cteTiposBasico_v3.00.xsd @@ -3,9 +3,1017 @@ + + + Tipo Modal transporte GTVe + + + + + + + + + + Tipo Finalidade da GTV-e + + + + + + + + + Tipo Guia de Transporte de Valores Eletrônica (Modelo 64) + + + + + Informações do CT-e do tipo GTV-e + + + + + + Identificação da GTV-e + + + + + + Código da UF do emitente da GTV-e. + Utilizar a Tabela do IBGE. + + + + + Código numérico que compõe a Chave de Acesso. + Número aleatório gerado pelo emitente para cada CT-e, com o objetivo de evitar acessos indevidos ao documento. + + + + + + + + + + + Código Fiscal de Operações e Prestações + + + + + Natureza da Operação + + + + + + + + + + + Modelo do documento fiscal + Utilizar o código 64 para identificação do CT-e Guia de Transporte de Valores + + + + + Série da GTV-e + Preencher com "0" no caso de série única + + + + + + + + Número da GTV-e + + + + + Data e hora de emissão da GTV-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Formato de impressão do DACTE + Preencher com: 1 - Retrato; 2 - Paisagem. + + + + + + + + + + + + Forma de emissão da GTV-e + Preencher com: +1 - Normal; + 2- Contingencia offline +7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + Digito Verificador da chave de acesso da GTV-e + Informar o dígito de controle da chave de acesso do CT-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso. + + + + + + + + + + + Tipo do Ambiente + Preencher com:1 - Produção; 2 - Homologação + + + + + Tipo da GTV-e + Preencher com: + 4 - GTV-e + + + + + + + + Versão do processo de emissão + Iinformar a versão do aplicativo emissor de CT-e. + + + + + + + + + + + Código do Município de envio da GTV-e (de onde o documento foi transmitido) + Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior. + + + + + Nome do Município de envio da GTV-e (de onde o documento foi transmitido) + Informar PAIS/Municipio para as operações com o exterior. + + + + + + + + + + + Sigla da UF de envio da GTV-e (de onde o documento foi transmitido) + Informar 'EX' para operações com o exterior. + + + + + Modal da GTV-e + Preencher com: +01-Rodoviário +06-Multimodal + + + + + + + + + + + Tipo do Serviço + Preencher com: + +9 - GTV + + + + + + + + + + + Indicador da IE do tomador: +1 – Contribuinte ICMS; +2 – Contribuinte isento de inscrição; +9 – Não Contribuinte + Aplica-se ao tomador que for indicado no toma3 ou toma4 + + + + + + + + + + + + + Data e hora de saida da origem + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Data e hora de chegada no destino + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + + Indicador do "papel" do tomador do serviço no GT-e + + + + + + Tomador do Serviço + Preencher com: + 0-Remetente; + 1-Destinatário + + + + + + + + + + + + + + + + Indicador do "papel" do tomador do serviço no CTV-e + + + + + + Tomador do Serviço + Preencher com: + 4 - Outros + Obs: Informar os dados cadastrais do tomador do serviço + + + + + + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. +Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão Social ou Nome + + + + + + + + + + + Nome Fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + Informar apenas +para tpEmis diferente de 1 + + + + Data e Hora da entrada em contingência + Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS + + + + + Justificativa da entrada em contingência + + + + + + + + + + + + + + + Dados complementares da GTV-e para fins operacionais ou comerciais + + + + + + Característica adicional do transporte + Texto livre: +REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc + + + + + + + + + + + Característica adicional do serviço + Texto livre: + ENTREGA EXPRESSA; LOGÍSTICA REVERSA; CONVENCIONAL; EMERGENCIAL; etc + + + + + + + + + + + Funcionário emissor da GTV-e + + + + + + + + + + + Observações Gerais + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + + + + Identificação do Emitente da GTV-e + + + + + + CNPJ do emitente + Informar zeros não significativos + + + + + Inscrição Estadual do Emitente + + + + + + + + Inscrição Estadual do Substituto Tributário + + + + + + + + Razão social ou Nome do emitente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Endereço do emitente + + + + + + + + Informações do Remetente + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do remetente ou ISENTO se remetente é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o remetente não seja contribuinte do ICMS não informar a tag. + + + + + + + + Razão social ou nome do remetente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + + + Informações do Destinatário + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do destinatário ou ISENTO se destinatário é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o destinatário não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão Social ou Nome do destinatário + + + + + + + + + + + Telefone + + + + + Inscrição na SUFRAMA + (Obrigatório nas operações com as áreas com benefícios de incentivos fiscais sob controle da SUFRAMA) + + + + + + + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + Informações do endereço da origem do serviço + + + + + Informações do endereço do destino do serviço + + + + + Grupo de informações detalhadas da GTV-e + + + + + + Informações das Espécies transportadas + + + + + + Tipo da Espécie + 1 - Cédula +2 - Cheque +3 - Moeda +4 - Outros + + + + + + + + + + + + + + Valor Transportada em Espécie indicada + + + + + Nacionalidade do Numerário + 1 - Nacional +2 - Estrangeiro + + + + + + + + + + + + Nome da Moeda + Informar somente se tipo de numerário for 2 - Estrangeiro + + + + + + + + + + + + + + Quantidade de volumes/malotes + + + + + Grupo de informações dos veículos utilizados no transporte de valores + + + + + + Placa do veículo + + + + + UF em que veículo está licenciado + Sigla da UF de licenciamento do veículo. + + + + + RNTRC do transportador + + + + + + + + + + + + + + + + + Autorizados para download do XML do DF-e + Informar CNPJ ou CPF. Preencher os zeros não significativos. + + + + + + + CNPJ do autorizado + Informar zeros não significativos + + + + + CPF do autorizado + Informar zeros não significativos + + + + + + + + + Informações do Responsável Técnico pela emissão do DF-e + + + + + + Versão do leiaute + Ex: "3.00" + + + + + + + + Identificador da tag a ser assinada + Informar a chave de acesso do CT-e OS e precedida do literal "CTe" + + + + + + + + + + + + Informações suplementares da GTV-e + + + + + + Texto com o QR-Code impresso no DACTE + + + + + + + + + + + + + + + + + + Versão do leiaute + + + + + + - Tipo Protocolo de status resultado do processamento da CT-e + Tipo Protocolo de status resultado do processamento da CT-e + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o CT-e + + + + + Chaves de acesso da CT-e, + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número do Protocolo de Status do CT-e. + + + + + Digest Value da CT-e processado. Utilizado para conferir a integridade do CT-e original. + + + + + Código do status do CT-e. + + + + + + + + Descrição literal do status do CT-e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + + + + + Tipo Protocolo de status resultado do processamento do CT-e OS (Modelo 67) @@ -28,7 +1036,7 @@ - Chaves de acesso da CT-e, + Chaves de acesso da CT-e @@ -38,7 +1046,7 @@ - Número do Protocolo de Status do CT-e. + Número do Protocolo de Status do CT-e. @@ -93,9 +1101,9 @@ - + - Tipo Protocolo de status resultado do processamento do CT-e OS (Modelo 67) + Tipo Protocolo de status resultado do processamento da GTV-e (Modelo 64) @@ -113,7 +1121,7 @@ - Versão do Aplicativo que processou o CT-e + Versão do Aplicativo que processou a GTV-e @@ -128,17 +1136,17 @@ - Número do Protocolo de Status do CT-e. + Número do Protocolo de Status da GTV-e - Digest Value da CT-e processado. Utilizado para conferir a integridade do CT-e original. + Digest Value da GTV-e processado. Utilizado para conferir a integridade da GTV-e original. - Código do status do CT-e. + Código do status da GTV-e. @@ -146,7 +1154,7 @@ - Descrição literal do status do CT-e. + Descrição literal do status da GTV-e. @@ -223,6 +1231,46 @@ + + + Tipo Retorno do Pedido de Autorização de GTV-e (Modelo 64) + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que processou a GTV-e + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Reposta ao processamento do CT-e + + + + + Tipo Retorno do Pedido de Autorização de CT-e OS (Modelo 67) @@ -361,7 +1409,7 @@ Forma de emissão do CT-e Preencher com: 1 - Normal; - 4-EPEC pela SVC; 5 - Contingência FSDA; + 3-Regime Especial NFF; 4-EPEC pela SVC; 5 - Contingência FSDA; 7 - Autorização pela SVC-RS; 8 - Autorização pela SVC-SP @@ -369,6 +1417,7 @@ + @@ -1118,15 +2167,26 @@ REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc - - - CNPJ do emitente - Informar zeros não significativos - - - + + + + CNPJ do emitente + Informar zeros não significativos + + + + + CPF do emitente + Informar zeros não significativos. + +Usar com série específica 920-969 para emitente pessoa física com inscrição estadual + + + + Inscrição Estadual do Emitente + A IE do emitente somente ficará sem informação para o caso do Regime Especial da NFF (tpEmis=3) @@ -1167,6 +2227,15 @@ REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc Endereço do emitente + + + Código do Regime Tributário + Informar: 1=Simples Nacional; +2=Simples Nacional, excesso sublimite de receita bruta; +3=Regime Normal. + + + @@ -1540,16 +2609,6 @@ REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc - - - Percentual provisório de partilha entre os estados - Percentual de partilha para a UF do destinatário: -- 40% em 2016; -- 60% em 2017; -- 80% em 2018; -- 100% a partir de 2019. - - Valor do ICMS relativo ao Fundo de Combate á Pobreza (FCP) da UF de término da prestação @@ -2516,6 +3575,27 @@ Onde v9.99 é a a designação genérica para a versão do arquivo. Por exemplo, Informações do Responsável Técnico pela emissão do DF-e + + + Grupo de informações do pedido de emissão da Nota Fiscal Fácil + + + + + + Solicitação do pedido de emissão da NFF. + Será preenchido com a totalidade de campos informados no aplicativo emissor serializado. + + + + + + + + + + + @@ -3058,6 +4138,15 @@ REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc Endereço do emitente + + + Código do Regime Tributário + Informar: 1=Simples Nacional; +2=Simples Nacional, excesso sublimite de receita bruta; +3=Regime Normal. + + + @@ -3241,16 +4330,6 @@ REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc - - - Percentual provisório de partilha entre os estados - Percentual de partilha para a UF do destinatário: -- 40% em 2016; -- 60% em 2017; -- 80% em 2018; -- 100% a partir de 2019. - - Valor do ICMS relativo ao Fundo de Combate á Pobreza (FCP) da UF de término da prestação @@ -3354,52 +4433,62 @@ REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc Informações dos documentos referenciados - - - - Número - - - - - - - - - - - Série - - - - - - - - - + + + + + Número + + + + + + + + + + + Série + + + + + + + + + + + Subsérie + + + + + + + + + + + Data de Emissão + Formato AAAA-MM-DD + + + + + Valor Transportado + + + + - Subsérie + Chave de acesso do BP-e que possui eventos excesso de bagagem - - - - + - - - Data de Emissão - Formato AAAA-MM-DD - - - - - Valor Transportado - - - + @@ -3676,6 +4765,73 @@ Somente para Transporte de Valores + + + Informações das GTV-e relacionadas ao CT-e OS + + + + + + Chave de acesso da GTV-e + + + + + + + + + + Componentes do Valor da GTVe + + + + + + Tipo do Componente + 1-Custodia +2-Embarque +3-Tempo de espera +4-Malote +5-Ad Valorem +6-Outros + + + + + + + + + + + + + + + + Valor do componente + + + + + Nome do componente (informar apenas para outros) + Exemplos: FRETE PESO, FRETE VALOR, SEC/CAT, ADEME, AGENDAMENTO, etc + + + + + + + + + + + + + + @@ -5431,6 +6587,19 @@ Observação: 28 caracteres são representados no schema como 20 bytes do tipo b + + + Tipo Código Regime Tributário + + + + + + + + + + Tipo processo de emissão do CT-e diff --git a/CTe.AppTeste/schemas/cteTiposBasico_v4.00.xsd b/CTe.AppTeste/schemas/cteTiposBasico_v4.00.xsd new file mode 100644 index 000000000..3cf5e8845 --- /dev/null +++ b/CTe.AppTeste/schemas/cteTiposBasico_v4.00.xsd @@ -0,0 +1,6361 @@ + + + + + + + + Tipo Modal transporte GTVe + + + + + + + + + + Tipo Finalidade da GTV-e + + + + + + + + + Tipo Guia de Transporte de Valores Eletrônica (Modelo 64) + + + + + Informações do CT-e do tipo GTV-e + + + + + + Identificação da GTV-e + + + + + + Código da UF do emitente da GTV-e. + Utilizar a Tabela do IBGE. + + + + + Código numérico que compõe a Chave de Acesso. + Número aleatório gerado pelo emitente para cada CT-e, com o objetivo de evitar acessos indevidos ao documento. + + + + + + + + + + + Código Fiscal de Operações e Prestações + + + + + Natureza da Operação + + + + + + + + + + + Modelo do documento fiscal + Utilizar o código 64 para identificação do CT-e Guia de Transporte de Valores + + + + + Série da GTV-e + Preencher com "0" no caso de série única + + + + + + + + Número da GTV-e + + + + + Data e hora de emissão da GTV-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Formato de impressão do DACTE + Preencher com: 1 - Retrato; 2 - Paisagem. + + + + + + + + + + + + Forma de emissão da GTV-e + Preencher com: +1 - Normal; + 2- Contingencia offline +7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + Digito Verificador da chave de acesso da GTV-e + Informar o dígito de controle da chave de acesso do CT-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso. + + + + + + + + + + + Tipo do Ambiente + Preencher com:1 - Produção; 2 - Homologação + + + + + Tipo da GTV-e + Preencher com: + 4 - GTV-e + + + + + + + + Versão do processo de emissão + Iinformar a versão do aplicativo emissor de CT-e. + + + + + + + + + + + Código do Município de envio da GTV-e (de onde o documento foi transmitido) + Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior. + + + + + Nome do Município de envio da GTV-e (de onde o documento foi transmitido) + Informar PAIS/Municipio para as operações com o exterior. + + + + + + + + + + + Sigla da UF de envio da GTV-e (de onde o documento foi transmitido) + Informar 'EX' para operações com o exterior. + + + + + Modal da GTV-e + Preencher com: +01-Rodoviário +06-Multimodal + + + + + + + + + + + Tipo do Serviço + Preencher com: + +9 - GTV + + + + + + + + + + + Indicador da IE do tomador: +1 – Contribuinte ICMS; +2 – Contribuinte isento de inscrição; +9 – Não Contribuinte + Aplica-se ao tomador que for indicado no toma3 ou toma4 + + + + + + + + + + + + + Data e hora de saida da origem + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Data e hora de chegada no destino + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + + Indicador do "papel" do tomador do serviço no GT-e + + + + + + Tomador do Serviço + Preencher com: + 0-Remetente; + 1-Destinatário + + + + + + + + + + + + + + + + Indicador do "papel" do tomador do serviço no CTV-e + + + + + + Tomador do Serviço + Preencher com: + 4 - Outros + Obs: Informar os dados cadastrais do tomador do serviço + + + + + + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. +Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão Social ou Nome + + + + + + + + + + + Nome Fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + Informar apenas +para tpEmis diferente de 1 + + + + Data e Hora da entrada em contingência + Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS + + + + + Justificativa da entrada em contingência + + + + + + + + + + + + + + + Dados complementares da GTV-e para fins operacionais ou comerciais + + + + + + Característica adicional do transporte + Texto livre: +REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc + + + + + + + + + + + Característica adicional do serviço + Texto livre: + ENTREGA EXPRESSA; LOGÍSTICA REVERSA; CONVENCIONAL; EMERGENCIAL; etc + + + + + + + + + + + Funcionário emissor da GTV-e + + + + + + + + + + + Observações Gerais + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + + + + Identificação do Emitente da GTV-e + + + + + + CNPJ do emitente + Informar zeros não significativos + + + + + Inscrição Estadual do Emitente + + + + + + + + Inscrição Estadual do Substituto Tributário + + + + + + + + Razão social ou Nome do emitente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Endereço do emitente + + + + + + + + Informações do Remetente + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do remetente ou ISENTO se remetente é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o remetente não seja contribuinte do ICMS não informar a tag. + + + + + + + + Razão social ou nome do remetente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + + + Informações do Destinatário + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do destinatário ou ISENTO se destinatário é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o destinatário não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão Social ou Nome do destinatário + + + + + + + + + + + Telefone + + + + + Inscrição na SUFRAMA + (Obrigatório nas operações com as áreas com benefícios de incentivos fiscais sob controle da SUFRAMA) + + + + + + + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + Informações do endereço da origem do serviço + + + + + Informações do endereço do destino do serviço + + + + + Grupo de informações detalhadas da GTV-e + + + + + + Informações das Espécies transportadas + + + + + + Tipo da Espécie + 1 - Cédula +2 - Cheque +3 - Moeda +4 - Outros + + + + + + + + + + + + + + Valor Transportada em Espécie indicada + + + + + Nacionalidade do Numerário + 1 - Nacional +2 - Estrangeiro + + + + + + + + + + + + Nome da Moeda + Informar somente se tipo de numerário for 2 - Estrangeiro + + + + + + + + + + + + + + Quantidade de volumes/malotes + + + + + Grupo de informações dos veículos utilizados no transporte de valores + + + + + + Placa do veículo + + + + + UF em que veículo está licenciado + Sigla da UF de licenciamento do veículo. + + + + + RNTRC do transportador + + + + + + + + + + + + + + + + + Autorizados para download do XML do DF-e + Informar CNPJ ou CPF. Preencher os zeros não significativos. + + + + + + + CNPJ do autorizado + Informar zeros não significativos + + + + + CPF do autorizado + Informar zeros não significativos + + + + + + + + + Informações do Responsável Técnico pela emissão do DF-e + + + + + + Versão do leiaute + Ex: "4.00" + + + + + + + + Identificador da tag a ser assinada + Informar a chave de acesso do CT-e OS e precedida do literal "CTe" + + + + + + + + + + + + Informações suplementares da GTV-e + + + + + + Texto com o QR-Code impresso no DACTE + + + + + + + + + + + + + + + + + + Versão do leiaute + + + + + + + + + Tipo Protocolo de status resultado do processamento da CT-e + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o CT-e + + + + + Chaves de acesso da CT-e, + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número do Protocolo de Status do CT-e. + + + + + Digest Value da CT-e processado. Utilizado para conferir a integridade do CT-e original. + + + + + Código do status do CT-e. + + + + + + + + Descrição literal do status do CT-e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + + + + + Tipo Protocolo de status resultado do processamento do CT-e OS (Modelo 67) + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou o CT-e + + + + + Chaves de acesso da CT-e + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número do Protocolo de Status do CT-e. + + + + + Digest Value da CT-e processado. Utilizado para conferir a integridade do CT-e original. + + + + + Código do status do CT-e. + + + + + + + + Descrição literal do status do CT-e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + + + + + Tipo Protocolo de status resultado do processamento da GTV-e (Modelo 64) + + + + + Dados do protocolo de status + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a GTV-e + + + + + Chaves de acesso da CT-e + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número do Protocolo de Status da GTV-e + + + + + Digest Value da GTV-e processado. Utilizado para conferir a integridade da GTV-e original. + + + + + Código do status da GTV-e. + + + + + + + + Descrição literal do status da GTV-e. + + + + + + + + + Mensagem do Fisco + + + + + + Código do status da mensagem do fisco + + + + + + + + Mensagem do Fisco + + + + + + + + + + + + + + + + Tipo Retorno do Pedido de Autorização de CT-e (Modelo 57) + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que processou a CT-e + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Reposta ao processamento do CT-e + + + + + + + + Tipo Retorno do Pedido de Autorização de GTV-e (Modelo 64) + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que processou a GTV-e + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Reposta ao processamento do CT-e + + + + + + + + Tipo Retorno do Pedido de Autorização de CT-e OS (Modelo 67) + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Identificação da UF + + + + + Versão do Aplicativo que processou a CT-e + + + + + código do status do retorno da consulta. + + + + + Descrição literal do status do do retorno da consulta. + + + + + Reposta ao processamento do CT-e + + + + + + + + Tipo Conhecimento de Transporte Eletrônico (Modelo 57) + + + + + Informações do CT-e + + + + + + Identificação do CT-e + + + + + + Código da UF do emitente do CT-e. + Utilizar a Tabela do IBGE. + + + + + Código numérico que compõe a Chave de Acesso. + Número aleatório gerado pelo emitente para cada CT-e, com o objetivo de evitar acessos indevidos ao documento. + + + + + + + + + + + Código Fiscal de Operações e Prestações + + + + + Natureza da Operação + + + + + + + + + + + Modelo do documento fiscal + Utilizar o código 57 para identificação do CT-e, emitido em substituição aos modelos de conhecimentos em papel. + + + + + Série do CT-e + Preencher com "0" no caso de série única + + + + + + + + Número do CT-e + + + + + Data e hora de emissão do CT-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Formato de impressão do DACTE + Preencher com: 1 - Retrato; 2 - Paisagem. + + + + + + + + + + + + Forma de emissão do CT-e + Preencher com: +1 - Normal; + 3-Regime Especial NFF; 4-EPEC pela SVC; 5 - Contingência FSDA; + 7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + + + Digito Verificador da chave de acesso do CT-e + Informar o dígito de controle da chave de acesso do CT-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso. + + + + + + + + + + + Tipo do Ambiente + Preencher com:1 - Produção; 2 - Homologação. + + + + + Tipo do CT-e + Preencher com: + 0 - CT-e Normal; + 1 - CT-e de Complemento de Valores; + 3 - CT-e de Substituição + + + + + Identificador do processo de emissão do CT-e + Preencher com: + 0 - emissão de CT-e com aplicativo do contribuinte; + 3- emissão CT-e pelo contribuinte com aplicativo fornecido pelo SEBRAE. + + + + + Versão do processo de emissão + Iinformar a versão do aplicativo emissor de CT-e. + + + + + + + + + + + Indicador de CT-e Globalizado + Informar valor 1 quando for Globalizado e não informar a tag quando não tratar de CT-e Globalizado + + + + + + + + + + Código do Município de envio do CT-e (de onde o documento foi transmitido) + Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior. + + + + + Nome do Município de envio do CT-e (de onde o documento foi transmitido) + Informar PAIS/Municipio para as operações com o exterior. + + + + + + + + + + + Sigla da UF de envio do CT-e (de onde o documento foi transmitido) + Informar 'EX' para operações com o exterior. + + + + + Modal + Preencher com:01-Rodoviário; +02-Aéreo;03-Aquaviário;04-Ferroviário;05-Dutoviário;06-Multimodal; + + + + + Tipo do Serviço + Preencher com: +0 - Normal;1 - Subcontratação; +2 - Redespacho;3 - Redespacho Intermediário; 4 - Serviço Vinculado a Multimodal + + + + + + + + + + + + + + + Código do Município de início da prestação + Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior. + + + + + Nome do Município do início da prestação + Informar 'EXTERIOR' para operações com o exterior. + + + + + + + + + + + UF do início da prestação + Informar 'EX' para operações com o exterior. + + + + + Código do Município de término da prestação + Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior. + + + + + Nome do Município do término da prestação + Informar 'EXTERIOR' para operações com o exterior. + + + + + + + + + + + UF do término da prestação + Informar 'EX' para operações com o exterior. + + + + + Indicador se o Recebedor retira no Aeroporto, Filial, Porto ou Estação de Destino? + Preencher com: 0 - sim; 1 - não + + + + + + + + + + + + Detalhes do retira + + + + + + + + + + + Indicador do papel do tomador na prestação do serviço: +1 – Contribuinte ICMS; +2 – Contribuinte isento de inscrição; +9 – Não Contribuinte + Aplica-se ao tomador que for indicado no toma3 ou toma4 + + + + + + + + + + + + + + Indicador do "papel" do tomador do serviço no CT-e + + + + + + Tomador do Serviço + Preencher com: + 0-Remetente; + 1-Expedidor; + 2-Recebedor; + 3-Destinatário + Serão utilizadas as informações contidas no respectivo grupo, conforme indicado pelo conteúdo deste campo + + + + + + + + + + + + + + + + + Indicador do "papel" do tomador do serviço no CT-e + + + + + + Tomador do Serviço + Preencher com: + 4 - Outros + Obs: Informar os dados cadastrais do tomador do serviço + + + + + + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. +Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + + Razão Social ou Nome + + + + + + + + + + + Nome Fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + + Informar apenas +para tpEmis diferente de 1 + + + + Data e Hora da entrada em contingência + Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS + + + + + Justificativa da entrada em contingência + + + + + + + + + + + + + + + Dados complementares do CT-e para fins operacionais ou comerciais + + + + + + Característica adicional do transporte + Texto livre: +REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc + + + + + + + + + + + Característica adicional do serviço + Texto livre: + ENTREGA EXPRESSA; LOGÍSTICA REVERSA; CONVENCIONAL; EMERGENCIAL; etc + + + + + + + + + + + Funcionário emissor do CTe + + + + + + + + + + + Previsão do fluxo da carga + Preenchimento obrigatório para o modal aéreo. + + + + + + Sigla ou código interno da Filial/Porto/Estação/ Aeroporto de Origem + Observações para o modal aéreo: + - Preenchimento obrigatório para o modal aéreo. + - O código de três letras IATA do aeroporto de partida deverá ser incluído como primeira anotação. Quando não for possível, utilizar a sigla OACI. + + + + + + + + + + + + + + Sigla ou código interno da Filial/Porto/Estação/Aeroporto de Passagem + Observação para o modal aéreo: + - O código de três letras IATA, referente ao aeroporto de transferência, deverá ser incluído, quando for o caso. Quando não for possível, utilizar a sigla OACI. Qualquer solicitação de itinerário deverá ser incluída. + + + + + + + + + + + + + + Sigla ou código interno da Filial/Porto/Estação/Aeroporto de Destino + Observações para o modal aéreo: + - Preenchimento obrigatório para o modal aéreo. + - Deverá ser incluído o código de três letras IATA do aeroporto de destino. Quando não for possível, utilizar a sigla OACI. + + + + + + + + + + + Código da Rota de Entrega + + + + + + + + + + + + + + Informações ref. a previsão de entrega + + + + + + + Entrega sem data definida + Esta opção é proibida para o modal aéreo. + + + + + + Tipo de data/período programado para entrega + 0- Sem data definida + + + + + + + + + + + + + + Entrega com data definida + + + + + + Tipo de data/período programado para entrega + Preencher com: + 1-Na data; + 2-Até a data; + 3-A partir da data + + + + + + + + + + + + + Data programada + Formato AAAA-MM-DD + + + + + + + + Entrega no período definido + + + + + + Tipo período + 4-no período + + + + + + + + + + + Data inicial + Formato AAAA-MM-DD + + + + + Data final + Formato AAAA-MM-DD + + + + + + + + + + Entrega sem hora definida + + + + + + Tipo de hora + 0- Sem hora definida + + + + + + + + + + + + + + Entrega com hora definida + + + + + + Tipo de hora + Preencher com: + 1 - No horário; + 2 - Até o horário; + 3 - A partir do horário. + + + + + + + + + + + + + Hora programada + Formato HH:MM:SS + + + + + + + + Entrega no intervalo de horário definido + + + + + + Tipo de hora + 4 - No intervalo de tempo + + + + + + + + + + + Hora inicial + Formato HH:MM:SS + + + + + Hora final + Formato HH:MM:SS + + + + + + + + + + + + Município de origem para efeito de cálculo do frete + + + + + + + + + + + Município de destino para efeito de cálculo do frete + + + + + + + + + + + Observações Gerais + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + + + + Identificação do Emitente do CT-e + + + + + + + CNPJ do emitente + Informar zeros não significativos + + + + + CPF do emitente + Informar zeros não significativos. + +Usar com série específica 920-969 para emitente pessoa física com inscrição estadual + + + + + + Inscrição Estadual do Emitente + A IE do emitente somente ficará sem informação para o caso do Regime Especial da NFF (tpEmis=3) + + + + + + + + Inscrição Estadual do Substituto Tributário + + + + + + + + Razão social ou Nome do emitente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Endereço do emitente + + + + + Código do Regime Tributário + Informar: 1=Simples Nacional; +2=Simples Nacional, excesso sublimite de receita bruta; +3=Regime Normal. +4=Simples Nacional - Microempreendedor Individual – MEI. + + + + + + + + + Informações do Remetente das mercadorias transportadas pelo CT-e + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do remetente ou ISENTO se remetente é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o remetente não seja contribuinte do ICMS não informar a tag. + + + + + + + + Razão social ou nome do remetente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + + + Informações do Expedidor da Carga + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do expedidor ou ISENTO se expedidor é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o expedidor não seja contribuinte do ICMS não informar a tag. + + + + + + + + Razão Social ou Nome + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + Informações do Recebedor da Carga + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do recebedor ou ISENTO se recebedor é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o recebedor não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão Social ou Nome + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + Informações do Destinatário do CT-e + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do destinatário ou ISENTO se destinatário é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o destinatário não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão Social ou Nome do destinatário + + + + + + + + + + + Telefone + + + + + Inscrição na SUFRAMA + (Obrigatório nas operações com as áreas com benefícios de incentivos fiscais sob controle da SUFRAMA) + + + + + + + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + Valores da Prestação de Serviço + + + + + + Valor Total da Prestação do Serviço + Pode conter zeros quando o CT-e for de complemento de ICMS + + + + + Valor a Receber + + + + + Componentes do Valor da Prestação + + + + + + Nome do componente + Exxemplos: FRETE PESO, FRETE VALOR, SEC/CAT, ADEME, AGENDAMENTO, etc + + + + + + + + + + + Valor do componente + + + + + + + + + + + Informações relativas aos Impostos + + + + + + Informações relativas ao ICMS + + + + + + Valor Total dos Tributos + + + + + Informações adicionais de interesse do Fisco + Norma referenciada, informações complementares, etc + + + + + + + + + + + Informações do ICMS de partilha com a UF de término do serviço de transporte na operação interestadual + Grupo a ser informado nas prestações interestaduais para consumidor final, não contribuinte do ICMS + + + + + + Valor da BC do ICMS na UF de término da prestação do serviço de transporte + + + + + Percentual do ICMS relativo ao Fundo de Combate à pobreza (FCP) na UF de término da prestação do serviço de transporte + Alíquota adotada nas operações internas na UF do destinatário + + + + + Alíquota interna da UF de término da prestação do serviço de transporte + Alíquota adotada nas operações internas na UF do destinatário + + + + + Alíquota interestadual das UF envolvidas + Alíquota interestadual das UF envolvidas + + + + + + Valor do ICMS relativo ao Fundo de Combate á Pobreza (FCP) da UF de término da prestação + + + + + Valor do ICMS de partilha para a UF de término da prestação do serviço de transporte + + + + + Valor do ICMS de partilha para a UF de início da prestação do serviço de transporte + + + + + + + + + + + + Grupo de informações do CT-e Normal e Substituto + + + + + + Informações da Carga do CT-e + + + + + + Valor total da carga + Dever ser informado para todos os modais, com exceção para o Dutoviário. + + + + + Produto predominante + Informar a descrição do produto predominante + + + + + + + + + + + Outras características da carga + "FRIA", "GRANEL", "REFRIGERADA", "Medidas: 12X12X12" + + + + + + + + + + + Informações de quantidades da Carga do CT-e + Para o Aéreo é obrigatório o preenchimento desse campo da seguinte forma. +1 - Peso Bruto, sempre em quilogramas (obrigatório); +2 - Peso Cubado; sempre em quilogramas; +3 - Quantidade de volumes, sempre em unidades (obrigatório); +4 - Cubagem, sempre em metros cúbicos (obrigatório apenas quando for impossível preencher as dimensões da(s) embalagem(ens) na tag xDime do leiaute do Aéreo). + + + + + + Código da Unidade de Medida + Preencher com: + 00-M3; + 01-KG; + 02-TON; + 03-UNIDADE; + 04-LITROS; + 05-MMBTU + + + + + + + + + + + + + + + + Tipo da Medida + Exemplos: +PESO BRUTO, PESO DECLARADO, PESO CUBADO, PESO AFORADO, PESO AFERIDO, PESO BASE DE CÁLCULO, LITRAGEM, CAIXAS e etc + + + + + + + + + + + Quantidade + + + + + + + + Valor da Carga para efeito de averbação + Normalmente igual ao valor declarado da mercadoria, diferente por exemplo, quando a mercadoria transportada é isenta de tributos nacionais para exportação, onde é preciso averbar um valor maior, pois no caso de indenização, o valor a ser pago será maior + + + + + + + + Informações dos documentos transportados pelo CT-e +Opcional para Redespacho Intermediario e Serviço vinculado a multimodal. + Poderá não ser informado para os CT-e de redespacho intermediário e serviço vinculado a multimodal. Nos demais casos deverá sempre ser informado. + + + + + + + Informações das NF + Este grupo deve ser informado quando o documento originário for NF + + + + + + Número do Romaneio da NF + + + + + + + + + + + Número do Pedido da NF + + + + + + + + + + + Modelo da Nota Fiscal + Preencher com: +01 - NF Modelo 01/1A e Avulsa; +04 - NF de Produtor + + + + + Série + + + + + + + + + + + Número + + + + + + + + + + + Data de Emissão + Formato AAAA-MM-DD + + + + + Valor da Base de Cálculo do ICMS + + + + + Valor Total do ICMS + + + + + Valor da Base de Cálculo do ICMS ST + + + + + Valor Total do ICMS ST + + + + + Valor Total dos Produtos + + + + + Valor Total da NF + + + + + CFOP Predominante + CFOP da NF ou, na existência de mais de um, predominância pelo critério de valor econômico. + + + + + Peso total em Kg + + + + + PIN SUFRAMA + PIN atribuído pela SUFRAMA para a operação. + + + + + + + + + + + + + Data prevista de entrega + Formato AAAA-MM-DD + + + + + + Informações das Unidades de Carga (Containeres/ULD/Outros) + Dispositivo de carga utilizada (Unit Load Device - ULD) significa todo tipo de contêiner de carga, vagão, contêiner de avião, palete de aeronave com rede ou palete de aeronave com rede sobre um iglu. + + + + + Informações das Unidades de Transporte (Carreta/Reboque/Vagão) + Deve ser preenchido com as informações das unidades de transporte utilizadas. + + + + + + + + + Informações das NF-e + + + + + + Chave de acesso da NF-e + + + + + PIN SUFRAMA + PIN atribuído pela SUFRAMA para a operação. + + + + + + + + + + + + + Data prevista de entrega + Formato AAAA-MM-DD + + + + + + Informações das Unidades de Carga (Containeres/ULD/Outros) + Dispositivo de carga utilizada (Unit Load Device - ULD) significa todo tipo de contêiner de carga, vagão, contêiner de avião, palete de aeronave com rede ou palete de aeronave com rede sobre um iglu. + + + + + Informações das Unidades de Transporte (Carreta/Reboque/Vagão) + Deve ser preenchido com as informações das unidades de transporte utilizadas. + + + + + + + + + Informações dos demais documentos + + + + + + Tipo de documento originário + Preencher com: + 00 - Declaração; + 10 - Dutoviário; + + +59 - CF-e SAT; + +65 - NFC-e; + 99 - Outros + + + + + + + + + + + + + + + Descrição do documento + + + + + + + + + + + Número + + + + + + + + + + + Data de Emissão + Formato AAAA-MM-DD + + + + + Valor do documento + + + + + Data prevista de entrega + Formato AAAA-MM-DD + + + + + + Informações das Unidades de Carga (Containeres/ULD/Outros) + Dispositivo de carga utilizada (Unit Load Device - ULD) significa todo tipo de contêiner de carga, vagão, contêiner de avião, palete de aeronave com rede ou palete de aeronave com rede sobre um iglu. + + + + + Informações das Unidades de Transporte (Carreta/Reboque/Vagão) + Deve ser preenchido com as informações das unidades de transporte utilizadas. + + + + + + + + + + + + + Documentos de Transporte Anterior + + + + + + Emissor do documento anterior + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + + Inscrição Estadual + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + + Razão Social ou Nome do expedidor + + + + + + + + + + + Informações de identificação dos documentos de Transporte Anterior + + + + + + Documentos de transporte anterior em papel + + + + + + Tipo do Documento de Transporte Anterior + Preencher com: +07-ATRE; +08-DTA (Despacho de Transito Aduaneiro); +09-Conhecimento Aéreo Internacional; +10 – Conhecimento - Carta de Porte Internacional; +11 – Conhecimento Avulso; +12-TIF (Transporte Internacional Ferroviário); 13-BL (Bill of Lading) + + + + + + + + Série do Documento Fiscal + + + + + + + + + + + Série do Documento Fiscal + + + + + + + + + + + Número do Documento Fiscal + + + + + + + + + + + Data de emissão (AAAA-MM-DD) + + + + + + + + Documentos de transporte anterior eletrônicos + + + + + + Chave de acesso do CT-e + + + + + + + + + + + + + + + + + Informações do modal + + + + + + XML do modal +Insira neste local o XML específico do modal (rodoviário, aéreo, ferroviário, aquaviário ou dutoviário). + O elemento do tipo -any- permite estender o documento XML com elementos não especificados pelo schema. + Insira neste local - any- o XML específico do modal (rodoviário, aéreo, ferroviário, aquaviário ou dutoviário). A especificação do schema XML para cada modal pode ser encontrada nos arquivos que acompanham este pacote de liberação: + Rodoviário - ver arquivo CTeModalRodoviario_v9.99 + Aéreo - ver arquivo CTeModalAereo_v9.99 + Aquaviário - arquivo CTeModalAquaviario_v9.99 + Ferroviário - arquivo CTeModalFerroviario_v9.99 + Dutoviário - arquivo CTeModalDutoviario_v9.99 + +Onde v9.99 é a a designação genérica para a versão do arquivo. Por exemplo, o arquivo para o schema do modal Rodoviário na versão 1.04 será denominado "CTeModalRodoviario_v1.04". + + + + + + Versão do leiaute específico para o Modal + + + + + + + + + + + + + informações dos veículos transportados + + + + + + Chassi do veículo + + + + + + + + + + + + Cor do veículo + Código de cada montadora + + + + + + + + + + + Descrição da cor + + + + + + + + + + + Código Marca Modelo + Utilizar tabela RENAVAM + + + + + + + + + + + Valor Unitário do Veículo + + + + + Frete Unitário + + + + + + + + Dados da cobrança do CT-e + + + + + + Dados da fatura + + + + + + Número da fatura + + + + + + + + + + + Valor original da fatura + + + + + Valor do desconto da fatura + + + + + Valor líquido da fatura + + + + + + + + Dados das duplicatas + + + + + + Número da duplicata + + + + + + + + + + + Data de vencimento da duplicata (AAAA-MM-DD) + + + + + Valor da duplicata + + + + + + + + + + + Informações do CT-e de substituição + + + + + + Chave de acesso do CT-e a ser substituído (original) + + + + + + + + + + Indicador de CT-e Alteração de Tomador + + + + + + + + + + + + + Informações do CT-e Globalizado + + + + + + Preencher com informações adicionais, legislação do regime especial, etc + + + + + + + + + + + + + + Informações do Serviço Vinculado a Multimodal + + + + + + informações do CT-e multimodal vinculado + + + + + + Chave de acesso do CT-e Multimodal + + + + + + + + + + + + + + Detalhamento do CT-e complementado + + + + + + Chave do CT-e complementado + + + + + + + + + Autorizados para download do XML do DF-e + Informar CNPJ ou CPF. Preencher os zeros não significativos. + + + + + + + CNPJ do autorizado + Informar zeros não significativos + + + + + CPF do autorizado + Informar zeros não significativos + + + + + + + + + Informações do Responsável Técnico pela emissão do DF-e + + + + + Grupo de informações do pedido de emissão da Nota Fiscal Fácil + + + + + + Solicitação do pedido de emissão da NFF. + Será preenchido com a totalidade de campos informados no aplicativo emissor serializado. + + + + + + + + + + + + + + Grupo de Informação do Provedor de Assinatura e Autorização + + + + + + CNPJ do Provedor de Assinatura e Autorização + + + + + Assinatura RSA do Emitente para DFe gerados por PAA + + + + + + Assinatura digital padrão RSA + Converter o atributo Id do DFe para array de bytes e assinar com a chave privada do RSA com algoritmo SHA1 gerando um valor no formato base64. + + + + + Chave Publica no padrão XML RSA Key + + + + + + + + + + + + Versão do leiaute + Ex: "4.00" + + + + + + + + Identificador da tag a ser assinada + Informar a chave de acesso do CT-e e precedida do literal "CTe" + + + + + + + + + + + + Informações suplementares do CT-e + + + + + + Texto com o QR-Code impresso no DACTE + + + + + + + + + + + + + + + + + + + Tipo Conhecimento de Transporte Eletrônico Outros Serviços (Modelo 67) + + + + + Informações do CT-e Outros Serviços + + + + + + Identificação do CT-e Outros Serviços + + + + + + Código da UF do emitente do CT-e. + Utilizar a Tabela do IBGE. + + + + + Código numérico que compõe a Chave de Acesso. + Número aleatório gerado pelo emitente para cada CT-e, com o objetivo de evitar acessos indevidos ao documento. + + + + + + + + + + + Código Fiscal de Operações e Prestações + + + + + Natureza da Operação + + + + + + + + + + + Modelo do documento fiscal + Utilizar o código 67 para identificação do CT-e Outros Serviços, emitido em substituição a Nota Fiscal Modelo 7 para transporte de pessoas, valores e excesso de bagagem. + + + + + Série do CT-e OS + Preencher com "0" no caso de série única + + + + + + + + Número do CT-e OS + + + + + Data e hora de emissão do CT-e OS + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Formato de impressão do DACTE OS + Preencher com: 1 - Retrato; 2 - Paisagem. + + + + + + + + + + + + Forma de emissão do CT-e + Preencher com: +1 - Normal; + 5 - Contingência FSDA; +7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + Digito Verificador da chave de acesso do CT-e + Informar o dígito de controle da chave de acesso do CT-e, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de acesso. + + + + + + + + + + + Tipo do Ambiente + Preencher com:1 - Produção; 2 - Homologação + + + + + Tipo do CT-e OS + Preencher com: +0 - CT-e Normal; +1 - CT-e Complementar; + +3 - CT-e de Substituição. + + + + + Identificador do processo de emissão do CT-e OS + Preencher com: + 0 - emissão de CT-e com aplicativo do contribuinte; + 3- emissão CT-e pelo contribuinte com aplicativo fornecido pelo Fisco. + + + + + Versão do processo de emissão + Iinformar a versão do aplicativo emissor de CT-e. + + + + + + + + + + + Código do Município de envio do CT-e (de onde o documento foi transmitido) + Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior. + + + + + Nome do Município de envio do CT-e (de onde o documento foi transmitido) + Informar PAIS/Municipio para as operações com o exterior. + + + + + + + + + + + Sigla da UF de envio do CT-e (de onde o documento foi transmitido) + Informar 'EX' para operações com o exterior. + + + + + Modal do CT-e OS + Preencher com: +01-Rodoviário; +02- Aéreo; +03 - Aquaviário; +04 - Ferroviário. + + + + + Tipo do Serviço + Preencher com: + +6 - Transporte de Pessoas; +7 - Transporte de Valores; +8 - Excesso de Bagagem. + + + + + + + + + + + + + Indicador da IE do tomador: +1 – Contribuinte ICMS; +2 – Contribuinte isento de inscrição; +9 – Não Contribuinte + Aplica-se ao tomador que for indicado no toma3 ou toma4 + + + + + + + + + + + + + Código do Município de início da prestação + Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior. + + + + + Nome do Município do início da prestação + Informar 'EXTERIOR' para operações com o exterior. + + + + + + + + + + + UF do início da prestação + Informar 'EX' para operações com o exterior. + + + + + Código do Município de término da prestação + Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior. + + + + + Nome do Município do término da prestação + Informar 'EXTERIOR' para operações com o exterior. + + + + + + + + + + + UF do término da prestação + Informar 'EX' para operações com o exterior. + + + + + Informações do Percurso do CT-e Outros Serviços + + + + + + Sigla das Unidades da Federação do percurso do veículo. + Não é necessário repetir as UF de Início e Fim + + + + + + + + Informar apenas +para tpEmis diferente de 1 + + + + Data e Hora da entrada em contingência + Informar a data e hora no formato AAAA-MM-DDTHH:MM:SS + + + + + Justificativa da entrada em contingência + + + + + + + + + + + + + + + Dados complementares do CT-e para fins operacionais ou comerciais + + + + + + Característica adicional do transporte + Texto livre: +REENTREGA; DEVOLUÇÃO; REFATURAMENTO; etc + + + + + + + + + + + Característica adicional do serviço + Texto livre: + ENTREGA EXPRESSA; LOGÍSTICA REVERSA; CONVENCIONAL; EMERGENCIAL; etc + + + + + + + + + + + Funcionário emissor do CTe + + + + + + + + + + + Observações Gerais + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + Campo de uso livre do contribuinte + Informar o nome do campo no atributo xCampo e o conteúdo do campo no XTexto + + + + + + Conteúdo do campo + + + + + + + + + + + + Identificação do campo + + + + + + + + + + + + + + + + Identificação do Emitente do CT-e OS + + + + + + CNPJ do emitente + Informar zeros não significativos + + + + + Inscrição Estadual do Emitente + + + + + + + + Inscrição Estadual do Substituto Tributário + + + + + + + + Razão social ou Nome do emitente + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Endereço do emitente + + + + + Código do Regime Tributário + Informar: 1=Simples Nacional; +2=Simples Nacional, excesso sublimite de receita bruta; +3=Regime Normal; +4=Simples Nacional - Microempreendedor Individual – MEI. + + + + + + + + + Informações do Tomador/Usuário do Serviço + Opcional para Excesso de Bagagem + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Razão social ou nome do tomador + + + + + + + + + + + Nome fantasia + + + + + + + + + + + Telefone + + + + + Dados do endereço + + + + + Endereço de email + + + + + + + + + + + Valores da Prestação de Serviço + + + + + + Valor Total da Prestação do Serviço + Pode conter zeros quando o CT-e for de complemento de ICMS + + + + + Valor a Receber + + + + + Componentes do Valor da Prestação + + + + + + Nome do componente + Exxemplos: FRETE PESO, FRETE VALOR, SEC/CAT, ADEME, AGENDAMENTO, etc + + + + + + + + + + + Valor do componente + + + + + + + + + + + Informações relativas aos Impostos + + + + + + Informações relativas ao ICMS + + + + + + Valor Total dos Tributos + + + + + Informações adicionais de interesse do Fisco + Norma referenciada, informações complementares, etc + + + + + + + + + + + Informações do ICMS de partilha com a UF de término do serviço de transporte na operação interestadual + Grupo a ser informado nas prestações interestaduais para consumidor final, não contribuinte do ICMS + + + + + + Valor da BC do ICMS na UF de término da prestação do serviço de transporte + + + + + Percentual do ICMS relativo ao Fundo de Combate à pobreza (FCP) na UF de término da prestação do serviço de transporte + Alíquota adotada nas operações internas na UF do destinatário + + + + + Alíquota interna da UF de término da prestação do serviço de transporte + Alíquota adotada nas operações internas na UF do destinatário + + + + + Alíquota interestadual das UF envolvidas + Alíquota interestadual das UF envolvidas + + + + + + Valor do ICMS relativo ao Fundo de Combate á Pobreza (FCP) da UF de término da prestação + + + + + Valor do ICMS de partilha para a UF de término da prestação do serviço de transporte + + + + + Valor do ICMS de partilha para a UF de início da prestação do serviço de transporte + + + + + + + + Informações dos tributos federais + Grupo a ser informado nas prestações interestaduais para consumidor final, não contribuinte do ICMS + + + + + + Valor do PIS + + + + + Valor COFINS + + + + + Valor de Imposto de Renda + + + + + Valor do INSS + + + + + Valor do CSLL + + + + + + + + + + + + Grupo de informações do CT-e OS Normal + + + + + + Informações da Prestação do Serviço + + + + + + Descrição do Serviço prestado + + + + + + + + + + + Informações de quantidades da Carga do CT-e + Para Transporte de Pessoas indicar número de passageiros, para excesso de bagagem e transporte de valores indicar número de Volumes/Malotes + + + + + + Quantidade + + + + + + + + + + + Informações dos documentos referenciados + + + + + + + Número + + + + + + + + + + + Série + + + + + + + + + + + Subsérie + + + + + + + + + + + Data de Emissão + Formato AAAA-MM-DD + + + + + Valor Transportado + + + + + + Chave de acesso do BP-e que possui eventos excesso de bagagem + + + + + + + + + + + Informações de Seguro da Carga + + + + + + Responsável pelo seguro + Preencher com: + +4 - Emitente do CT-e; + +5 - Tomador de Serviço. + + + + + + + + + + + + + + + Nome da Seguradora + + + + + + + + + + + Número da Apólice + Obrigatório pela lei 11.442/07 (RCTRC) + + + + + + + + + + + + + + Informações do modal +Obrigatório para Pessoas e Bagagem + + + + + + XML do modal +Insira neste local o XML específico do modal + O elemento do tipo -any- permite estender o documento XML com elementos não especificados pelo schema. + Insira neste local - any- o XML específico do modal (rodoviário). A especificação do schema XML para cada modal pode ser encontrada nos arquivos que acompanham este pacote de liberação: + Rodoviário - ver arquivo CTeModalRodoviarioOS_v9.99 + +Onde v9.99 é a a designação genérica para a versão do arquivo. Por exemplo, o arquivo para o schema do modal Rodoviário na versão 4.00 será denominado "CTeModalRodoviarioOS_v4.00". + + + + + + Versão do leiaute específico para o Modal + + + + + + + + + + + + + Informações do CT-e de substituição + + + + + + Chave de acesso do CT-e a ser substituído (original) + + + + + + + + + + + + + Chave de acesso do CT-e Cancelado +Somente para Transporte de Valores + + + + + + + + Dados da cobrança do CT-e + + + + + + Dados da fatura + + + + + + Número da fatura + + + + + + + + + + + Valor original da fatura + + + + + Valor do desconto da fatura + + + + + Valor líquido da fatura + + + + + + + + Dados das duplicatas + + + + + + Número da duplicata + + + + + + + + + + + Data de vencimento da duplicata (AAAA-MM-DD) + + + + + Valor da duplicata + + + + + + + + + + + Informações das GTV-e relacionadas ao CT-e OS + + + + + + Chave de acesso da GTV-e + + + + + + + + + + Componentes do Valor da GTVe + + + + + + Tipo do Componente + 1-Custodia +2-Embarque +3-Tempo de espera +4-Malote +5-Ad Valorem +6-Outros + + + + + + + + + + + + + + + + Valor do componente + + + + + Nome do componente (informar apenas para outros) + Exemplos: FRETE PESO, FRETE VALOR, SEC/CAT, ADEME, AGENDAMENTO, etc + + + + + + + + + + + + + + + + + + + + Detalhamento do CT-e complementado + + + + + + Chave do CT-e complementado + + + + + + + + + Autorizados para download do XML do DF-e + Informar CNPJ ou CPF. Preencher os zeros não significativos. + + + + + + + CNPJ do autorizado + Informar zeros não significativos + + + + + CPF do autorizado + Informar zeros não significativos + + + + + + + + + Informações do Responsável Técnico pela emissão do DF-e + + + + + + Versão do leiaute + Ex: "4.00" + + + + + + + + Identificador da tag a ser assinada + Informar a chave de acesso do CT-e OS e precedida do literal "CTe" + + + + + + + + + + + + Informações suplementares do CT-e + + + + + + Texto com o QR-Code impresso no DACTE + + + + + + + + + + + + + + + + + + Versão do leiaute + + + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE) + + + + + Nome do município + + + + + + + + + + + CEP + Informar zeros não significativos + + + + + + + + + + + Sigla da UF + + + + + Telefone + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE) + Informar 9999999 para operações com o exterior. + + + + + Nome do município + Informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + Informar os zeros não significativos + + + + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + Código do país + Utilizar a tabela do BACEN + + + + + + + + + + + Nome do país + + + + + + + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município, , informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + + + + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + + + Tipo Dados do Endereço + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE), informar 9999999 para operações com o exterior. + + + + + Nome do município + Informar EXTERIOR para operações com o exterior. + + + + + + + + + + + CEP + + + + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + Código do país + + + + + + + + + + + Nome do país + + + + + + + + + + + Telefone + + + + + + + Tipo Dados do Local de Origem ou Destino + + + + + Código do município (utilizar a tabela do IBGE) + + + + + Nome do município + + + + + + + + + + + Sigla da UF + + + + + + + Tipo Dados do Local de Retirada ou Entrega + + + + + + Número do CNPJ + + + + + Número do CPF + + + + + + Razão Social ou Nome + + + + + + + + + + + Logradouro + + + + + + + + + + + Número + + + + + + + + + + + Complemento + + + + + + + + + + + Bairro + + + + + + + + + + + Código do município (utilizar a tabela do IBGE) + Informar 9999999 para operações com o exterior. + + + + + Nome do município + Informar EXTERIOR para operações com o exterior. + + + + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + + + Tipo Dados do Imposto CT-e + + + + + Prestação sujeito à tributação normal do ICMS + + + + + + classificação Tributária do Serviço + 00 - tributação normal ICMS + + + + + + + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + + + + Prestação sujeito à tributação com redução de BC do ICMS + + + + + + Classificação Tributária do serviço + 20 - tributação com BC reduzida do ICMS + + + + + + + + + + + Percentual de redução da BC + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + + + + ICMS Isento, não Tributado ou diferido + + + + + + Classificação Tributária do Serviço + Preencher com: + 40 - ICMS isenção; + 41 - ICMS não tributada; + 51 - ICMS diferido + + + + + + + + + + + + + + + + Tributação pelo ICMS60 - ICMS cobrado por substituição tributária.Responsabilidade do recolhimento do ICMS atribuído ao tomador ou 3º por ST + + + + + + Classificação Tributária do Serviço + 60 - ICMS cobrado por substituição tributária + + + + + + + + + + + Valor da BC do ICMS ST retido + Valor do frete sobre o qual será calculado o ICMS a ser substituído na Prestação. + + + + + Valor do ICMS ST retido + Resultado da multiplicação do “vBCSTRet” x “pICMSSTRet” – que será valor do ICMS a ser retido pelo Substituto. Podendo o valor do ICMS a ser retido efetivamente, sofrer ajustes conforme a opção tributaria do transportador substituído. + + + + + Alíquota do ICMS + Percentual de Alíquota incidente na prestação de serviço de transporte. + + + + + Valor do Crédito outorgado/Presumido + Preencher somente quando o transportador substituído, for optante pelo crédito outorgado previsto no Convênio 106/96 e corresponde ao percentual de 20% do valor do ICMS ST retido. + + + + + + + + ICMS Outros + + + + + + Classificação Tributária do Serviço + 90 - ICMS outros + + + + + + + + + + + Percentual de redução da BC + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + Valor do Crédito Outorgado/Presumido + + + + + + + + ICMS devido à UF de origem da prestação, quando diferente da UF do emitente + + + + + + Classificação Tributária do Serviço + 90 - ICMS Outra UF + + + + + + + + + + + Percentual de redução da BC + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS devido outra UF + + + + + + + + Simples Nacional + + + + + + Classificação Tributária do Serviço + 90 - ICMS Simples Nacional + + + + + + + + + + + Indica se o contribuinte é Simples Nacional 1=Sim + + + + + + + + + + + + + + + + Tipo Dados do Imposto para CT-e OS + + + + + Prestação sujeito à tributação normal do ICMS + + + + + + classificação Tributária do Serviço + 00 - tributação normal ICMS + + + + + + + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + + + + Prestação sujeito à tributação com redução de BC do ICMS + + + + + + Classificação Tributária do serviço + 20 - tributação com BC reduzida do ICMS + + + + + + + + + + + Percentual de redução da BC + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + + + + ICMS Isento, não Tributado ou diferido + + + + + + Classificação Tributária do Serviço + Preencher com: + 40 - ICMS isenção; + 41 - ICMS não tributada; + 51 - ICMS diferido + + + + + + + + + + + + + + + + ICMS Outros + + + + + + Classificação Tributária do Serviço + 90 - Outros + + + + + + + + + + + Percentual de redução da BC + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS + + + + + Valor do Crédito Outorgado/Presumido + + + + + + + + ICMS devido à UF de origem da prestação, quando diferente da UF do emitente + + + + + + Classificação Tributária do Serviço + 90 - ICMS Outra UF + + + + + + + + + + + Percentual de redução da BC + + + + + Valor da BC do ICMS + + + + + Alíquota do ICMS + + + + + Valor do ICMS devido outra UF + + + + + + + + Simples Nacional + + + + + + Classificação Tributária do Serviço + 90 - ICMS Simples Nacional + + + + + + + + + + + Indica se o contribuinte é Simples Nacional 1=Sim + + + + + + + + + + + + + + + + Tipo Dados Unidade de Transporte + + + + + Tipo da Unidade de Transporte + 1 - Rodoviário Tração +2 - Rodoviário Reboque +3 - Navio +4 - Balsa +5 - Aeronave +6 - Vagão +7 - Outros + + + + + Identificação da Unidade de Transporte + Informar a identificação conforme o tipo de unidade de transporte. +Por exemplo: para rodoviário tração ou reboque deverá preencher com a placa do veículo. + + + + + + Lacres das Unidades de Transporte + + + + + + Número do lacre + + + + + + + + + + + + + + Informações das Unidades de Carga (Containeres/ULD/Outros) + Dispositivo de carga utilizada (Unit Load Device - ULD) significa todo tipo de contêiner de carga, vagão, contêiner de avião, palete de aeronave com rede ou palete de aeronave com rede sobre um iglu. + + + + + Quantidade rateada (Peso,Volume) + + + + + + + Tipo Dados Unidade de Carga + + + + + Tipo da Unidade de Carga + 1 - Container +2 - ULD +3 - Pallet +4 - Outros + + + + + Identificação da Unidade de Carga + Informar a identificação da unidade de carga, por exemplo: número do container. + + + + + Lacres das Unidades de Carga + + + + + + Número do lacre + + + + + + + + + + + + + + Quantidade rateada (Peso,Volume) + + + + + + + Tipo Dados da Responsável Técnico + + + + + CNPJ da pessoa jurídica responsável técnica pelo sistema utilizado na emissão do documento fiscal eletrônico + Informar o CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico. + + + + + Nome da pessoa a ser contatada + Informar o nome da pessoa a ser contatada na empresa desenvolvedora do sistema utilizado na emissão do documento fiscal eletrônico. No caso de pessoa física, informar o respectivo nome. + + + + + + + + + + + Email da pessoa jurídica a ser contatada + + + + + Telefone da pessoa jurídica a ser contatada + Preencher com o Código DDD + número do telefone. + + + + + + + + + + + + Identificador do código de segurança do responsável técnico + Identificador do CSRT utilizado para geração do hash + + + + + + + + + + Hash do token do código de segurança do responsável técnico + O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT) + +Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary + + + + + + + + + + + + + Tipo CFOP + + + + + + + + + Tipo Código da Lista de Serviços LC 116/2003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Número do Container + + + + + + + + + + + Tipo Documento Associado + + + + + + + + + + + + + + + Tipo Email + + + + + + + + + + + Tipo Finalidade da CT-e + + + + + + + + + + + Tipo Identificador de controle do envio do lote. Número seqüencial auto-incremental, de controle correspondente ao identificador único do lote enviado. A responsabilidade de gerar e controlar esse número é do próprio contribuinte. + + + + + + + + + Tipo Modelo do Documento + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Modal transporte Outros Serviços + + + + + + + + + + + + Tipo Modal transporte + + + + + + + + + + + + + + Tipo RNTRC - Registro Nacional Transportadores Rodoviários de Carga + + + + + + + + + Tipo CIOT - Código Identificador da Operação de Transporte + + + + + + + + + Tipo Código Regime Tributário + + + + + + + + + + + + + + Tipo processo de emissão do CT-e + + + + + + + + + + Tipo hora + + + + + + + + + Tipo Versão do CT-e - 4.00 + + + + + + + diff --git a/CTe.AppTeste/schemas/cte_v4.00.xsd b/CTe.AppTeste/schemas/cte_v4.00.xsd new file mode 100644 index 000000000..b0cb9c1a9 --- /dev/null +++ b/CTe.AppTeste/schemas/cte_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Conhecimento de Transporte Eletrônico + + + diff --git a/CTe.AppTeste/schemas/distCTePorUF_v3.00.xsd b/CTe.AppTeste/schemas/distCTePorUF_v3.00.xsd new file mode 100644 index 000000000..e70c9f3e4 --- /dev/null +++ b/CTe.AppTeste/schemas/distCTePorUF_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + solicitação de distribuição de CT-e para o Ambiente Nacional + + + diff --git a/CTe.AppTeste/schemas/distCTe_v3.00.xsd b/CTe.AppTeste/schemas/distCTe_v3.00.xsd new file mode 100644 index 000000000..fc98f85de --- /dev/null +++ b/CTe.AppTeste/schemas/distCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + solicitação de distribuição de CT-e para o Ambiente Nacional + + + diff --git a/CTe.AppTeste/schemas/distChCTe_v3.00.xsd b/CTe.AppTeste/schemas/distChCTe_v3.00.xsd new file mode 100644 index 000000000..828d15e89 --- /dev/null +++ b/CTe.AppTeste/schemas/distChCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + solicitação de distribuição de dados de controle dos DF-e + + + diff --git a/CTe.AppTeste/schemas/evCCeCTe_v4.00.xsd b/CTe.AppTeste/schemas/evCCeCTe_v4.00.xsd new file mode 100644 index 000000000..92e786909 --- /dev/null +++ b/CTe.AppTeste/schemas/evCCeCTe_v4.00.xsd @@ -0,0 +1,98 @@ + + + + + + + Schema XML de validação do evento carta de correção +110110 + + + + + + Descrição do Evento - “Carta de Correção” + + + + + + + + + + + + Grupo de Informações de Correção + + + + + + Indicar o grupo de informações que pertence o campoAlterado. Ex: ide + + + + + + + + + + + + Nome do campo modificado do CT-e Original. + + + + + + + + + + + + Valor correspondente à alteração. + + + + + + + + + + + + Preencher com o indice do item alterado caso a alteração ocorra em uma lista. +OBS: O indice inicia sempre em 1 + + + + + + + + + + + + + + Condições de uso da Carta de Correção, + informar a literal :Condições de uso da Carta de Correção, informar a literal: +“A Carta de Correção é disciplinada pelo Art. 58-B do CONVÊNIO/SINIEF 06/89: Fica permitida a utilização de carta de correção, para regularização de erro ocorrido na emissão de documentos fiscais relativos à prestação de serviço de transporte, desde que o erro não esteja relacionado com: I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da prestação;II - a correção de dados cadastrais que implique mudança do emitente, tomador, remetente ou do destinatário;III - a data de emissão ou de saída.” (texto com acentuação) ou “A Carta de Correcao e disciplinada pelo Art. 58-B do CONVENIO/SINIEF 06/89: Fica permitida a utilizacao de carta de correcao, para regularizacao de erro ocorrido na emissao de documentos fiscais relativos a prestacao de servico de transporte, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da prestacao;II - a correcao de dados cadastrais que implique mudança do emitente, tomador, remetente ou do destinatario;III - a data de emissao ou de saida.” (texto sem acentuação) + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCECTe_v3.00.xsd b/CTe.AppTeste/schemas/evCECTe_v3.00.xsd new file mode 100644 index 000000000..80b202309 --- /dev/null +++ b/CTe.AppTeste/schemas/evCECTe_v3.00.xsd @@ -0,0 +1,108 @@ + + + + + + + Schema XML de validação do evento comprovante de entrega eletrônico do CT-e +110180 + + + + + + Descrição do Evento - “Comprovante de Entrega do CT-e” + + + + + + + + + + + Número do Protocolo de autorização do CT-e + + + + + Data e hora de conclusão da entrega da NF-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Número do Documento de identificação da pessoa que recebeu a entrega + + + + + + + + + + + Nome da pessoa que recebeu a entrega + + + + + + + + + + + Latitude do ponto de entrega + + + + + Longitude do ponto de entrega + + + + + Hash (SHA1) no formato Base64 resultante da concatenação: Chave de acesso do CT-e + Base64 da imagem capturada da entrega (Exemplo: imagem capturada da assinatura eletrônica, digital do recebedor, foto, etc) + O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT) +Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary + + + + + + + + + + Data e hora de geração do hash entrega + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Grupo de informações das NF-e que foram entregues ao Destinatário + Informar o grupo apenas para CT-e com tipo de serviço Normal + + + + + + Chave de acesso da NF-e entregue + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCECTe_v4.00.xsd b/CTe.AppTeste/schemas/evCECTe_v4.00.xsd new file mode 100644 index 000000000..17f9c36c4 --- /dev/null +++ b/CTe.AppTeste/schemas/evCECTe_v4.00.xsd @@ -0,0 +1,108 @@ + + + + + + + Schema XML de validação do evento comprovante de entrega eletrônico do CT-e +110180 + + + + + + Descrição do Evento - “Comprovante de Entrega do CT-e” + + + + + + + + + + + Número do Protocolo de autorização do CT-e + + + + + Data e hora de conclusão da entrega da NF-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Número do Documento de identificação da pessoa que recebeu a entrega + + + + + + + + + + + Nome da pessoa que recebeu a entrega + + + + + + + + + + + Latitude do ponto de entrega + + + + + Longitude do ponto de entrega + + + + + Hash (SHA1) no formato Base64 resultante da concatenação: Chave de acesso do CT-e + Base64 da imagem capturada da entrega (Exemplo: imagem capturada da assinatura eletrônica, digital do recebedor, foto, etc) + O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT) +Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary + + + + + + + + + + Data e hora de geração do hash entrega + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Grupo de informações das NF-e que foram entregues ao Destinatário + Informar o grupo apenas para CT-e com tipo de serviço Normal + + + + + + Chave de acesso da NF-e entregue + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeAnulado_v3.00.xsd b/CTe.AppTeste/schemas/evCTeAnulado_v3.00.xsd new file mode 100644 index 000000000..95662873f --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeAnulado_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação do CT-e de Anulação 240150 + + + + + + Descrição do Evento - "CT-e Anulado" + + + + + + + + + + + Informar a chave de acesso do CT-e de Anulação de Valores que referenciou o CT-e Original + + + + + Data e hora de processamento do CT-e de Anulação, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e de Anulação. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeAutorizadoMDFe_v3.00.xsd b/CTe.AppTeste/schemas/evCTeAutorizadoMDFe_v3.00.xsd new file mode 100644 index 000000000..a52772d4d --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeAutorizadoMDFe_v3.00.xsd @@ -0,0 +1,97 @@ + + + + + + Schema XML de validação do evento MDF-e Autorizado 310610 + + + + + + Descrição do Evento - "MDF-e Autorizado" + + + + + + + + + + + Dados do MDF-e + + + + + + Chave de Acesso do MDF-e + + + + + Modal do MDF-e + + + + + + + + + + + + + + Data de Emissão do MDF-e, formato AAAA-MM-DDThh:mm:ss TZD + + + + + Número do Protocolo de Status do MDF-e. 1 posição tipo de autorizador (9- Ambiente Autorizador do MDF-e ); 2 posições ano; 10 seqüencial no ano. + + + + + Data e hora de processamento, no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + + + + Dados do Emitente do MDF-e + + + + + + CNPJ do emitente + + + + + IE do emitente + + + + + Razão social ou Nome do Emitente + + + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeCanceladoMDFe_v3.00.xsd b/CTe.AppTeste/schemas/evCTeCanceladoMDFe_v3.00.xsd new file mode 100644 index 000000000..024ed93f7 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeCanceladoMDFe_v3.00.xsd @@ -0,0 +1,43 @@ + + + + + + Schema XML de validação do evento MDF-e Cancelado 310611 + + + + + + Descrição do Evento - "MDF-e Cancelado" + + + + + + + + + + + Dados do MDF-e + + + + + + Chave de Acesso do MDF-e + + + + + Número do Protocolo de Cancelamento do MDF-e. 1 posição tipo de autorizador (9- Ambiente Autorizador do MDF-e ); 2 posições ano; 10 seqüencial no ano. + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeComplementar_v3.00.xsd b/CTe.AppTeste/schemas/evCTeComplementar_v3.00.xsd new file mode 100644 index 000000000..db4f2d44a --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeComplementar_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação Autorizado CT-e Complementar 240130 + + + + + + Descrição do Evento - “Autorizado CT-e Complementar” + + + + + + + + + + + Informar a chave de acesso do CT-e Complementar que referenciou o CT-e Original + + + + + Data e hora de processamento do CT-e Complementar, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e Complementar. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeLiberaEPEC_v3.00.xsd b/CTe.AppTeste/schemas/evCTeLiberaEPEC_v3.00.xsd new file mode 100644 index 000000000..b91ae0c18 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeLiberaEPEC_v3.00.xsd @@ -0,0 +1,36 @@ + + + + + + Schema XML de validação do evento de Liberação de EPEC 240160 + + + + + + Descrição do Evento - “Liberação EPEC” + + + + + + + + + + + Motivo da Liberação do Bloqueio da EPEC informado pela UF. + Norma referenciada, informações complementares, etc + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeLiberaPrazoCanc_v3.00.xsd b/CTe.AppTeste/schemas/evCTeLiberaPrazoCanc_v3.00.xsd new file mode 100644 index 000000000..e2ad92ab5 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeLiberaPrazoCanc_v3.00.xsd @@ -0,0 +1,36 @@ + + + + + + Schema XML de validação do evento de Liberação do Prazo de Cancelamento 240170 + + + + + + Descrição do Evento - “Liberação Prazo Cancelamento” + + + + + + + + + + + Motivo da Liberação do Prazo de Cancelamento informado pela UF. + Norma referenciada, informações complementares, etc + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeMultimodal_v3.00.xsd b/CTe.AppTeste/schemas/evCTeMultimodal_v3.00.xsd new file mode 100644 index 000000000..409c8c1cd --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeMultimodal_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação Autorizado Serviço Vinculado a Multimodal 440160 + + + + + + Descrição do Evento - “Autorizado Serviço Vinculado a Multimodal” + + + + + + + + + + + Informar a chave de acesso do CT-e que referenciou o CT-e Multimodal + + + + + Data e hora de processamento do CT-e que referenciou o Multimodal, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e que referenciou o Multimodal. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeRedespachoInter_v3.00.xsd b/CTe.AppTeste/schemas/evCTeRedespachoInter_v3.00.xsd new file mode 100644 index 000000000..d73c9c636 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeRedespachoInter_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação Autorizado Redespacho Intermediário 440140 + + + + + + Descrição do Evento - “Autorizado Redespacho Intermediário” + + + + + + + + + + + Informar a chave de acesso do CT-e de Redespacho Intermediário que referenciou o CT-e + + + + + Data e hora de processamento do CT-e de Redespacho Intermediário que referenciou o CT-e, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e Redespacho Intermediário que referenciou o CT-e. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeRedespacho_v3.00.xsd b/CTe.AppTeste/schemas/evCTeRedespacho_v3.00.xsd new file mode 100644 index 000000000..d68d8bde3 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeRedespacho_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação Autorizado Redespacho 440130 + + + + + + Descrição do Evento - “Autorizado Redespacho” + + + + + + + + + + + Informar a chave de acesso do CT-e de Redespacho que referenciou o CT-e + + + + + Data e hora de processamento do CT-e de Redespacho que referenciou o CT-e, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e Redespacho que referenciou o CT-e. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeRegPassagemAuto_v3.00.xsd b/CTe.AppTeste/schemas/evCTeRegPassagemAuto_v3.00.xsd new file mode 100644 index 000000000..9abbfa75c --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeRegPassagemAuto_v3.00.xsd @@ -0,0 +1,149 @@ + + + + + + Schema XML de validação do evento de Registro de Passagem Automatico do CT-e 510620 + + + + + + Descrição do Evento - “Registro de Passagem Automático” + + + + + + + + + + + Tipo de Transmissão: N – Normal; R – Retransmissão; A - Atraso Processamento + + + + + + + + + + + + + Informações do Registro de Passagem + + + + + + Informar o codigo da UF onde foi registrada a passagem. Deverá ser utilizada a tabela do IBGE. + Informar 'EX' para operações com o exterior. + + + + + Codigo Identificação do Equipamento (SLD, OCR) ou 99999 para tpEquip=3 + + + + + + + + + + + Nome Identificação do Equiipamento (SLD, OCR) ou Sem Equipamento para tpEquip=3 + + + + + + + + + + + Tipo de Equipamento: +1 – SLD (Antena); 2 – OCR; 3 - Leitura Sen Equipamento + + + + + + + + + + + + + Placa do Veiculo de Tracao + + + + + + + + Sentido da Passagem: +E – Entrada; S – Saída; I - Indeterminado + + + + + + + + + + + + + + Data e hora do Registro de Passagem + Formato AAAA-MM-DDTHH:MM:DD + + + + + Latitude do ponto geográfico onde foi registrada a passagem + + + + + Latitude do ponto geográfico onde foi registrada a passagem + + + + + NSU do registro na base do ONE + + + + + + + + Chave de Acesso do MDF-e que originou o registro + + + + + Informações complementares do Fisco de Registro de Passagem + Norma referenciada, informações complementares, etc + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeRegPassagem_v3.00.xsd b/CTe.AppTeste/schemas/evCTeRegPassagem_v3.00.xsd new file mode 100644 index 000000000..9a61cd06b --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeRegPassagem_v3.00.xsd @@ -0,0 +1,145 @@ + + + + + + Schema XML de validação do evento de Registro de Passagem do CT-e 310620 + + + + + + Descrição do Evento - “Registro de Passagem” + + + + + + + + + + + Informar o código da UF onde foi registrada a passagem. Deverá ser utilizada a tabela do IBGE. + Informar 'EX' para operações com o exterior. + + + + + Código da Unidade Fiscal + + + + + + + + + + Nome da Unidade Fiscal + + + + + + + + + + + Data e hora do Registro de Passagem + Formato AAAA-MM-DDTHH:MM:DD + + + + + Identificação do funcionário responsável pelo registro de passagem + + + + + Nome do funcionário responsável pelo registro de passagem + + + + + + + + + + + Tipo de Transmissão: N – Normal; A – Atrasada + + + + + + + + + + + + Sentido da Passagem: +E – Entrada; S – Saída; I - Indeterminado + + + + + + + + + + + + + + Latitude do ponto geográfico onde foi registrada a passagem + + + + + Latitude do ponto geográfico onde foi registrada a passagem + + + + + Placa do Veiculo de Tracao + + + + + + + + Segundo código de barras do CT-e em contingência + + + + + + + + + + Chave de Acesso do MDF-e que originou o registro + + + + + Informações complementares do Fisco de Registro de Passagem + Norma referenciada, informações complementares, etc + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeSubcontratacao_v3.00.xsd b/CTe.AppTeste/schemas/evCTeSubcontratacao_v3.00.xsd new file mode 100644 index 000000000..fd2171b67 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeSubcontratacao_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação Autorizado Subcontratação 440150 + + + + + + Descrição do Evento - “Autorizado Subcontratação” + + + + + + + + + + + Informar a chave de acesso do CT-e de Subcontratação que referenciou o CT-e + + + + + Data e hora de processamento do CT-e de Subcontratação que referenciou o CT-e, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e de Subcontratação que referenciou o CT-e. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCTeSubstituido_v3.00.xsd b/CTe.AppTeste/schemas/evCTeSubstituido_v3.00.xsd new file mode 100644 index 000000000..0a258f3e0 --- /dev/null +++ b/CTe.AppTeste/schemas/evCTeSubstituido_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação do CT-e de Substituição 240140 + + + + + + Descrição do Evento - "CT-e Substituido" + + + + + + + + + + + Informar a chave de acesso do CT-e de Substituicao que referenciou o CT-e Original + + + + + Data e hora de processamento do CT-e de Substituição, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Autorização do CT-e de Substituição. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCancCECTe_v3.00.xsd b/CTe.AppTeste/schemas/evCancCECTe_v3.00.xsd new file mode 100644 index 000000000..6f557453c --- /dev/null +++ b/CTe.AppTeste/schemas/evCancCECTe_v3.00.xsd @@ -0,0 +1,36 @@ + + + + + + + Schema XML de validação do evento cancelamento do comprovante de entrega eletrônico do CT-e +110181 + + + + + + Descrição do Evento - “Cancelamento do Comprovante de Entrega do CT-e” + + + + + + + + + + + Número do Protocolo de autorização do CT-e + + + + + Número do Protocolo de autorização do evento a ser cancelado + + + + + + diff --git a/CTe.AppTeste/schemas/evCancCECTe_v4.00.xsd b/CTe.AppTeste/schemas/evCancCECTe_v4.00.xsd new file mode 100644 index 000000000..0a9f3ef59 --- /dev/null +++ b/CTe.AppTeste/schemas/evCancCECTe_v4.00.xsd @@ -0,0 +1,36 @@ + + + + + + + Schema XML de validação do evento cancelamento do comprovante de entrega eletrônico do CT-e +110181 + + + + + + Descrição do Evento - “Cancelamento do Comprovante de Entrega do CT-e” + + + + + + + + + + + Número do Protocolo de autorização do CT-e + + + + + Número do Protocolo de autorização do evento a ser cancelado + + + + + + diff --git a/CTe.AppTeste/schemas/evCancCTeComplementar_v3.00.xsd b/CTe.AppTeste/schemas/evCancCTeComplementar_v3.00.xsd new file mode 100644 index 000000000..44796b9f6 --- /dev/null +++ b/CTe.AppTeste/schemas/evCancCTeComplementar_v3.00.xsd @@ -0,0 +1,39 @@ + + + + + + Schema XML de validação do evento de marcação Cancelado CT-e Complementar 240131 + + + + + + Descrição do Evento - “Cancelado CT-e Complementar” + + + + + + + + + + + Informar a chave de acesso do CT-e Complementar que referenciou o CT-e Original + + + + + Data e hora de recebimento do Cancelamento do CT-e Complementar, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Lote de CT-e enviado. + + + + + Número do Protocolo de Homologação do Cancelamento do CT-e Complementar. 1 posição tipo de autorizador (1 – Secretaria de Fazenda Estadual, 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP ); 2 posições ano; 10 seqüencial no ano. + + + + + + diff --git a/CTe.AppTeste/schemas/evCancCTe_v4.00.xsd b/CTe.AppTeste/schemas/evCancCTe_v4.00.xsd new file mode 100644 index 000000000..af1f280bf --- /dev/null +++ b/CTe.AppTeste/schemas/evCancCTe_v4.00.xsd @@ -0,0 +1,36 @@ + + + + + + + Schema XML de validação do evento do cancelamento +110111 + + + + + + Descrição do Evento - “Cancelamento” + + + + + + + + + + + Número do Protocolo de Status do CT-e + + + + + Justificativa do Cancelamento + + + + + + diff --git a/CTe.AppTeste/schemas/evCancIECTe_v4.00.xsd b/CTe.AppTeste/schemas/evCancIECTe_v4.00.xsd new file mode 100644 index 000000000..20ce3b5ff --- /dev/null +++ b/CTe.AppTeste/schemas/evCancIECTe_v4.00.xsd @@ -0,0 +1,36 @@ + + + + + + + Schema XML de validação do evento cancelamento do insucesso de entrega eletrônico do CT-e +110191 + + + + + + Descrição do Evento - “Cancelamento do Insucesso de Entrega do CT-e” + + + + + + + + + + + Número do Protocolo de autorização do CT-e + + + + + Número do Protocolo de autorização do evento a ser cancelado + + + + + + diff --git a/CTe.AppTeste/schemas/evCancPrestDesacordo.xsd b/CTe.AppTeste/schemas/evCancPrestDesacordo.xsd new file mode 100644 index 000000000..a3404d254 --- /dev/null +++ b/CTe.AppTeste/schemas/evCancPrestDesacordo.xsd @@ -0,0 +1,32 @@ + + + + + + + Schema XML de validação do evento Cancelamento Prestação do Serviço em Desacordo 610111 + + + + + + Descrição do Evento - “Cancelamento Prestação do Serviço em Desacordo” + + + + + + + + + + + + Protocolo do evento que será cancelado + Informar o número do protocolo de autorização do evento de prestação de serviço em desacordo que será cancelado + + + + + + diff --git a/CTe.AppTeste/schemas/evEPECCTe_v4.00.xsd b/CTe.AppTeste/schemas/evEPECCTe_v4.00.xsd new file mode 100644 index 000000000..be7452cdf --- /dev/null +++ b/CTe.AppTeste/schemas/evEPECCTe_v4.00.xsd @@ -0,0 +1,161 @@ + + + + + + + Schema XML de validação do evento de emissão prévia de emissão em contingência +110113 + + + + + + Descrição do Evento - “EPEC” + + + + + + + + + + + Justificativa da Entrada em Contingencia + + + + + Valor do ICMS + + + + + Valor do ICMS ST + + + + + Valor Total da Prestação do Serviço + Pode conter zeros quando o CT-e for de complemento de ICMS + + + + + Valor total da carga + Dever ser informado para todos os modais, com exceção para o Dutoviário. + + + + + Indicador do "papel" do tomador do serviço no CT-e + + + + + + Tomador do Serviço + Preencher com: +0-Remetente; +1-Expedidor;2-Recebedor;3-Destinatário +;4 - Outros + + + + + + + + + + + + + + + UF do tomador do serviço + Informar 'EX' para operações com o exterior. + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. +Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Modal + Preencher com: + +01-Rodoviário; + +02-Aéreo; +03-Aquaviário; + +04-Ferroviário; + +05-Dutoviário; +06-Multimodal; + + + + + UF do início da prestação + Informar 'EX' para operações com o exterior. + + + + + UF do término da prestação + Informar 'EX' para operações com o exterior. + + + + + Tipo do CT-e - Aceitar apenas Tipo Normal = 0 + Preencher com: + 0 - CT-e Normal; + 1 - CT-e de Complemento de Valores; 2 - CT-e de Anulação; + 3 - CT-e Substituto + + + + + + + + + + + + Data e hora de emissão do CT-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evGTV_v4.00.xsd b/CTe.AppTeste/schemas/evGTV_v4.00.xsd new file mode 100644 index 000000000..9b9cd01a3 --- /dev/null +++ b/CTe.AppTeste/schemas/evGTV_v4.00.xsd @@ -0,0 +1,255 @@ + + + + + + + Schema XML de validação do evento informações da GTV 110170 + + + + + + Descrição do Evento - “Informações da GTV” + + + + + + + + + + + + Grupo de Informações das GTV + + + + + + Número da GTV + + + + + + + + + + + Identificador para diferenciar GTV de mesmo número (Usar número do AIDF ou identificador interno da empresa), + + + + + + + + + + + Série + + + + + + + + + + + Subsérie + + + + + + + + + + + Data de Emissão + Formato AAAA-MM-DD + + + + + Número Dígito Verificador + + + + + + + + + + + Quantidade de volumes/malotes + + + + + Informações das Espécies transportadas + + + + + + Tipo da Espécie + 1 - Numerário +2 - Cheque +3 - Moeda +4 - Outros + + + + + + + + + + + + + + Valor Transportada em Espécie indicada + + + + + + + + Informações do Remetente da GTV + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do remetente ou ISENTO se remetente é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o remetente não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + Razão social ou nome do remetente + + + + + + + + + + + + + + Informações do Destinatário da GTV + + + + + + + Número do CNPJ + Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. + Informar os zeros não significativos. + + + + + Número do CPF + Informar os zeros não significativos. + + + + + + Inscrição Estadual + Informar a IE do destinatário ou ISENTO se remetente é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o remetente não seja contribuinte do ICMS não informar o conteúdo. + + + + + + + + Sigla da UF + Informar EX para operações com o exterior. + + + + + Razão social ou nome do destinatário + + + + + + + + + + + + + + Placa do veículo + + + + + UF em que veículo está licenciado + Sigla da UF de licenciamento do veículo. + + + + + RNTRC do transportador + + + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evIECTe_v4.00.xsd b/CTe.AppTeste/schemas/evIECTe_v4.00.xsd new file mode 100644 index 000000000..09266903f --- /dev/null +++ b/CTe.AppTeste/schemas/evIECTe_v4.00.xsd @@ -0,0 +1,126 @@ + + + + + + + Schema XML de validação do evento insucesso na entrega eletrônico do CT-e +110190 + + + + + + Descrição do Evento - “Insucesso na Entrega do CT-e” + + + + + + + + + + + Número do Protocolo de autorização do CT-e + + + + + Data e hora da tentativa da entrega da NF-e + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Número da tentativa de entrega que não teve insucesso + + + + + + + + + + + Motivo do insucesso + 1- Recebedor não encontrado; +2- Recusa do recebedor; +3- Endereço inexistente; +4- Outros (exige informar justificativa) + + + + + + + + + + + + + + Justificativa do Motivo de insucesso, informar apenas para tpMotivo = 4 + + + + + + + + + + + Latitude do ponto de entrega + + + + + Longitude do ponto de entrega + + + + + Hash (SHA1) no formato Base64 resultante da concatenação: Chave de acesso do CT-e + Base64 da imagem capturada da tentativa com insucesso da entrega (Exemplo: foto do local que não recebeu a entrega ou do local sem recebedor) + O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT) +Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary + + + + + + + + + + Data e hora de geração do hash tentativa entrega + Formato AAAA-MM-DDTHH:MM:DD TZD + + + + + + + + Grupo de informações das NF-e que não tiveram sucesso na entrega ao Destinatário + Informar o grupo apenas para CT-e com tipo de serviço Normal + + + + + + Chave de acesso da NF-e com insucesso na tentativa de entrega + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evPrestDesacordo_v4.00.xsd b/CTe.AppTeste/schemas/evPrestDesacordo_v4.00.xsd new file mode 100644 index 000000000..34542d33e --- /dev/null +++ b/CTe.AppTeste/schemas/evPrestDesacordo_v4.00.xsd @@ -0,0 +1,49 @@ + + + + + + + Schema XML de validação do evento Prestação do Serviço em Desacordo 610110 + + + + + + Descrição do Evento - “Prestação do Serviço em Desacordo” + + + + + + + + + + + + Indicador de operação em desacordo + + + + + + + + + + Observações do tomador + + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/evRegMultimodal_v4.00.xsd b/CTe.AppTeste/schemas/evRegMultimodal_v4.00.xsd new file mode 100644 index 000000000..6ba3eccd6 --- /dev/null +++ b/CTe.AppTeste/schemas/evRegMultimodal_v4.00.xsd @@ -0,0 +1,51 @@ + + + + + + + Schema XML de validação do evento Registro Multimodal 110160 + + + + + + Descrição do Evento - “Registro Multimodal” + + + + + + + + + + + Informação complementar sobre o registro, indicação do tipo de documento utilizado e demais situações ocorridas no Multimodal (Texto Livre). + + + + + + + + + + + + + Numero do Documento lançado no CT-e Multimodal + + + + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/eventoCTeTiposBasico_v3.00.xsd b/CTe.AppTeste/schemas/eventoCTeTiposBasico_v3.00.xsd index 567bd5151..c5ae9560f 100644 --- a/CTe.AppTeste/schemas/eventoCTeTiposBasico_v3.00.xsd +++ b/CTe.AppTeste/schemas/eventoCTeTiposBasico_v3.00.xsd @@ -23,11 +23,21 @@ 2 - Homologação - - - CNPJ do emissor do evento - - + + + + CNPJ do emissor do evento + + + + + CPF do emissor do evento + Informar zeros não significativos. + +Usar com série específica 920-969 para emitente pessoa física com inscrição estadual + + + Chave de Acesso do CT-e vinculado ao evento @@ -83,6 +93,27 @@ Insira neste local o XML específico do tipo de evento (cancelamento, encerramen + + + Grupo de informações do pedido de registro de evento da Nota Fiscal Fácil + + + + + + Solicitação do pedido de registro de evento da NFF. + Será preenchido com a totalidade de campos informados no aplicativo emissor serializado. + + + + + + + + + + + @@ -211,7 +242,26 @@ Insira neste local o XML específico do tipo de evento (cancelamento, encerramen - + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + diff --git a/CTe.AppTeste/schemas/eventoCTeTiposBasico_v4.00.xsd b/CTe.AppTeste/schemas/eventoCTeTiposBasico_v4.00.xsd new file mode 100644 index 000000000..71ce7421d --- /dev/null +++ b/CTe.AppTeste/schemas/eventoCTeTiposBasico_v4.00.xsd @@ -0,0 +1,331 @@ + + + + + + + + Tipo Evento + + + + + + + + Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar SUFRAMA + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + + CNPJ do emissor do evento + + + + + CPF do emissor do evento + Informar zeros não significativos. + +Usar com série específica 920-969 para emitente pessoa física com inscrição estadual + + + + + + Chave de Acesso do CT-e vinculado ao evento + + + + + Data e Hora do Evento, formato UTC (AAAA-MM-DDThh:mm:ssTZD) + + + + + Tipo do Evento + + + + + + + + + + + Seqüencial do evento para o mesmo tipo de evento. Para maioria dos eventos será 1, nos casos em que possa existir mais de um evento o autor do evento deve numerar de forma seqüencial. + + + + + + + + + + + Detalhamento do evento específico + + + + + + XML do evento +Insira neste local o XML específico do tipo de evento (cancelamento, encerramento, registro de passagem). + + + + + + + + + + + + + + + + Grupo de informações do pedido de registro de evento da Nota Fiscal Fácil + + + + + + Solicitação do pedido de registro de evento da NFF. + Será preenchido com a totalidade de campos informados no aplicativo emissor serializado. + + + + + + + + + + + + + + Grupo de Informação do Provedor de Assinatura e Autorização + + + + + + CNPJ do Provedor de Assinatura e Autorização + + + + + Assinatura RSA do Emitente para DFe gerados por PAA + + + + + + Assinatura digital padrão RSA + Converter o atributo Id do DFe para array de bytes e assinar com a chave privada do RSA com algoritmo SHA1 gerando um valor no formato base64. + + + + + Chave Publica no padrão XML RSA Key + + + + + + + + + + + + Identificador da TAG a ser assinada, a regra de formação do Id é: +“ID” + tpEvento + chave do CT-e + nSeqEvento + + + + + + + + + + + + + + + + Tipo retorno do Evento + + + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar SUFRAMA + + + + + Código do status da registro do Evento + + + + + Descrição literal do status do registro do Evento + + + + + Chave de Acesso CT-e vinculado + + + + + Tipo do Evento vinculado + + + + + + + + + + + Descrição do Evento + + + + + + + + + + + Seqüencial do evento + + + + + + + + + + + Data e Hora de do recebimento do evento ou do registro do evento formato AAAA-MM-DDThh:mm:ssTZD + + + + + Número do protocolo de registro do evento + + + + + + + + + + + + + + + + + + + + + + + Tipo procEvento + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + + Tipo Versão do Evento + + + + + + + + + Tipo Modal transporte + + + + + + + + + + + + + + Tipo número sequencial único do AN + + + + + + diff --git a/CTe.AppTeste/schemas/eventoCTe_v4.00.xsd b/CTe.AppTeste/schemas/eventoCTe_v4.00.xsd new file mode 100644 index 000000000..a61975004 --- /dev/null +++ b/CTe.AppTeste/schemas/eventoCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Pedido de Registro de Evento do CT-e + + + diff --git a/CTe.AppTeste/schemas/inutCTeTiposBasico_v3.00.xsd b/CTe.AppTeste/schemas/inutCTeTiposBasico_v3.00.xsd index 5a26ca820..d1c6e57d9 100644 --- a/CTe.AppTeste/schemas/inutCTeTiposBasico_v3.00.xsd +++ b/CTe.AppTeste/schemas/inutCTeTiposBasico_v3.00.xsd @@ -1,4 +1,5 @@ + @@ -195,7 +196,26 @@ - + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + diff --git a/CTe.AppTeste/schemas/inutCTeTiposBasico_v4.00.xsd b/CTe.AppTeste/schemas/inutCTeTiposBasico_v4.00.xsd new file mode 100644 index 000000000..36228c762 --- /dev/null +++ b/CTe.AppTeste/schemas/inutCTeTiposBasico_v4.00.xsd @@ -0,0 +1,228 @@ + + + + + + + + Tipo Pedido de Inutilização de Numeração do Conhecimento de Transporte eletrônico + + + + + Dados do Pedido de Inutilização de Numeração do Conhecimento de Transporte eletrônico + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Serviço Solicitado + + + + + Código da UF solicitada + + + + + Ano de inutilização da numeração + + + + + + + + + + CNPJ do emitente + + + + + Modelo da CT-e (57 ou 67) + + + + + Série da CT-e + + + + + Número da CT-e inicial + + + + + Número da CT-e final + + + + + Justificativa do pedido de inutilização + + + + + + + + + + + + + + + + + + + + + + + Tipo retorno do Pedido de Inutilização de Numeração do Conhecimento de Transporte eletrônico + + + + + Dados do Retorno do Pedido de Inutilização de Numeração do Conhecimento de Transporte eletrônico + + + + + + Identificação do Ambiente: +1 - Produção +2 - Homologação + + + + + Versão do Aplicativo que processou a CT-e + + + + + Código do status da mensagem enviada. + + + + + Descrição literal do status do serviço solicitado. + + + + + + + + + + + + Código da UF solicitada + + + + + Ano de inutilização da numeração + + + + + + + + + + CNPJ do emitente + + + + + Modelo da CT-e (57 ou 67) + + + + + Série da CT-e + + + + + Número da CT-e inicial + + + + + Número da CT-e final + + + + + Data e hora de recebimento, no formato AAAA-MM-DDTHH:MM:SS TZD. Deve ser preenchida com data e hora da gravação no Banco em caso de Confirmação. Em caso de Rejeição, com data e hora do recebimento do Pedido de Inutilização. + + + + + Número do Protocolo de Status do CT-e. 1 posição (1 – Secretaria de Fazenda Estadual , 3 - SEFAZ Virtual RS, 5 - SEFAZ Virtual SP); 2 - código da UF - 2 posições ano; 10 seqüencial no ano. + + + + + + + + + + + + + Tipo Pedido de inutilzação de númeração de CT-e processado + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + + Tipo Versão Inutilização de numeração de CT-e + + + + + + diff --git a/CTe.AppTeste/schemas/inutCTe_v4.00.xsd b/CTe.AppTeste/schemas/inutCTe_v4.00.xsd new file mode 100644 index 000000000..c368b74d0 --- /dev/null +++ b/CTe.AppTeste/schemas/inutCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Pedido de Inutilização de Numeração do Conhecimento de Transportes eletrônico + + + diff --git a/CTe.AppTeste/schemas/leiauteChCTe_v3.00.xsd b/CTe.AppTeste/schemas/leiauteChCTe_v3.00.xsd new file mode 100644 index 000000000..b9f11c2ec --- /dev/null +++ b/CTe.AppTeste/schemas/leiauteChCTe_v3.00.xsd @@ -0,0 +1,478 @@ + + + + + + Tipo Versão 3.00 + + + + + + + + Versão documento + + + + + + + + Tipo número sequencial único do AN + + + + + + + + solicitação de distribuição de dados de controle dos DF-e + + + + + +Identificação do Ambiente: +1 - Produção; +2 - Homologação + + + + + + Versão do Aplicativo que solicitou a distribuição de DF-e + + + + + Indicador de Compactação da Mensagem de retorno: +0 - sem compactação; +1 - compactação padrão gZip + + + + + + + + + + + + Código da UF do autorizador. Utilizar a Tabela do IBGE. + + + + + último NSU (AN) recebido pela SVC. Caso seja informado com zero, o AN tentará localizar o primeiro DF-e. + + + + + + NSU final desejado. Se informado, a aplicação do AN deverá observar este valor máximo do NSU a ser fornecido. + + + + + + + + + + + + + + + + Lote de dados de controle sobre os DF-e encontrados + + + + + +Identificação do Ambiente: + +1 - Produção; +2 - Homologação + + + + + + Versão do Aplicativo que solicitou a distribuição de DF-e + + + + + Código do status da resposta + + + + + Descrição literal do status da resposta + + + + + Código da UF do autorizador. Utilizar a Tabela do IBGE. + + + + + Ultimo NSU pesquisado pelo Ambiente Nacional + + + + + + NSU final desejado. Se informado, a aplicação do AN deverá observar este valor máximo do NSU a ser fornecido. + + + + + + + + + + + + + Maior NSU existente na Base Nacional para a SVC. + + + + + + + + + + + + Schema XML dados descompactado + + + + + + informações de controle CT-e + + + + + informações de controle Cancelamento + + + + + informações de controle Evento + + + + + informações de controle Inutilização + + + + + + + + + + + Código da UF do emitente do Documento Fiscal. Utilizar a Tabela do IBGE. + + + + + Chave de Acesso do DF-e + + + + + Hash MD5 da Chave de acesso convertido para base64 + + + + + Tipo de CT-e + Preencher com: + +0 - CT-e Normal; +1 - CT-e de Complemento de Valores; +2 - CT-e de Anulação de Valores; +3 - CT-e Substituto + + + + + + + + + + + + + Forma de Emiissão do DFe + Preencher com: +1 - Normal; + 4-EPEC pela SVC; 5 - Contingência FSDA; + 7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + Indicador de denegação do documento: 0 - NÃO denegado; 1 - denegado + + + + + + + + + + + Data e hora de autorizacao no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número de protocolo de autorização CT-e. + + + + + + número sequencial único do Ambiente Nacional + + + + + + + + + Código da UF do emitente do Documento Fiscal. Utilizar a Tabela do IBGE. + + + + + Chave de Acesso do DF-e cancelado + + + + + Hash MD5 da Chave de Acesso convertido para base64 + + + + + Forma de Emiissão do DFe + Preencher com: +1 - Normal; + 4-EPEC pela SVC; 5 - Contingência FSDA; + 7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + Número de protocolo de autorização do CT-e. + + + + + Data e hora de autorizacao do Cancelamento no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número de protocolo de autorização do Cancelamento + + + + + + número sequencial único do Ambiente Nacional + + + + + + + + + Código da UF do emitente do Documento Fiscal. Utilizar a Tabela do IBGE. + + + + + Ano de inutilização da numeração + + + + + CNPJ do emitente + + + + + Série do Documento Fiscal + + + + + Modelo do Documento Fiscal + + + + + Número da CT-e inicial + + + + + Número da CT-e final + + + + + Data e hora de autorizacao no formato AAAA-MM-DDTHH:MM:SS TZD + + + + + Número de protocolo de autorização da Inutilização. + + + + + + número sequencial único do Ambiente Nacional + + + + + + + + + Código do Orgao de Recepcao do Evento + + + + + Chave de Acesso do DF-e + + + + + Hash MD5 da Chave de Acesso convertido para base64 + + + + + Forma de Emiissão do DFe + Preencher com: +1 - Normal; + 4-EPEC pela SVC; 5 - Contingência FSDA; + 7 - Autorização pela SVC-RS; + 8 - Autorização pela SVC-SP + + + + + + + + + + + + + + CNPJ do Autor do Evento + + + + + Data e Hora do Evento, formato (AAAA-MM-DDThh:mm:ss TZD) + + + + + Tipo do Evento + + + + + + + + + + Seqüencial do evento para o mesmo tipo de evento. Para maioria dos eventos será 1, nos casos em que possa existir mais de um evento o autor do evento deve numerar de forma seqüencial. + + + + + + + + + + + Número de protocolo de autorização do CT-e. + + + + + Data e hora de autorizacao do Evento no formato AAAA-MM-DDTHH:MM:SS TZD. + + + + + Número de protocolo de autorização do evento + + + + + + número sequencial único do Ambiente Nacional + + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/leiauteLoteRFBCTe_v3.00.xsd b/CTe.AppTeste/schemas/leiauteLoteRFBCTe_v3.00.xsd new file mode 100644 index 000000000..a1174e93b --- /dev/null +++ b/CTe.AppTeste/schemas/leiauteLoteRFBCTe_v3.00.xsd @@ -0,0 +1,561 @@ + + + + + + + Tipo Versão + + + + + + + + Tipo número sequencial único do AN + + + + + + + + Schema XML de validação do lote de envio de documentos ficais eletronicos + + + + + Versão da aplicação do órgão autorizador. + + + + + + Conjunto de DF-e compactado com o método indicado no indComp, deve conter as mesmas informações do grupo loteEnvCTe + + + + + Conjunto de DF-e enviados, a princípio, apenas será permitido o envio de documentos fiscais em vigência. + + + + + + + + + Schema XML de validação da área de dados descompactada + + + + + + + + informação do proc + + + + + + Identificação do Schema XML de validação do proc, Ex. procCTe_v3.00.xsd, procCTeOS_v3.00.xsd, procInutCTe_v3.00.xsd, etc. + + + + + + + + + + + Schema XML de validação da área de dados da mensagem de retorno + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão da aplicação do AN que recebeu os documentos fiscais. + + + + + Código do status da resposta + + + + + Descrição literal do status da resposta + + + + + + Retorno de processamento dos DF-e, somente é gerado se os documentos fiscais forem válidos. + + + + + + Número de protocolo do DF-e processado, o campo serve para a aplicação da SEFAZ identificar os retornos. + + + + + código do status do processmaneto do DF-e + + + + + descrição do status do processmaneto do DF-e + + + + + número sequencial único do Ambiente Nacional + + + + + Número seqüencial único de Autorização gerado pelo Ambiente Nacional para a UF Autorizadora + + + + + + + + + + + + + + Schema XML de validação da área de dados da mensagem da solicitação de distribuição de DF-e + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que solicitou a distribuição de DF-e + + + + + Indicador de DF-e solicitados: 0 - DF-e autorizados pela UF; 1 - DF-e interestaduais destinados para a UF ; 2 – DF-e autorizados pela SEFAZ Virtual ou SVC em nome da UF; 3 - DF-e autorizados em contingencia SVC em nome da UF; 8 – DF-e interestaduais destinados para a UF (1) e DF-e autorizados pela SEFAZ Virtual ou SVC em nome da UF (2); 9 - Todos os DF-e. + + + + + + + + + + + + + + + Indicador de Compactação da Mensagem de retorno: 0 - sem compactação; 1 - compactação padrão gZip + + + + + + + + + + + último NSUAN recebido, caso seja informado com zero, o AN tentará localizar o primeiro DF-e existente. + + + + + + + + Schema XML de validação da área de dados da mensagem da solicitação de distribuição de DF-e + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que solicitou a distribuição de DF-e + + + + + Indicador do tipo de NSU que será solicitado: +0 – NSU dos DF-e autorizados pela UF; +1 – NSU dos DF-e de interesse da UF que não foram autorizados pela UF; + + + + + Indicador de Compactação da Mensagem de retorno: 0 - sem compactação; 1 - compactação padrão gZip + + + + + Último NSU recebido pela UF + + + + + + + + Schema XML de validação da área de dados da mensagem da consulta NSU Faltantes + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que solicitou a distribuição de DF-e + + + + + Indicador do tipo de NSU que será solicitado: +0 – NSU de autorizacao; +1 – NSU de busca + + + + + + + + + + + Indicador de Compactação da Mensagem de retorno: 0 - sem compactação; 1 - compactação padrão gZip + + + + + + + + + + + Lista de NSU + + + + + + NSU faltante na base de dados do Estado + + + + + + + + + + + Schema XML de validação do lote de retorno de documentos ficais eletronicos + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que atendeu a pedido de distribuição de DF-e + + + + + código do status de resultado da pesquisa + + + + + descrição do resultado do pesquisa + + + + + último NSU + + + + + + + + + + + + Schema XML de validação do lote de retorno de documentos ficais eletronicos + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que atendeu a pedido de distribuição de DF-e + + + + + código do status de resultado da pesquisa + + + + + descrição do resultado do pesquisa + + + + + Data e Hora de recebimento da solicitação de distribuição +Formato = AAAA-MM-DDTHH:MM:SS TZD + + + + + Indicador do tipo de NSU que será solicitado: +0 – NSU dos DF-e autorizados pela UF; +1 – NSU dos DF-e de interesse da UF que não foram autorizados pela UF; + + + + + último NSU + + + + + + + + + + + + Schema XML de validação da área de dados descompactada + + + + + + + + informação do proc + + + + + + Identificação do Schema XML de validação do proc, Ex. procCTe_v3.00.xsd, procCTeOS_v3.00.xsd, procInutCTe_v3.00.xsd, etc. + + + + + número sequencial único do Ambiente Nacional + + + + + + + + + + + Schema XML de validação da área de dados descompactada + + + + + + + + Código do status + + + + + Descrição literal do status correspondente ao documento retornado + + + + + + + + informação do proc + + + + + + Identificação do Schema XML de validação do proc, Ex. procCTe_v3.00.xsd, procCTeOS_v3.00.xsd, procInutCTe_v3.00.xsd, etc. + + + + + + + + + Número seqüencial único de Autorização ou de Busca + + + + + Número seqüencial único gerado na ordem de recepção no Ambiente Nacional independente do estado autorizador. + + + + + + + + + Schema XML de validação da área de dados da mensagem de consulta protocolos faltantes + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que gerou a consulta + + + + + número do protocolo inicial + + + + + + + + Schema XML de validação da área de dados da mensagem de retorno da consulta protocolos faltantes + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que atendeu a consulta + + + + + código do status de resultado da pesquisa + + + + + descrição do resultado do pesquisa + + + + + número do último protocolo pesquisado + + + + + + + + número do protocolo inicial + + + + + número do protocolo final + + + + + + + + + + + Schema XML de validação da área de dados da mensagem de retorno da consulta NSU faltantes + + + + + Identificação do Ambiente: 1 - Produção 2 - Homologação + + + + + Versão do Aplicativo que atendeu a pedido de distribuição de DF-e + + + + + código do status de resultado da pesquisa + + + + + descrição do resultado do pesquisa + + + + + Data e Hora de recebimento da solicitação de distribuição +Formato = AAAA-MM-DDTHH:MM:SS + + + + + Indicador do tipo de NSU que será solicitado: +0 – NSU dos DF-e autorizados pela UF; +1 – NSU dos DF-e de interesse da UF que não foram autorizados pela UF; + + + + + + + + + + diff --git a/CTe.AppTeste/schemas/loteDistCTePorUF_v3.00.xsd b/CTe.AppTeste/schemas/loteDistCTePorUF_v3.00.xsd new file mode 100644 index 000000000..b5533b736 --- /dev/null +++ b/CTe.AppTeste/schemas/loteDistCTePorUF_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Estrutura do Lote de Retorno de pedido de distribuição de CT-e, utilizar na validação da estrutura descompactada + + + diff --git a/CTe.AppTeste/schemas/loteDistCTe_v3.00.xsd b/CTe.AppTeste/schemas/loteDistCTe_v3.00.xsd new file mode 100644 index 000000000..66b4e0d49 --- /dev/null +++ b/CTe.AppTeste/schemas/loteDistCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Estrutura do Lote de Retorno de pedido de distribuição de CT-e, utilizar na validação da estrutura descompactada + + + diff --git a/CTe.AppTeste/schemas/loteEnvCTe_v3.00.xsd b/CTe.AppTeste/schemas/loteEnvCTe_v3.00.xsd new file mode 100644 index 000000000..ad2399ea3 --- /dev/null +++ b/CTe.AppTeste/schemas/loteEnvCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Estrutura do Lote de Envio de documentos do CT-e, utilizar na validação da estrutura descompactada + + + diff --git a/CTe.AppTeste/schemas/loteRFBCTe_v3.00.xsd b/CTe.AppTeste/schemas/loteRFBCTe_v3.00.xsd new file mode 100644 index 000000000..309712e7f --- /dev/null +++ b/CTe.AppTeste/schemas/loteRFBCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Envio de Lote de CT-e para o Ambiente Nacional + + + diff --git a/CTe.AppTeste/schemas/procCTeOS_v3.00.xsd b/CTe.AppTeste/schemas/procCTeOS_v3.00.xsd index 87c0b5f31..45456e445 100644 --- a/CTe.AppTeste/schemas/procCTeOS_v3.00.xsd +++ b/CTe.AppTeste/schemas/procCTeOS_v3.00.xsd @@ -1,4 +1,5 @@ + @@ -11,7 +12,26 @@ - + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + diff --git a/CTe.AppTeste/schemas/procCTeOS_v4.00.xsd b/CTe.AppTeste/schemas/procCTeOS_v4.00.xsd new file mode 100644 index 000000000..c019c2ecb --- /dev/null +++ b/CTe.AppTeste/schemas/procCTeOS_v4.00.xsd @@ -0,0 +1,37 @@ + + + + + + + CT-e OS processado + + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + diff --git a/CTe.AppTeste/schemas/procCTe_v3.00.xsd b/CTe.AppTeste/schemas/procCTe_v3.00.xsd index 6354b1f25..863a5b341 100644 --- a/CTe.AppTeste/schemas/procCTe_v3.00.xsd +++ b/CTe.AppTeste/schemas/procCTe_v3.00.xsd @@ -1,5 +1,5 @@ - + @@ -12,7 +12,26 @@ - + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + diff --git a/CTe.AppTeste/schemas/procCTe_v4.00.xsd b/CTe.AppTeste/schemas/procCTe_v4.00.xsd new file mode 100644 index 000000000..c13cb4c81 --- /dev/null +++ b/CTe.AppTeste/schemas/procCTe_v4.00.xsd @@ -0,0 +1,37 @@ + + + + + + + CT-e processado + + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + diff --git a/CTe.AppTeste/schemas/procEventoCTe_v4.00.xsd b/CTe.AppTeste/schemas/procEventoCTe_v4.00.xsd new file mode 100644 index 000000000..ddfe9d4fb --- /dev/null +++ b/CTe.AppTeste/schemas/procEventoCTe_v4.00.xsd @@ -0,0 +1,15 @@ + + + + + + + Pedido de Registro de Eventos de CT-e processado + + + + + + + + diff --git a/CTe.AppTeste/schemas/procGTVe_v3.00.xsd b/CTe.AppTeste/schemas/procGTVe_v3.00.xsd new file mode 100644 index 000000000..b1af67b2e --- /dev/null +++ b/CTe.AppTeste/schemas/procGTVe_v3.00.xsd @@ -0,0 +1,37 @@ + + + + + + + GTV-e processada + + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + diff --git a/CTe.AppTeste/schemas/procGTVe_v4.00.xsd b/CTe.AppTeste/schemas/procGTVe_v4.00.xsd new file mode 100644 index 000000000..b9a438933 --- /dev/null +++ b/CTe.AppTeste/schemas/procGTVe_v4.00.xsd @@ -0,0 +1,37 @@ + + + + + + + GTV-e processada + + + + + + + + + + IP do transmissor do documento fiscal para o ambiente autorizador + + + + + Porta de origem utilizada na conexão (De 0 a 65535) + + + + + + + + + + Data e Hora da Conexão de Origem + + + + + diff --git a/CTe.AppTeste/schemas/procInutCTe_v4.00.xsd b/CTe.AppTeste/schemas/procInutCTe_v4.00.xsd new file mode 100644 index 000000000..241e5fa89 --- /dev/null +++ b/CTe.AppTeste/schemas/procInutCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Pedido de inutilzação de numeração de CT-e processado + + + diff --git a/CTe.AppTeste/schemas/retCTeConsultaDFe_v1.00.xsd b/CTe.AppTeste/schemas/retCTeConsultaDFe_v1.00.xsd new file mode 100644 index 000000000..682093e0c --- /dev/null +++ b/CTe.AppTeste/schemas/retCTeConsultaDFe_v1.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação do retorno da consulta do CT-e. + + + diff --git a/CTe.AppTeste/schemas/retCTeOS_v4.00.xsd b/CTe.AppTeste/schemas/retCTeOS_v4.00.xsd new file mode 100644 index 000000000..3ca744be4 --- /dev/null +++ b/CTe.AppTeste/schemas/retCTeOS_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do recibo de envio do CT-e OS (Modelo 67) + + + diff --git a/CTe.AppTeste/schemas/retCTe_v3.00.xsd b/CTe.AppTeste/schemas/retCTe_v3.00.xsd new file mode 100644 index 000000000..efa4f7d88 --- /dev/null +++ b/CTe.AppTeste/schemas/retCTe_v3.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do recibo de envio do CT-e (Modelo 57) + + + diff --git a/CTe.AppTeste/schemas/retCTe_v4.00.xsd b/CTe.AppTeste/schemas/retCTe_v4.00.xsd new file mode 100644 index 000000000..24f025ddc --- /dev/null +++ b/CTe.AppTeste/schemas/retCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do recibo de envio do CT-e (Modelo 57) + + + diff --git a/CTe.AppTeste/schemas/retConsNSUFaltCTe_v3.00.xsd b/CTe.AppTeste/schemas/retConsNSUFaltCTe_v3.00.xsd new file mode 100644 index 000000000..b46f458c5 --- /dev/null +++ b/CTe.AppTeste/schemas/retConsNSUFaltCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Schema XML de validação da área de dados da mensagem de retorno da consulta NSU faltantes + + + diff --git a/CTe.AppTeste/schemas/retConsProtFaltCTe_v3.00.xsd b/CTe.AppTeste/schemas/retConsProtFaltCTe_v3.00.xsd new file mode 100644 index 000000000..8721089b4 --- /dev/null +++ b/CTe.AppTeste/schemas/retConsProtFaltCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Retorno de pedido de consulta de protocolos faltantes de CT-e + + + diff --git a/CTe.AppTeste/schemas/retConsSitCTe_v4.00.xsd b/CTe.AppTeste/schemas/retConsSitCTe_v4.00.xsd new file mode 100644 index 000000000..3e6aac4e7 --- /dev/null +++ b/CTe.AppTeste/schemas/retConsSitCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno da consulta da situação atual do CT-e. + + + diff --git a/CTe.AppTeste/schemas/retConsStatServCTe_v4.00.xsd b/CTe.AppTeste/schemas/retConsStatServCTe_v4.00.xsd new file mode 100644 index 000000000..4bc47d6c1 --- /dev/null +++ b/CTe.AppTeste/schemas/retConsStatServCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do Resultado da Consulta do Status do Serviço de CT-e + + + diff --git a/CTe.AppTeste/schemas/retDistCTePorUF_v3.00.xsd b/CTe.AppTeste/schemas/retDistCTePorUF_v3.00.xsd new file mode 100644 index 000000000..bff2ba7cc --- /dev/null +++ b/CTe.AppTeste/schemas/retDistCTePorUF_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Retorno de pedido de distribuição de CT-e + + + diff --git a/CTe.AppTeste/schemas/retDistCTe_v3.00.xsd b/CTe.AppTeste/schemas/retDistCTe_v3.00.xsd new file mode 100644 index 000000000..376de3463 --- /dev/null +++ b/CTe.AppTeste/schemas/retDistCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Retorno de pedido de distribuição de CT-e + + + diff --git a/CTe.AppTeste/schemas/retDistChCTe_v3.00.xsd b/CTe.AppTeste/schemas/retDistChCTe_v3.00.xsd new file mode 100644 index 000000000..f403bfdb6 --- /dev/null +++ b/CTe.AppTeste/schemas/retDistChCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Lote de dados de controle sobre os DF-e encontrados + + + diff --git a/CTe.AppTeste/schemas/retEventoCTe_v4.00.xsd b/CTe.AppTeste/schemas/retEventoCTe_v4.00.xsd new file mode 100644 index 000000000..41010ef8c --- /dev/null +++ b/CTe.AppTeste/schemas/retEventoCTe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno Pedido de Evento do CT-e + + + diff --git a/CTe.AppTeste/schemas/retGTVe_v3.00.xsd b/CTe.AppTeste/schemas/retGTVe_v3.00.xsd new file mode 100644 index 000000000..a502231a0 --- /dev/null +++ b/CTe.AppTeste/schemas/retGTVe_v3.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do recibo de envio da GTV-e (Modelo 64) + + + diff --git a/CTe.AppTeste/schemas/retGTVe_v4.00.xsd b/CTe.AppTeste/schemas/retGTVe_v4.00.xsd new file mode 100644 index 000000000..f4e333168 --- /dev/null +++ b/CTe.AppTeste/schemas/retGTVe_v4.00.xsd @@ -0,0 +1,10 @@ + + + + + + + Schema XML de validação do retorno do recibo de envio da GTV-e (Modelo 64) + + + diff --git a/CTe.AppTeste/schemas/retInutCTe_v4.00.xsd b/CTe.AppTeste/schemas/retInutCTe_v4.00.xsd new file mode 100644 index 000000000..ab4f1d4cb --- /dev/null +++ b/CTe.AppTeste/schemas/retInutCTe_v4.00.xsd @@ -0,0 +1,15 @@ + + + + + + + Schema XML de validação do retorno do Pedido de Inutilização de Numeração do CT-e + + + + + + + + diff --git a/CTe.AppTeste/schemas/retLoteRFBCTe_v3.00.xsd b/CTe.AppTeste/schemas/retLoteRFBCTe_v3.00.xsd new file mode 100644 index 000000000..d999e2560 --- /dev/null +++ b/CTe.AppTeste/schemas/retLoteRFBCTe_v3.00.xsd @@ -0,0 +1,9 @@ + + + + + + Retorno do resultado de processamento de Lote de CT-e para o Ambiente Nacional compactado + + + diff --git a/CTe.AppTeste/schemas/tiposGeralCTe_v3.00.xsd b/CTe.AppTeste/schemas/tiposGeralCTe_v3.00.xsd index fcde53cf2..9431aa5c4 100644 --- a/CTe.AppTeste/schemas/tiposGeralCTe_v3.00.xsd +++ b/CTe.AppTeste/schemas/tiposGeralCTe_v3.00.xsd @@ -1,4 +1,4 @@ - + @@ -75,7 +75,7 @@ - Tipo Código de orgão (UF da tabela do IBGE + 90 SUFRAMA + 91 RFB) + Tipo Código de orgão (UF da tabela do IBGE + 90 SUFRAMA + 91 RFB + 94 SVC-RS + 95 SVC-SP + 96 Sinc. Chaves do RS para SVSP @@ -111,6 +111,7 @@ + @@ -386,6 +387,15 @@ + + + Tipo Modelo Documento Fiscal + + + + + + Tipo Modelo Documento Fiscal diff --git a/CTe.AppTeste/schemas/tiposGeralCTe_v4.00.xsd b/CTe.AppTeste/schemas/tiposGeralCTe_v4.00.xsd new file mode 100644 index 000000000..20f80af49 --- /dev/null +++ b/CTe.AppTeste/schemas/tiposGeralCTe_v4.00.xsd @@ -0,0 +1,647 @@ + + + + + + Data e Hora, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm) + + + + + + + + + Tipo Ambiente + + + + + + + + + + Tipo ano + + + + + + + + + Tipo Código da UF da tabela do IBGE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Código do Município da tabela do IBGE + + + + + + + + + Tipo Código de orgão (UF da tabela do IBGE + 90 SUFRAMA + 91 RFB + 94 SVC-RS + 95 SVC-SP + 96 Sinc. Chaves do RS para SVSP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Chave de Documento Fiscal Eletrônico + + + + + + + + + + Tipo Número do CNPJ + + + + + + + + + Tipo Número do Telefone + + + + + + + + + Tipo Número do CNPJ tamanho varíavel (3-14) + + + + + + + + + Tipo Número do CNPJ Opcional + + + + + + + + + Tipo Número do CPF + + + + + + + + + Tipo Número do CPF de tamanho variável (3-11) + + + + + + + + + Tipo data AAAA-MM-DD + + + + + + + + + Tipo Decimal com 5 dígitos, sendo 3 de corpo e 2 decimais + + + + + + + + + Tipo Decimal com 6 dígitos, sendo 3 de corpo e 3 decimais + + + + + + + + + Tipo Decimal com 6 ou 5 dígitos, sendo 3 de corpo e 3 ou 2 decimais + + + + + + + + + Tipo Decimal com 5 dígitos, sendo 3 de corpo e 2 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 11 dígitos, sendo 8 de corpo e 3 decimais + + + + + + + + + Tipo Decimal com 11 dígitos, sendo 8 de corpo e 3 decimais utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 12 dígitos, sendo 8 de corpo e 4decimais + + + + + + + + + Tipo Decimal com 12 dígitos, sendo 8 de corpo e 4 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 9 de corpo e 6 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 12 de corpo e 3 decimais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 12 de corpo e 3 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 16 dígitos, sendo 12 de corpo e 4 decimais + + + + + + + + + Tipo Decimal com 16 dígitos, sendo 12 de corpo e 4 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais, utilizado em tags opcionais + + + + + + + + + Tipo Inscrição Estadual do Emitente + + + + + + + + + + Tipo Inscrição Estadual do Destinatário + + + + + + + + + + Tipo Justificativa + + + + + + + + + Tipo temp médio em segundos + + + + + + + + + Tipo Modelo Documento Fiscal + + + + + + + + + Tipo Modelo Documento Fiscal + + + + + + + + + Tipo Modelo Documento Fiscal + + + + + + + + + + Tipo Modelo Documento Fiscal + + + + + + + + + Tipo Modelo Documento Fiscal - NF Remetente + + + + + + + + + + Tipo da Unidade de Transporte + + + + + + + + + + + + + + + Tipo da Unidade de Carga + + + + + + + + + + + + Tipo Motivo + + + + + + + + + Tipo Número do Documento Fiscal + + + + + + + + + Tipo Número do Protocolo de Status + + + + + + + + + Tipo Número do Recibo do envio de lote de NF-e + + + + + + + + + Tipo Série do Documento Fiscal + + + + + + + + + Tipo Serviço solicitado + + + + + + Tipo Código da Mensagem enviada + + + + + + + + + Tipo string genérico + + + + + + + + + Tipo Sigla da UF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Sigla da UF, sem Exterior + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tipo Versão do Aplicativo + + + + + + + + + Coordenada geográfica Latitude + + + + + + + + Coordenada geográfica Longitude + + + + + + + + Tipo IP versão 4 + + + + + + + + + Tipo Placa + + + + + + + + + Tipo que representa uma chave publica padrão RSA + + + + + + + diff --git a/CTe.Classes/CTe.cs b/CTe.Classes/CTe.cs index b18002bdf..fd229efee 100644 --- a/CTe.Classes/CTe.cs +++ b/CTe.Classes/CTe.cs @@ -64,6 +64,9 @@ public string ProxyVersao if(value.Equals("3.00")) versao = Servicos.Tipos.versao.ve300; + + if (value.Equals("4.00")) + versao = Servicos.Tipos.versao.ve400; } } diff --git a/CTe.Classes/ConfiguracaoServico.cs b/CTe.Classes/ConfiguracaoServico.cs index 9ba806bad..121b9b2f7 100644 --- a/CTe.Classes/ConfiguracaoServico.cs +++ b/CTe.Classes/ConfiguracaoServico.cs @@ -116,6 +116,21 @@ public void Dispose() /// public versao VersaoLayout { get; set; } + public versao ObterVersaoLayoutValida() + { + switch (VersaoLayout) + { + case versao.ve200: + return versao.ve200; + case versao.ve300: + return versao.ve300; + case versao.ve400: + return versao.ve400; + default: + throw new ArgumentOutOfRangeException(); + } + } + public bool IsAdicionaQrCode { get; set; } /// diff --git a/CTe.Classes/Informacoes/Emitente/emit.cs b/CTe.Classes/Informacoes/Emitente/emit.cs index 15c4d3cb1..741bcc03f 100644 --- a/CTe.Classes/Informacoes/Emitente/emit.cs +++ b/CTe.Classes/Informacoes/Emitente/emit.cs @@ -49,5 +49,16 @@ public class emit public string xFant { get; set; } public enderEmit enderEmit { get; set; } + + + /// + /// Versão 4.00 é Obrigatório + /// + public CRT? CRT { get; set; } + + /// + /// Se null, não aparece no xml + /// + public bool CRTSpecified { get { return CRT.HasValue; } } } } diff --git a/CTe.Classes/Informacoes/Emitente/emitTipos.cs b/CTe.Classes/Informacoes/Emitente/emitTipos.cs index 1b0545b83..527e4c2be 100644 --- a/CTe.Classes/Informacoes/Emitente/emitTipos.cs +++ b/CTe.Classes/Informacoes/Emitente/emitTipos.cs @@ -62,6 +62,10 @@ public enum CRT /// [Description("Regime Normal")] [XmlEnum("3")] - RegimeNormal = 3 + RegimeNormal = 3, + + [Description("Simples Nacional MEI")] + [XmlEnum("4")] + SimplesNacionalMei = 4, } } \ No newline at end of file diff --git a/CTe.Classes/Informacoes/Identificacao/ide.cs b/CTe.Classes/Informacoes/Identificacao/ide.cs index eea670155..94bee15cf 100644 --- a/CTe.Classes/Informacoes/Identificacao/ide.cs +++ b/CTe.Classes/Informacoes/Identificacao/ide.cs @@ -112,6 +112,7 @@ public string ProxydhEmi { case versao.ve200: return dhEmi.ParaDataHoraStringSemUtc(); + case versao.ve400: case versao.ve300: return dhEmi.ParaDataHoraStringUtc(); default: diff --git a/CTe.Classes/Protocolo/infFisco.cs b/CTe.Classes/Protocolo/infFisco.cs new file mode 100644 index 000000000..18aeead31 --- /dev/null +++ b/CTe.Classes/Protocolo/infFisco.cs @@ -0,0 +1,8 @@ +namespace CTe.Classes.Protocolo +{ + public class infFisco + { + public int cMsg { get; set; } + public string xMsg { get; set; } + } +} \ No newline at end of file diff --git a/CTe.Classes/Protocolo/infProt.cs b/CTe.Classes/Protocolo/infProt.cs index f256d04ee..1b0a64274 100644 --- a/CTe.Classes/Protocolo/infProt.cs +++ b/CTe.Classes/Protocolo/infProt.cs @@ -94,6 +94,8 @@ public string ProxydhRecbto /// public string xMotivo { get; set; } + public infFisco infFisco { get; set; } + /// /// PR13 - Assinatura XML do grupo identificado pelo atributo “Id” /// A decisão de assinar a mensagem fica a critério da UF interessada. diff --git a/CTe.Classes/Servicos/Evento/infEventoEnv.cs b/CTe.Classes/Servicos/Evento/infEventoEnv.cs index 56343b29b..f0e911c31 100644 --- a/CTe.Classes/Servicos/Evento/infEventoEnv.cs +++ b/CTe.Classes/Servicos/Evento/infEventoEnv.cs @@ -76,6 +76,8 @@ public infEventoEnv() /// public string CNPJ { get; set; } + public string CPF { get; set; } + /// /// HP12 - Chave de Acesso da NF-e vinculada ao Evento /// @@ -98,6 +100,7 @@ public string ProxydhEvento { case versao.ve200: return dhEvento.ParaDataHoraStringSemUtc(); + case versao.ve400: case versao.ve300: return dhEvento.ParaDataHoraStringUtc(); default: diff --git a/CTe.Classes/Servicos/Recepcao/retCTe.cs b/CTe.Classes/Servicos/Recepcao/retCTe.cs new file mode 100644 index 000000000..4b917cc51 --- /dev/null +++ b/CTe.Classes/Servicos/Recepcao/retCTe.cs @@ -0,0 +1,60 @@ +using System.Xml.Serialization; +using CTe.Classes.Protocolo; +using DFe.Classes.Entidades; +using DFe.Classes.Flags; +using DFe.Utils; + +namespace CTe.Classes.Servicos.Recepcao +{ + [XmlRoot(Namespace = "http://www.portalfiscal.inf.br/cte")] + public class retCTe : RetornoBase + { + /// + /// AR02 - Versão do leiaute + /// + [XmlAttribute] + public string versao { get; set; } + + /// + /// AR03 - Identificação do Ambiente: 1 – Produção / 2 - Homologação + /// + public TipoAmbiente tpAmb { get; set; } + + /// + /// AR06a - Código da UF que atendeu a solicitação. + /// + public Estado cUF { get; set; } + + /// + /// AR04 - Versão do Aplicativo que recebeu o Lote. A versão deve ser iniciada com a sigla da UF nos casos de WS + /// próprio ou a sigla SCAN, SVAN ou SVRS nos demais casos. + /// + public string verAplic { get; set; } + + /// + /// AR05 - Código do status da resposta (vide item 5.1.1) + /// + public int cStat { get; set; } + + /// + /// AR06 - Descrição literal do status da resposta + /// + public string xMotivo { get; set; } + + public protCTe protCTe { get; set; } + + public static retCTe LoadXml(string xml) + { + var retorno = FuncoesXml.XmlStringParaClasse(xml); + retorno.RetornoXmlString = xml; + return retorno; + } + + public static retCTe LoadXml(string xml, CTe enviCte) + { + var retorno = LoadXml(xml); + retorno.EnvioXmlString = FuncoesXml.ClasseParaXmlString(enviCte); + return retorno; + } + } +} \ No newline at end of file diff --git a/CTe.Classes/Servicos/Status/consStatServ.cs b/CTe.Classes/Servicos/Status/consStatServ.cs index 408de55c8..97c1912fc 100644 --- a/CTe.Classes/Servicos/Status/consStatServ.cs +++ b/CTe.Classes/Servicos/Status/consStatServ.cs @@ -33,6 +33,7 @@ using System.Xml.Serialization; using CTe.Classes.Servicos.Tipos; +using DFe.Classes.Entidades; using DFe.Classes.Flags; namespace CTe.Classes.Servicos.Status @@ -61,4 +62,31 @@ public consStatServCte() /// public string xServ { get; set; } } + + [XmlRoot(Namespace = "http://www.portalfiscal.inf.br/cte")] + public class consStatServCTe + { + public consStatServCTe() + { + xServ = "STATUS"; + } + + /// + /// FP02 - Versão do leiaute + /// + [XmlAttribute] + public versao versao { get; set; } + + /// + /// FP03 - Identificação do Ambiente: 1 – Produção / 2 - Homologação + /// + public TipoAmbiente tpAmb { get; set; } + + public Estado cUF { get; set; } + + /// + /// FP04 - Serviço solicitado 'STATUS' + /// + public string xServ { get; set; } + } } \ No newline at end of file diff --git a/CTe.Classes/Servicos/Status/retConsStatServ.cs b/CTe.Classes/Servicos/Status/retConsStatServ.cs index 16833ec1e..5b9f7a0c0 100644 --- a/CTe.Classes/Servicos/Status/retConsStatServ.cs +++ b/CTe.Classes/Servicos/Status/retConsStatServ.cs @@ -115,4 +115,80 @@ private static retConsStatServCte LoadXml(string xml) return retorno; } } + + [XmlRoot(Namespace = "http://www.portalfiscal.inf.br/cte")] + public class retConsStatServCTe : RetornoBase + { + /// + /// FR02 - Versão do leiaute + /// + [XmlAttribute] + public versao versao { get; set; } + + /// + /// FR03 - Identificação do Ambiente: 1 – Produção / 2 - Homologação + /// + public TipoAmbiente tpAmb { get; set; } + + /// + /// FR04 - Versão do Aplicativo que processou a consulta. A versão deve ser iniciada com a sigla da UF nos casos de WS + /// próprio ou a sigla SCAN, SVAN ou SVRS nos demais casos. + /// + public string verAplic { get; set; } + + /// + /// FR05 - Código do status da resposta. + /// + public int cStat { get; set; } + + /// + /// FR06 - Descrição literal do status da resposta. + /// + public string xMotivo { get; set; } + + /// + /// FR07 - Código da UF que atendeu a solicitação + /// + public Estado cUF { get; set; } + + [XmlIgnore] + public DateTimeOffset dhRecbto { get; set; } + + [XmlElement(ElementName = "dhRecbto")] + public string ProxydhRecbto + { + get { return dhRecbto.ParaDataHoraStringUtc(); } + set { dhRecbto = DateTimeOffset.Parse(value); } + } + + public int tMed { get; set; } + + [XmlIgnore] + public DateTime dhRetorno { get; set; } + + [XmlElement(ElementName = "dhRetorno")] + public string ProxydhRetorno + { + get { return dhRetorno.ParaDataHoraString(); } + set { dhRetorno = DateTime.Parse(value); } + } + + public string xObs { get; set; } + + public static retConsStatServCTe LoadXml(string xml, consStatServCTe consStatServCte) + { + var retorno = LoadXml(xml); + retorno.EnvioXmlString = FuncoesXml.ClasseParaXmlString(consStatServCte); + + return retorno; + } + + private static retConsStatServCTe LoadXml(string xml) + { + var retorno = FuncoesXml.XmlStringParaClasse(xml); + retorno.RetornoXmlString = xml; + + return retorno; + } + } } \ No newline at end of file diff --git a/CTe.Servicos/ConsultaProtocolo/ConsultaProtcoloServico.cs b/CTe.Servicos/ConsultaProtocolo/ConsultaProtcoloServico.cs index 26414b1ec..49d05cf89 100644 --- a/CTe.Servicos/ConsultaProtocolo/ConsultaProtcoloServico.cs +++ b/CTe.Servicos/ConsultaProtocolo/ConsultaProtcoloServico.cs @@ -56,6 +56,21 @@ public retConsSitCTe ConsultaProtocolo(string chave, ConfiguracaoServico configu return retorno; } + public retConsSitCTe ConsultaProtocoloV4(string chave, ConfiguracaoServico configuracaoServico = null) + { + var consSitCTe = ClassesFactory.CriarconsSitCTe(chave, configuracaoServico); + consSitCTe.ValidarSchema(configuracaoServico); + consSitCTe.SalvarXmlEmDisco(configuracaoServico); + + var webService = WsdlFactory.CriaWsdlConsultaProtocoloV4(configuracaoServico); + var retornoXml = webService.cteConsultaCT(consSitCTe.CriaRequestWs()); + + var retorno = retConsSitCTe.LoadXml(retornoXml.OuterXml, consSitCTe); + retorno.SalvarXmlEmDisco(chave, configuracaoServico); + + return retorno; + } + public async Task ConsultaProtocoloAsync(string chave, ConfiguracaoServico configuracaoServico = null) { var consSitCTe = ClassesFactory.CriarconsSitCTe(chave, configuracaoServico); diff --git a/CTe.Servicos/ConsultaStatus/StatusServico.cs b/CTe.Servicos/ConsultaStatus/StatusServico.cs index c5b8fcd2c..63445fe86 100644 --- a/CTe.Servicos/ConsultaStatus/StatusServico.cs +++ b/CTe.Servicos/ConsultaStatus/StatusServico.cs @@ -56,6 +56,21 @@ public retConsStatServCte ConsultaStatus(ConfiguracaoServico configuracaoServico return retorno; } + public retConsStatServCTe ConsultaStatusV4(ConfiguracaoServico configuracaoServico = null) + { + var consStatServCte = ClassesFactory.CriaConsStatServCTe(configuracaoServico); + consStatServCte.ValidarSchema(configuracaoServico); + consStatServCte.SalvarXmlEmDisco(configuracaoServico); + + var webService = WsdlFactory.CriaWsdlCteStatusServico(configuracaoServico); + var retornoXml = webService.cteStatusServicoCT(consStatServCte.CriaRequestWs()); + + var retorno = retConsStatServCTe.LoadXml(retornoXml.OuterXml, consStatServCte); + retorno.SalvarXmlEmDisco(configuracaoServico); + + return retorno; + } + public async Task ConsultaStatusAsync(ConfiguracaoServico configuracaoServico = null) { var consStatServCte = ClassesFactory.CriaConsStatServCte(configuracaoServico); diff --git a/CTe.Servicos/Enderecos/Helpers/UrlHelper.cs b/CTe.Servicos/Enderecos/Helpers/UrlHelper.cs index 20f9204e4..4f1ad20af 100644 --- a/CTe.Servicos/Enderecos/Helpers/UrlHelper.cs +++ b/CTe.Servicos/Enderecos/Helpers/UrlHelper.cs @@ -34,6 +34,7 @@ using System; using CTe.Classes; using CTe.Classes.Informacoes.Tipos; +using CTe.Classes.Servicos.Tipos; using DFe.Classes.Entidades; using DFe.Classes.Flags; @@ -50,24 +51,24 @@ public static UrlCTe ObterUrlServico(ConfiguracaoServico configuracaoServico = n case TipoAmbiente.Homologacao: if (configServico.TipoEmissao == tpEmis.teSVCRS) { - return UrlHomologacaoSvrs(); + return UrlHomologacaoSvrs(configServico); } if (configServico.TipoEmissao == tpEmis.teSVCSP) { - return UrlHomologacaoSvcsp(); + return UrlHomologacaoSvcsp(configServico); } return UrlHomologacao(configServico); case TipoAmbiente.Producao: if (configServico.TipoEmissao == tpEmis.teSVCRS) { - return UrlProducaoSvrs(); + return UrlProducaoSvrs(configServico); } if (configServico.TipoEmissao == tpEmis.teSVCSP) { - return UrlProducaoSvcsp(); + return UrlProducaoSvcsp(configServico); } return UrlProducao(configServico); @@ -91,8 +92,21 @@ public static string ObterUrlQrCode(ConfiguracaoServico configuracaoServico = nu throw new InvalidOperationException("Tipo Ambiente inválido"); } - private static UrlCTe UrlProducaoSvcsp() + private static UrlCTe UrlProducaoSvcsp(ConfiguracaoServico configuracaoServico) { + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx", + CteStatusServico = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteRecepcao = @"https://nfe.fazenda.sp.gov.br/cteWEB/services/cteRecepcao.asmx", @@ -104,8 +118,21 @@ private static UrlCTe UrlProducaoSvcsp() }; } - private static UrlCTe UrlHomologacaoSvcsp() + private static UrlCTe UrlHomologacaoSvcsp(ConfiguracaoServico configuracaoServico) { + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx", + CteStatusServico = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteRecepcaoEvento = @"https://homologacao.nfe.fazenda.sp.gov.br/cteWEB/services/CteRecepcaoEvento.asmx", @@ -117,8 +144,21 @@ private static UrlCTe UrlHomologacaoSvcsp() }; } - private static UrlCTe UrlHomologacaoSvrs() + private static UrlCTe UrlHomologacaoSvrs(ConfiguracaoServico configuracaoServico) { + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoEventoV4/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoSincV4/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeConsultaV4/CTeConsultaV4.asmx", + CteStatusServico = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeStatusServicoV4/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoOSV4/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoGTVeV4/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteRecepcao = @"https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcao/CTeRecepcao.asmx", @@ -131,8 +171,21 @@ private static UrlCTe UrlHomologacaoSvrs() }; } - private static UrlCTe UrlProducaoSvrs() + private static UrlCTe UrlProducaoSvrs(ConfiguracaoServico configuracaoServico) { + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoEventoV4/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoSincV4/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://cte.svrs.rs.gov.br/ws/CTeConsultaV4/CTeConsultaV4.asmx", + CteStatusServico = @"https://cte.svrs.rs.gov.br/ws/CTeStatusServicoV4/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoOSV4/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoGTVeV4/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteRecepcao = @"https://cte.svrs.rs.gov.br/ws/cterecepcao/CTeRecepcao.asmx", @@ -150,6 +203,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) switch (configuracaoServico.cUF) { case Estado.MT: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte.sefaz.mt.gov.br/ctews2/services/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://cte.sefaz.mt.gov.br/ctews2/services/CTeRecepcaoSincV4", + CteConsulta = @"https://cte.sefaz.mt.gov.br/ctews2/services/CTeConsultaV4", + CteStatusServico = @"https://cte.sefaz.mt.gov.br/ctews2/services/CTeStatusServicoV4", + CteRecepcaoOs = @"https://cte.sefaz.mt.gov.br/ctews/services/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://cte.sefaz.mt.gov.br/ctews2/services/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://cte.sefaz.mt.gov.br/ctews/services/CteStatusServico", @@ -162,6 +228,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = "https://www1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.MS: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://producao.cte.ms.gov.br/ws/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://producao.cte.ms.gov.br/ws/CTeRecepcaoSincV4", + CteConsulta = @"https://producao.cte.ms.gov.br/ws/CTeConsultaV4", + CteStatusServico = @"https://producao.cte.ms.gov.br/ws/CTeStatusServicoV4", + CteRecepcaoOs = @"https://producao.cte.ms.gov.br/ws/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://producao.cte.ms.gov.br/ws/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://producao.cte.ms.gov.br/ws/CteStatusServico", @@ -174,6 +253,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = "https://www1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.MG: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte.fazenda.mg.gov.br/cte/services/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://cte.fazenda.mg.gov.br/cte/services/CTeRecepcaoSincV4", + CteConsulta = @"https://cte.fazenda.mg.gov.br/cte/services/CTeConsultaV4", + CteStatusServico = @"https://cte.fazenda.mg.gov.br/cte/services/CTeStatusServicoV4", + CteRecepcaoOs = @"https://cte.fazenda.mg.gov.br/cte/services/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://cte.fazenda.mg.gov.br/cte/services/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://cte.fazenda.mg.gov.br/cte/services/CteStatusServico", @@ -186,6 +278,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = "https://www1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.PR: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte.fazenda.pr.gov.br/cte4/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://cte.fazenda.pr.gov.br/cte4/CTeRecepcaoSincV4", + CteConsulta = @"https://cte.fazenda.pr.gov.br/cte4/CTeConsultaV4", + CteStatusServico = @"https://cte.fazenda.pr.gov.br/cte4/CTeStatusServicoV4", + CteRecepcaoOs = @"https://cte.fazenda.pr.gov.br/cte4/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://cte.fazenda.pr.gov.br/cte4/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @" https://cte.fazenda.pr.gov.br/cte/CteStatusServico?wsdl", @@ -213,6 +318,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = "https://www1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.SP: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx", + CteStatusServico = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteStatusServico = @@ -246,6 +364,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) case Estado.SC: case Estado.SE: case Estado.TO: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoEventoV4/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoSincV4/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://cte.svrs.rs.gov.br/ws/CTeConsultaV4/CTeConsultaV4.asmx", + CteStatusServico = @"https://cte.svrs.rs.gov.br/ws/CTeStatusServicoV4/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoOSV4/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://cte.svrs.rs.gov.br/ws/CTeRecepcaoGTVeV4/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteStatusServico = @@ -263,6 +394,19 @@ private static UrlCTe UrlProducao(ConfiguracaoServico configuracaoServico) case Estado.AP: case Estado.PE: case Estado.RR: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx", + CteStatusServico = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteStatusServico = @"https://nfe.fazenda.sp.gov.br/cteWEB/services/CteStatusServico.asmx", @@ -286,6 +430,19 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) switch (configuracaoServico.cUF) { case Estado.MT: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://homologacao.sefaz.mt.gov.br/ctews2/services/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://homologacao.sefaz.mt.gov.br/ctews2/services/CTeRecepcaoSincV4", + CteConsulta = @"https://homologacao.sefaz.mt.gov.br/ctews2/services/CTeConsultaV4", + CteStatusServico = @"https://homologacao.sefaz.mt.gov.br/ctews2/services/CTeStatusServicoV4", + CteRecepcaoOs = @"https://homologacao.sefaz.mt.gov.br/ctews/services/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://homologacao.sefaz.mt.gov.br/ctews2/services/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://homologacao.sefaz.mt.gov.br/ctews/services/CteStatusServico", @@ -299,6 +456,17 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = @"https://hom1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.MS: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://homologacao.cte.ms.gov.br/ws/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://homologacao.cte.ms.gov.br/ws/CTeRecepcaoSincV4", + CteConsulta = @"https://homologacao.cte.ms.gov.br/ws/CTeConsultaV4", + CteStatusServico = @"https://homologacao.cte.ms.gov.br/ws/CTeStatusServicoV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://homologacao.cte.ms.gov.br/ws/CteStatusServico", @@ -311,6 +479,19 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = @"https://hom1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.MG: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://hcte.fazenda.mg.gov.br/cte/services/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://hcte.fazenda.mg.gov.br/cte/services/CTeRecepcaoSincV4", + CteConsulta = @"https://hcte.fazenda.mg.gov.br/cte/services/CTeConsultaV4", + CteStatusServico = @"https://hcte.fazenda.mg.gov.br/cte/services/CTeStatusServicoV4", + CteRecepcaoOs = @"https://hcte.fazenda.mg.gov.br/cte/services/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://hcte.fazenda.mg.gov.br/cte/services/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://hcte.fazenda.mg.gov.br/cte/services/CteStatusServico?wsdl", @@ -323,6 +504,19 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = @"https://hom1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.PR: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://homologacao.cte.fazenda.pr.gov.br/cte4/CTeRecepcaoEventoV4", + CteRecepcaoSinc = @"https://homologacao.cte.fazenda.pr.gov.br/cte4/CTeRecepcaoSincV4", + CteConsulta = @"https://homologacao.cte.fazenda.pr.gov.br/cte4/CTeConsultaV4", + CteStatusServico = @"https://homologacao.cte.fazenda.pr.gov.br/cte4/CTeStatusServicoV4", + CteRecepcaoOs = @"https://homologacao.cte.fazenda.pr.gov.br/cte4/CTeRecepcaoOSV4", + CteRecepcaoGtve = @"https://homologacao.cte.fazenda.pr.gov.br/cte4/CTeRecepcaoGTVeV4" + }; + } + return new UrlCTe { CteStatusServico = @"https://homologacao.cte.fazenda.pr.gov.br/cte/CteStatusServico?wsdl", @@ -350,6 +544,19 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) CTeDistribuicaoDFe = @"https://hom1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx" }; case Estado.SP: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx", + CteStatusServico = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteStatusServico = @"https://homologacao.nfe.fazenda.sp.gov.br/cteWEB/services/cteStatusServico.asmx", @@ -379,6 +586,19 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) case Estado.SC: case Estado.SE: case Estado.TO: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoEventoV4/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoSincV4/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeConsultaV4/CTeConsultaV4.asmx", + CteStatusServico = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeStatusServicoV4/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoOSV4/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://cte-homologacao.svrs.rs.gov.br/ws/CTeRecepcaoGTVeV4/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteStatusServico = @@ -396,6 +616,19 @@ private static UrlCTe UrlHomologacao(ConfiguracaoServico configuracaoServico) case Estado.AP: case Estado.PE: case Estado.RR: + if (configuracaoServico.VersaoLayout == versao.ve400) + { + return new UrlCTe + { + CteRecepcaoEvento = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoEventoV4.asmx", + CteRecepcaoSinc = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoSincV4.asmx", + CteConsulta = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx", + CteStatusServico = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx", + CteRecepcaoOs = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoOSV4.asmx", + CteRecepcaoGtve = @"https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeRecepcaoGTVeV4.asmx" + }; + } + return new UrlCTe { CteStatusServico = @"https://homologacao.nfe.fazenda.sp.gov.br/cteWEB/services/CteStatusServico.asmx", diff --git a/CTe.Servicos/Enderecos/UrlCTe.cs b/CTe.Servicos/Enderecos/UrlCTe.cs index 771e49b2f..3808dcff9 100644 --- a/CTe.Servicos/Enderecos/UrlCTe.cs +++ b/CTe.Servicos/Enderecos/UrlCTe.cs @@ -36,11 +36,14 @@ public class UrlCTe { public string CteConsulta { get; set; } public string CteInutilizacao { get; set; } + public string CteRecepcaoSinc { get; set; } public string CteRecepcao { get; set; } public string CteRecepcaoEvento { get; set; } public string CteRetRecepcao { get; set; } public string CteStatusServico { get; set; } public string CTeDistribuicaoDFe { get; set; } public string QrCode { get; set; } + public string CteRecepcaoOs { get; set; } + public string CteRecepcaoGtve { get; set; } } } \ No newline at end of file diff --git a/CTe.Servicos/Eventos/FactoryEvento.cs b/CTe.Servicos/Eventos/FactoryEvento.cs index f8cd42416..04eaaca51 100644 --- a/CTe.Servicos/Eventos/FactoryEvento.cs +++ b/CTe.Servicos/Eventos/FactoryEvento.cs @@ -36,6 +36,7 @@ using CTe.Classes; using CTe.Classes.Servicos.Evento; using CTe.Classes.Servicos.Evento.Flags; +using CTe.Classes.Servicos.Tipos; using CTe.Utils.CTe; using CTeEletronico = CTe.Classes.CTe; @@ -56,7 +57,12 @@ public static eventoCTe CriaEvento(CTeTipoEvento cTeTipoEvento, int sequenciaEve var id = new StringBuilder("ID"); id.Append((int)cTeTipoEvento); id.Append(chave); - id.Append(sequenciaEvento.ToString("D2")); + + if (configServico.VersaoLayout == versao.ve200 || configServico.VersaoLayout == versao.ve300) + id.Append(sequenciaEvento.ToString("D2")); + + if (configServico.VersaoLayout == versao.ve400) + id.Append(sequenciaEvento.ToString("D3")); return new eventoCTe { diff --git a/CTe.Servicos/Eventos/ServicoController.cs b/CTe.Servicos/Eventos/ServicoController.cs index 22d96f8aa..7e5b12eb8 100644 --- a/CTe.Servicos/Eventos/ServicoController.cs +++ b/CTe.Servicos/Eventos/ServicoController.cs @@ -32,9 +32,11 @@ /********************************************************************************/ using System.Threading.Tasks; +using System.Xml; using CTe.Classes; using CTe.Classes.Servicos.Evento; using CTe.Classes.Servicos.Evento.Flags; +using CTe.Classes.Servicos.Tipos; using CTe.Servicos.Eventos.Contratos; using CTe.Servicos.Factory; using CTe.Utils.CTe; @@ -62,8 +64,19 @@ public retEventoCTe Executar(CTeTipoEvento cTeTipoEvento, int sequenciaEvento, s evento.ValidarSchema(configuracaoServico); evento.SalvarXmlEmDisco(configuracaoServico); - var webService = WsdlFactory.CriaWsdlCteEvento(configuracaoServico); - var retornoXml = webService.cteRecepcaoEvento(evento.CriaXmlRequestWs()); + XmlNode retornoXml = null; + + if (evento.versao == versao.ve200 || evento.versao == versao.ve300) + { + var webService = WsdlFactory.CriaWsdlCteEvento(configuracaoServico); + retornoXml = webService.cteRecepcaoEvento(evento.CriaXmlRequestWs()); + } + + if (evento.versao == versao.ve400) + { + var webService = WsdlFactory.CriaWsdlCteEventoV4(configuracaoServico); + retornoXml = webService.cteRecepcaoEvento(evento.CriaXmlRequestWs()); + } var retorno = retEventoCTe.LoadXml(retornoXml.OuterXml, evento); retorno.SalvarXmlEmDisco(configuracaoServico); diff --git a/CTe.Servicos/Factory/ClassesFactory.cs b/CTe.Servicos/Factory/ClassesFactory.cs index 65dc26787..03492279d 100644 --- a/CTe.Servicos/Factory/ClassesFactory.cs +++ b/CTe.Servicos/Factory/ClassesFactory.cs @@ -61,6 +61,18 @@ public static consStatServCte CriaConsStatServCte(ConfiguracaoServico configurac }; } + public static consStatServCTe CriaConsStatServCTe(ConfiguracaoServico configuracaoServico = null) + { + var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia; + + return new consStatServCTe + { + versao = configServico.VersaoLayout, + cUF = configServico.cUF, + tpAmb = configServico.tpAmb + }; + } + public static consSitCTe CriarconsSitCTe(string chave, ConfiguracaoServico configuracaoServico = null) { var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia; @@ -157,7 +169,7 @@ public static enviCTe CriaEnviCTe(int lote, List cteEletronicoLis { var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia; - return new enviCTe(configServico.VersaoLayout, lote, cteEletronicoList); + return new enviCTe(configServico.ObterVersaoLayoutValida(), lote, cteEletronicoList); } } } \ No newline at end of file diff --git a/CTe.Servicos/Factory/WsdlFactory.cs b/CTe.Servicos/Factory/WsdlFactory.cs index 820c89c73..d8c142cc9 100644 --- a/CTe.Servicos/Factory/WsdlFactory.cs +++ b/CTe.Servicos/Factory/WsdlFactory.cs @@ -43,6 +43,9 @@ using CTe.Wsdl.Status; using DFe.Classes.Extensoes; using CTe.CTeOSDocumento.Common; +using CTe.Wsdl.ConsultaProtocolo.V4; +using CTe.Wsdl.Evento.V4; +using CTe.Wsdl.Recepcao.Sincrono; namespace CTe.Servicos.Factory { @@ -66,6 +69,15 @@ public static CteConsulta CriaWsdlConsultaProtocolo(ConfiguracaoServico configur return new CteConsulta(configuracaoWsdl); } + public static CteConsultaV4 CriaWsdlConsultaProtocoloV4(ConfiguracaoServico configuracaoServico = null) + { + var url = UrlHelper.ObterUrlServico(configuracaoServico).CteConsulta; + + var configuracaoWsdl = CriaConfiguracao(url, configuracaoServico); + + return new CteConsultaV4(configuracaoWsdl); + } + public static CteInutilizacao CriaWsdlCteInutilizacao(ConfiguracaoServico configuracaoServico = null) { var url = UrlHelper.ObterUrlServico(configuracaoServico).CteInutilizacao; @@ -93,6 +105,15 @@ public static CteRecepcao CriaWsdlCteRecepcao(ConfiguracaoServico configuracaoSe return new CteRecepcao(configuracaoWsdl); } + public static CteRecepcaoSincronoV4 CriaWsdlCteRecepcaoSincronoV4(ConfiguracaoServico configuracaoServico = null) + { + var url = UrlHelper.ObterUrlServico(configuracaoServico).CteRecepcaoSinc; + + var configuracaoWsdl = CriaConfiguracao(url, configuracaoServico); + + return new CteRecepcaoSincronoV4(configuracaoWsdl); + } + public static CteRecepcaoEvento CriaWsdlCteEvento(ConfiguracaoServico configuracaoServico = null) { var url = UrlHelper.ObterUrlServico(configuracaoServico).CteRecepcaoEvento; @@ -102,6 +123,15 @@ public static CteRecepcaoEvento CriaWsdlCteEvento(ConfiguracaoServico configurac return new CteRecepcaoEvento(configuracaoWsdl); } + public static CteRecepcaoEventoV4 CriaWsdlCteEventoV4(ConfiguracaoServico configuracaoServico = null) + { + var url = UrlHelper.ObterUrlServico(configuracaoServico).CteRecepcaoEvento; + + var configuracaoWsdl = CriaConfiguracao(url, configuracaoServico); + + return new CteRecepcaoEventoV4(configuracaoWsdl); + } + public static CTeDistDFeInteresse CriaWsdlCTeDistDFeInteresse(ConfiguracaoServico configuracaoServico = null) { diff --git a/CTe.Servicos/Recepcao/ServicoCTeRecepcao.cs b/CTe.Servicos/Recepcao/ServicoCTeRecepcao.cs index d0ff8268b..22f0d3827 100644 --- a/CTe.Servicos/Recepcao/ServicoCTeRecepcao.cs +++ b/CTe.Servicos/Recepcao/ServicoCTeRecepcao.cs @@ -37,6 +37,7 @@ using System.Threading.Tasks; using CTe.Classes; using CTe.Classes.Servicos.Recepcao; +using CTe.Classes.Servicos.Tipos; using CTe.Servicos.Enderecos.Helpers; using CTe.Servicos.Factory; using CTe.Utils.CTe; @@ -82,6 +83,44 @@ public async Task CTeRecepcaoAsync(int lote, List cte return retorno; } + public retCTe CTeRecepcaoSincronoV4(CTeEletronico cte, ConfiguracaoServico configuracaoServico = null) + { + var instanciaConfiguracao = configuracaoServico ?? ConfiguracaoServico.Instancia; + + if (instanciaConfiguracao.tpAmb == TipoAmbiente.Homologacao && instanciaConfiguracao.VersaoLayout == versao.ve300) + { + const string razaoSocial = "CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL"; + + cte.infCte.rem.xNome = razaoSocial; + cte.infCte.dest.xNome = razaoSocial; + } + + if (instanciaConfiguracao.tpAmb == TipoAmbiente.Homologacao && instanciaConfiguracao.VersaoLayout == versao.ve400) + { + const string razaoSocial = "CTE EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL"; + + cte.infCte.rem.xNome = razaoSocial; + cte.infCte.dest.xNome = razaoSocial; + } + + cte.infCte.ide.tpEmis = instanciaConfiguracao.TipoEmissao; + cte.Assina(instanciaConfiguracao); + cte.infCTeSupl = cte.QrCode(instanciaConfiguracao.X509Certificate2, Encoding.UTF8, instanciaConfiguracao.IsAdicionaQrCode, UrlHelper.ObterUrlQrCode(instanciaConfiguracao)); + cte.ValidaSchema(instanciaConfiguracao); + cte.SalvarXmlEmDisco(instanciaConfiguracao); + + var webService = WsdlFactory.CriaWsdlCteRecepcaoSincronoV4(configuracaoServico); + + //OnAntesDeEnviar(enviCte); + + var retornoXml = webService.CTeRecepcaoSincV4(cte.CriaRequestWs(configuracaoServico)); + + var retorno = retCTe.LoadXml(retornoXml.OuterXml, cte); + retorno.SalvarXmlEmDisco(cte.Chave(), configuracaoServico); + + return retorno; + } + private static enviCTe PreparaEnvioCTe(int lote, List cteEletronicosList, ConfiguracaoServico configuracaoServico = null) { var instanciaConfiguracao = configuracaoServico ?? ConfiguracaoServico.Instancia; diff --git a/CTe.Utils/CTe/ExtCTe.cs b/CTe.Utils/CTe/ExtCTe.cs index 9d6915e8d..325b1f7f8 100644 --- a/CTe.Utils/CTe/ExtCTe.cs +++ b/CTe.Utils/CTe/ExtCTe.cs @@ -36,12 +36,15 @@ using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text; +using System.Xml; using CTe.Classes; using CTe.Classes.Informacoes; using CTe.Classes.Informacoes.infCTeNormal.infModals; using CTe.Classes.Informacoes.Tipos; +using CTe.Classes.Servicos.Recepcao; using CTe.Classes.Servicos.Tipos; using CTe.Utils.Validacao; +using DFe.Classes.Entidades; using DFe.Utils; using DFe.Utils.Assinatura; using CteEletronica = CTe.Classes.CTe; @@ -104,6 +107,9 @@ public static void ValidaSchema(this CteEletronica cte, ConfiguracaoServico conf case versao.ve300: Validador.Valida(xmlValidacao, "cte_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlValidacao, "cte_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + @@ -180,7 +186,43 @@ public static void ValidaSchema(this CteEletronica cte, ConfiguracaoServico conf if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(rodoOS)) { - Validador.Valida(xmlModal, "cteModalRodoviarioOS_v.3.00.xsd", configuracaoServico); + Validador.Valida(xmlModal, "cteModalRodoviarioOS_v3.00.xsd", configuracaoServico); + } + break; + case versaoModal.veM400: + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(aereo)) + { + Validador.Valida(xmlModal, "cteModalAereo_v4.00.xsd", configuracaoServico); + } + + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(aquav)) + { + Validador.Valida(xmlModal, "cteModalAquaviario_v4.00.xsd", configuracaoServico); + } + + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(duto)) + { + Validador.Valida(xmlModal, "cteModalDutoviario_v4.00.xsd", configuracaoServico); + } + + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(ferrov)) + { + Validador.Valida(xmlModal, "cteModalFerroviario_v4.00.xsd", configuracaoServico); + } + + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(rodo)) + { + Validador.Valida(xmlModal, "cteModalRodoviario_v4.00.xsd", configuracaoServico); + } + + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(multimodal)) + { + Validador.Valida(xmlModal, "cteMultimodal_v4.00.xsd", configuracaoServico); + } + + if (cte.infCte.infCTeNorm.infModal.ContainerModal.GetType() == typeof(rodoOS)) + { + Validador.Valida(xmlModal, "cteModalRodoviarioOS_v4.00.xsd", configuracaoServico); } break; default: @@ -215,7 +257,7 @@ public static void Assina(this CteEletronica cte, ConfiguracaoServico configurac var dadosChave = ChaveFiscal.ObterChave(estado, dataEHoraEmissao, cnpj, modeloDocumentoFiscal, serie, numeroDocumento, tipoEmissao, codigoNumerico); cte.infCte.Id = "CTe" + dadosChave.Chave; - cte.infCte.versao = configServico.VersaoLayout; + cte.infCte.versao = configServico.ObterVersaoLayoutValida(); cte.infCte.ide.cDV = dadosChave.DigitoVerificador; var assinatura = AssinaturaDigital.Assina(cte, cte.infCte.Id, configServico.X509Certificate2); @@ -291,6 +333,35 @@ public static void SalvarXmlEmDisco(this CteEletronica cte, ConfiguracaoServico FuncoesXml.ClasseParaArquivoXml(cte, arquivoSalvar); } + public static XmlDocument CriaRequestWs(this CteEletronica cte, ConfiguracaoServico configuracaoServico = null) + { + var request = new XmlDocument(); + + var xml = cte.ObterXmlString(); + + var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia; + + if (instanciaServico.cUF == Estado.PR + || instanciaServico.cUF == Estado.MT) + //Caso o lote seja enviado para o PR, colocar o namespace nos elementos do lote, pois o serviço do PR o exige, conforme https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe/issues/456 + xml = xml.Replace("", ""); + + request.LoadXml(xml); + return request; + } + + public static void SalvarXmlEmDisco(this retCTe retEnviCte, string chave, ConfiguracaoServico configuracaoServico = null) + { + var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia; + + if (instanciaServico.NaoSalvarXml()) return; + + var caminhoXml = instanciaServico.DiretorioSalvarXml; + + var arquivoSalvar = Path.Combine(caminhoXml, chave + "-cte.xml"); + + FuncoesXml.ClasseParaArquivoXml(retEnviCte, arquivoSalvar); + } } } \ No newline at end of file diff --git a/CTe.Utils/CTe/ExtEnvCte.cs b/CTe.Utils/CTe/ExtEnvCte.cs index 2e7f263b6..e215f5154 100644 --- a/CTe.Utils/CTe/ExtEnvCte.cs +++ b/CTe.Utils/CTe/ExtEnvCte.cs @@ -54,6 +54,7 @@ public static void ValidaSchema(this enviCTe enviCTe, ConfiguracaoServico config case versao.ve200: Validador.Valida(xmlValidacao, "enviCTe_v2.00.xsd", configuracaoServico); break; + case versao.ve400: case versao.ve300: Validador.Valida(xmlValidacao, "enviCTe_v3.00.xsd", configuracaoServico); break; diff --git a/CTe.Utils/Evento/Extevento.cs b/CTe.Utils/Evento/Extevento.cs index ee6b3b525..afbdf82fa 100644 --- a/CTe.Utils/Evento/Extevento.cs +++ b/CTe.Utils/Evento/Extevento.cs @@ -84,10 +84,13 @@ public static void ValidarSchema(this eventoCTe eventoCTe, ConfiguracaoServico c case versao.ve300: Validador.Valida(xmlEvento, "eventoCTe_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlEvento, "eventoCTe_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + - "versão 2.00 é 3.00"); + "versão 2.00, 3.00, 4.00"); } ValidarSchemaEventoContainer(eventoCTe.infEvento.detEvento.EventoContainer, eventoCTe.versao, configuracaoServico); @@ -109,10 +112,13 @@ private static void ValidarSchemaEventoContainer(EventoContainer container, vers case versao.ve300: Validador.Valida(xmlEventoCancelamento, "evCancCTe_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlEventoCancelamento, "evCancCTe_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + - "versão 2.00 é 3.00"); + "versão 2.00, 3.00, 4.00"); } @@ -132,10 +138,13 @@ private static void ValidarSchemaEventoContainer(EventoContainer container, vers case versao.ve300: Validador.Valida(xmlEventoCCe, "evCCeCTe_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlEventoCCe, "evCCeCTe_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + - "versão 2.00 é 3.00"); + "versão 2.00, 3.00, 4.00"); } } @@ -153,10 +162,13 @@ private static void ValidarSchemaEventoContainer(EventoContainer container, vers case versao.ve300: Validador.Valida(xmlEventoCCe, "evPrestDesacordo_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlEventoCCe, "evPrestDesacordo_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + - "versão 2.00 é 3.00"); + "versão 2.00, 3.00, 4.00"); } } } diff --git a/CTe.Utils/Extencoes/ExtconsSitCTe.cs b/CTe.Utils/Extencoes/ExtconsSitCTe.cs index d1206e880..166f4a934 100644 --- a/CTe.Utils/Extencoes/ExtconsSitCTe.cs +++ b/CTe.Utils/Extencoes/ExtconsSitCTe.cs @@ -56,6 +56,9 @@ public static void ValidarSchema(this consSitCTe consSitCTe, ConfiguracaoServico case versao.ve300: Validador.Valida(xmlValidacao, "consSitCTe_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlValidacao, "consSitCTe_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + "versão 2.00 é 3.00"); diff --git a/CTe.Utils/Extencoes/ExtconsStatServCte.cs b/CTe.Utils/Extencoes/ExtconsStatServCte.cs index 4e6db310c..1bc456602 100644 --- a/CTe.Utils/Extencoes/ExtconsStatServCte.cs +++ b/CTe.Utils/Extencoes/ExtconsStatServCte.cs @@ -55,6 +55,9 @@ public static void ValidarSchema(this consStatServCte consStatServCte, Configura case versao.ve300: Validador.Valida(xmlValidacao, "consStatServCTe_v3.00.xsd", configuracaoServico); break; + case versao.ve400: + Validador.Valida(xmlValidacao, "consStatServCTe_v4.00.xsd", configuracaoServico); + break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + @@ -93,4 +96,60 @@ public static XmlDocument CriaRequestWs(this consStatServCte consStatServMdFe) return request; } } + + public static class ExtconsStatServCTe + { + public static void ValidarSchema(this consStatServCTe consStatServCte, ConfiguracaoServico configuracaoServico = null) + { + var xmlValidacao = consStatServCte.ObterXmlString(); + + switch (consStatServCte.versao) + { + case versao.ve200: + Validador.Valida(xmlValidacao, "consStatServCTe_v2.00.xsd", configuracaoServico); + break; + case versao.ve300: + Validador.Valida(xmlValidacao, "consStatServCTe_v3.00.xsd", configuracaoServico); + break; + case versao.ve400: + Validador.Valida(xmlValidacao, "consStatServCTe_v4.00.xsd", configuracaoServico); + break; + default: + throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + + "a versão está inválida, somente é permitido " + + "versão 2.00 é 3.00"); + } + } + + /// + /// Recebe um objeto consStatServ e devolve a string no formato XML + /// + /// Objeto do tipo consStatServ + /// string com XML no do objeto consStatServ + public static string ObterXmlString(this consStatServCTe pedStatus) + { + return FuncoesXml.ClasseParaXmlString(pedStatus); + } + + public static void SalvarXmlEmDisco(this consStatServCTe statuServCte, ConfiguracaoServico configuracaoServico = null) + { + var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia; + + if (instanciaServico.NaoSalvarXml()) return; + + var caminhoXml = instanciaServico.DiretorioSalvarXml; + + var arquivoSalvar = Path.Combine(caminhoXml, DateTime.Now.ParaDataHoraString() + "-ped-sta.xml"); + + FuncoesXml.ClasseParaArquivoXml(statuServCte, arquivoSalvar); + } + + public static XmlDocument CriaRequestWs(this consStatServCTe consStatServMdFe) + { + var request = new XmlDocument(); + request.LoadXml(consStatServMdFe.ObterXmlString()); + + return request; + } + } } \ No newline at end of file diff --git a/CTe.Utils/Extencoes/ExtretConsStatServCte.cs b/CTe.Utils/Extencoes/ExtretConsStatServCte.cs index 6bdcd48b1..1d7600f08 100644 --- a/CTe.Utils/Extencoes/ExtretConsStatServCte.cs +++ b/CTe.Utils/Extencoes/ExtretConsStatServCte.cs @@ -53,4 +53,20 @@ public static void SalvarXmlEmDisco(this retConsStatServCte retConsStatServCte, FuncoesXml.ClasseParaArquivoXml(retConsStatServCte, arquivoSalvar); } } + + public static class ExtretConsStatServCTe + { + public static void SalvarXmlEmDisco(this retConsStatServCTe retConsStatServCte, ConfiguracaoServico configuracaoServico = null) + { + var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia; + + if (instanciaServico.NaoSalvarXml()) return; + + var caminhoXml = instanciaServico.DiretorioSalvarXml; + + var arquivoSalvar = Path.Combine(caminhoXml, DateTime.Now.ParaDataHoraString() + "-sta.xml"); + + FuncoesXml.ClasseParaArquivoXml(retConsStatServCte, arquivoSalvar); + } + } } \ No newline at end of file diff --git a/CTe.Wsdl/CTe.Wsdl.csproj b/CTe.Wsdl/CTe.Wsdl.csproj index 2c60a1325..29133ee8c 100644 --- a/CTe.Wsdl/CTe.Wsdl.csproj +++ b/CTe.Wsdl/CTe.Wsdl.csproj @@ -9,4 +9,8 @@ + + + + diff --git a/CTe.Wsdl/ConsultaProtocolo/V4/CteConsulta.cs b/CTe.Wsdl/ConsultaProtocolo/V4/CteConsulta.cs new file mode 100644 index 000000000..7ee884352 --- /dev/null +++ b/CTe.Wsdl/ConsultaProtocolo/V4/CteConsulta.cs @@ -0,0 +1,74 @@ +using System; +using System.Net; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Serialization; +using CTe.CTeOSDocumento.Common; + +namespace CTe.Wsdl.ConsultaProtocolo.V4 +{ + public class CteConsultaV4 + { + //Envelope SOAP para envio + private SoapEnvelope soapEnvelope; + + //Configurações do WSDL para estabelecimento da comunicação + private WsdlConfiguracao configuracao; + + /// + /// Cria o cabeçalho do envelope a ser enviado e atribui as configurações do WSDL. + /// + /// + public CteConsultaV4(WsdlConfiguracao configuracao) + { + if (configuracao == null) throw new ArgumentNullException(); + + this.configuracao = configuracao; + this.soapEnvelope = new SoapEnvelope(); + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; + } + + /// + /// Encapsula os dados da requisição no envelope por meio da serialização das partes e realiza a requisção ao Web Service. + /// + /// + /// XmlNode + public XmlNode cteConsultaCT(XmlNode cteDadosMsg) + { + soapEnvelope.body = new ResponseBody + { + cteDadosMsg = cteDadosMsg + }; + return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, TipoEvento.CTeConsultaV4, "retConsSitCTe"); + } + + public async Task cteConsultaCTAsync(XmlNode cteDadosMsg) + { + soapEnvelope.body = new ResponseBody + { + cteDadosMsg = cteDadosMsg + }; + return await RequestBuilderAndSender.ExecuteAsync(soapEnvelope, configuracao, TipoEvento.CTeConsultaV4, "retConsSitCTe"); + } + } + + /// + /// Classe base para a serialização no formato do envelope SOAP. + /// + [XmlRoot(ElementName = "Envelope", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public class SoapEnvelope : CommonSoapEnvelope + { + + [XmlElement(ElementName = "Body", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public ResponseBody body { get; set; } + } + + /// + /// Classe para o corpo do Envelope SOAP + /// + public class ResponseBody : CommonResponseBody + { + [XmlElement(Namespace = "http://www.portalfiscal.inf.br/cte/wsdl/CTeConsultaV4")] + public T cteDadosMsg { get; set; } + } +} \ No newline at end of file diff --git a/CTe.Wsdl/Evento/V4/CteRecepcaoEventoV4.cs b/CTe.Wsdl/Evento/V4/CteRecepcaoEventoV4.cs new file mode 100644 index 000000000..c6ef47932 --- /dev/null +++ b/CTe.Wsdl/Evento/V4/CteRecepcaoEventoV4.cs @@ -0,0 +1,86 @@ +using System.Net; +using System.Threading.Tasks; +using System.Xml; +using System; +using System.Xml.Serialization; +using CTe.CTeOSDocumento.Common; + +namespace CTe.Wsdl.Evento.V4 +{ + public class CteRecepcaoEventoV4 + { + //Envelope SOAP para envio + private SoapEnvelope soapEnvelope; + + //Configurações do WSDL para estabelecimento da comunicação + private WsdlConfiguracao configuracao; + + /// + /// Cria o cabeçalho do envelope a ser enviado e atribui as configurações do WSDL. + /// + /// + public CteRecepcaoEventoV4(WsdlConfiguracao configuracao) + { + if (configuracao == null) + throw new ArgumentNullException(); + + this.configuracao = configuracao; + soapEnvelope = new SoapEnvelope(); + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; + } + + /// + /// Encapsula os dados da requisição no envelope por meio da serialização das partes e realiza a requisção ao Web Service. + /// + /// + /// XmlNode + public XmlNode cteRecepcaoEvento(XmlNode cteDadosMsg) + { + soapEnvelope.body = new ResponseBody + { + cteDadosMsg = cteDadosMsg + }; + return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, TipoEvento.CTeRecepcaoEventoV4, "retEventoCTe"); + } + + public async Task cteRecepcaoEventoAsync(XmlNode cteDadosMsg) + { + soapEnvelope.body = new ResponseBody + { + cteDadosMsg = cteDadosMsg + }; + return await RequestBuilderAndSender.ExecuteAsync(soapEnvelope, configuracao, TipoEvento.CTeRecepcaoEventoV4, "retEventoCTe"); + } + } + + /// + /// Classe base para a serialização no formato do envelope SOAP. + /// + [XmlRoot(ElementName = "Envelope", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public class SoapEnvelope : CommonSoapEnvelope + { + [XmlElement(ElementName = "Header", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public ResponseHead head { get; set; } + + [XmlElement(ElementName = "Body", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public ResponseBody body { get; set; } + } + + /// + /// Classe para o cabeçalho do Envelope SOAP + /// + public class ResponseHead : CommonResponseHead + { + [XmlElement(Namespace = "http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoEventoV4")] + public T cteCabecMsg { get; set; } + } + + /// + /// Classe para o corpo do Envelope SOAP + /// + public class ResponseBody : CommonResponseBody + { + [XmlElement(Namespace = "http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoEventoV4")] + public T cteDadosMsg { get; set; } + } +} diff --git a/CTe.Wsdl/Recepcao/Sincrono/CteRecepcaoSincronoV4.cs b/CTe.Wsdl/Recepcao/Sincrono/CteRecepcaoSincronoV4.cs new file mode 100644 index 000000000..6b472b250 --- /dev/null +++ b/CTe.Wsdl/Recepcao/Sincrono/CteRecepcaoSincronoV4.cs @@ -0,0 +1,76 @@ +using System.Net; +using System.Threading.Tasks; +using System.Xml; +using System; +using System.Xml.Serialization; +using CTe.CTeOSDocumento.Common; +using DFe.Utils; + +namespace CTe.Wsdl.Recepcao.Sincrono +{ + public class CteRecepcaoSincronoV4 + { + //Envelope SOAP para envio + private SoapEnvelope soapEnvelope; + + //Configurações do WSDL para estabelecimento da comunicação + private WsdlConfiguracao configuracao; + + /// + /// Cria o cabeçalho do envelope a ser enviado e atribui as configurações do WSDL. + /// + /// + public CteRecepcaoSincronoV4(WsdlConfiguracao configuracao) + { + if (configuracao == null) + throw new ArgumentNullException(); + + this.configuracao = configuracao; + soapEnvelope = new SoapEnvelope(); + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; + } + + /// + /// Encapsula os dados da requisição no envelope por meio da serialização das partes e realiza a requisção ao Web Service. + /// + /// + /// XmlNode + public XmlNode CTeRecepcaoSincV4(XmlNode cteDadosMsg) + { + soapEnvelope.body = new ResponseBody + { + cteDadosMsg = Convert.ToBase64String(Compressao.Zip(cteDadosMsg.OuterXml)) + }; + return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, TipoEvento.CTeStatusServicoV4, "retCTe"); + } + + /*public async Task cteRecepcaoLoteAsync(XmlNode cteDadosMsg) + { + soapEnvelope.body = new ResponseBody + { + cteDadosMsg = cteDadosMsg + }; + return await RequestBuilderAndSender.ExecuteAsync(soapEnvelope, configuracao, TipoEvento.CTeRecepcao, "retEnviCte"); + }*/ + } + + /// + /// Classe base para a serialização no formato do envelope SOAP. + /// + [XmlRoot(ElementName = "Envelope", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public class SoapEnvelope : CommonSoapEnvelope + { + + [XmlElement(ElementName = "Body", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public ResponseBody body { get; set; } + } + + /// + /// Classe para o corpo do Envelope SOAP + /// + public class ResponseBody : CommonResponseBody + { + [XmlElement(Namespace = "http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4")] + public T cteDadosMsg { get; set; } + } +} \ No newline at end of file diff --git a/CTe.Wsdl/Status/CTeStatusServico.cs b/CTe.Wsdl/Status/CTeStatusServico.cs index 1ccbf572c..b5f3e3e34 100644 --- a/CTe.Wsdl/Status/CTeStatusServico.cs +++ b/CTe.Wsdl/Status/CTeStatusServico.cs @@ -11,6 +11,7 @@ public class CteStatusServico { //Envelope SOAP para envio private SoapEnvelope soapEnvelope; + private SoapEnvelopeV4 soapEnvelopeV4; //Configurações do WSDL para estabelecimento da comunicação private WsdlConfiguracao configuracao; @@ -25,17 +26,22 @@ public CteStatusServico(WsdlConfiguracao configuracao) throw new ArgumentNullException(); this.configuracao = configuracao; - soapEnvelope = new SoapEnvelope + + soapEnvelope = new SoapEnvelope(); + soapEnvelopeV4 = new SoapEnvelopeV4(); + + if (configuracao.Versao != "4.00") { - head = new ResponseHead + soapEnvelope.head = new ResponseHead { cteCabecMsg = new cteCabecMsg { versaoDados = configuracao.Versao, cUF = configuracao.CodigoIbgeEstado } - } - }; + }; + } + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; } @@ -50,7 +56,7 @@ public async Task cteStatusServicoCTAsync(XmlNode cteDadosMsg) { cteDadosMsg = cteDadosMsg }; - return await RequestBuilderAndSender.ExecuteAsync(soapEnvelope, configuracao, TipoEvento.CTeStatusServico, "retConsStatServCte"); + return await RequestBuilderAndSender.ExecuteAsync(soapEnvelope, configuracao, configuracao.Versao == "4.00" ? TipoEvento.CTeStatusServicoV4 : TipoEvento.CTeStatusServico, "retConsStatServCte"); } public XmlNode cteStatusServicoCT(XmlNode cteDadosMsg) @@ -59,7 +65,24 @@ public XmlNode cteStatusServicoCT(XmlNode cteDadosMsg) { cteDadosMsg = cteDadosMsg }; - return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, TipoEvento.CTeStatusServico, "retConsStatServCte"); + + if (configuracao.Versao == "4.00") + { + soapEnvelopeV4.body = new ResponseBodyV4 + { + cteDadosMsg = cteDadosMsg + }; + } + + if (configuracao.Versao == "4.00") + { + return RequestBuilderAndSender.Execute(soapEnvelopeV4, configuracao, TipoEvento.CTeStatusServicoV4, + "retConsStatServCTe"); + } + + return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, + TipoEvento.CTeStatusServico, + "retConsStatServCte"); } } @@ -93,4 +116,23 @@ public class ResponseBody : CommonResponseBody [XmlElement(Namespace = "http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico")] public T cteDadosMsg { get; set; } } + + /// + /// Classe base para a serialização no formato do envelope SOAP. + /// + [XmlRoot(ElementName = "Envelope", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public class SoapEnvelopeV4 : CommonSoapEnvelope + { + [XmlElement(ElementName = "Body", Namespace = "http://www.w3.org/2003/05/soap-envelope")] + public ResponseBodyV4 body { get; set; } + } + + /// + /// Classe para o corpo do Envelope SOAP + /// + public class ResponseBodyV4 : CommonResponseBody + { + [XmlElement(Namespace = "http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4")] + public T cteDadosMsg { get; set; } + } } diff --git a/DFe.Wsdl/Common/SoapUrls.cs b/DFe.Wsdl/Common/SoapUrls.cs index 1e600df2c..3737981ef 100644 --- a/DFe.Wsdl/Common/SoapUrls.cs +++ b/DFe.Wsdl/Common/SoapUrls.cs @@ -15,14 +15,20 @@ public string GetSoapUrl(TipoEvento tipoEvento) return "http://www.portalfiscal.inf.br/cte/wsdl/CTeDistribuicaoDFe/cteDistDFeInteresse"; case TipoEvento.CTeRecepcaoEvento: return "http://www.portalfiscal.inf.br/cte/wsdl/CteRecepcaoEvento"; + case TipoEvento.CTeRecepcaoEventoV4: + return "http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoEventoV4/cteRecepcaoEvento"; case TipoEvento.CTeInutilizacao: return "http://www.portalfiscal.inf.br/cte/wsdl/CteInutilizacao"; case TipoEvento.CTeRecepcao: return "http://www.portalfiscal.inf.br/cte/wsdl/CteRecepcao"; + case TipoEvento.CTeRecepcaoV4: + return "http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4/cteRecepcao"; case TipoEvento.CTeRetRecepcao: return "http://www.portalfiscal.inf.br/cte/wsdl/CteRetRecepcao"; case TipoEvento.CTeStatusServico: return "http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico"; + case TipoEvento.CTeStatusServicoV4: + return "http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4/cteStatusServicoCT"; case TipoEvento.MDFeStatusServico: return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeStatusServico"; case TipoEvento.MDFeRecepcao: @@ -35,6 +41,8 @@ public string GetSoapUrl(TipoEvento tipoEvento) return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeConsulta"; case TipoEvento.MDFeEvento: return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoEvento"; + case TipoEvento.CTeConsultaV4: + return "http://www.portalfiscal.inf.br/cte/wsdl/CTeConsultaV4/cteConsultaCT"; default: throw new ArgumentOutOfRangeException(nameof(tipoEvento), tipoEvento, null); } diff --git a/DFe.Wsdl/Common/TipoEvento.cs b/DFe.Wsdl/Common/TipoEvento.cs index a3cee7a11..d41ec48af 100644 --- a/DFe.Wsdl/Common/TipoEvento.cs +++ b/DFe.Wsdl/Common/TipoEvento.cs @@ -3,6 +3,7 @@ public enum TipoEvento { CTeConsulta, + CTeDistribuicaoDFe, CTeRecepcaoEvento, CTeInutilizacao, @@ -15,6 +16,12 @@ public enum TipoEvento MDFeRetRecepcao, MDFeNaoEncerrado, MDFeConsulta, - MDFeEvento + MDFeEvento, + + CTeConsultaV4, + CTeRecepcaoV4, + CTeStatusServicoV4, + CTeDistribuicaoDFeV4, + CTeRecepcaoEventoV4, } } \ No newline at end of file