diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..19af722 --- /dev/null +++ b/404.html @@ -0,0 +1,440 @@ + + + +
+ + + + + + + + + + + + + + + +API Java para consumo do WebService de CTe
+Para Iniciar : +- Caso use Libs baixe o java-cte-4.00.7.jar e o adicione às bibliotecas de Seu Projeto.
+Baixe o Schemas.rar e extraia na sua Máquina.
+Maven : +
+Gradle : +
+Veja a Wiki, para ter um Tutorial Completo.
+API Java para consumo do WebService de CTe
"},{"location":"#duvidas-sugestoes-ou-consultoria","title":"D\u00favidas, Sugest\u00f5es ou Consultoria","text":""},{"location":"#gostou-do-projeto-de-sua-colaboracao-pelo-pix-01713390108","title":"Gostou do Projeto? D\u00ea sua colabora\u00e7\u00e3o pelo Pix: 01713390108","text":"Para Iniciar : - Caso use Libs baixe o java-cte-4.00.7.jar e o adicione \u00e0s bibliotecas de Seu Projeto.
Baixe o Schemas.rar e extraia na sua M\u00e1quina.
Maven :
<dependency>\n <groupId>br.com.swconsultoria</groupId>\n <artifactId>java-cte</artifactId>\n <version>4.00.7</version>\n</dependency>\n
Gradle :
dependencies {\nimplementation \"br.com.swconsultoria:java-cte:4.00.7\"\n}\n
Veja a Wiki, para ter um Tutorial Completo.
"},{"location":"#historico-de-versoes","title":"Historico de Vers\u00f5es","text":""},{"location":"#v4002-05092023","title":"v4.00.2 - 05/09/2023","text":"Fun\u00e7\u00e3o para fazer a Consulta e download de Cte.
DistDfeCte.javaimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.dom.enuns.ConsultaDFeEnum;\nimport br.com.swconsultoria.cte.dom.enuns.PessoaEnum;\nimport br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_100.retdistdfeint.RetDistDFeInt;\nimport br.com.swconsultoria.cte.util.XmlCteUtil;\n/**\n * @author Samuel Oliveira\n */\npublic class DistDfeCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nString cnpj = \"12345678901234\"; // TODO Preencher Cnpj\nString nsu = \"000000000000000\"; // TODO Preencher Nsu\nRetDistDFeInt retorno = Cte.distribuicaoDfe(config, PessoaEnum.JURIDICA, cnpj, ConsultaDFeEnum.NSU, nsu);\nSystem.out.println(\"Status:\" + retorno.getCStat());\nSystem.out.println(\"Motivo:\" + retorno.getXMotivo());\nSystem.out.println(\"Max NSU:\" + retorno.getMaxNSU());\nSystem.out.println(\"Ult NSU:\" + retorno.getUltNSU());\nif (StatusCteEnum.DOC_LOCALIZADO_PARA_DESTINATARIO.equals(retorno.getCStat())) {\nList<RetDistDFeInt.LoteDistDFeInt.DocZip> listaDoc = retorno.getLoteDistDFeInt().getDocZip();\nSystem.out.println(\"Encontrado \" + listaDoc.size() + \" Notas.\");\nfor (RetDistDFeInt.LoteDistDFeInt.DocZip docZip : listaDoc) {\nSystem.out.println(\"Schema: \" + docZip.getSchema());\nSystem.out.println(\"NSU:\" + docZip.getNSU());\nSystem.out.println(\"XML: \" + XmlCteUtil.gZipToXml(docZip.getValue()));\n}\n}\n} catch (CteException | IOException e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"},{"location":"tutorial/cancelamento/","title":"Cancelamento","text":"Exemplo de Como Ficaria o Cancelamento da CT-e.
CancelarCte.javaimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_400.evCancCTe.EvCancCTe;\nimport br.com.swconsultoria.cte.schema_400.evCancCTe.TProcEvento;\nimport br.com.swconsultoria.cte.schema_400.evCancCTe.TRetEvento;\nimport br.com.swconsultoria.cte.util.ConstantesCte;\nimport br.com.swconsultoria.cte.util.ObjetoCTeUtil;\nimport br.com.swconsultoria.cte.util.XmlCteUtil;\nimport br.com.swconsultoria.cte.schema_400.evCancCTe.TEvento;\nimport javax.xml.bind.JAXBException;\nimport java.time.LocalDateTime;\n/**\n * @author Samuel Oliveira\n *\n */\npublic class CancelarCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nString chave = \"\"; // TODO Preencha a Chave\nString protocolo = \"\"; // TODO Preencha o Protocolo\nString cnpj = \"\"; // TODO Preencha o Cnpj\nString numeroSeqCancelamento = \"001\"; // TODO Preencha\nString eventoCancelamento = \"110111\";\nString id = \"ID\" + eventoCancelamento + chave + numeroSeqCancelamento;\nString justificativa = \"Teste de Cancelmento\"; // TODO Preencha\nTEvento enviEvento = new TEvento();\nenviEvento.setVersao(ConstantesCte.VERSAO.CTE);\nTEvento.InfEvento infoEvento = new TEvento.InfEvento();\ninfoEvento.setId(id);\ninfoEvento.setCOrgao(config.getEstado().getCodigoUF());\ninfoEvento.setTpAmb(config.getAmbiente().getCodigo());\ninfoEvento.setCNPJ(cnpj);\ninfoEvento.setChCTe(chave);\ninfoEvento.setDhEvento(XmlCteUtil.dataCte(LocalDateTime.now()));\ninfoEvento.setTpEvento(eventoCancelamento);\ninfoEvento.setNSeqEvento(Integer.valueOf(numeroSeqCancelamento).toString());\nEvCancCTe eventoCancela = new EvCancCTe();\neventoCancela.setDescEvento(\"Cancelamento\");\neventoCancela.setNProt(protocolo);\neventoCancela.setXJust(justificativa);\nTEvento.InfEvento.DetEvento detEvento = new TEvento.InfEvento.DetEvento();\ndetEvento.setVersaoEvento(ConstantesCte.VERSAO.CTE);\ndetEvento.setAny(ObjetoCTeUtil.objectToElement(eventoCancela, EvCancCTe.class, \"evCancCTe\"));\ninfoEvento.setDetEvento(detEvento);\nenviEvento.setInfEvento(infoEvento);\nTRetEvento retorno = Cte.cancelarCte(config, enviEvento, true);\nif (!retorno.getInfEvento().getCStat().equals(StatusCteEnum.EVENTO_VINCULADO.getCodigo())) {\nSystem.out.println(\"Erro Status:\" + retorno.getInfEvento().getCStat());\nSystem.out.println(\"Erro Motivo:\" + retorno.getInfEvento().getXMotivo());\n} else {\nSystem.out.println(\"Status:\" + retorno.getInfEvento().getCStat());\nSystem.out.println(\"Motivo:\" + retorno.getInfEvento().getXMotivo());\nSystem.out.println(\"Data:\" + retorno.getInfEvento().getDhRegEvento());\n// Cria TProcEventoCTe\nTProcEvento procEvento = new TProcEvento();\nprocEvento.setVersao(ConstantesCte.VERSAO.CTE);\nprocEvento.setEventoCTe(enviEvento);\nprocEvento.setRetEventoCTe(retorno);\nSystem.out.println(\"Xml Final Cancelamento Proc: \" + XmlCteUtil.objectToXml(procEvento));\n}\n} catch (CteException | JAXBException e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"},{"location":"tutorial/carta-correcao/","title":"Carta de Corre\u00e7\u00e3o Eletr\u00f4nica","text":"Fun\u00e7\u00e3o para Gerar a Carta De Corre\u00e7\u00e3o Eletr\u00f4nica.
CCeCte.javaimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_400.evCCeCTe.EvCCeCTe;\nimport br.com.swconsultoria.cte.schema_400.evCCeCTe.TEvento;\nimport br.com.swconsultoria.cte.schema_400.evCCeCTe.TProcEvento;\nimport br.com.swconsultoria.cte.schema_400.evCCeCTe.TRetEvento;\nimport br.com.swconsultoria.cte.util.ConstantesCte;\nimport br.com.swconsultoria.cte.util.ObjetoCTeUtil;\nimport br.com.swconsultoria.cte.util.XmlCteUtil;\nimport javax.xml.bind.JAXBException;\nimport java.time.LocalDateTime;\n/**\n * @author Samuel Oliveira\n */\npublic class CCeCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nString chave = \"\"; // TODO Preencha a Chave\nString numeroSeqEvento = \"001\"; // TODO Preencha o NUmero Sequencial com 2 Digitos e Zero a esquerda\nString codigoEvento = \"110110\";\nString id = \"ID\" + codigoEvento + chave + numeroSeqEvento;\nString cnpj = \"\"; // TODO Preencha o Cnpj\nTEvento enviEvento = new TEvento();\nenviEvento.setVersao(ConstantesCte.VERSAO.CTE);\nTEvento.InfEvento infoEvento = new TEvento.InfEvento();\ninfoEvento.setId(id);\ninfoEvento.setCOrgao(config.getEstado().getCodigoUF());\ninfoEvento.setTpAmb(config.getAmbiente().getCodigo());\ninfoEvento.setCNPJ(cnpj);\ninfoEvento.setChCTe(chave);\ninfoEvento.setDhEvento(XmlCteUtil.dataCte(LocalDateTime.now()));\ninfoEvento.setTpEvento(codigoEvento);\ninfoEvento.setNSeqEvento(Integer.valueOf(numeroSeqEvento).toString());\nEvCCeCTe eventoCCe = new EvCCeCTe();\neventoCCe.setDescEvento(\"Carta de Correcao\");\neventoCCe.setXCondUso(\"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 mudanca do emitente, tomador, remetente ou do destinatario;III - a data de emissao ou de saida.\");\nEvCCeCTe.InfCorrecao infCorrecao = new EvCCeCTe.InfCorrecao();\ninfCorrecao.setGrupoAlterado(\"enderReme\"); // TODO Preencha\ninfCorrecao.setCampoAlterado(\"nro\"); // TODO Preencha\ninfCorrecao.setValorAlterado(\"1234\"); // TODO Preencha\neventoCCe.getInfCorrecao().add(infCorrecao);\nTEvento.InfEvento.DetEvento detEvento = new TEvento.InfEvento.DetEvento();\ndetEvento.setVersaoEvento(ConstantesCte.VERSAO.CTE);\ndetEvento.setAny(ObjetoCTeUtil.objectToElement(eventoCCe, EvCCeCTe.class, \"evCCeCTe\"));\ninfoEvento.setDetEvento(detEvento);\nenviEvento.setInfEvento(infoEvento);\nTRetEvento retorno = Cte.cceCte(config, enviEvento, true);\nif (!retorno.getInfEvento().getCStat().equals(StatusCteEnum.EVENTO_VINCULADO.getCodigo())) {\nSystem.out.println(\"Erro Status:\" + retorno.getInfEvento().getCStat());\nSystem.out.println(\"Erro Motivo:\" + retorno.getInfEvento().getXMotivo());\n} else {\nSystem.out.println(\"Status:\" + retorno.getInfEvento().getCStat());\nSystem.out.println(\"Motivo:\" + retorno.getInfEvento().getXMotivo());\nSystem.out.println(\"Data:\" + retorno.getInfEvento().getDhRegEvento());\n// Cria TProcEventoCTe\nTProcEvento procEvento = new TProcEvento();\nprocEvento.setVersao(ConstantesCte.VERSAO.CTE);\nprocEvento.setEventoCTe(enviEvento);\nprocEvento.setRetEventoCTe(retorno);\nSystem.out.println(\"Xml Final Carta de Corre\u00e7\u00e3o Proc: \" + XmlCteUtil.objectToXml(procEvento));\n}\n} catch (JAXBException | CteException e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"},{"location":"tutorial/configuracoes/","title":"Configura\u00e7\u00f5es","text":"Para executar qualquer fun\u00e7\u00e3o CTe, deve-se inicializar as Configura\u00e7\u00e3o.
"},{"location":"tutorial/configuracoes/#certificado-digital","title":"Certificado Digital","text":"StatusCte.javaimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_400.retConsStatServCTe.TRetConsStatServ;\n/**\n * @author Samuel Oliveira\n */\npublic class StatusCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nTRetConsStatServ retorno = Cte.statusServico(config);\nSystem.out.println(\"Status:\" + retorno.getCStat());\nSystem.out.println(\"Motivo:\" + retorno.getXMotivo());\nSystem.out.println(\"Data:\" + retorno.getDhRecbto());\n} catch (CteException | CertificadoException e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"},{"location":"tutorial/consulta-situacao/","title":"Consulta Situa\u00e7\u00e3o","text":"Fun\u00e7\u00e3o para fazer a Consulta e download de Cte.
DistDfeCte.javaimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.dom.enuns.ConsultaDFeEnum;\nimport br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_100.retdistdfeint.RetDistDFeInt;\nimport br.com.swconsultoria.cte.util.XmlCteUtil;\nimport java.io.IOException;\nimport java.util.List;\n/**\n * @author Samuel Oliveira\n */\npublic class DistDfeCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nString cnpj = \"\"; // TODO Preencher Cnpj\nString nsu = \"000000000000000\"; // TODO Preencher Nsu\nRetDistDFeInt retorno = Cte.distribuicaoDfe(config, br.com.swconsultoria.cte.dom.enuns.PessoaEnum.JURIDICA, cnpj, ConsultaDFeEnum.NSU, nsu);\nSystem.out.println(\"Status:\" + retorno.getCStat());\nSystem.out.println(\"Motivo:\" + retorno.getXMotivo());\nSystem.out.println(\"Max NSU:\" + retorno.getMaxNSU());\nSystem.out.println(\"Ult NSU:\" + retorno.getUltNSU());\nif (StatusCteEnum.DOC_LOCALIZADO_PARA_DESTINATARIO.equals(retorno.getCStat())) {\nList<RetDistDFeInt.LoteDistDFeInt.DocZip> listaDoc = retorno.getLoteDistDFeInt().getDocZip();\nSystem.out.println(\"Encontrado \" + listaDoc.size() + \" Notas.\");\nfor (RetDistDFeInt.LoteDistDFeInt.DocZip docZip : listaDoc) {\nSystem.out.println(\"Schema: \" + docZip.getSchema());\nSystem.out.println(\"NSU:\" + docZip.getNSU());\nSystem.out.println(\"XML: \" + XmlCteUtil.gZipToXml(docZip.getValue()));\n}\n}\n} catch (CteException | IOException e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"},{"location":"tutorial/envio/","title":"Envio","text":"Exemplo de Como Ficaria o Envio da CT-e.
EnvioCte.javapackage cte;\nimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_400.cte.TRetCTe;\nimport br.com.swconsultoria.cte.schema_400.cte.TUFSemEX;\nimport br.com.swconsultoria.cte.schema_400.cte.TUf;\nimport br.com.swconsultoria.cte.schema_400.cteModalRodoviario.Rodo;\nimport br.com.swconsultoria.cte.schema_400.cte.TCTe;\nimport br.com.swconsultoria.cte.util.ChaveUtil;\nimport br.com.swconsultoria.cte.util.ConstantesCte;\nimport br.com.swconsultoria.cte.util.ObjetoCTeUtil;\nimport br.com.swconsultoria.cte.util.XmlCteUtil;\nimport java.time.LocalDateTime;\nimport java.util.Random;\n/**\n * @author Samuel Oliveira\n */\npublic class EnvioCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nString cnpj = \"10732644000128\"; //TODO Preencha o Cnpj\nString modelo = \"57\";\nint serie = 1;\nint numero = 224;\nString tipoEmissao = \"1\";\nString cct = String.format(\"%08d\", new Random().nextInt(99999999));\n// Inicia As Configura\u00e7\u00f5es\nTCTe cte = new TCTe();\nTCTe.InfCte infCTe = new TCTe.InfCte();\n// Substitua X Pela Chave\nChaveUtil chaveUtil = new ChaveUtil(config.getEstado(),\ncnpj, modelo, serie, numero,\ntipoEmissao, cct, LocalDateTime.now());\nString chave = chaveUtil.getChaveCT();\ninfCTe.setId(chave);\ninfCTe.setVersao(ConstantesCte.VERSAO.CTE);\nTCTe.InfCte.Ide ide = new TCTe.InfCte.Ide();\nide.setCUF(config.getEstado().getCodigoUF());\nide.setCCT(cct);\nide.setCFOP(\"5351\");\nide.setNatOp(\"TRANSPORTE INTERNO\");\nide.setMod(modelo);\nide.setSerie(String.valueOf(serie));\nide.setNCT(String.valueOf(numero));\nide.setDhEmi(XmlCteUtil.dataCte(LocalDateTime.now()));\nide.setTpImp(\"1\");\nide.setTpEmis(tipoEmissao);\nide.setCDV(chaveUtil.getDigitoVerificador());\nide.setTpAmb(config.getAmbiente().getCodigo());\nide.setTpCTe(\"0\");\nide.setProcEmi(\"0\");\nide.setVerProc(\"1.0\");\nide.setCMunEnv(\"5219753\");\nide.setXMunEnv(\"Anapolis\");\nide.setUFEnv(TUf.valueOf(\"GO\"));\nide.setModal(\"01\");\nide.setTpServ(\"0\");\nide.setCMunIni(\"5219753\");\nide.setXMunIni(\"Anapolis\");\nide.setUFIni(TUf.valueOf(\"GO\"));\nide.setCMunFim(\"5219753\");\nide.setXMunFim(\"Anapolis\");\nide.setUFFim(TUf.valueOf(\"GO\"));\nide.setRetira(\"1\");\nide.setIndIEToma(\"1\");\nTCTe.InfCte.Ide.Toma3 toma3 = new TCTe.InfCte.Ide.Toma3();\ntoma3.setToma(\"3\");\nide.setToma3(toma3);\ninfCTe.setIde(ide);\nTCTe.InfCte.Compl compl = new TCTe.InfCte.Compl();\ncompl.setXObs(\"FORMA DE PAGAMENTO DEPOSITO BANCARIO,FAVOR ENVIAR COPIA DO COMPROVANTE PARA O TRANSPORTADOR E ANEXAR VIA A DA CONTABILIDADE\");\ninfCTe.setCompl(compl);\nTCTe.InfCte.Emit emit = new TCTe.InfCte.Emit();\nemit.setCNPJ(cnpj);\nemit.setIE(\"104519304\");\nemit.setXNome(\"TRC TRANSPORTES LTDA\");\nemit.setXFant(\"TRC TRANSPORTES LTDA\");\nemit.setCRT(\"1\");\nbr.com.swconsultoria.cte.schema_400.cte.TEndeEmi enderEmit = new br.com.swconsultoria.cte.schema_400.cte.TEndeEmi();\nenderEmit.setXLgr(\"AV SANTO ANTONIO & CIA\");\nenderEmit.setNro(\"0\");\nenderEmit.setXCpl(\"QD 17 LT 01-02-03\");\nenderEmit.setXBairro(\"PQ STO ANTONIO\");\nenderEmit.setCMun(\"5219753\");\nenderEmit.setXMun(\"SANTO ANTONIO DO DESCOBERTO\");\nenderEmit.setUF(TUFSemEX.valueOf(\"GO\"));\nenderEmit.setCEP(\"72900000\");\nenderEmit.setFone(\"6233215175\");\nemit.setEnderEmit(enderEmit);\ninfCTe.setEmit(emit);\nTCTe.InfCte.Rem rem = new TCTe.InfCte.Rem();\nrem.setCNPJ(\"01241994000605\");\nrem.setIE(\"103255788\");\nrem.setXNome(\"CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL\");\nrem.setEmail(\"samuel@autocomsistemas.com.br\");\nbr.com.swconsultoria.cte.schema_400.cte.TEndereco enderRem = new br.com.swconsultoria.cte.schema_400.cte.TEndereco();\nenderRem.setXLgr(\"Rua: Teste\");\nenderRem.setNro(\"0\");\nenderRem.setXBairro(\"TESTE\");\nenderRem.setCMun(\"5219753\");\nenderRem.setXMun(\"SANTO ANTONIO DO DESCOBERTO\");\nenderRem.setUF(TUf.GO);\nenderRem.setCEP(\"75120683\");\nenderRem.setCPais(\"1058\");\nenderRem.setXPais(\"Brasil\");\nrem.setEnderReme(enderRem);\ninfCTe.setRem(rem);\nTCTe.InfCte.Dest dest = new TCTe.InfCte.Dest();\ndest.setCNPJ(\"07826959000120\");\ndest.setIE(\"104024585\");\ndest.setXNome(\"CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL\");\ndest.setEmail(\"samuel@autocomsistemas.com.br\");\nbr.com.swconsultoria.cte.schema_400.cte.TEndereco enderDest = new br.com.swconsultoria.cte.schema_400.cte.TEndereco();\nenderDest.setXLgr(\"Rua: Teste\");\nenderDest.setNro(\"0\");\nenderDest.setXBairro(\"TESTE\");\nenderDest.setCMun(\"5219753\");\nenderDest.setXMun(\"SANTO ANTONIO DO DESCOBERTO\");\nenderDest.setUF(TUf.GO);\nenderDest.setCEP(\"75120683\");\nenderDest.setCPais(\"1058\");\nenderDest.setXPais(\"Brasil\");\ndest.setEnderDest(enderDest);\ninfCTe.setDest(dest);\nTCTe.InfCte.VPrest prest = new TCTe.InfCte.VPrest();\nprest.setVTPrest(\"410.00\");\nprest.setVRec(\"410.00\");\nTCTe.InfCte.VPrest.Comp comp = new TCTe.InfCte.VPrest.Comp();\ncomp.setVComp(\"500.00\");\ncomp.setXNome(\"TESTE\");\nprest.getComp().add(comp);\ninfCTe.setVPrest(prest);\nTCTe.InfCte.Imp imp = new TCTe.InfCte.Imp();\nbr.com.swconsultoria.cte.schema_400.cte.TImp icms = new br.com.swconsultoria.cte.schema_400.cte.TImp();\nbr.com.swconsultoria.cte.schema_400.cte.TImp.ICMS45 icms45 = new br.com.swconsultoria.cte.schema_400.cte.TImp.ICMS45();\nicms45.setCST(\"40\");\nicms.setICMS45(icms45);\nimp.setICMS(icms);\ninfCTe.setImp(imp);\nTCTe.InfCte.InfCTeNorm infCTeNorm = new TCTe.InfCte.InfCTeNorm();\nTCTe.InfCte.InfCTeNorm.InfCarga infCarga = new TCTe.InfCte.InfCTeNorm.InfCarga();\ninfCarga.setVCarga(\"29100.00\");\ninfCarga.setProPred(\"OLEO DIESEL\");\nTCTe.InfCte.InfCTeNorm.InfCarga.InfQ infQ = new TCTe.InfCte.InfCTeNorm.InfCarga.InfQ();\ninfQ.setCUnid(\"04\");\ninfQ.setTpMed(\"LT\");\ninfQ.setQCarga(\"10000.0000\");\ninfCarga.getInfQ().add(infQ);\nTCTe.InfCte.InfCTeNorm.InfDoc infDoc = new TCTe.InfCte.InfCTeNorm.InfDoc();\nTCTe.InfCte.InfCTeNorm.InfDoc.InfNFe infNFe = new TCTe.InfCte.InfCTeNorm.InfDoc.InfNFe();\ninfNFe.setChave(\"52170101241994000605550030002868271002045403\");\ninfDoc.getInfNFe().add(infNFe);\nTCTe.InfCte.InfCTeNorm.InfModal infModal = new TCTe.InfCte.InfCTeNorm.InfModal();\ninfModal.setVersaoModal(ConstantesCte.VERSAO.CTE);\nRodo rodo = new Rodo();\nrodo.setRNTRC(\"47008950\");\ninfModal.setAny(ObjetoCTeUtil.objectToElement(rodo, Rodo.class, \"rodo\"));\ninfCTeNorm.setInfCarga(infCarga);\ninfCTeNorm.setInfDoc(infDoc);\ninfCTeNorm.setInfModal(infModal);\ninfCTe.setInfCTeNorm(infCTeNorm);\ncte.setInfCte(infCTe);\n// MOnta e Assina o XML\nTCTe enviCTe = Cte.montaCte(config, cte, true);\n//Adiciona QRCode\nTCTe.InfCTeSupl infCTeSupl = new TCTe.InfCTeSupl();\ninfCTeSupl.setQrCodCTe(ObjetoCTeUtil.criaQRCode(\ncte.getInfCte().getId().substring(3),\nconfig));\nenviCTe.setInfCTeSupl(infCTeSupl);\n// Envia a Cte para a Sefaz\nTRetCTe retorno = Cte.enviarCte(config, enviCTe);\nif (!retorno.getCStat().equals(StatusCteEnum.AUTORIZADO.getCodigo())) {\nthrow new CteException(\"Status:\" + retorno.getCStat() + \" - Motivo:\" + retorno.getXMotivo());\n}\nSystem.out.println(\"Status: \" + retorno.getProtCTe().getInfProt().getCStat() + \" - \" + retorno.getProtCTe().getInfProt().getXMotivo());\nSystem.out.println(\"Data: \" + retorno.getProtCTe().getInfProt().getDhRecbto());\nSystem.out.println(\"Protocolo: \" + retorno.getProtCTe().getInfProt().getNProt());\nSystem.out.println(\"XML Final: \" + XmlCteUtil.criaCteProc(enviCTe, retorno.getProtCTe()));\n} catch (Exception e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"},{"location":"tutorial/status-servico/","title":"Status de Servi\u00e7o","text":"Fun\u00e7\u00e3o para consultar o Status de Servi\u00e7o Da Sefaz.
StatusCte.javaimport br.com.swconsultoria.cte.Cte;\nimport br.com.swconsultoria.cte.dom.ConfiguracoesCte;\nimport br.com.swconsultoria.cte.exception.CteException;\nimport br.com.swconsultoria.cte.schema_400.retConsStatServCTe.TRetConsStatServ;\n/**\n * @author Samuel Oliveira\n */\npublic class StatusCte {\npublic static void main(String[] args) {\ntry {\n//Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe\nConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();\nTRetConsStatServ retorno = Cte.statusServico(config);\nSystem.out.println(\"Status:\" + retorno.getCStat());\nSystem.out.println(\"Motivo:\" + retorno.getXMotivo());\nSystem.out.println(\"Data:\" + retorno.getDhRecbto());\n} catch (CteException e) {\nSystem.out.println(\"Erro:\" + e.getMessage());\n}\n}\n}\n
"}]}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..01172a7
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,43 @@
+
+Função para fazer a Consulta e download de Cte.
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.dom.enuns.ConsultaDFeEnum;
+import br.com.swconsultoria.cte.dom.enuns.PessoaEnum;
+import br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_100.retdistdfeint.RetDistDFeInt;
+import br.com.swconsultoria.cte.util.XmlCteUtil;
+
+/**
+ * @author Samuel Oliveira
+ */
+public class DistDfeCte {
+
+ public static void main(String[] args) {
+
+ try {
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ String cnpj = "12345678901234"; // TODO Preencher Cnpj
+ String nsu = "000000000000000"; // TODO Preencher Nsu
+
+ RetDistDFeInt retorno = Cte.distribuicaoDfe(config, PessoaEnum.JURIDICA, cnpj, ConsultaDFeEnum.NSU, nsu);
+ System.out.println("Status:" + retorno.getCStat());
+ System.out.println("Motivo:" + retorno.getXMotivo());
+ System.out.println("Max NSU:" + retorno.getMaxNSU());
+ System.out.println("Ult NSU:" + retorno.getUltNSU());
+
+ if (StatusCteEnum.DOC_LOCALIZADO_PARA_DESTINATARIO.equals(retorno.getCStat())) {
+
+ List<RetDistDFeInt.LoteDistDFeInt.DocZip> listaDoc = retorno.getLoteDistDFeInt().getDocZip();
+
+ System.out.println("Encontrado " + listaDoc.size() + " Notas.");
+ for (RetDistDFeInt.LoteDistDFeInt.DocZip docZip : listaDoc) {
+ System.out.println("Schema: " + docZip.getSchema());
+ System.out.println("NSU:" + docZip.getNSU());
+ System.out.println("XML: " + XmlCteUtil.gZipToXml(docZip.getValue()));
+ }
+ }
+
+ } catch (CteException | IOException e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+ }
+}
+
Exemplo de Como Ficaria o Cancelamento da CT-e.
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_400.evCancCTe.EvCancCTe;
+import br.com.swconsultoria.cte.schema_400.evCancCTe.TProcEvento;
+import br.com.swconsultoria.cte.schema_400.evCancCTe.TRetEvento;
+import br.com.swconsultoria.cte.util.ConstantesCte;
+import br.com.swconsultoria.cte.util.ObjetoCTeUtil;
+import br.com.swconsultoria.cte.util.XmlCteUtil;
+import br.com.swconsultoria.cte.schema_400.evCancCTe.TEvento;
+
+import javax.xml.bind.JAXBException;
+import java.time.LocalDateTime;
+
+/**
+ * @author Samuel Oliveira
+ *
+ */
+public class CancelarCte {
+
+ public static void main(String[] args) {
+
+ try {
+
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ String chave = ""; // TODO Preencha a Chave
+ String protocolo = ""; // TODO Preencha o Protocolo
+ String cnpj = ""; // TODO Preencha o Cnpj
+ String numeroSeqCancelamento = "001"; // TODO Preencha
+ String eventoCancelamento = "110111";
+ String id = "ID" + eventoCancelamento + chave + numeroSeqCancelamento;
+ String justificativa = "Teste de Cancelmento"; // TODO Preencha
+
+ TEvento enviEvento = new TEvento();
+ enviEvento.setVersao(ConstantesCte.VERSAO.CTE);
+
+ TEvento.InfEvento infoEvento = new TEvento.InfEvento();
+ infoEvento.setId(id);
+ infoEvento.setCOrgao(config.getEstado().getCodigoUF());
+ infoEvento.setTpAmb(config.getAmbiente().getCodigo());
+ infoEvento.setCNPJ(cnpj);
+ infoEvento.setChCTe(chave);
+ infoEvento.setDhEvento(XmlCteUtil.dataCte(LocalDateTime.now()));
+ infoEvento.setTpEvento(eventoCancelamento);
+ infoEvento.setNSeqEvento(Integer.valueOf(numeroSeqCancelamento).toString());
+
+ EvCancCTe eventoCancela = new EvCancCTe();
+ eventoCancela.setDescEvento("Cancelamento");
+ eventoCancela.setNProt(protocolo);
+ eventoCancela.setXJust(justificativa);
+
+ TEvento.InfEvento.DetEvento detEvento = new TEvento.InfEvento.DetEvento();
+ detEvento.setVersaoEvento(ConstantesCte.VERSAO.CTE);
+ detEvento.setAny(ObjetoCTeUtil.objectToElement(eventoCancela, EvCancCTe.class, "evCancCTe"));
+
+ infoEvento.setDetEvento(detEvento);
+ enviEvento.setInfEvento(infoEvento);
+
+ TRetEvento retorno = Cte.cancelarCte(config, enviEvento, true);
+
+ if (!retorno.getInfEvento().getCStat().equals(StatusCteEnum.EVENTO_VINCULADO.getCodigo())) {
+
+ System.out.println("Erro Status:" + retorno.getInfEvento().getCStat());
+ System.out.println("Erro Motivo:" + retorno.getInfEvento().getXMotivo());
+
+ } else {
+
+ System.out.println("Status:" + retorno.getInfEvento().getCStat());
+ System.out.println("Motivo:" + retorno.getInfEvento().getXMotivo());
+ System.out.println("Data:" + retorno.getInfEvento().getDhRegEvento());
+
+ // Cria TProcEventoCTe
+ TProcEvento procEvento = new TProcEvento();
+ procEvento.setVersao(ConstantesCte.VERSAO.CTE);
+ procEvento.setEventoCTe(enviEvento);
+ procEvento.setRetEventoCTe(retorno);
+
+ System.out.println("Xml Final Cancelamento Proc: " + XmlCteUtil.objectToXml(procEvento));
+ }
+
+ } catch (CteException | JAXBException e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+ }
+}
+
Função para Gerar a Carta De Correção Eletrônica.
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_400.evCCeCTe.EvCCeCTe;
+import br.com.swconsultoria.cte.schema_400.evCCeCTe.TEvento;
+import br.com.swconsultoria.cte.schema_400.evCCeCTe.TProcEvento;
+import br.com.swconsultoria.cte.schema_400.evCCeCTe.TRetEvento;
+import br.com.swconsultoria.cte.util.ConstantesCte;
+import br.com.swconsultoria.cte.util.ObjetoCTeUtil;
+import br.com.swconsultoria.cte.util.XmlCteUtil;
+
+import javax.xml.bind.JAXBException;
+import java.time.LocalDateTime;
+
+/**
+ * @author Samuel Oliveira
+ */
+public class CCeCte {
+
+ public static void main(String[] args) {
+
+ try {
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ String chave = ""; // TODO Preencha a Chave
+ String numeroSeqEvento = "001"; // TODO Preencha o NUmero Sequencial com 2 Digitos e Zero a esquerda
+ String codigoEvento = "110110";
+ String id = "ID" + codigoEvento + chave + numeroSeqEvento;
+ String cnpj = ""; // TODO Preencha o Cnpj
+
+ TEvento enviEvento = new TEvento();
+ enviEvento.setVersao(ConstantesCte.VERSAO.CTE);
+
+ TEvento.InfEvento infoEvento = new TEvento.InfEvento();
+ infoEvento.setId(id);
+ infoEvento.setCOrgao(config.getEstado().getCodigoUF());
+ infoEvento.setTpAmb(config.getAmbiente().getCodigo());
+ infoEvento.setCNPJ(cnpj);
+ infoEvento.setChCTe(chave);
+ infoEvento.setDhEvento(XmlCteUtil.dataCte(LocalDateTime.now()));
+ infoEvento.setTpEvento(codigoEvento);
+ infoEvento.setNSeqEvento(Integer.valueOf(numeroSeqEvento).toString());
+
+ EvCCeCTe eventoCCe = new EvCCeCTe();
+ eventoCCe.setDescEvento("Carta de Correcao");
+ eventoCCe.setXCondUso("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 mudanca do emitente, tomador, remetente ou do destinatario;III - a data de emissao ou de saida.");
+
+ EvCCeCTe.InfCorrecao infCorrecao = new EvCCeCTe.InfCorrecao();
+ infCorrecao.setGrupoAlterado("enderReme"); // TODO Preencha
+ infCorrecao.setCampoAlterado("nro"); // TODO Preencha
+ infCorrecao.setValorAlterado("1234"); // TODO Preencha
+ eventoCCe.getInfCorrecao().add(infCorrecao);
+
+ TEvento.InfEvento.DetEvento detEvento = new TEvento.InfEvento.DetEvento();
+ detEvento.setVersaoEvento(ConstantesCte.VERSAO.CTE);
+ detEvento.setAny(ObjetoCTeUtil.objectToElement(eventoCCe, EvCCeCTe.class, "evCCeCTe"));
+
+ infoEvento.setDetEvento(detEvento);
+ enviEvento.setInfEvento(infoEvento);
+
+ TRetEvento retorno = Cte.cceCte(config, enviEvento, true);
+
+ if (!retorno.getInfEvento().getCStat().equals(StatusCteEnum.EVENTO_VINCULADO.getCodigo())) {
+ System.out.println("Erro Status:" + retorno.getInfEvento().getCStat());
+ System.out.println("Erro Motivo:" + retorno.getInfEvento().getXMotivo());
+ } else {
+
+ System.out.println("Status:" + retorno.getInfEvento().getCStat());
+ System.out.println("Motivo:" + retorno.getInfEvento().getXMotivo());
+ System.out.println("Data:" + retorno.getInfEvento().getDhRegEvento());
+
+ // Cria TProcEventoCTe
+ TProcEvento procEvento = new TProcEvento();
+ procEvento.setVersao(ConstantesCte.VERSAO.CTE);
+ procEvento.setEventoCTe(enviEvento);
+ procEvento.setRetEventoCTe(retorno);
+
+ System.out.println("Xml Final Carta de Correção Proc: " + XmlCteUtil.objectToXml(procEvento));
+ }
+
+ } catch (JAXBException | CteException e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+ }
+}
+
Para executar qualquer função CTe, deve-se inicializar as Configuração.
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_400.retConsStatServCTe.TRetConsStatServ;
+
+/**
+ * @author Samuel Oliveira
+ */
+public class StatusCte {
+
+ public static void main(String[] args) {
+ try {
+
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ TRetConsStatServ retorno = Cte.statusServico(config);
+
+ System.out.println("Status:" + retorno.getCStat());
+ System.out.println("Motivo:" + retorno.getXMotivo());
+ System.out.println("Data:" + retorno.getDhRecbto());
+
+ } catch (CteException | CertificadoException e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+ }
+}
+
Função para fazer a Consulta e download de Cte.
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.dom.enuns.ConsultaDFeEnum;
+import br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_100.retdistdfeint.RetDistDFeInt;
+import br.com.swconsultoria.cte.util.XmlCteUtil;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author Samuel Oliveira
+ */
+public class DistDfeCte {
+
+ public static void main(String[] args) {
+
+ try {
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ String cnpj = ""; // TODO Preencher Cnpj
+ String nsu = "000000000000000"; // TODO Preencher Nsu
+
+ RetDistDFeInt retorno = Cte.distribuicaoDfe(config, br.com.swconsultoria.cte.dom.enuns.PessoaEnum.JURIDICA, cnpj, ConsultaDFeEnum.NSU, nsu);
+ System.out.println("Status:" + retorno.getCStat());
+ System.out.println("Motivo:" + retorno.getXMotivo());
+ System.out.println("Max NSU:" + retorno.getMaxNSU());
+ System.out.println("Ult NSU:" + retorno.getUltNSU());
+
+ if (StatusCteEnum.DOC_LOCALIZADO_PARA_DESTINATARIO.equals(retorno.getCStat())) {
+
+ List<RetDistDFeInt.LoteDistDFeInt.DocZip> listaDoc = retorno.getLoteDistDFeInt().getDocZip();
+
+ System.out.println("Encontrado " + listaDoc.size() + " Notas.");
+ for (RetDistDFeInt.LoteDistDFeInt.DocZip docZip : listaDoc) {
+ System.out.println("Schema: " + docZip.getSchema());
+ System.out.println("NSU:" + docZip.getNSU());
+ System.out.println("XML: " + XmlCteUtil.gZipToXml(docZip.getValue()));
+ }
+ }
+
+ } catch (CteException | IOException e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+
+ }
+}
+
Exemplo de Como Ficaria o Envio da CT-e.
+package cte;
+
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.dom.enuns.StatusCteEnum;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_400.cte.TRetCTe;
+import br.com.swconsultoria.cte.schema_400.cte.TUFSemEX;
+import br.com.swconsultoria.cte.schema_400.cte.TUf;
+import br.com.swconsultoria.cte.schema_400.cteModalRodoviario.Rodo;
+import br.com.swconsultoria.cte.schema_400.cte.TCTe;
+import br.com.swconsultoria.cte.util.ChaveUtil;
+import br.com.swconsultoria.cte.util.ConstantesCte;
+import br.com.swconsultoria.cte.util.ObjetoCTeUtil;
+import br.com.swconsultoria.cte.util.XmlCteUtil;
+
+import java.time.LocalDateTime;
+import java.util.Random;
+
+/**
+ * @author Samuel Oliveira
+ */
+public class EnvioCte {
+
+ public static void main(String[] args) {
+
+ try {
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ String cnpj = "10732644000128"; //TODO Preencha o Cnpj
+ String modelo = "57";
+ int serie = 1;
+ int numero = 224;
+ String tipoEmissao = "1";
+ String cct = String.format("%08d", new Random().nextInt(99999999));
+
+ // Inicia As Configurações
+
+ TCTe cte = new TCTe();
+ TCTe.InfCte infCTe = new TCTe.InfCte();
+
+ // Substitua X Pela Chave
+ ChaveUtil chaveUtil = new ChaveUtil(config.getEstado(),
+ cnpj, modelo, serie, numero,
+ tipoEmissao, cct, LocalDateTime.now());
+
+ String chave = chaveUtil.getChaveCT();
+
+ infCTe.setId(chave);
+ infCTe.setVersao(ConstantesCte.VERSAO.CTE);
+
+ TCTe.InfCte.Ide ide = new TCTe.InfCte.Ide();
+ ide.setCUF(config.getEstado().getCodigoUF());
+ ide.setCCT(cct);
+ ide.setCFOP("5351");
+ ide.setNatOp("TRANSPORTE INTERNO");
+ ide.setMod(modelo);
+ ide.setSerie(String.valueOf(serie));
+ ide.setNCT(String.valueOf(numero));
+ ide.setDhEmi(XmlCteUtil.dataCte(LocalDateTime.now()));
+ ide.setTpImp("1");
+ ide.setTpEmis(tipoEmissao);
+ ide.setCDV(chaveUtil.getDigitoVerificador());
+ ide.setTpAmb(config.getAmbiente().getCodigo());
+ ide.setTpCTe("0");
+ ide.setProcEmi("0");
+ ide.setVerProc("1.0");
+ ide.setCMunEnv("5219753");
+ ide.setXMunEnv("Anapolis");
+ ide.setUFEnv(TUf.valueOf("GO"));
+ ide.setModal("01");
+ ide.setTpServ("0");
+ ide.setCMunIni("5219753");
+ ide.setXMunIni("Anapolis");
+ ide.setUFIni(TUf.valueOf("GO"));
+ ide.setCMunFim("5219753");
+ ide.setXMunFim("Anapolis");
+ ide.setUFFim(TUf.valueOf("GO"));
+ ide.setRetira("1");
+ ide.setIndIEToma("1");
+
+ TCTe.InfCte.Ide.Toma3 toma3 = new TCTe.InfCte.Ide.Toma3();
+ toma3.setToma("3");
+ ide.setToma3(toma3);
+ infCTe.setIde(ide);
+
+ TCTe.InfCte.Compl compl = new TCTe.InfCte.Compl();
+ compl.setXObs("FORMA DE PAGAMENTO DEPOSITO BANCARIO,FAVOR ENVIAR COPIA DO COMPROVANTE PARA O TRANSPORTADOR E ANEXAR VIA A DA CONTABILIDADE");
+ infCTe.setCompl(compl);
+
+ TCTe.InfCte.Emit emit = new TCTe.InfCte.Emit();
+ emit.setCNPJ(cnpj);
+ emit.setIE("104519304");
+ emit.setXNome("TRC TRANSPORTES LTDA");
+ emit.setXFant("TRC TRANSPORTES LTDA");
+ emit.setCRT("1");
+
+ br.com.swconsultoria.cte.schema_400.cte.TEndeEmi enderEmit = new br.com.swconsultoria.cte.schema_400.cte.TEndeEmi();
+ enderEmit.setXLgr("AV SANTO ANTONIO & CIA");
+ enderEmit.setNro("0");
+ enderEmit.setXCpl("QD 17 LT 01-02-03");
+ enderEmit.setXBairro("PQ STO ANTONIO");
+ enderEmit.setCMun("5219753");
+ enderEmit.setXMun("SANTO ANTONIO DO DESCOBERTO");
+ enderEmit.setUF(TUFSemEX.valueOf("GO"));
+ enderEmit.setCEP("72900000");
+ enderEmit.setFone("6233215175");
+
+ emit.setEnderEmit(enderEmit);
+ infCTe.setEmit(emit);
+
+ TCTe.InfCte.Rem rem = new TCTe.InfCte.Rem();
+ rem.setCNPJ("01241994000605");
+ rem.setIE("103255788");
+ rem.setXNome("CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
+ rem.setEmail("samuel@autocomsistemas.com.br");
+
+ br.com.swconsultoria.cte.schema_400.cte.TEndereco enderRem = new br.com.swconsultoria.cte.schema_400.cte.TEndereco();
+ enderRem.setXLgr("Rua: Teste");
+ enderRem.setNro("0");
+ enderRem.setXBairro("TESTE");
+ enderRem.setCMun("5219753");
+ enderRem.setXMun("SANTO ANTONIO DO DESCOBERTO");
+ enderRem.setUF(TUf.GO);
+ enderRem.setCEP("75120683");
+ enderRem.setCPais("1058");
+ enderRem.setXPais("Brasil");
+ rem.setEnderReme(enderRem);
+ infCTe.setRem(rem);
+
+ TCTe.InfCte.Dest dest = new TCTe.InfCte.Dest();
+ dest.setCNPJ("07826959000120");
+ dest.setIE("104024585");
+ dest.setXNome("CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
+ dest.setEmail("samuel@autocomsistemas.com.br");
+
+ br.com.swconsultoria.cte.schema_400.cte.TEndereco enderDest = new br.com.swconsultoria.cte.schema_400.cte.TEndereco();
+ enderDest.setXLgr("Rua: Teste");
+ enderDest.setNro("0");
+ enderDest.setXBairro("TESTE");
+ enderDest.setCMun("5219753");
+ enderDest.setXMun("SANTO ANTONIO DO DESCOBERTO");
+ enderDest.setUF(TUf.GO);
+ enderDest.setCEP("75120683");
+ enderDest.setCPais("1058");
+ enderDest.setXPais("Brasil");
+ dest.setEnderDest(enderDest);
+ infCTe.setDest(dest);
+
+ TCTe.InfCte.VPrest prest = new TCTe.InfCte.VPrest();
+ prest.setVTPrest("410.00");
+ prest.setVRec("410.00");
+
+ TCTe.InfCte.VPrest.Comp comp = new TCTe.InfCte.VPrest.Comp();
+ comp.setVComp("500.00");
+ comp.setXNome("TESTE");
+ prest.getComp().add(comp);
+ infCTe.setVPrest(prest);
+
+ TCTe.InfCte.Imp imp = new TCTe.InfCte.Imp();
+
+ br.com.swconsultoria.cte.schema_400.cte.TImp icms = new br.com.swconsultoria.cte.schema_400.cte.TImp();
+
+ br.com.swconsultoria.cte.schema_400.cte.TImp.ICMS45 icms45 = new br.com.swconsultoria.cte.schema_400.cte.TImp.ICMS45();
+ icms45.setCST("40");
+ icms.setICMS45(icms45);
+
+ imp.setICMS(icms);
+ infCTe.setImp(imp);
+
+ TCTe.InfCte.InfCTeNorm infCTeNorm = new TCTe.InfCte.InfCTeNorm();
+
+ TCTe.InfCte.InfCTeNorm.InfCarga infCarga = new TCTe.InfCte.InfCTeNorm.InfCarga();
+ infCarga.setVCarga("29100.00");
+ infCarga.setProPred("OLEO DIESEL");
+
+ TCTe.InfCte.InfCTeNorm.InfCarga.InfQ infQ = new TCTe.InfCte.InfCTeNorm.InfCarga.InfQ();
+ infQ.setCUnid("04");
+ infQ.setTpMed("LT");
+ infQ.setQCarga("10000.0000");
+ infCarga.getInfQ().add(infQ);
+
+ TCTe.InfCte.InfCTeNorm.InfDoc infDoc = new TCTe.InfCte.InfCTeNorm.InfDoc();
+
+ TCTe.InfCte.InfCTeNorm.InfDoc.InfNFe infNFe = new TCTe.InfCte.InfCTeNorm.InfDoc.InfNFe();
+ infNFe.setChave("52170101241994000605550030002868271002045403");
+ infDoc.getInfNFe().add(infNFe);
+
+ TCTe.InfCte.InfCTeNorm.InfModal infModal = new TCTe.InfCte.InfCTeNorm.InfModal();
+ infModal.setVersaoModal(ConstantesCte.VERSAO.CTE);
+
+ Rodo rodo = new Rodo();
+ rodo.setRNTRC("47008950");
+
+ infModal.setAny(ObjetoCTeUtil.objectToElement(rodo, Rodo.class, "rodo"));
+
+ infCTeNorm.setInfCarga(infCarga);
+ infCTeNorm.setInfDoc(infDoc);
+ infCTeNorm.setInfModal(infModal);
+
+ infCTe.setInfCTeNorm(infCTeNorm);
+ cte.setInfCte(infCTe);
+ // MOnta e Assina o XML
+ TCTe enviCTe = Cte.montaCte(config, cte, true);
+
+ //Adiciona QRCode
+ TCTe.InfCTeSupl infCTeSupl = new TCTe.InfCTeSupl();
+ infCTeSupl.setQrCodCTe(ObjetoCTeUtil.criaQRCode(
+ cte.getInfCte().getId().substring(3),
+ config));
+
+ enviCTe.setInfCTeSupl(infCTeSupl);
+
+ // Envia a Cte para a Sefaz
+ TRetCTe retorno = Cte.enviarCte(config, enviCTe);
+ if (!retorno.getCStat().equals(StatusCteEnum.AUTORIZADO.getCodigo())) {
+ throw new CteException("Status:" + retorno.getCStat() + " - Motivo:" + retorno.getXMotivo());
+ }
+
+ System.out.println("Status: " + retorno.getProtCTe().getInfProt().getCStat() + " - " + retorno.getProtCTe().getInfProt().getXMotivo());
+ System.out.println("Data: " + retorno.getProtCTe().getInfProt().getDhRecbto());
+
+
+ System.out.println("Protocolo: " + retorno.getProtCTe().getInfProt().getNProt());
+ System.out.println("XML Final: " + XmlCteUtil.criaCteProc(enviCTe, retorno.getProtCTe()));
+
+
+ } catch (Exception e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+
+
+ }
+
+}
+
Função para consultar o Status de Serviço Da Sefaz.
+import br.com.swconsultoria.cte.Cte;
+import br.com.swconsultoria.cte.dom.ConfiguracoesCte;
+import br.com.swconsultoria.cte.exception.CteException;
+import br.com.swconsultoria.cte.schema_400.retConsStatServCTe.TRetConsStatServ;
+
+/**
+ * @author Samuel Oliveira
+ */
+public class StatusCte {
+
+ public static void main(String[] args) {
+ try {
+
+ //Veja https://github.com/Samuel-Oliveira/Java_CTe/wiki/Configura%C3%A7%C3%B5es-CTe
+ ConfiguracoesCte config = ConfigTeste.iniciaConfiguracoes();
+
+ TRetConsStatServ retorno = Cte.statusServico(config);
+
+ System.out.println("Status:" + retorno.getCStat());
+ System.out.println("Motivo:" + retorno.getXMotivo());
+ System.out.println("Data:" + retorno.getDhRecbto());
+
+ } catch (CteException e) {
+ System.out.println("Erro:" + e.getMessage());
+ }
+ }
+}
+