Ir para conteúdo
  • Cadastre-se

dev botao

NFSeX MEI


Antonio Gomes
Ver Solução Respondido por Antonio Gomes,
  • Este tópico foi criado há 227 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

MEI, Padrao nacional, empresa de minas, para minas.

Em uma emissão de empresa mei, via sistema, ocorre essa falha:

"E0330-É obrigatório prestar informações de todos os campos relativos ao comércio exterior para as situações de exportação de serviços., X203-Não foi retornado nenhuma NFSe."

Alguém que já tenha passado por isso, os paises e cidade estão tudo dentro do brasil.

Não é servico no exterior, cidades de MG, pais 1058.

Falha ocorre ao tentar transmitir a DPS.

DPS gerada pelo sistema:

<DPS xmlns="http://www.sped.fazenda.gov.br/nfse" versao="1.00">
    <infDPS Id="DPS316990123382041700015000001000000000000001">
        <tpAmb>1</tpAmb>
        <dhEmi>2023-09-05T00:00:00-03:00</dhEmi>
        <verAplic>Sis_2.23.8.30</verAplic>
        <serie>1</serie>
        <nDPS>1</nDPS>
        <dCompet>2023-09-04</dCompet>
        <tpEmit>1</tpEmit>
        <cLocEmi>3169901</cLocEmi>
        <prest>
            <CNPJ>000000000000</CNPJ>
            <IM>00000</IM>
            <xNome>empresa</xNome>
            <end>
                <endNac>
                    <cMun>3169901</cMun>
                    <CEP>36507000</CEP>
                </endNac>
                <xLgr>R. xxx</xLgr>
                <nro>00093</nro>
                <xBairro>bairro do prestador</xBairro>
            </end>
            <fone>00000000</fone>
            <email>[email protected]</email>
            <regTrib>
                <opSimpNac>2</opSimpNac>
                <regEspTrib/>
            </regTrib>
        </prest>
        <toma>
            <CNPJ>00000000000000</CNPJ>
            <xNome>cliente</xNome>
            <end>
                <endNac>
                    <cMun>3156304</cMun>
                    <CEP>36510000</CEP>
                </endNac>
                <xLgr>AV x</xLgr>
                <nro>10</nro>
                <xBairro>bairro</xBairro>
            </end>
            <fone>32000000000</fone>
            <email>[email protected]</email>
        </toma>
        <serv>
            <locPrest>
                <cLocPrestacao>3169901</cLocPrestacao>
            </locPrest>
            <cServ>
                <cTribNac>140201</cTribNac>
                <xDescServ>assistencia tecnica</xDescServ>
                <cNBS>115013000</cNBS>
            </cServ>
        </serv>
        <valores>
            <vServPrest>
                <vServ>390.60</vServ>
            </vServPrest>
            <trib>
                <tribMun>
                    <tribISSQN>1</tribISSQN>
                    <tpRetISSQN>1</tpRetISSQN>
                </tribMun>
                <totTrib>
                    <indTotTrib>0</indTotTrib>
                </totTrib>
            </trib>
        </valores>
    </infDPS>
</DPS>

Grato por uma dica qualquer.

Link para o comentário
Compartilhar em outros sites

  • Solution
3 horas atrás, Antonio Gomes disse:

MEI, Padrao nacional, empresa de minas, para minas.

Em uma emissão de empresa mei, via sistema, ocorre essa falha:

"E0330-É obrigatório prestar informações de todos os campos relativos ao comércio exterior para as situações de exportação de serviços., X203-Não foi retornado nenhuma NFSe."

Alguém que já tenha passado por isso, os paises e cidade estão tudo dentro do brasil.

Não é servico no exterior, cidades de MG, pais 1058.

Falha ocorre ao tentar transmitir a DPS.

DPS gerada pelo sistema:

<DPS xmlns="http://www.sped.fazenda.gov.br/nfse" versao="1.00">
    <infDPS Id="DPS316990123382041700015000001000000000000001">
        <tpAmb>1</tpAmb>
        <dhEmi>2023-09-05T00:00:00-03:00</dhEmi>
        <verAplic>Sis_2.23.8.30</verAplic>
        <serie>1</serie>
        <nDPS>1</nDPS>
        <dCompet>2023-09-04</dCompet>
        <tpEmit>1</tpEmit>
        <cLocEmi>3169901</cLocEmi>
        <prest>
            <CNPJ>000000000000</CNPJ>
            <IM>00000</IM>
            <xNome>empresa</xNome>
            <end>
                <endNac>
                    <cMun>3169901</cMun>
                    <CEP>36507000</CEP>
                </endNac>
                <xLgr>R. xxx</xLgr>
                <nro>00093</nro>
                <xBairro>bairro do prestador</xBairro>
            </end>
            <fone>00000000</fone>
            <email>[email protected]</email>
            <regTrib>
                <opSimpNac>2</opSimpNac>
                <regEspTrib/>
            </regTrib>
        </prest>
        <toma>
            <CNPJ>00000000000000</CNPJ>
            <xNome>cliente</xNome>
            <end>
                <endNac>
                    <cMun>3156304</cMun>
                    <CEP>36510000</CEP>
                </endNac>
                <xLgr>AV x</xLgr>
                <nro>10</nro>
                <xBairro>bairro</xBairro>
            </end>
            <fone>32000000000</fone>
            <email>[email protected]</email>
        </toma>
        <serv>
            <locPrest>
                <cLocPrestacao>3169901</cLocPrestacao>
            </locPrest>
            <cServ>
                <cTribNac>140201</cTribNac>
                <xDescServ>assistencia tecnica</xDescServ>
                <cNBS>115013000</cNBS>
            </cServ>
        </serv>
        <valores>
            <vServPrest>
                <vServ>390.60</vServ>
            </vServPrest>
            <trib>
                <tribMun>
                    <tribISSQN>1</tribISSQN>
                    <tpRetISSQN>1</tpRetISSQN>
                </tribMun>
                <totTrib>
                    <indTotTrib>0</indTotTrib>
                </totTrib>
            </trib>
        </valores>
    </infDPS>
</DPS>

Grato por uma dica qualquer.

Bug encontrado:

Ao dar loadfromfile no arquivo de DPS, o campo Servico.CodigoPais, vem com valor -1, ao inves de zero, fazendo com que coloque um ZZ no xml de envio.

bug nessa funcao:

function TNFSeW_PadraoNacional.GerarLocalPrestacao: TACBrXmlNode;
begin
  Result := CreateElement('locPrest');

  Result.AppendChild(AddNode(tcStr, '#1', 'cLocPrestacao', 7, 7, 0,
                                             NFSe.Servico.CodigoMunicipio, ''));

  if (NFSe.Servico.CodigoPais <> 0) and (NFSe.Servico.CodigoPais <> 1058) then
    Result.AppendChild(AddNode(tcStr, '#1', 'cPaisPrestacao', 2, 2, 0,
                          CodIBGEPaisToSiglaISO2(NFSe.Servico.CodigoPais), ''));
end;

quando vem NFSe.Servico.CodigoPais = -1, CodIBGEPaisToSiglaISO2 retorna: 'ZZ'

 

@Italo Giurizzato Junior

 

Olha se pode ser corrigido com isso?
unit PadraoNacional.LerXml; 

Linha 904

procedure TNFSeR_PadraoNacional.LerLocalPrestacao(const ANode: TACBrXmlNode);
var
  AuxNode: TACBrXmlNode;
begin
  AuxNode := ANode.Childrens.FindAnyNs('locPrest');

  if AuxNode <> nil then
  begin
    with NFSe.Servico do
    begin
      CodigoMunicipio := ObterConteudo(AuxNode.Childrens.FindAnyNs('cLocPrestacao'), tcStr);
      CodigoPais := SiglaISO2ToCodIBGEPais(ObterConteudo(AuxNode.Childrens.FindAnyNs('cPaisPrestacao'), tcStr));
      if CodigoPais < 0 then //// aqui
        CodigoPais := 0; // aqui
    end;
  end;
end;

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Antonio,

Favor anexar a unit alterada para que possamos analisar.

Desde já muito obrigado pela colaboração.

Outra coisa importante:

No que se refere ao prestador no DPS informe somente o CNPJ, fone, email e o grupo regTrib com os campos opSimpNac e regEspTrib.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Pois é Italo, alem dessa falha do ZZ, vi que está relacionado o erro, com aquele erro da mensagem seguinte que passei, do "Exportacao de servico", pelo fato da ordem ser inversa, logo, passa pedir dados do pais.

A unit eu fiz gambia, pq precisava testar mais coisas.

Agora, Antonio Gomes disse:

Pois é Italo, alem dessa falha do ZZ, vi que está relacionado o erro, com aquele erro da mensagem seguinte que passei, do "Exportacao de servico", pelo fato da ordem ser inversa, logo, passa pedir dados do pais.

A unit eu fiz gambia, pq precisaPadraoNacional.LerXml.pasva testar mais coisas.

faltou a unit o que fiz, a direita na imagem

image.thumb.png.2875d511ebd7b30fab552996cfa1431a.png

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Antonio,

Não seria o caso de mudar a função abaixo?

function SiglaISO2ToCodIBGEPais(const t: string): Integer;
var
  i: Integer;
begin
  Result := -1;   <==== mudar aqui para zero

  for i := Low(SiglaISO2Pais) to High(SiglaISO2Pais) do
  begin
    if SiglaISO2Pais[i] = t then
    begin
      Result := CodigoIBGEPais[i];
      exit;
    end;
  end;
end;

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Antonio,

Se foi eu lhe peço desculpas.

Mas temos que analisar todos os fontes com alterações enviados por vocês, pois tivemos casos de aceitar colaboração e esta acabou gerando um efeito colateral com outros provedores.

Outra coisa ao enviar alguma contribuição, envie somente a unit alterada e procure sempre fazer a alteração com os fontes atualizados.

Você concorda que a função SiglaISO2ToCodIBGEPais retorna -1 caso não encontre a tag cPaisPrestacao não exista no XML.

Desta forma ao tentar gerar novamente o XML, vai acabar gerando  a tag com o valor ZZ.

Se alterarmos a função para retornar o valor zero em vez de -1, não vamos precisar do IF que você incluir na unit que faz a leitura do XML.

Desta forma resolvemos esse problema e se amanhã aparecer outro provedor que se utilize da mesma função não teremos que lembrar de colocar o IF, pois não teremos o mesmo problema que você esta enfrentando.

Mais uma vez muito obrigado pelos testes, analise e apontar uma solução para o problema.

Toda colaboração é sempre bem vinda, pois todos nós saímos ganhando.

Você encontrou um erro, outros podem encontrar outros erros, se todos vão nos passando esses erros e uma possível solução, repito todos saem ganhando, pois o componente se torna a cada dia mais robusto.

  • Curtir 3
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Se foi eu lhe peço desculpas.

águas passadas.. esquece.

----------

De fato, se arrumar ali, resolve o problema :)) mas...

Pois, o fonte tem flag, de diferente de zero nos testes... há alguns casos, que testam > 0, é ate plausivel, dado, que esses locais, um vetor não tera -1 como elemento.

Ou nem retornar o ZZ, mas vazio, alguem botou aquele -1 ali, pensando em não ter o elemento.

Se alguem botou pensando nao achar a UF, logo, a correção, deve ser onde está o ZZ, se for -1, manter vazio ao inves do ZZ.

debata com a equipe.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Antonio,

Existe esse ZZ pois ele consta na tabela (Anexo A) disponibilizado no Portal Nacional da NFS-e.

Veja:

image.png

Mas realmente precisamos analisar mais afundo essa questão.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Italo Giurizzato Junior disse:

Antonio,

Existe esse ZZ pois ele consta na tabela (Anexo A) disponibilizado no Portal Nacional da NFS-e.

Veja:

image.png

Mas realmente precisamos analisar mais afundo essa questão.

analisando o material, do portal https://www.gov.br/nfse/pt-br/documentacao-tecnica/anexoiv-leiautesrn_adn-snnfse_v1-00-02-producao.xlsx/view

o campo cPaisPrestacao, na linha 138 é  de ocorrencia 1-1, logo, aquele teste que se é diferente de 1058, se ele nao existir, resolve isso tá.. Pois está com 2 testes apenas, diferente de zero e de 1058, logo, qq coisa alem disso, vai colocar errado no xml, dai, vai aquele ZZ lascado (será que esse ZZ nao seria para os casos tipo ja ocorre com o 999999 (qq coisa) ? Pq para mim, qualquer abaixo de zero, é inutil, e nem a turminha do governo usaria negativo.

Por hora, vou comentar esse <> 1058 e testar, se aceitam o xml

 

image.thumb.png.ec1b0b11ffb3c7a69affaa0c343069e3.png

 

Editado por Antonio Gomes
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Antonio,

Eu sempre me baseio nos schemas.

Segundo os schemas temos:

  <!--TIPO COMPLEXO PARA INFORMAÇÕES DO LOCAL DA PRESTAÇÃO DO SERVIÇO-->
  <xs:complexType name="TCLocPrest">
    <xs:sequence>
      <xs:element name="cLocPrestacao" type="TSCodMunIBGE" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Código do município onde o serviço foi prestado (tabela do IBGE)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="cPaisPrestacao" type="TSCodPaisISO" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Código do país onde o serviço foi prestado (Tabela de Países ISO)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

Como você pode notar tanto a tag cLocPrestacao quanto cPaisPrestacao são opcionais (numero mínimo de ocorrências é zero).

Se o local da prestação do serviço for um município brasileiro devemos informar o código IBGE do mesmo, por outro lado se o local for fora do Brasil devemos informar a sigla na tag cPaisPrestacao.

O que diz o Manual:

image.png

Como você pode ver não existe nenhuma indicação que devemos informar 9999999 em cLocPrestacao se for exterior e a sigla e por outro lado se não for exterior não devemos informar BR em cPaisPrestacao.

O que eu entendi referente a tabela que contem as siglas dos países, mais precisamente a ultima linha que contem o ZZ:

ZZ = Município não possui a informação no sistema próprio.

Ao cadastrar o tomador não foi informado o pais do mesmo, neste caso devemos informar ZZ em cPaisPrestacao.

Observação importante:

O Anexo IV - LeiautesRN_ADN-SNNFSe_V1.00.02 tem haver com o compartilhamento de dados entre os municípios e a ADN, quando o município aderiu somente o compartilhamento.

Veja:

image.png

Já o Anexo I - LeiautesRN_DPS_NFSe-SNNFSe_v1.00.02 tem o layout do DPS que é gerado e enviado pelo contribuinte para o ADN - Ambiente de Dados Nacional.

Como você pode ver é muito fácil se perder com a documentação disponibilizada da NFS-e Padrão Nacional.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Rapaz, que confusão...

Então, o erro pode ser so aquele exportacao de servico tá, se o zz ta correto, exceto se for BR... vou mandar como esta no demo e vida que segue.

tributação do issqn ali

image.thumb.png.0f8491b9b02a6035f88610ed61be5c85.png

Talvez o intojo seja porque foi 3 ali, exportacao de servico, dai, gerou toda pilha da api, pedindo pais...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Antonio,

Além de mim, existem mais desenvolvedores cobrando do pessoal envolvido no desenvolvimento da API, Schemas e Manuais que tudo esteja em conformidade.

Não podemos ter o Manual com uma informação, Schema com outra e a API outra.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Antonio, 

É um grupo privado, hoje esta muito difícil adicionar mais membros. 

Tenho contato de um servidor da RFB e passo tudo para ele.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 227 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.