Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 10/23/2020 in all areas

  1. Boa noite pessoal... Esta mensagem é para todos em geral, e para ninguém em particular. Andamos todos stressados, e é compreensível. Não tem sido um ano fácil para ninguém, seja pela pandemia em si, pelo stress do confinamento, pela situação económica que o país atravessa, que todos nós, de uma forma ou de outra, atravessamos. Falo por mim, não tem sido fácil conjugar a vida familiar, que necessariamente tem de ter outras preocupações, especialmente havendo filhos em idade escolar, com uma vida profissional com os altos e baixos que nós conhecemos. A AT, como de costume, mete os pés pelas mãos. Tem boas ideias, do ponto de vista da administração (outras nem tanto), mas depois na hora de implementar, são falhas atrás de falhas. Avanços e recuos, sem pés nem cabeça, avanços a meio de uma pandemia, para depois recuar porque estamos a meio de uma pandemia... Incertezas e caprichos, como se do lado de cá estivessem autómatos que cumprem ordens sem pestanejar, sem ter de dar apoio familiar, sem ter vida social, sem no fundo poder viver. Enfim, é o que todos sabemos. Neste cenário, o Portugal@Programar, com todos os seus muitos defeitos, tem sido uma espécie de porto seguro para boa parte dos envolvidos. Programadores, vendedores, certificadores da AT, utilizadores, etc., todos temos passado por aqui. A informação presente nestes tópicos relacionados com a AT, se fosse compilada, dava provavelmente o manual técnico mais completo que existe para esta área. Todos nós bebemos daqui, praticamente todos terão contribuído também. Por tudo isto, as regras do fórum nem sempre são aplicadas rigidamente nestes tópicos. O volume de mensagens em dadas alturas é tal que quase era preciso um moderador só para isto, algo que é impossível acontecer pelos motivos óbvios. Também é verdade que geralmente não é preciso grande rigidez, os membros tendem a auto-moderar-se na maior parte dos casos. Alguns de nós já falámos tanto uns com os outros que parece que nos conhecemos há anos. Qualquer dia tenho de começar a deixar aqui os convites para a festa de natal. Este à-vontade gera por vezes uma maior despreocupação com as palavras usadas. Afinal, 'somos todos amigos'. Ainda assim, é natural que por vezes hajam informações contraditórias - pois se nem a AT se entende - e é também natural que hajam desentendimentos entre os membros. O que não pode nunca, e aqui quero ser bem claro, NUNCA haver, é falta de respeito entre os membros. Somos todos crescidinhos aqui. Tanto quanto sei, os miúdos da escola vêm ao P@P, mas noutros tópicos mais adequados à sua idade. Não deve haver nenhum nestes tópicos da AT, era capaz de apostar. Neste sentido, apelo ao bom senso de todos para controlarem as suas palavras quando se dirigem a outros membros. Tudo o que não precisamos é fechar os tópicos por falta de condições de bom convívio cá dentro, ou que membros valiosos* deixem de cá vir por não se sentirem bem a navegar na 'confusão causada por desentendimentos' que em nada contribuem para o objetivo dos tópicos. Se houver desentendimentos, que os vai haver, esgrimam os vossos argumentos em mensagem privada, deixando nos tópicos a informação que interesse a todos. * Todos os membros são valiosos, obviamente, mas a partilha de informação é o objetivo dos tópicos, pelo que partilhar informação bem corroborada é sempre preferível, e dá uma mais valia tanto ao tópico como ao membro em si. Desculpem o testamento, mas volta e meia faz-se necessário dar uma perspetiva rumo à convivência saudável. Espero que todos entendam, e que a interiorização destas palavras faça cada um ponderar as suas próprias quando estiverem quase a clicar no botão 'Enviar'. Obrigado a todos pelos contributos que têm dado à comunidade ao longo destes anos, e acima de tudo, obrigado pela compreensão, que certamente terão.
    22 points
  2. 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
  3. a comunicação das séries foi adiada para o próximo ano, qrcode mantem-se em janeiro. - ATCUD a 01/01/2022 - Comunicação das séries a 01/07/2021 https://info.portaldasfinancas.gov.pt/pt/informacao_fiscal/legislacao/Despachos_SEAF/Documents/Despacho_SEAAF_412_2020_XXII.pdf
    8 points
  4. Sabem o que vos digo, já comuniquei com eles pela(s) Empresa(s), super simpáticos, mas nem um Sim nem um Não, foi um NIN. Por enquanto é grátis e depois logo se vê. Já comuniquei a título pessoal, enquanto cidadão, com uma Empresa publica com conhecimento do MP. De resto, não acredito que tenha sido por minha causa, mas ironicamente pouco depois já tinham no site a dizer que o valor iria sair em despacho. Resta-nos, se estiverem de acordo (metam Like para se perceber), fazer um Email, mas curto e simples, enviarmos todos à eSPAP. Porque juntos somos mais fortes. Eles não sabem se estão a falar com uma SH de software Vertical ou horizontal, e isso faz toda a diferença. Do Género; Isto é só um exemplo, sujeito a todas as vossas alterações e ás nosssas questões, tem é de ser sucinto. Tenho para mim, que se eles receberem 5 Emails iguais, de empresas de desenvolvimento diferentes, irão olhar para as coisas de outra maneira, tal como a AT. Se receberem 10, tanto melhor, mais atenção irão dar. Muito mais do que a ASSOFT Sendo que 10 Emails, dado o numero de softwares, pessoas, aqui representados no P@P não é muito. E escusamos de andar "à pesca" a pensar o que vai ser ou deixar de ser. Digam se pretendem, e como pretendem. Eu envio por duas empresas.
    7 points
  5. Olá boa tarde, Disponibilizei uma aplicação funcional no GitHub. Nota: esta aplicação deverá ser "vista" como ponto de partida.
    6 points
  6. Já resolvi todos os meus problemas com esta primeira integração com a AT (deixo os meus comentários para que futuros programadores não tenham de passar pelo mesmo): - Fiz testes em ambiente real (anulando posteriormente os documentos), pelo que li em muitos comentários deste post já longo, este é o modo operandis, pois o ambiente de testes é tudo menos um ambiente, que embora até consiga funcionar de vez em quando para alguns dos serviços, não funciona para muitos outros; - Borrifei-me para a v2 que altera da data encriptada para a data em aberto com a adição de uma nova chave encriptada Password Digest que é uma compilação de todas as outras: Tentei durante imensas horas mas falhou sempre. Visivelmente a Password Digest era pequena. Pelo que li por aqui, também ninguém conseguiu mas ao contrário de mim, também ninguém deu feedback final (se eu pensa-se assim, continuava-mos na mesma corrente). Portanto retire a v2, Password Digest e passei a enviar a data encriptada, conforme os exemplos da v1; - Por fim, com o projeto de consola de testes a integrar corretamente, em produção e uma vez que estou a usar Visual Studio, liguei-me ao wsdl e gerei tudo com o assistente de ligação aos webservices soap, portanto acabou-se o esparguete do xml e tenho o intelissense com classes como faço para outros webservices. O problema seria na autenticação. Para tal usei uma instância da classe OperationContextScope antes do pedido, para me meter pelo meio e injetar o xml de segurança; - Para certificados, adicionei os 2 ao projeto como embeded resources não dependendo do file system, pois o X509Certificate2 do .NET, tem um overload que permite ler de byte array. Quando os certificados renovarem, é mudar 2 ficheiros no projeto e virá logo com a atualização seguinte, pois são regulares, sem ter de alterar nada na máquina de destino.
    6 points
  7. Das propostas de alteração ao Orçamento de Estado 2021 que tinha colocado ha alguns dias... parece que a do PCP foi "aprovada em comissão". Proposta 1406C Aprovado(a) em Comissão EMPRESAS DEIXAM DE ESTAR OBRIGADAS A PÔR O CÓDIGO QR NAS FATURAS Ainda falta aprovarem a proposta do PS, para QRCODE nos primeiros meses de 2021. Penso que estando aprovado o Orçamento de Estado, a AT deverá dizer algo sobre isto?
    6 points
  8. Não sei se já tinha sido referido, mas já foi publicada a primeira FAQ acerca do QRCode.
    6 points
  9. Caros, Decidi enviar este post para aqueles que estão a programar em C# e estão a obter o erro: "The underlying connection was closed: An unexpected error occurred on a send." Este problema é derivado do certificado PFX está a ser enviado corretamente ou algum problema na ligação SSL. Como já foi dito anteriormente, dizia-se que era necessário ativar o TSL 1.1 ou TSL 1.2. Mas após várias horas de depuração, cheguei a conclusão que isso não é necessário, o servidor da AT tem auto negociação e aceita todas as versões de TSL. Foi dito também que em algumas situações é necessário instalar o certificado PFX no Windows. Igualmente, após várias horas de depuração, cheguei a conclusão que isso também não é necessário. Para resolver estes problemas, precisam de reparar que o ficheiro PFX não possui somente 1 certificado mas sim uma cadeia de certificados! Então, ao invés de utilizarem: X509Certificate2 cert = new X509Certificate2(); cert.Import(CaminhoCertificado, SenhaCertificado, X509KeyStorageFlags.DefaultKeySet); request.ClientCertificates.Add(cert); Devem utilizar: X509Certificate2Collection certCollection = new X509Certificate2Collection(); certCollection.Import(CaminhoCertificado, SenhaCertificado, X509KeyStorageFlags.DefaultKeySet); request.ClientCertificates = certCollection; Esta simples alteração resolveu todos os problemas de comunicação com a AT.
    5 points
  10. Boas pessoal, não sei se já tinham visto esta publicação da AT... Como a mim passou despercebida esta publicação na AT, resolvi partilhar aqui para os despistados como eu! 😉 https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Comunicacao_Series_ATCUD/Paginas/default.aspx Boas férias!
    5 points
  11. Partilho abaixo o código completo para comunicar com os serviços Saphety para quem precisar. A documentação é publica por isso não deve haver problema e com certeza muito pessoal agradece. Visto que existem vários brokers, para já estou a desenvolver para 2, saphety e espap, eu optei por criar uma interface com o essencial e derivar a partir dai para qualquer broker. No entanto quem quiser pode retirar a interface e usar apenas a classe. using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Security; using System.Text; using System.Threading.Tasks; using Microsoft.VisualBasic; public class SaphetyAS2 : AS2Interface { private string _token; public string Token { get { return _token; } } private string _responseText; public string ResponseText { get { return _responseText; } } private string _requestID; public string RequestID { get { return _requestID; } } private string _requestStatus; public string RequestStatus { get { return _requestStatus; } } private string _errors; public string Errors { get { return _requestStatus; } } private string server_base_adress = "dcn-solution.saphety.com/Dcn.Sandbox.WebApi"; // Saphety Invoice Network - Production Environment // Const server_base_adress = "dcn-solution.saphety.com/Dcn.Business.WebApi" private string TokenUri = "https://" + server_base_adress + "/api/Account/getToken"; private string SendFileUri = "https://" + server_base_adress + "/api/CountryFormatAsyncRequest/processDocument/{IssuerNIF}/{DocumentType}/PT"; private string GetStatusByRequestIDUri = "https://" + server_base_adress + "/api/CountryFormatAsyncRequest/{RequestId}"; private string GetStatusByDocumentKeyUri = "https://" + server_base_adress + "/api/OutboundFinancialDocument/documentFormats/{0}"; public HttpStatusCode GetToken(string username, string password) { HttpWebRequest http = (HttpWebRequest)WebRequest.Create(new Uri(TokenUri)); http.Method = "POST"; http.AllowAutoRedirect = true; http.KeepAlive = true; http.PreAuthenticate = false; http.SendChunked = false; Credentials cred = new Credentials() { UserName = username, Password = password }; string content = JsonConvert.SerializeObject(cred); string contentType = "application/json"; http.ContentType = contentType; http.ContentLength = content.Length; SendWebRequest(http, content); var resp = HandleWebResponse(http); if (resp == System.Net.HttpStatusCode.OK) { var json_response = JObject.Parse(_responseText); if (Convert.ToBoolean(json_response("IsValid")) == true) _token = json_response("Data"); } return resp; } public HttpStatusCode SendFileCIUSPT(string filename, string token, string DocType, string IssuerNIF) { string Content; if (string.IsNullOrEmpty(filename)) throw new ArgumentNullException("filename"); try { using (StreamReader xmlfilereader = new StreamReader(filename)) { Content = xmlfilereader.ReadToEnd(); } } catch (Exception ex) { Interaction.MsgBox("Ocorreu o seguinte erro a ler o ficheiro " + filename + Constants.vbNewLine + ex.Message); throw new ArgumentNullException("filename"); } HttpWebRequest http = (HttpWebRequest)WebRequest.Create(new Uri(SendFileUri.Replace("{IssuerNIF}", IssuerNIF).Replace("{DocumentType}", DocType))); http.Method = "POST"; http.UserAgent = "ENIGMA AGENT"; http.Headers.Add("Authorization", "Bearer " + token); http.ContentType = "application/xml"; http.ContentLength = Content.Length; SendWebRequest(http, Content); var resp = HandleWebResponse(http); if (resp == System.Net.HttpStatusCode.OK) _requestID = _responseText; return resp; } public HttpStatusCode GetStatusByRequestID(string ID, string token, string sender) { HttpWebRequest http = (HttpWebRequest)WebRequest.Create(new Uri(GetStatusByRequestIDUri.Replace("{RequestId}", ID))); http.Method = "GET"; http.UserAgent = "ENIGMA AGENT"; http.Headers.Add("Authorization", "Bearer " + token); // SendWebRequest(http, "") var resp = HandleWebResponse(http); if (resp == System.Net.HttpStatusCode.OK) { var json_response = JObject.Parse(_responseText); if (Convert.ToBoolean(json_response("IsValid")) == true) _requestStatus = json_response("Data")("AsyncStatus"); } return resp; } public HttpStatusCode GetStatusByDocumentKey(string ID, string token, string requester, string sender, string type, DateTime data) { } private HttpStatusCode HandleWebResponse(HttpWebRequest http) { try { HttpWebResponse response = (HttpWebResponse)http.GetResponse(); using (var reader = new System.IO.StreamReader(response.GetResponseStream(), true)) { _responseText = reader.ReadToEnd(); } response.Close(); return response.StatusCode; } catch (Exception ex) { Interaction.MsgBox("O servidor devolveu um erro: " + Constants.vbNewLine + ex.Message); } } private void SendWebRequest(HttpWebRequest http, byte[] fileData) { Stream oRequestStream = http.GetRequestStream(); oRequestStream.Write(fileData, 0, fileData.Length); oRequestStream.Flush(); oRequestStream.Close(); } private void SendWebRequest(HttpWebRequest http, string data) { StreamWriter oRequestStream = new StreamWriter(http.GetRequestStream(), Encoding.ASCII); oRequestStream.Write(data); oRequestStream.Close(); } }
    5 points
  12. É simples - se desenvolveres o código, vai ser adiado em 30 de Dezembro. Agora, se não desenvolveres, entra em serviço em 1 de Janeiro de 2021. É sempre assim, não sei porque tens duvidas. Falando a sério, pode dar para os dois lados.
    5 points
  13. Realmente não podemos olhar para isto só do ponto de vista do programador, em que a maior parte das empresas que desenvolvem aplicações de faturação já terão desenvolvido aquilo que é necessário à impressão do QR Code. Convém pensar nos outros pontos de vista, dos clientes que têm que trocar impressoras e equipamentos móveis numa altura em que têm quebras de faturação muito significativas e sem saber se daqui por seis meses manterão os seus negócios, da implementação que obrigará a que técnicos se tenham que deslocar fisicamente aos estabelecimentos dos clientes num cenário de pandemia e limitações na sua mobilidade, da logística nos trasnportes que com os picos de entregas de compras online dificultarão a entrega de equipamentos (impressoras, terminais, ...) atempadamente, entre muitos outros. Esperemos que todos nós continuemos a ter muitos clientes a usarem as nossas soluções quando efetivamente estas alterações entrarem em vigor, sendo que até ao momento não é conhecido que a obrigatoriedade do QR Code seja adiada.
    5 points
  14. Bem antes demais, acho estranho, pessoal andar aqui a questionar a interpretação da maioria, e a falar em comunicação Social há pelo menos 2 dias, e não ser capaz de em meia hora fazer um telefonema a AT a questionar se a interpretação deles está Correcta. Eu hoje, apesar de ter quase a certeza que interpretação que estava a fazer do despacho era a mais correcta, liguei para a AT e confirmei. Como sempre, fui super bem atendido e fizeram o possível para me esclarecer. Se bem se recordam, isto já aconteceu no passado em Relação ao Webservice e não só. Copy & Paste de certificados, horas sem fim a discutir, e no fim, ninguém tinha ligado ou sequer comunicado à AT 😐 parece que há pessoas que têm medo de Falar com a AT. Concordo com tudo o que disseste Americo, tanto que meti Like, no entanto ambos sabemos que o Sistema não funciona assim. A AT não precisa de certo que eu a defenda como já fiz no passado, mas por vezes a ideia que passa é que a AT ou os seus funcionários são culpados de tudo. Ora que culpa tem a AT se um secretário de estado, por força da aprovação de um OE ou de captação de fundos Europeus, lança um despacho sem passar "cavaco" a ninguém? sem saber as implicações ou o tempo qu leva a desenvolver algo do género como meteram no Despacho?? lol 😅 O Legislador é que antes de legislar, deveria assegurar no minimo todas as implicações antes de o fazerem. Com a agravante, como ficou visível aqui no P@P, do Legislador, chegar a mandar "bocas" para a Comunicação Social primeiro, para pressionar os Parceiros ou whatever, e só depois questiona ou manda executar a AT. Tenho ideia, e livre de falsos moralismos, que neste momento, se trabalhasse na AT em determinados departamentos, demitia-me 😐 ... A AT não só tem de tentar executar aquilo que lhes foi imposto há 5 dias atrás, como ainda tem de responder a todas as questões colocadas por nós, e por outros contribuintes que ouvem na Comunicação Social antes e decidem tirar duvidas de algo que eles nem sabem. IMHO 🙂
    5 points
  15. 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
  16. Resposta da AT Estando a FAQ já disponível, não me parece que a AT vá alterar o que quer que seja... FAQ: https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/questoes_frequentes/Pages/faqs-00883.aspx No entanto, eis a minha resposta
    4 points
  17. Pessoal deixem-me só dizer duas coisas; 1º tanto quanto sei, a menos que tenha alterado alguma coisa desde 2012 nesse sentido, não é possível uma Software House ser Broker, ou melhor é possível, não pode é ser Broker do seu próprio software... Portanto não se levanta a questão de "Broker dentro de Portas"... Tentamos isso em 2012 ou 2013 para um cliente nosso, e foi-nos negado... isto na FE claro. 2º tenho ouvido muita gente a falar de ligações ás toneladas de Brokers. Portanto nós que já cá andamos há 5, 10, 15 anos, vamos mais uma vez competir entre nós, chamando a nós a responsabilidade da comunicação a esses Brokers que apareceram mais recentemente e que se calhar até ganham mais do que nós. Atenção não estou a fazer que não fiz ou que não vou fazer Werbservices, mas era bom que os nossos clientes todos, percebessem que a responsabilidade é do Broker. De resto como acontece com outros dispositivos. Aliás, não me perguntem qual é, porque já não me lembro, mas já há um Broker que diz que integra com qualquer ERP (e assim devia ser), não sei se é uma pasta onde os clientes guardam documentos e o Broker tem uma app que sincroniza, se é um Driver impressora para a qual se manda imprimir que vai directo ao Broker... Já não me lembro, mas sei que há um e que já li isso algures... Ora convinha, que fossem eles a competir entre eles, e não nós que já cá andamos a levar porrada há mais tempo 😕 ... E isso só se faz de uma maneira, informando os nossos clientes para "apertarem" com os Brokers... Se houver mais um que faça isso, os outros Brokers se não quiserem perder, terão de fazer... O que me parece, é que sobra sempre para nós 😕 Mais uma vez, não estou a dizer para não criar ou não fazer, mas se não chamar-mos a atenção aos nossos clientes, os Brokers irão continuar a fazer o que lhes apetecer e nós a correr atrás a criar webservices sem fim, cada um com as suas características.
    4 points
  18. Boas @snsz Aqui está um CIUS-PT válido para uma fatura com desconto global: E aqui uma fatura com desconto na linha de um artigo: Se mais alguém tiver dúvidas com este formato, apitem
    4 points
  19. Obrigado a todos, se o objetivo e colaborar eu estou aqui para isso para aprender e dar ideias e participar. Embora a minha reputação seja miserável 😉 Perdi muito tempo neste tópico, nem sempre o que se diz corresponde a realidade, mas com o tempo aprendesse a filtrar. Respostas (vê se expliquei tudo se não volta a carga) 1- Pode ser o SELO ELETRONICO, mas eu uso os gerais (também, remotos, e optei por remotos para não teres uma PEN ou um SMARTSCARD) que permitem também assinar documentos. Por isso é que gosto mais desta solução. fiz testes com eles e alem de pdf tambem assino XML, não vá o diabo se lembrar.... como eu tenho vários clientes que usam isso eu negoceio pós-pago, mas sim pago por assinatura e pagos o certificado propriamente dito. Acho que inclui 200 assinaturas... ou qq coisa assim. 2- Basicamente tu envias o PDF, dizes o mail e eles enviam o mail ao cliente. Podes configurar um conjunto de tretas nesse mail. O que faço é vai e vem. e depois ou assemelho no: <cac:AdditionalDocumentReference> <cbc:ID schemeID="AAA">1</cbc:ID> <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode> <cbc:DocumentDescription>ATTACHMENT</cbc:DocumentDescription> <cac:Attachment> <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="FT_021495A.pdf">JVBERi0xLjcgCiXi48/TIAoxIDAgb2JqIAo8PCAKL1R5cGUgL0NhdGFsb2cgCi9QYWdlcyAyIDAgUiAKL1BhZ2VN CIUS e despacho, ou meto no mail e consegues configurar um mail e o software trata de enviar o mail. Já valei isso no link de validação do CIUS e esta impec. O XAdES e o mesma coisa mas para XML. Ora bem sabes que tens que armazenar as faturas 15 anos, eles fazem isso por ti. Eu acho que já disse, mas no meu caso a faturação é um pequena parte do software que produzo (naõ sou concorrência para ninguém 😃 ), como já tenho que guardar imagens, ou ficheiros do processo que se baseia a minha app tb posso guardar a pdf. Depois tenho uma mecanismos de backup que me recolher e indexa isso tudo num backup. Por isso é que sistema de envia e armazenamento deles não me interessa, mas não digo que não seja interessante. NOTE-SE QUE TUDO ISTO é relativo à FACTURA ELECTRÓNICA (e não à FE-AP) CERTISSIMO isto só surgiu porque para responder ao @davdew05, e porque se pode considerar dentro do assunto pela fatura eletrónica ir dentro do CIUS-PT.
    4 points
  20. Eu tenho sobre parte. Não sobre tudo. Mas isto é uma coisa que nos ultrapassa, não se trata só, de resto como até agora, de umas pessoas que estão sentadas e decidem sem conhecimento de causa, e de com isso fazerem-nos andar à pesca e fazer os clientes andarem a registar-se e a pagar em cada Broker, o que é surreal. Aqui vai mais longe. A ser verdade o que falamos e o que penso sobre a situação, exijo enquanto cidadão Português, saber porque raio um Município paga meio milhão para implementação de um sistema de um Broker, obrigando todos os fornecedores a trabalhar com esse broker, quando na eSPAP é gratuito. Just that... Isto merecia uma participação ao Tribunal de contas. Pensava eu que o País era pobre, afinal sou só eu, o País é muita rico, para cada Municipio por exemplo, ter o seu Broker e gastar milhares quando há uma solução gratuita, só pode ser um País rico EDIT: https://www.espap.gov.pt/spfin/Paginas/spfin.aspx#maintab5 "A eSPap coordena a implementação da Fatura Eletrónica na Administração Pública (FE-AP). Com o Decreto-Lei n.º 123/2018, de 28 de dezembro, (ver linguagem clara) foi atribuída à eSPap a competência para emitir requisitos técnicos e funcionais que suportem a implementação da faturação eletrónica, desenvolver instrumentos de apoio às entidades abrangidas e fornecer a solução para receção e processamento de faturas eletrónicas. O valor a pagar pela solução será aprovado por despacho do membro do Governo responsável pela área das finanças" Tirado hoje. Mais claro que isto é impossível. À eSPAP, além de coordenar a implementação, compete desenvolver instrumentos e fornecer a solução para a receção e processamento de facturas electronicas. O valor a pagar pela solução, será aprovado por despacho. E agora os Brokers? e as centenas de milhares e milhares que já foram gastos??? 😐
    4 points
  21. Eu fiz uma alteração a um cliente que comercializa combustíveis. Tenho alguma informação que podes consultar aqui Informação combustíveis . Há um quadro com informação fixa sobre as % que é fixo e meramente informativo. Depois tens que fazer alguns cálculos baseados nas quantidades dos produtos constantes nas facturas de acordo com uma tabela onde consta o imposto aplicado a cada unidade que tens que multiplicar pela quantidade. O que eu fiz foi criar uma tabela, neste caso para o ISP (Imposto sobre produtos petrolíferos) com o valor do imposto. Na ficha do produto indico-lhe o código do imposto que recai sobre aquele produto cuja chave está ligada á tabela criada. Ao imprimir é só construir uma tabela onde apresento o resultado de uma query que liga as linhas da factura à ficha do produto e desta á tabela de impostos. Et voilá! O mesmo se aplica aos plásticos e papel. O esquema é o mesmo. Só varia a tabela de impostos.
    4 points
  22. Foi hoje publicado o Orçamento de Estado 2021, QR code suspenso e com incentivos. Artigo 404.º: Apoio extraordinário à implementação do ficheiro SAF -T (PT) e código QR b) Em 2021, é suspensa a obrigatoriedade do disposto no n.º 3 do artigo 7.º e no artigo 35.º do Decreto-Lei n.º 28/2019, de 15 de fevereiro, sendo a aposição em todas as faturas e outros documentos fiscalmente relevantes do código de barras bidimensional (código QR) e do código único de documento (ATCUD) considerada facultativa. Documento: Lei nº 75-B/2020 Dre
    4 points
  23. Concordo, o Ofício Circulado 30136 dá a indicação que "a fatura simplificada não contempla a possibilidade de indicação do nome e morada", o que parece indicar (lá está a tal história da intenção do legislador) a intenção de não aceitar essa inclusão. A continuação do parágrafo, ao referir "as faturas que titulem operações relativamente às quais se verifiquem estas circunstâncias, devem ser emitidas nos termos do artigo 36.º do CIVA" não deixa claro se as circunstâncias de que estão a falar são todas as indicadas anteriormente ou apenas as últimas dessa lista, isto é, "motivo justificativo da não aplicação do imposto nem da data em que os bens ou serviços foram postos à disposição do adquirente, ou os serviços foram realizados, quando a data não coincide com a da respetiva emissão", visto estes últimos serem circunstâncias e o nome e morada não serem. Se essa última parte do esclarecimento da AT fosse mais clara seria ótimo, mas provavelmente não era nisso que estavam a pensar quando elaboraram o texto, fazendo com que esta situação específica continue um pouco dúbia. PS: ao longo de mais de 16 a participar em vários fóruns (e cerca de 10 como moderador) aprendi a não me chatear muito com o que os outros escreve. Se achar que estão errados aponto o erro, mas limito-me a isso. Por vezes escrevo longas respostas inflamadas, leio-as, penso "isto era uma boa resposta, mas ia melhorar a discussão?", e se achar que não, apago-a. 🙂 PPS: Um erro é sempre uma oportunidade de aprender, só temos que tentar mostrar isso à pessoa que está errada (incluindo nós próprios), o resto é com ela.
    4 points
  24. Boa Tarde Relativamente aos codigos QR deixo aqui um link para um programa que é uma boa ajuda neste momento acho eu, permite obter informação do qr a partir da imagem. Source: https://github.com/Merricx/qrazybox Link Online: https://merricx.github.io/qrazybox/ Exemplo da informação que podem obter: QR version : 9 (53x53) Error correction level : M Mask pattern : 3 Number of missing bytes (erasures) : 0 bytes (0.00%) Mode Indicator : 8-bit Mode (0100) Character Count Indicator : 141 Decoded data : A:123456789*B:999999990*C:PT*D:FS*E:N*F:20190812*G:FS CDVF/12345*H:CDF7T5HD-12345*I1:PT*I7:0.65*I8:0.15*N:0.15*O:0.80*Q:YhGV*R:9999*S:NU;0.80 Final Decoded string : A:123456789*B:999999990*C:PT*D:FS*E:N*F:20190812*G:FS CDVF/12345*H:CDF7T5HD-12345*I1:PT*I7:0.65*I8:0.15*N:0.15*O:0.80*Q:YhGV*R:9999*S:NU;0.80 Para quem esta a desenvolver impressão para impressoras de talões como eu neste momento não temos hipotese de o fazer nativamente pois não controlamos a versão do codigo qr, a unica solução e imprimir como imagem. Alguém tem um exemplo em java ou c# de como imprimir imagens para uma impressora esc/pos.
    4 points
  25. Pessoal, PROBLEMA RESOLVIDO! O problema do QRCoder que o pessoal está a usar é que a chamada ao utilitário é feita passando uma STRING da mensagem. Isso dá problemas como o que estamos a ter. A única solução é passar ao QRCoder um ByteArray. Ao passar o ByteArray a imagem do QR Code gerada é exactamente igual ao da AT. Eles bem dizem que tem que ser encoding=BYTE. O problema é que a dll do QRCoder não tem esta função. Ou melhor, tem uma opção em que é possivel passar um ByteArray e o Ecc mas não a versão. Tive que alterar o source de forma a permitir além do ByteArray e do Ecc, receber também a versão de forma a "forçar" a versão para 9 quando esta é inferior (< 180 caracteres). Para quem quiser fica aqui o código alterado: public QRCodeData CreateQrCode(byte[] binaryData, ECCLevel eccLevel,int version) { return GenerateQrCode(binaryData, eccLevel, version); } public static QRCodeData GenerateQrCode(byte[] binaryData, ECCLevel eccLevel, int versao) { int version = GetVersion(binaryData.Length, EncodingMode.Byte, eccLevel); if (versao != -1) version = versao; string modeIndicator = DecToBin((int)EncodingMode.Byte, 4); string countIndicator = DecToBin(binaryData.Length, GetCountIndicatorLength(version, EncodingMode.Byte)); string bitString = modeIndicator + countIndicator; foreach (byte b in binaryData) { bitString += DecToBin(b, 8); } return GenerateQrCode(bitString, eccLevel, version); } private void RenderQrCode() { string level = comboBoxECC.SelectedItem.ToString(); QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)(level == "L" ? 0 : level == "M" ? 1 : level == "Q" ? 2 : 3); using (QRCodeGenerator qrGenerator = new QRCodeGenerator()) { Byte[] bytes = Encoding.ASCII.GetBytes(textBoxQRCode.Text); int versao = textBoxQRCode.Text.Length < 180 ? 9 : -1; //using (QRCodeData qrCodeData = qrGenerator.CreateQrCode(textBoxQRCode.Text, eccLevel)) using (QRCodeData qrCodeData = qrGenerator.CreateQrCode(bytes, eccLevel, versao)) { using (QRCode qrCode = new QRCode(qrCodeData)) { pictureBoxQRCode.BackgroundImage = qrCode.GetGraphic(20, Color.Black, Color.White, GetIconBitmap(), (int) iconSize.Value); this.pictureBoxQRCode.Size = new System.Drawing.Size(pictureBoxQRCode.Width, pictureBoxQRCode.Height); //Set the SizeMode to center the image. this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.CenterImage; pictureBoxQRCode.SizeMode = PictureBoxSizeMode.StretchImage; } } } }
    4 points
  26. E pronto já está esclarecido pela AT.
    4 points
  27. Na minha opinião, o QRCode não pode ser adiado por causa do DL 28/2019 ter alterado o nº 3 do artigo 78-B do Código do IRS: Claro que, não faz qualquer sentido o Despacho, em especial quando diz: mas depois acaba por obrigar a implementar o QRCode. Se fossem honestos, diriam que andaram a dormir e agora já é tarde para conseguirem implementar do lado deles a comunicação das séries e essa é a única razão porque o ATCUD é adiado. Concluindo, o QRCode é preciso para cumprir o Código do IRS e permitir a um contribuinte adquirente comunicar documentos sem ter de divulgar o NIF aos comerciantes e sabe-se lá a quem mais que tenha acesso a essas bases de dados.
    4 points
  28. Erros comuns e resoluções 1 - Erro 5000 Problema xml mal formatado (arranjem outro modelo) algures acima postei o meu que funciona. 2 - Erro "Connection reset by peer in connection to servicos.portaldasfinancas.gov.pt:722" ou "Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host." dependendo da plataforma que usam Problema Certificado TesteWebservices.pfx errado ou estão a enviar o certificado errado ou não têm os canais tls activados atualizem o ficheiro TesteWebservices.pfx e usem o terceiro certificado os outros sao Root e intermedio, Se não sabem enviar junto o root e o intermedio instalem o certificado no windows. 3 - Erro 4043 - "O NIF do cliente para o qual está a registar a serie não possui atividade aberta." ou Problema a verificar a identidade dos contribuintes realmente pode estar a acontecer, 😀, não usem 599999993/37, não funciona. usem o user real com autorização de WSE - Comunicação e Gestão de Séries por webservice. Espero que sirva de ajuda para alguém.......
    3 points
  29. Não... continua o erro "4043 - O NIF do cliente para o qual está a registar a serie não possui atividade aberta." Isto no serviço "registarSerie"
    3 points
  30. Novo email enviado à AT:
    3 points
  31. Caros Amigos, Acabei de ler e assinar a petição: «CARREIRA DE INFORMÁTICA UMA CARREIRA DE DESGASTE RÁPIDO» no endereço https://peticaopublica.com/pview.aspx?pi=CINFORMATICA Pessoalmente concordo com esta petição e cumpro com o dever de a fazer chegar ao maior número de pessoas, que certamente saberão avaliar da sua pertinência e actualidade. Agradeço que subscrevam a petição e que ajudem na sua divulgação através de um email para os vossos contactos. Obrigado.
    3 points
  32. Boas. Se alguém tiver interesser, criei uma demo online: https://github.com/luisabreu/AmaCmdSigning
    3 points
  33. Boas, é isso mesmo, primeiro era em JAN/21 depois, ABR/21 agora JUL/21. Mas são faturas eletrónicas com selo eletrónico. nada tem a ver com FE-AP. Chama-se Certificado Qualificado com Selo Eletrónico. Este sim é o nome pomposo !!! Eu tenho clientes que literalmente "cagaram" para os brokers, e enviam o CIUS por mail para a entidade do estado e muitos aceitam. Mas dentro do CIUS PT envio no campo attach... não me lembro agora o nome do campo, um PDF assinado digitalmente em base64. Ou seja é exatamente isso que tu queres, é o PDF assinado com a nova norma europeia. Como eu faço isso: simples, tens varios operadorem em PT, eu uso a multicert, gero um PDF, saco a HASH envio para a multicert via RestAPI eles devolvem outra HASH, espeto com ela dentro do PDF e está assinado com certificado qualificado e selo eletrónico. O selo eletrónico indica que houve uma entidade certificada (e podes procurar no site da UE quais são), que assinou digitalmente aquele documento (tipicamente fatura, mas podem ser outros documentos) a data e hora UTC. Não é como assinar com o cartão de cidadão que trocas a data do pc para o ano passado e está tudo bem... O selo tem a garantia de data e hora. O processo de assinatura é simples, é tipo broker cius-pt, envias login e pass, recebes um token, envias o token e chave e recebes a contrachave.. simplório. Tenho isso em c# para a multicert. Alias na altura quando falei com eles, eu pedi o código,, tinha logica estou a usar um serviço deles (é verdade, pagas por assinatura claro!) em net e não tinham, mas mandaram-me o swagger e foi simples. Se precisares de mais ajuda diz. Se o povo não se ajudar uns aos outros estamos todos loucos qq dia...
    3 points
  34. Eu diria que é suficiente a colocação da assinatura eletrónica qualificada e a existência de um contrato escrito de aceitação por parte do cliente e que mencione o email para onde são enviadas. Pelo menos, parece-me ser assim que "as grandes" estão a fazer, leia-se EDP, PT, VODAFONE, VIA VERDE, etc..., aceitas a fatura eletrónica e ela passa a chegar assinada por email. Por enquanto, pelo menos até ao fim do mês de Junho, os PDFs sem assinatura equivalem para todos os efeitos legais (fiscais) a faturas eletrónicas. Ver DESPACHO N.º 72/2021-XXII do SEAAF. Por mim, podia ser para sempre e, se tivessem dúvidas da veracidade, fossem consultar o e-Fatura. Por assinatura eletrónica qualificada, entende-se assinatura da empresa emissora que tem de ser comprada. Pode ainda ser usada a assinatura do Gerente com poderes e para o efeito, procura Serviço de Assinatura de Faturas Eletrónicas (SAFE) (autenticacao.gov.pt) que é gratuito para uma empresa durante 2 anos, mas pago 20 Euros cada 2anos para os anos seguintes ou se for para mais que uma empresa. Legalmente, a fatura sem papel (PDF sem assinatura), fora da atual situação de pandemia, só pode ser emitida a consumidores finais (não serve para colocar em despesas das empresas, deduzir IVA, etc.) e cada emitente tem de aderir no portal das finanças, no e-Balcão.
    3 points
  35. Aqui fica uma outra versão... digam de vossa justiça! EDITADO para incluir as dúvidas do @CrominhO
    3 points
  36. Eu diria que estão a fazer mal, e não são os únicos: 02-4118 A implementação do Código QR pode ser feita antes de 01/01/2021? A implementação do Código QR pode ocorrer antes de 01/01/2021, de modo a permitir a adaptação das aplicações para o cumprimento do disposto na legislação. Neste caso, o campo H, relativo ao ATCUD, deverá ser preenchido com “0” (zero), até à entrada em vigor da obrigação da comunicação prévia das séries documentais para a obtenção do código de validação. Quando for atribuído pela AT o código de validação da série, o referido campo deverá passar a ser preenchido com o respetivo ATCUD. Eu interpretei que o ATCUD, enquanto não existir, é "0" e não que o código de validação da série é "0". Também acho que o ATCUD só deve aparecer na fatura quando existir.
    3 points
  37. O prazo para comunicação dos inventários de 2020 foi adiado. A comunicação passa a ser possível até ao dia 28 de Fevereiro de 2021.
    3 points
  38. Coloquei uma questão no e-balcão para perceber como preencher o campo Q (4 caracteres da hash) do QR Code dos Recibos. Partilho a resposta que recebi:
    3 points
  39. Bom dia a todos os colegas, Anos de adaptação das nossas aplicações a diferentes requisitos legais e fiscais e evolução desses requisitos, levaram a concentrar em dois tópicos dos foruns do P@P mil-e-uma matérias, que muito dificultam a procura de informação e seguimento de um sub-tópico em particular. Depois destes anos todos, creio que é fácil enumerar uma lista de foruns ou tópicos pertinentes que fariam sentido ser individualizados em termos de discussão (SAF-T, comunicação com webservices da AT em geral ou individualizado, ATCUD, QRCode, certificação, ...), para além de um tópico de discussão geral relacionada com o tema da fiscalidade nas nossas aplicações. As discussões atuais seriam encerradas, off-topics dentro de cada um dos novos sub-tópicos seriam encaminhados para o tópico específico. A divisão por tópicos seria feito pelo tema fiscal em causa, e nunca pela tecnologia. Esta é a minha sugestão que deixo aqui e oportunamente tentarei fazer chegar aos administradores do P@P, estando obviamente disponível para contribuir para essa discussão. EDIT: Criei um tópico novo aqui para não ser discutido aqui. cc @nunopicado
    3 points
  40. Da ficha doutrinária, processo 2371: Ou seja, desde que os donativos sejam donativos e não prestações de serviços encapotadas, cai fora do âmbito do IVA. É um exemplo de uma não sujeição. Ou seja TaxType=NS, TaxCode=NS
    3 points
  41. Deixo aqui um possível algoritmo: Ordenar os elementos da lista; Agrupar os elementos consecutivos que sejam iguais; Formar uma lista de tuplos que indique o elemento e quantos existem; Ordenar esta nova lista pelo número de elementos; Extrair apenas os elementos. O processamento da segunda lista que mostraste teria os seguintes resultados intermédios: [5,3,5,3,5,3,7,1,3,1,3,5] [1,1,3,3,3,3,3,5,5,5,5,7] [[1,1],[3,3,3,3,3],[5,5,5,5],[7]] [(2,1),(5,3),(4,5),(1,7)] [(1,7),(2,1),(4,5),(5,3)] [7,1,5,3] Para cada um dos pontos, o Haskell fornece algumas funções úteis, respectivamente: sort; groupBy; map; sortBy; map. Basta então compor as funções com o operador . a fim de implementar o algoritmo. Isto traduz-se no seguinte código: import Data.List (sort, sortBy, groupBy) import Data.Ord (comparing) sortByFreq :: (Eq a, Ord a) => [a] -> [a] sortByFreq [] = [] sortByFreq xs = map (snd) . sortBy (comparing fst) . map (\x -> (length x, head x)) . groupBy (==) . sort $ xs Cumprimentos.
    3 points
  42. O código do IVA diz que estão sujeitas a IVA as transmissões de bens (vendas) e as prestações de serviços. Esta é a regra geral. Depois tens algumas vendas e algumas prestações de serviços que estão isentas. Repara que para estar isento é necessário, primeiro, estar sujeito. Por exemplo, o serviço prestado por um médico na sua clínica, por ser uma prestação de serviços está sujeita, mas está isenta pelo artigo 9.º. As isenções são variadas, tens o regime especial de isenção, o artigo 9.º, as transmissões intracomunitárias, as exportações. As situações não sujeitas são mais raras. São situações que caem fora das normas de incidência do IVA, ou são explicitamente afastadas pelas mesmas. Por exemplo, uma empresa que venda todo o seu ativo a outra entidade para que esta continue a atividade, é uma operação não sujeita, pelo n.º 4 do artigo 3.º do CIVA. Depois tens outras situações, que sendo sujeitas e não isentas têm, ainda assim, IVA zero nas faturas. É o caso do tabaco (em que o IVA é cobrado a montante), dos bens em segunda mão (o IVA está lá mas não é possível saber o valor, pois incide apenas sobre a margem), ou dos regimes de autoliquidação (onde é o cliente que liquida o IVA). Estas são as situações que, no SAF-T vão com TaxCode=OUT Ou seja, partindo do princípio que isto já esteja a ser bem feito a nível do SAF-T, podemos resumir que_ - no I2 (ou J2 ou K2) vão as situações em que no SAF-T colocarias TaxCode=ISE. - no L vão as situações em que no SAF-T colocarias TaxType = NS, TaxType = IS ou (TaxType=IVA e TaxCode=OUT e TaxPercentage=0) Edit: Esqueci-me de referir, os códigos de isenção, não são apenas de isenção pois abrangem as três situações acima referidas. São mais "Códigos de quando o imposto é zero".
    3 points
  43. Não são só dois, há pelo menos 4 tópicos relativamente activos sobre os vários assuntos: https://www.portugal-a-programar.pt/forums/topic/57541-saft-pt-debate-de-dúvidas-e-ideias/ https://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/ https://www.portugal-a-programar.pt/forums/topic/77364-at-questões-legais/ https://www.portugal-a-programar.pt/forums/topic/76837-norma-europeia-de-fatura-eletrónica-einvoicing-diretiva-201455eu/ Depois de discussão interna, achou-se que já se justificava uma secção dedicada ao tema. A mesma já foi criada, e os tópicos com a tag adequada movidos. Fechar os tópicos existentes não me parece fazer muito sentido. Quem achar que tem um assunto diferente para abordar, pode sempre abrir um novo tópico. A organização dos tópicos depende sobretudo dos utilizadores, visto que o staff não tem condições para estar constantemente em cima das mensagens publicadas. Eventualmente podem reportar off-topics para que as mensagens sejam movidas (e mesmo aqui convém não esquecer que isto é um hobby para o staff).
    3 points
  44. Consegues arranjar o Auto de Contraordenação para ver quais foram as normas violadas? Nem sempre os inspetores têm razão, levantam autos por tudo e por nada, muitas vezes sem qualquer sustentação legal. Só para contextualizar, ainda no mês passado, num grupo de Contabilistas do FB apareceu um Auto de Contraordenação no valor de cerca de 750 Eur porque um DT não tinha preenchidos os nomes completos do emitente e do destinatário. A Bastonária da OCC prontificou-se de imediato a defender o Sujeito Passivo, através do CC, até porque há um Oficio Circulado onde expressamente se permite abreviar nomes e inclusivamente usar denominações comerciais que não coincidam com a designação social da empresa, do género "Adega Almeida" em vez de "Joaquim Silva & Soares, Lda.". Apresenta mesmo o caso dos "CTT" que não seria necessário identificar por "CTT - Correios de Portugal, S.A.".
    3 points
  45. Eu sigo este princípio: Guia de Remessa -> mercadora para faturar, valorizada ou não. Guia de Transporte -> outras situações, nunca valorizada. E aos clientes que escolhem as GR valorizadas, recomendo que façam logo a fatura, sempre poupam papel 😉
    3 points
  46. Na minha opinião, quando o legislador (no seu espirito) fala nos Recibos serem fiscalmente relevantes está a referir-se aos RC que são recibos com implicações em IVA, que têm de ser datados e numerados sequencialmente, e só podem ser emitidos quando efetivamente se recebeu por causa das implicações fiscais. O Recibos RG, na minha ótica são documentos que permitem registar uma entrada de dinheiro na empresa e dar um comprovativo ao cliente de que pagou, mas também servem para ir a casa do cliente receber, acusar o recebimento de promessas de pagamento (cheques pré-datados), etc. Por exemplo, eu emiti um recibo com o nº N e data de hoje para o meu vendedor tentar ir receber de um cliente, mas no fim do dia ele veio sem o dinheiro, porque o cliente lhe disse que só conseguia pagar na próxima semana. Entretanto, na semana passada, esse mesmo cliente tinha lhe dito que não lhe pagava porque não lhe levava o recibo e só pagaria contra recibo. Devo anular o recibo de que vou precisar novamente na próxima semana? Eu acho que não, basta não considerar o recibo efetivo enquanto não receber, deixá-lo pendente e sem efeitos até ser recebido. Na data do efetivo recebimento, acertar a data dele e registar na Conta Corrente do cliente. Depois, recebi do Joaquim um cheque pré-datado para o dia 30/06/2021, faço um recibo com o nº N+1 e data de 30/06/2021, meto o cheque na gaveta à espera que chegue o dia. Nesse dia deposito e, se for de boa cobrança, envio o recibo ao cliente. De seguida recebo do Manuel um cheque datado para hoje, faço o recibo nº N+2 com data de hoje e levo-o ao banco para depositar. Quando estava no banco, verifiquei que na semana passada, que por acaso até foi no ano passado, o João me transferiu 1.000,00 Eur, chego ao escritório e faço o recibo nº N+3 com a data em que o dinheiro entrou na conta. Se tentar comunicar um SAFT com estes documentos dá erro! Não pode dar! Não podem obrigar todas as empresas a trabalhar da mesma forma. Se obrigarem, mudo o nome dos recibos RG de "RECIBO" para "RECEBIMENTO" e deixam de fazer parte do SAFT definitivamente.
    3 points
  47. Não podes, nem pensar. Não podes num documento colocar a hash de outro. Seria impensável pelo simples facto de um recibo poder saldar várias faturas, mas pior que isso é mesmo usar a hash de outro documento, seja ele qual for. No campo da hash, é obrigatório, mandas o campo, mas sem valor. Se o documento não tem hash, não vai nenhuma no campo. No Campo G usas o número do documento (Tipo Serie/Numero), como em qualquer outro. Não interessa se é guia ou não. O código que recebes do webservice não entra aqui ao barulho. Não faz parte das especificações do QRCode.
    3 points
  48. Não é? 😜 😜 Parecia-me óbvio! 😂
    3 points
  49. Não era mais fácil dizerem logo que querem os M12, M13, M14, M15, M99, etc. Em vez disso, colocam um texto inconclusivo com exemplos, e depois vão se queixar que se deviam ter incluído o M03, M11, etc ... Acho que já percebi através da nova FAQ 12-4129: A separação dos valores sem IVA entre os campos I2+J2+K2 e o campo L é o campo TaxCode da tabela de IVA. Se for "OUT" irá para o campo L e se for "ISE" irá para um dos campos I2, J2 ou K2 conforme o espaço fiscal. Pelo exemplo 5 das Especificações Técnicas, finalmente também percebi: Para que serve o campo "espaço fiscal", além das comummente utilizadas "PT", "PT-AC" e "PT-MA" que já toda a gente sabia, agora fica-se a saber que podem ser utilizados outros países, como no exemplo "FR", se for utilizada a taxa em vigor naquele país. Quais os casos em que um sujeito passivo português, registado em Portugal, com um NIF português, pode emitir uma fatura a um francês com a taxa de iva em vigor em França? Eu só me lembro dos utilizadores do MOSS que podem, em determinadas circunstâncias, faturar com a taxa de cada um dos países europeus aos seus clientes consumidores finais (B2C -> IVA não dedutível pelos clientes).
    3 points
  50. Não confundas a AT, e quem a dirige direta ou indiretamente, com os funcionários da AT. A AT não tem recursos humanos para desenvolver, por isso subcontrata fora. Para subcontratar tem de fazer concurso público, aprovar pelo tribunal de contas, etc. Acho que o legislador é que devia pensar nisso antes, quando coloca na legislação as datas de entrada em vigor. Como não quer saber, é otimista, e as entradas em vigor vão sendo adiadas. Claro que a culpa nunca é deles, é sempre dos outros e, como sempre, quem se f... é o mexilhão. Olha para o caso da faturação eletrónica para as entidades públicas, já andam a adiar à tantos anos que até parece uma anedota.
    3 points
×
×
  • 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.