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:

DiagramaDCe

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