Ir para o conteúdo
LideraNota API v0.10.0

Cancelamento

POST /v1/notas/{notaId}/cancelamento com o token de acesso e o corpo JSON { "motivo": "...", "cMotivo": "1" } (referência). O cancelamento é processado de forma assíncrona, como a emissão (evento 101101 na Sefin Nacional).

Regras do pedido

  • Só nota autorizada pode ser cancelada.
  • motivo (obrigatório): de 15 a 255 caracteres depois de remover os espaços das pontas, só com caracteres de U+0020 a U+00FF (letras, números, pontuação e acentos comuns), sem quebra de linha, tabulação, travessão, aspas curvas nem emoji. O motivo vai à Sefin Nacional sem os espaços das pontas.
  • cMotivo (opcional): a classificação do motivo, com as mesmas opções do Portal Nacional: 1 erro na emissão, 2 serviço não prestado, 9 outros. Sem o campo, vale 9. Envie o código como texto ("1"); o número 1 também é aceito. Qualquer outro valor ("0", "3", "01", vazio, null) é recusado com 400 VALIDACAO_CAMPO, no campo cMotivo. A API transmite a classificação que o seu sistema informou e nunca a deduz do texto do motivo; as regras que o município aplica a cada código são dele.
  • Idempotência: repetir o pedido de uma nota já cancelamento_solicitado ou cancelada devolve 202 com o pedido existente (o mesmo motivo, cMotivo e solicitadoEm do primeiro, mesmo que o novo pedido traga outros), sem novo evento na Sefin Nacional. É seguro repetir a chamada depois de uma falha de rede. Um cMotivo inválido no pedido repetido continua recusado com 400.

Requisição

POST /v1/notas/3f8b2c1a-6d4e-4b7f-9a21-0c5e8d7f6a10/cancelamento HTTP/1.1
Host: hml.nfse.lideraweb.com
Authorization: Bearer <seu-token>
Content-Type: application/json

{
  "motivo": "Serviço cobrado em duplicidade na fatura",
  "cMotivo": "1"
}
curl -X POST "$BASE_URL/notas/3f8b2c1a-6d4e-4b7f-9a21-0c5e8d7f6a10/cancelamento" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
  "motivo": "Serviço cobrado em duplicidade na fatura",
  "cMotivo": "1"
}'

Resposta 202:

{
  "status": "solicitado",
  "motivo": "Serviço cobrado em duplicidade na fatura",
  "cMotivo": "1",
  "solicitadoEm": "2026-11-10T14:03:12.345Z"
}

status é solicitado, registrado ou rejeitado; cMotivo vem sempre preenchido (o código informado ou 9). Quando houver, a resposta traz também registradoEm (só em registrado) e erro com codigo e mensagem (só em rejeitado). No primeiro pedido, a nota passa a cancelamento_solicitado.

Acompanhamento

  • Resultado pelo webhook: cancelada (a nota foi cancelada e nota.cancelamento.status é registrado) ou cancelamento_rejeitado (a Sefin Nacional recusou; a nota volta a autorizada e nota.cancelamento.erro traz o código e o motivo). O pedido também aparece no campo cancelamento da consulta da nota.
  • Pedido que continua solicitado: a nota fica em cancelamento_solicitado até a resposta da Sefin Nacional; continue consultando a nota. Se o pedido continuar solicitado e você precisar de retorno sobre ele, informe o id da nota. A LideraNota executa este passo: pedir pelo WhatsApp.
  • Depois de um cancelamento_rejeitado, um novo pedido pode ser feito; corrija a causa antes.
  • Fora do prazo: quando a Sefin Nacional recusa o cancelamento direto por prazo (por exemplo E0822, cancelamento fora do prazo do município), o caminho é a análise fiscal para cancelamento.
  • Documentos: a nota cancelada continua com o XML autorizado, e o DANFSe sai com a marca "CANCELADA" (downloads).

Respostas de erro

HTTP codigo Quando
400 VALIDACAO_CAMPO notaId fora do formato UUID; corpo sem motivo; motivo com mais de 255 caracteres ou com caractere fora da faixa permitida; cMotivo diferente de 1, 2 e 9. Com cMotivo inválido e motivo curto, a resposta é o 400 do cMotivo; corrigido o código, o mesmo pedido recebe o 422
400 JSON_INVALIDO Corpo vazio ou JSON malformado
401 TOKEN_INVALIDO Token ausente, inválido ou revogado
404 NOTA_NAO_ENCONTRADA Nota inexistente ou de outro emitente
409 NOTA_NAO_AUTORIZADA Nota do seu emitente que não está autorizada (recebida, pronta, enviada, rejeitada ou pendente_intervencao)
409 NOTA_EM_ESTADO_INCOMPATIVEL Nota substituida ou com substituição em andamento; nota com análise fiscal aguardando o município ou indeferida; nota cancelada pelo deferimento da análise fiscal. A mensagem diz qual
422 MOTIVO_CANCELAMENTO_CURTO Motivo com menos de 15 caracteres depois de remover os espaços das pontas, inclusive vazio
429 LIMITE_REQUISICOES_EXCEDIDO Limite de requisições do token (limites)