Ir para o conteúdo
cjulio

Utilizar Webservices da AT

Mensagens Recomendadas

baninho

Olá, boa tarde.

Estou a desenvolver uma aplicação em vb.net, para comunicar via WebService  os  Recibos de rendas , no portal das finanças.

Não estou muito há vontade na utilização de webservices.   Aproveitei algum código que foi disponibilizado aqui no fórum.

Quando tento ligar-me ao URI/Registo de Faturas, consigo estabelecer ligação e é retornada a mensagem sobre qual é o campo que está em falta.

Quando ajusto o código para comunicação dos recibos de renda, é me retornado o Erro : 500 – “Internal Error”.

Será que alguém me pode ajudar, a detectar a causa/problema do erro 500.

Parte do Código que estou a utilizar para obter o certificado/URI/SOAPAction/Pedido

………

Function EfectuarPedido() As String

        Dim EnderecoWebService As String ="https://servicos.portaldasfinancas.gov.pt:709/ws/arrendamento"

        Dim CaminhoCertificado As String ="C:\ChavePublicaAT\TesteWebservices.pfx"

        Dim SenhaCertificado As String = "TESTEwebservice"

        Dim oRequest As String = GenerateXmlString()



Try

            Dim request As HttpWebRequest = HttpWebRequest.Create(EnderecoWebService)

           request.Headers.Add("SOAPAction","https://servicos.portaldasfinancas.gov.pt:709/sicau/ws/arrendamento/emitirRecibo")

            Dim cert As New X509Certificate2

            cert.Import(CaminhoCertificado, SenhaCertificado, X509KeyStorageFlags.DefaultKeySet)

            request.ClientCertificates.Add(cert)

            request.Method = "POST"

            request.ContentType = "text/xml; charset=utf-8"

            request.Accept = "text/xml"

            Dim postData As String = oRequest '

            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)

            request.ContentLength = byteArray.Length

            Dim dataStream As Stream = request.GetRequestStream()

            dataStream.Write(byteArray, 0, byteArray.Length)

            dataStream.Close()

            Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse) ‘ Resposta/Pedido – Erro aqui

Retorno : "O servidor remoto devolveu um erro: (500) Erro interno de servidor."

<?xml version='1.0' ?>

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>

<env:Body>

<env:Fault>

<faultcode>env:Client</faultcode>

<faultstring>Internal Error</faultstring>

</env:Fault>

</env:Body>

</env:Envelope>

“

XML gerado: Conteúdo do oRequest ->postData

“

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope">

  <S:Header>

    <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">

      <wss:UsernameToken>

        <wss:Username>UtilizadorXPTO</wss:Username>

<wss:Nonce>mlbnoc7ccyteson8q+Y1duNC2G/+C7HHa2I0fevRnxlz+FNIfdjkJwojRQ91CcPybOs0M3oYA7zI76PaSickh+fLtQIKDPIcXliZrh7XVP+E8+PoziptE9Wi0+Nqmjputz8WMeFmjYm3a8Pzdh8EBRLCHzVgZ5apFk1KL2mhLUuJaRqzka63uriKFxZifg8D7psnj2iIIxUVcsA4IzAiomrTGwjvo1O+YTleGqtejvhLsc0Pj/mPdPGc/n+LSdddkf37gvGH/m0qUQBcYUHlfe498i/ml1Dnu7vLTdiG+NKLFogaAegoqJtigauM21CSeRQo5ZdUNha71Xin3oGIpg==</wss:Nonce>

        <wss:Password Digest="TIx6Z1yCbchmuN1NdkjhoA==">rNY/QXjSov5HV1km+6zdaQ==</wss:Password>

        <wss:Created>2KW6geS+yOcNDXP8i5poTV/p4FkkFVSXPseSGp6JbRw=</wss:Created>

      </wss:UsernameToken>

    </wss:Security>

  </S:Header>

  <S:Body>

    <ns2:emitirReciboRequest xmlns:ns2="https://servicos.portaldasfinancas.gov.pt/arrendamento/definitions/">

      <ns2:numeroContrato>1</ns2:numeroContrato>

      <ns2:nifEmitente>12345678</ns2:nifEmitente>

      <ns2:locadores>

        <ns2:locador>

          <ns2:locadores>1</ns2:locadores>

          <ns2:nif>12345678</ns2:nif>

        </ns2:locador>

      </ns2:locadores>

      <ns2:locatarios>

        <ns2:locatario>

          <ns2:nif>13245678</ns2:nif>

          <ns2:pais>PT</ns2:pais>

        </ns2:locatario>

      </ns2:locatarios>

      <ns2:tipo>ARREND</ns2:tipo>

      <ns2:dataInicio>2018-05-08</ns2:dataInicio>

      <ns2:dataFim>2018-06-08</ns2:dataFim>

      <ns2:tipoImportancia>RENDAC</ns2:tipoImportancia>

      <ns2:valor>100</ns2:valor>

      <ns2:dataRecebimento>08-05-2018</ns2:dataRecebimento>

    </ns2:emitirReciboRequest>

  </S:Body>

</S:Envelope>

 

Editado por baninho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSeg

Olá a todos.
Estou a tentar testar os webservices.
Baixei o TesteWebServices.pfx e uso a password TesteWebService, mas obtenho sempre o erro de ligação cancelada.
É preciso os dois outros ficheiros que vinham no zip também estarem na mesma pasta ? (Chave Cifra Publica AT (Produção).cer e saPubKey.jks)
Alguém me pode ajudar ?
Obrigado

Partilhar esta mensagem


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

Olá a todos.
Estou a tentar testar os webservices.
Baixei o TesteWebServices.pfx e uso a password TesteWebService, mas obtenho sempre o erro de ligação cancelada.
É preciso os dois outros ficheiros que vinham no zip também estarem na mesma pasta ? (Chave Cifra Publica AT (Produção).cer e saPubKey.jks)
Alguém me pode ajudar ?
Obrigado

Boas

Apos uma semana a testar o AT WebService de Testes com código q funcionou a 100% no passado, e ainda não ter conseguido (em testes), apenas conseguindo em produção a 100%, fui tentar o sandbox da AT em https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action com o IE e também este está a dar um erro 

no meu código:

Using pathPublicKey: [Resources/Certificates/ChaveCifraPublicaAT2020.cer]
Using pathCertificate: [Resources/Certificates/TesteWebservice.pfx]
TaxRegistrationNumber :[599999993], AccountFiscalNumber: [599999993/0037], AccountPassword: [testes1234], PasswordCertificate: [TESTEwebservice]
urlWebService: https://servicos.portaldasfinancas.gov.pt:700/fews/faturas
urlSoapAction: http://servicos.portaldasfinancas.gov.pt/faturas/RegisterInvoice
Send Document DocumentNumber: [FS 2018A12/1]/WayBillMode: [False]
Cert Subject: [CN=TesteWebServices, OU=ASI, O=AT - Autoridade Tributaria e Aduaneira, L=Lisboa, S=Lisboa, C=PT], NotBefore: [09/01/2018 16:07:30], NotAfter: [08/07/2018 17:07:30]
Exception: [O tempo limite da operação expirou]

no sandbox at dá:

>>>SENT<<<
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wss:UsernameToken>
<wss:Username>599999993/0037</wss:Username>
<wss:Password>xYaL8phMQWnWCIzxutl9eA==&#13;
</wss:Password>
<wss:Nonce>TMenGvSml0F+K7Dj+O06QvOr+RI1Fh2NgRfMkuSg2voh8jxKdU3Ofw8fEZaDWt7PKzDeGzlqw/wp&#13;
ku7FQY6cftUpwVMmmC0D7d8x4KIqMuTEJgkat7kPyAjsNsswPs/J2TzRA37wXV56WgiwHVUSgYpk&#13;
KEGt5B9Wge2dV+mQ1ISLlSCyHi8F9ON9X4+rDA+NqGDD3OsZX8rrUz3oBa4OdvyDvuHGg52Kc6wQ&#13;
UbKejrQWAC1xe75iGfOvfKHtA1swJ5B2GR//5pmdQrDKvd7f0njIg9Om/ZYQKEuq382/GgBma0dw&#13;
ZSdI8iz4XYGDzlA2JqPC0sy9FUmuHd3HPTMnwg==&#13;
</wss:Nonce>
<wss:Created>nD8mFsbEBYrYzo3/PgHnKeDtqEJ44nCu4w6loODNWvk=&#13;
</wss:Created>
</wss:UsernameToken>
</wss:Security>
</S:Header>
<S:Body>
<ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/">
<TaxRegistrationNumber>599999993</TaxRegistrationNumber>
<ns2:InvoiceNo>- /1</ns2:InvoiceNo>
<ns2:InvoiceDate>2012-05-05</ns2:InvoiceDate>
<ns2:InvoiceType>FT</ns2:InvoiceType>
<ns2:InvoiceStatus>N</ns2:InvoiceStatus>
<CustomerTaxID>299999998</CustomerTaxID>
<Line>
<ns2:CreditAmount>100</ns2:CreditAmount>
<ns2:Tax>
<ns2:TaxType>IVA</ns2:TaxType>
<ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion>
<ns2:TaxPercentage>23</ns2:TaxPercentage>
</ns2:Tax>
</Line>
<DocumentTotals>
<ns2:TaxPayable>23</ns2:TaxPayable>
<ns2:NetTotal>100</ns2:NetTotal>
<ns2:GrossTotal>123</ns2:GrossTotal>
</DocumentTotals>
</ns2:RegisterInvoiceElem>
</S:Body>
</S:Envelope>


>>>RECEIVED<<<
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<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>Servidor Aplicacional Indisponivel</faultstring>
<detail>fews.gdcontfsimpostosqua</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

>>>STACKTRACE<<<
javax.xml.ws.soap.SOAPFaultException: Servidor Aplicacional Indisponivel
	at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
	at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
	at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
	at com.sun.proxy.$Proxy26.registerInvoice(Unknown Source)
	at pt.at.factemipf.core.webservices.proxy.FaturasWSProxy.registerInvoice(FaturasWSProxy.java:112)
	at pt.at.factemipf.gui.FactemipfServicesGuiFactory$2.actionPerformed(FactemipfServicesGuiFactory.java:275)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

segundo o "nosso" colega @jmta_92

No meu caso o ambiente de teste continua a funcionar

álguem pode confirmar que a "sandbox" deles está a trabalhar?

penso que isto diz quase tudo :(

<faultcode>33</faultcode>
<faultstring>Servidor Aplicacional Indisponivel</faultstring>

nos docs o erro 33 - Pedido SOAP inválido;

o mesmo soap da em produção, mas vou investigar á cautela


de notar e mesmo que na sandbox deles fica ali a moer ate dar o mitico timeout!!!
(é preciso esperar quase 1m até o timeout/erro se manifestar)

quote at Para testar a conectividade com o Webservice de envio de Faturas, de Documentos de Transporte, de Declarações de IRC, de Pedidos de Regularização de IVA ou de Declarações da IES, disponibilizamos a aplicação abaixo com acesso ao ambiente de qualidade da AT

muito obrigado a todos :)

Editado por koakh

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh
1 hora atrás, PSeg disse:

Olá a todos.
Estou a tentar testar os webservices.
Baixei o TesteWebServices.pfx e uso a password TesteWebService, mas obtenho sempre o erro de ligação cancelada.
É preciso os dois outros ficheiros que vinham no zip também estarem na mesma pasta ? (Chave Cifra Publica AT (Produção).cer e saPubKey.jks)
Alguém me pode ajudar ?
Obrigado

erro de ligação cancelada.....aparentemente e por não estares a usar os certificados.......

quantos aos ficheiros serem necessários, por ex o jks é em ambiente java......
....e não e estar na mesma pasta, isso não é suficiente, pois tens que os usar na aplicação,
facilitava se desses mais informações tal como linguagem de programação usada por ex no meu caso C# entre outras informações......
se for C# posso ajudar, embora tal como disse estou a tentar o ambiente de testes de a uma semana e nada......

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
marcolopes
26 minutes ago, koakh said:

erro de ligação cancelada.....aparentemente e por não estares a usar os certificados.......

quantos aos ficheiros serem necessários, por ex o jks é em ambiente java......
....e não e estar na mesma pasta, isso não é suficiente, pois tens que os usar na aplicação,
facilitava se desses mais informações tal como linguagem de programação usada por ex no meu caso C# entre outras informações......
se for C# posso ajudar, embora tal como disse estou a tentar o ambiente de testes de a uma semana e nada......

Eu estou em ambiente JAVA e uso o Chave Publica CER (converto-o para JKS). Já deixei de usar o saPubKey.jks há anos... até pensei que tinha sido descontinuado, pois não faz qualquer sentido.

Qual é o NIF que estão a usar no ambiente de testes actualmente? A AT descontinuou o USER 599999993/0037 que permitia acesso para testes?


The simplest explanation is usually the correct one

JAVA Utilities: https://github.com/marcolopes/dma

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh
24 minutos atrás, marcolopes disse:

Eu estou em ambiente JAVA e uso o Chave Publica CER (converto-o para JKS). Já deixei de usar o saPubKey.jks há anos... até pensei que tinha sido descontinuado, pois não faz qualquer sentido.

Qual é o NIF que estão a usar no ambiente de testes actualmente? A AT descontinuou o USER 599999993/0037 que permitia acesso para testes?

Obrigado @marcolopes
o NIF que uso e precisamente esse  599999993/0037 junto com a password testes1234!!!!
trabalhava bem a coisa de 1 mês, é o que vejo inclusive na documentação deles de 

8 de agosto de 2017 -> ComunicacaodosdadosdasfaturasaAT.pdf 

4.4 Exemplo completo de pedido SOAP 
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Header> <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
    <wss:UsernameToken> <wss:Username>599999993/37</wss:Username> 
    <wss:Password>ikCyRV+SWfvZ5c6Q0bhrBQ==</wss:Password>
      ...

está também na sandbox deles, que vem previamente preenchida no form 599999993/0037

mas se descontinou qual a novo user e password, é que estou com a mão na massa e testava já isso :)

obrigado a dos e claro @marcolopes pela dica

o estranho é o erro parecer mais de timeouts do que do user, pois se eu "martelar" um nif ou  password fake por ex "bananaman" ele responde com 

>>>RECEIVED<<<
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>99  </faultcode>
<faultstring>Rejected:   |  Codigo: 99  |  Erro: Senha inválida. Tem mais 4 tentativas.\nVerifique se não está a utilizar maiúsculas ou minúsculas indevidamente.  |  Tentativas Restantes: 4</faultstring>
<detail>fews.gdcontfsimpostosqua</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

ou seja responde instantaneo! de facto itso é estranho, pois com o user 599999993/0037 e testes1234 e q da os eternos tineouts na sandbox deles e no meu code!
aposto uma ficha como é um pintelho......como sempre só para azedar a cena LOL

Editado por koakh

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSeg

Obrigado pelas respostas.
O programa que faz o interface esta em Visual Basic, o meu programa é em Net Cobol.
Gera um XML com os dados necessários e depois invoca o tal programa, e recebe o status da comunicação.
O engraçado é que em ambiente de produção funciona (mandei 1 guia e tudo ok), mas em ambiente de testes... nada
Uso o pfx que me estava no "certificados.zip" e o NIF 599999993/0037 com a password testes1234

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSeg
10 minutos atrás, koakh disse:

@PSeg parece que estamos no mesmo barco, na mesma guerra do ambiente de testes.....

Sim.
Especificamente a mensagem é:
A ligação subjacente foi fechada: Erro inesperado ao enviar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh

@PSeg

nas minhas notas antigas esse erro tem haver como estas a usar o certificado, instalado no OS ou exportado (Exportable)

2016-09-20 11:22:04,481 [DEBUG] ....financial.service.Objects.Utils : Error 200: [A ligação subjacente foi fechada: Erro inesperado ao enviar.]

instalei o TesteWebService.pfx com a Password: "TESTEwebservice" no sistema operativo e ja deu!!!

Sem o Certificado Instalado

no meu caso o Truque era usar o X509KeyStorageFlags.Exportable

Importing the Private Key from the .pfx file
http://stackoverflow.com/questions/16260984/importing-the-private-key-from-the-pfx-file

//From user installed Certificates - NO WORK AND GIVES YOU THE SAME ERROR > A ligação subjacente foi fechada: Erro inesperado ao enviar.
//cert.Import(_pathCertificate, _passwordCertificate, X509KeyStorageFlags.DefaultKeySet);
//From FileSystem - WORK
cert.Import(_pathCertificate, _passwordCertificate, X509KeyStorageFlags.Exportable);

tenta instalar o certificado no OS primeiro e se der, depois usas o file dentro da pasta do software, foi o q eu fiz

Editado por koakh
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
marcolopes
2 hours ago, koakh said:

@PSeg

nas minhas notas antigas esse erro tem haver como estas a usar o certificado, instalado no OS ou exportado (Exportable)

2016-09-20 11:22:04,481 [DEBUG] ....financial.service.Objects.Utils : Error 200: [A ligação subjacente foi fechada: Erro inesperado ao enviar.]

instalei o TesteWebService.pfx com a Password: "TESTEwebservice" no sistema operativo e ja deu!!!

Sem o Certificado Instalado

no meu caso o Truque era usar o X509KeyStorageFlags.Exportable

Importing the Private Key from the .pfx file
http://stackoverflow.com/questions/16260984/importing-the-private-key-from-the-pfx-file


//From user installed Certificates - NO WORK AND GIVES YOU THE SAME ERROR > A ligação subjacente foi fechada: Erro inesperado ao enviar.
//cert.Import(_pathCertificate, _passwordCertificate, X509KeyStorageFlags.DefaultKeySet);
//From FileSystem - WORK
cert.Import(_pathCertificate, _passwordCertificate, X509KeyStorageFlags.Exportable);

tenta instalar o certificado no OS primeiro e se der, depois usas o file dentro da pasta do software, foi o q eu fiz

A velha história de depender dos certificados instalados no sistema... outra coisa que não tem qualquer lógica. Eu carrego os certificados e não dependo de qualquer instalação do mesmo no sistema...

2 hours ago, PSeg said:

Obrigado pelas respostas.
O programa que faz o interface esta em Visual Basic, o meu programa é em Net Cobol.
Gera um XML com os dados necessários e depois invoca o tal programa, e recebe o status da comunicação.
O engraçado é que em ambiente de produção funciona (mandei 1 guia e tudo ok), mas em ambiente de testes... nada
Uso o pfx que me estava no "certificados.zip" e o NIF 599999993/0037 com a password testes1234

USER: 599999993//0037 PASS: testes1234

<ReturnCode>54</ReturnCode>
<ReturnMessage>Não tem permissões para aceder a esta operação.</ReturnMessage>

Editado por marcolopes

The simplest explanation is usually the correct one

JAVA Utilities: https://github.com/marcolopes/dma

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh

@marcolopes

sim eu tambem carrego os certificados sem os instalar, usando o X509KeyStorageFlags.Exportable em vez de X509KeyStorageFlags.DefaultKeySet

ou seja usa se o default keystore (windows neste caso)  ou o exportable (a partir dos files) 

ex 
Resources\Certificates\ChaveCifraPublicaAT2020.cer

prefiro o exportable assim vai nas pasta do software, mais fácil de fazer replace etc

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSeg
16 horas atrás, koakh disse:

@PSeg

tenta instalar o certificado no OS primeiro e se der, depois usas o file dentro da pasta do software, foi o q eu fiz

Mas nesse caso em ambiente de produção também devia dar erro, certo ?
Mas vou testar..
 

 

14 horas atrás, marcolopes disse:

A velha história de depender dos certificados instalados no sistema... outra coisa que não tem qualquer lógica. Eu carrego os certificados e não dependo de qualquer instalação do mesmo no sistema...

USER: 599999993//0037 PASS: testes1234

<ReturnCode>54</ReturnCode>
<ReturnMessage>Não tem permissões para aceder a esta operação.</ReturnMessage> 

Ou seja, o user e/ou password não funcionam...
Alguém sabe user e password actualmente funcionais ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh

bom dia

599999993//0037 > duas barras aqui, ou foi lapso?

ao testar no sandbox da at
https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action
esse user são válidos (599999993/0037), fica a dar timeouts, como já reportei em  cima.....
hwALjy0.png

Error Message

<SOAP-ENV:Fault>
<faultcode>33</faultcode>
<faultstring>Servidor Aplicacional Indisponivel</faultstring>
<detail>fews.gdcontfsimpostosqua</detail>
</SOAP-ENV:Fault>
>>>SENT<<<
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wss:UsernameToken>
<wss:Username>599999993/0037</wss:Username>
<wss:Password>mrO+c1w00SiT5d1vOrlALw==&#13;
</wss:Password>
<wss:Nonce>iXpr18aSB2spOQmisCSklJizmW1XYkKKVqjasTtE9uYEts6rqlJjR1onb7KB7p8ZVONnjA7mBOBs&#13;
f3nhQl5oi9tQf5+agDXi4IVJD0IKIf0RGCjJJgx1ftHnhwcKRhk5qyIjsM0wPASDeUvbzxz9q7cp&#13;
s0pTklYSwoY1+6py4Pf2jq7GMGbpgTLaZpOQ0oceqDjqqxAI4elxXqK5XbBCY3DOUdOuXbfUrhH8&#13;
9NHpNpsOvv+8bTuqqetUH6Jg70OgW4Kxo4YGuKEaPExR7ny45imBSDZvSsonxz97vLlhX4xXeAFc&#13;
lsTZZUEItwvNdh9R37oM57gsfmqDh2qV7i/uVA==&#13;
</wss:Nonce>
<wss:Created>fLNNxA/GN0tzOpQyWNqE3VWencQpJKLRaS2ueiQKK9I=&#13;
</wss:Created>
</wss:UsernameToken>
</wss:Security>
</S:Header>
<S:Body>
<ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/">
<TaxRegistrationNumber>599999993</TaxRegistrationNumber>
<ns2:InvoiceNo>- /1</ns2:InvoiceNo>
<ns2:InvoiceDate>2012-05-05</ns2:InvoiceDate>
<ns2:InvoiceType>FT</ns2:InvoiceType>
<ns2:InvoiceStatus>N</ns2:InvoiceStatus>
<CustomerTaxID>299999998</CustomerTaxID>
<Line>
<ns2:CreditAmount>100</ns2:CreditAmount>
<ns2:Tax>
<ns2:TaxType>IVA</ns2:TaxType>
<ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion>
<ns2:TaxPercentage>23</ns2:TaxPercentage>
</ns2:Tax>
</Line>
<DocumentTotals>
<ns2:TaxPayable>23</ns2:TaxPayable>
<ns2:NetTotal>100</ns2:NetTotal>
<ns2:GrossTotal>123</ns2:GrossTotal>
</DocumentTotals>
</ns2:RegisterInvoiceElem>
</S:Body>
</S:Envelope>


>>>RECEIVED<<<
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<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>Servidor Aplicacional Indisponivel</faultstring>
<detail>fews.gdcontfsimpostosqua</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

>>>STACKTRACE<<<
javax.xml.ws.soap.SOAPFaultException: Servidor Aplicacional Indisponivel
	at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
	at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
	at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
	at com.sun.proxy.$Proxy26.registerInvoice(Unknown Source)
	at pt.at.factemipf.core.webservices.proxy.FaturasWSProxy.registerInvoice(FaturasWSProxy.java:112)
	at pt.at.factemipf.gui.FactemipfServicesGuiFactory$2.actionPerformed(FactemipfServicesGuiFactory.java:275)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
marcolopes
10 hours ago, koakh said:

bom dia

599999993//0037 > duas barras aqui, ou foi lapso?

ao testar no sandbox da at
https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action
esse user são válidos (599999993/0037), fica a dar timeouts, como já reportei em  cima.....

Foi lapso, deveria ter escrito 599999993/0037

11 hours ago, PSeg said:

Ou seja, o user e/ou password não funcionam...
Alguém sabe user e password actualmente funcionais ?

Ao que pude concluir, é necessário fazer mesmo um REGISTO de acesso aos webservices e suar as credenciais "oficiais"...


The simplest explanation is usually the correct one

JAVA Utilities: https://github.com/marcolopes/dma

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PSeg
11 horas atrás, marcolopes disse:

Foi lapso, deveria ter escrito 599999993/0037

Ao que pude concluir, é necessário fazer mesmo um REGISTO de acesso aos webservices e suar as credenciais "oficiais"... 

Isso quer dizer, criar um utilizador na AT com o NIF da empresa ?
Ainda estou em fase de certificação do programa na AT, mas queria adiantar esta parte dos webservices...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh
13 horas atrás, marcolopes disse:

Foi lapso, deveria ter escrito 599999993/0037

Ao que pude concluir, é necessário fazer mesmo um REGISTO de acesso aos webservices e suar as credenciais "oficiais"...

estas a falar do utilizador de produtor de software

isso e essencial, mas eu falava do utilizador de testes.......convém lembrar que são diferentes, com ambientes e diferentes....

o que gostava mesmo de saber é se o user de testes acima mencionado mudou tal como disse um user, a uns posts a traz ou é o mesmo

e se o ambiente de testes está mesmo a funcionar com esse user 599999993/0037 e pass testes1234
acabei de testar outra vez com o sandbox deles com essas credenciais e dá o mesmo erro que postei ai em cima.....o mitico.....

<SOAP-ENV:Fault>
<faultcode>33</faultcode>
<faultstring>Servidor Aplicacional Indisponivel</faultstring>
<detail>fews.gdcontfsimpostosqua</detail>
</SOAP-ENV:Fault>

tal como disse nos últimos posts o erro só aparece com esse user e pass,
qql outro user e pass dá erro instantaneo, sem o eterno timeout...
o que aparentemente prova que o user está correcto, o web service é que está Servidor Aplicacional Indisponivel
posso estar enganado claro.......por isso agradecia que alguém confirma se o que se está aqui a dabater.....
que penso ser se o ambiente de testes, está ou não a funcionar, e com que user e pass

obrigado a todos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
americob

Acabei de testar, tanto na pagina dos Produtores de Software, como no meu software  em ambiente de testes e está tudo a funcionar normalmente.

No meu software faço o envio de teste com o NIF/0001 e a respetiva senha que foi dada ao sub-utilizador 1, até para confirmar que o utilizador digitou a senha corretamente.

 

  • Voto 2

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
marcolopes
2 hours ago, koakh said:

estas a falar do utilizador de produtor de software

isso e essencial, mas eu falava do utilizador de testes.......convém lembrar que são diferentes, com ambientes e diferentes....

o que gostava mesmo de saber é se o user de testes acima mencionado mudou tal como disse um user, a uns posts a traz ou é o mesmo

Não... o ENDEREÇO (ENDPOINT) de testes é que é diferente... o utilizador é o que tu quiseres, e pelos vistos, a AT revogou o acesso do utilizador "universal" que tinha criado para testes...

Resta a cada empresa que quiser testar CRIAR um SUB-utilizador no portal das finanças relativo aos webservices e usar essas credenciais...

  • Voto 2

The simplest explanation is usually the correct one

JAVA Utilities: https://github.com/marcolopes/dma

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
xambas

Olá malta,

Estou a desenvolver um modulo de comunicação de documentos de transporte em VB.NET, e estou empancado num problema com o qual espero que me possam ajudar.

Então, a situação é a seguinte, eu consigo comunicar com o servidor de testes, no entanto quando invoco o método para o envio, obtenho a seguinte resposta de erro:

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

Dos testes que fiz, consegui perceber a ordem que eles testam cada um dos campos: Nonce, Created, Password.

Isto quer dizer que, o meu problema pode ser um dos seguintes:

  • chave assimétrica que gero, pode ter problemas (não me parece que seja isto)
  • encriptação da chave assimétrica pode estar errada
  • a string com a data pode estar errada (também nao me parece, já tentei de tudo)
  • a encriptação da string com a data

Segue o meu código:

' GERAÇÃO DE CHAVE ASSIMÉTRICA
Public Function GenerateAESKey() As AesKey Implements IEncryptionServices.GenerateAESKey
  Dim aes As New AesManaged()

  aes.KeySize = 128
  aes.BlockSize = 128
  aes.GenerateKey()
  aes.GenerateIV()

  Return New AesKey() With {.IV = aes.IV, .Key = aes.Key}
End Function
' USO ESTA FUNC PARA ENCRIPTAR O NONCE 
Public Function EncryptUsingRSA(text As String, certificateFilePath As String, Optional password As String = "") As String Implements IEncryptionServices.EncryptUsingRSA
  Dim certificate As New X509Certificate2(certificateFilePath, password)

  Dim csp As RSACryptoServiceProvider = certificate.PublicKey.Key

  Dim bytesPlainText = System.Text.Encoding.Unicode.GetBytes(text)
  Dim encryptedBytesPlainText = csp.Encrypt(bytesPlainText, False)

  Dim cypherText = Convert.ToBase64String(encryptedBytesPlainText)

  Return cypherText
End Function
' USO ESTA FUNC PARA ENCRIPTAR A PASSWORD E A DATA
Public Function EncryptUsingAES(text As String, key As AesKey) As String Implements IEncryptionServices.EncryptUsingAES
            If text Is Nothing OrElse text.Length <= 0 Then
                Throw New ArgumentNullException(NameOf(text))
            End If

            If key Is Nothing Then
                Throw New ArgumentNullException(NameOf(key))
            End If

            If key.Key Is Nothing OrElse key.Key.Length <= 0 Then
                Throw New ArgumentNullException(NameOf(key.Key))
            End If

            If key.IV Is Nothing OrElse key.IV.Length <= 0 Then
                Throw New ArgumentNullException(NameOf(key.IV))
            End If

            Dim aesManaged As New AesManaged()
            aesManaged.Key = key.Key
            aesManaged.IV = key.IV
            aesManaged.BlockSize = 128
            aesManaged.Mode = CipherMode.ECB
            aesManaged.Padding = PaddingMode.PKCS7

            Dim encryptor As ICryptoTransform = aesManaged.CreateEncryptor(aesManaged.Key, aesManaged.IV)
            Dim memoryStream As New MemoryStream()
            Dim cryptoSream As New CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write)
            Dim streamWriter As New StreamWriter(cryptoSream)

            streamWriter.Write(text)

            streamWriter.Close()
            cryptoSream.Close()
            memoryStream.Close()

            Dim encrypted As Byte() = memoryStream.ToArray()

            Return Convert.ToBase64String(encrypted)
        End Function

Sim, o camiho do certificado está correcto.

Sim, o certificado está actualizado.

Sim, já verifiquei o formato da data e comparei com a OAL.

Já tentei de tudo, estou sem ideias... Vou beber uma cerveja ou 10

Please help!

Obrigado!

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh
21 horas atrás, marcolopes disse:

Não... o ENDEREÇO (ENDPOINT) de testes é que é diferente... o utilizador é o que tu quiseres, e pelos vistos, a AT revogou o acesso do utilizador "universal" que tinha criado para testes...

Resta a cada empresa que quiser testar CRIAR um SUB-utilizador no portal das finanças relativo aos webservices e usar essas credenciais...

obrigado pela resposta....
sim eu sei que o endpoint do ambiente de testes é diferente, isso está na documentação......e é o que sempre usei, não sabia era que tinham a at thina revogado o acesso do utilizador "universal" como dizes e bem (grande dica)

por curiosidade tentei com o mesmo user que uso na produção mas com o endpoint de testes, e dá erro da palavra chave! era esperado

andei a dar uma volta nos site AT e não descobri a página para criar o tal sub-user de testes, será que podes facultar o link @marcolopes

UPDATE: a única página que encontrei foi https://www.acesso.gov.pt/gestaoDeUtilizadores/consulta?partID=PFAP

mas aparece A funcionalidade que está a tentar aceder não é destinada a sub-utilizadores.

pelos visto preciso das credenciais do utilizador principal, podes confirmar que é esta página @marcolopes

obrigado a todos pela ajuda

Editado por koakh

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh
24 minutos atrás, americob disse:

Realmente, o Portal da AT está tão modificado que não se consegue encontrar nada à primeira.

Aqui vai o link: https://www.acesso.gov.pt/gestaoDeUtilizadores/consulta?partID=PFAP

 

thanks é o tal link, obrigado pela confirmação......top
isto é uma selva, se não fosse este mitico forum e os seus users era impossivel implementar isto apenas com a documentação deles.......
enfim obrigam as empresas a fazer algo e não há apoio nem documentação de suporte (a minha opinião apenas)

obrigado

update: solicitei ao meu patrão para ir a página para criar user,
explorei aquilo tudo e não vejo qualquer referencia ao user de testes no ambiente de testes, e apenas tenho estas opções....

Operações Autorizadas

1DA - Perfil uumds CD,CUST_ADMINISTRATIVE
1DE - Perfil uumds CD,CUST_EXECUTIVE
1DL - Perfil uumds CD,CUST_CONSULTATIVE
ARR - Arrendamento, Contratos e Recibos Eletronicos de Renda
ARW - Arrendamento Webservice
CA - Contribuição Autárquica / Imposto Municipal sobre Imóveis
CAD - Consulta situação cadastral
CAT - Contencioso Administrativo Tributário
CCD - Pedido de regularização de IVA - Artigo 78º-B do Código do IVA
CCE - Consulta Transferências Entidade
CCM - Conta Corrente dos Municípios
CCW - Pedido de regularização de IVA - Artigo 78º-B do Código do IVA por webservice
CJT - Consulta de Processos de Contencioso Judicial Tributário
COB - Consulta resumo de cobrança
CRE - Penhoras de Créditos
CTF - Certidões Fiscais
DA - Decl. Anual
DBD - Débitos Diretos
DIV - Dívidas Fiscais
DMR - Declaração Mensal de Remunerações
EFC - Consulta de Processos Executivos
EFI - Instaurações Processos Executivos
GCR - Gestão de Credores e Graduações de Créditos
GPE - Gestão de penhoras em execução fiscal
GPP - Gestão de Pagamentos a Prestações
GRG - Sistema de Garantias - Gestão de Garantia -Submissão/Reforço/Redução
GRP - Sistema de Garantias - Pedido de Garantia
GUI - Guias de Pagamento / Retenção IR / Selo
ICF - Identificação de Clientes e Fornecedores
IEE - Impostos Especiais Consumo - Estampilhas
IES - Informacao Empresarial Simplificada
IMV - Imposto Municipal sobre Veículos
INF - Infracções Fiscais
INV - Inventario de Existencias
IRC - Imp. Rendimento Colectivo
IRS - Imp. Rendimento Singular
IUC - Imposto Único de Circulação
IVA - Imp. Valor Acrescentado
M10 - Mod. 10
M26 - Contribuição Especial Sector Bancário
M27 - Contribuição Extraordinária sobre o Setor Energético
M28 - Contribuição Extraordinária sobre a Indústria Farmacêutica
MCC - Consulta conta corrente Municipal
OT - Obrigações Terceiros
PA1 - Pagamentos Antecipados de IRC (P1)
PA2 - Pagamentos Antecipados de IVA (P2)
PPC - Pagamentos por Conta Categorias A/H
PPS - Penhora de Pensões
RED - Regularização extraordinária de dívidas
REN - Penhoras de Rendas
RFI - Relações Fiscais Internacionais
ROC - Revisor Oficial de Contas
RVE - Recibos Verdes Electrónicos
SCP - Sistema de Compensações a Pedido
SGC - Sistema Simplificado e Gratuito de Contabilidade e Gestão
SLE - Sistema de Leilões Electrónicos
VEN - Penhoras de Vencimentos e Abonos
VRF - VAT Refund
WDT - Comunicação de dados de Documentos de Transporte
WFA - Comunicação de dados de faturas
WTX - Operações para agentes e-taxfree

basicamente permite criar outro user igual ao que uso na produção, devo estar a fazer uma enorme confusão......
a sorte é que em ambiente de produção está a trabalhar, mas gostava mesmo de por o ambiente de testes a funcionar.......

Editado por koakh

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
marcolopes
8 hours ago, koakh said:

thanks é o tal link, obrigado pela confirmação......top
isto é uma selva, se não fosse este mitico forum e os seus users era impossivel implementar isto apenas com a documentação deles.......
enfim obrigam as empresas a fazer algo e não há apoio nem documentação de suporte (a minha opinião apenas)

obrigado

update: solicitei ao meu patrão para ir a página para criar user,
explorei aquilo tudo e não vejo qualquer referencia ao user de testes no ambiente de testes, e apenas tenho estas opções....


Operações Autorizadas

1DA - Perfil uumds CD,CUST_ADMINISTRATIVE
1DE - Perfil uumds CD,CUST_EXECUTIVE
1DL - Perfil uumds CD,CUST_CONSULTATIVE
ARR - Arrendamento, Contratos e Recibos Eletronicos de Renda
ARW - Arrendamento Webservice
CA - Contribuição Autárquica / Imposto Municipal sobre Imóveis
CAD - Consulta situação cadastral
CAT - Contencioso Administrativo Tributário
CCD - Pedido de regularização de IVA - Artigo 78º-B do Código do IVA
CCE - Consulta Transferências Entidade
CCM - Conta Corrente dos Municípios
CCW - Pedido de regularização de IVA - Artigo 78º-B do Código do IVA por webservice
CJT - Consulta de Processos de Contencioso Judicial Tributário
COB - Consulta resumo de cobrança
CRE - Penhoras de Créditos
CTF - Certidões Fiscais
DA - Decl. Anual
DBD - Débitos Diretos
DIV - Dívidas Fiscais
DMR - Declaração Mensal de Remunerações
EFC - Consulta de Processos Executivos
EFI - Instaurações Processos Executivos
GCR - Gestão de Credores e Graduações de Créditos
GPE - Gestão de penhoras em execução fiscal
GPP - Gestão de Pagamentos a Prestações
GRG - Sistema de Garantias - Gestão de Garantia -Submissão/Reforço/Redução
GRP - Sistema de Garantias - Pedido de Garantia
GUI - Guias de Pagamento / Retenção IR / Selo
ICF - Identificação de Clientes e Fornecedores
IEE - Impostos Especiais Consumo - Estampilhas
IES - Informacao Empresarial Simplificada
IMV - Imposto Municipal sobre Veículos
INF - Infracções Fiscais
INV - Inventario de Existencias
IRC - Imp. Rendimento Colectivo
IRS - Imp. Rendimento Singular
IUC - Imposto Único de Circulação
IVA - Imp. Valor Acrescentado
M10 - Mod. 10
M26 - Contribuição Especial Sector Bancário
M27 - Contribuição Extraordinária sobre o Setor Energético
M28 - Contribuição Extraordinária sobre a Indústria Farmacêutica
MCC - Consulta conta corrente Municipal
OT - Obrigações Terceiros
PA1 - Pagamentos Antecipados de IRC (P1)
PA2 - Pagamentos Antecipados de IVA (P2)
PPC - Pagamentos por Conta Categorias A/H
PPS - Penhora de Pensões
RED - Regularização extraordinária de dívidas
REN - Penhoras de Rendas
RFI - Relações Fiscais Internacionais
ROC - Revisor Oficial de Contas
RVE - Recibos Verdes Electrónicos
SCP - Sistema de Compensações a Pedido
SGC - Sistema Simplificado e Gratuito de Contabilidade e Gestão
SLE - Sistema de Leilões Electrónicos
VEN - Penhoras de Vencimentos e Abonos
VRF - VAT Refund
WDT - Comunicação de dados de Documentos de Transporte
WFA - Comunicação de dados de faturas
WTX - Operações para agentes e-taxfree

basicamente permite criar outro user igual ao que uso na produção, devo estar a fazer uma enorme confusão......
a sorte é que em ambiente de produção está a trabalhar, mas gostava mesmo de por o ambiente de testes a funcionar.......

Acho que não expliquei bem... não existe um SUB-utilizador de TESTES! O SUB-utilizador a usar é o mesmo da produção!

Talvez eles queiram saber quem anda a fazer testes :D

Experimentem com o SUB-user de produção e digam qq coisa.

O problema desta abordagem é que, caso o programador por lapso esteja no ambiente de produção... está a comunicar documentos 😕

NOTA: Gosto muito!!! da inconsistência de descrições nesta tabela da AT...

  • ARW - Arrendamento Webservice

  • DA - Decl. Anual

  • DMR - Declaração Mensal de Remunerações

  • IMV - Imposto Municipal sobre Veículos

  • IRC - Imp. Rendimento Colectivo

  • M10 - Mod. 10

 

Editado por marcolopes
  • Voto 1

The simplest explanation is usually the correct one

JAVA Utilities: https://github.com/marcolopes/dma

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
koakh

boas @marcolopes

obrigado pela explicação, isto está se a tornar confuso....

@marcolopes > Acho que não expliquei bem... não existe um SUB-utilizador de TESTES! O SUB-utilizador a usar é o mesmo da produção!

tal como tentei explicar nos posts em cima , já testei o user de produção, basicamente apenas troquei o endpoint e dá erro que descrevi em cima...
Exception: [O tempo limite da operação expirou]

testei com o código que funciona a 100% em produção e claro mesmo erro

no sandbox deles com o use produção o mesmo erro, timeout, e só testarem, e aguardarem 1m ou mais até aparecer o erro


bem voltei a carga outra vez....e tentei novamente com várias combinações, inclusive usando um NIF sem ser o 599999993

log

Using pathPublicKey: [Resources/Certificates/ChaveCifraPublicaAT2020.cer]
Using pathCertificate: [Resources/Certificates/TesteWebservice.pfx]
TaxRegistrationNumber :[508508???], AccountFiscalNumber: [508278???/2], AccountPassword: [???]
urlWebService: https://servicos.portaldasfinancas.gov.pt:700/fews/faturas
urlSoapAction: http://servicos.portaldasfinancas.gov.pt/faturas/RegisterInvoice
Send Document DocumentNumber: [FS 2018A12/1]/WayBillMode: [False]
Cert Subject: [CN=TesteWebServices, OU=ASI, O=AT - Autoridade Tributaria e Aduaneira, L=Lisboa, S=Lisboa, C=PT], NotBefore: [09/01/2018 16:07:30], NotAfter: [08/07/2018 17:07:30]
Exception: [O tempo limite da operação expirou]

Como se pode ver em cima uso os seguintes dados
- PublicKey Válido [09/01/2018 16:07:30], NotAfter: [08/07/2018 17:07:30]
- Certificado de Testes com a Pass : TESTEwebservice
- TaxRegistrationNumber: 599999993 e outro tal como 508508???
- urlWebService: Endpoint de Testes

Notas os files de teste em cima são os que fiz download na página da AT apenas mudei o nome de 
Chave Cifra Publica AT (Produção).cer para ChaveCifraPublicaAT2020.cer 

- E claro com o mesmo sub user e em modo de produção que está a trabalhar a 100%!!!

alguem me pode confirmar que dados usam no modo de testes?

- Ficheiros dos Certificados: ex "Chave Cifra Publica AT (Produção).cer" / "TesteWebServices.pfx"
- Sub User: ex 508278???/2
- NIF ex 599999993
- Endpoints: urlWebService: https://servicos.portaldasfinancas.gov.pt:700/fews/faturas / urlSoapAction: http://servicos.portaldasfinancas.gov.pt/faturas/RegisterInvoice

Para ver se descalço este "Hirritável", na volta mando a pasta para Angola LOL rsrrrsrs

Muito Obrigado a todos

Update#1: Já agora alguem pode testar na sandbox da AT a ver se funciona, é que ai é "só" usar o user de produção e devia dar!!!!

Update#2 :
Claro que se mudar o sub user de ?????????/2 para ?????????/3 da outro erro, 
de user inválido claro, o que prova tal como na sandbox que o user é o correcto, isto mais parece dos certificados que outra coisa......
quanto aos certificados fiz download e usei como disse em cima.....

Send ProtocolError StreamResult: [<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>99  </faultcode>
<faultstring>Rejected:   |  Codigo: 99  |  Erro: Acesso suspenso.  |  Tentativas Restantes: 5</faultstring>
<detail>fews.gdcontfsimpostosqua</detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>]

 

Editado por koakh

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.