14. Gerar XML da NF-e [23-12-13]
14.9. Item da NF-e NT 2021/004 [07-03-22]
14.8.2.15. ICMSUFDest 4.00 [15-08-17]
« Anterior
14.10. Totais da NF-e [19-01-14]
Próximo »

14.9. Item da NF-e NT 2021/004 [07-03-22]

Funcionalidade para gerar o XML do grupo do item de detalhamento da NF-e/NFC-e com atualização previstas na NT2021/004

Assinatura

string detalheNT2021004(int nItem, string produto, string imposto, string infAdProd, double pDevol_Opc, double vIPIDevol_Opc, string obsContItem_Opc, string obsFiscoItem_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 NT2021/004

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
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.
(campo novo) [07-03-22]
obsFiscoItem_Opc string - NÃO informar o grupo XML com obsFisco com as informações do fisco do item.
(campo novo) [07-03-22]

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>
            <cProd>00001</cProd>
            <cEAN />
               (...)
            <vUnTrib>1</vUnTrib>
      </prod>
      <imposto>
            <ICMS>
            <ICMS00>
            (...)
            </ICMS00>
            </ICMS>
            <PIS>
            <PISAliq>
            (...)
            </PISAliq>
            </PIS>
            <COFINS>
            <COFINSAliq>
            (...)
            </COFINSAliq>
            </COFINS>
      </imposto>
      <infAdProd>Informações adicionais do produto</infAdProd>
      <obsItem>
           <obsCont xCampo="Pedido">
                <xTexto>123456</xTexto>
           </obsCont>
           <obsFisco xCampo="RegimeEspecial">
                <xTexto>123456</xTexto>
           </obsFisco>
      </obsItem>
</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

 
' inicializar variáveis
'...............................................

Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
'
'========grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)=========
'
'
det_nItem = 1                 ' informar o número do item, que deve ser sequencial crescente iniciado em 1
                              ' a quantidade máxima de itens é 990
det_produto = "xml produto"   ' Deve ser informado com o XML obtido na funcionalidade produto
det_imposto = "xml imposto"   ' Deve ser informado com o XML obtido na funcionalidade 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
'
'        novos campos da NT 2021/004
'

det_obsContItem = ""          ' permite informar a observação do contribuinte
det_obsFiscoItem = ""         ' permite informar a observação do Fisco

'
'   gera grupo de detalhamento do produto
'
' string detalheNT2021004(int nItem, string produto, string imposto, string infAdProd_Opc, double pDevol_Opc, double vIPIDevol_Opc, string obsContItem_Opc, string obsFiscoItem_Opc)

det = objNFeUtil.detalheNT2021004(det_nItem, det_produto, det_imposto, det_infAdProd, det_pDevol, det_vIPIDevol, det_obsContItem, det_obsFiscoItem)

[vb]

Dim objNFeUtil As Object

Set objNFeUtil = CreateObject("NFe_Util_2G.Util") ' '========grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)========= ' ' det_nItem = 1 ' informar o número do item, que deve ser sequencial crescente iniciado em 1 ' a quantidade máxima de itens é 990 det_produto = "xml produto" ' Deve ser informado com o XML obtido na funcionalidade produto det_imposto = "xml imposto" ' Deve ser informado com o XML obtido na funcionalidade 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

' ' novos campos da NT 2021/004 '


det_obsContItem = "123456"

det_obsFiscoItem = "" ' permite informar a observação do Fisco

' ' gera grupo de detalhamento do produto ' ' string detalheNT2021004(int nItem, string produto, string imposto, string infAdProd_Opc, double pDevol_Opc, double vIPIDevol_Opc, string obsContItem_Opc, string obsFiscoItem_Opc)

det = objNFeUtil.detalheNT2021004(det_nItem, det_produto, det_imposto, det_infAdProd, det_pDevol, det_vIPIDevol, det_obsContItem, det_obsFiscoItem)

MsgBox msgResultado & vbCrLf & det, vbInformation, "Informação"



[vb] ' inicializar variáveis '...............................................

Dim objNFeUtil As Object

Set objNFeUtil = CreateObject("NFe_Util_2G.Util") ' '========grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)========= ' ' det_nItem = 1 ' informar o número do item, que deve ser sequencial crescente iniciado em 1 ' a quantidade máxima de itens é 990 det_produto = "xml produto" ' Deve ser informado com o XML obtido na funcionalidade produto det_imposto = "xml imposto" ' Deve ser informado com o XML obtido na funcionalidade 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

' ' novos campos da NT 2021/004 '

det_obsContItem = "" ' permite informar a observação do contribuinte


det_obsFiscoItem = "123456"

' ' gera grupo de detalhamento do produto ' ' string detalheNT2021004(int nItem, string produto, string imposto, string infAdProd_Opc, double pDevol_Opc, double vIPIDevol_Opc, string obsContItem_Opc, string obsFiscoItem_Opc)

det = objNFeUtil.detalheNT2021004(det_nItem, det_produto, det_imposto, det_infAdProd, det_pDevol, det_vIPIDevol, det_obsContItem, det_obsFiscoItem)

MsgBox msgResultado & vbCrLf & det, vbInformation, "Informação"


[vb] ' inicializar variáveis '...............................................

Dim objNFeUtil As Object

Set objNFeUtil = CreateObject("NFe_Util_2G.Util") ' '========grupo de informações detalhamento do produto e serviços(grupo I do Manual de Integração)========= ' ' det_nItem = 1 ' informar o número do item, que deve ser sequencial crescente iniciado em 1 ' a quantidade máxima de itens é 990 det_produto = "xml produto" ' Deve ser informado com o XML obtido na funcionalidade produto det_imposto = "xml imposto" ' Deve ser informado com o XML obtido na funcionalidade 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

' ' novos campos da NT 2021/004 '


det_obsContItem = "123456"


det_obsFiscoItem = "123456"

' ' gera grupo de detalhamento do produto ' ' string detalheNT2021004(int nItem, string produto, string imposto, string infAdProd_Opc, double pDevol_Opc, double vIPIDevol_Opc, string obsContItem_Opc, string obsFiscoItem_Opc)

det = objNFeUtil.detalheNT2021004(det_nItem, det_produto, det_imposto, det_infAdProd, det_pDevol, det_vIPIDevol, det_obsContItem, det_obsFiscoItem)

MsgBox msgResultado & vbCrLf & det, vbInformation, "Informação" ~~~

Importante

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

14.9. Item da NF-e NT 2021/004 [07-03-22]
14. Gerar XML da NF-e [23-12-13]
« Anterior
14.8.2.15. ICMSUFDest 4.00 [15-08-17]
Próximo »
14.10. Totais da NF-e [19-01-14]