Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Consultores
Postado

Boa noite André,

Quanto ao certificado A3 iremos analisar.

Com relação ao campo Informações Complementares, a resposta é simples:

Não existe esse campo no layout do RPS, logo ele não vai ser gerado.

Ele existe no layout da NFS-e cujo XML é gerado pelo provedor e ele põe nesse campo o que a prefeitura mandar, caso contrario não será gerado nada também.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
13 horas atrás, Italo Jurisato Junior disse:

Boa noite André,

Quanto ao certificado A3 iremos analisar.

Com relação ao campo Informações Complementares, a resposta é simples:

Não existe esse campo no layout do RPS, logo ele não vai ser gerado.

Ele existe no layout da NFS-e cujo XML é gerado pelo provedor e ele põe nesse campo o que a prefeitura mandar, caso contrario não será gerado nada também.

Bom Dia Italo, tudo bem?
Qto ao  A3, ficamos no aguardo...

Qto as informações complementares, é complicado essa smar, pois se fizer a nota pelo site, tem o campo para colocar essas informações complementares, aI o cliente esta questionando, vc tem alguma dica para que eu possa informar essas informações complementares.

Grato

  • Consultores
Postado

Bom dia André,

Você há de concordar que emitir a NFS-e via site, não temos o tal do RPS, correto?

Sendo assim o provedor poderá disponibilizar um campo para que o contribuinte possa digitar essas informações.

No caso de Sertãozinho o provedor é SmarAPDABRASF, esse provedor segue a versão 2 do layout da ABRASF.

Solicite ao provedor o manual da ABRASF e procure nele por OutrasInformacoes veja onde essa tag esta definida.

O provedor se não me falha a memória se utiliza da versão 2.04, eu tenho o manual da versão 2.02 e neste essa tag esta definida dentro do tipo complexo: tcInfNfse.

Na estrutura do XML do RPS ela não aparece em nenhum lugar, somente dentro da estrutura da NFS-e.

Logo concluímos que essa tag é gerada e retornada pelo provedor, ao gerar o XML da NFS-e.

Com o manual em mãos você terá argumentos para mostrar ao seu cliente que o que ele deseja fazer não é possível.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom Dia @Italo Jurisato Junior, obrigado pela resposta, vou questionar o provedor, eu concordo que via site as coisas podem ser diferentes, como como vc falou tenho que ter argumento para os clientes.
No caso o cliente coloca nos dados adicionais, informações tipo Numero do pedido do cliente dele , forma de pagamento, etc, são informações q o cliente dele pede, no caso se especificar isso junto no campo da descrição do serviço seria uma correto.

Italo, uma outra duvida é qto a certificado A3, voltei a fazer testes e nao consigo consumir o WS, eu consigo assinar o xml mas nao consumir o WS, fiz um teste ontem gerei e assinei o xml com certificado A3, depois entrei no site e importei o XML do rps e foi normal, em contato com a Smarapd, o suporte deles dizem que nao tem nenhuma restrição no WS que impeça uma conexão com certificado A3. Estou sem saber o que fazer

Obrigado pela atenção

Postado

@Italo Jurisato Junior,
Italo, em anexo segue um xml que baixei no site da Smarapd, é um xml de exemplo,  e nesse xml tem a tag:

     <InformacoesComplementares>INFORMACAO EXTRA BLA BLA BLA </InformacoesComplementares>

É um xml de rps, e nao o xml processado, entao acredito que o provedor aceite essa tag, porem preenchei tentei gerar um xml com essa tag, mesmo passando um conteúdo nao gerou, se vc puder me falar qual unit alterar eu altero para fazer um teste e se der certo ai a gente implanta no projeto

Grato

André

 

  • Membros Pro
Postado (editado)

Boa noite @Italo Jurisato Junior ou equipe ACBR

Gostaria de pedir um ajuda no seguinte problema:

A leitura do arquivo XML autorizado do provedor SMARAPD (proSmarAPDABRASF) não esta com o Valor Líquido correto. Ela esta ignorando o valor do ISS Retido do cálculo do Valor Líquido.

Analisei a unit ..\Fontes\ACBrDFe\ACBrNFSe\PCNNFSe\pnfsNFSeR.pas procedure TNFSeR.LerNFSe_ABRASF_V2 e devido a uma condição o NFSe.Servico.Valores.ValorIssRetido fica igual 0 (zero) quando deveria ser preenchido e assim compor o Valor Líquido.


Condição atual (linha 1954 da unit), ignora o provedor proSmarAPDABRASF.
Suporta correção: somente adicionei o proSmarAPDABRASF no array (a linha esta comentada é a que esta atual).

        //if (FProvedor in [proActconv202, proISSe, proVersaTecnologia, proNEAInformatica, proFiorilli, proPronimv2, proVitoria]) then
        if (FProvedor in [proActconv202, proISSe, proVersaTecnologia, proNEAInformatica, proFiorilli, proPronimv2, proVitoria, proSmarAPDABRASF]) then
        begin
          if NFSe.Servico.Valores.IssRetido = stRetencao then
            NFSe.Servico.Valores.ValorIssRetido := Leitor.rCampo(tcDe2, 'ValorIss')
          else
            NFSe.Servico.Valores.ValorIssRetido := 0;
        end
        else
            NFSe.Servico.Valores.ValorIssRetido := Leitor.rCampo(tcDe2, 'ValorIssRetido');

 

Você poderia analisar melhor e aplicar a correção no repositório, por favor.

Desde já muito obrigado pela ajuda que empenhando.

pnfsNFSeR.pas

Editado por Weber de Paula
Erro linha
Postado

Bom dia. Sobre o Certificado A3, continuo sem conseguir utilizar. Com A1 está funcionando normalmente, mas tenho outra questão que meu cliente está me pressionando para resolver:

Como eu faço para enviar a NFS-e sem informar um RPS, abaixo segue resposta da SMARAPD na questão:

 

Jones, boa noite. 

No WSDL da ABRASF tem um serviço chamado "GerarNfse".
Ele gera nota fiscal sem precisar informar um RPS.

Leia a documentação sobre este serviço no manual do ABRASF 2.04 em:
http://www.abrasf.org.br/arquivos/publico/NFS-e/Versao_2.04/NFS-e_Manual_de_Orientacao_do_Contribuinte_2.04.pdf


Quaisquer dúvidas ou esclarecimentos estamos à disposição.
 

 

Postado
Em 12/04/2018 at 10:52, Jone Anderson disse:

Bom dia. Sobre o Certificado A3, continuo sem conseguir utilizar. Com A1 está funcionando normalmente, mas tenho outra questão que meu cliente está me pressionando para resolver:

Como eu faço para enviar a NFS-e sem informar um RPS, abaixo segue resposta da SMARAPD na questão:

 

Jones, boa noite. 

No WSDL da ABRASF tem um serviço chamado "GerarNfse".
Ele gera nota fiscal sem precisar informar um RPS.

Leia a documentação sobre este serviço no manual do ABRASF 2.04 em:
http://www.abrasf.org.br/arquivos/publico/NFS-e/Versao_2.04/NFS-e_Manual_de_Orientacao_do_Contribuinte_2.04.pdf


Quaisquer dúvidas ou esclarecimentos estamos à disposição.
 

 

Bom dia. 

Referente a este assunto, ainda não consegui gerar a NFS-e sem envio dos dados do RPS. Abaixo segue os testes que fiz  e os erros:

 

 with NotasFiscais.Add.NFSe do
      begin
        IdentificacaoRps.Numero                           := FormatFloat('#########0', qrTabela.FieldByName('NUMERORPS').AsInteger);

        // Para o provedor ISS.NET em ambiente de Homologação mudar a série para '8'
        IdentificacaoRps.Serie                            :=  FormatFloat('00000', StrToIntDef(qrTabela.FieldByName('SERIERPS').AsString, 0));

        // TnfseTipoRPS = ( trRPS, trNFConjugada, trCupom trNone);
        if FgerarRPS then
          IdentificacaoRps.Tipo := trRPS
        else
          IdentificacaoRps.Tipo := trNone;

        DataEmissao                                       := qrTabela.FieldByName('DATAEMISSAO').AsDateTime;

Passando IdentificacaoRps.Tipo := trNone; mas informando o nro e série do RPS, tenho o seguinte erro:

image.png.a18f7f3e234129701e53424cea2cc4a4.png

Segue em anexo o xml que está sendo gerado.

 

Se não informar o Nro e série do RPS, também passando IdentificacaoRps.Tipo := trNone;  o erro é o seguinte:

image.png.787deb028644b154a0f38ce4037cf7b0.png

Existe algo ainda a ser configurado no componente?

 

NFS-e Sem RPS.xml

  • Consultores
Postado

Bom dia Jone,

Segundo o Schema fornecido pelo provedor SmarAPD que esta na pasta SmarAPDABRASF temos a definição do GerarNFSe, veja:

    <!-- Servico Geracao de NFS-e - GerarNfse -->    
    <xsd:element name="GerarNfseEnvio">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Rps" type="tcDeclaracaoPrestacaoServico"
                        minOccurs="1" maxOccurs="1" />            

            </xsd:sequence>
        </xsd:complexType>        
    </xsd:element>

Como você pode ver é necessário informar o RPS sim.

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Boa tarde Italo.

Realmente o tcDeclaracaoPrestacaoServico é obrigatório. Porém o que a prefeitura de sertãozinho alega é que não deve ir é o tcInfRps onde contém,  o nro, série, Data de emissão e tipo do RPS. 

No schema tem a seguinte definição:

 

<xsd:complexType name="tcInfDeclaracaoPrestacaoServico">
    <xsd:sequence>
        <xsd:element name="Rps" type="tcInfRps" minOccurs="0" maxOccurs="1"/>

e Abaixo o trecho do manual que fala deste elemento:

 

image.png.3bbf729e416d333abe04db47ea476211.png

  • Consultores
Postado

Bom dia Jone,

Entendi, quando esses dados são informados o XML é gerado, assinado e validado sem nenhum problema, correto?

Mas quando é gerado sem esses dados, ou seja, é informado o valor trNone a propriedade IdentificaçãoRps.Tipo ocorre erro de validação, correto?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia Ítalo, acontece exatamente o que eu informei no meu post anterior. Abaixo segue os erros:

Citar

Bom dia. 

Referente a este assunto, ainda não consegui gerar a NFS-e sem envio dos dados do RPS. Abaixo segue os testes que fiz  e os erros:

 


 with NotasFiscais.Add.NFSe do
      begin
        IdentificacaoRps.Numero                           := FormatFloat('#########0', qrTabela.FieldByName('NUMERORPS').AsInteger);

        // Para o provedor ISS.NET em ambiente de Homologação mudar a série para '8'
        IdentificacaoRps.Serie                            :=  FormatFloat('00000', StrToIntDef(qrTabela.FieldByName('SERIERPS').AsString, 0));

        // TnfseTipoRPS = ( trRPS, trNFConjugada, trCupom trNone);
        if FgerarRPS then
          IdentificacaoRps.Tipo := trRPS
        else
          IdentificacaoRps.Tipo := trNone;

        DataEmissao                                       := qrTabela.FieldByName('DATAEMISSAO').AsDateTime;

Passando IdentificacaoRps.Tipo := trNone; mas informando o nro e série do RPS, tenho o seguinte erro:

image.png.a18f7f3e234129701e53424cea2cc4a4.png

Segue em anexo o xml que está sendo gerado.

 

Se não informar o Nro e série do RPS, também passando IdentificacaoRps.Tipo := trNone;  o erro é o seguinte:

image.png.787deb028644b154a0f38ce4037cf7b0.png

Existe algo ainda a ser configurado no componente?

 

NFS-e Sem RPS.xml

 

  • 3 meses depois ...
Postado (editado)

Bom dia Pessoal.

A empresa em que trabalho está desenvolvendo a integração direta com os webservices em C#, estamos travados na conexão com o webservice, na documentação do pessoal da smarapd, eles falam que devemos criar uma cadeia de certificados confiáveis (jks) com o certificado do cliente (A1) e o certificado público do servidor disponibilizado por eles, gerar uma chave pública dessa cadeia de certificados, salvar na alteração cadastral do site e depois tentar a requisição. Mesmo fazendo isso, gerando um pfx dessa cadeia de certificado (jks) ou adicionando os dois certificados no handler do httpclient, estou tendo problemas de conexão "A solicitação foi anulada: Não foi possível criar um canal seguro para SSL/TLS".

Eu sei que o foco do fórum é o ACBR e componentes, mas já tentei vários outros e não tive sucesso.

Essa é a função que eu criei, é a mesma que utilizamos para o eSocial e eReinf.

 try
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender2, cert, chain, sslPolicyErrors) => true;
                
                var handler = new System.Net.Http.WebRequestHandler();

                var certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(@"c:\certificado.pfx", "123456");
                handler.ClientCertificates.Add(certificate);

                using (var httpclient = new System.Net.Http.HttpClient(handler))
                {
                    httpclient.DefaultRequestHeaders.AcceptEncoding.Clear();
                    httpclient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip"));
                    httpclient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("deflate"));

                    
                    //httpclient.DefaultRequestHeaders.Add("SOAPAction", "http://nfse.abrasf.org.br/RecepcionarLoteRpsSincrono");
                    httpclient.DefaultRequestHeaders.Host = "201.72.16.150";
                    httpclient.DefaultRequestHeaders.Connection.Add("Keep-Alive");
                    httpclient.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("Apache-HttpClient", "4.1.1"));

                    httpclient.BaseAddress = new System.Uri("https://201.72.16.150/tbwhomolog/services/nfseSOAP");


                    var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, "nfseSOAP");
                    request.Content = new System.Net.Http.StringContent("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
                                                                            "< soapenv:Header />" +
                                                                            "< soapenv:Body >" +
                                                                        "< RecepcionarLoteRpsSincronoRequest xmlns =\"http://nfse.abrasf.org.br\">" +
                                                                            "< nfseCabecMsg >" +
                                                                                "< ![CDATA[<? xml version = '1.0' encoding = 'UTF-8' ?>< cabecalho xmlns = 'http://www.abrasf.org.br/nfse.xsd' versao = '2.04' >< versaoDados > 2.04 </ versaoDados ></ cabecalho >]] >" +
                                                                            "</ nfseCabecMsg >" +
                                                                            "< nfseDadosMsg >" +
                                                                      //"<!-- XmlAssinado -->" +
                                                                            "</ nfseDadosMsg >" +
                                                                        "</ RecepcionarLoteRpsSincronoRequest >" +
                                                                            "</ soapenv:Body >" +
                                                                        "</ soapenv:Envelope >",
                                                        System.Text.Encoding.UTF8,
                                                        "text/xml");

                    httpclient.SendAsync(request)
                          .ContinueWith(responseTask =>
                          {
                              if (responseTask.Result.IsSuccessStatusCode)
                                  MessageBox.Show(responseTask.Result.Content.ReadAsStringAsync().Result);
                              else
                                  MessageBox.Show("Erro código: " + responseTask.Result.StatusCode + "\n" + responseTask.Result.Content.ReadAsStringAsync().Result);
                          })
                          .Wait(new System.TimeSpan(120 * 10000000));

                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

 

Editado por [email protected]
Inclusão do código fonte da função criada.
  • Moderadores
Postado
2 horas atrás, [email protected] disse:

Bom dia Pessoal.

A empresa em que trabalho está desenvolvendo a integração direta com os webservices em C#, estamos travados na conexão com o webservice, na documentação do pessoal da smarapd, eles falam que devemos criar uma cadeia de certificados confiáveis (jks) com o certificado do cliente (A1) e o certificado público do servidor disponibilizado por eles, gerar uma chave pública dessa cadeia de certificados, salvar na alteração cadastral do site e depois tentar a requisição. Mesmo fazendo isso, gerando um pfx dessa cadeia de certificado (jks) ou adicionando os dois certificados no handler do httpclient, estou tendo problemas de conexão "A solicitação foi anulada: Não foi possível criar um canal seguro para SSL/TLS".

Eu sei que o foco do fórum é o ACBR e componentes, mas já tentei vários outros e não tive sucesso.

Essa é a função que eu criei, é a mesma que utilizamos para o eSocial e eReinf.


 try
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender2, cert, chain, sslPolicyErrors) => true;
                
                var handler = new System.Net.Http.WebRequestHandler();

                var certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(@"c:\certificado.pfx", "123456");
                handler.ClientCertificates.Add(certificate);

                using (var httpclient = new System.Net.Http.HttpClient(handler))
                {
                    httpclient.DefaultRequestHeaders.AcceptEncoding.Clear();
                    httpclient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip"));
                    httpclient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("deflate"));

                    
                    //httpclient.DefaultRequestHeaders.Add("SOAPAction", "http://nfse.abrasf.org.br/RecepcionarLoteRpsSincrono");
                    httpclient.DefaultRequestHeaders.Host = "201.72.16.150";
                    httpclient.DefaultRequestHeaders.Connection.Add("Keep-Alive");
                    httpclient.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("Apache-HttpClient", "4.1.1"));

                    httpclient.BaseAddress = new System.Uri("https://201.72.16.150/tbwhomolog/services/nfseSOAP");


                    var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, "nfseSOAP");
                    request.Content = new System.Net.Http.StringContent("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
                                                                            "< soapenv:Header />" +
                                                                            "< soapenv:Body >" +
                                                                        "< RecepcionarLoteRpsSincronoRequest xmlns =\"http://nfse.abrasf.org.br\">" +
                                                                            "< nfseCabecMsg >" +
                                                                                "< ![CDATA[<? xml version = '1.0' encoding = 'UTF-8' ?>< cabecalho xmlns = 'http://www.abrasf.org.br/nfse.xsd' versao = '2.04' >< versaoDados > 2.04 </ versaoDados ></ cabecalho >]] >" +
                                                                            "</ nfseCabecMsg >" +
                                                                            "< nfseDadosMsg >" +
                                                                      //"<!-- XmlAssinado -->" +
                                                                            "</ nfseDadosMsg >" +
                                                                        "</ RecepcionarLoteRpsSincronoRequest >" +
                                                                            "</ soapenv:Body >" +
                                                                        "</ soapenv:Envelope >",
                                                        System.Text.Encoding.UTF8,
                                                        "text/xml");

                    httpclient.SendAsync(request)
                          .ContinueWith(responseTask =>
                          {
                              if (responseTask.Result.IsSuccessStatusCode)
                                  MessageBox.Show(responseTask.Result.Content.ReadAsStringAsync().Result);
                              else
                                  MessageBox.Show("Erro código: " + responseTask.Result.StatusCode + "\n" + responseTask.Result.Content.ReadAsStringAsync().Result);
                          })
                          .Wait(new System.TimeSpan(120 * 10000000));

                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

 

Sugestão é procurar uma comunidade de C# para lhe ajudar ou tentar olhar os fontes dos componentes e usar ele para entender.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 1 mês depois ...
Postado

Olá bom dia eu estou com sérias duvidas referente ao funcionamento deste provedor estou com o ultimo fonte porém nem a homologação de sertãozinho eu consigo testar (preciso implementar para Ituitaba-MG), porém nada funciona no exemplo que tenho; como funciona a questão do arquivo .jks de validação do certificado alguém fez essa configuração e passa explicar pq nos manuais da SMARAPD é bem confuso;

  • Moderadores
Postado
55 minutos atrás, Renato Henrique disse:

Olá bom dia eu estou com sérias duvidas referente ao funcionamento deste provedor estou com o ultimo fonte porém nem a homologação de sertãozinho eu consigo testar (preciso implementar para Ituitaba-MG), porém nada funciona no exemplo que tenho; como funciona a questão do arquivo .jks de validação do certificado alguém fez essa configuração e passa explicar pq nos manuais da SMARAPD é bem confuso;

Bom dia, Renato Henrique.

Tópico antigo. Sugiro que crie um novo, relatando sua dúvida ou problema.

  • Curtir 1
Equipe ACBr

Felipe Eduardo Resende Mesquita

Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

 

 

 

  • Este tópico foi criado há 2258 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.