- 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
- 14.6.1. Dados do Produto
- 14.6.2. Impostos [RTC]
- 14.6.3. DF-e referenciado [RTC]
- 14.6.4. Item da NF-e NT 2021/004 [obsoleto]
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:
- 2025-06-13 - versão 2Gv5.00
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:
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