14. Gerar XML da NF-e
14.6. Item da NF-e [RTC]
14.5. Local de entrega [09-03-19]
« Anterior
14.6.1. Dados do Produto
Próximo »

14.6. Item da NF-e [RTC]

Sumário

Funcionalidade para gerar o XML do grupo do item de detalhamento da NF-e/NFC-e

Assinatura

string detalheRTC(int nItem, string produto, string imposto, string infAdProd, double pDevol_Opc, double vIPIDevol_Opc, string obsContItem_Opc, string obsFiscoItem_Opc, double vItem_Opc, string DFeReferenciado_Opc)

Descrição:

Funcionalidade para gerar o XML do grupo de item de detalhe da NF-e/NFC-e da versão 4.00 com atualizações da NT2025/002

Importante

Atualização necessária para atender o novo leiaute da NF-e da NT 2025/002 - Reforma Tributária do Consumo

Vigência:

  • ambiente de homologação: a partir de 01/07/2025
  • ambiente de produção: a partir de 01/10/2025

Versão da DLL requerida:

Histórico de atualização:

Dica

Este grupo de informação é de informação obrigatória, a NF-e deve ter pelo menos um item de produto por exigência do Schema XML.

Parâmetros:

nome tipo tam. obrig. descrição
nItem inteiro - sim informar o número do item do detalhe, deve ser um valor único crescente compreendido na faixa de 1 a 990.
produto string - sim informar o grupo XML prod com o detalhamento do produto/serviço do item.
imposto string - sim informar o grupo XML imposto com as informações dos tributos incidentes no item.
infAdprod string 1-500 não pode ser utilizado para complementar a descrição e informações adicionais do produto.
Não é permitido informação de caracteres de formatação (CR, LF, TAB, etc.), assim o usuário pode colocar caracteres que identificam o final linha para melhorar a visualização e a aplicação de impressão do DANFE tratar como quebra de linha, ex.: ***, /, |, etc.
A consulta web da NF-e ainda não está mostrando as informações adicionais do produto, necessário reportar o problema para a SEFAZ resolver.
pDevol_Opc double 3V2 NÃO informar o percentual da mercadoria devolvida.
Nota: O valor máximo deste percentual é 100%, no caso de devolução total da mercadoria
Obs.: As informações do IPI devolvido só serão gerados quando o pDevol_Opc for informado com valor > 0.
vIPIDevol_Opc double 13V2 NÃO informar Valor do IPI devolvido.
obsContItem_Opc string - NÃO informar o grupo XML com obsCont com as informações do contribuinte do item.
obsFiscoItem_Opc string - NÃO informar o grupo XML com obsFisco com as informações do fisco do item.
vItem_Opc double 13V2 NÃO informar o Valor Total do Item da NF-e.
Valor total do Item, correspondente à sua participação no total da nota.
A soma dos itens deverá corresponder ao total da nota
(campo novo) [RTC]
DFeReferenciado_Opc string - NÃO informar o grupo XML com DFeReferenciado com as informações que referencia um item de outro DF-e.
(campo novo) [RTC]

Diagrama:

DiagramaDetalhe

Dica

Os campos com contorno tracejado podem ser omitidos se a operação não exigir a informação.

Os grupos XML prod e imposto são grupos XML que devem ser gerados em separado.

Retorno:

Um string com o grupo XML do detalhe do Produto ou Serviço

XML:

Exemplo de XML do det

<det nItem="1">
  <prod>
  (...)
  </prod>
  <imposto>
    <ICMS>
    (...)
    </ICMS>
    <PIS>
    (...)
    </PIS>
    <COFINS>
    (...)
    </COFINS>
    <!-- informações do IBS e CBS - NOVO -->
    <IBSCBS>
    (...)
    </IBSCBS>
  </imposto>
  <impostoDevol>
    <pDevol>10.00</pDevol>
    <IPI>
      <vIPIDevol>100.00</vIPIDevol>
    </IPI>
  </impostoDevol>
  <infAdProd>Informações adcionais do produto</infAdProd>
  <obsItem>
    <obsCont xCampo="Pedido">
      <xTexto>123456</xTexto>
    </obsCont>
  </obsItem>
  <!-- valor total do item - NOVO -->
  <vItem>1100.00</vItem>
</det>

Exemplo de XML do det com grupo DFeReferenciado

<det nItem="1">
  <prod>
  (...)
  </prod>
  <imposto>
    <ICMS>
    (...)
    </ICMS>
    <PIS>
    (...)
    </PIS>
    <COFINS>
    (...)
    </COFINS>
    <!-- informações do IBS e CBS - NOVO -->
    <IBSCBS>
    (...)
    </IBSCBS>
  </imposto>
  <impostoDevol>
    <pDevol>10.00</pDevol>
    <IPI>
      <vIPIDevol>100.00</vIPIDevol>
    </IPI>
  </impostoDevol>
  <infAdProd>Informações adcionais do produto</infAdProd>
  <obsItem>
    <obsCont xCampo="Pedido">
      <xTexto>123456</xTexto>
    </obsCont>
  </obsItem>
  <!-- valor total do item - NOVO -->
  <vItem>1100.00</vItem>
  <!-- Referenciamento de Item de DF-e - NOVO -->
  <DFeReferenciado>
  <chaveAcesso>35250631004564000144550000000000211469555072</chaveAcesso>
  <nItem>13</nItem>
</DFeReferenciado>
</det>

Importante

O trecho do XML foi formatado e alguns trechos foram omitidos para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplos de uso:

Visual Basic 6.0

 
 
' grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)

' declaração das variáveis

Dim det As String
Dim det_nItem As Long
Dim det_produto As String
Dim det_imposto As String
Dim det_infAdProd As String
Dim det_pDevol As Double
Dim det_vIPIDevol As Double
Dim det_ObsContItem As String
Dim det_ObsFiscoItem As String
Dim det_vItem As Double
Dim det_DFeReferenciado As String
 
' instancia DLL - late binding

Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
 
' inicializar variáveis

' informar o número do item, que deve ser sequencial crescente iniciado em 1
'  a quantidade máxima de itens é 990

det_nItem = 1
 
' Deve ser informado com o XML obtido na funcionalidade produto

det_produto = "<prod></prod>"
 
' grupo dos impostos, deve ser informado com o XML obtido na funcionalidade imposto

det_imposto = "<imposto><ICMS></ICMS><PIS></PIS><COFINS></COFINS><IBSCBS></IBSCBS></imposto>"
 
' informações adicionais do produto, uso não obrigatório

det_infAdProd = "Informações adcionais do produto"
 
'         informar quando existir IPI na devolução

det_pDevol = 10               ' percentual das mercadorias devolvidas
det_vIPIDevol = 1100          ' valor do IPI devolvido

'        observações do contribuinte e do fisco do item

det_obsContItem = "<obsCont xCampo=""Pedido""><xTexto>123456</xTexto></obsCont>"
 
det_obsFiscoItem = ""         ' permite informar a observação do Fisco

'        novos campos da NT 2025/002 - RTC

det_vItem = 100              ' valor total do item
det_DFeReferenciado = ""     ' permite referenciar um item de outro DF-e

'   gera grupo de detalhamento do produto

det = objNFeUtil.detalheRTC(det_nItem, _
                            det_produto, _
                            det_imposto, _
                            det_infAdProd, _
                            det_pDevol, _
                            det_vIPIDevol, _
                            det_obsContItem, _
                            det_obsFiscoItem, _
                            det_vItem, _
                            det_DFeReferenciado)
 
MsgBox msgResultado & vbCrLf & det, vbInformation, "Informação"

Delphi

 
procedure TForm1.Button5Click(Sender: TObject);
var
 
// grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)
 
objNFeUtil: OleVariant;                       // declarar a interface da DLL
 
// Declaração de variáveis
 
det : widestring;
det_nItem : integer;
det_produto : widestring;
det_imposto : widestring;
det_infAdProd : widestring;
det_pDevol : double;
det_vIPIDevol : double;
det_ObsContItem : widestring;
det_ObsFiscoItem : widestring;
det_vItem : double;
det_DFeReferenciado : widestring;
 
begin
 
// inicializar variáveis
 
// informar o número do item, que deve ser sequencial crescente iniciado em 1
//  a quantidade máxima de itens é 990
 
det_nItem := 1;
 
// Deve ser informado com o XML obtido na funcionalidade produto
 
det_produto := '<prod></prod>';
 
// grupo dos impostos, deve ser informado com o XML obtido na funcionalidade imposto
 
det_imposto := '<imposto><ICMS></ICMS><PIS></PIS><COFINS></COFINS><IBSCBS></IBSCBS></imposto>';
 
// informações adicionais do produto, uso não obrigatório
 
det_infAdProd := 'Informações adcionais do produto';
 
//         informar quando existir IPI na devolução
 
det_pDevol := 10;               // percentual das mercadorias devolvidas
det_vIPIDevol := 100;           // valor do IPI devolvido
 
//        observações do contribuinte e do fisco do item
 
det_obsContItem := '<obsCont xCampo="Pedido"><xTexto>123456</xTexto></obsCont>';
 
det_obsFiscoItem := '';         // permite informar a observação do Fisco
 
//        novos campos da NT 2025/002 - RTC
 
det_vItem := 1100;              // valor total do item
det_DFeReferenciado := '';     // permite referenciar um item de outro DF-e
 
//   instancia DLL - late binding
 
objNFeUtil := CreateOleObject('NFe_Util_2G.util');            // instancia a DLL
 
//   gera grupo de detalhamento do produto
 
det := objNFeUtil .detalheRTC(det_nItem,
                              det_produto,
                              det_imposto,
                              det_infAdProd,
                              det_pDevol,
                              det_vIPIDevol,
                              det_obsContItem,
                              det_obsFiscoItem,
                              det_vItem,
                              det_DFeReferenciado);
 
MessageDlg( 'XML resultante: '+det, mtInformation, [mbOk], 0);
 
end;

c#

 
// grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)
 
// instancia DLL - late binding
 
NFe_Util_2G.Util util = new NFe_Util_2G.Util();
 
// inicializar variáveis
 
// informar o número do item, que deve ser sequencial crescente iniciado em 1
//  a quantidade máxima de itens é 990
 
int det_nItem = 1;
 
// Deve ser informado com o XML obtido na funcionalidade produto
 
string det_produto = "<prod></prod>";
 
// grupo dos impostos, deve ser informado com o XML obtido na funcionalidade imposto
 
string det_imposto = "<imposto><ICMS></ICMS><PIS></PIS><COFINS></COFINS><IBSCBS></IBSCBS></imposto>";
 
// informações adicionais do produto, uso não obrigatório
 
string det_infAdProd = "Informações adcionais do produto";
 
//         informar quando existir IPI na devolução
 
double det_pDevol = 10;               // percentual das mercadorias devolvidas
double det_vIPIDevol = 100;           // valor do IPI devolvido
 
//        observações do contribuinte e do fisco do item
 
string det_obsContItem = "<obsCont xCampo=\"Pedido\"><xTexto>123456</xTexto></obsCont>";
 
string det_obsFiscoItem = "";         // permite informar a observação do Fisco
 
//        novos campos da NT 2025/002 - RTC
 
double det_vItem = 1100;              // valor total do item
string det_DFeReferenciado = "";     // permite referenciar um item de outro DF-e
 
//   gera grupo de detalhamento do produto
 
string det = util.detalheRTC(det_nItem, 
                             det_produto,
                             det_imposto,
                             det_infAdProd,
                             det_pDevol,
                             det_vIPIDevol,
                             det_obsContItem,
                             det_obsFiscoItem,
                             det_vItem,
                             det_DFeReferenciado);
 
MessageBox.Show("XML resultante\r:" +det)

Importante

Se houver mais de um item de detalhe, o usuário deve concatenar os detalhes.

14.6. Item da NF-e [RTC]
14. Gerar XML da NF-e
« Anterior
14.5. Local de entrega [09-03-19]
Próximo »
14.6.1. Dados do Produto