A confirmação da Primeira transação, é um pré-requisito, para o inicio da segunda transação...
Isso é feito pelo Método: "TACBrTEFDClass.ConfirmarTransacoesAnteriores", que realmente não chama o evento.. pois essa transação ainda não foi impressa, e poderia até mesmo ser cancelada...
O método "TACBrTEFD.ImprimirTransacoesPendentes", já chama por "TACBrTEFD.ConfirmarTransacoesPendentes", no final dele...
O problema é que havia uma verificação em "ConfirmarTransacoesPendentes", para saber se houve alguma confirmação nesse momento de execução do método... (o que não é o caso descrito nesse tópico)
if not CNFEnviado then
begin
CNF( Rede, NSU, Finalizacao, DocumentoVinculado );
CNFEnviado := True;
HouveConfirmacao := True; // <--- AQUI
end;
.....
if HouveConfirmacao and Assigned( fOnDepoisConfirmarTransacoes ) then // <--- AQUI
fOnDepoisConfirmarTransacoes( RespostasPendentes );
Não lembro bem o porque dessa verificação, mas realmente ela não me parece correta...
Por favor teste com a Unit em anexo...
ACBrTEFD.pas