Jump to content
desconfiado

Norma europeia de fatura eletrónica: eInvoicing - Diretiva 2014/55/EU

Recommended Posts

Pedro Robalo
2 horas atrás, CrominhO disse:

No DX consigo ir um pouquinho mais longe, além de alguns métodos ele cria-me (através do Import do IDE, não testei o import da Linha de comandos do Delphi e sei que há diferenças) 

um Interface

Em todo o caso falta-me o principal -> MessageServiceClient 

que eles têm nos exemplos aqui https://www-qa.netdocs.com.pt/TradeHttpQa/CTMessageService.svc em VB e C#, das duas uma, ou está-me a falhar alguma coisa, ou eles alteraram o código sem alterar os exemplos, é que dá-me a ideia que criaram um ARRAY de "mensagens" ao contrário do que está nos exemplos. Em todo o caso, se alguém puder importar em C# ou VB e meter aqui o resultado era interessante. 

Eu consigo importar corretamente.

Verifica se é isto que pretendias.

 <System.Diagnostics.DebuggerStepThroughAttribute(),
     System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")>
    Partial Public Class MessageServiceClient
        Inherits System.ServiceModel.ClientBase(Of IMessageService)
        Implements IMessageService

        Public Sub New()
            MyBase.New
        End Sub

        Public Sub New(ByVal endpointConfigurationName As String)
            MyBase.New(endpointConfigurationName)
        End Sub

        Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String)
            MyBase.New(endpointConfigurationName, remoteAddress)
        End Sub

        Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As System.ServiceModel.EndpointAddress)
            MyBase.New(endpointConfigurationName, remoteAddress)
        End Sub

        Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, ByVal remoteAddress As System.ServiceModel.EndpointAddress)
            MyBase.New(binding, remoteAddress)
        End Sub

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_ProcessMessage(ByVal request As MessageInputData) As MessageOutputDataContract Implements IMessageService.ProcessMessage
            Return MyBase.Channel.ProcessMessage(request)
        End Function

        Public Function ProcessMessage(ByVal ContentType As String, ByVal Filename As String, ByVal MessageId As String, ByVal Receiver As String, ByVal Sender As String, ByVal Message() As Byte) As System.Collections.Generic.List(Of MessageOutputData)
            Dim inValue As MessageInputData = New MessageInputData()
            inValue.ContentType = ContentType
            inValue.Filename = Filename
            inValue.MessageId = MessageId
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.Message = Message
            Dim retVal As MessageOutputDataContract = CType(Me, IMessageService).ProcessMessage(inValue)
            Return retVal.MessageDataList
        End Function

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_ProcessMessageAsync(ByVal request As MessageInputData) As System.Threading.Tasks.Task(Of MessageOutputDataContract) Implements IMessageService.ProcessMessageAsync
            Return MyBase.Channel.ProcessMessageAsync(request)
        End Function

        Public Function ProcessMessageAsync(ByVal ContentType As String, ByVal Filename As String, ByVal MessageId As String, ByVal Receiver As String, ByVal Sender As String, ByVal Message() As Byte) As System.Threading.Tasks.Task(Of MessageOutputDataContract)
            Dim inValue As MessageInputData = New MessageInputData()
            inValue.ContentType = ContentType
            inValue.Filename = Filename
            inValue.MessageId = MessageId
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.Message = Message
            Return CType(Me, IMessageService).ProcessMessageAsync(inValue)
        End Function

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_GetMessageResultData(ByVal request As MessageInputIdentification) As MessageOutputDataContract Implements IMessageService.GetMessageResultData
            Return MyBase.Channel.GetMessageResultData(request)
        End Function

        Public Function GetMessageResultData(ByVal Receiver As String, ByVal Sender As String, ByVal MessageId As String) As System.Collections.Generic.List(Of MessageOutputData)
            Dim inValue As MessageInputIdentification = New MessageInputIdentification()
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.MessageId = MessageId
            Dim retVal As MessageOutputDataContract = CType(Me, IMessageService).GetMessageResultData(inValue)
            Return retVal.MessageDataList
        End Function

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_GetMessageResultDataAsync(ByVal request As MessageInputIdentification) As System.Threading.Tasks.Task(Of MessageOutputDataContract) Implements IMessageService.GetMessageResultDataAsync
            Return MyBase.Channel.GetMessageResultDataAsync(request)
        End Function

        Public Function GetMessageResultDataAsync(ByVal Receiver As String, ByVal Sender As String, ByVal MessageId As String) As System.Threading.Tasks.Task(Of MessageOutputDataContract)
            Dim inValue As MessageInputIdentification = New MessageInputIdentification()
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.MessageId = MessageId
            Return CType(Me, IMessageService).GetMessageResultDataAsync(inValue)
        End Function

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_GetQueuedMessageIds(ByVal request As MessageInputIdentification) As MessageOutputIdContract Implements IMessageService.GetQueuedMessageIds
            Return MyBase.Channel.GetQueuedMessageIds(request)
        End Function

        Public Function GetQueuedMessageIds(ByVal Receiver As String, ByVal Sender As String, ByVal MessageId As String) As System.Collections.Generic.List(Of MessageOutputIdentification)
            Dim inValue As MessageInputIdentification = New MessageInputIdentification()
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.MessageId = MessageId
            Dim retVal As MessageOutputIdContract = CType(Me, IMessageService).GetQueuedMessageIds(inValue)
            Return retVal.MessageIdList
        End Function

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_GetQueuedMessageIdsAsync(ByVal request As MessageInputIdentification) As System.Threading.Tasks.Task(Of MessageOutputIdContract) Implements IMessageService.GetQueuedMessageIdsAsync
            Return MyBase.Channel.GetQueuedMessageIdsAsync(request)
        End Function

        Public Function GetQueuedMessageIdsAsync(ByVal Receiver As String, ByVal Sender As String, ByVal MessageId As String) As System.Threading.Tasks.Task(Of MessageOutputIdContract)
            Dim inValue As MessageInputIdentification = New MessageInputIdentification()
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.MessageId = MessageId
            Return CType(Me, IMessageService).GetQueuedMessageIdsAsync(inValue)
        End Function

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Sub UBLService_IMessageService_ChangeQueuedToProcessed(ByVal request As MessageInputIdentification) Implements IMessageService.ChangeQueuedToProcessed
            MyBase.Channel.ChangeQueuedToProcessed(request)
        End Sub

        Public Sub ChangeQueuedToProcessed(ByVal Receiver As String, ByVal Sender As String, ByVal MessageId As String)
            Dim inValue As MessageInputIdentification = New MessageInputIdentification()
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.MessageId = MessageId
            CType(Me, IMessageService).ChangeQueuedToProcessed(inValue)
        End Sub

        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>
        Function UBLService_IMessageService_ChangeQueuedToProcessedAsync(ByVal request As MessageInputIdentification) As System.Threading.Tasks.Task Implements IMessageService.ChangeQueuedToProcessedAsync
            Return MyBase.Channel.ChangeQueuedToProcessedAsync(request)
        End Function

        Public Function ChangeQueuedToProcessedAsync(ByVal Receiver As String, ByVal Sender As String, ByVal MessageId As String) As System.Threading.Tasks.Task
            Dim inValue As MessageInputIdentification = New MessageInputIdentification()
            inValue.Receiver = Receiver
            inValue.Sender = Sender
            inValue.MessageId = MessageId
            Return CType(Me, IMessageService).ChangeQueuedToProcessedAsync(inValue)
        End Function
    End Class

 

  • Vote 1

Share this post


Link to post
Share on other sites
Vitor Pereira
2 horas atrás, CrominhO disse:

Eu vou é deixar de meter Info... Não estamos a falar de quadros com 200 paginas que o pessoal nao se lembra, estamos a falar de um tópico com 28 seguidores, de um processo que está a correr, e de info colocada NUMA PÁGINA atrás, se alguém não lê é porque não quer, e se ainda por cima criticam, talvez seja porque não queiram que o pessoal partilhe aqui. 

Concordo plenamente, devemos todos partilhar e ler toda a informação que vamos trocando aqui, pois um pouco de cada um é o melhor caminho para o objetivo final

Também acho que os desabafos em cima da AT, Governo, e outros organismos de nada serve, para alem de sermos nós mesmo a "levar" com os desabafos, no final também teremos de ser nós a conseguir que o e-Invoicing funcione, e vamos conseguir como aconteceu com o SAF-T, Webservice, etc, etc.

Muito embora os valores aqui mencionados vindo supostamente dos Brokers não são reais, e que pode ser uma opção temporária em caso de algum "encravanço", acabaremos todos no final por enviar diretamente via Webservice para o ESPAP

  • Vote 1

Share this post


Link to post
Share on other sites
CrominhO
20 minutos atrás, Pedro Robalo disse:

Eu consigo importar corretamente.

Verifica se é isto que pretendias.(...)

Era isto mesmo Pedro 🙂 Obrigado


As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
CrominhO
9 minutos atrás, chesser disse:

Experimentei agora (só para ver se dava erro) importar o web service (a partir do endereço https://www-qa.netdocs.com.pt/tradehttpQA/CTMessageService.svc?singleWsdl) para o Visual Studio.Net e, usando o exemplo deles em C#, aparentemente funciona tudo bem.

E já agora @chesser, consegues testar com o WB de testes com o exemplo deles ? 


As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
Guru
2 horas atrás, marcolopes disse:

Não é com a SAPHETY que tens de falar... é com o ESPAP!

Verdade marcolopes, e agradeço o teu reparo. Falei com a saphety, pq já contactei a  ESPAP há 3 semanas, por telefone, por e-mail, e hoje novamente por telefone.... e insistem que estão muito atrasados em dar resposta.... é a ansieadade do fim de ano à porta :D

  • Vote 1

Share this post


Link to post
Share on other sites
marcolopes
13 minutes ago, Pedro Robalo said:

Eu consigo importar corretamente.

Verifica se é isto que pretendias.

     Partial Public Class MessageServiceClient
        Inherits System.ServiceModel.ClientBase(Of IMessageService)
        Implements IMessageService

...

Isso mesmo!


The simplest explanation is usually the correct one

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

Share this post


Link to post
Share on other sites
marcolopes
1 hour ago, chesser said:

Compactei os ficheiros gerados pelo VS.Net na importação do web service.

https://www.dropbox.com/s/ljeig6onrmvlhaa/ServiceReference1.zip?dl=0

Pode ser que ajude em alguma coisa.

No meu caso não ajuda... isto tem de compilar devidamente em JAVA, e não está. Nem em Java nem em Delphi, e presumo que outras linguagens. Parece que escreveram o WSDL para ser compilado com o svcutil.exe

EDIT: COMPILADO em JAVA (com WARNINGS)

Quote

[WARNING] SOAP port "CustomBinding_IMessageService": uses a non-standard SOAP 1.2 binding.
  line 373 of file:/CTMessageService.wsdl

[WARNING] Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signaure on the wire for successful dispatch. In port CustomBinding_IMessageService, Operations "GetQueuedMessageIds" and "GetMessageResultData" have the same request body block {http://www.softlimits.com/Clarinet.Trade}MessageId. Method dispatching may fail, runtime will try to dispatch using SOAPAction
  line 373 of file:/CTMessageService.wsdl

[WARNING] Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signaure on the wire for successful dispatch. In port CustomBinding_IMessageService, Operations "ChangeQueuedToProcessed" and "GetMessageResultData" have the same request body block {http://www.softlimits.com/Clarinet.Trade}MessageId. Method dispatching may fail, runtime will try to dispatch using SOAPAction
  line 373 of file:/CTMessageService.wsdl

[WARNING] SOAP port "CustomBinding_IMessageService1": uses a non-standard SOAP 1.2 binding.
  line 379 of file:/CTMessageService.wsdl

[WARNING] Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signaure on the wire for successful dispatch. In port CustomBinding_IMessageService1, Operations "GetQueuedMessageIds" and "GetMessageResultData" have the same request body block {http://www.softlimits.com/Clarinet.Trade}MessageId. Method dispatching may fail, runtime will try to dispatch using SOAPAction
  line 379 of file:/CTMessageService.wsdl

[WARNING] Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signaure on the wire for successful dispatch. In port CustomBinding_IMessageService1, Operations "ChangeQueuedToProcessed" and "GetMessageResultData" have the same request body block {http://www.softlimits.com/Clarinet.Trade}MessageId. Method dispatching may fail, runtime will try to dispatch using SOAPAction
  line 379 of file:/CTMessageService.wsdl

Porque estamos aqui para nos ajudarmos: https://stackoverflow.com/questions/51169947/soap-port-uses-a-non-standard-soap-1-2-binding

Tive de usar o parâmetro -extensions

Quote

wsimport CTMessageService.wsdl -extension -verbose -Xnocompile -s src

 

Edited by marcolopes

The simplest explanation is usually the correct one

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

Share this post


Link to post
Share on other sites
JorgeRocha
1 hora atrás, chesser disse:

Compactei os ficheiros gerados pelo VS.Net na importação do web service.

https://www.dropbox.com/s/ljeig6onrmvlhaa/ServiceReference1.zip?dl=0

Pode ser que ajude em alguma coisa. 

Viva

Estou a utilizar o vb.net, tu importas como um service reference ou fazes como uma web service compatível com o fr 2.0? 

Até hoje só usei os compatível com o .net2 e estou meio verde quando ele me cria um interface, não consigo referenciar..

Share this post


Link to post
Share on other sites
chesser
4 horas atrás, JorgeRocha disse:

Viva

Estou a utilizar o vb.net, tu importas como um service reference ou fazes como uma web service compatível com o fr 2.0? 

Até hoje só usei os compatível com o .net2 e estou meio verde quando ele me cria um interface, não consigo referenciar..

Importo como Service Reference.

Share this post


Link to post
Share on other sites
chesser
6 horas atrás, CrominhO disse:

E já agora @chesser, consegues testar com o WB de testes com o exemplo deles ? 

CrominhO desculpa, mas não consigo perceber o que estás a pedir para testar... também já é um bocado tarde e não vejo nada à minha frente...

Share this post


Link to post
Share on other sites
Pedro Robalo
15 horas atrás, chesser disse:

Experimentei agora (só para ver se dava erro) importar o web service (a partir do endereço https://www-qa.netdocs.com.pt/tradehttpQA/CTMessageService.svc?singleWsdl) para o Visual Studio.Net e, usando o exemplo deles em C#, aparentemente funciona tudo bem.

Boas,

Quando indicas, usando o exemplo deles em C#.

Podes dizer-mos onde encontras-te isso ou que exemplo te referes.

Ou apenas te estas a referir ao exemplo genérico de uma chamada ao webservice?

class Test
{
    static void Main()
    {
        MessageServiceClient client = new MessageServiceClient();

        // Use the 'client' variable to call operations on the service.

        // Always close the client.
        client.Close();
    }
}

Ou ainda não consegui conta de testes.

Já alguém tem uma?

Pois pelo que percebo (e não sei se estou certo) é necessário cada fornecedor contactar a Sophety e efetuar um registo qualquer.

Pois o Método ProcessMessage tem como parâmetros:

Sender - Deverá ser um id que nos é fornecido no registo? (Julgo eu)

Receiver - Ainda não percebi o que se deve colocar aqui (será apenas escolhar um dos valores??? urn:netdocs:ws:prod (para produção) ou urn:netdocs:ws:qa (para qualidade))

Ou será o ID do destinatário? onde podemos consultar estes ID's?

 

E depois passar por um processo de testes.

Edited by Pedro Robalo
Acrescentar texto em falta

Share this post


Link to post
Share on other sites
chesser
2 horas atrás, Pedro Robalo disse:

Ou apenas te estas a referir ao exemplo genérico de uma chamada ao webservice?

Sim, infelizmente apenas tenho isso. E muito honestamente não faço ideia do que fazer para pôr o ProcessMessage a funcionar. Depois de se perceber como isto funciona, não deverá ser muito difícil lidar com as repostas (GetQueuedMessageIds, GetMessageResultData, ChangeQueuedToProcessed).

Um exemplo de todo o processo a funcionar, implementado em qualquer linguagem, seria uma grande ajuda e muito bem-vindo!

 

Já alguém conseguiu obter informações concretas da ESPAP ou da Saphety sobre a implementação?

No manual de comunicações eles dizem que "para estabelecer um canal de comunicações com a plataforma SaphetyDOC terá de previamente entrar em contacto com a Saphety (ver capítulo de contactos)".

Também dizem que "o início do processo EDI pressupõe, da parte de cada fornecedor:
- Registo e identificação da empresa com os dados mínimos para o setup: denominação social, morada da sede, NIF, n.º do registo na conservatória, capital social, email para receção de informação técnica e dados de pessoas de contacto;

-..."

Já alguém recebeu a tal informação técnica?

Eu ainda estou a aguardar a resposta deles, mas ainda deverá demorar, porque só muito recentemente os contactei.

Edited by chesser
  • Vote 1

Share this post


Link to post
Share on other sites
Pedro Robalo
20 minutos atrás, chesser disse:

Sim, infelizmente apenas tenho isso. E muito honestamente não faço ideia do que fazer para pôr o ProcessMessage a funcionar. Depois de se perceber como isto funciona, não deverá ser muito difícil lidar com as repostas (GetQueuedMessageIds, GetMessageResultData, ChangeQueuedToProcessed).

Um exemplo de todo o processo a funcionar, implementado em qualquer linguagem, seria uma grande ajuda e muito bem-vindo!

 

Já alguém conseguiu obter informações concretas da ESPAP ou da Saphety sobre a implementação?

No manual de comunicações eles dizem que "para estabelecer um canal de comunicações com a plataforma SaphetyDOC terá de previamente entrar em contacto com a Saphety (ver capítulo de contactos)".

Também dizem que "o início do processo EDI pressupõe, da parte de cada fornecedor:
- Registo e identificação da empresa com os dados mínimos para o setup: denominação social, morada da sede, NIF, n.º do registo na conservatória, capital social, email para receção de informação técnica e dados de pessoas de contacto;

-..."

Já alguém recebeu a tal informação técnica?

Eu ainda estou a aguardar a resposta deles, mas ainda deverá demorar, porque só muito recentemente os contactei.

Pois eu estou na mesma.

Consigo chamar o serviço e invocar o método ProcessMessage em que passo valores de teste la para dentro.

O resultado é um erro que não estou a passar as credenciais (o que faz sentido porque não as tenho para passar) :P

Também enviei um email para eles mas ainda não obtive resposta.

Share this post


Link to post
Share on other sites
Pedro Robalo
2 minutos atrás, Vitor Pereira disse:

 

Acabei de receber a resposta a ilink:

 

O seu pedido foi recebido e analisado atentamente.

   Ticket ID: 2018121788260
   Assunto: e-Invoicing

Boa tarde Exmo. Sr. Vítor Pereira,

Informamos que a integração com o nosso software iLink é gratuito.
Assim sendo, de forma a podermos disponibilizar a documentação e proceder à criação dos acessos, deverão ,apenas, indicar-nos o nome do Vosso ERP.

Por favor, não hesite em contactar-nos se necessitar de ajuda em mais alguma questão.

Filipa Câmara
ACIN iCloud Solutions Lda

Esta parte é que me faz confusão.

Mas existem várias entidades para receber os ficheiros?!?!?!

Nos escolhemos a que queremos?

O que acontece depois de enviar os ficheiros para uma dessas entidades (iLink, saphety,...)

Pelos vistos com a iLink não terá custos? Conseguiste alguma documentação?

Share this post


Link to post
Share on other sites
jrabasilio

 

11 minutos atrás, Vitor Pereira disse:

 

Acabei de receber a resposta a ilink:

 

O seu pedido foi recebido e analisado atentamente.

   Ticket ID: 2018121788260
   Assunto: e-Invoicing

Boa tarde Exmo. Sr. Vítor Pereira,

Informamos que a integração com o nosso software iLink é gratuito.
Assim sendo, de forma a podermos disponibilizar a documentação e proceder à criação dos acessos, deverão ,apenas, indicar-nos o nome do Vosso ERP.

Por favor, não hesite em contactar-nos se necessitar de ajuda em mais alguma questão.

Filipa Câmara
ACIN iCloud Solutions Lda

 

Aqui a questão é  integração com o nosso software iLink é gratuito , isto é o que ? é só colocar lá os documentos, é colocar e ir buscar ?

Alguém tem de suportar os custos da plataforma, digo eu..

Edited by jrabasilio

Share this post


Link to post
Share on other sites
madmax197610
Em 28/11/2018 às 12:20, chesser disse:

Se alguém usar .NET, o seguinte link poderá ter interesse: https://github.com/UblSharp/UblSharp

Boa tarde,

 

Estou a usar este nuget mas faltam alguns elementos especificos da ESPAP , tais como :

ATCertifiedProgram

ATMPayment

DUCPayment

 

Alguem sabe como complementar/adicionar estes elementos à classe?

Share this post


Link to post
Share on other sites
Vitor Pereira
2 horas atrás, Pedro Robalo disse:

Esta parte é que me faz confusão.

Mas existem várias entidades para receber os ficheiros?!?!?!

Nos escolhemos a que queremos?

O que acontece depois de enviar os ficheiros para uma dessas entidades (iLink, saphety,...)

Pelos vistos com a iLink não terá custos? Conseguiste alguma documentação?

 

Já enviei mail com o Nº da nossa Certificação e pedido de documentação para integração.

De qualquer das formas @jrabasilio já avançou um pouco mais e colocou aqui um Link com a API de integração a ilink  

Tendo mais novidades partilho de imediato

  • Vote 1

Share this post


Link to post
Share on other sites
desconfiado
22 horas atrás, CrominhO disse:

@desconfiado tens o PDF com a estrutura, tens 1 exemplo, tens os endereços dos Webservices de testes e Produção, tens o contrato a dizer entre a AT e a Saphety, logo só AQUELE XML conta... não sei que mais precisas, mas antes de "reclamares"  especialmente comigo que sou dos que mais tenho reclamado com a falta de Informação disto tudo, dá uma vista de olhos em toda a informação que o @marcolopes compilou 😐 ... é só andares 2 paginas para trás e começar a ler 😕 

Até  porque assim, a "reclamar" sem leres o que escrevi e o que o Marco escreveu, tiras-me a vontade de partilhar informação 😕 

CrominhO não te exaltes. Eu não te estava a criticar a ti mas sim esta confusão toda. Não leves isso como critica pessoal.

Mas todo este processo é uma autêntica anedota.

É suposto nós andarmos a "investigar" e a compilar informação dispersa por todo o lado sem sabermos, com certeza, se a informação está correcta sem confirmação oficial?

É obrigação do estado informar, de forma oficial, a comunidade a quem estas alterações legislativas se dirigem. Teoricamente seria a ASSOFT.

E esta coisa do ajuste directo e depois cada entidade publica contratar a Sap... directamente cheira-me claramente a corrupção ás claras. Em vez de contratarem um serviço completo que depois seria disponibilizado ás entidades publicas de forma gratuita, não. Ajusta-se directamente o portal, porque o valor sendo baixo não está sujeito a concurso, e depois distribui-se o restante custo pelas outras entidades publicas. Começo a ficar cansado destes esquemas de corrupção publica. Mas isso é outro tema...

 

Share this post


Link to post
Share on other sites
Pedro Robalo
1 hora atrás, madmax197610 disse:

Boa tarde,

 

Estou a usar este nuget mas faltam alguns elementos especificos da ESPAP , tais como :

ATCertifiedProgram

ATMPayment

DUCPayment

 

Alguem sabe como complementar/adicionar estes elementos à classe?

Tens de usar o XSD da eSPap  para gerar as classes ou então escrever tu as classes.

Esses projeto é com base do UBL 2.1 Genérico.

  • Vote 1

Share this post


Link to post
Share on other sites
Pedro Robalo
47 minutos atrás, Vitor Pereira disse:

 

Resposta da ilink:

 

Boa tarde,
Seguem os acessos e a documentação necessária da API para a integração com o iLINK:

O iLink dispõem de uma API que permite a integração com diferentes ERP's e softwares de faturação. A API tem métodos HTTP para enviar e/ou obter documentos de faturação do iLink. Os acessos, a documentação da API e o ambiente de testes do iLink, são os seguintes: 

Informação da API do iLINK:

URL API:                            https://ilink.acin.pt/ilinktests-api/api/
URL documentação API:  https://ilink.acin.pt/ilinktests-api/apidoc/
Authorization (Token):      7ZyvFkgw5URLnKW4kijDSYpkoUJdaBHOCQeSHH3M2YLSmvXFHIK586TZEr3P3NRjVHiDWqLNywAM2RJbmljypywEK5xH5VTlc02VzaW89v7VHsm5s76CyOtJ

Informação da entidade de testes:

Entity key:  vnM77KuciahPXTs7XEHsdS0Xy5wpJdRyDm5Pqrl55AEtOvX2BHYKKQjUz00Fhb1I2ibLnKHXvCDaqYY2
Entity NIF:  508448263

Informação da plataforma de testes do iLINK:
URL:              https://ilink.acin.pt/ilinktests/pt/#/main
Email:            userctg@teste.com
Password:    ilink2018

Segue-se em anexo o manual de funcionamento do iLink e um exemplo de integração entre o iLink e um software de faturacão.
 

NOTA IMPORTANTE: Todos os acessos disponibilizados anteriormente são de testes. Só serão facultados os acessos de produção mediante uma validação e aprovação por parte do nosso departamento de desenvolvimento de software. Após terminados os desenvolvimentos para a integração do vosso software com a plataforma iLink, e para que seja feita uma validação e aprovação, deverão ser disponibilizados acessos do vosso ambiente de testes.


Por favor, não hesite em contactar-nos se necessitar de ajuda em mais alguma questão.

Filipa Câmara
ACIN iCloud Solutions Lda

Excelente!

E obrigado pela partilha dos dados de acesso.

A Informação é bastante interessante.

Já tive a ver o portal e continuo na mesma.

Ainda não percebi o conceito.

Para que raio serve por os ficheiros na iLink ou em outro lado qualquer?

E ter um portal para ver os documentos, com gráficos e totais?

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.