- 4. Gerar o XML da DC-e
4.12. Consolida DC-e - 4.11. QRCode
« Anterior - 5. Web Service da DC-e
Próximo »
4.12. Consolida DC-e
Funcionalidade para consolidar a DC-e
Assinatura
string DCe(string versao, string Id, string ide, string emit, string emissorDCe,string dest, string autXML_Opc, string det, string total, string transp, string infAdic_Opc, string infDec, string infDCeSupl_Opc)
Descrição:
Funcionalidade para consolidar o DC-e, compatível com a versão 1.00, é a última etapa da geração da DC-e e todos os fragmentos da DC-e devem ter sido criados.
Parâmetros:
nome | tipo | tam. | obrig. | descrição |
---|---|---|---|---|
versao | string | 1-4 | sim | informar "1.00" |
Id | string | 44 | sim | informar a chave de acesso da DC-e, recomendamos o uso da funcionalidade criaChave |
ide | string | - | sim | informar o grupo ide, com as informações de Identificação da DC-e |
emit | string | - | sim | informar o grupo emit, com as informações do Emitente da DC-e |
emissorDCe | string | - | sim | informar o grupo Dados da Transportadora emissora da DC-e |
dest | string | - | sim | informar o grupo dest com as informações do destinatário da DC-e |
autXML_Opc | string | - | não | informar o grupo autXML com as informações dos autorizados a fazer o download do documento |
det | string | - | sim | informar o grupo det com as informações das mercadorias e bens relacionadas na DC-e |
total | string | - | sim | informar o grupo tot com a informação do valor total da DC-e |
transp | string | - | sim | informar o grupo transp com a informação do transporte das mercadorias e bens acobertadas pela DC-e |
infAdic_Opc | string | - | não | informar o grupo infAdic, com as informações do Adicionais |
infDec | string | - | sim | informar o grupo infDec, com a declaração do usuário emitente da DC-e |
infDCeSupl_Opc | string | - | sim | informar o grupo infDCeSupl, com o QR-Code de consulta da DC-e. |
Diagrama:
Dica
Os campos com contorno tracejado podem ser omitidos se a operação não exigir a informação.
Retorno:
Um string com o grupo XML da DC-e
XML:
Exemplo de XML da DC-e sem assinatura digital
<DCe xmlns="http://www.portalfiscal.inf.br/dce"> <infDCe versao="1.00" Id="DCe35250510142785000190990000000000011308085037"> <ide> <cUF>35</cUF> <cDC>808503</cDC> <mod>99</mod> <serie>0</serie> <nDC>1</nDC> <dhEmi>2025-05-16T21:55:14-03:00</dhEmi> <tpEmis>1</tpEmis> <tpEmit>3</tpEmit> <nSiteAutoriz>0</nSiteAutoriz> <cDV>7</cDV> <tpAmb>2</tpAmb> <verProc>DCe_Util_v100</verProc> </ide> <emit> <CNPJ>10142785000190</CNPJ> <xNome>FlexDocs Informática Ltda</xNome> <enderEmit> <xLgr>Av. Altino Arantes</xLgr> <nro>131</nro> <xCpl>14º andar - sala 145</xCpl> <xBairro>Centro</xBairro> <cMun>3534708</cMun> <xMun>Ourinhos</xMun> <UF>SP</UF> <CEP>19900030</CEP> <cPais>1058</cPais> <xPais>Brasil</xPais> <fone>1433022000</fone> </enderEmit> </emit> <Transportadora> <CNPJ>10142785000190</CNPJ> <xNome>Ja Levo transportes Ltda</xNome> </Transportadora> <dest> <CNPJ>00000000037940</CNPJ> <xNome>Banco do Brasil S/A Ourinhos-SP</xNome> <enderDest> <xLgr>Rua Antonio Carlos Mori</xLgr> <nro>530</nro> <xBairro>Centro</xBairro> <cMun>3534708</cMun> <xMun>Ourinhos</xMun> <UF>SP</UF> <CEP>19900081</CEP> <cPais>1058</cPais> <xPais>Brasil</xPais> <fone>1433023000</fone> <email>ourinhos@bb.com.br</email> </enderDest> </dest> <autXML> <CNPJ>00000000000191</CNPJ> </autXML> <autXML> <CNPJ>00000000000272</CNPJ> </autXML> <autXML> <CPF>00000000353</CPF> </autXML> <det nItem="1"> <prod> <xProd>Calça masculina</xProd> <NCM>49</NCM> <qCom>1</qCom> <vUnCom>100.00</vUnCom> <vProd>100.00</vProd> </prod> <infAdProd>tamanho 48</infAdProd> </det> <total> <vDC>100.00</vDC> </total> <transp> <modTrans>2</modTrans> <CNPJTransp>10142785000190</CNPJTransp> </transp> <infAdic> <infAdFisco>Informacoes de Adicionais do Fisco. Operacao nao tributada.</infAdFisco> <infCpl>Teste de geração do XML do DC-e.</infCpl> </infAdic> <infDec> <xObs1>É contribuinte de ICMS qualquer pessoa física ou jurídica, que realize, com habitualidade ou em volume que caracterize intuito comercial, operações de circulação de mercadoria ou prestações de serviços de transportes interestadual e intermunicipal e de comunicação, ainda que as operações e prestações de iniciem no exterior (Lei Complementar nº 87/96, Art. 4º).</xObs1> <xObs2>Constitui crime contra a ordem tributária suprimir ou reduzir tributo, ou contribuição social e qualquer acessório: quando negar ou deixar de fornecer, quando obrigatório, nota fiscal ou documento equivalente, relativa a venda de mercadoria ou prestação de serviço, efetivamente realizada ou fornece-la em desacordo com a legislação.Sob pena de reclusão de 2(dois) e 5(cinco) anos, e multa (Lei 8.137/90, Art 1ª, V).</xObs2> </infDec> </infDCe> <infDCeSupl> <qrCodDCe><![CDATA[https://www.fazenda.pr.gov.br/dce/qrcode?chDCe=35250510142785000190990000000000011308085037&tpAmb=2]]></qrCodDCe> <urlChave>https://www.fazenda.pr.gov.br/dce/qrcode</urlChave> </infDCeSupl> </DCe>
Exemplos de uso:
Visual Basic 6.0
' declara e instancia DLL Dim objDCeUtil As Object Set objDCeUtil = CreateObject("DCe_Util.Util") Dim DCe As String Dim DCe_chave As String ' -------------------------------------------------------------------------------- ' gerar grupo ide '--------------------------------------------------------------------------------- ' declarar parâmetros Dim ide As String Dim ide_cUF As Long Dim ide_cDC As Long Dim ide_mod As Long Dim ide_serie As Long Dim ide_nDC As Long Dim ide_dhEmi As String Dim ide_tpEmis As Long Dim ide_tpEmit As Long Dim ide_nSiteAutoriz As Long Dim ide_cDV As Long Dim ide_tpAmb As Long Dim ide_verProc As String ' inicializar parâmetros ide = "" ide_cUF = 35 ' informar o código IBGE da UF do emitente ide_cDC = 0 ' informar o código numérico que compõe a chave de acesso ide_mod = 99 ' informar o modelo do documento - DC-e = 99 ide_serie = 0 ' informar a série da DC-e, informar 0 quando for série única ide_nDC = 1 ' infomar o número da DC-e ide_dhEmi = Format$(Now, "yyyy-mm-ddThh:mm:ss-03:00") ' informar a data de emissão ide_tpEmis = 1 ' informar a forma de emissão da DC-e: 1 - Normal / 9 - Contingência off-line da DC-e ide_tpEmit = 3 ' informar o tipo Emitente: 0=Fisco;1=Marketplace;2=Emissor próprio;3=Transportadora ide_nSiteAutoriz = 0 ' informar o Site Autorizador que recepcionou a DC-e ide_cDV = 0 ' informar o DV da chave de acesso da DC-e ide_tpAmb = 2 ' informar o tpAmb: 1-produção/2-homologação ide_verProc = "DCe_Util_v100" ' versão do processo de emissão utilizado ' cria chave de acesso da DC-e Dim resultado As Long Dim CNPJ As String Dim cUF, ano, mes, modelo, serie, numero, tpEmis, tpEmit, nSiteAutoriz, codigoseguranca As String Dim msgResultado As String Dim cDFe As String Dim cDV As String CNPJ = "10142785000190" 'transportadora_CNPJ cUF = Trim(Str(ide_cUF)) ano = Format(Now, "YY") mes = Format(Now, "mm") modelo = Trim(Str(ide_mod)) serie = Trim(Str(ide_serie)) numero = Trim(Str(ide_nDC)) tpEmis = Trim(Str(ide_tpEmis)) tpEmit = Trim(Str(ide_tpEmit)) nSiteAutoriz = Trim(Str(ide_nSiteAutoriz)) msgResultado = "" codigoseguranca = "segredo" ' informar uma expressão para garantir o sigilo da forma de cálculo do cDFe cDFe = "" cDV = "" chave = "" resultado = objDCeUtil.CriaChaveDCe(cUF, ano, mes, CNPJ, modelo, serie, numero, tpEmis, tpEmit, nSiteAutoriz, codigoseguranca, msgResultado, cDFe, cDV, DCe_chave) If resultado <> 5601 Then MsgBox "Ocorreu um erro ao gerar a chave de acesso " + msgResultado, vbInformation, "Resultado" Else ide_cDV = Val(cDV) ' utilizar o que foi gerado no criachaveDFe ide_cDC = Val(cDFe) ' utilizar o que foi gerado no criachaveDFe ide = objDCeUtil.ide(ide_cUF, _ ide_cDC, _ ide_mod, _ ide_serie, _ ide_nDC, _ ide_dhEmi, _ ide_tpEmis, _ ide_tpEmit, _ ide_nSiteAutoriz, _ ide_cDV, _ ide_tpAmb, _ ide_verProc) End If ' -------------------------------------------------------------------------------- ' gerar grupo emit '--------------------------------------------------------------------------------- ' declarar parâmetros Dim emit As String Dim emit_CNPJ As String Dim emit_CPF As String Dim emit_idOutros As String Dim emit_xNome As String Dim emit_xLgr As String Dim emit_nro As String Dim emit_xCpl_Opc As String Dim emit_xBairro As String Dim emit_cMun As String Dim emit_xMun As String Dim emit_UF As String Dim emit_CEP As String Dim emit_cPais As String Dim emit_xPais As String Dim emit_fone_Opc As String ' inicializar parâmetros emit = "" emit_CNPJ = "10142785000190" emit_CPF = "" emit_idOutros = "" emit_xNome = "FlexDocs Informática Ltda" emit_xLgr = "Av. Altino Arantes" emit_nro = "131" emit_xCpl_Opc = "14º andar - sala 145" emit_xBairro = "Centro" emit_cMun = "3534708" emit_xMun = "Ourinhos" emit_UF = "SP" emit_CEP = "19900030" emit_cPais = "1058" emit_xPais = "Brasil" emit_fone_Opc = "1433022000" ' gera grupo emit emit = objDCeUtil.emit(emit_CNPJ, _ emit_CPF, _ emit_idOutros, _ emit_xNome, _ emit_xLgr, _ emit_nro, _ emit_xCpl_Opc, _ emit_xBairro, _ emit_cMun, _ emit_xMun, _ emit_UF, _ emit_CEP, _ emit_cPais, _ emit_xPais, _ emit_fone_Opc) ' -------------------------------------------------------------------------------- ' gerar grupo emissorDCe '--------------------------------------------------------------------------------- ' declarar parâmetros Dim transportadora As String Dim transportadora_CNPJ As String Dim transportadora_xNome As String ' inicializar parâmetros transportadora = "" transportadora_CNPJ = "10142785000190" transportadora_xNome = "Ja Levo transportes Ltda" ' gera grupo Transportadora transportadora = objDCeUtil.transportadora(transportadora_CNPJ, _ transportadora_xNome) ' -------------------------------------------------------------------------------- ' gerar grupo dest '--------------------------------------------------------------------------------- ' declarar parâmetros Dim dest As String Dim dest_CNPJ As String Dim dest_CPF As String Dim dest_idOutros As String Dim dest_xNome As String Dim dest_xLgr As String Dim dest_nro As String Dim dest_xCpl_Opc As String Dim dest_xBairro As String Dim dest_cMun As String Dim dest_xMun As String Dim dest_UF As String Dim dest_CEP As String Dim dest_cPais As String Dim dest_xPais As String Dim dest_fone_Opc As String Dim dest_email_Opc As String ' inicializar parâmetros dest = "" dest_CNPJ = "00000000037940" dest_CPF = "" dest_idOutros = "" dest_xNome = "Banco do Brasil S/A Ourinhos-SP" dest_xLgr = "Rua Antonio Carlos Mori" dest_nro = "530" dest_xCpl_Opc = "" dest_xBairro = "Centro" dest_cMun = "3534708" dest_xMun = "Ourinhos" dest_UF = "SP" dest_CEP = "19900081" dest_cPais = "1058" dest_xPais = "Brasil" dest_fone_Opc = "1433023000" dest_email_Opc = "ourinhos@bb.com.br" ' gera grupo dest dest = objDCeUtil.dest(dest_CNPJ, _ dest_CPF, _ dest_idOutros, _ dest_xNome, _ dest_xLgr, _ dest_nro, _ dest_xCpl_Opc, _ dest_xBairro, _ dest_cMun, _ dest_xMun, _ dest_UF, _ dest_CEP, _ dest_cPais, _ dest_xPais, _ dest_fone_Opc, _ dest_email_Opc) ' -------------------------------------------------------------------------------- ' gerar grupo autXML_opc '--------------------------------------------------------------------------------- ' declarar parâmetros Dim autXML As String Dim autXML_CNPJ As String Dim autXML_CPF As String ' criação do autXML e concatenação autXML_CNPJ = "00000000000191" ' informar CNPJ autXML_CPF = "" ' ou CPF autXML = objDCeUtil.autXML(autXML_CNPJ, autXML_CPF) autXML_CNPJ = "00000000000272" ' informar CNPJ autXML_CPF = "" ' ou CPF autXML = autXML + objDCeUtil.autXML(autXML_CNPJ, autXML_CPF) autXML_CNPJ = "" ' informar CNPJ autXML_CPF = "00000000353" ' ou CPF autXML = autXML + objDCeUtil.autXML(autXML_CNPJ, autXML_CPF) ' -------------------------------------------------------------------------------- ' gerar grupo det '--------------------------------------------------------------------------------- ' declarar parâmetros Dim det As String Dim det_nItem As Integer Dim det_xProd As String Dim det_NCM As String Dim det_qCom As String Dim det_vUnCom As String Dim det_vProd As Double Dim det_infAdProd_Opc As String ' inicializar os parâmetros det_nItem = 1 det_xProd = "Calça masculina" det_NCM = "49" det_qCom = "1" det_vUnCom = "100.00" det_vProd = 100 det_infAdProd_Opc = "tamanho 48" ' ' gera grupo de detalhamento do item da DC-e ' ' string det(int nItem, string xProd, string NCM, string qCom, string vUnCom, double vProd, string infAdProd_Opc); det = objDCeUtil.det(det_nItem, _ det_xProd, _ det_NCM, _ det_qCom, _ det_vUnCom, _ det_vProd, _ det_infAdProd_Opc) ' -------------------------------------------------------------------------------- ' gerar grupo total '--------------------------------------------------------------------------------- ' declarar parâmetros Dim total As String Dim total_vDC As Double ' inicializar parâmetros total = "" total_vDC = 100 ' gera grupo Transportadora total = objDCeUtil.total(total_vDC) ' -------------------------------------------------------------------------------- ' gerar grupo transp '--------------------------------------------------------------------------------- ' declarar parâmetros Dim transp As String Dim transp_modTrans As Integer Dim transp_CNPJTransp As String ' inicializar parâmetros transp = "" transp_modTrans = "2" transp_CNPJTransp = "10142785000190" ' gera grupo Transportadora transp = objDCeUtil.transp(transp_modTrans, transp_CNPJTransp) ' -------------------------------------------------------------------------------- ' gerar grupo infAdicOpc '--------------------------------------------------------------------------------- ' declarar parâmetros Dim infAdic As String Dim infAdic_AdFisco_Opc As String Dim infAdic_infCpl_Opc As String Dim infAdic_infAdMarketplace_Opc As String Dim infAdic_infAdECT_Opc As String Dim infAdic_obsEmit_Opc As String Dim infAdic_obsFisco_Opc As String Dim infAdic_obsMarketplace_Opc As String Dim infAdic_obsECT_Opc As String ' inicializar parâmetros infAdic = "" infAdic_AdFisco_Opc = "Informacoes de Adicionais do Fisco. Operacao nao tributada." infAdic_infCpl_Opc = "Teste de geração do XML do DC-e." infAdic_infAdMarketplace_Opc = "" infAdic_infAdECT_Opc = "" infAdic_obsEmit_Opc = "" infAdic_obsFisco_Opc = "" infAdic_obsMarketplace_Opc = "" infAdic_obsECT_Opc = "" infAdic = objDCeUtil.infAdic(infAdic_AdFisco_Opc, _ infAdic_infCpl_Opc, _ infAdic_infAdMarketplace_Opc, _ infAdic_infAdECT_Opc, _ infAdic_obsEmit_Opc, _ infAdic_obsFisco_Opc, _ infAdic_obsMarketplace_Opc, _ infAdic_obsECT_Opc) ' -------------------------------------------------------------------------------- ' gerar grupo infDec '--------------------------------------------------------------------------------- ' declarar parâmetros Dim infDec As String Dim infDec_xObs1 As String Dim infDec_xObs2 As String ' inicializar parâmetros infDec = "" infDec_xObs1 = "" infDec_xObs2 = "" infDec = objDCeUtil.infDec(infDec_xObs1, _ infDec_xObs2) ' -------------------------------------------------------------------------------- ' gerar grupo infDCeSupl '--------------------------------------------------------------------------------- ' declarar parâmetros Dim infDCeSupl As String Dim infDCeSupl_urlQRCode As String Dim infDCeSupl_urlConsulta As String Dim infDCeSupl_chaveDCe As String Dim infDCeSupl_tpAmb As Long Dim infDCeSupl_CNPJ As String Dim infDCeSupl_CPF As String Dim infDCeSupl_idOutros As String Dim infDCeSupl_nomeCertificado As String Dim infDCeSupl_QRCode As String ' inicializa parâmetros infDCeSupl_urlQRCode = "https://www.fazenda.pr.gov.br/dce/qrcode" infDCeSupl_urlConsulta = "https://www.fazenda.pr.gov.br/dce/qrcode" 'infDCeSupl_chaveDCe = "35250410142785000190990010000000071086438399" infDCeSupl_chaveDCe = DCe_chave infDCeSupl_tpAmb = 2 infDCeSupl_CNPJ = "10142785000190" infDCeSupl_CPF = "" infDCeSupl_idOutros = "" infDCeSupl_nomeCertificado = "CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR" infDCeSupl_QRCode = "" resultado = 0 msgResultado = "" ' infDCeSupl = objDCeUtil.infDCeSupl(infDCeSupl_urlQRCode, _ infDCeSupl_urlConsulta, _ infDCeSupl_chaveDCe, _ infDCeSupl_tpAmb, _ infDCeSupl_CNPJ, _ infDCeSupl_CPF, _ infDCeSupl_idOutros, _ infDCeSupl_nomeCertificado, _ infDCeSupl_QRCode, _ resultado, _ msgResultado) ' -------------------------------------------------------------------------------- ' Consolidar '--------------------------------------------------------------------------------- DCe = objDCeUtil.DCe("1.00", _ DCe_chave, _ ide, _ emit, _ transportadora, _ dest, _ det, _ autXML, _ total, _ transp, _ infAdic, _ infDec, _ infDCeSupl) MsgBox DCe, vbInformation, "Informação" Open "C:\XMLDCe001.xml" For Output As #1 Print #1, DCe Close #1
- 4.12. Consolida DC-e
4. Gerar o XML da DC-e - « Anterior
4.11. QRCode - Próximo »
5. Web Service da DC-e