Jump to content

Utilizar Webservices da AT


cjulio
Go to solution Solved by thoga31,

Recommended Posts

Em 01/12/2022 às 19:52, marcolopes disse:
========================================
Registar série: 62233289611177269445787720750897514
========================================
org.dma.java.net.NTPServerHandler.getTime(NTPServerHandler.java:107)ntp02.oal.ul.pt/194.117.47.42
Dez 01, 2022 7:49:51 PM org.dma.services.at.SOAPMessageHandler logSOAPMessage
INFO: <!---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 Digest="EwgFjthuz+Iz+t7EW40bs0/IqVKp8GPrlrrYUMqGn0k=">a6sCHoXRgUvTKbzhykKIgg==</wss:Password>
<wss:Nonce>T/I5GI86qosJNZf8PEC8wZoOxOslt6s1195/aULtItCyDeNLE4bctXduR3BDgSCYgUZ1R0QfbS2NsOiHYxG/J2g6p+Wen4TPkYq+nTGYnLQv2vSMoQp8pnQA6G3vBiLoN9YNUpzfpUi4hynd6vLcTBJuz/q1LByAHIyYkPMNRu5uJe0elvxbkjt38xhPttmm9NTaJIe/LJUkqCb8OTVhS3GZ7mHp/oYmIBpSiypJumR/nyJOLyEeL/7xdYkS1s8L960JPgHxZRVLktgdvqWzax/4k2mIBEHSmDOiKEiv+OYQAG2ijXOwZPGo272E1XU5xENHBP6AQDvr4bw4mGg7Kg==</wss:Nonce>
<wss:Created>2022-12-01T19:49:53.141Z</wss:Created>
</wss:UsernameToken>
</wss:Security>
</S:Header>
<S:Body>
<ns2:registarSerie xmlns:ns2="http://at.gov.pt/">
<serie>62233289611177269445787720750897514</serie>
<tipoSerie>N</tipoSerie>
<classeDoc>SI</classeDoc>
<tipoDoc>FT</tipoDoc>
<numInicialSeq>1</numInicialSeq>
<dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
<numCertSWFatur>0</numCertSWFatur>
<meioProcessamento>PI</meioProcessamento>
</ns2:registarSerie>
</S:Body>
</S:Envelope>

Dez 01, 2022 7:49:53 PM org.dma.services.at.SOAPMessageHandler logSOAPMessage
INFO: <!---RECEIVED--->
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<WorkContext xmlns="http://oracle.com/weblogic/soap/workarea/">rO0ABXdWABV3ZWJsb2dpYy5hcHAuc2VyaWVzYm8AAADWAAAAI3dlYmxvZ2ljLndvcmthcmVhLlN0cmluZ1dvcmtDb250ZXh0ABAyMDIyMTEyNTE2MTYwOS4wAAA=</WorkContext>
</S:Header>
<S:Body>
<ns0:registarSerieResponse xmlns:ns0="http://at.gov.pt/">
<registarSerieResp>
<infoSerie>
<serie>62233289611177269445787720750897514</serie>
<tipoSerie>N</tipoSerie>
<classeDoc>SI</classeDoc>
<tipoDoc>FT</tipoDoc>
<numInicialSeq>1</numInicialSeq>
<dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
<meioProcessamento>PI</meioProcessamento>
<numCertSWFatur>0</numCertSWFatur>
<codValidacaoSerie>AAJFFDX9V3</codValidacaoSerie>
<dataRegisto>2022-12-01</dataRegisto>
<estado>A</estado>
<dataEstado>2022-12-01T19:49:54Z</dataEstado>
<nifComunicou>599999993</nifComunicou>
</infoSerie>
<infoResultOper>
<codResultOper>2001</codResultOper>
<msgResultOper>Série registada com sucesso. A situação ficou ativa e foi atribuído o seguinte código de validação : AAJFFDX9V3</msgResultOper>
</infoResultOper>
</registarSerieResp>
</ns0:registarSerieResponse>
</S:Body>
</S:Envelope>

2001 - Série registada com sucesso. A situação ficou ativa e foi atribuído o seguinte código de validação : AAJFFDX9V3

Nif/Doc/Serie: 599999993/FT/62233289611177269445787720750897514

Estado: A
Tipo Série: N
Tipo Documento: FT
Classe Documento: SI
Data Registo: 2022-12-01
Data Utilização: 2022-12-01
Número Inicial Sequência: 1
Último Documento Emitido: null
Justificação Finalização: null
Data Estado (Alteração): 2022-12-01T19:49:54Z
Motivo Estado (Anulação): null
Número Final Sequência: null
Código Validação: AAJFFDX9V3
NIF Comunicou: 599999993
Meio Processamento: PI
Número Certificado Software: 0

========================================
Anular série: 62233289611177269445787720750897514
========================================
Dez 01, 2022 7:49:53 PM org.dma.services.at.SOAPMessageHandler logSOAPMessage
INFO: <!---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 Digest="GsV790bFgQz4u7CsHoJJas0uCVu/CeNl+d9VZA0KR8U=">YWwMHwmfyjHk4f6imOKLBQ==</wss:Password>
<wss:Nonce>dc3aEpfxd3e8aPy/DYzt6PQjLbXwtw+EjYfelMejCJuXoOxgTdaCsqbF2xK7YY9rWcOhuAS3XhKMCs3AI3A9Vz+d+V8lRs+0Li3QDQoujaVoJZV/V6AdzMciRr77WUHfHsBtn6RmcoN8AqO8shbdcLh5TzoW67CuAcoXg0cCFzZptbPQlTu7i/dKmUgVXFa3DwWBhAwuaFMgXqBwZakaAvvTALbcWQDXo1Df/nnhSnWd47crrP42us87BkBYVaMPWS+USpAXSKpFvrb+SFrpsMT6VHSXDdqq3IDGWFwOg3Csc9kSqy4b+5XKgHMubAdDll9KsrGKGVOQVCTcGunekg==</wss:Nonce>
<wss:Created>2022-12-01T19:49:54.489Z</wss:Created>
</wss:UsernameToken>
</wss:Security>
</S:Header>
<S:Body>
<ns2:anularSerie xmlns:ns2="http://at.gov.pt/">
<serie>62233289611177269445787720750897514</serie>
<classeDoc>SI</classeDoc>
<tipoDoc>FT</tipoDoc>
<codValidacaoSerie>AAJFFDX9V3</codValidacaoSerie>
<motivo>ER</motivo>
<declaracaoNaoEmissao>true</declaracaoNaoEmissao>
</ns2:anularSerie>
</S:Body>
</S:Envelope>

Dez 01, 2022 7:49:53 PM org.dma.services.at.SOAPMessageHandler logSOAPMessage
INFO: <!---RECEIVED--->
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<WorkContext xmlns="http://oracle.com/weblogic/soap/workarea/">rO0ABXdWABV3ZWJsb2dpYy5hcHAuc2VyaWVzYm8AAADWAAAAI3dlYmxvZ2ljLndvcmthcmVhLlN0cmluZ1dvcmtDb250ZXh0ABAyMDIyMTEyNTE2MTYwOS4wAAA=</WorkContext>
</S:Header>
<S:Body>
<ns0:anularSerieResponse xmlns:ns0="http://at.gov.pt/">
<anularSerieResp>
<infoSerie>
<serie>62233289611177269445787720750897514</serie>
<tipoSerie>N</tipoSerie>
<classeDoc>SI</classeDoc>
<tipoDoc>FT</tipoDoc>
<numInicialSeq>1</numInicialSeq>
<dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
<meioProcessamento>PI</meioProcessamento>
<numCertSWFatur>0</numCertSWFatur>
<codValidacaoSerie>AAJFFDX9V3</codValidacaoSerie>
<dataRegisto>2022-12-01</dataRegisto>
<estado>N</estado>
<motivoEstado>ER</motivoEstado>
<dataEstado>2022-12-01T19:49:54Z</dataEstado>
<nifComunicou>599999993</nifComunicou>
</infoSerie>
<infoResultOper>
<codResultOper>2003</codResultOper>
<msgResultOper>Série anulada com sucesso.</msgResultOper>
</infoResultOper>
</anularSerieResp>
</ns0:anularSerieResponse>
</S:Body>
</S:Envelope>

2003 - Série anulada com sucesso.

Não encontro qualquer problema...

Obrigado pelo retorno, acredito que tenha acontecido alguma instabilidade no dia 30 e por isso tive esse erro, hoje testei novamente e está funcionando corretamente.

Link to comment
Share on other sites

Boa tarde, estou a desenvolver em Delphi e uso o httprio para a comunicação, estou com alguma dificuldade em fazer a comunicação. Como adiciono o cabeçalho (aquele que já várias pessoas meteram como exemplo) e já agora que componente usaram para encriptar a password e a data e como usar o certificado. Desculpem as perguntas mas é a primeira vez que estou a usar as comunicações desta maneira. Se me conseguirem ajudar agradeço. Caso tenham algum pequeno projeto em delphi como exemplo para me poder guiar mandem pm para me passarem. Obrigado.

Link to comment
Share on other sites

Em 01/12/2022 às 17:47, s0me0ne disse:

Já confirmas-te se a data do PC está sincronizada, e se a data do envio não tem ligação à data do registo do documento?

Quando falas na "data de envio", a que data te estás a referir? 

"data do registo do documento" referes-te à data em que o documento foi feito, certo?

Edited by Cu5co

Carlos Matos 💪

Link to comment
Share on other sites

Em 02/12/2022 às 14:10, Luis Cozinheiro disse:

Boa tarde, estou a desenvolver em Delphi e uso o httprio para a comunicação, estou com alguma dificuldade em fazer a comunicação. Como adiciono o cabeçalho (aquele que já várias pessoas meteram como exemplo) e já agora que componente usaram para encriptar a password e a data e como usar o certificado. Desculpem as perguntas mas é a primeira vez que estou a usar as comunicações desta maneira. Se me conseguirem ajudar agradeço. Caso tenham algum pequeno projeto em delphi como exemplo para me poder guiar mandem pm para me passarem. Obrigado.

https://github.com/nunopicado/AtWS

  • Vote 1

"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 comment
Share on other sites

Boas!

Algum colega tem os códigos necessários para os campos classeDoc e  tipoDoc possíveis para a comunicação das séries ?

Eu encontrei no grupo os códigos a seguir, mas está incompleto a parte do classeDoc, falta para os documentos de conferencia (orçamentos)

<classeDoc>SI</classeDoc> 'Classe é SI -> faturas e NC, MG se for Guias e PY se for recibos
<tipoDoc>FT</tipoDoc> 'FT, FS, FR, NC, ND, GR, GT, etc'

 

Se algum colega também tiver a documentação completa, pois a que eu tenho tem somente a parte do Header. 😞 

Obrigado a todos! 😉

George

Grato pela atenção,

George De Luca

www.deluca.eti.br

Link to comment
Share on other sites

Em 03/12/2022 às 17:35, George De Luca disse:

Boas!

Algum colega tem os códigos necessários para os campos classeDoc e  tipoDoc possíveis para a comunicação das séries ?

Eu encontrei no grupo os códigos a seguir, mas está incompleto a parte do classeDoc, falta para os documentos de conferencia (orçamentos)

<classeDoc>SI</classeDoc> 'Classe é SI -> faturas e NC, MG se for Guias e PY se for recibos
<tipoDoc>FT</tipoDoc> 'FT, FS, FR, NC, ND, GR, GT, etc'

 

Se algum colega também tiver a documentação completa, pois a que eu tenho tem somente a parte do Header. 😞 

Obrigado a todos! 😉

George

Estão no manual:
https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Comunicacao_Series_ATCUD/Documents/Comunicacao_de_Series_Documentais_Manual_de_Integracao_de_SW_Aspetos_Especificos.pdf

Toda a documentação sobre ATCUD:
https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Comunicacao_Series_ATCUD/Paginas/default.aspx

Edited by jorang
Link to comment
Share on other sites

Estive a fazer uns testes, da comunicação das series, mas parece que o certificado de teste, já era "TESTEwebservice", , pois , hoje só estou a conseguir comunicar sem ser em testes ...

Alguém tem por ai um certificado novo...?

ERRO:  "Pedido abortado: Não foi possível criar um canal seguro SSL/TLS"

Edited by Carlos Pais
  •  😵😴🥵🥴  No Desenvolvimento as Possibilidades são Infinitas  😵😴🥵🥴 , podemos é ficar doidos ...
Link to comment
Share on other sites

Em 03/12/2022 às 20:51, Carlos Pais disse:

Estive a fazer uns testes, da comunicação das series, mas parece que o certificado de teste, já era "TESTEwebservice", , pois , hoje só estou a conseguir comunicar sem ser em testes ...

Alguém tem por ai um certificado novo...?

ERRO:  "Pedido abortado: Não foi possível criar um canal seguro SSL/TLS"

Boa noite

Tenho o mesmo problema, acho. Só estou a escrever, para a acompanhar a resposta.

Desculpe, Carlos 🙂

Link to comment
Share on other sites

Se alguém estiver interessado num utilitário ao nível de linha de comandos (tal como o envio do SAFT) para:

- Registar, Anular e Finalizar Séries Documentais, com implementação de acordo com os manuais técnicos da AT (parametrização das operações, códigos de erro e XML de resposta), p.f. enviar PM.

O BATCH file de exemplo pode ser consultado aqui: https://www.dropbox.com/s/fox5afxrkdp8ubg/SeriesServiceClient.rar

The simplest explanation is usually the correct one

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

Link to comment
Share on other sites

Em 05/12/2022 às 12:31, furiousangelpt disse:

Uma questão que me surgiu em pensamento desta obra de arte da AT, é necessário verificar se a serie esta ativa antes de fazer o documento da serie? 

Se sim, na minha opinião é, coitado do webserver. 🤣

 

Estás a fazer confusão !!

Se efetivamente tudo avançar no dia 1 de Janeiro ( como é 99,99% certo ), com toda a certeza teremos de bloquear a criação de Documentos com Séries que ainda não foram comunicadas.

 

Mas para analisarmos isto não temos de invocar o Websevice, o nosso Documento/Série internamente na Base de Dados está marcado com ou sem comunicação da Série ( e respetivo código da AT ).

Logo a AT aqui não é chamada para nada, se a Série/Documento já tem CVS permite criação de documentos internos, não tem o nosso software bloqueia e informa que tem de ser comunicado ( e aqui até poderemos perguntar se quer comunicar no momento, que foi o que fizemos para facilitar )

 

Não vale a pena complicar o que é bastante simples ... 

 

 

 

 

 

 

  

Link to comment
Share on other sites

On 12/5/2022 at 12:31 PM, furiousangelpt said:

Uma questão que me surgiu em pensamento desta obra de arte da AT, é necessário verificar se a serie esta ativa antes de fazer o documento da serie? 

Se sim, na minha opinião é, coitado do webserver. 🤣

A implementação pode fazer essa validação... 😄  Em testes cheguei a validar o estado da série antes da sua emissão consultando o serviço, mas em produção, seria dar um tiro no pé! Há que confiar que ninguém andou a manipular a base de dados, e que o estado da série não foi mexido SEM ser comunicado!

Mas há cenários manhosos, como por exemplo, o cliente fez uma reposição de uma cópia de segurança, que contém uma ou mais séries que foram comunicadas após a cópia de segurança! Ou cujo ESTADO foi alterado após a cópia de segurança!!!

Edited by marcolopes

The simplest explanation is usually the correct one

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

Link to comment
Share on other sites

On 12/5/2022 at 12:42 PM, Vitor Pereira said:

Estás a fazer confusão !!

Se efetivamente tudo avançar no dia 1 de Janeiro ( como é 99,99% certo ), com toda a certeza teremos de bloquear a criação de Documentos com Séries que ainda não foram comunicadas.

Mas para analisarmos isto não temos de invocar o Websevice, o nosso Documento/Série internamente na Base de Dados está marcado com ou sem comunicação da Série ( e respetivo código da AT ).

Logo a AT aqui não é chamada para nada, se a Série/Documento já tem CVS permite criação de documentos internos, não tem o nosso software bloqueia e informa que tem de ser comunicado ( e aqui até poderemos perguntar se quer comunicar no momento, que foi o que fizemos para facilitar )

Não vale a pena complicar o que é bastante simples ... 

Estes sistemas (principalmente este sistema de comunicação de séries!) não tem "nada" de simples!

Uma das razões pelas quais consulto o serviço quando um utilizador quer REMOVER uma série que criou em erro, é exactamente para evitar que remova uma série que eventualmente já tenha sido registada na AT! (ah, e tal, mas a série tem código de validação e o programa "sabe"... Sabe, mas se o cliente efectuou uma reposição de uma cópia de segurança feita ANTES da série ter sido registada, já "não sabe"!)

The simplest explanation is usually the correct one

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

Link to comment
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.