Pular para conteúdo

Cancelamentos e Eventos

Objetivo

Documentar os fluxos de cancelamento de NF-e, NFC-e, NFS-e, Carta de Correção (CCe) e demais eventos relacionados, com mapeamento técnico e de configuração.


Cancelamento de NF-e

Método: action_cancelar_nfe() (linha 7027)

Aspecto Detalhe
Endpoint GET /ManagerAPIWeb/nfe/cancela
Parâmetros URL Grupo, CNPJ, ChaveNota, Justificativa
Autenticação HTTP Basic Auth
Pré-requisito NF-e autorizada com l10n_br_chave_nf preenchido

Parâmetros de URL

Parâmetro Origem Observação
Grupo l10n_br_documento_id.l10n_br_grupo Grupo do integrador
CNPJ company_id.l10n_br_cnpj Sem formatação
ChaveNota l10n_br_chave_nf 44 dígitos
Justificativa l10n_br_motivo Mínimo 15 caracteres (exigência SEFAZ)

Fluxo

flowchart TD
    A["action_cancelar_nfe()"] --> B["POST nfe/cancela"]
    B --> C{"Resposta?"}
    C -->|"Evento registrado"| D["situacao = cancelado"]
    D --> E["Gera XML + DANFE cancelamento"]
    C -->|"Cancelamento fora prazo"| D
    C -->|Outro erro| F["situacao = excecao_cancelado"]

Campos atualizados após cancelamento

Campo Valor
l10n_br_cstat_nf Código status SEFAZ
l10n_br_xmotivo_nf Mensagem da SEFAZ
l10n_br_situacao_nf cancelado

Cancelamento de NFC-e

Método: action_cancelar_nfce() (linha 7121)

Status: return no início — método não implementado (TODO: NFC-e).

O cancelamento de NFC-e segue a mesma estrutura da NF-e mas usa o endpoint nfe/cancela (modelo 65 compartilha o endpoint no ManagerSaaS).


Cancelamento de NFS-e

Método: action_cancelar_nfse() (linha 5755)

Aspecto Detalhe
Endpoint POST /ManagerAPIWeb/nfse/cancela
Autenticação HTTP Basic Auth
Pré-requisito NFS-e emitida com handle ou número RPS

Fluxo do Cancelamento NFS-e

O cancelamento NFS-e é mais complexo que o da NF-e, pois depende do município. Há dois fluxos possíveis:

  1. Via Handle: municipalidades que registram handle na emissão
  2. Via NumeroRPS + Serie: fallback quando handle não disponível

Dados enviados

Campo Origem Observação
NomeCidade company_id.l10n_br_municipio_id.name Município do emitente
Handle l10n_br_nfse_handle Identificador no integrador
Justificativa l10n_br_motivo Motivo do cancelamento

Carta de Correção Eletrônica (CCe)

Método: action_gerar_cce_nfe() (linha 7248)

A CCe é enviada como um TX2 de evento ao mesmo endpoint nfe/envia.

TX2 gerado por _gerar_cce_nfe_tx2() (linha 3884)

Campo TX2 Origem Observação
Documento Fixo CCE
ChaveNota Fatura l10n_br_chave_nf (44 dígitos)
dhEvento Calculado datetime.now(tz=SP) formato ISO
Orgao Empresa → Estado l10n_br_codigo_ibge da UF
SeqEvento Fatura l10n_br_sequencia_evento + 1
Correcao Fatura l10n_br_correcao (texto da correção)
Lote Fixo 1
Fuso Calculado Fuso horário de São Paulo

Regras da CCe

Regra funcional: - Máximo de 20 CCe por NF-e - Não é permitido alterar: valores, quantidades, CFOP, CST, alíquotas - Permitido alterar: razão social, endereço, condição de pagamento, datas de saída, transportadora

Fluxo CCe

flowchart TD
    A["action_gerar_cce_nfe()"] --> B["_gerar_cce_nfe_tx2()"]
    B --> C["POST nfe/envia"]
    C --> D{"Resposta AUTORIZADA?"}
    D -->|Sim| E["Incrementa sequencia_evento"]
    E --> F["situacao = cce"]
    F --> G["Gera XML + DANFE CCe"]
    D -->|Não| H["situacao = excecao_cce"]

Campos atualizados

Campo Valor
l10n_br_sequencia_evento Incrementado +1
l10n_br_situacao_nf cce
l10n_br_cstat_nf Código SEFAZ
l10n_br_xmotivo_nf Mensagem SEFAZ

Resolver NF-e (Pendências)

Método: action_resolver_nfe() (linha 6263)

Chamado quando a NF-e foi enviada mas a resposta não foi conclusiva (ex: timeout, exceção já existente).

Aspecto Detalhe
Endpoint POST /ManagerAPIWeb/nfe/resolve
Dados Grupo, CNPJ, ChaveNota
Retorno Resolve o status final da NF-e (autorizada, rejeitada, etc.)

Consulta de NFS-e

Método: action_resolver_nfse() (região linha 6447)

Usa dois fluxos: 1. Consulta: GET /ManagerAPIWeb/nfse/consulta?Filtro=handle={handle} ou Filtro=nrps={rps} 2. Resolve: GET /ManagerAPIWeb/nfse/resolve?Handle={handle} ou NumRPS={rps}&SerieRPS={serie}&TipoRPS={tipo}


Geração de XMLs e DANFEs

Métodos de download de artefatos do integrador:

Método Endpoint Artefato
action_gerar_xml_nfe() nfe/xml?ChaveNota= XML autorização
action_gerar_danfe_nfe() nfe/imprime?ChaveNota= PDF DANFE
action_gerar_xml_cancelado_nfe() nfe/xml?Documento=Cancelamento XML cancelamento
action_gerar_danfe_cancelado_nfe() nfe/imprime?ChaveNota= (após cancel) DANFE cancelado
action_gerar_xml_cce_nfe() nfe/xml?Documento=CCe XML CCe
action_gerar_danfe_cce_nfe() nfe/imprime?Documento=CCe PDF CCe
action_gerar_xml_nfse() nfse/xml?Handle= XML NFS-e
action_gerar_rps_nfse() nfse/imprime?Handle= PDF RPS
action_gerar_xml_nfce() nfce/xml?ChaveNota= XML NFC-e
action_gerar_danfe_nfce() nfce/imprime?ChaveNota= PDF NFC-e

Inutilização de Numeração

Investigação: Não foi encontrado método de inutilização no account.py. A API TecnoSpeed suporta via nfe/inutiliza (conforme Postman collection), mas não há implementação no módulo.


Descarte de RPS NFS-e

Método: action_descartar_rps_nfse() (linha 5135)

Aspecto Detalhe
Endpoint GET /ManagerAPIWeb/nfse/descarta
Parâmetros Grupo, CNPJ, NomeCidade, Handle
Função Descarta RPS no integrador sem emitir NFS-e

Tabela de Status

l10n_br_situacao_nf Significado Ações disponíveis
(vazio) Não transmitido Gerar NF-e/NFS-e
autorizado NF-e autorizada Cancelar, CCe, Gerar XMLs
cancelado Cancelado na SEFAZ Gerar XMLs cancelamento
cce CCe registrada Gerar XMLs CCe
excecao_autorizado Erro na autorização Resolver, Reprocessar
excecao_cancelado Erro no cancelamento Reprocessar cancelamento

Como Configurar para Cancelamento

  1. Justificativa obrigatória: Preencher campo l10n_br_motivo na fatura (mín. 15 chars)
  2. Prazo: NF-e deve ser cancelada em até 24 horas (regra SEFAZ, não validada no código)
  3. Chave NF: Deve estar preenchida (l10n_br_chave_nf)
  4. Permissão: Usuário deve ter acesso ao botão de cancelamento

Troubleshooting

Problema Causa Solução
"Justificativa muito curta" Menos de 15 caracteres Aumentar texto de l10n_br_motivo
Cancelamento fora de prazo Mais de 24h após autorização Emitir NF-e de estorno/devolução
CCe rejeitada Tentou alterar campo não permitido Verificar texto de correção
NFS-e não cancela Handle inválido ou município não suporta Verificar l10n_br_nfse_handle
Status excecao_cancelado SEFAZ rejeitou cancelamento Verificar motivo no chatter
XML/DANFE não gerado Integrador offline Retry via botão Gerar XML/DANFE

Referências