Eventos

PROC003 - Cancelar DC-e


logosoften1.png

Projeto/Sistema:
DC-e GerencieAqui
Versão do Template:
1.2
Processo:
Cancelar DC-e
Versão do Documento:
1.0
Responsável(eis): 
Daniela Taino

Data: 

28/04/2026

 
1. Introdução

      Essa documentação visa descrever o processo de cancelamento de uma DC-e.

2. Processos

Processo

Envolvidos

Dados de Entrada

Dados de Saída

PROC001 - Listagem de DC-e   Listagem dos DC-e lançados

 

PROC002 - Novo DC-e -

Novos DC-e ou edição de DC-e já lançados

DC-e cadastrado ou alterado

PROC002 - Cancelar DC-e  

DC-e autorizado

DC-e cancelado

Processos Relacionados


PROC002 - Novo DC-e

Especificação Funcional


PROC003 Cancelar DC-e

Protótipo de Tela:

 

image-1777420044424.png

Imagem I - Dialog de cancelamento de DC-e

 

Descrição dos Campos:

Campo

Tipo

Tamanho

Obrig. ?

Máscara

Observações

Justificativa

Texto

255

Sim

-

-

Enviar Cancelamento

Botão

 

 

 

 

Seq

Column Header

-

-

-

Possibiilidade de ordenação ASC ou DESC 

Correção

Column Header

-

-

 -

Possibiilidade de ordenação ASC ou DESC  

Status

Column Header 

-

-

Possibiilidade de ordenação ASC ou DESC . Opções disponíveis: AUTORIZADO ou ERRO

Menu

Column Header

-

-

-

A escolher entre:
Emitir PDF, Baixar XML e Excluir

 
Regras de Interface:

1. Justificativa: conforme e justificativa for sendo preenchida, a quantidade de caracteres restantes deve ser subtraida. 
2. Enviar cancelamento: o padrão deve estar desabilitado, por padrão. Deve ser habilitado se, e somente se, 15 ou mais caracteres forem preenchidos na justificativa de cancelamento. 
3. Status: o status deverá seguir as cores padrão do sistema: "AUTORIZADO" (verde) ou "ERRO" (vermelho),  partir dos valores do bit "autorizado" na tabela. O tooltip do status deve ser exibido de acordo com o conteúdo da coluna "situacao". 
4. Menu:

image-1777421265154.png 

Imagem II - Referência para comprovante de cancelamento da DC-e.

5. A paginação deve ocorrer a partir de 3 eventos enviados (a autorização acontece só para um, mas o usuário pode tentar o envio várias vezes).

Regras de Negócio:

1. Enviar cancelamento: o clique no botão deve realizar a montagem do XML descrito em Anexo I - Exemplos de XML (cancelamento e retorno) e realizar o envio para o WS DCeRecepcaoEvento, de acordo com o ambiente configurado:

Ambiente de Produção
Serviço Versão URL
DCeRecepcaoEvento 1.00 https://dce.fazenda.pr.gov.br/dce/DCeRecepcaoEvento?wsdl

 

Ambiente de Homologação
Serviço Versão URL
DCeRecepcaoEvento 1.00 https://dce.fazenda.pr.gov.br/dce/DCeRecepcaoEvento?wsdl


2. Caso o retorno do WS seja "101 - Cancelamento de DCe Homologado" o bit "autorizado" deve ser marcado como verdadeiro no banco de dados e na coluna "situacao" deve ser inserido o texto Cancelamento de DCe Homologado. Em caso de erro (situação diferente de 101), o motivo do erro deve ser inserido na coluna "situacao" e o bit "autorizado" não sofre alterações de valor. Em todo caso, o arquivo é gravado em disco com o padrão de nomenclatura usado para NFe -> DCe[CHAVE]-canc.xml (para os autorizados) e -cancRet.xml para os erros.
3. Baixar XML: é feita a busca na pasta da empresa e dce, e é feito o download do arquivo DCe[CHAVE]-canc.xml.
4. Excluir: a exclusão deve deletar tudo vinculado a respectiva linha no banco de dados. 

 

Questões Técnicas:

A nova tabela deverá ser criada no banco de dados para armazenar o evento:

CREATE TABLE `dceevento` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `nSeqEvento` int(11) NOT NULL, // sequencial a partir do último registro inserido da dceId
  `tipo` int(1) NOT NULL, // 1 = cancelamento
  `xCorrecao` varchar(255) DEFAULT NULL, // Justificativa
  `empresaId` bigint(20) DEFAULT NULL,
  `dceId` bigint(20) DEFAULT NULL,
  `autorizado` bit(1) NOT NULL,
  `motivo` varchar(255) DEFAULT NULL,
  `situacao` int(11) DEFAULT NULL,
)

 

 

Anexo I - Exemplos de XML (cancelamento e retorno)

Envio do cancelamento

<?xml version="1.0" encoding="UTF-8"?>
<envEvento xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00"> // talvez esse endereço não faça sentido
  <idLote>1</idLote>
  <evento versao="1.00">
    <infEvento Id="ID110111[CHAVE_DE_ACESSO_44_DIGITOS]01">
      <cOrgao>[COD_UF]</cOrgao>
      <tpAmb>2</tpAmb> 
      <tpEmit>2</tpEmit> //2 = emissor próprio; 3 = transportadora (de acordo com o que está no dce emitido dce.tpEmit)
      |<CNPJAutor>[CNPJ DO RESPONSÁVEL PELA ASSINATURA</CNPJAutor> //empresa.cnpj
      <CNPJUsEmit> NO CASO DE EMPRESA CONFIGURADA COMO TRANSPORTADORA O CNPJ OU CPFUsEmit DO EMITENTE </CNPJUsEmit>
      <chDCe>[CHAVE_DE_ACESSO_44_DIGITOS]</chDCe> // dce.chaveAcesso
      <dhEvento>2026-04-28T20:30:00-03:00</dhEvento>
      <tpEvento>110111</tpEvento> // fixo
      <nSeqEvento>1</nSeqEvento> // de acordo com a sequência de envio para o documento (quantos já foram gerados)
      <detEvento versao="1.00">
        <descEvento>Cancelamento</descEvento>
        <nProt>[NUMERO_PROTOCOLO_AUTORIZACAO]</nProt> //Informar o número do Protocolo de Autorização da DCe a ser Cancelada -> dce.protAutoriza
        <xJust>Justificativa do cancelamento com no mínimo 15 caracteres</xJust> 
      </detEvento>
    </infEvento>
    </evento>
</envEvento>


Retorno do cancelamento

<?xml version="1.0" encoding="UTF-8"?>
<retEnvEvento xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00"> // foi gerado pelo gemini, creio que o xmlns pode não estar correto
  <idLote>1</idLote>
  <tpAmb>2</tpAmb> <verAplic>SVRS20260428</verAplic>
  <cOrgao>35</cOrgao>
  <cStat>128</cStat> 
  <xMotivo>Lote de evento processado</xMotivo>
  <retEvento versao="1.00">
    <infEvento>
      <tpAmb>2</tpAmb>
      <verAplic>SVRS20260428</verAplic>
      <cOrgao>35</cOrgao>
      <cStat>101</cStat> 
      <xMotivo>Cancelamento de DCe Homologado</xMotivo>
      <chDCe>35260400000000000000990010000000011000000005</chDCe>
      <tpEvento>110111</tpEvento>
      <nSeqEvento>1</nSeqEvento>
      <dhRegEvento>2026-04-28T21:55:00-03:00</dhRegEvento>
      <nProt>135260000000003</nProt> </infEvento>
  </retEvento>
</retEnvEvento>

Cancelamento com erro

<?xml version="1.0" encoding="UTF-8"?>
<retEnvEvento xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00">
  <idLote>1</idLote>
  <tpAmb>2</tpAmb>
  <verAplic>SVRS20260428</verAplic>
  <cOrgao>35</cOrgao>
  <cStat>128</cStat>
  <xMotivo>Lote de evento processado</xMotivo>
  <retEvento versao="1.00">
    <infEvento>
      <tpAmb>2</tpAmb>
      <verAplic>SVRS20260428</verAplic>
      <cOrgao>35</cOrgao>
      <cStat>220</cStat> 
      <xMotivo>Rejeição: DCe com prazo de cancelamento ultrapassado</xMotivo>
      <chDCe>35260400000000000000990010000000011000000005</chDCe>
      <tpEvento>110111</tpEvento>
      <nSeqEvento>1</nSeqEvento>
    </infEvento>
  </retEvento>
</retEnvEvento>