Boa tarde.
Gostaria de sugerir uma melhoria no código do ACBr na unidade ACBrNFeWebServices e método TNFeRetRecepcao.TratarRespostaFinal.
As vezes ao Assinar a nota, ocorre erros que não são exibido. Só me retorna "Nota(s) não confirmadas: 301 =>". Debuggando o processo vi que é retornado o Cstat e que através dele é possível apurar melhor o erro. Hoje eu me deparei com o erro referente ao Status 866 - "Ausência de troco quando o valor dos pagamentos informados for maior que o total da nota". Só consegui resolver o problema porque eu fui debuggando onde era montada esta mensagem e verifiquei o cstat. A alteração poderia ficar tipo o exemplo abaixo:
if AInfProt.Count > 0 then
begin
FChaveNFe := AInfProt.Items[0].chNFe;
FProtocolo := AInfProt.Items[0].nProt;
FcStat := AInfProt.Items[0].cStat;
end;
//Montando a mensagem de retorno para as notas nao confirmadas
for I := 0 to FNotasFiscais.Count - 1 do
begin
if not FNotasFiscais.Items.Confirmada then
FPMsg := FPMsg + IntToStr(FNotasFiscais.Items.NFe.Ide.nNF) +
'->' + FNotasFiscais.Items.Msg + LineBreak +
'CStat: ' + IntToStr(FcStat) + ObtemDescricaoRejeicao(FcStat) ;
end;