Vê se te ajuda esse é meu código:
procedure TDMGeral.EconfEnviar(id:String);
var
voACBrNFe: TACBrNFe;
iLote, cStat: Integer;
vStat, xMotivo, vSucess,
vErro, vid, vWeb, vProt :String;
vbOK, vResult :boolean;
begin
qryEconf.Close;
qryEconf.Params.ParamByName('ECONF_ID').AsString := id;
qryEconf.Open;
if qryEconf.RecordCount > 0 then
begin
voACBrNFe := TACBrNFe.Create(Self);
LerIniAcbr(voACBrNFe);
if qryEconf.FieldByName('MOVI_MODELO_NOTA_FISCAL').AsString = '65' then
begin
voACBrNFe.Configuracoes.Geral.VersaoDF := ve400;
voACBrNFe.Configuracoes.Geral.ModeloDF := moNFCe;
end;
with voACBrNFe.EventoNFe.Evento.New do
begin
infEvento.tpAmb := voACBrNFe.Configuracoes.WebServices.Ambiente;
infEvento.CNPJ := v_UnidadeEmpresarial.cnpj;
infEvento.id := qryEconf.FieldByName('id').AsString;
infEvento.nSeqEvento := qryEconf.FieldByName('nSeqEvento').AsInteger;
infEvento.chNFe := qryEconf.FieldByName('chNFe').AsString;
infEvento.dhEvento := qryEconf.FieldByName('dhEvento').AsDateTime;
infEvento.cOrgao := qryEconf.FieldByName('cOrgao').AsInteger;
infEvento.tpEvento := teConcFinanceira;
infEvento.detEvento.verAplic := '4.7.0.0';
with InfEvento.detEvento.detPag.New do
begin
indPag := StrToIndpagEX(qryEconf.FieldByName('indPag').AsString);
tPag := StrToFormaPagamento(vbOK,qryEconf.FieldByName('tPag').AsString);
xPag := qryEconf.FieldByName('xPag').AsString;
vPag := qryEconf.FieldByName('vPag').AsCurrency;
dPag := qryEconf.FieldByName('dPag').AsDateTime;
CNPJPag := qryEconf.FieldByName('CNPJPag').AsString;
UFPag := qryEconf.FieldByName('UFPag').AsString;
CNPJIF := qryEconf.FieldByName('CNPJIF').AsString;
tBand := StrToBandeiraCartao(vbOK,qryEconf.FieldByName('tBand').AsString);
cAut := qryEconf.FieldByName('cAut').AsString;
CNPJReceb := qryEconf.FieldByName('CNPJReceb').AsString;
UFReceb := qryEconf.FieldByName('UFReceb').AsString;
end;
end;
iLote := qryEconf.FieldByName('MOVI_NR_NOTA_FISCAL').AsInteger;
try
voACBrNFe.EnviarEvento(iLote);
except
on E:exception do
begin
vErro := E.Message;
vid := qryEconf.FieldByName('id').AsString;
vErro := vErro+'|'+voACBrNFe.WebServices.EnvEvento.URL+'|';
Logger('Econf|Erro Envio|'+vid+'|'+vErro+'|');
Logger('Econf|Erro Envio|'+vid+'|'+vErro+'|');
end;
end;
if vErro = '' then
begin
cStat := voACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento[0].RetInfEvento.cStat;
vStat := DescricaoCStatECONF(cStat);
xMotivo := voACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento[0].RetInfEvento.xMotivo+'|'+voACBrNFe.WebServices.EnvEvento.URL+'|';
vProt := voACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento[0].RetInfEvento.nProt;
vSucess := EnvioEConfComSucesso(cStat);
end
else
begin
cStat := 0;
vStat := '';
xMotivo := '';
vProt := '';
vSucess := 'Nao';
end;
EconfSalvar(id, vSucess, IntToStr(cStat), vStat, xMotivo, vErro, vProt);
end
else
Logger('Econf|Nenhum reguistro encontrado |'+id+'|');
end;