5. Web Service da DC-e
5.1. EnviaDCe
5. Web Service da DC-e
« Anterior
5.2. Cancela DC-e
Próximo »

5.1. EnviaDCe

Envia uma DC-e de forma síncrona.

Assinatura

string EnviaDCe(string siglaWS, string DCe, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out integer cStat, out string msgResultado, out string protocolo, out string nProtocolo, out string dhProtocolo, out string DCeAssinado, string proxy, string usuario, string senha, string licenca)

Descrição:

Funcionalidade para envio síncrono da DC-e para a SEFAZ.

PONTOS DE ATENÇÃO

tipoAmbiente

A DLL utiliza o valor informado na tag tpAmb da DC-e.

Preenchimento do nomeCertificado

Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL e na assinatura digital.

Parâmetros da chamada:

nome tipo fluxo descrição
siglaWS string entrada informar "RS"
DCe string entrada informar a string com a DC-e neste parâmetro. a DC-e não deve estar assinado, pois a DLL realiza a assinatura da DC-e
nomeCertificado string entrada informar nome do titular do certificado a ser utilizado na conexão SSL com o WS e na assinatura digital da DC-e:
É permitido o uso do certificado digital que tenha o mesmo CNPJ base (oito primeiros dígitos do CNPJ) do emissor da DC-e.
1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS".
2. informar: NUMEROSERIE|[número de série] quando não seja possível localizar o certificado digital pelo assunto;
3. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha".
4. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
versao string entrada informar a versão da mensagem XML: "1.00".
msgDados string saída retorna a mensagem XML enviada para o WS.
msgRetWS string saída retorna a mensagem XML de resposta do WS
cStat int saída retorna o código do resultado do envio da DC-e, veja tabela de códigos de retorno que existe adiante.
msgResultado string saída retorna a literal do resultado da chamada do WS
protocolo string saída retorna o número do protocolo e data de autorização no formato: nnnnnnnnnnnnnnnn dd/mm/aaaa hh:mm:ss
nProtocolo string saída retorna o número do protocolo de autorização de uso da DC-e
dhProtocolo string saída retorna data e hora da autorização no formato AAAA-MM-DDTHH:HH:MMzzz
DCeAssinado string saída retorna a string com a DC-e assinada
proxy string entrada informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443'
usuario string entrada informar o usuário para autenticação no proxy se necessário
senha string entrada informar a senha de autenticação no proxy se necessário
licenca string entrada informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso


Retorno da chamada:

A chamada EnviaDCe devolve o XML do procDCe caso a DC-e tenha sido autorizado .

O resultado da chamada do EnviaDCe é devolvido no parâmetro cStat e tem os seguintes significados:

código Mensagem origem regra
5101 Erro: A mensagem de retorno do WS não é um XML válido: [mensagem de retorno] DLL -
5102 Erro: Tag cStat inexistente na mensagem de retorno [mensagem de erro] DLL -
5103 Erro: Tag xMotivo inexistente na mensagem de retorno [mensagem de erro] DLL -
5104 Erro: Tag [nome tag] inexistente na mensagem de retorno [mensagem de erro] DLL -
5105 Erro: O WS não devolveu nenhum resultado DLL -
5201 Erro: O código do tipo de ambiente [tipo de ambiente recebido pela DLL] informado diferente de 1 - produção e 2 - homologação DLL -
5202 Erro: A sigla da UF [sigla recebida pela DLL] informada é inválida DLL -
5203 Erro: Inexiste url para a UF [sigla UF] informada no ambiente [ambiente informado] desejado, verifique se existe atualização do arquivo [nome arquivo] disponível. DLL -
5204 Erro: Arquivo que contem a URL do WS não localizado em [caminho da aplicação] DLL -
5205 Erro: Ocorreu um erro inesperado no processamento da URL (URL) : [mensagem de ERRO DO WINDOWS] DLL -
5206 Erro: Ocorreu um erro de validação do XML (nome XML) : [mensagem de ERRO DO WINDOWS] DLL -
5403 Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS] DLL -
5404 Erro: Nenhum certificado digital selecionado DLL
5405 Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser] DLL -
5406 Erro: Falha no tratamento do parâmetro nome: [nome informado] DLL -
5407 Erro: Quantidade de parâmetros inválido: [nome informado] DLL -
5408 Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS] DLL -
6301 Erro: O parâmetro versao não foi informado DLL -
6302 Erro: O conteúdo do parâmetro versao informado é inválido: [valor informado], a DLL espera: [valor esperado]" DLL -
6303 Erro: O nome do titular do certificado deve ser informado DLL -
6304 Erro: O parâmetro siglaWS deve ser informado DLL -
6417 Erro: Não existe protocolo para a DC-e com chave de acesso =[chaveMDFe] no protDce: [protDce] DLL -
6418 Erro: Falha no acesso ao protDce do XML da resposta do WS [mensagem do ERRO DO WINDOWS DLL -
6419 Erro: A tag cStat não foi localizada na mensagem de retorno [mensagem do ERRO DO WINDOWS] DLL -
6420 Erro: tag xMotivo não foi localizada na mensagem de retorno [mensagem do ERRO DO WINDOWS] DLL -
6421 Erro: tag dhRecbto não localizada na mensagem de retorno [mensagem do ERRO DO WINDOWS] DLL -
6422 Erro: tag nProt não localizada na mensagem de retorno [mensagem do ERRO DO WINDOWS] DLL -
6423 Erro: da DC-e: [DigestValue] diverge do do protocolo: [digVal] da DC-e que foi autorizado! DLL -
7001 Erro: A licença não foi informada [Identificação da versão da DLL em uso] DLL -
7002 Erro: A licença informada: [valor informado] tem tamanho:[tamanho] diferente de 128 - [Identificação da versão da DLL em uso] DLL -
7003 Erro: A licença informada: [valor informado] não pertence ao CNPJ:[valor informado] [Identificação da versão da DLL em uso] DLL -
7004 Erro: A tag infDCe não foi localizada no lote, validação da licença prejudicada [Identificação da versão da DLL em uso] DLL -
7005 Erro: Atributo Id não localizada na tag infDCe, validação da licença prejudicada [Identificação da versão da DLL em uso] DLL -
7006 Erro: Atributo Id: [conteúdo do atributo ID] da tag infDCe não iniciada com a literal DCe, validação da licença prejudicada. [Identificação da versão da DLL em uso] DLL -
7007 Erro: O Tamanho [tamanho] do Atributo Id [conteúdo do atributo ID] da tag infDCe diferente de 47, validação da licença prejudicada. [Identificação da versão da DLL em uso] DLL -
100 Autorizado o uso da DC-e WS -
203 Rejeição: Emissor não habilitado para emissão da DC-e WS G036
204 Rejeição: Duplicidade de MDF-e [nRec:999999999999999] WS G040
207 Rejeição: CNPJ do emitente inválido WS G032
209 Rejeição: IE do emitente inválida WS G034
212 Rejeição: Data de emissãa DC-e posterior a data de recebimento WS G038
213 Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital WS F03
214 Rejeição: Tamanho da mensagem excedeu o limite estabelecido WS B01
215 Rejeição: Falha no schema XML WS D01
218 Rejeição: DC-e já está cancelado na base de dados da SEFAZ. WS G041
225 Rejeição: Falha no Schema XML da DC-e WS D00
226 Rejeição: Código da UF do Emitente diverge da UF autorizadora WS -
227 Rejeição: Erro na composição do Campo ID WS G005
228 Rejeição: Data de emissão muito atrasada WS -
236 Rejeição: Chave de Acesso inválida Motivo: [XXXXXXXXXXXX] WS -
243 Rejeição: XML Mal Formado WS B02
244 Rejeição: Falha na descompactação da área de dados WS B00
245 Rejeição: CNPJ Emitente não cadastrado WS G035
247 Rejeição: Sigla da UF do Emitente diverge da UF autorizadora WS G003
248 Rejeição: UF do Recibo diverge da UF autorizadora WS E02
252 Rejeição: Ambiente informado diverge do Ambiente de recebimento WS G001
253 Rejeição: Digito Verificador da chave de acesso composta inválido WS G006
280 Rejeição: Certificado Transmissor inválido WS A01
281 Rejeição: Certificado Transmissor Data Validade WS A02
282 Rejeição: Certificado Transmissor sem CNPJ WS A07
283 Rejeição: Certificado Transmissor - erro Cadeia de Certificação WS A03
284 Rejeição: Certificado Transmissor revogado WS A05
285 Rejeição: Certificado Transmissor difere ICP-Brasil WS A06
286 Rejeição: Certificado Transmissor erro no acesso a LCR WS A04
402 Rejeição: XML da área de dados com codificação diferente de UTF-8 WS D03
404 Rejeição: Uso de prefixo de namespace não permitido WS D02
410 Rejeição: UF informada no campo cUF não é atendida pelo WebService WS C03
598 Rejeicao: Usar somente o namespace padrao da DC-e WS D02
599 Rejeicao: Nao eh permitida a presenca de caracteres de edicao no inicio/fim da mensagem ou entre as tags da mensagem WS D03


Tratamento de Erro:

Caso ocorra algum erro na chamada do WS (5001-7007) ou a requisição não seja atendida pelo WS (214-999), será gravado um log na pasta log, com as seguintes informações que devem ser úteis para identificação do problema:

Os erros com código > 5000 são erros tratados pela DLL e ocorrem nas seguintes situações:

Histórico de atualização:

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>

Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplos de uso:

Visual Basic 6.0

 
' declara e instancia DLL

Dim objDCeUtil As Object
 
Set objDCeUtil = CreateObject("DCe_Util.Util")
 
' declarar parâmetros

Dim siglaWS As String
Dim DCe As String
Dim nomeCertificado As String
Dim versao As String
Dim msgDados As String
Dim msgRetWS As String
Dim cStat As Integer
Dim msgResultado As String
Dim protocolo As String
Dim nProtocolo As String
Dim dhProtocolo As String
Dim DCeAssinado As String
Dim licenca As String
Dim proxy As String
Dim usuario As String
Dim senha As String
Dim eventoDCe As String
Dim dceProc As String
 
 
' inicialização dos parâmetros

siglaWS = ""
DCe = ""
nomeCertificado = ""
versao = ""
msgDados = ""
msgRetWS = ""
cStat = 0
msgResultado = ""
protocolo = ""
nProtocolo = ""
dhProtocolo = ""
DCeAssinado = ""
licenca = ""
proxy = ""
usuario = ""
senha = ""
eventoDCe = ""
dceProc = ""
 
 
' informar os parâmetros básicos do chamada

siglaWS = "PR"
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"
versao = "1.00"
 
' informar o XML do MDFe, se for um arquivo é necessário carregar o XML no parâmetro, exemplo

Dim nomeArquivo As String  ' nome do arquivo que contem o MDFe
'
nomeArquivo = "c:\DCeSemAssinatura.xml"
 
' importante: verificar a existência do arquivo solicitado e indicar o caminho correto para ele
'
'  Carrega o conteúdo do nome do arquivo em MDFe
'
Open nomeArquivo For Input As #1
DCe = Input$(LOF(1), 1)
Close #1
 
'   envia DCe

dceProc = objDCeUtil.EnviaDCe(siglaWS, _
                               DCe, _
                               nomeCertificado, _
                               versao, _
                               msgDados, _
                               msgRetWS, _
                               cStat, _
                               msgResultado, _
                               protocolo, _
                               nProtocolo, _
                               dhProtocolo, _
                               DCeAssinado, _
                               proxy, _
                               usuario, _
                               senha, _
                               licenca)
 
'
Screen.MousePointer = vbDefault ' normal
'
' mostra mensagem XML enviada e a mensagem de retorno do WS
'
MsgBox msgResultado + Chr(13) + Chr(13) + msgDados + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado do Envio do MDFe"
'
' analisar o retorno da chamada, se cStat= 100, MDF-e autorizado gravar ou guardar o mdfeProc, gerar o DAMDFE
'
' se cStat diferente de 100, houve algum problema na chamada, necessário analisar o cStat e tomar a medida adequada.
'
5.1. EnviaDCe
5. Web Service da DC-e
« Anterior
5. Web Service da DC-e
Próximo »
5.2. Cancela DC-e