Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/10/2021 in all areas

  1. Atenção a 4 pormenores! 1) O maxLength da SÉRIE continua limitado a 20 caracteres (ao contrário do que diz a documentação) 2) O numCertSWFatur NÃO É VALIDADO pelo serviço, pelo que é aceite qualquer número (aqui a AT deveria validar a associação do NIF do produtor aos numCertSWFatur que o mesmo detém...) 3) O CÓDIGO de VALIDAÇÃO da SÉRIE não está a ser devolvido como descrito nas FAQ, que diz "Relativamente ao formato, o código é alfanumérico, com consoantes maiúsculas e algarismos (excluindo o zero “0” e um “1”). É desejável que os meios de processamento implementem validações que previnam erros de digitação na inserção manual do código na configuração das séries, nas situações em que o código seja obtido manualmente no Portal das Finanças." As consoantes não incluem as VOGAIS (A, E, I, O, U) mas afinal para a AT incluem (tinha escrito o algoritmo de validação de acordo com as FAQ) 4) O CÓDIGO de VALIDAÇÃO da SÉRIE já está a ocupar 10 caracteres (a documentação diz que nunca será inferior a 8, mas não seria espectável começar já em 10)
    2 points
  2. A AT, na página de testes de webservices, já adicionou testes para o serviço de comunicação de série.
    2 points
  3. Uma duvida parva: Segundo o manual, o código de retorno 4047 para a finalização de séries refere "O valor indicado no ultimo documento emitido deve ser superior ao indicado no inicio da sequencia". Assim sendo, como finalizamos uma série que contenha apenas um documento emitido? (Ultimo documento = numero inicial da serie)? Alguém experimentou finalizar uma série com apenas um documento?
    1 point
  4. - A ANULAÇÃO de séries tem um LIMITE temporal (ainda analisei qual é) - SIM, é possível voltar a registar uma série anulada (é emitido novo código de validação) Sobre as possibilidades, criei testes com "todos" os cenários: /** Situações ACEITES */ //Registar //Registar -> Anular //Registar -> Finalizar //Registar -> Anular -> Registar /** Situações NÃO ACEITES */ //Registar -> Registar //Registar -> Anular -> Finalizar //Registar -> Finalizar -> Anular TEST CASE: https://github.com/marcolopes/dma/blob/master/org.dma.services.at/src/org/dma/services/at/test/SeriesServiceTest.java
    1 point
  5. Este código de erro 2012 nem se quer está identificado no manual de integração da AT... Já fui ver se existia mais alguma versão do manual e ainda só existe a versão 1.0. Mais uma vez, temos de ficar a espera deles.
    1 point
  6. Agora com o Webservice a funcionar já te posso responder pois já testei: Uma Série não pode ser repetida dentro do mesmo NIF mesmo que seja pedida por outro Software ( Nº de Certificado diferente ). Testei pedir alterando o Certificado e a Reposta é : 4001 - Não foi possível registar a Série. A Série 18203901 indicada para o tipo de documento Fatura já foi registada
    1 point
  7. Pessoal, só para informar que finalmente o Webservice das Séries já funciona <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header> <WorkContext xmlns="http://oracle.com/weblogic/soap/workarea/">rO0ABXdWABV3ZWJsb2dpYy5hcHAuc2VyaWVzYm8AAADWAAAAI3dlYmxvZ2ljLndvcmthcmVhLlN0cmluZ1dvcmtDb250ZXh0ABAyMDIxMDkxNDE3MzkyNS4wAAA=</WorkContext> </S:Header> <S:Body><ns0:registarSerieResponse xmlns:ns0="http://at.gov.pt/"> <registarSerieResp> <infoSerie> <serie>18203901</serie> <tipoSerie>N</tipoSerie> <classeDoc>SI</classeDoc> <tipoDoc>FT</tipoDoc> <numInicialSeq>1</numInicialSeq> <dataInicioPrevUtiliz>2021-09-14</dataInicioPrevUtiliz> <meioProcessamento>PI</meioProcessamento> <numCertSWFatur>540</numCertSWFatur> <codValidacaoSerie>AAJFFYFJ8J</codValidacaoSerie> <dataRegisto>2021-09-14</dataRegisto> <estado>A</estado> <dataEstado>2021-09-14T18:20:43+01:00</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 : AAJFFYFJ8J</msgResultOper> </infoResultOper> </registarSerieResp> </ns0:registarSerieResponse> </S:Body> </S:Envelope>
    1 point
  8. Nós não permitimos um desconto sobre o total do recibo. Apenas permitimos descontos individuais sobre cada uma das facturas. Não sei se o SettlementAmount Total tem que ser a soma dos SettlementAmount das linhas. Se não for obrigatório ser a soma podem colocar apenas no total e deduzir ao valor recebido nos totais. Atenção que o desconto efetuado é sobre o valor total com IVA mas não é feita nenhuma regularização de IVA. Antes dos recibos serem obrigatórios no SAF-T o nosso software permitia fazer a regularização do IVA no recibo mas acabamos com isso.
    1 point
  9. Peço desculpa, mas nada disso vai ser preciso A impressão, o Hash, o SAFT, etc, continuam a ser criados tendo por base o mesmo, o que pode mudar é por exemplo a impressão que não precisa de conter o CDI, mas até isto tem a ver com o gosto pessoal de cada um Ainda por cima, se quisermos, nem temos de controlar a Série na abertura de documentos pois ao ser registada uma série duplicada o Webservice ( ou registo manual no site da AT ) vão responder em conformidade não devolvendo o Codigo Identificador da Série
    1 point
  10. Mas não é só esse. Por exemplo, a "simples consulta" de séries tem o retorno: apesar de aparecer a tal mensagem com Sucesso.
    1 point
  11. Já debatido aqui ao longo de muitas páginas... https://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/page/472/?tab=comments#comment-623567 Há muita gente preocupada com esta questão, e a ASSOFT já fez exposição detalhada junto do Governo e da AT. Não significa que a AT vá alterar o serviço em conformidade, portanto, o melhor é contarmos com a implementação tal como ela está NOTA: o CÓDIGO da VALIDAÇÃO da SÉRIE é que faz parte do ATCUD (os dados que a AT usa para criar o código de validação é que deviam incluir o CÓDIGO INTERNO do documento)
    1 point
  12. Challenge devPT #1 A comunidade devPT quer continuar a apoiar e incentivar o Open-Source em Portugal. Como tal, a cada 2 meses referiremos um repositório GitHub onde vos pediremos que colaborem, sozinhos ou em conjunto. Porquê? Pelas razões que listamos de seguida: Temos para o vencedor uma licença JetBrains, válida para todas as aplicações JetBrains à exceção de "All Products Pack", "Datalore" e "JetBrains Academy", com a validade de um ano, podendo ser utilizada para fins pessoais e comerciais! 🎁 * É uma excelente oportunidade para te envolveres na comunidade Open-Source. Giving just for the sake of giving. "Que projecto vou eu fazer agora??" Enquanto não decides a que projecto pessoal te vais dedicar a seguir, participa e contribui para a comunidade! Aprendizagem! É incrível a quantidade de coisas que se pode aprender a colaborar em projetos de linguagens e áreas totalmente opostas à nossa. A capacidade de ver cada projeto com uma visão crítica dá-nos a possibilidade de ajudar o seu criador a contemplar necessidades que nunca pensou que existiam. *infelizmente mesmo que participem em equipas, apenas temos um prémio 😫 Como participar? O desafio começou dia 11 (sábado) às 21h30 e tem a duração de 2 semanas (compreendemos que nem todos têm a mesma disponibilidade e queremos dar algum tempo). Obviamente se quiserem podem colaborar depois desta data, mas não ficarão elegíveis a prémio. No final das 2 semanas será feito um sorteio aleatório entre os participantes. O repositório deste mês é o https://github.com/pdrbrnd/whatsinthebox. Para participares deves enviar um Pull Request para o repositório deste mês, terminando a descrição do Pull Request com a seguinte referência: (Devem substituir pelo vosso username utilizado no Discord da comunidade. Se ainda não estás no Discord entra aqui: https://discord.gg/2jaRskjtFj) A contribuição deverá ser uma resolução a um issue já existente e/ou a identificação de um novo e respetiva resolução num Pull Request. ✅ No final das 2 semanas será feito um sorteio aleatório entre os participantes, em que o sorteado será o vencedor da licença. Boa sorte!
    1 point
  13. Obtive a seguinte resposta da A.T., relativamente ao problema da criação da série e subsequente mensagem a dizer que já está criada: "Boa tarde, Desde já agradecemos a disponibilidade e feedback, a situação já se encontra assinalada, esperamos efetuar durante a próxima semana atualizações que permitam regularizar a situação."
    1 point
  14. Sobre o erro 4043, recebi ontem a seguinte resposta da AT: Boa tarde, Pode confirmar se o erro ainda persiste, pois foi efetuada uma atualização que corrigiu este erro. Agora sou um dos que passou a receber os erros 33 + 4001. Já reabri o ticket com estes erros
    1 point
  15. O delphi permite criar as estrutras tanto pelo WSDL como pelo XSD/XML. São objectos na mesma, não é preciso lidar com o XML em si. Mas a forma como se usa (aka os objectos criados) são diferentes do WSDL para o XSD/XML. Criar pelo WSDL, tanto quanto sei, obriga-te a certos procedimentos, que com o XSD não. O XSD resulta em classes puras e duras, e a partir daí trabalhas como bem te aprouver.
    1 point
  16. Já estou com alguns progressos, Faltava esta linha no references.cs criado automáticamente pelo VS usando o WSDL [System.Web.Services.Protocols.SoapHeader("SecurityToken")] Agora já recebo códigos de retorno, Obrigado a todos pelas dicas.
    1 point
  17. Bom dia, já consegui resolver o problema, mas tive de abrir um ticket... Apesar de ter colocado os caminhos na opção "Framework search path" estava a escapar-me um pormenor Deixo-vos a resposta, caso venham a precisar. "If you look at the directory structure of what is downloaded from Getit, there are .xcframework directories. If you drill into those directories, you will find ios-armv7_arm64 directories. In there are ios-armv7_arm64, which contains libraries that we can link to. iOS projects have a Framework search path option, but they cannot search in an .xcframework - only .framework. This is what I suggest that you do: 1. Create a Firebase directory in your project directory structure 2. Copy C:\Users\stevea\Documents\Embarcadero\Studio\21.0\CatalogRepository\FirebaseSDKforiOS-6.28\Firebase\FirebaseAnalytics and C:\Users\stevea\Documents\Embarcadero\Studio\21.0\CatalogRepository\FirebaseSDKforiOS-6.28\Firebase\FirebaseMessaging to that FireBase directory. 3. Go to the FireBaseAnalytics directory. 4. For each .xcframeworkdirectory, go to ios-armv7_arm64 and copy the .framework directory that you will find there and copy it to the FireBaseAnalytics folder. 5. Repeat for the FirebaseMessaging folder." by Embarcadero Support
    1 point
×
×
  • 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.