13. Contingência DPEC OBSOLETO
13.2. Envia DPEC
13.1. Cria DPEC
« Anterior
13.3. Consulta DPEC
Próximo »

13.2. Envia DPEC

Envia DPEC

Assinatura

int EnviaDPEC(ref string DPEC, string nomeCertificado, out string DPECAssinado, out string msgRetWS, out string msgResultado, out string dhRegDPEC, out string nRegDPEC, string proxy, string usuario, string senha, string licenca)

Descrição:

Recebe um DPEC como parâmetro de entrada, valida, assina e transmite para o ambiente para o qual foi gerado.

Assinatura da DPEC

A assinatura da DPEC é realizada pela funcionalidade.

Tipo de Ambiente

A DPEC é transmitida para o tipo de ambiente que consta da tag tpAmb existente na DPEC.

Preenchimento do nomeCertificado

informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL,

1. uso de certificado digital existente no repositório MY do CSP do usuário corrente (currentuser)

É a forma de mais comum de uso, cabe ressaltar que é a única forma de uso de certificado digital do tipo A3 que a DLL oferece.
O usuário deve passar como parâmetro o campo assunto do certificado no parâmetro NomeCertificado para que a DLL localize um certificado digital com mesmo assunto no repositório MY do currentuser do equipamento.
Esta forma de uso requer a prévia instalação do certificado digital na conta do usuário do Windows (logon) que irá utilizar o certificado digital.

2. uso de certificado digital em arquivo no formato pfx

Permite o de uso de certificado digital em arquivo formato pfx.
O caminho da localização (path) do arquivo pfx deve ser passado para a DLL no formato: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "ARQUIVO|c:\certificado.pfx|senha".
Esta opção só funciona com certificado digital do tipo A1.

3. uso de certificado digital em string base64

Permite uso o arquivo do certificado digital em formato pfx convertido em uma string base64. O certificado digital em string base64 deve ser passado para a DLL no formato: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
Esta opção só funciona com certificado digital do tipo A1. É uma opção de uso que oferece maior versatilidade, pois permite o armazenamento do certificado digital em banco de dados na aplicação. É a forma mais indicada para uso em ASP.NET.

>

Parâmetros:

nome tipo fluxo descrição
DPEC string entrada informar o XML da DPEC que será transmitida, a DPEC não deve estar assinada.
NomeCertificado string entrada informar o certificado digital que será utilizado para assinatura:
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: 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".
3. 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".
(novas opções)
DPECAssinado string saída retorna o XML da DPEC assinada
msgRetWS string saída retorna a mensagem XML de resposta do WS
msgResultado string saída retorna a literal do resultado da chamada do WS
dhRegDPEC string saída retorna a data e hora de registro da DPEC.
nRegDPEC string saída retorna o número de registro da DPEC
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

Atenção:

A dhRegDPEC e o nRegDPEC devem ser impressos no DANFE.

Retorno:

O resultado da chamada do EnviaDPEC é o código numérico com os seguintes significados:

código Mensagem origem regra
5001 Erro: Falha na conexão: [mensagem do windows] (Causa provável: o certificado cliente: 1.não é ICP-Brasil; 2.fora do prazo de validade; 3.revogado; 4.certificado cliente não confiável para o Web Service acessado, contatar a SEFAZ) DLL -
5002 Erro: Falha na conexão: [mensagem do windows] (Causa provável: a cadeia de certificação do Web Service acessado ou do certificado cliente inexistente no repositório de certificados do usuário corrente do Windows) DLL -
5003 Erro: Falha na conexão: [mensagem do windows] (Causa provável: serviço inexistente, verifique se o nome do serviço da url acessada está correto no arquivo ws2.xml) DLL -
5004 Erro: Falha na conexão: [mensagem do windows] (Causa provável: método não permitido) DLL -
5005 Erro: Falha na conexão: [mensagem do windows] (Causa provável: a url não encontrada, verifique se o nome do domínio da url acessada está correto no arquivo ws2.xml) DLL -
5006 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [tempo]) DLL -
5007 Erro: Falha na conexão: [mensagem do windows] (Causa provável: mensagem maior que a permitida) DLL -
5008 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Servidor com problemas) DLL -
5009 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Serviço não implementado) DLL -
5010 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Serviço temporariamente indisponível, servidor sem recursos para atender a solicitação) DLL -
5011 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Causa provável da falha na conexão: Rede indisponível) DLL -
5012 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Versão do SOAP não suportada DLL -
5013 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Web Service não consumido, não houve nenhum retorno ou resposta) DLL -
5014 Erro: Falha na conexão: [mensagem do windows] (Causa provável: Web Service não consumido, falha desconhecida) DLL -
5015 Erro: Falha na conexão: Tempo limite de time-out alcançado [tempo ms] - [mensagem do windows] DLL -
5016 Erro: Falha na conexão: Falha da Biblioteca Criptografica: [mensagem do windows] DLL -
5017 Erro: Falha ao tratar o XML de retorno do WS: [mensagem de erro] 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âmetos inválido: [nome informado] DLL -
5408 Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS] DLL -
5501 Mensagem XML é válida DLL -
5502 Erro: tipoXML [valor informado] inválido (fora do intervalo intervalor) DLL -
5503 Erro: XML mal formado [mensagem do windows] DLL -
5504 Erro: Arquivo Schemal XML [nome arquivo Schema.xsd] não localizado na pasta [caminho da pasta]. DLL -
5505 Erro: XML não atende a especificação do Schema XML DLL -
5506 Erro: A validação da NF-e sem assinatura causa um erro de falta de assinatura que pode ser desprezado [[mensagem do windows]] DLL -
5507 Erro: XML com caracteres de identificação de codificação UTF-8 (\x0239\x0187\x0191) no início do arquivo DLL -
5508 Erro: XML com caracteres de identificação de codificação UTF-16 (BE) (\x0254\x0255) no início do arquivo DLL -
5509 Erro: XML com caracteres de identificação de codificação UTF-16 (LE) (\x0255\x0254) no início do arquivo DLL -
5510 Erro: XML com caracteres de identificação de codificação UTF-32 (BE) (\x0000\x0000\x0254\x0255) no início do arquivo DLL -
5511 Erro: XML com caracteres de identificação de codificação UTF-32 (LE) (\x0255\x0254\x0000\x0000) no início do arquivo DLL -
5512 Erro: XML com caracteres de identificação de codificação UTF-7 ((\x0043\x0047) no início do arquivo DLL -
6501 Erro: O DPEC informado como parâmetro não deve estar assinado DLL -
6502 Erro: O DPEC informado não é um XML válido [mensagem do ERRO DO WINDOWS] DLL -
6503 Erro: O CNPJ informado tem tamanho diferente de 14 - [CNPJ informado] - tamanho = [tamanho] DLL -
6504 Erro: A licença informada: [licenca] tem tamanho:[tamanho] diferente de 128 DLL -
6505 Erro: A licença informada: [licenca] não pertence ao CNPJ:[CNPJ informado] DLL -
6506 Erro: O parâmetro tipoAmbiente [valor informado] deve ser 1 ou 2 DLL -
6507 Erro: O parâmetro nomeCertificado não foi informado DLL -
6508 Erro: O XML de retorno não atende o leiaute da mensagem de retorno, Erro: [mensagem de erro] - Retorno [XML do retorno] DLL -
6509 Erro: Falha na conexão: Tempo limite de time-out alcançado [limte ms] - [tempo decorrido] DLL -
6510 Erro: Falha na conexão: Falha da Biblioteca Criptografica: [mensagem do windows] DLL -
124 DPEC recebido pelo Sistema de Contingência Eletrônica WS -
108 Serviço Paralisado Momentaneamente (curto prazo) WS B03
109 Serviço Paralisado sem Previsão WS B04
203 Rejeição: Emitente não credenciado como emissor da NF-e na UF informada WS G04
207 Rejeição: CNPJ do Emitente informado inválido (DV ou zeros) WS G02
208 Rejeição: CNPJ do Destinatário inválido WS G12
209 Rejeição: IE do Emitente informado inválido (DV ou zeros) WS G03
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
231 Rejeição: IE do emitente não vinculado ao CNPJ WS G05
238 Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente WS C03
239 Rejeição: Cabeçalho - Versão do arquivo XML não suportada WS C04
243 Rejeição: XML Mal Formado WS B02
252 Rejeição: Tipo do ambiente da DPEC é diferente do ambiente do WS WS G01
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
290 Rejeição: Certificado Assinatura inválido WS E01
291 Rejeição: Certificado Assinatura Data Validade WS E02
292 Rejeição: Certificado Assinatura sem CNPJ WS E03
293 Rejeição: Certificado Assinatura - erro Cadeia de Certificação WS E04
294 Rejeição: Certificado Assinatura revogado WS E06
295 Rejeição: Certificado Assinatura difere ICP-Brasil WS E07
296 Rejeição: Certificado Assinatura erro no acesso a LCR WS E05
297 Rejeição: Assinatura difere do calculado WS F02
298 Rejeição: Assinatura difere do padrão do Projeto WS F01
299 Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8 WS C01a
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
409 Rejeição: Cabeçalho - Falha no Schema XML WS C01
412 Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP Header WS C02
479 Rejeição: Emissor em situação irregular WS G06
480 Rejeição: CNPJ da chave de acesso diferente do CNPJ do emitente WS G07
481 Rejeição: UF da chave de acesso diferente do código da UF informada WS G08
482 Rejeição: AA da chave de acesso inválido WS G09
483 Rejeição: MM da chave de acesso inválido WS G10
484 Rejeição: DV da chave de acesso inválido WS G11
485 Rejeição: Chave de acesso já existe no cadastro de DPEC WS G13
516 Rejeição: Falha no schema XML - inexiste a tag raiz esperada para a mensagem WS D01a
517 Rejeição: Falha no schema XML - inexiste atributo versao na tag raiz da mensagem WS D02a
545 Rejeição: Falha no schema XML - versão informada na versaoDados do SOAPHeader diverge da versão da mensagem WS D01c
999 Rejeição: Erro não catalogado (mensagem) WS -

Exemplos de uso:

Visual Basic 6.0

 
Dim DPEC As String
Dim nomeCertificado As String
Dim DPECAssinado As String
Dim msgRetWS As String
Dim cStat As Integer
Dim msgResultado As String
Dim dhRegDPEC As String
Dim nRegDPEC As String
Dim proxy As String
Dim usuario As String
Dim senha As String
Dim licenca As String
 
DPEC = ""
nomeCertificado = "CN=M R M KATO ASAKURA - EPP:69621187915, OU=AC CAIXA PJ, OU=Caixa Economica Federal, O=ICP-Brasil, C=br"
 '
 ' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes
 '
 ' EXEMPLO PARA USO DE ARQUIVO PFX
 '
 'nomeCertificado = "ARQUIVO|c:\certificado.pfx|associacao"
 '
 '  onde:
 '  ARQUIVO            --> indica opção de uso de arquivo PFX
 '  c:\certificado.pfx --> nome e caminho do arquivo PFX
 '  associacao         --> senha do arquivo PFX
 '
 '
 ' EXEMPLO PARA USO DE ARQUIVO PFX EM STRING BASE64
 '
 'nomeCertificado = "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha"
 '
 '  onde:
 '  CERTIFICADO        --> indica opção de uso de arquivo PFX em base64
 '  MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy --> arquivo PFX em base64
 '  senha              --> senha do arquivo PFX
 '
DPECAssinado = ""  ' recebe o DPEC assinado que foi transmitido
cStat = 0          ' recebe a resultado da chamada da DLL
proxy = ""         ' 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 = ""       ' informar o usuário para autenticação no proxy se necessário
senha = ""         ' informar a senha de autenticação no proxy se necessário
msgRetWS = ""      ' recebe a mensagem XML de resposta do WS
msgResultado = ""  ' recebe a literal do resultado da chamada do WS
dhRegDPEC = ""     ' recebe a data e hora de registro da DPEC
nhRegDPEC = ""     ' recebe o número de registro da DPEC
licenca = ""       ' 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
'
'-----------------------------------------------------------------------------
' Carrega o conteúdo do arquivo xml em NFe
'-----------------------------------------------------------------------------

Open "c:\DPEC.xml" For Input As #1
DPEC = Input$(LOF(1), 1) 'NFe = arquivo em XML sem assinatura
Close #1
 
' instancia a DLL - late binding
'
Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
 
cStat = objNFeUtil.EnviaDPEC(DPEC, nomeCertificado, DPECAssinado, msgRetWS, msgResultado, dhRegDPEC, nRegDPEC, proxy, usuario, senha, licenca)
 
If cStat <> 124 Then
MsgBox "Ocorreu um erro ao enviar a DPEC" + vbCrLf + msgResultado, vbInformation, "Resultado"
Else
MsgBox "DPEC enviada com sucesso, " + msgResultado + vbCrLf + vbCrLf + "Número do Recibo da DPEC: " + nroRecDPEC + vbCrLf + "Data e Hora de Registro da DPEC: " + nroRecDPEC, vbInformation, "Resultado"
End If
 
Set objNFeUtil = Nothing
13.2. Envia DPEC
13. Contingência DPEC OBSOLETO
« Anterior
13.1. Cria DPEC
Próximo »
13.3. Consulta DPEC