Logo NF-eNesse artigo, publico uma resumo das principais alterações necessárias para adaptar o código da sua aplicação de forma a validar a nova versão do XML da NFe 2.00 (Nfe 2G) e também, cito algumas alterações importantes que deverão ser realizadas no código para o calculo de imposto conforme empresa optante pelo Simples Nacional. Na verdade, a maior alteração, no meu ponto de vista, foram as novas tags para implementar os novos códigos de tributação para as empresas optantes pelo “Simples Nacional”.

Caso ainda não tenha feito, baixe agora mesmo o “Manual de Integração do Contribuinte (v4.01)”; as alterações promovidas foram destacadas em azul ou vermelho.

Não pretendo entrar em detalhes aqui sobre cada alteração, mas, formatar uma visão mais ampla e facilitar o entendimento dos pontos que devem ser vistos ou e revistos na aplicação.

Resumo principais alterações:

  • Atualização dos schemas de validação (PL 006): Foram embutidas novas regras de validação, o sistema é mais rigoroso; portanto, garanta que os dados estejam coesos para não haver surpresas desagradáveis. Os dados de imposto, por exemplo, vão ser conflitados com os valores dos itens.
  • As versões dos cabeçalhos: consultas, envio, etc; foram atualizadas para “2.00″.
  • Chave de Acesso NF-e (novo formato); entra o “tpEmis” (tipo emissão) e diminui um digito no “cNF” (codigonumérico); mantendo o mesmo tamanho da chave.
  • Cancelamento NF-e; agora será necessário enviar para o destinatário o XML da NF-e juntamente com o protocolo de cancelamento no ato do cancelamento do documento (semelhante à distribuição da NF-e quando é autorizada).
  • Modalidade Frete: inclusos mais duas modalidades; fincando assim: 0-Por Conta Emitente, 1-Por Conta Destinatário, 2-Por Conta Terceiros e 9-Sem Frete. Veja também novas tags na definição da transportadora, local de retirada, etc. O layout do DANFE sobre uma pequena alteração em função dessa mudança.
  • NCM – alterações importantes. Serviços/Outros deve informar “00″.
  • SIMPLES NACIONAL:
    • - Nova tag “CRT” (codigo de Regime Tributário do emitente): 1-Simples Nacional, 2-Simples Nacional excesso sublimite e receita bruta e 3-Regime Normal.
    • - Novas tag para calculo imposto qdo CRT = 1; novas tags contendo o CSOSN (codigo de situação tributária optante do Simples Nacional). Nesse caso veja no manual a tabela de valores para CSOSN 101,102,103,201,202,203,300,400,500 e 900). Funciona semelhante a CST atual, mas com tags distintas.

Resumo alterações do Laioute NF-e

<infNFe> A01
<ide> B01
* “versao”  = “v2.0″
* “Id” = “NFe+nova formato chave de acesso”.
* “cNF” = modificado tamanho de 9 para 8 digitos.
* “hSaiEnt” = nova tag na “ide” que deverá conter hora da saída das mercadorias formato “HH:MM:SS”.
..
<NFref>
* “refNFP” = novo grupo de tags dentro de “NFref” para informações de notas referenciadas de produtor rural
* “refECF” = novo grupo de tags dentro de “NFref” para informações de CUPOM FISCAL referenciado.
..
* “dhCont” = nova tag contendo informação da data e hora da entrada em contigencia; formato “AAAA-MM-DDTHH:MM:SS”.
* “xJust” = nova tag contendo a justificativa da entrada em contigência.
..
<emit> C01
* “fone” = modificado tamanho e validação.
* “CRT” = nova tag contendo o “Cóodigo de Regime Tributário” do emitente. Obrigatório.
..
<dest> E01
<enderDest> E05
* fone = modificado tamanho e validação.
..
* “ISUF” = nova tag contendo a inscrição SUFRAMA (se houver).
* “email” = nova tag contendo o e-mail do destinatário.
* “CNPJ” = modificado validação – tamanho 0-14.
* “CPF” = nova tag para iformar o CPF do destinatário qdo pessoa Física.
..
<retirada>
* “CNPJ” = modificado validação – tamanho 0-14.
* “CPF” = nova tag para iformar o CPF do destinatário qdo pessoa Física.
..
<entrega> G01
* “CNPJ” = modificado validação – tamanho 0-14.
* “CPF” = nova tag para iformar o CPF do destinatário qdo pessoa Física.
..
<det> H01
<prod> I01
* “NCM” = Codigo NCM, 8 digitos ou 02 digitos do gênero ou ainda “99″ para serviços.
* “qCom” = modificado tamanho e decimais.
* “vUnCom” = modificado tamanho e decimais. As informações aqui são meramente informativas; para efeito de calculo o valor unitario será obtido pela divisão de vProd e qCom.
* “qTrib” = modificado tamanho e decimais.
* “vUnTrib” = modificado tamanho e decimais. As informações aqui são meramente informativas; para efeito de calculo
o valor unitario será obtido pela divisão de vProd e qCom.
* “vOutro” = nova tag para informar outras despesas acessórias.
* “indTot” = nova tag para informar: 0 = o valor do item (vProd) não compõe o total da NF-e ou 1 – o valor do item
(vProd) compôe o valor total da NF-e.
* “xPed” = nova tag para conter o Numero do Pedido de Compra (informação de interesse emissor apenas).
* “nItemPed” = nova tag para conter o Numero do item no Pedido de Compra (informação de interesse emissor apenas).
<veicProd> J01
…possui alterações mas não estão listadas aqui.
<med> K01
* “nLote” – alterado tamanho campo para 1-20.
<comb> L01
…possui alterações mas não estão listadas aqui.
<imposto> M01
<icms> N01
<ICMS40> N07
* “vICMS” = nova tag – Valor do ICMS.
* “motDesICMS” = motivo da desoneração do ICMS (1-Táxi,2-Deficiente Físico, 3….).
<ICMS60> N08
* “vBCSTRet” = nova tag – Valor do BC do ICMS ST retido.
* “vICMSSTRet” = nova tag – Valor do ICMS ST retido.
* “vBCST” = *** tag excluída.
* “vICMSST” = *** tag excluída.
<ICMSPart> N10a (novo grupo de tags). Partilha de ICMS entre a UF origem e destino …
<ICMSST> N10b (novo grupo de tags) – repasse de ICMS retido.
<ICMSSN101> N10c (novo grupo de tags) – Grupo CRT = 1 -> Tributação pelo Simples Nacional – CSOSN=101
<ICMSSN102> N10d (novo grupo de tags) – Grupo CRT = 1 -> Tributação pelo Simples Nacional – CSOSN=102,103,300 ou 400.
<ICMSSN201> N10e (novo grupo de tags) – Grupo CRT = 1 -> Tributação pelo Simples Nacional – CSOSN=201
<ICMSSN202> N10f (novo grupo de tags) – Grupo CRT = 1 -> Tributação pelo Simples Nacional – CSOSN=202 ou 203.
<ICMSSN500> N10g (novo grupo de tags) – Grupo CRT = 1 -> Tributação pelo Simples Nacional – CSOSN=500
<ICMSSN900> N10h (novo grupo de tags) – Grupo CRT = 1 -> Tributação pelo Simples Nacional – CSOSN=900

<IPI> O01
<IPITrib> o07
* “pIPI”, “qUnid” e “vUnid” essas tags tiveram as posições (ordem) trocadas no XML.
..
<transp> X01
* “modFrete” = incluso novos valores possíveis (1-Emitente,2-Destinatario,2-Terceiros** e 9-sem Frete**).
<transporta> X03
* “IE” = nova tag contendo inscrição estadual quando transportador for contribuinte do ICMS ou “ISENTO”.
* “UF” = validação modifica, se “IE” for preenchida então “UF” deve ser informada.
<veicTansp> X18 ** ver Manual
..
<reboque> X22 ** Ver Manual
..
* vagao = nova tag para identificação do vagão.
* balsa = nova tag para identificação da balsa.
..
<cana> ZC01 (novo grup de tag) – Informações do Registro de Aquisição de Cana.

Modificações prováveis no sistema (ERP):

Alêm dos ajustes dos protocolos de transmissão e recepção da NFe. Alterações no programa que gera o XML da NF-e; existem diversas informações que deverão ser embutidas no software para poder informar na geração da NFe; cito algumas delas:

  • Novos campos no cadastro da loja para informar o CRT (código de regime tributário) da Empresa.
  • Nova tabela CSOSN (codigo tributação produtos para optantes do simples nacional).
  • Novas rotinas de calculo do ICMS de acordo com a CSOSN (se houver).
  • Melhor validação dos dados para evitar rejeições; devido a novas críticas impostas no validado NF-e 2G.
  • Modificação da tabela de modalidades de frete para comportar os novos itens.
  • Modificações na tabela CFOP (ver notas técnicas).
  • Modificações na tabela PIS/COFINS (ver notas técnicas).

Conclusão:

Espero que esse resumo seja util para que os colegas possam identificar e organizar de forma mais rápida e eficiente os trabalhos de conversão do sistema para a NFe 2G. É importante ressaltar mais uma vez que a leitura do “Manual de Integração do Contribuinte” e “Notas Técnicas” é indispensável para o completo entendimento do processo.

Fonte: Manual de Integração do Contribuinte V4.01

Dica: Componentes gratuítos, parcialmente gratuítos ou e comerciais para “turbinar” o seu projeto NF-e 2G:

  • NFE_UTIL.DLL (flexdocs; parcialmente gratuíto)
  • ACBrNFe (projeto ACBr projeto Open Source).
  • TKS (comercial).

Posts Relacionados

Tags:



22 Comentários

  • At 2010.12.22 15:43, Mauro Otoni said:

    Ola Caio,

    Uma dúvida, pelo que entendi as Empresas optantes do simples nacional CRT = 1 deverão informar o CSOSN. Esta substitui a informação CST ???

    Ou deverá conter as duas (CSOSN E SCT) ????

    • At 2010.12.23 20:59, admin said:

      Olá Mauro,

      Quando a Empresa for optante do Simples Nacional (CRT=1) a informação da CSOSN substituir a CST. Ou seja, na tag IMPOSTO/ICMS vai constar uma nova tag ICMSSN??? ao invés das ICMS?? como era antes.

      abços

      • At 2010.12.31 12:40, Mauro Otoni said:

        Ola Caio, obrigado pela sua resposta, estou com mais uma dúvida, se você puder me ajudar. desde já agradeço.

        Eu estou começando a criar um aplicativo da NFe,
        gostaria de saber como Vc trata a questão do controle de número da NFe.

        No meu caso, quando o usuário acessar a tela para emitir uma nota o sistema “pega” o número da última emitida acrescida de 1 (pois o aplicativo necessita deste número para o calculo do DV para compor a chave de acesso). Se por um acaso este usuario por algum motivo não concluiu a emissão desta nota e uma outra nota foi emitida, esta última irá ter um número q/ quebra a sequencia.

        Espero não ter complicado muito e você possa ter entendido minha pergunta.

        Valeu

        Mauro.

        • At 2011.01.03 10:10, admin said:

          Olá Mauro,

          Nós geramos o número da NF somente após o usuário concluir a edição da mesma; assim vc evita o problema.

          Sds

          • At 2011.01.04 13:44, Mauro Otoni said:

            Ola Caio

            veja meu Xml gerado ->

            -

            -
            -
            51
            000001

            -
            -
            1121231111
            7891133005801
            ABRACADEIRA C/PREGO FMX 6 BR – 580
            5102

            -
            -
            2121231111
            7891133005801
            ABRACADEIRA C/PREGO FMX 6 BR – 580
            5102

            Estou tentando gerar o xml da NFe versao 2.0
            repare que na tag “>>>

            procedure TFrNFEletr.MontaXML;
            var vXMLDoc: TXMLDocument;
            NodeNivelA, NodeNivelB, NodeNivelC, NodeNivelD: IXMLNode;
            nItens : integer;
            begin

            vXMLDoc := TXMLDocument.Create(self);
            Try
            With vXMLDoc do begin
            Active := True;
            Version := ’1.0′;
            Encoding := ‘UTF-8′;
            AddChild(‘nfeProc’,'http://www.portalfiscal.inf.br/nfe’);
            ChildNodes['nfeProc'].Attributes['versao'] := ’2.00′;
            //

            // A – Dados da Nota Fiscal eletrônica
            NodeNivelA := DocumentElement;
            //
            NodeNivelA.AddChild(‘NFe’);
            NodeNivelA.ChildNodes['NFe'].Attributes['xmlns'] := ‘http://www.portalfiscal.inf.br/nfe’;

            // Adiciona a Tag
            NodeNivelA.AddChild(‘infNFe’);
            NodeNivelA.ChildNodes['infNFe'].Attributes['versao'] := ’2.00′;
            // Adiciona atributo “Id” da Tag anterior
            NodeNivelA.ChildNodes['infNFe'].Attributes['Id'] := ‘NFe31232131232132131231221312312312′;
            // Adiciona atributo “versao” da Tag anterior
            // B – Identificação da Nota Fiscal eletrônica
            NodeNivelB := NodeNivelA.ChildNodes['infNFe'];
            NodeNivelB.ChildNodes['ide'].AddChild(‘cUF’).NodeValue := ’51′ ;
            NodeNivelB.ChildNodes['ide'].AddChild(‘cNF’).NodeValue := ’000001′;

            // Exemplo Adiciona Itens
            For nItens := 1 to 2 do
            begin
            // adiciona tag com attributo
            NodeNivelC := NodeNivelB.AddChild(‘det’);
            NodeNivelB.ChildNodes.Last.Attributes['nitem'] := IntToStr(nItens);

            // adiciona tag à partir da tag
            NodeNivelD := NodeNivelC.ChildNodes['prod'];
            NodeNivelD.AddChild(‘cProd’).Nodevalue := IntToStr(nItens)+’121231111′;
            NodeNivelD.AddChild(‘cEan’).Nodevalue := ’7891133005801′;
            NodeNivelD.AddChild(‘xProd’).Nodevalue := ‘ABRACADEIRA C/PREGO FMX 6 BR – 580′;
            NodeNivelD.AddChild(‘CFOP’).Nodevalue := ’5102′;
            // …..
            end;

            //Memo4.Text := vXMLDoc.Encoding;
            vXMLDoc.SaveToFile(‘C:\Users\Otoni\Desktop\EnviNFe.xml’);
            end;
            finally
            vXMLDoc.Free;
            end;

            end;

            grato pela atencao,
            valeu

            • At 2011.01.05 14:44, Mauro Otoni said:

              Ola Caio,

              a ultima menssagem enviada esta truncada. Fv desconsiderar.

              me desculpe.

              • At 2011.01.06 15:31, Mauro Otoni said:

                Ola Caio,
                Mais uma vez gostaria de contar com sua ajuda, como eu faço para incluir a tag “total” depois dos itens da NFe, ja tentei varias formas, mais ela sempre aparece antes da tag “dest”, Vc teria um exemplo, estou quebrando a cabeça aqui, e não consegui.

                valeu

                • At 2011.01.25 07:21, Adriano Parisi said:

                  Olá caio,

                  Gostaria de saber qual é a utilidade do campo indTot na versão 2.00 , quando ele é 0 (o valor do item não compõe o valor total da NFe) ou 1 (o valor do item compõe o valor total da NFe)

                  Desde já agradeço

                  • At 2011.03.11 14:48, wilson tadeu said:

                    Sou uma empresa do simples nacional, o codigo 202 não está abatendo o icms da operação propria, consequentemente o icms da subst. tributária esta saindo a maior o que devo fazer ?

                    • At 2011.03.11 15:29, admin said:

                      Olá Wilson,

                      No cálculo do subst. tributária, o sistema deve diminuir do valor da ST o valor do ICMS calculado na operação. Isso tem que estar automatizado no sistema.

                      Sds

                      • At 2011.03.11 16:01, wilson tadeu said:

                        como ficaria o calculo desta nota no sistema novo.
                        base de icms…100,00
                        aliquota (MG) 12%
                        vlr. icms 12,00

                        mva 50,00 %
                        % da redução bcicms 12,00%
                        vlr base calculo icms st: 150,00 x 17% = 25,50
                        icms subst. trib. 25,50- 12,00= 13,50
                        valor total da nota= 100,00 + 13,50= 113,50.
                        Como ficaria esta nota no simples nacional csosn 202
                        aliquota icms 17%; 13,50

                        • At 2011.03.11 17:54, admin said:

                          Olá Wilson,

                          O Cálculo abaixo conforme dados informados seria:

                          Valor Total Produto R$ 100,00
                          Base ICMS R$ 100,00
                          Aliq. ICMS %12
                          Subst. Tributária:
                          Aliq. ICMS_ST %12
                          Redução Base ICMS ST %12
                          MVA %50

                          Base ICMS = R$ 100,00
                          Valor ICMS = R$ 12,00
                          Base Subst.Tributária = R$100,00 + %50 = R$ 150,00
                          BAse Subst.Trib.Reduzida = R$ 150 – %12 = R$ 132,00
                          Valor Subst. Trib. = R$ 3,84

                          Sds

                          • At 2011.03.24 12:12, Rogério Alves said:

                            Oi Caio, parabéns pela iniciativa.
                            Há muito tempo sou leitor do seu blog mas nunca havia comentado.

                            Minha questão é a seguinte. a tag vprod dos produtos devem ter abatido o desconto do item e acrescentado o frete individual?
                            ou isso deve ser feito apenas na base?

                            • At 2011.03.24 13:27, admin said:

                              Olá Rogério Alves,

                              Obrigado, legal que têm sido útil para vc. Também tivemos problemas em validar as NFe 2 com frete; o frete deve ser destacado individualmente (em cada produto) na tag “vFrete” e o total na tag “total\vFrete”.

                              Sds

                              • At 2011.03.29 16:34, Matheus Máximo said:

                                Olá Caio,

                                Parabéns pelo blog! É muito bom e fácil de entender!

                                Gostaria de, se possível, tirar umas dúvidas contigo em relação ao período de transição da NFe 1.10 para 2.0:
                                - Notas enviadas pela NFe 1.10 poderão ser canceladas pela versão 2.0? Ou ainda devemos mandar cancelar obedecendo o layout 1.10?

                                - A inutilização do mês de março será informada com base no layout do mês de março (1.10) ou de abril(2.0)?

                                Desde já grato pelos esclarecimentos,

                                Matheus

                                • At 2011.03.29 17:21, admin said:

                                  Olá Matheus,

                                  Obrigado. Bom saber que as informações tem sido úteis. O Cancelamento/Inutilização a partir do momento que implantar a 2G usará sempre o leiaute da 2G; outros leiautes a partir de 01/04 serão rejeitados.

                                  sds.

                                  • At 2011.04.05 08:31, Vagner said:

                                    Matheus, Em contato com o 0800 da SEFAZ/PR, para o CANCELAMENTO o mesmo devera ocorrer aonde a NF-e foi autorizada independente de ser 31/03 ou 01/04.

                                    • At 2011.04.12 20:35, Alex said:

                                      Olá Mauro!
                                      Quando comecei a usar o emissor 2.0 a numeração começou do zero, tentei colocar a numeração sequencial do emissor1.10 mecanicamente mas na hora de assinar a nota o sistema não aceitou então deixei começar do 01 e o sistema aceitou,minha pergunta é a seguinte;posso fazer minhas notas começando do 01 neste novo programa?E se eu fizer poderei ser multado por isso? Um abraço , espero resposta. Alex

                                      • At 2011.04.12 20:55, Alex said:

                                        Caio! Peço desculpas troquei o seu nome por Mauro.
                                        Grato! Alex.

                                        • At 2011.04.12 22:17, admin said:

                                          Olá Alex,

                                          Sem problemas. Quanto a sua dúvida; repare que vc não vai conseguir emitir NFe com número que já fora utilizado anteriormente, o sistema da SEFAZ vai acusar rejeição!. Com isso, fica claro que vc. deve prosseguir com a numeração a partir do ultimo número utilizado.

                                          Sds

                                          • At 2011.04.13 11:17, ALEX said:

                                            Olá caio!
                                            Referente ao seu comentario com relação a minha pergunta;eu tentei prosseguir com a numeração anterior ,que,era 140 no 1.10.Quando iniciei no 2.0 e,coloquei como nota 141 ,na hora de assinar o sistema da sefaz acusava erro,então comecei a fazer nota a partir da 01 , hoje estou na 09 .O que não ficou esclarecido para mim é se eu deveria ter conseguido continuar a nota 141.O emissor que uso é o gratuito da sefaz.Grato pela atenção. Alex.

                                            • At 2011.04.15 11:12, admin said:

                                              Olá Alex,

                                              Muito estranho, provavelmente vc. deve ter esses números não utilizados, pois, não seria possível usar a mesma numeração mais de uma vez. Pode ser que quando atingir uma numeração que já tenha sido usada, digamos, mais próximo ao 141 vc. pode ter problema e, nesse caso, terá que adiantar a numeração para prosseguir a partir de 141.

                                              Sds

                                              You must be logged in to post a comment.