Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/23/2021 in Posts

  1. Novidades de prazos ATCUD (1 de Janeiro de 2023) e SAFT Contabilidade (exercício de 2023 a entregar em 2024), retirado da Proposta do OE 2022: Vamos a ver se é aprovado assim tal como está.
    8 points
  2. Algumas pessoas me têm perguntado sobre como invocar os serviços da AT nomeadamente a comunicação de GT. Sendo endpoints SOAP quem usar C#, com o VS, pode obter o serviço automáticamente através da WSDL. O problema depois é incluir a parte do OASIS Username Tokens headers na chamada ao serviço. Assim fica aqui um link para um artigo que me resolveu o problema. Attaching OASIS Username Tokens headers in WCF Requests Basicamente é necessário interceptar o request para incluir a parte do OASIS <S:Header> <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext"> <wss:UsernameToken> <wss:Username>599999993/37</wss:Username> <wss:Password>ikCyRV+SWfvZ5c6Q0bhrBQ==</wss:Password> <wss:Nonce> fkAHne7cqurxpImCfBC8EEc2vskyUyNofWi0ptIijYg4gYCxir++unzfPVPpusloEtmLkcZjf+E6 T9/76tsCqdupUkxOhWtkRH5IrNwmfEW1ZGFQgYTF21iyKBRzMdsJMhhHrofYYV/YhSPdT4dlgG0t k9Z736jFuw061mP2TNqHcR/mQR0yW/AEOC6RPumqO8OAfc9/b4KFBSfbpY9HRzbD8bKiTo20n0Pt amZevCSVHht4yt/Xwgd+KV70WFzyesGVMOgFRTWZyXyXBVaBrkJS8b6PojxADLcpWRnw5+YeOs3c PU2o1H/YgAam1QuEHioCT2YTdRt+9p6ARNElFg== </wss:Nonce> <wss:Created>>YEWoIoqIY5DOD11SeXz+0i4b/AJg1/RgNcOHOYpSxGk</wss:Created> </wss:UsernameToken> </wss:Security> </S:Header> Para isso, e como explica no artigo, é necessário criar três extensões (classes) InspectorBehavior, ClientInspector e SecurityHeader sendo este ultimo o responsável por acrescentar o XML em falta. Depois é só utilizar estas extensões no envio do request. Eu utilizo a função abaixo, public ATTransporteService.StockMovementResponse sendRequest(ATTransporteService.StockMovement docGuia) { ATTransporteService.StockMovementResponse ATresp = new ATTransporteService.StockMovementResponse(); BasicHttpBinding ATBinding = new BasicHttpBinding(); EndpointAddress ea; int index; ATBinding.Name = "documentosTransporteSOAP"; ATBinding.Security.Mode = SecurityMode.Transport; ATBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; if (testMode) ea = new EndpointAddress("https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte"); else ea = new EndpointAddress("https://servicos.portaldasfinancas.gov.pt:401/sgdtws/documentosTransporte"); index = lstActivity.Items.Add("A carregar certificado... "); Application.DoEvents(); try { ATTransporteService.documentosTransporteClient ATService = new ATTransporteService.documentosTransporteClient(ATBinding, ea); try { if (testMode) ATService.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "TesteWebServices"); else ATService.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "MyCertificate"); } catch (Exception ex) { try { lstActivity.Items.Item(index) = "A Carregar Certificado de " + My.Application.Info.DirectoryPath.ToString() + " ... "; Application.DoEvents(); // Tenta registar o certificado a partir do ficheiro if (testMode) { InstallCertificate(My.Application.Info.DirectoryPath.ToString() + @"\TesteWebServices.pfx", Encoding.UTF8.GetString(Convert.FromBase64String(passCertTeste))); ATService.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "TesteWebServices"); } else { InstallCertificate(My.Application.Info.DirectoryPath.ToString() + @"\MyCertificate.pfx", Encoding.UTF8.GetString(Convert.FromBase64String(passCertEnigma))); ATService.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "MyCertificate"); } lstActivity.Items.Item(index) = lstActivity.Items.Item(index) + " ok."; } catch (Exception ex2) { throw new Exception("Erro no carregamento do certificado." + ex.Message + ex2.Message); } } lstActivity.Items.Item(index) = lstActivity.Items.Item(index) + " ok."; Application.DoEvents(); ATService.Endpoint.Behaviors.Add(new ATInspectorBehavior(new ATClientInspector(new ATSecurityHeader(myCompany.ATUser, myCompany.ATPass)))); // Envia documento para o web service da AT index = lstActivity.Items.Add("A enviar documento... "); Application.DoEvents(); ATresp = ATService.envioDocumentoTransporte(docGuia); lstActivity.Items.Item(index) = lstActivity.Items.Item(index) + " ok."; Application.DoEvents(); } catch (Exception ex) { throw ex; } return ATresp; } Espero que ajude quem, como eu, esbarrou neste problema.
    4 points
  3. O Certificado de Testes necessário à realização de testes de comunicação com os web services da AT encontra-se disponível na página de Apoio ao Contribuinte do Portal das Finanças, secção Faturação - Regras e mecanismos de comunicação, Certificado para teste de comunicações com Web Services da AT https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Pages/default.aspx
    2 points
  4. Talvez este documento possa ajudar. https://www.dropbox.com/s/8kun390ed5n2ubd/Fatura CIUS-PT_UBL2.1_V1.0.0.zip?dl=0
    2 points
  5. O Despacho 8632/2014 diz que o código interno do documento tem de sair na impressão do documento.
    2 points
  6. @americob não tenhas! Esqueci-me de fazer o UPDATE do feedback dado à ASSOFT pela AT, depois da exposição detalhada que foi feita... e a resposta é basicamente esta: O último ponto mostra bem o PARADOXO da AT relativamente a algumas questões... É certo que a introdução "manual" pode ser VALIDADA através do serviço de CONSULTA. Isto é válido para o software que, não tendo a opção de comunicação de séries disponível (por questões de VERSÃO, PREÇOS, ETC), poderia eventualmente confirmar o código através de uma chamada ao serviço de consulta... mas isto não resolve em nada o cenário em que os utilizadores fazem uma introdução manual porque NÃO estão ligados à NET.
    2 points
  7. Eu não posso (não quero) avançar mais enquanto não ficar claro se vai ou não ser possível comunicar mais que um Código Interno de Documento para a mesma série. Não estou para pôr o meu sistema de pernas para o ar e depois ter de reverter tudo ou deitar tudo fora. Tal como disse, fiz as classes de comunicação com o endereço de teste e estão a funcionar aparentemente bem. Os campos necessários e os modelos de impressão já têm isso previsto desde que implementei o QrCode. Agora, a bola está do lado da AT. Se colocarem a funcionalidade de comunicação manual ou o endereço de produção a funcionar da forma como está previsto, considero que já não vão mudar nada e avanço com o desenvolvimento. Acho que a data limite para colocarem em funcionamento será 1 de Dezembro, já que a lei diz claramente sobre a comunicação das séries: "durante o mês de dezembro".
    2 points
  8. Relativamente a este assunto, no dia 21, em Portalegre, na inauguração das instalações locais da Ordem dos Contabilistas Certificados, ouvi da boca do atual SEAAF António Mendonça a dizer que estão a pensar tornar permanentes certas medidas tomadas durante a pandemia e que até agora tem vindo a ser prolongadas por Despacho. Uma delas é o caso dos PDF's continuarem a não precisar de ser assinados. Eu acho bem, pelo menos até um determinado valor, por exemplo, os 1000 euros da Fatura Simplificada. Não faz sentido nenhum assinar uma fatura de um café de 0,60 Eur! O video esteve disponível no Youtube, mas agora não o consigo encontrar.
    2 points
  9. Boa tarde, No seu caso a consulta não retornou nenhum dado (serie pesquisada não registada), mas a consulta foi efetuada com sucesso 🙂. Quando a consulta retorna dados, uma ou mais series, tem que verificar <infoSerie> Exemplo: <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Header> <Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext"> <UsernameToken> <Username>9999999/1</Username> <Password>YckNEpFOfE2w1xV22TeoUA==</Password> <Nonce>RLIoEsfAPfKqFXMmyLLOiMrrAlUd/X5/bfaZUX9WWDCuh2Umigbw7QilEkmRsl9S0jL441D2tnWUanMkwd9/p7XGlkt5zpbfjabqkpak3zcYNaoblqmQGuLrtjAZcdil4baXPCOSFKeTorBGlKXjq3enF3QWXx7oEAilzdsaMZW57LQkIMnvZM+vCeZYhHMIXyN+SKLWdG1IL/WgV5EyOivsc904FuHu2uYvSIvUXqunXDHeiIMLpQguctoxwYnVtbH87/NFMf2+4MPwIITeVAVy+mOgOLpDLs8o3N7HNbtlzzZOYa8toJafxDg5B2V/KW3cj2PWLhjYVGRSFmetNg==</Nonce> <Created>Zqh5DTKv0ISi8BhGnXFs4kOU7KODbXDsPzdtPH5fBUA=</Created></UsernameToken></Security></soap:Header> <soap:Body> <consultarSeries xmlns="http://at.gov.pt/"> <serie xmlns="" /> <classeDoc xmlns="">SI</classeDoc> <tipoDoc xmlns="">FT</tipoDoc></consultarSeries></soap:Body></soap:Envelope> <?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/">rO0ABXdWABV3ZWJsb2dpYy5hcHAuc2VyaWVzYm8AAADWAAAAI3dlYmxvZ2ljLndvcmthcmVhLlN0cmluZ1dvcmtDb250ZXh0ABAyMDIxMTAyMTA5Mjk0Ni4wAAA=</WorkContext></S:Header> <S:Body> <ns0:consultarSeriesResponse xmlns:ns0="http://at.gov.pt/"> <consultarSeriesResp> <infoSerie> <serie>FT2021</serie> <tipoSerie>N</tipoSerie> <classeDoc>SI</classeDoc> <tipoDoc>FT</tipoDoc> <numInicialSeq>1</numInicialSeq> <dataInicioPrevUtiliz>2022-01-01</dataInicioPrevUtiliz> <meioProcessamento>PI</meioProcessamento> <numCertSWFatur>xxx</numCertSWFatur> <codValidacaoSerie>xxxxxxxC</codValidacaoSerie> <dataRegisto>2021-10-08</dataRegisto> <estado>A</estado> <dataEstado>2021-10-08T16:02:29+01:00</dataEstado> <nifComunicou>xxxxx</nifComunicou></infoSerie> <infoResultOper> <codResultOper>2002</codResultOper> <msgResultOper>Pesquisa efetuada com sucesso.</msgResultOper></infoResultOper></consultarSeriesResp></ns0:consultarSeriesResponse></S:Body></S:Envelope> Espero ter ajudado.
    1 point
  10. Depende de vários fatores, nomeadamente da localização do estabelecimento que emite a fatura. Para ter a certeza será melhor consultar o Oficio_circulado_30240_2021.pdf paginas 12 e 13.
    1 point
  11. Havia situações de pessoas a registar documentos a consumidor final (sem nif) numa série específica que desaparecia misteriosamente ao fim do mês. Mesmo assim continua a ser possível esta situação, podem sempre alegar que registaram a série e ainda não a utilizaram. Ainda não evitam a outra situação de existirem várias séries activas (por exemplo, uma série por mesa num restaurante) em que facilita que possam desaparecer alguns documentos todos os dias já que a probabilidade de haver vários documentos a consumidor "desprotegidos" (isto é, sem que exista um documento posterior com NIF indicado) aumentava significativamente. Mas com o registo das séries esta situação já pode começar a dar na vista. Infelizmente há sempre maneira de fugir e acabam sempre a pagar os que cumprem pelos que não cumprem. Enquanto não for possível obrigar a comunicação dos documentos em tempo real para impedir os desaparecimentos misteriosos e reposições de seguranças isto não vai lá.
    1 point
  12. Desconhecia por completo isso da App E-Factura. 🤔 Quando disse que não tinha propósito era na óptica da impressão, pois toda a informação que vai no QRCode está no documento impresso e para mim só faz sentido se o ATCUD estiver averbado correctamente e não com "0".
    1 point
  13. Não concordo de forma alguma !!! O QRCODE faz todo o sentido e funciona: - A ideia do Qrcode desde logo é que os Consumidores Finais possam registar as suas Faturas sem terem de mencionar o seu NIF no momento da compra, bastando com a APP da AT ler o Qrcode e enviar de imediato para o E-Fatura com o seu NIF associado 1º - Tira o trabalho das lojas, restaurantes, etc, que andam a fazer de contabilistas colocando NIF's e Dados comerciais 2º - Como o Comerciante não sabe se o cliente que não pediu NIF vai enviar ou não a Fatura para a AT através da APP, logo não pode "martelar" a sua Faturação pois como passou no programa da Sandra Felgueiras, existem software-houses que enviam Faturas de Consumidor final para uma série diferente, e essa série depois pode ser "tratada", re-assinada, etc, pois apenas as Faturas com NIF passam a efetivas de imediato Aliás, o registo das Séries vai no seguimento deste problema, pois a AT quer mostrar que controla as Séries em uso, quando não consegue controlar os Documentos dentro Série pois deixa a porta aberta para estas grandes software-houses poderem fazer os seus truques de magia que se refletem numa grande procura pelos seus clientes pois o crime compensa 3º - Isso de um Consumidor Final enviar uma lista de faturas ser um problema não faz qualquer sentido !!! Neste momento eu registo manualmente Faturas que me esq
    1 point
  14. Concordo. Pelo que tenho lido o QR Code avança mesmo em 1 de janeiro de 2022 com o ATCUD a zero. O ATCUD é só um dedalhe do QR Code.
    1 point
  15. Segundo o CM estão previstas no OE 2022 alterações para a entrega do SAFT até dia 5 do mês seguinte ao das emissões das facturas e alterações para o envio do IES/DA. https://www.cmjornal.pt/economia/detalhe/prazo-para-comunicacao-de-faturas-passa-para-dia-5-do-mes-seguinte-ao-da-emissao?ref=HP_BlocoTematico5
    1 point
  16. Então e agora o ATCUD? Fica tudo adiado para 2023? E quem já tinha iniciado o desenvolvimento desta aberração? Isto dá trabalho. E perdem-se muitas horas. Ainda por cima, e para variar, o adiamento é assim "meio ambíguo". Custa muito escrever em Português "Fica adiado"?
    1 point
  17. A legislação só diz que tem de ser por EDI para não ser obrigatório assinar. O conceito de EDI é muito lato (Wikipédia): Sendo assim, parece-me que, mesmo que seja por email, webservice, etc., o envio por acordo entre as partes do CIUS-PT, garantindo a autenticidade da origem e a integridade do conteúdo, é uma utilização de EDI e por isso dispensa a assinatura nos termos da alínea c) do nº 2 do artigo 12º do DL 28/2019.
    1 point
  18. É uma exigência ridícula. Quem faz a impressão deveria ser totalmente irrelevante, desde que exista um acordo entre o emissor e o receptor. Eu entendo que a intenção é garantir que o documento em formato digital (não factura electrónica) não ande a circular, e porventura seja "adulterado", e depois impresso sem que o receptor saiba que o documento foi adulterado... mas tal poderia ser resolvido se o documento fosse assinado com o certificado do software emitente, e o recetor fosse informado desse facto.
    1 point
  19. A lei diz que só se pode deduzir o IVA se o adquirente tiver o original na sua posse. Têm saído Informações Vinculativas da AT que dizem claramente que, a não ser que seja uma fatura eletrónica (que deve ser aquivada digitalmente, etc.) o original é o papel que é impresso pelo emitente. Daí que muitos inspetores têm recusado a dedução do IVA em faturas recebidas por email em PDF se conseguirem provar que foi isso que aconteceu, nem que seja porque o adquirente confessou. Assim, excepto nas datas que os diversos Despachos do SEAAF veio equiparar os PDFs a faturas eletrónicas, todas as vezes que um inspetor da AT consiga provar que o "original" arquivado na contabilidade provem de um PDF impresso pelo adquirente, recusam a dedução daquele IVA. A maior parte dos contabilistas imprimem as faturas, sejam PDFs simples, sejam faturas eletrónicas assinadas, porque não têm software de Gestão Documental.
    1 point
  20. Nunca fiz pelo site, simplesmente chamei o consultar do webservice e vi por aí
    1 point
  21. Podes consultar isso e muito mais no site oficial da ESPAP. Está tudo lá: https://www.espap.gov.pt/spfin/normas/Paginas/normas.aspx https://www.espap.gov.pt/Documents/servicos/sp_fin/Ficheiros_Casos_de_Uso_Formato_CIUS-PT.zip A documentação do iLink também cobre alguns dos casos de uso mais comuns: https://ilink.acin.pt/wiki/public:integrations-api#criacao_de_documentos_por_cius-pt
    1 point
  22. Que condições ? eu forneco isso sem stress. No topico dos espap eu tenho lá o codigo ... falamos por pm
    1 point
  23. Muito obrigado Samuquinha, tinhas razão o certificado não era o correto Agora já me responde com o erro 500 <?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> Estou a enviar <?xml version="1.0" 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:Nonce>uj4MCxM3tBE90bvj2rWw1gx0DHcPhfYXkdPbeAt2tKssHI13hMz0KGWqUL26IqDPBPtK4INrxt4tMp8JaSSISeyXTB9xT+7WjQnYwEQkKX1qUcHWfv18RbQJDGbwH+5avUbewx1BwPvyQ7Vtj90ugOElR/PAADBTbwB2FGOzf0k19y8o5nfIb811PJwQI9K3GuTedeih0bxtX6crQE5FI/UAX9a0N/Z79poNAc8v/EkqkFXmVHtWZo3L/TFaegOhH/4/9bVE+LvApjRGhFytDmS0FEglrhkSfHe5Em/Qvyb79HToTRPILKpf8++8HTt8ftHdfu1bXJkU+v851KbOSQ==</wss:Nonce> <wss:Password>RdapoClTG+VSKTnV+E00kg==</wss:Password> <wss:Created>fFmlMua//SiryWMiIaD5qcxNDCTL3/wwcgn8th3BgAA=</wss:Created> </wss:UsernameToken> </wss:Security> </S:Header> <S:Body> <ns2:registarSerie xmlns:ns2="http://at.gov.pt/"> <serie>001</serie> <tipoSerie>N</tipoSerie> <classeDoc>SI</classeDoc> <tipoDoc>FT</tipoDoc> <numInicialSeq>1</numInicialSeq> <dataInicioPrevUtiliz>2022-01-01</dataInicioPrevUtiliz> <numCertSWFatur>0xxx</numCertSWFatur> <meioProcessamento>PI</meioProcessamento> </ns2:registarSerie> </S:Body> </S:Envelope>
    1 point
  24. Não tenho grande ajuda para te dar, mas se te serve de algum consolo, também não consigo comunicar com o servidor de testes dos documentos de transporte, de há uns tempos para cá. O que fiz foi criar uma série TESTE e comunico com o servidor de produção (apenas GT, para não obrigar a fatura posterior).
    1 point
  25. Novidades de prazos ATCUD (1 de Janeiro de 2023) e SAFT Contabilidade (exercício de 2023 a entregar em 2024), retirado da Proposta do OE 2022: https://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/?do=findComment&comment=624083
    1 point
  26. Não esquecer o PREFIXO "ATCUD:"
    1 point
  27. Viva, Com recurso ao DISTINCT dentro do COUNT deve resolver SELECT COUNT( DISTINCT ipaddress) AS total FROM access GROUP BY DATE(date) ORDER BY date DESC
    1 point
  28. Tem de ser impresso sim... Está tudo explicado algumas respostas atrás! https://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/page/483/?tab=comments#comment-623975
    1 point
  29. You just need to register the series one time before starting to use it. After registering you will get the series code that you have to use to create the ATCUD. ATCUD is the series code + '-' + document number. This is the value you must print on the documents and save on the database to send in SAFT-PT file. If you plan to keep using the same series you are using now you must register the series and pass the next number you are going to use. You need to do this for each document type (Invoices, Simplified Invoices, Credit Notes, etc).
    1 point
  30. Besides the two documents you also have a FAQ about ATCUD here: https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/questoes_frequentes/Pages/faqs-00883.aspx The Serie/DocumentType must be communicated to AT (Tax Authority) to obtain the respective "Validation Code" BEFORE starting to use the Serie/DocumentType . The document ATCUD will be something like this: "Validation Code" + "-" + "Document Number" For example a Serie "ABC"/FT with respective "Validation Code" = "XKOIK9IRJS" will produce the following documents: Document FT ABC/1 => ATCUD:XKOIK9IRJS-1 Document FT ABC/2 => ATCUD:XKOIK9IRJS-2 Document FT ABC/3 => ATCUD:XKOIK9IRJS-3 There are requirements to register the Serie/DocumentType and get the "Validation Code" (review the documentation and try yourself a few examples)
    1 point
  31. Depende bastante. Para a grande maioria dos licenciados não é preciso, mas há uma pequena parte que eventualmente irá necessitar. Concederei que é debatível qual a matéria a ser abordada numa unidade curricular de Física ("Física" há muita, e boa parte dela de facto não nos interessa). Mas não concordo de todo que Física é "ABSOLUTAMENTE NÃO" necessária para Informática. Física é o alicerce mais fundamental em jogos digitais, por exemplo. Mais, a Teoria da Informação é um ramo da Física e é um alicerce em várias áreas da Informática (e.g. Criptografia e Criptanálise, assim como Bioinformática onde é usada por exemplo no processamento de sequências de DNA). Posto isto, fui ver o programa de Física Aplicada do ISEP para perceber de onde advém esta opinião, e tenho de dizer que percebo. Considero o programa desadequado, se não mesmo abismal. Vejo aplicações da teoria das ondas e da luz em holografia, por exemplo, mas não vai muito além disso. Já na UBI, por exemplo, a unidade curricular de Física contempla 3 módulos: Conceitos fundamentais de Cinemática (aplicação: jogos digitais); Introdução à Teoria da Informação (aplicações: criptografia, segurança informática, bioinformática...); Introdução à Computação Quântica (aplicação: auto-explicativo). Em suma: o problema não é a área de Física ser leccionada, mas sim se o que é leccionado se adequa à área em que se insere (neste caso, Engenharia Informática). Cumprimentos.
    1 point
  32. Volto a dizer que a solução mais simples passa pela introdução de um PREFIXO na SÉRIE = CÓDIGO INTERNO do DOCUMENTO. Tão simples quanto isso. Não é necessário mudar muito mais código no que toca à questão da unicidade da SÉRIE (a série faz parte do "InvoiceNo" e é esta a sequência que é apresentada nos documentos, que faz parte da MENSAGEM a assinar, etc) É claro que fica "feio" um InvoiceNo no formato "CID CIDXXX/YYYY", mas resolve o problema de forma eficiente.
    1 point
  33. Desculpa, mas não posso concordar. Nós temos vários tipos internos para o mesmo tipo de SAFT que não podem ser misturados porque têm tratamentos diferentes: Fatura normal e Fatura RIC, ambos FT. Recibo e Saque (recebimento por letra) , ambos RG. Recibo RIC e Saque RIC, ambos RC. Guias de Transporte para Clientes, Fornecedores, com movimentação de stocks e sem movimentação de stocks, todos GT. Guia de Devolução de Clientes e para Fornecedores, ambos GD. O problema parece estar em a AT querer que só exista uma numeração sequencial para cada tipo de SAFT, quando toda a gente usa uma numeração sequencial para cada tipo interno. Mas, se a numeração sequencial fosse por cada tipo de SAFT, a ordenação por InvoiceNo no próprio portal eFatura, nos nossos mapas de vendas, etc. iam ficar todos baralhados e seria muito mais dificil conseguir detetar qualquer problema na sequencialidade da numeração. Aliás, o Despacho 8632/2014, relativamente à recolha de documentos manualmente em caso de "desastre", diz: que é de onde vem a ideia que a numeração deve ser sequencial por tipo interno e não por tipo de SAFT, senão o "XY" não estaria alí a fazer nada já que já lá tem o "FTD". Quanto à impressão nos documentos, sempre tive a ideia que é obrigatório imprimir o InvoiceNo, que é o que é assinado, que aparece no portal eFatura, e é isso que eu imprimo, do género "Fatura: 1 2022/10", até para se conseguir encontrar mais facilmente o documento no portal eFatura.
    1 point
  34. Guardar todos os elementos que fazem parte da série. Porquê "esquecer" esta informação? Pode fazer sentido, para mais tarde ter a certeza que o ATCUD naquele momento era XXX. Mas como o código de validação deve ser imutável, e como o ATCUD é o resultado de uma concatenação de strings, também acho aceitável "calcular" o ATCUD só na impressão. Sim. Ao aceder através de um browser, o sito browser deverá pedir o client certificate, que deverá estar instalado nesse computador.
    1 point
  35. Há o caso dos Recibos, que não têm de ser assinados, nem têm campo para assinatura no SAFT e têm de ter a série comunicada. Tirando a parte de testar os WebServices, ainda não fizemos mais nada, a não ser planear. Não tenho tanta certeza que não venha a ser adiado. Outubro é já sexta-feira e do lado da AT parece estar tudo parado. Não há endereço de produção, só o de testes/qualidade. Não existe opção de comunicação manual no Portal da AT. Não divulgam às software-houses o algoritmo para verificar se a introdução manual de um Código da Validação é possível ou foi inventado, etc. Espero que não façam isso tudo à pressa na noite de Natal para entrar a funcionar a 1 de Janeiro.
    1 point
  36. Há ainda o n.º 1 e 2 do artigo 7.º do DL 28/2019:
    1 point
  37. Serviço finalizarSerie <?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="Z61iMO4tKKFDryJwsfrp4cv8DbcIxhDPj6rbA37QoKk=">Nnu2Hl2qZgQNcsyBl6aaRg==</wss:Password> <wss:Nonce>L78V2A2ElStLLDphaOhoY7ekujiECtIsb26o7oMRswNwJ0Bxh4cYi4gyO6Qn9+6XFtjXr5u3cnlHcVbJuXM1eczcZKIKBOejmR2SHq0WFtEHww/5mflu860/rbxaNv0dV1hKi3zDWQc3ndGgycbwrXY0QjYavMPl4FPaY2fvnHVAtdWrC0V3fObCw8cIq6Ab6du5J6+7anSKSjeKSl1K8/s+fVbX2OFMHVlyel1RZXwuDo8n2Br7iPCbLBJ5QNasPA49vwg0JresD+cArfFp6A1TVfdlDdWx3W6f01eG5TYZz2v8GYromq1azancTCw/elqjzWnQ76iRe8R6LIcQZA==</wss:Nonce> <wss:Created>2021-09-27T20:54:09.827Z</wss:Created> </wss:UsernameToken> </wss:Security> </S:Header> <S:Body> <ns2:finalizarSerie xmlns:ns2="http://at.gov.pt/"> <serie>52415716950639770620</serie> <classeDoc>SI</classeDoc> <tipoDoc>FT</tipoDoc> <codValidacaoSerie>AAJFFGFH8S</codValidacaoSerie> <seqUltimoDocEmitido>1</seqUltimoDocEmitido> </ns2:finalizarSerie> </S:Body> </S:Envelope> Resultado <?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/">rO0ABXdWABV3ZWJsb2dpYy5hcHAuc2VyaWVzYm8AAADWAAAAI3dlYmxvZ2ljLndvcmthcmVhLlN0cmluZ1dvcmtDb250ZXh0ABAyMDIxMDkyMjE1MDk1NS4wAAA=</WorkContext> </S:Header> <S:Body> <ns0:finalizarSerieResponse xmlns:ns0="http://at.gov.pt/"> <finalizarSerieResp> <infoSerie> <serie>52415716950639770620</serie> <tipoSerie>N</tipoSerie> <classeDoc>SI</classeDoc> <tipoDoc>FT</tipoDoc> <numInicialSeq>1</numInicialSeq> <dataInicioPrevUtiliz>2021-09-27</dataInicioPrevUtiliz> <seqUltimoDocEmitido>1</seqUltimoDocEmitido> <meioProcessamento>PI</meioProcessamento> <numCertSWFatur>0</numCertSWFatur> <codValidacaoSerie>AAJFFGFH8S</codValidacaoSerie> <dataRegisto>2021-09-27</dataRegisto> <estado>F</estado> <dataEstado>2021-09-27T21:54:10+01:00</dataEstado> <nifComunicou>599999993</nifComunicou> </infoSerie> <infoResultOper> <codResultOper>2004</codResultOper> <msgResultOper>Série finalizada com sucesso.</msgResultOper> </infoResultOper> </finalizarSerieResp> </ns0:finalizarSerieResponse> </S:Body> </S:Envelope>
    1 point
  38. Não sei há alguma coisa mais actual, mas o Despacho 8632/2014 diz o seguinte:
    1 point
  39. I made a test project in c# to test the comunication with AT webservice. You should be able to convert to VB.Net the parts you need. https://easyupload.io/hsz5fu
    1 point
  40. Os documentos INTERNOS serão sempre necessários... seria um caos não existirem (por exemplo, utilizamos para lançamento de SALDOS INICIAIS... MOVIMENTAÇÃO de STOCKS, etc. Vamos agora comunicar um documento NÃO fiscalmente relevante??) Diz a AT nas FAQ: O texto da LEI é claro... fiscalmente relevantes... nada mudou.
    1 point
  41. Colegas, estamos "completamente" off-topic! 1) Assinatura de DOCUMENTOS através da CHAVE MÓVEL DIGITAL: https://www.portugal-a-programar.pt/forums/topic/79003-cmd-chave-móvel-digital-assinar-pdf 2) Assinatura de FACTURAS através do sistema SAFE: https://www.portugal-a-programar.pt/forums/topic/79044-serviço-de-assinatura-de-faturas-eletrónicas-safe 3) Factura Electrónica (da Administração Pública): https://www.portugal-a-programar.pt/forums/topic/76837-norma-europeia-de-fatura-eletrónica-einvoicing-diretiva-201455eu
    1 point
  42. Serviço de Assinatura de Faturas Eletrónicas (SAFE) https://www.autenticacao.gov.pt/serviço-de-assinatura-de-faturas-eletrónicas-safe-
    1 point
  43. Sim. https://is.gd/FG9cwP
    1 point
  44. Podes começar por questionar a empresa de alojamento se for uma empresa ou neste caso se for um trabalho da Universidade (vi pelo endereço) alojada num servidor da universidade questionas o departamento responsável. Em ambos os casos podem estar a bloquear essa porta, não é usual mas acontece.
    1 point
  45. Viva Se funciona em modo de desenvolvimento, e não em produção, é possível que o servidor onde está alojado esteja a bloquear a comunicação, tens que questionar a empresa do alojamento. Esta ideia vem da resposta do servidor ser um timeout na comunicação. Também pode ser necessário adicionar o IP da aplicação no servidor de email para autorizar a ligação. Não sei mais detalhes, porque o código diz Gmail e o SMTP aponta para o office365, são serviços diferentes. Se poderes esclarecer também era bom.
    1 point
  46. Olá boa tarde, Disponibilizei uma aplicação funcional no GitHub. Nota: esta aplicação deverá ser "vista" como ponto de partida.
    1 point
  47. Olá Luis, Como os users em cima disseram corretamente, para poderes reutilizar informação entre execuções deves usar ficheiros. Tens é uma grande decisão entre usares um ficheiro binário ou ficheiro de texto. Isto vai depender um pouco dos teus requisitos se por exemplo queres poder facilmente editar a informação manualmente (ficheiro de texto) ou não. Mas no geral: ficheiro de texto dá muito mais trabalho porque requer fazer deserialização (decidires a ordem e cabeçalhos para cada unidade de informação) e depois a serialização (lexing e parsing). Ficheiro binário não tens grande parte deste trabalho caso seja possível fazeres literalmente "dump" da memória da tua informação. Para ambos os casos a rotina habitual é: o programa inicia por verificar se esse ficheiro existe. Se não existir fazes um init básico, caso exista fazes o tal upload do ficheiro para memória. No final do programa (ou por decisão do user wathever) fazes a escrita da informação para esse tal ficheiro com nome conhecido. Deixo algumas observações ao teu código (tenho notificações por email deste sub, por isso consegui ver o teu OP): O nome das macros é norma e aconselhado usar full capslock, entre várias razões é uma forma simples de identificar que aquele símbolo é algo constante/macro. O teu array global de meses só é utilizado/acedido uma única vez, por isso é aconselhado moveres para a própria função. Tens uma grande quantidade de printfs que imprimem só uma string constante do tipo "\nString exemplo". É aconselhado moveres o '\n' para o final da string. Isto é completamente implemented defined e system dependent mas tem um pouco a ver com a forma como o output é buffered e flushed. Uma outra razão que acho mais importante que é algo filosófico, tem a ver com cada linha (geralmente um printf) é responsável pela sua própria linha. Imagina por exemplo que tens um printf ao teu estilo que escreve algo tipo "\nTarefa x foi executada." e depois mais à frente é chamada uma função que imprime informação de uma estrutura do género: void print_my_struct(my_struct_t * foo) { printf("ID: %s\n", foo->id); printf("Value: %d\n", foo->value); } Esta função não tem obrigação nenhuma de saber que deveria ter imprimido um '\n' para apresentar a informação numa nova linha. Por isso é recomendado manteres o "cursor" no início de uma nova linha por default para evitares esta incerteza. Para além disto, podes passar estes printfs para puts, mas não é muito importante, o compilador trata dessa otimização. Um outro conselho é no teu switch em vez de usares os valores [1, 2, 3, 4, etc] para as tuas opções de menu, podes usar um enum para ser mais fácil ler os teus vários cases e evitares confundir-te. Por exemplo: enum menu_opcao { OPCAO_ALTERAR_CATEGORIA = 1, OPCAO_INSERIR_DESPESA, // complete me }
    1 point
  48. Viva, Presumo que estejas a guardar com um "fwrite" ou algo do género, Para ler, é só alocar uma lista e ler com "fread" ateu o ficheiro acabar, Podes também guardar no início do ficheiro o tamanho do array (ou dos dados em geral), Novamente, presumo que seja um (ou mais) array de alguma estrutura, Boa sorte
    1 point
  49. É melhor dares uma vista de olhos em menagens anteriores pois já foi aqui mencionado, de qualquer da formas aqui vai: Não é possível usar a mesma Série em Documentos do mesmo Tipo ( FT, FR, ND, NC, etc ) Como tal, mesmo que o Código interno seja diferente, a Série tem de ser diferente se a mesma já existir noutro Documento do mesmo tipo. Exemplo do que agora não vai ser possível: 001 FT 2021/9999 002 FT 2021/9999 Assim sendo, o mesmo Código de Autorização da AT não pode em caso algum ser usado em documentos diferentes.
    1 point
  50. continuo a não perceber aonde leram isso de não se poder ter varias FT/FR etc mas com séries diferentes !
    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.