Jump to content

Utilizar Webservices da AT


cjulio
Go to solution Solved by thoga31,

Recommended Posts

On 11/24/2022 at 6:16 PM, MrFive said:

Tenho a mesma dúvida relativamente à conta de testes, devemos usar o 59999993/0037 ou criar um utilizador no nosso NIF?

Criar uma conta com o "nosso" NIF.

Nem todos os serviços funcionam com o utilizador de testes

  • Thanks 1

The simplest explanation is usually the correct one

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

Link to comment
Share on other sites

O webservice de teste, registo de séries, continua a dar erro, alguém sabe o que se passa?

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

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Erro - Resposta do Servidor </faultstring>
<detail>
<transactionID>0000000:5c457ae96380841909b41c63</transactionID>
<timestamp>2022-11-25 09:00:09.000+00:00</timestamp></detail></env:Fault></env:Body></env:Envelope>

 

Link to comment
Share on other sites

On 11/25/2022 at 9:04 AM, Joseon said:

O webservice de teste, registo de séries, continua a dar erro, alguém sabe o que se passa?

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

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Erro - Resposta do Servidor </faultstring>
<detail>
<transactionID>0000000:5c457ae96380841909b41c63</transactionID>
<timestamp>2022-11-25 09:00:09.000+00:00</timestamp></detail></env:Fault></env:Body></env:Envelope>

 

DOWN. "Erro - Resposta do Servidor" é do lado deles (está assim há dias)

The simplest explanation is usually the correct one

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

Link to comment
Share on other sites

Salvo erro no final do ano de 2021 fiquei com a ideia de quem comunicasse series em utilização até 31/12/2021, poderia comunicá-las com a numeração existente. No entanto se fosse comunicada em 01/01/2022 deveriam ser criadas séries novas.

Neste caso tambem se aplica a mesma regra para 2022/2022, caso a minha intrepretação esteja correcta?

Link to comment
Share on other sites

On 11/25/2022 at 10:55 AM, Cr4zyKingLi0n said:

Salvo erro no final do ano de 2021 fiquei com a ideia de quem comunicasse series em utilização até 31/12/2021, poderia comunicá-las com a numeração existente. No entanto se fosse comunicada em 01/01/2022 deveriam ser criadas séries novas.

Neste caso tambem se aplica a mesma regra para 2022/2022, caso a minha intrepretação esteja correcta?

Não... as séries em andamento podem sempre ser comunicadas (mesmo em 2023). Não obriga ninguém a "fechar" as séries e criar novas (tanto mais que há empresas que usam sempre as mesmas séries)

  • Vote 1

The simplest explanation is usually the correct one

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

Link to comment
Share on other sites

Em 25/11/2022 às 11:23, marcolopes disse:

Não... as séries em andamento podem sempre ser comunicadas (mesmo em 2023). Não obriga ninguém a "fechar" as séries e criar novas (tanto mais que há empresas que usam sempre as mesmas séries)

Acho que é mesmo uma questão prática. Quem quiser preparar já tudo para no dia 2 de janeiro começar a utilizar as séries comunicadas, pode "criar" novas séries com a numeração a começar no 1, mas quem quiser manter as mesmas séries, terá de tratar do processo de comunicação num momento de paragem de utilização do ERP, para que ao comunicar cada série de cada tipo de documento registe a numeração de acordo com o último documento emitido em cada uma delas.

Link to comment
Share on other sites

Bom dia people,
 

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
        <env:Fault>
            <faultcode>env:Server</faultcode>
            <faultstring>Erro - Resposta do Servidor </faultstring>
            <detail>
                <transactionID>0000000:5c457ae96380b99f0f5b6530</transactionID>
                <timestamp>2022-11-25 12:48:31.000+00:00</timestamp>
            </detail>
        </env:Fault>
    </env:Body>
</env:Envelope>

O WS de testes continua em baixo...
Estou a fazer umas alterações na classe que processa a comunicação das séries e queria testar a parte do processamento das respostas recebidas. Alguma ideia/forma de testar isto em ambiente de produção? Visto que o de testes está em baixo à dias...

Obrigado 😄

Link to comment
Share on other sites

On 11/25/2022 at 11:56 AM, albertosilva said:

Acho que é mesmo uma questão prática. Quem quiser preparar já tudo para no dia 2 de janeiro começar a utilizar as séries comunicadas, pode "criar" novas séries com a numeração a começar no 1, mas quem quiser manter as mesmas séries, terá de tratar do processo de comunicação num momento de paragem de utilização do ERP, para que ao comunicar cada série de cada tipo de documento registe a numeração de acordo com o último documento emitido em cada uma delas.

Eu usei um método que permite continuar sem interromper nada. A partir do momento que actualiza a aplicação, qualquer emissão de documentos com séries em "andamento" obriga à comunicação prévia da série. As regras estão implementadas a nível de API e como tal, servem para a possibilidade de alguém tentar emitir um documento com uma série sem CÓDIGO de VALIDAÇÃO.

Já gora... acho que estas questões mais "práticas" relacionadas com o código de validação e ATCUD deviam ser tratadas neste tópico: https://www.portugal-a-programar.pt/forums/topic/77328-atcud/

No presente tópico deveriam ser discutidos apenas os aspectos técnicos do serviço... digo eu 😄

Edited by marcolopes
  • Vote 1

The simplest explanation is usually the correct one

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

Link to comment
Share on other sites

É possível verificar se este XML esta em ordem os dados enviados. Estou a ter o mesmo erro "Erro 500" tanto no de produção como o de testes, e acho que tem a ver com o XML, mas não estou a ver algo errado. HELP PLZ! Obrigado.

<? xml version='1.0' encoding='utf-8' ?>
<S:Envelope xmlns:S='http://schemas.xmlsoap.org/soap/envelope/' xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
  <S:Header>
    <wss:Security xmlns:wss='http://schemas.xmlsoap.org/ws/2002/12/secext'>
      <wss:UsernameToken>
        <wss:Username>59999993/0037</wss:Username>
        <wss:Password>dGVzdGVzMTIzNA==</wss:Password>
        <wss:Nonce>BTjnE30j0wR6Uuft+F7uuss7+GEla..tirei..fRTvA9o45vg==</wss:Nonce>
        <wss:Created>MjAyMi0xMS0yNVQxNDoyMjoxMC41NDN=</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
  </S:Header>
  <S:Body>
    <S:registarSerie xmlns='http://at.gov.pt/'>
      <serie>SS230</serie>
      <tipoSerie>N</tipoSerie>
      <classDoc>SI</classDoc>
      <tipoDoc>FT</tipoDoc>
      <numInicialSeq>100000</numInicialSeq>
      <dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
      <numCertSWFatur>0</numCertSWFatur>
      <meioProcessamento>PI</meioProcessamento>
    </S:registarSerie>
  </S:Body>
</S:Envelope>
Edited by furiousangelpt
Link to comment
Share on other sites

On 11/25/2022 at 2:35 PM, furiousangelpt said:

É possível verificar se este XML esta em ordem os dados enviados. Estou a ter o mesmo erro "Erro 500" tanto no de produção como o de testes, e acho que tem a ver com o XML, mas não estou a ver algo errado. HELP PLZ! Obrigado.

<? xml version='1.0' encoding='utf-8' ?>
<S:Envelope xmlns:S='http://schemas.xmlsoap.org/soap/envelope/' xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
  <S:Header>
    <wss:Security xmlns:wss='http://schemas.xmlsoap.org/ws/2002/12/secext'>
      <wss:UsernameToken>
        <wss:Username>59999993/0037</wss:Username>
        <wss:Password>dGVzdGVzMTIzNA==</wss:Password>
        <wss:Nonce>BTjnE30j0wR6Uuft+F7uuss7+GEla..tirei..fRTvA9o45vg==</wss:Nonce>
        <wss:Created>MjAyMi0xMS0yNVQxNDoyMjoxMC41NDN=</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
  </S:Header>
  <S:Body>
    <S:registarSerie xmlns='http://at.gov.pt/'>
      <serie>SS230</serie>
      <tipoSerie>N</tipoSerie>
      <classDoc>SI</classDoc>
      <tipoDoc>FT</tipoDoc>
      <numInicialSeq>100000</numInicialSeq>
      <dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
      <numCertSWFatur>0</numCertSWFatur>
      <meioProcessamento>PI</meioProcessamento>
    </S:registarSerie>
  </S:Body>
</S:Envelope>


Parece-me estar correto, deixo aqui o meu que está a comunicar corretamente também:

 

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header>
        <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <wss:UsernameToken>
                <wss:Username>59999993/0037</wss:Username>
                <wss:Password>ZDAsd4 ... toV4OnA==</wss:Password>
                <wss:Nonce>fUIq2/Fc1v2I3qGFMhYT+hIQpXfie3W ... WyXvqA/UXw==</wss:Nonce>
                <wss:Created>NsbYq5RJaktS2YXzbNJOT2USaEk54RLDnnGP0ksLJnw=</wss:Created>
            </wss:UsernameToken>
        </wss:Security>
    </env:Header>
    <env:Body>
        <ns1:registarSerie xmlns:ns1="http://at.gov.pt/">
            <serie>Teste1</serie>
            <tipoSerie>N</tipoSerie>
            <classeDoc>SI</classeDoc>
            <tipoDoc>FT</tipoDoc>
            <numInicialSeq>1</numInicialSeq>
            <dataInicioPrevUtiliz>2022-11-25</dataInicioPrevUtiliz>
            <numCertSWFatur>1</numCertSWFatur>
            <meioProcessamento>PI</meioProcessamento>
        </ns1:registarSerie>
    </env:Body>
</env:Envelope>

 

Link to comment
Share on other sites

Em 25/11/2022 às 14:35, furiousangelpt disse:

É possível verificar se este XML esta em ordem os dados enviados. Estou a ter o mesmo erro "Erro 500" tanto no de produção como o de testes, e acho que tem a ver com o XML, mas não estou a ver algo errado. HELP PLZ! Obrigado.

<? xml version='1.0' encoding='utf-8' ?>
<S:Envelope xmlns:S='http://schemas.xmlsoap.org/soap/envelope/' xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
  <S:Header>
    <wss:Security xmlns:wss='http://schemas.xmlsoap.org/ws/2002/12/secext'>
      <wss:UsernameToken>
        <wss:Username>59999993/0037</wss:Username>
        <wss:Password>dGVzdGVzMTIzNA==</wss:Password>
        <wss:Nonce>BTjnE30j0wR6Uuft+F7uuss7+GEla..tirei..fRTvA9o45vg==</wss:Nonce>
        <wss:Created>MjAyMi0xMS0yNVQxNDoyMjoxMC41NDN=</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
  </S:Header>
  <S:Body>
    <S:registarSerie xmlns='http://at.gov.pt/'>
      <serie>SS230</serie>
      <tipoSerie>N</tipoSerie>
      <classDoc>SI</classDoc>
      <tipoDoc>FT</tipoDoc>
      <numInicialSeq>100000</numInicialSeq>
      <dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
      <numCertSWFatur>0</numCertSWFatur>
      <meioProcessamento>PI</meioProcessamento>
    </S:registarSerie>
  </S:Body>
</S:Envelope>

classDoc => classeDoc

  • Vote 1
Link to comment
Share on other sites

Em 25/11/2022 às 14:35, furiousangelpt disse:

É possível verificar se este XML esta em ordem os dados enviados. Estou a ter o mesmo erro "Erro 500" tanto no de produção como o de testes, e acho que tem a ver com o XML, mas não estou a ver algo errado. HELP PLZ! Obrigado.

<? xml version='1.0' encoding='utf-8' ?>
<S:Envelope xmlns:S='http://schemas.xmlsoap.org/soap/envelope/' xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
  <S:Header>
    <wss:Security xmlns:wss='http://schemas.xmlsoap.org/ws/2002/12/secext'>
      <wss:UsernameToken>
        <wss:Username>59999993/0037</wss:Username>
        <wss:Password>dGVzdGVzMTIzNA==</wss:Password>
        <wss:Nonce>BTjnE30j0wR6Uuft+F7uuss7+GEla..tirei..fRTvA9o45vg==</wss:Nonce>
        <wss:Created>MjAyMi0xMS0yNVQxNDoyMjoxMC41NDN=</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
  </S:Header>
  <S:Body>
    <S:registarSerie xmlns='http://at.gov.pt/'>
      <serie>SS230</serie>
      <tipoSerie>N</tipoSerie>
      <classDoc>SI</classDoc>
      <tipoDoc>FT</tipoDoc>
      <numInicialSeq>100000</numInicialSeq>
      <dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
      <numCertSWFatur>0</numCertSWFatur>
      <meioProcessamento>PI</meioProcessamento>
    </S:registarSerie>
  </S:Body>
</S:Envelope>

Tenta mudar 

<S:registarSerie xmlns='http://at.gov.pt/'>  para  <ns0:registarSerie xmlns:ns0='http://at.gov.pt/'

e

</S:registarSerie> para </ns0:registarSerie>

Link to comment
Share on other sites

Series -  Consultar

No ambiente de produção só consigo consultar as series se não tiver nenhuma restrição.

Se tiver alguma restrição devolve ok, mas sempre a dizer que não existem series nos critérios indicados.

Se executar essa mesma operação só pondo por exemplo o SI diz que não tem nada. Se indicar uma classe de documentos nada, classe mais Tipo nada… o que acho estranho. Alguém tem um critério a funcionar?

Jorge Rocha

Link to comment
Share on other sites

Em 28/11/2022 às 09:55, JorgeRocha disse:

O meu em produção está ok.

Confirmo, verdade. No entanto detetei aqui uma situação muito estranhada, igual em testes e produção. Daí a minha confusão.
Quando uso o meu nif pessoal (que uso para testes) consigo usar o método de listagem de séries comunicadas. Quando uso o nif e senha do cliente, tenho erro 500.
No entanto com o nif do cliente consigo comunicar séries sem problema nenhum,

Link to comment
Share on other sites

WebService-Series 

Obrigado pela ajuda, dado anterior, Já fiz as alterações e continua o mesmo resultado, 😞  Tanto em testes como em produção. O XML esta bem, ou pelo menos acho que esta. Em relação a comunicação, consigo fazer a ligação com o certificado e consigo enviar os dados, mas quando recebe a resposta recebo o erro 500, em ambos os serviços com a conta de teste como com os dados de um cliente. Utilizo o mesmo método de comunicação que utilizo para comunicar Guias. Pedir ajuda ao e-balcão.... é tipo esperar ganhar o 1o premio da lotaria, não sei mais o que fazer.

Novamente coloco o meu XML Registo:


<? xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header>
	<wss:Security xmlns:wss='http://schemas.xmlsoap.org/ws/2002/12/secext'>
		<wss:UsernameToken>
			<wss:Username>59999993/0037</wss:Username>
			<wss:Password>dGVzdGVzMTIzNA==</wss:Password>
			<wss:Nonce>e80AJtSUfWEpwhUuYroegy..tirado..a57O8WBPsv4Q2kmUUkRy11g==</wss:Nonce>
			<wss:Created>MjAyMi0xMS0yOFQxMjoxNjowOC43MFo=</wss:Created>
		</wss:UsernameToken>
	</wss:Security>
</env:Header>
<env:Body>
	<ns0:registarSerie xmlns:ns0='http://at.gov.pt/'>
		<serie>SS230</serie>
		<tipoSerie>N</tipoSerie>
		<classeDoc>SI</classeDoc>
		<tipoDoc>FT</tipoDoc>
		<numInicialSeq>100000</numInicialSeq>
		<dataInicioPrevUtiliz>2022-12-01</dataInicioPrevUtiliz>
		<numCertSWFatur>0</numCertSWFatur>
		<meioProcessamento>PI</meioProcessamento>
	</ns0:registarSerie>
</env:Body>
</env:Envelope>

 Consulta:

<"<? xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header>
	<wss:Security xmlns:wss='http://schemas.xmlsoap.org/ws/2002/12/secext'>
		<wss:UsernameToken>
			<wss:Username>59999993/0037</wss:Username>
			<wss:Password>dGVzdGVzMTIzNA==</wss:Password>
			<wss:Nonce>D3GFokAu4MsUpnMSB8gZ7+wT..tirei..SUihp93HnRuWaAlg==</wss:Nonce>
		<wss:Created>MjAyMi0xMS0yOFQxMjozNToyNC42N1o=</wss:Created>
	</wss:UsernameToken>
</wss:Security>
</env:Header>
<env:Body>
	<ns1:consultarrSerie xmlns='http://at.gov.pt/'>
	</ns1:consultarrSerie>
</env:Body>
</env:Envelope>

 

Vou também colocar a parte de comunicação:

// Comunicação Series
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(EnderecoWebService);
           
request.Headers.Add("SOAPAction", pServiceAction); 
X509Certificate2 cert = new X509Certificate2(CaminhoCertificado, SenhaCertificado);

request.ClientCertificates.Add(cert);
request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8";
request.Accept = "text/xml";

byte[] byteArray = Encoding.UTF8.GetBytes(pSoapFile);

request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);

HttpWebResponse resposta = (HttpWebResponse)request.GetResponse(); // Da erro 500 aqui!

Se estas duas estão bem o problema esta na própria encriptação. Se for o caso também posso colocar aqui tambem. 

Obrigado pela ajuda. 

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.