Pular para o conteúdo principal

Cancelando um CT-e

POST /v1/cte/cancelar
{
"cpf_cnpj": "11222333000181",
"job_id": "6f8dc295-...",
"justificativa": "Servico de transporte nao executado"
}

Informe job_id ou chave. A justificativa tem mínimo de 15 caracteres — exigência do autorizador. Devolve 202 com um novo job_id, e consome cota de CT-e.

O prazo é mais curto, e depende da viagem

Não assuma as 24 horas da NF-e

O prazo de cancelamento do CT-e é definido por cada UF e costuma ser bem menor que o da NF-e. E há um limite que não é de tempo: vários estados não permitem cancelar depois de iniciada a prestação do serviço — ou seja, depois que o veículo saiu.

Quem recusa é a SEFAZ, não a API. Confirme a regra da UF do emitente.

Anulação não existe mais

Quem vem do leiaute 3.00 vai procurar e não vai achar

Havia o CT-e de Anulação (tpCTe = 2). No leiaute 4.00 ele foi removido: o valor saiu da lista permitida e o grupo infCteAnu saiu do schema oficial.

O Conota recusa tipo_cte = 2 com o motivo, em vez de deixar a SEFAZ devolver um código que ninguém entende.

O caminho de correção passou a ser a substituição:

"identificacao": { "tipo_cte": "3" },
"substituicao": { "chave": "3126...", "altera_tomador": "0" }

altera_tomador só é necessário quando a substituição também troca o tomador; sem ele, o autorizador entende que o tomador permanece.

Quando o problema é do lado de quem contratou o frete, existe ainda o evento próprio de prestação em desacordo, registrado pelo tomador — que é outro fluxo, e não passa por esta rota.

Só se cancela o que foi autorizado

SituaçãoCancelamento
autorizadopossível, dentro do prazo da UF
rejeitadonão existe o que cancelar
já canceladonada a fazer

Depois do cancelamento

O XML do evento fica disponível como xml_cancelamento — ver Arquivos. O xml original continua lá.