Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cjulio

Utilizar Webservices da AT

Mensagens Recomendadas

xambas

Boa noite pessoal,

Antes de mais um muitíssimo obrigado a todos pela ajuda!

Consegui finalmente ultrapassar o Internal Server Error, FaultCode: env:Client

No meu caso era o SOAPAction que deve CONTER a barra no final, do seguinte modo: 

"https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/"

 

Agora estou de volta ao erro :

Rejected:   |  Codigo: 16  |  Erro: Created: Chave de sessão inválida. Não foi possível decifrar o campo Created  |  Tentativas Restantes: -1

Mas isto já são outros 500 paus...

Vou ver o que consigo arrumar aqui

Obrigado mais uma vez!

 

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Antonio Valladares
13 horas atrás, Marcos Magalhães disse:

Alguém com problemas na comunicação com AT?

Ola Marcos,

        Qual erro está retornando o serviço?

Muito obrigado

Uma saudação

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
xambas

Olá Marcos

comunicação com que servidor? testes ou produção?

 

Malta, estou preso no Rejected:   |  Codigo: 16  |  Erro: Created: Chave de sessão inválida. Não foi possível decifrar o campo Created  |  Tentativas Restantes: -1

Já tentei vários excertos de código que fui encontrando neste forum e nada....

Alguém tem alguma pista?

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Antonio Valladares

Olá especialistas,

    Ainda recebo o seguinte erro no WS de Invoices no ambiente de Teste, alguém pode verificar se a fatura das notas fiscais funciona neste ambiente.

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>33</faultcode>
<faultstring>mismatched tag, expected hr at offset 241 of</faultstring>
<detail>fews.gdcontfsimpostosqua</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Muito obrigado
Uma saudação.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
xambas

Viva António,

Qual é o contentType que estás a passar com o POST? Experimenta definir "text/xml".

 

Já agora aproveito para dizer que já consigo comunicar documentos de transporte com sucesso.

O meu problema era a encriptação RSA. Eu estava a utilizar Encoding.UTF8.GetBytes, mas como o Nonce se trata de uma string Base64, tem que ser Convert.FromBae64String().

        Public Function EncryptUsingRSA(text As String, certificateFilePath As String, Optional password As String = "") As String Implements IEncryptionServices.EncryptUsingRSA
            If Not text.IsBase64() Then
                Throw New ArgumentException("Input must be base 64 string", NameOf(text))
            End If

            Dim certificate As New X509Certificate2(certificateFilePath, password)
            Dim csp As New System.Security.Cryptography.RSACryptoServiceProvider
            csp.FromXmlString(certificate.PublicKey.Key.ToXmlString(False))

            Dim key() As Byte = csp.Encrypt(Convert.FromBase64String(text), False)
            Dim cypherText = Convert.ToBase64String(key)
            Return cypherText
        End Function

Também criei ali um extension method para string, que valida se é uma stirng base64.

Fica aí o código VB.NET:

    <Extension()>
    Public Function IsBase64(ByVal str As String) As Boolean
        Try
            Dim bytes As Byte() = Convert.FromBase64String(str)
            Return str.Replace(" ", "").Length Mod 4 = 0
        Catch ex As Exception
            Return False
        End Try
    End Function

Obrigado a todos!

Cumprimentos

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Antonio Valladares

Olá a todos,

  Parabéns Xambas!!!

   Altere o "Content Type" para "text/xml", mas ainda tenho o mesmo problema ...
   Eu tenho um ticket aberto pelo eBalcao, mas eles não respondem, eu preciso saber se um de vocês trabalha corretamente enviando as faturas para o ambiente de teste.

Muito obrigado
Uma saudação.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kalin

Alguém já tentou comunicar com os web services utilizando dotnet core?

Estou a receber uma exception:

"The server returned an invalid or unrecognized response."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nacho

Oi!

Desculpe-me pelo meu português, sou da Espanha e é o tradutor do Google que fala por mim. Estou fazendo um programa para enviar faturas para o AT. No momento, ainda estou na fase de testes, testando o servidor de teste. Tudo vai mais ou menos bem até que eu estou preso nesse erro

Rejected:   |  Codigo: 8  |  Erro: Nonce: Cifra da chave pública inválida


Eu suponho que isso significa que a chave pública por algum motivo é inválida, mas por quê? Os certificados são baixados hoje e o aplicativo os carrega corretamente.
Também é estranho porque antes de ter este erro, os erros que tive foram de formatação incorreta de alguns campos do documento. Foi quando resolvi esses formatos quando este erro de "autenticação" começou a aparecer para mim, quando assumi desde o início que, se eu estivesse recebendo erros de formatação dos campos, seria porque eu já estava autenticado.

Poderia ser porque as credenciais que estou usando são as do usuário mestre em vez das de um subutilizador com essa operação atribuída? Também é um requisito usar um subutilizador com essa operação no servidor de testes?

Alguém podeajudar-me?

 

Muito obrigado e saudações!

Editado por Nacho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hugo Simões

Bom dia,

Preciso de ajuda!

Desde o dia 3/Julho ás 18:30 comecei a receber notificações da AT a dizer que há um erro e que os documentos não estão a entrar por webservice. Até aqui tudo normal, porque várias vezes acontece esta situação mas passado umas horas à medida que vou enviando novamente os documentos eles vão entrando. Mas desta vez, há qualquer coisa que estou achar estranho.

Verifiquem a imagem abaixo que é o relatório de comunicação:

https://imgur.com/a/3RHKp5x

Exemplo do XML de comunicação da FR 2018/16:

https://imgur.com/a/V9sOlwQ

  • Normalmente, esta situação dura horas e não dias;
  • Estranho que na mesma comunicação, exista clientes que estão a comunicar e outros não.
  • Estranho também que ao analisarmos o cliente 242, os documentos 16,17 não entraram, mas o 18 e 19 entraram, depois o 20 e 21 falharam
  • No cliente 939, foi emitida uma nota de credito posterior a estes erros e comunicou
  • A resposta é um erro -99 com a mensagem a dizer que é um "Erro de sistema. Por favor volte a tentar mais tarde."

Estive a tentar arranjar um padrão para o problema e não consigo encontrar:

  • Não houve atualização ao software quando começou acontecer isto
  • São tipos de documento diferentes
  • Documentos para entidades portuguesas e estrangeiras
  • Enquadramentos de Iva diferentes
  • Já está acontecer em mais algumas empresas (já não é só nestas)
  • Vi o XML de comunicação e parece-me bem

Estão a ter algum problema com a comunicação de documentos?

Alguma sugestão? 

Obrigado.

Editado por Hugo Simões
Mais detalhe

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
md mad

Boas.

Não sei se serve de ajuda, mas constrói o XML ou tem classes de proxy para a comunicação?

Caso o XML seja construído, já experimentou por o seu conteúdo num editor para ver se está mesmo correcto (Ex. caracteres ilegais, que só existam em alguns documentos)?

Também pode mesmo ser problema deles...

Espero que ajude, às vezes dá realmente para desesperar...

Bom trabalho

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
md mad
23 hours ago, Nacho said:

Oi!

Desculpe-me pelo meu português, sou da Espanha e é o tradutor do Google que fala por mim. Estou fazendo um programa para enviar faturas para o TA. No momento, ainda estou na fase de testes, testando o servidor de teste. Tudo vai mais ou menos bem até que eu estou preso nesse erro


Rejected:   |  Codigo: 8  |  Erro: Nonce: Cifra da chave pública inválida


Eu suponho que isso significa que a chave pública por algum motivo é inválida, mas por quê? Os certificados são baixados hoje e o aplicativo os carrega corretamente.
Também é estranho porque antes de ter este erro, os erros que tive foram de formatação incorreta de alguns campos do documento. Foi quando resolvi esses formatos quando este erro de "autenticação" começou a aparecer para mim, quando assumi desde o início que, se eu estivesse recebendo erros de formatação dos campos, seria porque eu já estava autenticado.

Poderia ser porque as credenciais que estou usando são as do usuário mestre em vez das de um subutilizador com essa operação atribuída? Também é um requisito usar um subutilizador com essa operação no servidor de testes?

Alguém podeajudar-me?

 

Muito obrigado e saudações!

Sim, tanto quanto sei é obrigatório utilizar um subutilizador. Não se esqueça de dar as respectivas permissões na gestão de utilizadores do portal da AT - WFA para faturas, WDT para documento de transportes. Também pode utilizar os que eles têm nos exemplos (applets do portal das finanças). Em todo o caso, aqui parece-me que a encriptação está errada.

Bom trabalho.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hugo Simões
27 minutos atrás, md mad disse:

Boas.

Não sei se serve de ajuda, mas constrói o XML ou tem classes de proxy para a comunicação?

Caso o XML seja construído, já experimentou por o seu conteúdo num editor para ver se está mesmo correcto (Ex. caracteres ilegais, que só existam em alguns documentos)?

Também pode mesmo ser problema deles...

Espero que ajude, às vezes dá realmente para desesperar...

Bom trabalho

 

Boas,

Atualizei o post com o XML da FR 2018/16 que dá erro. Olho para ele e não vejo nada de mal construido. É isento, mas há documentos que não entram e que não são isentos. Não estou mesmo a ver...

Exemplo do XML de comunicação da FR 2018/16:

https://imgur.com/a/V9sOlwQ

Obrigado.

Editado por Hugo Simões

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nacho
24 minutos atrás, md mad disse:

Sim, tanto quanto sei é obrigatório utilizar um subutilizador. Não se esqueça de dar as respectivas permissões na gestão de utilizadores do portal da AT - WFA para faturas, WDT para documento de transportes. Também pode utilizar os que eles têm nos exemplos (applets do portal das finanças). Em todo o caso, aqui parece-me que a encriptação está errada.

Bom trabalho.

Também parece-me que faz mais sentido que a criptografia esteja incorreta, mas não consigo encontrar a lógica, pois o processo de criptografia é copiado de outro aplicativo (para envio de documentos de transporte) que está em execução há um ano sem problemas.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ccue2003

DRM - Declaração de remunerações

Boa tarde

Alguem consegue fazer a comunicação da DRM via webservice ou através de alguma linha de comandos ?

Obrigado desde já

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
General
16 minutes ago, ccue2003 said:

DRM - Declaração de remunerações

Boa tarde

Alguem consegue fazer a comunicação da DRM via webservice ou através de alguma linha de comandos ?

Obrigado desde já

Também gostava de saber como, visto que existem programas que enviam a DMR mesmo não tendo Webservice disponibilizado pela AT. 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ccue2003

Eles como tem o app offline .jar ás vezes com uma linha de comando invocando o java "java -jar" acho que existem códigos que colocados nessa linha de código processa como se fosse a aplicação offline a enviar o ficheiro

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
General
6 minutes ago, ccue2003 said:

Eles como tem o app offline .jar ás vezes com uma linha de comando invocando o java "java -jar" acho que existem códigos que colocados nessa linha de código processa como se fosse a aplicação offline a enviar o ficheiro

A Aplicação offline é para desktop e não para ser invocado por linha de comandos. Penso que alguém saberá como fazer exactamente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nacho

Com licença, mas alguém me diria se o servidor de teste para faturas (https://servicos.portaldasfinancas.gov.pt:700/fews/faturas) e sua chave pública estão funcionando corretamente? Não quero dizer se o servidor está ativo, mas se está aceitando a comunicação usando a chave pública fornecida pela AT

 

Muito obrigado!

Editado por Nacho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
General
On 7/5/2018 at 4:45 PM, ccue2003 said:

Eles como tem o app offline .jar ás vezes com uma linha de comando invocando o java "java -jar" acho que existem códigos que colocados nessa linha de código processa como se fosse a aplicação offline a enviar o ficheiro

Olá descobriste alguma coisa recentemente?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ccue2003

Ainda não, mas ainda continuo a tentar.

Se se executar a instrucao numa linha de comandos por exemplo do windows o que ele faz é abrir a aplicação, mas se admitirmos que eles nao têm webservice entao so pode ser atraves da app offline que disponibilizam, já que têm que entrar em portas/servidor de segurança da at ou da segurança social.

Não percebo de java mas quem consegue deve ou conseguir configuar o ficheiro de parametros ou alguma instrução na linha de comandos que lhes permite não abrir a aplicacao e "passar" para o passo seguinte de envio.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
General
2 horas atrás, ccue2003 disse:

Ainda não, mas ainda continuo a tentar.

Se se executar a instrucao numa linha de comandos por exemplo do windows o que ele faz é abrir a aplicação, mas se admitirmos que eles nao têm webservice entao so pode ser atraves da app offline que disponibilizam, já que têm que entrar em portas/servidor de segurança da at ou da segurança social.

Não percebo de java mas quem consegue deve ou conseguir configuar o ficheiro de parametros ou alguma instrução na linha de comandos que lhes permite não abrir a aplicacao e "passar" para o passo seguinte de envio.

Pois a ideia que eu tenho é ver o código da app e retirar o código que faz o submit do ficheiro.

Não percebendo muito de java apanhei o código. Vou tentar enviar-te por mensagem privada. Aqui não consigo anexar imagens. A outra ideia que eu tenho é utilizar um "robo" que faça o upload do ficheiro e submit do formulario de entrega no site.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nacho

Olá, eu ainda não consigo conectar ao servidor de teste. Ainda tenho o seguinte erro:

Rejected:   |  Codigo: 8  |  Erro: Nonce: Cifra da chave pública inválida

Os arquivos que estou usando são:

  • Para criptografar: sapubkey.testes
  • Para me identificar: TesteWebServices.pfx

Mas estou vendo no PDF DadosFatura que um certificado privado para o ambiente de teste deve ser solicitado por email? Então, qual é o arquivo TesteWebServices.pfx para? O que eu não estou entendendo?

Na página 15, onde ele menciona isso, ele diz que é necessário enviar também <CERTIFICADO N> - Nº de certificado da AT (DGCI se ainda for o caso)... o que é isso?

<SOFTWARE N> - Designação do software N; que é? o nome que vou dar ao meu aplicativo java?

Mais uma vez, desculpe, mas o português não é minha língua materna e eu não consigo entender algumas coisas.

 

Saudações e muito obrigado!

Editado por Nacho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nacho

Alguém já fez a parte de testes? Eu só preciso saber o que tenho que solicitar, porque com o que eles fornecem nos certificados.zip, ainda tenho Codigo: 8 | Erro: Nonce: Cifra da chave pública inválida

 

Muito obrigado!!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
CarlosA
On 1/9/2016 at 3:16 PM, tiago.f said:

Olá phenrique,

quando dizes:

está a referir-te apenas a faturas que dizem respeito ao próprio contribuinte, certo? por "(de outros /fornecedores)" devo entender que são faturas registadas pelos fornecedores e que dizem respeito ao contribuinte, certo?

Se sim, o que já vi feito (e faço) é utilizar as respostas JSON enviadas pelo site efatura para o browser. Infelizmente (que eu saiba) não existe nenhuma forma oficial/API de extrair esta informação.

Se tiveres interesse posso enviar um excel que "saca" as fatura de um contribuinte consumidor e as "despeja" numa tabela.

Cumprimentos.

Olá Tiago,

Desculpa a intromissão, mas achas que é possível partilhares o excel que referiste?

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Carlos Pais
17 horas atrás, CarlosA disse:

Olá Tiago,

Desculpa a intromissão, mas achas que é possível partilhares o excel que referiste?

Obrigado

Isso sim ... seria de uma grande ajuda ... para alem se o código

estiver aberto, sempre se podia converter isso em VB.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.