Bom dia,
pessoal, na unit ACBrCTe.EnvEvento existe uma regra de validação que está incorreta:
// Verifica a Série do Documento, caso esteja no intervalo de 910-969
// o emitente é pessoa fisica, logo na chave temos um CPF.
Serie := ExtrairSerieChaveAcesso(Evento[Idx].InfEvento.chCTe);
if (Length(sDoc) = 14) and (Serie >= 910) and (Serie <= 969) and
not (Evento[Idx].InfEvento.tpEvento in [teManifDestConfirmacao..teManifDestOperNaoRealizada]) then
begin
sDoc := Copy(sDoc, 4, 11);
end;
No CTe é obrigatório o emitente pessoa física usar a faixa de série 920-969, mas diferentemente da NFe, o emissor pessoa jurídica também pode usar essa faixa, ela não é exclusiva. Isso ocorreu com um emissor aqui que fez incorretamente a emissão de um CTe com a série 920 sendo pessoa jurídica. O CTe foi autorizado corretamente, mas ao perceber o erro e tentar fazer o cancelamento não era possível por conta da validação acima, que estava cortando o CNPJ dele para 11c. Removendo esse trecho o cancelamento foi realizado corretamente. Anexei o arquivo modificado para consideração.
ACBrCTe.EnvEvento.pas