Membros Pro leomcl Postado 20 Fevereiro Membros Pro Postado 20 Fevereiro Boa tarde. Após atualizar os fontes para a correção feita para o erro E0713, passou-se a ter outro erro (o E0701, relativo a CSLL), quando há PIS/COFINS não retido e empresa é lucro real: Mesmo não havendo valor de CSLL na NFSe, a tag vRETCSLL era adicionada ao XML, causando o erro. Vendo as discussões do @Juliomar Marchetti no discord com quem estava tendo esse problema, fiz uma correção, adicionando a seguinte condição: testei aqui e efetivou a NFSe. Segue anexo o arquivo para validação e possível subida pro SVN. Att, Leandro PadraoNacional.LerXml.pas
Joffas Postado 23 Fevereiro Postado 23 Fevereiro Estou recebendo esse erro ao atualizar o componente e usando a v1.01 2026-02-23 10:12:32.039 Código : E0713 2026-02-23 10:12:32.039 Mensagem: Para Não Optante o indicador de informação de valor total de tributos e o valor percentual aproximado do total dos tributos da alíquota do Simples Nacional (%) não podem ser informados. Pelo que entendi não é para ir essa tag... porem no fonte do componente quando é igual a indNao ela sempre vai. <totTrib> <indTotTrib>0</indTotTrib> </totTrib> Estou mandando assim... se eu coloco indSim da certo, alguém conseguiu resolver de outra forma?
Joffas Postado 23 Fevereiro Postado 23 Fevereiro Descobri tem que informar os percentuais de impostos... ai da certo 1
LuanParanhos Postado 24 Fevereiro Postado 24 Fevereiro Eu consegui resolver, só que no meu caso existe retenção de PIS + COFINS + CSLL, o componente soma tudo no valor do CSLL, o fim da nota fica certo, mas é tudo somado no CSLL, o layout fica aparecendo o valor do PIS, do COFINS e quando chega no CSLL, é a soma de todos os 3. Alguém sabe me dizer se o novo layout é assim?
geovanesilveira Postado 25 Fevereiro Postado 25 Fevereiro acredito que desse jeito resolva todos os casos, até então E0710 = Para MEI pTotTribSN nunca poderá ser informado. E0712 = Para ME/EPP indTotTrib nunca poderá ser informado E0713 = Para Não Optante do SN os campos, indicador de informação de valor total de tributos (indTotTrib) e percentual aproximado do total dos tributos da alíquota do Simples Nacional (%) (pTotTribSN), não podem ser informado. function TNFSeW_PadraoNacional.GerarXMLTotalTributos: TACBrXmlNode; begin Result := CreateElement('totTrib'); if (NFSe.Servico.Valores.totTrib.pTotTribFed > 0) or (NFSe.Servico.Valores.totTrib.pTotTribEst > 0) or (NFSe.Servico.Valores.totTrib.pTotTribMun > 0) then Result.AppendChild(GerarXMLPercentualTotalTributos) else if (NFSe.OptanteSN = osnOptanteMEEPP) then Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1, NFSe.Servico.Valores.totTrib.pTotTribSN, '')) else if (NFSe.OptanteSN = osnOptanteMEI) then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')) else Result.AppendChild(GerarXMLValorTotalTributos); end; os testes aqui não deram erro, e o xml sai assim, com os valores zerados e sem essas flags <totTrib> <vTotTrib> <vTotTribFed>0.00</vTotTribFed> <vTotTribEst>0.00</vTotTribEst> <vTotTribMun>0.00</vTotTribMun> </vTotTrib> </totTrib> PadraoNacional.GravarXml.pas 1
Joffas Postado 26 Fevereiro Postado 26 Fevereiro Você dever somar todos os valores e informar somente em: if fCofins+fPis+fCsll>0 then begin Servico.Valores.tribFed.tpRetPisCofins := trpiscofinscsllRetido; Servico.Valores.tribFed.vRetCSLL := round2(fCofins+fPis+fCsll); end;
Membro Pro Verificado Paulo Alexandre Hostert Postado 3 Março Membro Pro Verificado Postado 3 Março Atualizei os fontes e foi necessário ajustar o ponto que destaquei, alterando de "<>" para "=", pois a tag pTotTribSN só poder ser informada quando for "Sim". function TNFSeW_PadraoNacional.GerarXMLTotalTributos: TACBrXmlNode; begin Result := CreateElement('totTrib'); if (NFSe.Servico.Valores.totTrib.pTotTribFed > 0) or (NFSe.Servico.Valores.totTrib.pTotTribEst > 0) or (NFSe.Servico.Valores.totTrib.pTotTribMun > 0) then Result.AppendChild(GerarXMLPercentualTotalTributos) else if (NFSe.OptanteSN = osnOptanteMEEPP) then Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1, NFSe.Servico.Valores.totTrib.pTotTribSN, '')) else if (NFSe.Servico.Valores.totTrib.indTotTrib = indSim) then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')) else Result.AppendChild(GerarXMLValorTotalTributos); end; 1 1
eesoares Postado 4 Março Postado 4 Março Bom dia, Atualizei meus fontes ontem (03/03/2023) e após atualização estou recebendo o erro E0713 . Os valores estavam montados assim e emitia a NFS-e e agora estou recebendo o erro. Servico.Valores.tribFed.vPis := DM.qryUsu_T660NFV_usu_vlrpit.AsCurrency; Servico.Valores.tribFed.vCofins := DM.qryUsu_T660NFV_usu_vlrcrt.AsCurrency; if (DM.qryUsu_T660NFV_usu_vlrpit.AsCurrency + DM.qryUsu_T660NFV_usu_vlrcrt.AsCurrency > 0) then begin Servico.Valores.tribFed.vBCPisCofins := DM.qryUsu_T660NFV_usu_vlrtot.AsCurrency; Servico.Valores.tribFed.pAliqPis := 0.65; Servico.Valores.tribFed.pAliqCofins := 3; Servico.Valores.tribFed.tpRetPisCofins := trpcRetido; end; Servico.Valores.tribFed.vRetCP := DM.qryUsu_T660NFV_usu_vlrins.AsCurrency; Servico.Valores.tribFed.vRetIRRF := DM.qryUsu_T660NFV_usu_vlrirf.AsCurrency; Servico.Valores.tribFed.vRetCSLL := DM.qryUsu_T660NFV_usu_vlrcsl.AsCurrency+ DM.qryUsu_T660NFV_usu_vlrpit.AsCurrency+ DM.qryUsu_T660NFV_usu_vlrcrt.AsCurrency; Servico.Valores.totTrib.vTotTribFed := RoundABNT(DM.qryUsu_T660NFV_usu_vlrtot.AsCurrency * 0.0865, 2); Servico.Valores.totTrib.vTotTribEst := 0; Servico.Valores.totTrib.vTotTribMun := RoundABNT(DM.qryUsu_T660NFV_usu_vlrtot.AsCurrency * (Servico.Valores.Aliquota), 2); O que preciso alterar?
Membros Pro Gilvan Oliveira Postado 4 Março Membros Pro Postado 4 Março 14 horas atrás, Paulo Alexandre Hostert disse: Atualizei os fontes e foi necessário ajustar o ponto que destaquei, alterando de "<>" para "=", pois a tag pTotTribSN só poder ser informada quando for "Sim". function TNFSeW_PadraoNacional.GerarXMLTotalTributos: TACBrXmlNode; begin Result := CreateElement('totTrib'); if (NFSe.Servico.Valores.totTrib.pTotTribFed > 0) or (NFSe.Servico.Valores.totTrib.pTotTribEst > 0) or (NFSe.Servico.Valores.totTrib.pTotTribMun > 0) then Result.AppendChild(GerarXMLPercentualTotalTributos) else if (NFSe.OptanteSN = osnOptanteMEEPP) then Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1, NFSe.Servico.Valores.totTrib.pTotTribSN, '')) else if (NFSe.Servico.Valores.totTrib.indTotTrib = indSim) then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')) else Result.AppendChild(GerarXMLValorTotalTributos); end; Fiz isso e funcionou, value muito obrigado pela dica. 1
Membro Pro Verificado Paulo Alexandre Hostert Postado 4 Março Membro Pro Verificado Postado 4 Março 11 minutos atrás, eesoares disse: Em qual pasta e arquivo efetuo essa alteração? ACBR\Fontes\ACBrDFe\ACBrNFSeX\Provedores\PadraoNacional.GravarXml.pas
eraldocg Postado 4 Março Postado 4 Março NFSe.Servico.Valores.totTrib.indTotTrib:= indSim; // Para OCULTAR o <indTotTrib>0</indTotTrib> quando os totais estiverem zerados NFSe.Servico.Valores.totTrib.vTotTribMun := 0.0000001; // Artimanha para o valor ser maior que zero, passar na validação, e depois ser arredondado para ZERO. Em Porto Alegre-RS - padrao naiconal - empresa nao optante do simples nacional , isso vinha validando e funcionando normalmente desde dezembro de 2025. Após a atualização do ACBr, o problema citado no assunto deste fórum passou a ocorrer. Usei a dica acima e funcionou, mas percebi que houve alterações nesse comportamento, conforme o trecho abaixo. Acho importante verificar: [*] ACBR-8894 - Ajustes para gerar o campo pTotTribSN se o emitente for diferente de não Optante SN. Por: Italo Giurizzato Junior
Miro Callai Postado 4 Março Postado 4 Março Aqui eu resolvi assim: Servico.Valores.totTrib.indTotTrib := indSim; { <<== SOLUÇÃO PARA ERRO E0713 } 1
Sady Martins Postado 5 Março Postado 5 Março (editado) Em 03/03/2026 at 18:45, Paulo Alexandre Hostert disse: Atualizei os fontes e foi necessário ajustar o ponto que destaquei, alterando de "<>" para "=", pois a tag pTotTribSN só poder ser informada quando for "Sim". function TNFSeW_PadraoNacional.GerarXMLTotalTributos: TACBrXmlNode; begin Result := CreateElement('totTrib'); if (NFSe.Servico.Valores.totTrib.pTotTribFed > 0) or (NFSe.Servico.Valores.totTrib.pTotTribEst > 0) or (NFSe.Servico.Valores.totTrib.pTotTribMun > 0) then Result.AppendChild(GerarXMLPercentualTotalTributos) else if (NFSe.OptanteSN = osnOptanteMEEPP) then Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1, NFSe.Servico.Valores.totTrib.pTotTribSN, '')) else if (NFSe.Servico.Valores.totTrib.indTotTrib = indSim) then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')) else Result.AppendChild(GerarXMLValorTotalTributos); end; Solução corretíssima meu caro @Paulo Alexandre Hostert. Só falta o pessoal do ACBr aplicar a alteração. Já mandou pra eles? Obrigado! Editado 5 Março por Sady Martins
Membro Pro Verificado Paulo Alexandre Hostert Postado 5 Março Membro Pro Verificado Postado 5 Março 29 minutos atrás, Sady Martins disse: Solução corretíssima meu caro @Paulo Alexandre Hostert. Só falta o pessoal do ACBr aplicar a alteração. Já mandou pra eles? Obrigado! Acredito que o pessoal do ACBr acompanha aqui, ou será que devemos abrir um novo tópico? 1
Sady Martins Postado 5 Março Postado 5 Março 3 minutos atrás, Paulo Alexandre Hostert disse: Acredito que o pessoal do ACBr acompanha aqui, ou será que devemos abrir um novo tópico? Acho interessante abrir sim e também colocar no título algo como Erro NFS-e Padrão Nacional. Me parece que quando tem ERRO no título a resposta é mais rápida
Consultores Diego Foliene Postado 5 Março Consultores Postado 5 Março Bom dia a todos. Foi criada a tarefa ACBR-8093 para tratar do caso. Assim que houver novidades vamos reportar aqui. 1 Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Consultores Diego Foliene Postado 5 Março Consultores Postado 5 Março Boa tarde pessoal! Em 03/03/2026 at 18:45, Paulo Alexandre Hostert disse: Atualizei os fontes e foi necessário ajustar o ponto que destaquei, alterando de "<>" para "=", pois a tag pTotTribSN só poder ser informada quando for "Sim". Essa é a relação de conversão, ou seja, o enumerado e o valor que gera no XML: indNao => 0 indSim => 1 Se abrirmos o arquivo AnexoVI-LeiautesRN_RTC_IBSCBS-V1.03.00 – NT007.xlsx, podemos ver que o único valor válido para este tag é zero. Então na verdade é o contrário, essa tag só pode ser gerada quando o valor de indTotTrib for igual a indNao. Por isso a validação usa <> indSim para definir se deve gerar a tag indTotTrib ou se deve tentar gerar as tags de valores. Para a tag pTotTribSN, se pesquisarmos no mesmo arquivo por essa tag na planilha RN DPS_NFSe, podemos ver apenas duas rejeições atrelas a essa tag. Caminho no XML Campo Regra Efeito Código Msg. Erro NFSe/infNFSe/DPS/infDPS/valores/trib/totTrib/ pTotTribSN Se a situação do emitente da DPS perante o Simples Nacional na data de competência informada for Não Optante, indTotTrib e pTotTribSN nunca poderá ser informado. Rej. E0713 Para Não Optante do SN os campos, indicador de informação de valor total de tributos e percentual aproximado do total dos tributos da alíquota do Simples Nacional (%), não podem ser informado. Se a situação do emitente da DPS perante o Simples Nacional na data de competência informada for MEI, o choice pTotTribSN nunca poderá ser informado. Rej. E0710 Para MEI pTotTribSN nunca poderá ser informado. Observem que em ambos os casos, na mensagem de erro é mencionado o valor de opSimpNac. A primeira diz: "Para não Optante do SN" => Entendemos aqui opSimpNac com valor 1 - Não Optante "(...) percentual aproximado do total dos tributos da alíquota do Simples Nacional (%) não pode ser informado" => Entendemos como o campo pTotTribSN não pode ser informado. A segunda diz: "Para MEI" => Entendemos aqui opSimpNac com valor 2 - Optante - Microempreendedor Individual (MEI); pTotTribSN nunca poderá ser informado => Campo de mesmo nome não deve ser informado. Com essa interpretação, entendemos que apenas quando o valor de opSimpNac for igual "2 - Optante - Microempreendedor Individual (MEI);" é que o grupo pTotTribSN deverá ser gerado. Por isso a condição if (NFSe.OptanteSN = osnOptanteMEEPP) then nos fontes para a geração dessa tag. Eu fiz um teste em meu ambiente e a tag pTotTribSN foi gerada corretamente. Por favor, revisem suas rotinas para confirmarem o correto preenchimento das informações. Se alguém tiver um arquivo XML de uma NFS-e autorizado pelo ambiente nacional que contradiga a interpretação prévia dessas regra e justifique a alteração no código, peço que disponibilize o mesmo para análise através de tópico na Área Privada do Fórum Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
ericgg Postado 5 Março Postado 5 Março Talvez eu não esteja entendendo muito bem, mas pq nao poderia ser " = indNao"? Se o campo só pode existir com o não, ele é a única resposta válida. A ausencia do preenchimento do campo não engatilharia a criação do campo.
Sady Martins Postado 5 Março Postado 5 Março (editado) @Diego Foliene Acho que não estamos entendendo da mesma forma. Alí diz que se o emitente for "NÃO OPTANTE" os campos não podem existir No trecho de código if NFSe.Servico.Valores.totTrib.indTotTrib <> indSim then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')); Ele diz que: Se indTotTrib <> indSim (não é diferente de indSim) então ele grava o campo Mas a regra diz que SE FOR NÃO os campos não podem aparecer Já quanto a essa parte: Alí diz que, se a tag indTotTrib for informada (ao contrário do caso anterior onde ela não é informada) então ela deve obrigatoriamente ter valor 0. E, segundo meu entendimento, esse valor 0 nela indica que o cara opta pelo SN mas não quer informar os VALORES ESTIMADOS, que é outra coisa. Mas refere-se apenas a "valores estimados" Editado 5 Março por Sady Martins 1
Consultores Diego Foliene Postado 5 Março Consultores Postado 5 Março 1 hora atrás, Sady Martins disse: @Diego Foliene Acho que não estamos entendendo da mesma forma. Alí diz que se o emitente for "NÃO OPTANTE" os campos não podem existir No trecho de código if NFSe.Servico.Valores.totTrib.indTotTrib <> indSim then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')); Ele diz que: Se indTotTrib <> indSim (não é diferente de indSim) então ele grava o campo Mas a regra diz que SE FOR NÃO os campos não podem aparecer Já quanto a essa parte: Alí diz que, se a tag indTotTrib for informada (ao contrário do caso anterior onde ela não é informada) então ela deve obrigatoriamente ter valor 0. E, segundo meu entendimento, esse valor 0 nela indica que o cara opta pelo SN mas não quer informar os VALORES ESTIMADOS, que é outra coisa. Mas refere-se apenas a "valores estimados" Hmmm, acho que entendi o seu ponto. Se eu tiver o opSimpNac com a opção 1 de Não Optante a menos que eu explicitamente defina indTotTrib com valor indSim, ao invés de gerar as tags do vTotXXX zeradas ele sempre vai cair na geração dessa tag e isso vai devolver o E0713. Mas nesse caso não adianta eu mudar a condição de geração da tag usando indNao seja para = ou <>. E mudar ela para considerar indSim deixaria a lógica no mínimo estranha levando em conta que é o valor de indNao que ele usa para gerar a tag. Enviei ao SVN na Rev-45204 um ajuste alterando a inicialização desse valor. Ao invés de sempre começar com indNao por default, agora vai começar com indSim. Por favor, atualizem seus fontes, reinstalem o ACBr com a opção "Apagar Arquivos Antigos" e façam novos testes. Ficamos no aguardo de um retorno. 1 Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Membros Pro leomcl Postado 18 Março Membros Pro Postado 18 Março Em 26/02/2026 at 07:26, Joffas disse: Você dever somar todos os valores e informar somente em: if fCofins+fPis+fCsll>0 then begin Servico.Valores.tribFed.tpRetPisCofins := trpiscofinscsllRetido; Servico.Valores.tribFed.vRetCSLL := round2(fCofins+fPis+fCsll); end; Bom dia, amigos. Tentei utilizar esse trpiscofinscsllRetido no meu, e deu erro de schemas: E, conferi na pasta de schemas dos fontes do ACBr (atualizado), e está assim: Sabem me dizer se essa opção trpiscofinscsllRetido já está sendo aceita no padrão nacional? Grato, Leandro
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora