Ir para conteúdo
  • Cadastre-se

dev botao

Ao enviar um RPS ou Lote posso usar qualquer método de Envio?


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

Recommended Posts

  • Consultores

Olá Pessoal,

Muitos desenvolvedores acabam escolhendo um dos 3 métodos de envio de RPS e nem sempre funciona, porque?

É muito simples, primeiro temos que separar os provedores em 3 grupos: os que seguem a versão 1 do layout da ABRASF, os que seguem a versão 2 e os que tem o seu próprio layout.

Os provedores que seguem a versão 1 do layout da ABRASF oferecem somente o serviço de envio assíncrono, portanto só podemos usar o método Enviar do componente, esse método permite o envio de um lote contendo de 1 até 50 RPS.

Os provedores que seguem a versão 2 do layout da ABRASF a principio oferecem os serviços: envio assíncrono, envio síncrono e gerar NFSe, respectivamente no componente temos os métodos: Enviar, EnviarSincrono e Gerar, onde os dois primeiros permite o envio de um lote contendo de 1 até 50 RPS e o último o envio de apenas 1 RPS.

Destaquei "a principio" porque ao implementar dezenas de provedores que seguem a versão 2 no componente, notei que vários não disponibilizaram os 3 serviços e sim apenas um ou dois dos três sugeridos pelo layout.

Logo não é possível afirmar que todos os provedores que seguem a versão 2, disponibilizam os 3 serviços de envio.

Já os provedores que tem o seu próprio layout, não tem como estabelecer uma regra, pois cada um implementou o serviço que melhor lhe convém.

Além dos serviços de envio, temos também os de consulta, cancelamento e substituição de NFSe.

Como faço para saber quais são os serviços disponibilizados pelo provedor que vou utilizar, bem como o layout que ele segue?

É muito simples, basta abrir o arquivo INI do mesmo.

Na seção XML temos o campo Layout que pode conter os seguintes valores: ABRASFv1, ABRASFv2 ou outro valor (normalmente o nome do provedor).

No caso de um valor diferente de ABRASFv1 e ABRASFv2 fica claro que não segue nenhuma das versões da ABRASF, logo tem o seu próprio layout.

Para saber os serviços oferecidos pelo provedor basta olharmos para as seções: 

[Recepcionar] => Responsável por montar o envelope de Envio assíncrono, se consta a definição do envelope significa que este serviço esta disponível.

[ConsSit] => Responsável por montar o envelope de Consulta a Situação do Lote, se consta a definição do envelope significa que este serviço esta disponível.

[ConsLote] => Responsável por montar o envelope de Consulta ao Lote, se consta a definição do envelope significa que este serviço esta disponível.

[ConsNFSeRps] => Responsável por montar o envelope de Consulta NFSe por RPS, se consta a definição do envelope significa que este serviço esta disponível.

[ConsNFSe] => Responsável por montar o envelope de Consulta NFSe, se consta a definição do envelope significa que este serviço esta disponível.

[Cancelar] => Responsável por montar o envelope de Cancelar NFSe, se consta a definição do envelope significa que este serviço esta disponível.

[Gerar] => Responsável por montar o envelope de Gerar NFSe, se consta a definição do envelope significa que este serviço esta disponível.

[RecSincrono] => Responsável por montar o envelope de Envio síncrono, se consta a definição do envelope significa que este serviço esta disponível.

[Substituir] => Responsável por montar o envelope de Substituir NFSe, se consta a definição do envelope significa que este serviço esta disponível.

 

Exemplo de um Envelope não definido, portanto serviço não disponibilizado no webservice do provedor:

[ConsSit]
IncluiEncodingCab=0
IncluiEncodingDados=0
Texto1=

Exemplo de um Envelope definido, portanto serviço disponibilizado no webservice do provedor:

[ConsSit]
IncluiEncodingCab=0
IncluiEncodingDados=0
Texto1=<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
Texto2=<S:Body>
Texto3=%DadosMsg%
Texto4=</S:Body>
Texto5=</S:Envelope>

Conselho: Tenha uma tela de configuração que permite ativar ou não a execução de cada um desses métodos, assim a sua aplicação pode enviar o RPS através do método ou outro dependendo da configuração estabelecida por conta do provedor a ser utilizado.

  • Curtir 11
  • Obrigado 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

×
×
  • 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.