Cancelamento de NF-e

Olá, como podemos lhe ajudar?
< Todos tópicos
Print

Cancelamento de NF-e

Assinatura

string CancelaNFEvento(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, ref string msgDados, out string msgRetWS, out int cStat, out string msgResultado, string chaveNFe, string nProtocolo, string justificativa, string dhEvento, out string nProtocoloCanc, out string dProtocoloCanc, string proxy, string usuario, string senha, string licenca)

Descrição:

Funcionalidade para Cancelamento de NF-e como Evento.

Os principais parâmetros de cancelamento são:

  • chave de acesso da NF-e;
  • número do protocolo de autorização de uso da NF-e;
  • justificativa do cancelamento com pelo menos 15 caracteres;
  • data e hora do Evento;

Condições para Cancelamento

NF-e autorizada, o usuário deve utilizar a inutilização de numeração se a NF-e não estiver autorizada;

NF-e autorizada em até 24 horas, o prazo máximo é de até 2 horas em MT;

Possuir o número do protocolo de autorização de uso;

A mercadoria não pode ter circulado;

A NF-e não pode ter registro de passagem na fiscalização de trânsito;

A NF-e não pode ter a confirmação de recebimento, emissão de CT-e, MDF-e;

Prazo de cancelamento

Em até 24 horas da autorização de uso da NF-e objeto do cancelamento, no MT o prazo de cancelamento é de 2 horas da autorização de uso. Algumas UF poderão aceitar o pedido de cancelamento após a expiração do prazo de 24 horas, mas o cancelamento vai constar como efetuado com atraso e estará sujeito a aplicação de multa. Algumas UF orientam o emissor para emitir uma NF-e de “estorno” para anular a operação, consulte o contador para obter a orientação adequado quando perder o prazo de cancelamento.

Em algumas UF, é possível efetivar o cancelamento extemporâneo em algumas situações, consulte a SEFAZ ou o contador.

Número do Protocolo de Autorização de Uso

Alguns usuários confundem o número do recibo do envio do lote com o número da autorização de uso e não conseguem cancelar a NF-e.

A identificação do WS de acessado será informada no parâmetro siglaWS.

PREENCHIMENTO DA siglaWS PARA ESCOLHA DO WEBSERVICE

SVAN, caso a UF seja usuária da SEFAZ Virtual do Ambiente Nacional (MA);

SVRS, caso a UF seja usuária da SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, ES, PA, PB, PI, RJ, RN, RO, RR, SC, SE e TO);

sigla da UF, caso a UF tenha aplicação própria (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP);

PRENCHIMENTO DO nomeCertificado

Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL, formas possíveis:

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 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:

nometipofluxodescrição
siglaWSstringentradainformar a sigla do WS desejado, veja Tabela de siglaWS
tipoAmbienteinteiroentradainformar o código do ambiente desejado: 1- produção ou 2-homologação
NomeCertificadostringentradainformar 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”.
versaostringentradainformar a versão do Evento: 4.00.
msgDadosstringsaídaretorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS.
msgRetWSstringsaídaretorna a mensagem XML de resposta do WS
cStatinteirosaídaretorna o resultado da chamada do WS.
msgResultadostringsaídaretorna a literal do resultado da chamada do WS
chaveNFestringentradainformar a chave de acesso da NF-e objeto do cancelamento
nProtocolostringentradainformar o número do protocolo de autorização de uso da NF-e objeto do cancelamento
justificativastringentradainformar a justificativa do cancelamento com pelo menos 15 caracteres
dhEventostringentradainformar a data e hora do evento de cancelamento no formato “AAAA-MM-DD HH:MM:SS”.
Ex. Delphi: FormatDateTime(‘yyyy-mm-dd “” hh:mm:ss’, Now);
VB: Format$(Now, “yyyy-mm-dd HH:mm:ss”)
Se a data e hora informada for maior que a data do WS vai ocorrer o erro 578, veja o retorno do WS e verifique se o horário do equipamento está sincronizado com o horário do WS.
A data e hora é convertida em formato UTC – Universal Time Zone (representação do horário que considera o fuso em relação ao horário UTC), assim como existe a validação de schema XML para a data e hora, se o fuso horário do equipamento estiver com uma configuração que não seja a brasileira ocorrerá falha de schema XML.
A DLL irá pegar a data e hora do equipamento se o conteúdo for omitido.
nProtocoloCancstringsaídaretorna o número do protocolo da homologação do cancelamento da NF-e
dProtocoloCancstringsaídaretorna a data e hora da homologação do cancelamento da NF-e pela SEFAZ.
proxystringentradainformar ‘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’
usuariostringentradainformar o usuário para autenticação no proxy, se necessário
senhastringentradainformar a senha de autenticação no proxy, se necessário
licencastringentradainformar 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, para maiores detalhes veja as condições de uso

Retorno da chamada:

O resultado da chamada do CancelaEvento é a mensagem XML composta pelo Evento pedido de cancelamento e respectivo protocolo de registro do evento do cancelamento da NF-e se o Evento de Cancelamento for registrado e vinculado na NF-e (cStat=135 ou cStat=155).

<?xml version="1.0" encoding="UTF-8"?>
<envEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
  <idLote>00000002311801</idLote>
  <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <infEvento Id="ID1101113512081014278500019055001000000023118453497301">
      <cOrgao>35</cOrgao>
      <tpAmb>2</tpAmb>
      <CNPJ>10142785000190</CNPJ>
      <chNFe>35120810142785000190550010000000231184534973</chNFe>
      <dhEvento>2012-08-18T20:26:58-03:00</dhEvento>
      <tpEvento>110111</tpEvento>
      <nSeqEvento>1</nSeqEvento>
      <verEvento>1.00</verEvento>
      <detEvento versao="1.00">
        <descEvento>Cancelamento</descEvento>
        <nProt>135120005426259</nProt>
        <xJust>Teste de Cancelamento como Evento</xJust>
      </detEvento>
    </infEvento>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
        <Reference URI="#ID1101113512081014278500019055001000000023118453497301">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
          </Transforms>
          <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <DigestValue>ltctExluD0Od3kxNimxSQTgKkAQ=</DigestValue>
        </Reference>
      </SignedInfo>
      <SignatureValue>iorN1e//LP/fKzwJtmxkh4fvZjafKkd4qU(...)eG3PPUC3p7B6/9g1f3d599XTO62JsQEU=</SignatureValue>
      <KeyInfo>
        <X509Data>
          <X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv0XRoW(...)ED6q4AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate>
        </X509Data>
      </KeyInfo>
    </Signature>
  </evento>
códigoMensagemorigemregra
5001Erro: Falha na conexão: [MENSAGEM DE ERRO 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
5002Erro: Falha na conexão: [MENSAGEM DE ERRO 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
5003Erro: Falha na conexão: [MENSAGEM DE ERRO 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
5004Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido)DLL
5005Erro: Falha na conexão: [MENSAGEM DE ERRO 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
5006Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [{1:0}])DLL
5007Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida)DLL
5008Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas)DLL
5009Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado)DLL
5010Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço temporariamente indisponível, servidor sem recursos para atender a solicitação)DLL
5011Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível)DLL
5012Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportadaDLL
5013Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, não houve nenhum retorno ou resposta)DLL
5014Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida)DLL
5015Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] – [MENSAGEM DE ERRO DO WINDOWS]DLL
5016Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS]DLL
5017Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS]DLL
5101Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS]DLL
5102Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5103Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5104Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5105Erro: O WS não devolveu nenhum resultadoDLL
5201Erro: O código do tipo de ambiente [CODIGO RECEBIDO PELA DLL] informado diferente de 1 – produção e 2 – homologaçãoDLL
5202Erro: A sigla da UF [SIGLA RECEBIDA PELA DLL] informada é inválidaDLL
5203Erro: Inexiste url para a UF [SIGLA UF] informada no ambiente [AMBIENTE] desejado, verifique se existe atualização do arquivo [NOME ARQUIVO] disponível.DLL
5204Erro: Arquivo que contem a URL do WS não localizado em [CAMINHO DA APLICACAO]DLL
5205Erro: Ocorreu um erro inesperado no processamento da URL (NOME URL) : [MENSAGEM DE ERRO DO WINDOWS]DLL
5206Erro: Ocorreu um erro de validação do XML (NOME XML) : [MENSAGEM DE ERRO DO WINDOWS]DLL
5403Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS]DLL
5404Erro: Nenhum certificado digital selecionadoDLL
5405Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser]DLL
5406Erro: Falha no tratamento do parâmetro nome: [nome informado]DLL
5407Erro: Quantidade de parâmetos inválido: [nome informado]DLL
5408Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS]DLL
6101Erro: O parâmetro versao não foi informadoDLL
6102Erro: O conteúdo do parâmetro sigla da UF: [CONTEÚDO] é inválidoDLL
6103Erro: O conteúdo do parâmetro versao informado é inválido: [CONTEUDO]DLL
6104Erro: O parâmetro chaveNFe não informadoDLL
6105Erro: O tamanho [TAMANHO DO PARAMETRO] do parâmetro chaveNFe informado não tem 44 caracteresDLL
6106Erro: As posições correspondentes (1,2) ao código da UF [POSIÇÃO DA CHAVE] do parâmetro chaveNFe não é um código de UF válidoDLL
6107Erro: A chave de acesso deve ter 44 posições: [POSIÇÃO DA CHAVE]DLL
6108Erro: O conteúdo do parâmetro número do protocolo: [NÚMERO DO PROTOCOLO] deve ter 15 posiçõesDLL
6109Erro: O conteúdo do parâmetro justificativa: [JUSTIFICATIVA] deve ter pelo menos 15 posiçõesDLL
6110Erro: O nome do titular do certificado deve ser informadoDLL
6120Erro: O parâmetro chave de acesso deve ser informadoDLL
6122Erro: O parâmetro justificativa deve ter se informadoDLL
6123Erro: O parâmetro tipoAmbiente deve ser informadoDLL
6124Erro: O parâmetro tipoAmbiente [CONTEUDO] deve ser 1 ou 2DLL
6141Erro: O parâmetro siglaWS deve ser informadoDLL
7001Erro: A licença não foi informadaDLL
7002Erro: A licença informada: [CONTEUDO] tem tamanho:[TAMANHO] diferente de 128DLL
7003Erro: A licença informada: [CONTEUDO] não pertence ao CNPJ:[TAMANHO]DLL
135Evento registrado e vinculado a NF-eWS
155Evento registrado fora do prazo e vinculado a NF-eWS
108Serviço Paralisado Momentaneamente (curto prazo)WSB03
109Serviço Paralisado sem PrevisãoWSB04
203Rejeição: Emissor não habilitado para emissão da NF-eWSH04
205Rejeição: NF-e está denegada na base de dados da SEFAZWSH08
213Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado DigitalWSF03
214Rejeição: Tamanho da mensagem excedeu o limite estabelecidoWSB01
215Rejeição: Falha no schema XMLWSD01
216Rejeição: Chave de Acesso é diferente do existente no BDWSH07
217Rejeição: NF-e não consta na base de dados da SEFAZWSH06
219Rejeição: Circulação da NF-e verificadaWSH13
220Rejeição: NF-e autorizada há mais de 24 horasWSH10
221Rejeição: Confirmado o recebimento da NF-e pelo destinatárioWSH12
222Rejeição: Protocolo de Autorização de Uso difere do cadastradoWSH11
236Rejeição: Chave de Acesso com dígito verificador inválidoWSH03
238Rejeição: Cabeçalho – Versão do arquivo XML superior a Versão vigenteWSC05
239Rejeição: Cabeçalho – Versão do arquivo XML não suportadaWSC06
240Rejeição: Cancelamento/Inutilização – Irregularidade Fiscal do EmitenteWSH05
242Rejeição: Cabeçalho – Falha no Schema XMLWSC01
243Rejeição: XML Mal FormadoWSB02
249Rejeição: UF da Chave de Acesso diverge da UF autorizadoraWSH02
252Rejeição: Ambiente informado diverge do Ambiente de recebimentoWSH01
266Rejeição: Na autorização pela SEFAZ Autorizada: não aceitar série diferente de 0-899WSH02a
280Rejeição: Certificado Transmissor inválidoWSA01
281Rejeição: Certificado Transmissor Data ValidadeWSA02
282Rejeição: Certificado Transmissor sem CNPJWSA07
283Rejeição: Certificado Transmissor – erro Cadeia de CertificaçãoWSA03
284Rejeição: Certificado Transmissor revogadoWSA05
285Rejeição: Certificado Transmissor difere ICP-BrasilWSA06
286Rejeição: Certificado Transmissor erro no acesso a LCRWSA04
290Rejeição: Certificado Assinatura inválidoWSE01
291Rejeição: Certificado Assinatura Data ValidadeWSE02
292Rejeição: Certificado Assinatura sem CNPJWSE03
293Rejeição: Certificado Assinatura – erro Cadeia de CertificaçãoWSE04
294Rejeição: Certificado Assinatura revogadoWSE06
295Rejeição: Certificado Assinatura difere ICP-BrasilWSE07
296Rejeição: Certificado Assinatura erro no acesso a LCRWSE05
297Rejeição: Assinatura difere do calculadoWSF02
298Rejeição: Assinatura difere do padrão do ProjetoWSF01
299Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8WSC01a
402Rejeição: XML da área de dados com codificação diferente de UTF-8WSD03
404Rejeição: Uso de prefixo de namespace não permitidoWSD02
409Rejeição: Campo cUF inexistente no elemento nfeCabecMsg do SOAP HeaderWSC02
410Rejeição: UF informada no campo cUF não é atendida pelo Web ServiceWSC03
411Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP HeaderWSC04
420Rejeição: Cancelamento para NF-e já canceladaWSH09
489Rejeição: CNPJ informado inválido (DV ou zeros)WSG03
490Rejeição: CPF informado inválido (DV ou zeros)WSG04
491Rejeição: O tpEvento informado inválidoWSD04
492Rejeição: O verEvento informado inválidoWSD05
493Rejeição: detEvento não atende o Schema XML específicoWSD06
494Rejeição: Chave de Acesso inexistenteWSG06
501Rejeição: NF-e autorizada há mais de 30 dias (720 horas)WSGA02
502Rejeição: Erro na Chave de Acesso – Campo Id não corresponde à concatenação dos campos correspondentesWSH02c
516Rejeição: Falha no schema XML – inexiste a tag raiz esperada para a mensagemWSD01a
517Rejeição: Falha no schema XML – inexiste atributo versao na tag raiz da mensagemWSD01b
545Rejeição: Falha no schema XML – versão informada na versaoDados do SOAPHeader diverge da versão da mensagemWSD01c
561Rejeição: Mês de Emissão informado na Chave de Acesso difere do Mês de Emissão da NFeWSH07a
572Rejeição: Erro Atributo ID do evento não corresponde a concatenação dos campos (“ID” + tpEvento + chNFe + nSeqEvento)WSG05
573Rejeição: Duplicidade de EventoWSG07
574Rejeição: O autor do evento diverge do emissor da NF-eWSG08
575Rejeição: O autor do evento diverge do destinatário da NF-eWSG09
576Rejeição: O autor do evento não é um órgão autorizado a gerar o eventoWSG10
577Rejeição: A data do evento não pode ser menor que a data de emissão da NF-eWSG11
578Rejeição: A data do evento não pode ser maior que a data do processamentoWSG12
579Rejeição: A data do evento não pode ser menor que a data de autorização para NF-e não emitida em contingênciaWSG13
580Rejeição: O evento exige uma NF-e autorizadaWSGA01
587Rejeição: Usar somente o namespace padrão da NF-eWSD01d
588Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagemWSD01e
594Rejeição: O número de seqüencia do evento informado é maior que o permitidoWSG03
613Rejeição: Chave de acesso difere da existente em BDWSH07b
999Rejeição: Erro não catalogado (mensagem)WS

Tratamento de Erro:

Caso ocorra algum erro na chamada do WS (5001-6141) 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:

  • Timestamp – data e hora da ocorrência do erro
  • WS – nome do WS acessado
  • URL – URL do WS acessado
  • ambiente – código do ambiente
  • certificado – nome do titular (assunto) do certificado digital utilizado
  • erro – código e descrição do erro
  • msgDados – mensagem enviada ao WS
  • msgRetWS – conteúdo do retorno do WS

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

  • 5001 – 5017 – falha na tentativa de consumir o WS (problema de conexão/rede)
  • 5101 – 5105 – falha no tratamento do XML de resposta do WS (problema na resposta do WS)
  • 5201 – 5206 – falha na recuperação da URL do WS desejado (problema no arquivo de configuração da URL)
  • 5403 – 5408 – falha no acesso ao certificado digital
  • 6101 – 6141 – falha no tratamento dos parâmetros da chamada da DLL
  • 7001 – 7003 – falha na validação da licença

Mensagens XML

Pedido de Cancelamento de NF-e

<?xml version="1.0" encoding="UTF-8"?>
<envEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
  <idLote>00000002311801</idLote>
  <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <infEvento Id="ID1101113512081014278500019055001000000023118453497301">
      <cOrgao>35</cOrgao>
      <tpAmb>2</tpAmb>
      <CNPJ>10142785000190</CNPJ>
      <chNFe>35120810142785000190550010000000231184534973</chNFe>
      <dhEvento>2012-08-18T20:26:58-03:00</dhEvento>
      <tpEvento>110111</tpEvento>
      <nSeqEvento>1</nSeqEvento>
      <verEvento>1.00</verEvento>
      <detEvento versao="1.00">
        <descEvento>Cancelamento</descEvento>
        <nProt>135120005426259</nProt>
        <xJust>Teste de Cancelamento como Evento</xJust>
      </detEvento>
    </infEvento>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
        <Reference URI="#ID1101113512081014278500019055001000000023118453497301">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
          </Transforms>
          <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <DigestValue>ltctExluD0Od3kxNimxSQTgKkAQ=</DigestValue>
        </Reference>
      </SignedInfo>
      <SignatureValue>iorN1e//LP/fKzwJtmxkh4fvZjafKkd4qU(...)eG3PPUC3p7B6/9g1f3d599XTO62JsQEU=</SignatureValue>
      <KeyInfo>
        <X509Data>
          <X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv0XRoW(...)ED6q4AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate>
        </X509Data>
      </KeyInfo>
    </Signature>
  </evento>

Resposta do WS – cStat = 135 – Evento registrado e vinculado a NF-e – (cancelamento registrado)

<?xml version="1.0" encoding="UTF-8"?>
<retEnvEvento versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe">
  <idLote>00000002311801</idLote>
  <tpAmb>2</tpAmb>
  <verAplic>SP_EVENTOS_PL_100</verAplic>
  <cOrgao>35</cOrgao>
  <cStat>128</cStat>
  <xMotivo>Lote de Evento Processado</xMotivo>
  <retEvento versao="1.00">
    <infEvento>
      <tpAmb>2</tpAmb>
      <verAplic>SP_EVENTOS_PL_100</verAplic>
      <cOrgao>35</cOrgao>
      <cStat>135</cStat>
      <xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
      <chNFe>35120810142785000190550010000000231184534973</chNFe>
      <tpEvento>110111</tpEvento>
      <xEvento>Cancelamento registrado</xEvento>
      <nSeqEvento>1</nSeqEvento>
      <CNPJDest>00000000000191</CNPJDest>
      <emailDest>contato@bb.com.br</emailDest>
      <dhRegEvento>2012-08-18T20:32:05-03:00</dhRegEvento>
      <nProt>135120005426267</nProt>
    </infEvento>
  </retEvento>
</retEnvEvento>

procEventoNFe – estrutura de evento de cancelamento de NF-e registrado

<?xml version="1.0" encoding="UTF-8"?>
<procEventoNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
      <infEvento Id="ID1101113512081014278500019055001000000023118453497301">
        <cOrgao>35</cOrgao>
        <tpAmb>2</tpAmb>
        <CNPJ>10142785000190</CNPJ>
        <chNFe>35120810142785000190550010000000231184534973</chNFe>
        <dhEvento>2012-08-18T20:26:58-03:00</dhEvento>
        <tpEvento>110111</tpEvento>
        <nSeqEvento>1</nSeqEvento>
        <verEvento>1.00</verEvento>
        <detEvento versao="1.00">
          <descEvento>Cancelamento</descEvento>
          <nProt>135120005426259</nProt>
          <xJust>Teste de Cancelamento como Evento</xJust>
        </detEvento>
      </infEvento>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
          <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
          <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
          <Reference URI="#ID1101113512081014278500019055001000000023118453497301">
            <Transforms>
              <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
              <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
            </Transforms>
            <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <DigestValue>ltctExluD0Od3kxNimxSQTgKkAQ=</DigestValue>
          </Reference>
        </SignedInfo>
        <SignatureValue>iorN1e//LP/fKzwJtmxkh4fvZjafK(...)7B6/9g1f3d599XTO62JsQEU=</SignatureValue>
        <KeyInfo>
          <X509Data>
            <X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv(...)AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate>
          </X509Data>
        </KeyInfo>
      </Signature>
    </evento>
    <retEvento versao="1.00">
      <infEvento>
        <tpAmb>2</tpAmb>
        <verAplic>SP_EVENTOS_PL_100</verAplic>
        <cOrgao>35</cOrgao>
        <cStat>135</cStat>
        <xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
        <chNFe>35120810142785000190550010000000231184534973</chNFe>
        <tpEvento>110111</tpEvento>
        <xEvento>Cancelamento registrado</xEvento>
        <nSeqEvento>1</nSeqEvento>
        <CNPJDest>00000000000191</CNPJDest>
        <emailDest>contato@bb.com.br</emailDest>
        <dhRegEvento>2012-08-18T20:32:05-03:00</dhRegEvento>
        <nProt>135120005426267</nProt>
      </infEvento>
    </retEvento>
  </procEventoNFe>

Exemplos de uso:

VB 6.0

' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL
'
Dim msgDados As String ' retorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS
Dim msgRetWS As String ' retorna a mensagem XML de resposta do WS
Dim msgResultado As String ' retorna a literal do resultado da chamada do WS
Dim siglaWS As String ' informar a sigla do WS que deseja consultar, informar SVAN - SEFAZ Virtual do Ambiente Nacional (MA, PA e PI) ou SVRS - SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, ES, PB, RJ, RN, RO, RR, SC, SE e TO), caso a UF seja usuário da SEFAZ Virtual, em caso contrário informar a sigla da UF (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP). Em caso de contingência SCAN, informar a sigla SCAN
Dim nomeCertificado As String ' informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
'
' 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
'
Dim tipoAmbiente As Integer ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação
Dim versao As String ' informar a versão da mensagem do pedido: 1.00 - cancelamento como evento'
' Informações da NF-e a ser cancelada
'
Dim chaveNFe As String ' informar a chave de acesso da NF-e objeto do cancelamento
Dim nProtocolo As String ' informar o número do protocolo de autorização de uso da NF-e objeto do cancelamento
Dim justificativa As String ' informar a justificativa do cancelamento com pelo menos 15 caracteres
Dim dhEvento As String ' informar a data e hora do pedido de cancelamento, a DLL pega a data e hora do sistema se for informado vazio ""
'
' Retorno da DLL
'
Dim cStat As Long ' retorna o resultado da chamada do WS
Dim nProtocoloCanc As String ' retorna o número do protocolo da homologação do cancelamento da NF-e
Dim dProtocoloCanc As String ' retorna a data e hora da homologação do cancelamento da NF-e pela SEFAZ
Dim procCancNFe As String ' retorna protocolo de homologação de cancelamento da NF-e gerada de acordo com o leiaute de distribuição de Cancelamento de NF-e
'
' As variáveis do proxy devem ser informadas se necessário
'
' proxy deve ser informado com o endereço da url : porta, ex: 192.168.15.1:443
'
Dim proxy As String ' 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'
Dim usuario As String ' informar o usuário para autenticação no proxy, se necessário
Dim senha As String ' informar a senha de autenticação no proxy, se necessário
'
' chave da licença de uso, vinculado ao CNPJ do emissor
'
Dim licenca As String ' 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
'
' IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicialiazadas
'
'
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
msgDados = "" ' retorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS
msgRetWS = "" ' retorna a mensagem XML de resposta do WS
'
'
'
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
'
' prepara variáveis
'
nomeCertificado = "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes
siglaWS = "SVRS" ' informar a sigla do WS que deseja consultar, informar SVAN - SEFAZ Virtual do Ambiente Nacional (MA, PA e PI) ou SVRS - SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, ES, PB, RJ, RN, RO, RR, SC, SE e TO), caso a UF seja usuário da SEFAZ Virtual, em caso contrário informar a sigla da UF (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP). Em caso de contingência SCAN, informar a sigla SCAN
siglaUF = "RJ" ' sigla da UF
tipoAmbiente = 2 ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação
versao = "1.00"  ' informar a versão da mensagem do WS
                 ' 1.00 (Cancelamento por Evento) - uso obrigatório após 01/12/2012
chaveNFe = "33100700000000000191550011234567891876543210" ' informar a chave de acesso da NF-e objeto do cancelamento
nProtocolo = "133100021635462" ' informar o número do protocolo de autorização de uso da NF-e objeto do cancelamento
justificativa = "Nota fiscal emitida com valor incorreto" ' informar a justificativa do cancelamento com pelo menos 15 caracteres
dhEvento = Format$(Now, "yyyy-mm-dd HH:mm:ss")   ' pode ser  informado com "" para a DLL pegar a data e hora do equipamento, mas podem ocorrer rejeição se o horário não estiver sincronizado com o WS
'
' Retorno da DLL
'
cStat = 0 ' retorna o resultado da chamada do WS
nProtocoloCanc = "" ' retorna o número do protocolo da homologação do cancelamento da NF-e
dProtocoloCanc = "" ' retorna a data e hora da homologação do cancelamento da NF-e pela SEFAZ
procCancNFe = "" ' retorna protocolo de homologação de cancelamento da NF-e gerada de acordo com o leiaute de distribuição de Cancelamento de NF-e
'
Dim objNFeUtil As NFe_Util_2G.Util
'
' instancia a DLL
'
Set objNFeUtil = New NFe_Util_2G.Util
'
'
Screen.MousePointer = vbHourglass ' ampulheta
'
procCancNFe = objNFeUtil.CancelaNFEvento(siglaWS, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, chaveNFe, nProtocolo, justificativa, dhEvento,  nProtocoloCanc, dProtocoloCanc, proxy, usuario, senha, licenca)
'
'
Screen.MousePointer = vbDefault ' normal
'
' analisar o retorno do WS, se cStat:
'
'     135 - Evento registrado e vinculado a NF-e (cancelamento de NF-e homologado)
'     155 - Evento registrado e vinculado a NF-e fora de prazo (a SEFAZ deve criar um cStat para Evento recebido fora do prazo);
'
'
'     procure guardar o msgDados, msgRetWS e msgResultado, pois eles serão úteis para identificação do problemas.
'
'
' mostra mensagem XML enviada
'
MsgBox msgDados, vbInformation, "Mensagem XML do Pedido de Cancelamento de NF-e"
'
' mostra mensagem XML da mensagem de retorno do WS
'
MsgBox msgResultado + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado da chamada do Web Service"

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
How can we improve this article?
Please submit the reason for your vote so that we can improve the article.
Anterior Ator Interessado
Próxima Carta de Correção
Sumário