Bom dia,
O layout de carta de correção para CTe é diferente do layout para NFe.
No CTe você deve informar cada correção nas tags grupoAlterado, campoAlterado, e nroItemAlterado, sendo esses itens campos definidos no layout, exemplo:
ACBrCTe1.EventoCTe.Evento.Clear;
ACBrCTe1.EventoCTe.idLote := idLote;
with ACBrCTe1.EventoCTe.Evento.Add do
begin
InfEvento.chCTe := Chave;
infEvento.cOrgao := StrToInt(Copy(Chave, 1, 2));
infEvento.CNPJ := Copy(Chave, 7, 14);
infEvento.dhEvento := Now;
infEvento.tpEvento := teCCe;
infEvento.nSeqEvento := nSequencial; // de 1 a 20
with CTE.EventoCTe.Evento.Items[0].InfEvento.detEvento.infCorrecao.Add do
begin
grupoAlterado := 'seg'; // Informações do seguro
campoAlterado := 'nApol'; // Numero da apólice
nroItemAlterado := 2; // referente ao segundo item no grupo 'seg', só informar se o grupo aceitar mais de um item
valorAlterado := '1234567890'; // novo valor do campo
end;
with CTE.EventoCTe.Evento.Items[0].InfEvento.detEvento.infCorrecao.Add do
begin
grupoAlterado := 'seg'; // Informações do seguro
campoAlterado := 'nAver'; // Numero da averbação
nroItemAlterado := 2;
valorAlterado := '0987654321';
end;
{ Continuar incluindo as correções para cada campo }
end;
ACBrCTe1.EnviarEvento(idLote);
nProt := ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;