Olá Jorge, obrigado pelo retorno.
Será que o problema não é justamente devido ao CSOSN 500? Pergunto isso porque em outras notas que o CSOSN é 101, os detalhes do ICMS estão inseridos no XML.
Segue trecho do meu código, onde as informações do ICMS estão sendo alimentadas:
with Det.Add do begin
//PRODUTOS
Prod.nItem := vLinhaItem;
Prod.cProd := FormatFloat('000000',FieldValues['id_pro']);
Prod.cEAN := '';
Prod.xProd := FieldValues['descricao_prod'];
Prod.NCM := FieldValues['ncm'];
Prod.EXTIPI := '';
Prod.CFOP := vCFOP;
Prod.uCom := 'UN';
Prod.qCom := FieldValues['qtde_fat'] ;
//Prod.vUnCom := StrToFloat(FormatFloat(',##0.000',FieldValues['unitario']));
Prod.vUnCom := FieldValues['unitario'];
Prod.vProd := FieldValues['total'] ;
Prod.xPed := cdsPedidos.FieldValues['ped_cli'];
Prod.nItemPed := FieldValues['it_ped_compra'];
Prod.cEANTrib := '';
Prod.uTrib := 'UN';
Prod.qTrib := FieldValues['qtde_fat'];
Prod.vUnTrib := FieldValues['unitario'];
Prod.vOutro := 0;
if vLinhaItem=1 then
Prod.vFrete := vFrete
else
Prod.vFrete := 0;
Prod.vSeg := 0;
Prod.vDesc := 0;
//acumula o total dos itens
vTotalNF:=vTotalNF+FieldValues['total'];
//acumula o total para cálculo do crédito que poderá ser aproveitado
if (vCFOP='5102') or (vCFOP='6102') or (vCFOP='5118') or (vCFOP='6118') then
vTotalCredICMS:=vTotalCredICMS+FieldValues['total'];
//IMPOSTOS
with Imposto do begin
CST := cst60;
ICMS.CSOSN := csosn500;
ICMS.orig := oeNacional;
ICMS.modBC := dbiValorOperacao;
ICMS.vBC := FieldValues['total'];
ICMS.pICMS := 0;
ICMS.vICMS := 0;
ICMS.modBCST := dbisMargemValorAgregado;
ICMS.pMVAST := 0;
ICMS.pRedBCST:= 0;
ICMS.vBCST := FieldValues['base_icms_s'];
ICMS.pICMSST := Fieldvalues['aliquota_icms_s'];
ICMS.vICMSST := Fieldvalues['valor_icms_s'];
ICMS.pRedBC := 0;
end;
end;
Agradeço por enquanto.
Valdir