Jump to content

Utilizar Webservices da AT


Recommended Posts

  • Replies 9k
  • Created
  • Last Reply

Top Posters In This Topic

  • nunopicado

    943

  • marcolopes

    408

  • brunotoira

    405

  • americob

    165

Top Posters In This Topic

Popular Posts

Eles estão-se nas tintas para nós e para o que nós achamos lamentável... Quero que eles se f... Cosam! Amanhã vou de férias, coisa que não faço há anos... São só 4 dias, mas acho que o escravo mere

Uma LUZINHA? Queres dizer... NÓS... os beta-testers e escravos do sistema! Foram muitas dezenas de emails de recomendações enviados, problemas reportados, sugestões... Não era dificil de prever que a

Sim, digamos que um tipo de API mas apenas para alimentar o próprio website via AJAX (Javascript). Um exemplo prático: Depois de se autenticarem no portal e-fatura (como consumidor), acedam ao segu

Em 01/02/2021 às 16:14, kalin disse:

De que manual é? os que tenho, documentos de transporte ou das faturas, não tem essa parte do digest

Boas,

 

Todas as mais recentes integrações com os webservices da AT utilizam o Digest como o @Sergio.referiu. Seja o IES, Declarações IVA, Mod 22, etc.

Link to post
Share on other sites
6 horas atrás, alfcup disse:

Boas,

 

Todas as mais recentes integrações com os webservices da AT utilizam o Digest como o @Sergio.referiu. Seja o IES, Declarações IVA, Mod 22, etc.

Sim, como só implementei os serviços de comunicação dos documentos de transporte e das faturas, não estava a ver o que era, nesses serviços não tem essa parte.

Link to post
Share on other sites
JQWERTY

Bom dia!

Estou a tentar comunicar uma guia e o servidor da AT devolve-me um erro que considero estranho:

  Parametro de entrada inválido, com a mensagem, "Se existem um Bem com pelo menos uma referência a Documento Inicial preenchida, todos os outros também o têm que ter feito.".

Este problema está a ocorrer quando, no mesmo documento de transporte, há artigos que referenciam linhas de, por exemplo, encomendas, e outros artigos introduzidos manualmente.

Alguem sabe o porquê deste erro de integração ocorrer?

Obg.

Link to post
Share on other sites
albertosilva
8 minutos atrás, JQWERTY disse:

Bom dia!

Estou a tentar comunicar uma guia e o servidor da AT devolve-me um erro que considero estranho:

  Parametro de entrada inválido, com a mensagem, "Se existem um Bem com pelo menos uma referência a Documento Inicial preenchida, todos os outros também o têm que ter feito.".

Este problema está a ocorrer quando, no mesmo documento de transporte, há artigos que referenciam linhas de, por exemplo, encomendas, e outros artigos introduzidos manualmente.

Alguem sabe o porquê deste erro de integração ocorrer?

Obg.

Este é o tipo de questão que recomendaria contactar a AT pelo portal dos produtores de software, porque efetivamente parece ser algo que deveria ser corrigido do lado deles.

Link to post
Share on other sites
igorevc84
On 1/21/2021 at 11:21 AM, Cláudio Moreira said:

Bom dia Caros,

Estou a implementar, em c# o webservice da AT, para comunicar o Importo Selo https://servicos.portaldasfinancas.gov.pt:721/DmisServiceImplService, já ultrapassei (penso eu) todos os problemas de autenticação, mas agora estou-me a deparar com o seguinte problema:

Ao invocar o método DmisSubmission, um dos campos é o AlreadyPaidTaxAmount, um campo decimal que está na assinatura do método, ilustrando:

DmisSubmission(short TaxableEntityTaxOfficeCode, 
int TaxableEntityTaxID, 
string TaxPeriod, 
bool SubstitutionDeclaration, 
int TaxRepresentativeTaxID, 
int CertifiedAccountantTaxID, 
int DeclarationLinesQuantity, 
int DeclarationLinesBlocksQuantity, 
DeclarationLinesBlockType DeclarationLinesBlock, 
decimal AlreadyPaidTaxAmount, 
out DmisRegistrationDataType DmisRegistrationData)

A questão é que a AT me obriga a enviar null no campo AlreadyPaidTaxAmount se o campo SubstitutionDeclaration="false".

Passando qualquer coisa neste campo, quando o SubstitutionDeclaration="false", obtenho o seguinte erro:

System.ServiceModel.FaultException: simple-type 1: element {http://servicos.portaldasfinancas.gov.pt/dmis/dmisService}AlreadyPaidTaxAmount value '0.0' is not a valid instance of type {http://servicos.portaldasfinancas.gov.pt/dmis/dmisService}PositiveMonetaryType

 

Alguém já teve este problema e o consegui ultrapassar? 

Boa tarde,

Acabei de me inscrever e também tive de fazer o desenvolvimento duma aplicação que comunica o IS.

Já tive esse problema e a solução é, simplesmente, não colocar o XML do AlreadyPaidTaxAmount se o campo SubstitutionDeclaration="false". Além disso... só podes enviar se o AlreadyPaidTaxAmount for >= 0.01 (definido no XSD)

Agora faço eu uma pergunta... Alguém já conseguiu comunicar uma DMIS em Produção?

Edited by igorevc84
Changes 1
Link to post
Share on other sites
americob

Webservice DPIVA:

É impressão minha ou o serviço bloqueou?
Mesmo declarações que já entreguei na semana passada pelo webservice e já tenho o comprovativo, agora ao validar dão erro 33.

Agora que o prazo está a acabar (acaba quarta-feira 24), se o serviço não funciona deixa ficar mal as software-house's que o implementaram.

Link to post
Share on other sites
americob
Em 21/02/2021 às 04:01, americob disse:

Webservice DPIVA:

É impressão minha ou o serviço bloqueou?
Mesmo declarações que já entreguei na semana passada pelo webservice e já tenho o comprovativo, agora ao validar dão erro 33.

Agora que o prazo está a acabar (acaba quarta-feira 24), se o serviço não funciona deixa ficar mal as software-house's que o implementaram.

Já percebi (ou já mudaram), o erro 33 só dá quando o resultado é uma mensagem de erro ou alterta.
Parece que é uma validação ao próprio XML de resposta, quando tem erro/alerta, a resposta está mal construida. Se não tiver erro/alerta, a resposta já está bem construida e aparece correta, valida e submete.

 

Link to post
Share on other sites
JoaoF
Em 23/02/2021 às 12:19, americob disse:

Já percebi (ou já mudaram), o erro 33 só dá quando o resultado é uma mensagem de erro ou alterta.
Parece que é uma validação ao próprio XML de resposta, quando tem erro/alerta, a resposta está mal construida. Se não tiver erro/alerta, a resposta já está bem construida e aparece correta, valida e submete.

 

Consegues comunicar com o webservice DPIVA?

De todos os testes em que temos feito o resultado que conseguimos foi Internal error:

<?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>

Obrigado

Edited by JoaoF
Link to post
Share on other sites
americob
2 horas atrás, JoaoF disse:

Consegues comunicar com o webservice DPIVA?

De todos os testes em que temos feito o resultado que conseguimos foi Internal error:




<?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>

Obrigado

Sim, conseguimos fazer a autenticação, e fazemos algumas operações, mas ainda estamos com problemas noutras:

Em testes (porta 706), não conseguimos validar nem submeter, dá erro 99 - erro interno, mas conseguimos obeterComprovativo e pagamento, retornando os PDFs corretos.

Em produção (porta 406), consguimos validar e submeter, mas se a Declaração tiver erros ou alertas dá uma mensagem de erro 33 - problema do XML de resposta (que é construido por eles), e também não conseguimos obterComprovativo nem o pagamento.

Usamos, em todas as operações, exatamente os mesmos pedidos SOAP com a mesma Declaração, Contribuinte, Contabilista e respetivas passwords, só mudamos o endereço (porta) e Certificado SSL.

Edited by americob
corrigir o erro em produção
Link to post
Share on other sites
Grifen

Olá malta , tinha o software a comunicar do nada passou a dar TCP connection reset by peer, os certificados tao um até 2023 a chave publica e a privada é de julho do ano de 2020 nao tem um ano, há conhecimento de problemas com eles?

Gonçalo Silva

Link to post
Share on other sites

Boa tarde,

Estou a tentar enviar uma declaração de IVA à AT, através do webservice DeclaracaoPeriodicaIVAWebService usando .net, isto é o que tento carregar:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dec="https://servicos.portaldasfinancas.gov.pt/dpivaws/DeclaracaoPeriodicaIVAWebService">
  <soapenv:Header>
    <wss:Security xmlns:at="http://at.pt/wsp/auth" xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext" soapenv:Actor="http://at.pt/actor/SPA" at:Version="2">
      <wss:UsernameToken>
        <wss:Username>508096855/1</wss:Username>
        <wss:Password Digest="z/IAS2/ZsCCVr95EuILAgw==">20dl5BORni72zS5qrzi1Kg==</wss:Password>
        <wss:Nonce>C0H4T4yntxtYKScroorGjUkUSPWiTettO0Dz7gNYT19MbZTeQaNgP1vrTOSTmeewC/3x+IKsKX0UJjiZFb8qWeYCtkeOHXF8ADj7y9CmjLKVVf/zD3fXU7QWnIhVMU0jI2c5n6NJuXKCWTi+OEhCuez7QKAR37gkllQDwv/bIUSwEdm+0VnX2EfSw7WBUyVHSCtfcbjmrMVA1nK2rUPappwH9aza0XI7lTnItEXRdcKsn+nVerFatEBwcWYstRPOr65oHz9xXAxUcEoq3MSCzl4UiX27cfKAQY3+pLu+SxiUdNbDZOOvWuU8n1QFWc7TqiiPxmMcRuiPUUZu0t+EDg==</wss:Nonce>
        <wss:Created>2021-04-01T11:54:29.17Z</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
  </soapenv:Header>
  <soapenv:Body>
    <dec:submeterDeclaracaoPeriodicaIVARequest>
      <versaoDeclaracao>2016</versaoDeclaracao>
      <declaracao>AAEAAAD/////AQAAAAAAAAAMAgAAAEdTRUlfSVZBX1BPUlRVR0FMLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAGlNFSV9JVkFfUE9SVFVHQUwuZHBpdmFUeXBlCQAAAApyb3N0b0ZpZWxkEmFuZXhvQ2FtcG80MFJGaWVsZBJhbmV4b0NhbXBvNDFSRmllbGQLYW5leG9JRmllbGQLYW5leG9SRmllbGQNY2xpZW50ZXNGaWVsZBFmb3JuZWNlZG9yZXNGaWVsZBNyZWd1bGFyaXphY29lc0ZpZWxkDHZlcnNpb25GaWVsZAQEBAQEBAQEAR5TRUlfSVZBX1BPUlRVR0FMLnJvc3RvRm9ybVR5cGUCAAAAJlNFSV9JVkFfUE9SVFVHQUwuYW5leG9DYW1wbzQwUkZvcm1UeXBlAgAAACZTRUlfSVZBX1BPUlRVR0FMLmFuZXhvQ2FtcG80MVJGb3JtVHlwZQIAAAAfU0VJX0lWQV9QT1JUVUdBTC5hbmV4b0lGb3JtVHlwZQIAAAAhU0VJX0lWQV9QT1JUVUdBTC5hbmV4b1JGb3JtVHlwZVtdAgAAACNTRUlfSVZBX1BPUlRVR0FMLmNsaWVudGVzRm9ybVR5cGVbXQIAAAAnU0VJX0lWQV9QT1JUVUdBTC5mb3JuZWNlZG9yZXNGb3JtVHlwZVtdAgAAAClTRUlfSVZBX1BPUlRVR0FMLnJlZ3VsYXJpemFjb2VzRm9ybVR5cGVbXQIAAAACAAAACQMAAAAKCgoKCgoKBgQAAAACMDUFAwAAAB5TRUlfSVZBX1BPUlRVR0FMLnJvc3RvRm9ybVR5cGUDAAAAD2FwdXJhbWVudG9GaWVsZBRkZXNlbnZvbHZpbWVudG9GaWVsZAtpbmljaW9GaWVsZAQEBCtTRUlfSVZBX1BPUlRVR0FMLnJvc3RvQXB1cmFtZW50b1NlY3Rpb25UeXBlAgAAADBTRUlfSVZBX1BPUlRVR0FMLnJvc3RvRGVzZW52b2x2aW1lbnRvU2VjdGlvblR5cGUCAAAAJ1NFSV9JVkFfUE9SVFVHQUwucm9zdG9JbmljaW9TZWN0aW9uVHlwZQIAAAACAAAACQUAAAAKCQYAAAAFBQAAACtTRUlfSVZBX1BPUlRVR0FMLnJvc3RvQXB1cmFtZW50b1NlY3Rpb25UeXBlVgAAABVidEJlbnNVRUFydGlnbzE1RmllbGQeYnRCZW5zVUVBcnRpZ28xNUZpZWxkU3BlY2lmaWVkFWJ0QmVuc1VFQXJ0aWdvMjJGaWVsZB5idEJlbnNVRUFydGlnbzIyRmllbGRTcGVjaWZpZWQgYnRCZW5zVUVMaXF1aWRhZG9EZWNsYXJhbnRlRmllbGQpYnRCZW5zVUVMaXF1aWRhZG9EZWNsYXJhbnRlRmllbGRTcGVjaWZpZWQSYnRCZW5zVUVUb3RhbEZpZWxkG2J0QmVuc1VFVG90YWxGaWVsZFNwZWNpZmllZBdidEltcG9ydERlY2xhcmFudGVGaWVsZCBidEltcG9ydERlY2xhcmFudGVGaWVsZFNwZWNpZmllZCFidE9wZXJhY29lc0lzZW50YXNDb21EZWR1Y2FvRmllbGQqYnRPcGVyYWNvZXNJc2VudGFzQ29tRGVkdWNhb0ZpZWxkU3BlY2lmaWVkIWJ0T3BlcmFjb2VzSXNlbnRhc1NlbURlZHVjYW9GaWVsZCpidE9wZXJhY29lc0lzZW50YXNTZW1EZWR1Y2FvRmllbGRTcGVjaWZpZWQRYnRTZXJ2aWNvc1VFRmllbGQaYnRTZXJ2aWNvc1VFRmllbGRTcGVjaWZpZWQVYnRUYXhhSW50ZXJtZWRpYUZpZWxkHmJ0VGF4YUludGVybWVkaWFGaWVsZFNwZWNpZmllZBFidFRheGFOb3JtYWxGaWVsZBpidFRheGFOb3JtYWxGaWVsZFNwZWNpZmllZBNidFRheGFSZWR1emlkYUZpZWxkHGJ0VGF4YVJlZHV6aWRhRmllbGRTcGVjaWZpZWQMYnRUb3RhbEZpZWxkFWJ0VG90YWxGaWVsZFNwZWNpZmllZBxidFRyYW5zbWlzc29lc1VFSXNlbnRhc0ZpZWxkJWJ0VHJhbnNtaXNzb2VzVUVJc2VudGFzRmllbGRTcGVjaWZpZWQVZXhjZXNzb0FSZXBvcnRhckZpZWxkHmV4Y2Vzc29BUmVwb3J0YXJGaWVsZFNwZWNpZmllZCRleGNlc3NvQVJlcG9ydGFyUGVyaW9kb0FudGVyaW9yRmllbGQtZXhjZXNzb0FSZXBvcnRhclBlcmlvZG9BbnRlcmlvckZpZWxkU3BlY2lmaWVkEWl2YUFFbnRyZWdhckZpZWxkGml2YUFFbnRyZWdhckZpZWxkU3BlY2lmaWVkEml2YUFSZWN1cGVyYXJGaWVsZBtpdmFBUmVjdXBlcmFyRmllbGRTcGVjaWZpZWQhaXZhQmVuc1VFTGlxdWlkYWRvRGVjbGFyYW50ZUZpZWxkKml2YUJlbnNVRUxpcXVpZGFkb0RlY2xhcmFudGVGaWVsZFNwZWNpZmllZBNpdmFCZW5zVUVUb3RhbEZpZWxkHGl2YUJlbnNVRVRvdGFsRmllbGRTcGVjaWZpZWQYaXZhRGVkdXRpdmVsQW5leG9SMUZpZWxkIWl2YURlZHV0aXZlbEFuZXhvUjFGaWVsZFNwZWNpZmllZBhpdmFEZWR1dGl2ZWxBbmV4b1IyRmllbGQhaXZhRGVkdXRpdmVsQW5leG9SMkZpZWxkU3BlY2lmaWVkHWl2YURlZHV0aXZlbEFuZXhvc1JUb3RhbEZpZWxkJml2YURlZHV0aXZlbEFuZXhvc1JUb3RhbEZpZWxkU3BlY2lmaWVkKml2YURlZHV0aXZlbEV4aXN0ZW5jaWFzVGF4YUludGVybWVkaWFGaWVsZDNpdmFEZWR1dGl2ZWxFeGlzdGVuY2lhc1RheGFJbnRlcm1lZGlhRmllbGRTcGVjaWZpZWQmaXZhRGVkdXRpdmVsRXhpc3RlbmNpYXNUYXhhTm9ybWFsRmllbGQvaXZhRGVkdXRpdmVsRXhpc3RlbmNpYXNUYXhhTm9ybWFsRmllbGRTcGVjaWZpZWQoaXZhRGVkdXRpdmVsRXhpc3RlbmNpYXNUYXhhUmVkdXppZGFGaWVsZDFpdmFEZWR1dGl2ZWxFeGlzdGVuY2lhc1RheGFSZWR1emlkYUZpZWxkU3BlY2lmaWVkHGl2YURlZHV0aXZlbEltb2JpbGl6YWRvRmllbGQlaXZhRGVkdXRpdmVsSW1vYmlsaXphZG9GaWVsZFNwZWNpZmllZBdpdmFEZWR1dGl2ZWxPdXRyb3NGaWVsZCBpdmFEZWR1dGl2ZWxPdXRyb3NGaWVsZFNwZWNpZmllZBZpdmFEZWR1dGl2ZWxUb3RhbEZpZWxkH2l2YURlZHV0aXZlbFRvdGFsRmllbGRTcGVjaWZpZWQYaXZhRmF2b3JFc3RhZG9Ub3RhbEZpZWxkIWl2YUZhdm9yRXN0YWRvVG90YWxGaWVsZFNwZWNpZmllZBxpdmFGYXZvclN1alBhc3Npdm9Ub3RhbEZpZWxkJWl2YUZhdm9yU3VqUGFzc2l2b1RvdGFsRmllbGRTcGVjaWZpZWQYaXZhSW1wb3J0RGVjbGFyYW50ZUZpZWxkIWl2YUltcG9ydERlY2xhcmFudGVGaWVsZFNwZWNpZmllZBhpdmFMaXF1aWRhZG9BbmV4b1IxRmllbGQhaXZhTGlxdWlkYWRvQW5leG9SMUZpZWxkU3BlY2lmaWVkGGl2YUxpcXVpZGFkb0FuZXhvUjJGaWVsZCFpdmFMaXF1aWRhZG9BbmV4b1IyRmllbGRTcGVjaWZpZWQSaXZhU2Vydmljb3NVRUZpZWxkG2l2YVNlcnZpY29zVUVGaWVsZFNwZWNpZmllZBZpdmFUYXhhSW50ZXJtZWRpYUZpZWxkH2l2YVRheGFJbnRlcm1lZGlhRmllbGRTcGVjaWZpZWQSaXZhVGF4YU5vcm1hbEZpZWxkG2l2YVRheGFOb3JtYWxGaWVsZFNwZWNpZmllZBRpdmFUYXhhUmVkdXppZGFGaWVsZB1pdmFUYXhhUmVkdXppZGFGaWVsZFNwZWNpZmllZA5yZWVtYm9sc29GaWVsZBdyZWVtYm9sc29GaWVsZFNwZWNpZmllZB5yZWd1bGFyaXphY29lc0Zhdm9yRXN0YWRvRmllbGQncmVndWxhcml6YWNvZXNGYXZvckVzdGFkb0ZpZWxkU3BlY2lmaWVkNXJlZ3VsYXJpemFjb2VzRmF2b3JTdWpQYXNzaXZvQ29tdW5pY2FkYXNDb2JyYW5jYUZpZWxkPnJlZ3VsYXJpemFjb2VzRmF2b3JTdWpQYXNzaXZvQ29tdW5pY2FkYXNDb2JyYW5jYUZpZWxkU3BlY2lmaWVkOHJlZ3VsYXJpemFjb2VzRmF2b3JTdWpQYXNzaXZvTmFvQ29tdW5pY2FkYXNDb2JyYW5jYUZpZWxkQXJlZ3VsYXJpemFjb2VzRmF2b3JTdWpQYXNzaXZvTmFvQ29tdW5pY2FkYXNDb2JyYW5jYUZpZWxkU3BlY2lmaWVkKHRlbU9wZXJhY29lc0FkcXVpcmVudGVDb21MaXFJbXBvc3RvRmllbGQedGVtT3BlcmFjb2VzQ29tTGlxSW1wb3N0b0ZpZWxkG3RlbU9wZXJhY29lc0RlZHV0aXZlaXNGaWVsZB50ZW1PcGVyYWNvZXNTZW1MaXFJbXBvc3RvRmllbGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQEJAQkBCQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAABDQAAAAAAAAABAgAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABDwAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABDQAAAAAAAAABAgAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAABBgcAAAACTm8JBwAAAAkHAAAACQcAAAAFBgAAACdTRUlfSVZBX1BPUlRVR0FMLnJvc3RvSW5pY2lvU2VjdGlvblR5cGUaAAAAEmFub0RlY2xhcmFjYW9GaWVsZCFhcHJlc2VudG91RGVjbFJlY2FwaXR1bGF0aXZhRmllbGQqYXByZXNlbnRvdURlY2xSZWNhcGl0dWxhdGl2YUZpZWxkU3BlY2lmaWVkG2F0aXZpZGFkZXNJbW9iaWxpYXJpYXNGaWVsZCRhdGl2aWRhZGVzSW1vYmlsaWFyaWFzRmllbGRTcGVjaWZpZWQaZGF0YUNlc3NhY2FvQXRpdmlkYWRlRmllbGQjZGF0YUNlc3NhY2FvQXRpdmlkYWRlRmllbGRTcGVjaWZpZWQYZGF0YUluaWNpb0F0aXZpZGFkZUZpZWxkIWRhdGFJbmljaW9BdGl2aWRhZGVGaWVsZFNwZWNpZmllZBRsb2NhbGl6YWNhb1NlZGVGaWVsZAhuaWZGaWVsZBFuaWZGaWVsZFNwZWNpZmllZApuaWZDQ0ZpZWxkE25pZkNDRmllbGRTcGVjaWZpZWQWcGVyaW9kb0RlY2xhcmFjYW9GaWVsZApwcmF6b0ZpZWxkF3ByaW1laXJhRGVjbGFyYWNhb0ZpZWxkEXNlbU9wZXJhY29lc0ZpZWxkGnNlbU9wZXJhY29lc0ZpZWxkU3BlY2lmaWVkFHRlbUFuZXhvUkFjb3Jlc0ZpZWxkHXRlbUFuZXhvUkFjb3Jlc0ZpZWxkU3BlY2lmaWVkGHRlbUFuZXhvUkNvbnRpbmVudGVGaWVsZCF0ZW1BbmV4b1JDb250aW5lbnRlRmllbGRTcGVjaWZpZWQVdGVtQW5leG9STWFkZWlyYUZpZWxkHnRlbUFuZXhvUk1hZGVpcmFGaWVsZFNwZWNpZmllZBV1bHRpbWFEZWNsYXJhY2FvRmllbGQBAAAAAAAAAAABAAAAAAEBAQAAAAAAAAAAAQEBAQENAQ0BCQEJAQEBAQEBAQEBAgAAAAYIAAAABDIwMjABAQABAAB8i02O1wgBAADaF6H02IgBBgkAAAAIUE9SVFVHQUxX8UgeAAAAAAEAAAAAAAAAAAAGCgAAAAE0BgsAAAABMQYMAAAAAVkBAQABAQEAAQYNAAAAAU4L</declaracao>
    </dec:submeterDeclaracaoPeriodicaIVARequest>
  </soapenv:Body>
</soapenv:Envelope>

Estou a obter  a seguinte mensagem de erro:

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://autenticacao.portaldasfinancas.gov.pt/services/ValidateCredencialService/2012/11" xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>Client.Authentication</faultcode>
<faultstring>Ocorreu um erro na autenticação dos contribuintes.</faultstring>
<faultactor/>
<detail>
<ns:AuthenticationException>
<AuthenticationFailed xmlns:ns3="http://at.pt/wsp/auth" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ns0="http://autenticacao.portaldasfinancas.gov.pt/services/ValidateCredencialService/2012/11" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<Code>15</Code>
<Message>O Digest não corresponde ao esperado</Message>
<NumberOfTriesRemaining>-1</NumberOfTriesRemaining>
<Actor>http://at.pt/actor/SPA</Actor></AuthenticationFailed></ns:AuthenticationException></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

O método de estou a utilizar para encriptar a password, nonce e el digest:

' SIMETRIC KEY / NONCE:
        Dim certCP As X509Certificate2 = New X509Certificate2
        certCP.Import(ClavePublicaAT)
        ' Chave pública para String
        Dim Kpub As String = certCP.PublicKey.Key.ToXmlString(False)
        ' Gerando a chave simétrica de 128 bits (AES)
        Dim rijndaelCipher As AesCryptoServiceProvider = AesCryptoServiceProvider.Create()
        rijndaelCipher.Mode = CipherMode.ECB
        rijndaelCipher.Padding = PaddingMode.PKCS7
        rijndaelCipher.KeySize = 128
        rijndaelCipher.BlockSize = 128
        rijndaelCipher.GenerateKey()

        ' H. 2. - Nonce (String - Base64) Chave de solicitação simétrica
        Dim ks() As Byte = rijndaelCipher.Key
        Dim RSA As RSACryptoServiceProvider = New RSACryptoServiceProvider()
        RSA.FromXmlString(Kpub)
        Dim Key() As Byte = RSA.Encrypt(ks, False)
        '// Chave simétrica convertida para 64 bits
        clsChaveCifra.Nonce = Convert.ToBase64String(Key)
        '//---------------------------------------------- 
        ' H. 3. - Senha (String - Base64)
        '//-----------------------------------------
        ' Stream de memória por senhaPF
        Dim msSenhaPF As MemoryStream = New MemoryStream()
        ' AES, Modelo ECB, PKCS5Padding y chave simétrica(ks)
        Dim csSenhaPF As CryptoStream = New CryptoStream(msSenhaPF, rijndaelCipher.CreateEncryptor(ks, rijndaelCipher.IV), CryptoStreamMode.Write)
        Using swSenhaPF As StreamWriter = New StreamWriter(csSenhaPF)
            swSenhaPF.Write(SenhaPF)
        End Using
        ' Converter para Base64
        clsChaveCifra.PasswordEncrypted = Convert.ToBase64String(msSenhaPF.ToArray())
        'DATA DE CRIAÇÃO
        clsChaveCifra.FechaCreacion = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.ff") + "Z"
        '
        Dim bytesNonce() As Byte = ks
        Dim bytesCreated() As Byte = System.Text.Encoding.UTF8.GetBytes(clsChaveCifra.FechaCreacion)
        Dim bytesPasswod() As Byte = System.Text.Encoding.UTF8.GetBytes(frmMain.m_Configuration.PasswordWeb)
        '
        Dim digestInput(bytesNonce.Length + bytesCreated.Length + bytesPasswod.Length) As Byte

        Array.Copy(bytesNonce, 0, digestInput, 0, bytesNonce.Length)
        Array.Copy(bytesCreated, 0, digestInput, bytesNonce.Length, bytesCreated.Length)
        Array.Copy(bytesCreated, 0, digestInput, bytesNonce.Length + bytesCreated.Length, bytesPasswod.Length)


        Dim SHA1Bytes() As Byte = HashAlgorithm.Create("SHA1").ComputeHash(digestInput)

        ' Stream de memória por Digest
        Dim msDigest As MemoryStream = New MemoryStream()
        ' Função que criptografa a senhaPF usando o algoritmo AES, modelo ECB, PKCS5Padding e a chave simétrica (ks)
        Dim csDigest As CryptoStream = New CryptoStream(msDigest, rijndaelCipher.CreateEncryptor(ks, rijndaelCipher.IV), CryptoStreamMode.Write)
        Using swDigest As StreamWriter = New StreamWriter(csDigest)
            swDigest.Write(SHA1Bytes)
        End Using

        clsChaveCifra.Digest = Convert.ToBase64String(msDigest.ToArray()) 

Se alguém ja teve o mesmo problema, pode dizer-me qual é o problema e como solucionar?

Obrigado antecipadamente.

Link to post
Share on other sites
chesser

O certificado SSL da AT vai ser atualizado na próxima segunda-feira.

Citação

Exm.ºs Senhores:

Devido a alteração na entidade certificadora para corresponder aos requisitos de segurança dos browsers mais recentes, o certificado digital de "SSL" do sítio servicos.portaldasfinancas.gov.pt (portos 4XX,5XX)
irá expirar brevemente e, por isso, irá ser alterado no próximo dia 12 de abril, da parte da manhã.


Esta alteração implica a substituição do certificado digital de "SSL" e respetiva cadeia de certificação.


Recomendamos que testem os vossos produtos para que não haja problemas na comunicação, designadamente  de Documentos de Transporte, Faturas, Declarações de IRC, Contratos de Arrendamento, ICS, ECS,
SICEX, SICEU para a AT por parte dos operadores económicos vossos clientes.

Para tal, a AT alterou hoje o mencionado certificado nos portos de testes (7XX, 8XX) para que cada produtor de software possa testar a continuidade do funcionamento dos seus produtos, contendo já estes endereços o novo
certificado "SSL".


Recomendamos que se valide, se aplicável, a cadeia de certificação, conforme o exemplo indicado no “Código Fonte da aplicação em Java Applet”, o qual pode ser obtido através da ligação:
https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action


O ficheiro enviado em anexo contém no seu interior as chaves públicas do novo certificado digital "SSL" e as chaves públicas da cadeia de certificação, no formato “.p7b” e formato “.pem”. Estas chaves públicas são apenas
 utilizadas no estabelecimento da ligação "SSL" entre os sistemas dos clientes dos WebServices e a AT.


Os pedidos de esclarecimento deverão ser colocados ao e-balcão através do site do portal das finanças.

 

Resta esperar que esta seja uma alteração que não cause grandes sobressaltos (a nós e aos nosso clientes).

Link to post
Share on other sites
Sérgio Lourenço
40 minutos atrás, chesser disse:

O certificado SSL da AT vai ser atualizado na próxima segunda-feira.

 

Resta esperar que esta seja uma alteração que não cause grandes sobressaltos (a nós e aos nosso clientes).

Se fôr como em Julho de 2020... Fiquei sem perceber se foram problemas de "propagação", se alguém na AT se esqueceu de mudar o certificado, ou ainda se mudaram e depois voltaram atrás... Já estou a preparar-me para o pior.

Link to post
Share on other sites
13 horas atrás, Grifen disse:

Vai mudar o ChaveCifraPublicaAT2023.cer ?

Não. Penso que essa chave pública tem validade até 2023.

Em princípio, se for como das outras vezes, esta alteração é apenas ao nível do servidor da AT e nós não temos de fazer nada... pelo menos tem sido assim.

Link to post
Share on other sites
nunopicado
33 minutos atrás, edith disse:

Mudança do certificado digital de "SSL" do sítio servicos.portaldasfinancas.gov.pt

Resumindo e concluindo, na teoria não precisamos de fazer nada no software?

Depende.
Se validares a cadeia de certificação, deverás ter de atualizar o certificado que enviaram no mail.
Se não validares a cadeia de certificação, não deverás ter de fazer nada.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to post
Share on other sites
Nuno Miguel Alves

Boa tarde,

Estou a seguir a sugestão do email da AT e estou testar no porto de teste 701 com o certificado de testes e está a dar o seguinte erro:

Ocorreu um erro ao efetuar o pedido HTTP a https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte. Isto pode ser causado pelo facto do certificado do servidor nao estar corretamente configurado com HTTP.SYS no caso HTTPS. Isto também pode ser causado por um erro de correspondencia do enlace de segurança entre o cliente e o servidor.

Será que tem a ver com esse certificado de SSL?

Alguém está a ter o mesmo problema?

Obrigado.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.