Jump to content

Utilizar Webservices da AT


Recommended Posts

Em 14/12/2020 às 18:39, Psousa disse:

Obrigado pela resposta Jmsimoes.

Mas o erro persiste mesmo repetindo as declarações de namespaces ... 

Request:


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Header>
    <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:at="http://at.pt/wsp/auth" S:actor="http://at.pt/actor/SPA" at:Version="2">
      <wss:UsernameToken>
        <wss:Username>555555555</wss:Username>
        <wss:Password>QfCePvaW2YJuW3d523IgcA==</wss:Password>
        <wss:Nonce>CCf62VxmmaIeQJT2mPh6zlo0fMwIiyGTANp1b9ZTCtM2wnGz4iVglsaB5j0XmKyCpWPIxrpAotX12Y1QF2mjleWoBvxDL6eojygPM6yRZLuUuhg+YSKC1ymmHheUwUm7pJpfEoCP6dlVvrtpjynzufxIwqmj6hBe/8MdL1Q8nrjSPT+EZPV7fUEpQYoBtK23XyrVvL2GwnlEPxIE1pPDYd0A1k5WfAQym6CRHqPMgL+/kD2meS3incs37z8y0rO2vD3zNPDqXGaWKwZasE2WV8GVVAAPLdHyppz0fIJNLucWRy+YvPb1bDpXRtDvBVV9aD/o0JdGhnrzkPG0KJDnSw==</wss:Nonce>
        <wss:Created>uNgtgq94rB2dDh06MmeammPfxqFXX871ZBTfeq2LgMM=</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
    <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:at="http://at.pt/wsp/auth" S:actor="http://at.pt/actor/TOC" at:Version="2">
      <wss:UsernameToken>
        <wss:Username>111111111</wss:Username>
        <wss:Password>/41oLgZPCG5hqrHoLJTOjA==</wss:Password>
        <wss:Nonce>JFADd5UXURfCWBzDXDX2OHbzbpTVhsBqFxMndQWb9RR8eDZ70KBYGeop8e+hs+FHzwnGbwsQ/hCeMjLpLF8gDq5B8e6Xl55PhW1t2u6NaTZZGTl2lqYEyrcy7kxe2/XQSeOj37LNgkzSSMIY7IeYwQtQQ9QgZV6ygoh0LEW0qLiVTZhDZxuYK15NpsOdJ5ZEjPxrJ/i0NY49vlF9b+t5Kcb81FOVI/uy+0tXpa8BEOumbrxI3pgilRSvkbl/TuRxURE7pg/IkO/bcZ9NsCLHUajRj+OPoCHWh5I9z/Y9WJ51exJ2iq/UGqb2IJlrOcDisse5zVLz2yAUESW9e7ecxA==</wss:Nonce>
        <wss:Created>QlZts0xkBrrWBYCDZ11Ah5+XK2ftYwYKSO76G/B57eg=</wss:Created>
      </wss:UsernameToken>
    </wss:Security>
  </S:Header>
  <S:Body>
    <ns2:validarDeclaracaoPeriodicaIVARequest xmlns:ns2="https://servicos.portaldasfinancas.gov.pt/dpivaws/DeclaracaoPeriodicaIVAWebService">
      <versaoDeclaracao>2016</versaoDeclaracao>
      <declaracao>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</declaracao>
    </ns2:validarDeclaracaoPeriodicaIVARequest>
  </S:Body>
</S:Envelope>

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Resposta:


<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP-ENV:Header/>

<SOAP-ENV:Body>

<ns3:validarDeclaracaoPeriodicaIVAResponse xmlns:ns3="https://servicos.portaldasfinancas.gov.pt/dpivaws/DeclaracaoPeriodicaIVAWebService">

<codigo>51</codigo>

<mensagem>Actor não é único no Header.</mensagem>

</ns3:validarDeclaracaoPeriodicaIVAResponse>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

Encontrei o problema. Tenho ativo no envio um traceListener que acrescentava uma tag no header. A validação da AT considera como mais um "actor"...

<s:Header>
<Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext">
<UsernameToken>
<Username>
<!-- Removed-->
</Username>
<Password>
<!-- Removed-->
</Password>
<Nonce>
<!-- Removed-->
</Nonce>
<Created>RPzt9pt8md3+EP2WpcBxvBFoalOT1YU4OJAQKmP0nCA=</Created>
</UsernameToken>
</Security>
<ActivityId CorrelationId="6a40bdf0-2468-4875-85ee-3b8e8cb2aea0" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">00000000-0000-0000-0000-000000000000</ActivityId>
</s:Header>


 

Edited by nunopicado
Syntax Highlight
  • Vote 2
Link to post
Share on other sites
  • Replies 8.9k
  • Created
  • Last Reply

Top Posters In This Topic

  • nunopicado

    942

  • marcolopes

    408

  • brunotoira

    405

  • americob

    160

Top Posters In This Topic

Popular Posts

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

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

Viva, Disponibilizo link para o novo certificado de testes, válido até 07/2013. https://dl.dropboxusercontent.com/u/11511484/FICHEIROS.zip Abraço

albertosilva

Á semelhança de tantos de vocês que usam C#, temos a comunicação dos documentos de transporte dentro de um try/catch, do género

try 
{
  	...
}
catch (WebException ex)
{
	if (ex.Status == WebExceptionStatus.ProtocolError)
	{
		WebResponse resp = ex.Response;
		StreamReader sr = new StreamReader(resp.GetResponseStream());
		return sr.ReadToEnd();
	}
	else
	{
		return ex.Message;
	}
}

A semana passada começámos a ter um erro, e percebemos que sendo um "ProtocolError" o objeto ex.Response está a null e como tal ao tentar abrir um StreamReader sobre o mesmo como no exemplo, rebentava com uma NullReferenceException. Em muitos anos foi a primeira vez que aconteceu, pelo menos de forma consistente que chamasse a nossa atenção.

As circunstâncias em que o erro ocorre é em comunicação a partir de um modelo específico de equipamento Android (aplicação Xamarin) quando é utilizada a ligação de dados móveis do próprio equipamento. Partindo de dois equipamentos idênticos A e B, em que nenhum consegue comunicar docuemntos de transporte utilizando a sua própria ligação de dados móveis, se o equipamento A se ligar através do equipamento B a servir de hotspot ou de uma rede wifi, a comunicação é feita sem problemas. Se o mesmo equipamento A partilhar a sua ligação de dados via hotspot com o equipamento B, este já passa a conseguir comunicar com o wifi do primeiro.

Das V/ experiências, em algum momento tiveram alguma situação em que o ProtocolError não devolvesse resposta, para tentar perceber o que pode estar a provocar esse erro quando o equipamento usa a própria ligação de dados?

Link to post
Share on other sites
Nuno Bagulho Marques

Bom dia a todos.

Na comunicação dos documentos à AT, como preenchem o campo 1.18.2 Product Description? Eu preenchi com o código do produto, que me parece o mais lógico.

Link to post
Share on other sites
americob
2 horas atrás, Nuno Bagulho Marques disse:

Bom dia a todos.

Na comunicação dos documentos à AT, como preenchem o campo 1.18.2 Product Description? Eu preenchi com o código do produto, que me parece o mais lógico.

Eu estou a usar a decrição da linha que está no documento, ou seja, ignoro a decrição que está na tabela de produtos, mesmo que a descrição do campo possa levantar duvidas de interpretação: "Descrição da linha da fatura, ligada à tabela de produtos e serviços."

A não ser assim, a impressão do Documento de Transporte pelo programa poderia ser diferente da impressão obtida no Portal eFatura, o que não faria qualquer qualquer sentido.

 

  • Vote 2
Link to post
Share on other sites
Nuno Bagulho Marques

bom dia @americob

vou adotar essa prática, uma vez que foi precisamente o que conta no EFatura que levantou esta questão.

Obrigado

Link to post
Share on other sites
Hugo Esteves

Boa tarde caros!

O Covid também está a causar chatices nas submissões IVA... 

Como o IVA foi prorrogado, em dezembro, todas as submissões que eram entregues no período de prorrogação devolviam o seguinte erro: "Indicou declaração dentro do prazo mas a declaração está fora do prazo ou vice-versa". Ou seja o WS erradamente achava que a declaração estava fora do prazo.

O mais incrível foi que ao serem submetidas pelo site normal eram aceites. Dá a sensação que a AT se esqueceu de actualizar as políticas  nos WS da mesma forma que fizeram com o Portal AT.

(Nem sei como é possível existirem "políticas internas" diferentes para o Portal e os WS.)

Esta situação aconteceu a mais alguém? 

Abraços!

  • Vote 1
Link to post
Share on other sites
Em 11/01/2021 às 15:41, Hugo Esteves disse:

Boa tarde caros!

O Covid também está a causar chatices nas submissões IVA... 

Como o IVA foi prorrogado, em dezembro, todas as submissões que eram entregues no período de prorrogação devolviam o seguinte erro: "Indicou declaração dentro do prazo mas a declaração está fora do prazo ou vice-versa". Ou seja o WS erradamente achava que a declaração estava fora do prazo.

O mais incrível foi que ao serem submetidas pelo site normal eram aceites. Dá a sensação que a AT se esqueceu de actualizar as políticas  nos WS da mesma forma que fizeram com o Portal AT.

(Nem sei como é possível existirem "políticas internas" diferentes para o Portal e os WS.)

Esta situação aconteceu a mais alguém? 

Abraços!

Sim, também temos clientes a queixarem-se. Não faz sentido nenhum!

Também ainda não conseguimos pedir Comprovativos nem Documentos de Pagamento. Como nos testes em https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action ainda não existem esses serviços, diria que ainda não estão disponíveis. Alguem os consegue usar?

 

Link to post
Share on other sites
Cláudio Moreira

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? 

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.