Jump to content
desconfiado

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

Recommended Posts

CrominhO
8 horas atrás, Vitor Pereira disse:

 

Ótimo, qualquer duvida estou ai

Já meti Online @Vitor Pereira

http://www.portugal-heat.com/pap/APISender.rar
 http://www.portugal-heat.com/pap/Encryptor.rar

O @brunotoira também tinha código em Delphi, se eu achar actualizo, e o @nunopicado salvo erro tb tinha feito uma DLL depois meto.

  • Vote 1

As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
nunopicado
3 horas atrás, CrominhO disse:

(...) @nunopicado salvo erro tb tinha feito uma DLL depois meto.

https://github.com/nunopicado/AtWS

 

  • Vote 2

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
nunopicado
5 minutos atrás, marcolopes disse:

WS de quê? O que é que os Webservices da AT têm a ver com isto? :D

Faturas e Doc. de Transporte! Nunca testei com mais nada! :P


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
marcolopes
10 minutes ago, nunopicado said:

Faturas e Doc. de Transporte! Nunca testei com mais nada! :P

Já agora, quem quiser o serviço da ESPAP em JAVA, têm aqui o meu: https://github.com/marcolopes/dma/tree/master/org.dma.services.espap

TESTES: https://github.com/marcolopes/dma/blob/master/org.dma.services.espap/src/org/dma/services/espap/test/CTMessageServiceTest.java

  • Vote 2

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

https://www.moloni.pt/suporte/index.php?action=getFaqDetail&id=867

Entra em vigor em 2019, através do Decreto-Lei nº 111-B/2017, o novo Código de Contratação Pública da qual a Diretiva Europeia 2014/55/UE é parte integrante.

A nova forma de contratação pública torna obrigatória a emissão de faturas eletrónicas para empresas que trabalham com organismos públicos.
Esta alteração, assume-se como uma transformação digital em termos funcionais e processuais, tornando todo o processo de faturação mais eficiente, transparente e fiável.

O QUE É O EDI?

O Eletronic Data Interchange tem como finalidade constituir-se como um standard de troca de dados entre entidades envolvidas no processo de faturação, que permitam a formatação de dados a partir da própria emissão de documentos tornando-os transmissíveis e decodificáveis por parte dos recetores, com a menor intervenção humana possível.

Em Portugal o EDI já é utilizado por alguns agentes económicos, maioritariamente empresas ligadas ao grande consumo e ao retalho, que através de codificações específicas asseguram os seus processos de faturação com outras empresas.

Não existe um sistema universal de EDI mas sim vários standards de codificação. Neste caso, a contratação pública irá ter um standard específico para a sua comunicação de documentos.

QUAIS SÃO OS PRAZOS PARA IMPLEMENTAÇÃO DO EDI?

Considerando a complexidade do processo de transformação digital e de implementação de faturação electrónica, especialmente para pequenas e médias empresas, o Decreto-Lei nº 123/2018 de 28 de Dezembro 2018, veio definir na legislação nacional os prazos limite para implementação do EDI. Dependendo do tipo de organismo público, os prazos podem ser diferentes:

Administração Pública 

18 de Abril de 2019

Estado e Institutos Públicos

18 de Abril de 2020

Regiões Autónomas; Autarquias locais; Entidades administrativas independentes; Banco de Portugal; Fundações públicas; Associações públicas e Associações de que façam parte uma ou várias das pessoas coletivas referidas anteriormente, desde que sejam maioritariamente financiadas por estas, estejam sujeitas ao seu controlo de gestão ou tenham um órgão de administração, de direção ou de fiscalização cuja maioria dos titulares seja, direta ou indiretamente, designada pelas mesmas. 

Sector Privado 

17 de Abril de 2020

Empresas cocontratantes de grande dimensão

31 de Dezembro 2020

Empresas cocontratantes de micro, pequena e média dimensão

Para mais detalhes poderá consultar o Artigo 9º do Decreto-Lei nº 123/2018, disponível para descarregar no link no final deste artigo.

As empresas e entidades, que utilizem mecanismos de faturação diferentes dos previstos no Código dos Contratos Públicos, até ao fim dos prazos mencionados, não podem ser excluídos ou de qualquer forma discriminados pela Administração Pública no âmbito dos seus procedimentos concursais.

OUTROS DADOS RELEVANTES SOBRE O EDI

A Entidade de Serviços Partilhados da Administração Pública, I.P. (eSPap, I.P.) será a entidade que irá garantir a coordenação de todo o processo de implementação da faturação eletrónica para as entidades públicas referidas, bem como desenvolver os mecanismos de suporte necessários para a Administração Pública.

Deste modo, esta entidade irá assegurar a receção e processamento de todas as faturas eletrónicas remetidas para a Administração Pública.


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
CCoutinho
Em 28/12/2018 às 00:42, JorgeRocha disse:

Viva

Pensei que o problema era meu, corri o codigo de uma ponta a outra e não descobri o problema.

De qualquer maneira ainda vou andar as voltas se por acaso descobrires alguma coisa manda-me um pm viste sermos só os 2 a termos este problema...

Olá.

Estou também a ter erro no validador. A título de informação, tentei validar usando o trial do XMLSpy e deu o mesmo erro. O que este programa me sugere (hint) é:

Element <eac:AccountingSupplierParty> is in namespace 'urn:espap:names:specification:ubl:schema:xsd:AggregateComponents-2', but a correspondent element from namespace 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2' would be permitted.

Parece-me vir da ambiguidade na definição do schema da parte da Espap, de algum modo, o elemento em questão tem 2 estruturas diferentes nos namespaces usados.

Já tentei por exemplo validar no mesmo programa o exemplo da ACSS tendo por base o XSD desta entidade e não deu qualquer erro, ou seja, confirma que o problema possa vir do Xsd da Espap.

 

Share this post


Link to post
Share on other sites
pauloalves75
On 12/20/2018 at 3:46 PM, cristina said:

Estou a usar o xmlcopyeditor (https://sourceforge.net/projects/xml-copy-editor/) e associo o xsd que a espap disponibilizou

Associei o XSD "UBL-eSPap-Invoice-2.1.xsd" mas dá-me sempre o erro "UBL-eSPap-Invoice-2.1.xsd" apesar do tag estar presente. Está a validar bem o teu xml contra o xsd?

Share this post


Link to post
Share on other sites
marcolopes

Ponto da situação?

Vão aguardar pela lei?

Vão criar uma exportação UBL (standard e ESPAP, ou apenas ESPAP?)

Vão embeber o XML nos PDF (quem quiser tem acesso, quem não quiser não tem?)


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
nunopicado
5 horas atrás, marcolopes disse:

Ponto da situação?

Vão aguardar pela lei?

Vão criar uma exportação UBL (standard e ESPAP, ou apenas ESPAP?)

Vão embeber o XML nos PDF (quem quiser tem acesso, quem não quiser não tem?)

Sim, não e não...
Enquanto a lei não estiver oficializada e bem explicada, não mexo uma palha!


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
JorgeRocha
6 horas atrás, marcolopes disse:

Ponto da situação?

Vão aguardar pela lei?

Vão criar uma exportação UBL (standard e ESPAP, ou apenas ESPAP?)

Vão embeber o XML nos PDF (quem quiser tem acesso, quem não quiser não tem?)

Boas, 

ainda bem que alguem volta a carga...

Estou a espera de mais novidades, no meu caso alguns clientes (estado) comunicaram que estariam a aguardar depois da confusão entre para onde se manda e qual o formato.

Mas eu só fiz o xml especificado pelo espap.

Essa de embeber o xml nos pdf é fixe não tinha pensado nisso.. como isso se faz ?

Jorge Rocha

Share this post


Link to post
Share on other sites
beinto
2 horas atrás, JorgeRocha disse:

Boas, 

ainda bem que alguem volta a carga...

Estou a espera de mais novidades, no meu caso alguns clientes (estado) comunicaram que estariam a aguardar depois da confusão entre para onde se manda e qual o formato.

Mas eu só fiz o xml especificado pelo espap.

Essa de embeber o xml nos pdf é fixe não tinha pensado nisso.. como isso se faz ?

Jorge Rocha

Acho que queria dizer pdf no xml tens de adicionar no campo <eac:OriginatorDocumentReference>
        <cbc:ID>48 2018/1</cbc:ID>
        <cac:Attachment>
            <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf">JVBERi0xLj...DCDw/z8AmWsJwAplbmRzdHJlYW0KZW5kb2JqCnN0YXJ0eHJlZgoyMjE3NQolJUVPRgo=</cbc:EmbeddedDocumentBinaryObject>
        </cac:Attachment>
    </eac:OriginatorDocumentReference>

Share this post


Link to post
Share on other sites
md mad

Boas!

Em primeiro lugar, em relação a embeber o XML nos pdf's não me parece que faça muito sentido, será talvez o contrário.

Aliás, na especificação UBL 2.1 permite isso mesmo:

<Invoice

xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"

xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

...

</Invoice>

 

tag antes de <cac:AccountingSupplierParty>

<cac:AdditionalDocumentReference>
<cbc:ID>1</cbc:ID>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject encodingCode="Base64" mimeCode="application/pdf">JVBERi0xLjIKJdDExrTOxdSghIKAgAox....</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>

No meu caso estou a embeber um pdf assinado no xml.

Agora, gostava de perceber o seguinte:

No manual da eSpap fala de assinaturas digitais no xml das facturas, mas confesso que estou um bocado às aranhas!

No caso da iLink (norma UBL2.1 com extensões deles), esta assinatura é feita numa tag <UBLExtensions> que é colocada logo no princípio do documento. Pontapé de um lado, pontapé do outro, la consegui fazer a assinatura e valida-la.

Já agora, fica com este aspecto:

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 
         xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
  <ext:UBLExtensions>
    <ext:UBLExtension xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2">
      <ext:ExtensionContent>
        <sig:UBLDocumentSignatures>
          <sac:SignatureInformation>
            <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
              <SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
                <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                <Reference URI="">
                  <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                  </Transforms>
                  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                  <DigestValue>cTXfpY7L8mB+RObPWNftCmjPw4g=</DigestValue>
                </Reference>
              </SignedInfo>
              <SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">IEVJEYx ...=</SignatureValue>
              <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <KeyValue>
                  <RSAKeyValue>
                    <Modulus>1S8hIYiRgSCH5i22M...=</Modulus>
                    <Exponent>AQAB</Exponent>
                  </RSAKeyValue>
                </KeyValue>
                <X509Data>
                  <X509IssuerSerial>
                    <X509IssuerName>E=info@nome.pt, CN="Nome, Lda.", OU=DEP. Prog, O=Nome Lda., L=Localidade, S=Provincia, C=PT</X509IssuerName>
                    <X509SerialNumber>123456789000</X509SerialNumber>
                  </X509IssuerSerial>
                  <X509SubjectName>E=info@nome.pt, CN="Nome, Lda.", OU=DEP. Prog, O=Nome Lda., L=Localidade, S=Provincia, C=PT</X509SubjectName>
                  <X509Certificate>MIIG...</X509Certificate>
                </X509Data>
              </KeyInfo>
            </dsig:Signature>
          </sac:SignatureInformation>
        </sig:UBLDocumentSignatures>
      </ext:ExtensionContent>
    </ext:UBLExtension>
  </ext:UBLExtensions>
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  ...
</Invoice>

O problema é que no schema UBL-eSPap-Invoice-2.1.xsd não são permitidas estas extensões e não consigo perceber como compor esta assinatura numa tag que existe antes do AccountingSupplierParty mas que não respeita a estrutura do XMLDsig normal (inclusivamente pede um ID) ou então eu não estou realmente a perceber.

Já alguém aqui conseguiu assinar um destes documentos para a eSpap com sucesso?

Se sim, pode descrever o processo e colocar um exemplo?

Melhores cumprimentos!

Edited by md mad

Share this post


Link to post
Share on other sites
beinto
15 horas atrás, md mad disse:

Boas!

Em primeiro lugar, em relação a embeber o XML nos pdf's não me parece que faça muito sentido, será talvez o contrário.

Aliás, na especificação UBL 2.1 permite isso mesmo:

<Invoice

xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"

xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

...

</Invoice>

 

tag antes de <cac:AccountingSupplierParty>

<cac:AdditionalDocumentReference>
<cbc:ID>1</cbc:ID>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject encodingCode="Base64" mimeCode="application/pdf">JVBERi0xLjIKJdDExrTOxdSghIKAgAox....</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>

No meu caso estou a embeber um pdf assinado no xml.

Agora, gostava de perceber o seguinte:

No manual da eSpap fala de assinaturas digitais no xml das facturas, mas confesso que estou um bocado às aranhas!

No caso da iLink (norma UBL2.1 com extensões deles), esta assinatura é feita numa tag <UBLExtensions> que é colocada logo no princípio do documento. Pontapé de um lado, pontapé do outro, la consegui fazer a assinatura e valida-la.

Já agora, fica com este aspecto:


<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 
         xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
  <ext:UBLExtensions>
    <ext:UBLExtension xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2">
      <ext:ExtensionContent>
        <sig:UBLDocumentSignatures>
          <sac:SignatureInformation>
            <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
              <SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
                <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                <Reference URI="">
                  <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                  </Transforms>
                  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                  <DigestValue>cTXfpY7L8mB+RObPWNftCmjPw4g=</DigestValue>
                </Reference>
              </SignedInfo>
              <SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">IEVJEYx ...=</SignatureValue>
              <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <KeyValue>
                  <RSAKeyValue>
                    <Modulus>1S8hIYiRgSCH5i22M...=</Modulus>
                    <Exponent>AQAB</Exponent>
                  </RSAKeyValue>
                </KeyValue>
                <X509Data>
                  <X509IssuerSerial>
                    <X509IssuerName>E=info@nome.pt, CN="Nome, Lda.", OU=DEP. Prog, O=Nome Lda., L=Localidade, S=Provincia, C=PT</X509IssuerName>
                    <X509SerialNumber>123456789000</X509SerialNumber>
                  </X509IssuerSerial>
                  <X509SubjectName>E=info@nome.pt, CN="Nome, Lda.", OU=DEP. Prog, O=Nome Lda., L=Localidade, S=Provincia, C=PT</X509SubjectName>
                  <X509Certificate>MIIG...</X509Certificate>
                </X509Data>
              </KeyInfo>
            </dsig:Signature>
          </sac:SignatureInformation>
        </sig:UBLDocumentSignatures>
      </ext:ExtensionContent>
    </ext:UBLExtension>
  </ext:UBLExtensions>
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  ...
</Invoice>

O problema é que no schema UBL-eSPap-Invoice-2.1.xsd não são permitidas estas extensões e não consigo perceber como compor esta assinatura numa tag que existe antes do AccountingSupplierParty mas que não respeita a estrutura do XMLDsig normal (inclusivamente pede um ID) ou então eu não estou realmente a perceber.

Já alguém aqui conseguiu assinar um destes documentos para a eSpap com sucesso?

Se sim, pode descrever o processo e colocar um exemplo?

Melhores cumprimentos!

Também me apercebi disso depois de ter feito a assinatura dessa maneira. Até parece que a empresa aguas de portugal especifica a assinatura dessa maneira.

Mas segundo a especificação da espap existe outro campo para isso. E em termos de id também não se percebe o que se deve colocar.

Se alguém souber mais alguma coisa agradeço a informação.

Já agora relativamente a descontos e encargos na especificação UBL dizem que usam o true e false para especificar o tipo, mas no espap falam em A e C no reason.

Que é que estão a usar?

Share this post


Link to post
Share on other sites
CrominhO

Cada vez percebo menos disto 😕 

Este Decreto-Lei determina, ainda, as datas de início da obrigatoriedade de emissão, receção e processamento de faturas eletrónicas, no âmbito da contratação pública. Assim, as entidades públicas são obrigadas a receber e processar faturas eletrónicas a partir de:

18 de abril de 2019, para contraentes públicos pertencentes ao Estado (Administração Direta e Órgãos de Soberania) e Institutos Públicos;

18 de abril de 2020, para os restantes contraentes públicos referidos no artigo 3.º do Código dos Contratos Públicos (CCP): Regiões Autónomas; autarquias locais; entidades administrativas independentes; Banco de Portugal; fundações públicas; associações públicas; e outras entidades abrangidas.

Os fornecedores da Administração Pública são obrigados a emitir faturas eletrónicas, no âmbito dos contratos públicos, a partir de:

18 de abril de 2020, para as grandes empresas;

1 de janeiro de 2021, para as micro, pequenas e médias empresas e para as entidades públicas enquanto entidades cocontratantes.

Fonte eSPap, 

estou enganado ou os Fornecedores do Estado, que nao sejam Estado, só estão obrigado a partir de 18 de abril de 2020 ? 😕 

 


As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
marcolopes
12 minutes ago, CrominhO said:

Cada vez percebo menos disto 😕 


Este Decreto-Lei determina, ainda, as datas de início da obrigatoriedade de emissão, receção e processamento de faturas eletrónicas, no âmbito da contratação pública. Assim, as entidades públicas são obrigadas a receber e processar faturas eletrónicas a partir de:

18 de abril de 2019, para contraentes públicos pertencentes ao Estado (Administração Direta e Órgãos de Soberania) e Institutos Públicos;

18 de abril de 2020, para os restantes contraentes públicos referidos no artigo 3.º do Código dos Contratos Públicos (CCP): Regiões Autónomas; autarquias locais; entidades administrativas independentes; Banco de Portugal; fundações públicas; associações públicas; e outras entidades abrangidas.

Os fornecedores da Administração Pública são obrigados a emitir faturas eletrónicas, no âmbito dos contratos públicos, a partir de:

18 de abril de 2020, para as grandes empresas;

1 de janeiro de 2021, para as micro, pequenas e médias empresas e para as entidades públicas enquanto entidades cocontratantes.

Fonte eSPap, 

estou enganado ou os Fornecedores do Estado, que nao sejam Estado, só estão obrigado a partir de 18 de abril de 2020 ? 😕 

 

Está bem explícito...

18 de abril de 2020, para as grandes empresas; 1 de janeiro de 2021, para as micro, pequenas e médias empresas e para as entidades públicas enquanto entidades cocontratantes.

Qual é o LINK da fonte desta informação?

  • Vote 1

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
chesser
9 horas atrás, marcolopes disse:

Está bem explícito...

18 de abril de 2020, para as grandes empresas; 1 de janeiro de 2021, para as micro, pequenas e médias empresas e para as entidades públicas enquanto entidades cocontratantes.

Qual é o LINK da fonte desta informação? 

https://www.espap.gov.pt/noticias/Paginas/noticia.aspx?nid=1600

https://www.sgeconomia.gov.pt/destaques/espap-fatura-eletronica-na-administracao-publica-span-classnovo-novospan.aspx

Edited by chesser
  • Vote 1

Share this post


Link to post
Share on other sites
CrominhO
13 horas atrás, marcolopes disse:

Está bem explícito...

18 de abril de 2020, para as grandes empresas; 1 de janeiro de 2021, para as micro, pequenas e médias empresas e para as entidades públicas enquanto entidades cocontratantes.

Qual é o LINK da fonte desta informação?

@chesser ja colocou os dois 🙂 

Mas ainda tenho outra duvida... Como fazer a nível de contabilidade?... Ou seja, os nossos clientes (fornecedores do estado) enviam em XML UBL eSPap, o que é que depois enviam para a contabilidade para lançar esse documento?? o mesmo XML?? 😕 

 

Edited by CrominhO

As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
jrabasilio
Em 22/01/2019 às 17:19, md mad disse:

Boas!

Em primeiro lugar, em relação a embeber o XML nos pdf's não me parece que faça muito sentido, será talvez o contrário.

Aliás, na especificação UBL 2.1 permite isso mesmo:

<Invoice

xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"

xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

...

</Invoice>

 

tag antes de <cac:AccountingSupplierParty>

<cac:AdditionalDocumentReference>
<cbc:ID>1</cbc:ID>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject encodingCode="Base64" mimeCode="application/pdf">JVBERi0xLjIKJdDExrTOxdSghIKAgAox....</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>

No meu caso estou a embeber um pdf assinado no xml.

Agora, gostava de perceber o seguinte:

No manual da eSpap fala de assinaturas digitais no xml das facturas, mas confesso que estou um bocado às aranhas!

No caso da iLink (norma UBL2.1 com extensões deles), esta assinatura é feita numa tag <UBLExtensions> que é colocada logo no princípio do documento. Pontapé de um lado, pontapé do outro, la consegui fazer a assinatura e valida-la.

Já agora, fica com este aspecto:


<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 
         xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
  <ext:UBLExtensions>
    <ext:UBLExtension xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2">
      <ext:ExtensionContent>
        <sig:UBLDocumentSignatures>
          <sac:SignatureInformation>
            <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
              <SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
                <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                <Reference URI="">
                  <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                  </Transforms>
                  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                  <DigestValue>cTXfpY7L8mB+RObPWNftCmjPw4g=</DigestValue>
                </Reference>
              </SignedInfo>
              <SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">IEVJEYx ...=</SignatureValue>
              <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <KeyValue>
                  <RSAKeyValue>
                    <Modulus>1S8hIYiRgSCH5i22M...=</Modulus>
                    <Exponent>AQAB</Exponent>
                  </RSAKeyValue>
                </KeyValue>
                <X509Data>
                  <X509IssuerSerial>
                    <X509IssuerName>E=info@nome.pt, CN="Nome, Lda.", OU=DEP. Prog, O=Nome Lda., L=Localidade, S=Provincia, C=PT</X509IssuerName>
                    <X509SerialNumber>123456789000</X509SerialNumber>
                  </X509IssuerSerial>
                  <X509SubjectName>E=info@nome.pt, CN="Nome, Lda.", OU=DEP. Prog, O=Nome Lda., L=Localidade, S=Provincia, C=PT</X509SubjectName>
                  <X509Certificate>MIIG...</X509Certificate>
                </X509Data>
              </KeyInfo>
            </dsig:Signature>
          </sac:SignatureInformation>
        </sig:UBLDocumentSignatures>
      </ext:ExtensionContent>
    </ext:UBLExtension>
  </ext:UBLExtensions>
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  ...
</Invoice>

O problema é que no schema UBL-eSPap-Invoice-2.1.xsd não são permitidas estas extensões e não consigo perceber como compor esta assinatura numa tag que existe antes do AccountingSupplierParty mas que não respeita a estrutura do XMLDsig normal (inclusivamente pede um ID) ou então eu não estou realmente a perceber.

Já alguém aqui conseguiu assinar um destes documentos para a eSpap com sucesso?

Se sim, pode descrever o processo e colocar um exemplo?

Melhores cumprimentos!

 

Boas, 

Quanto ao xsd do ilink não vejo nada na documentação deles, tens os xsd do ilink ?

Edited by jrabasilio

Share this post


Link to post
Share on other sites
md mad
On 2/5/2019 at 11:48 AM, jrabasilio said:

 

Boas,

Quanto ao xsd do ilink não vejo nada na documentação deles, tens os xsd do ilink ?

Boas.

Utilizei o xsd da norma ubl base e através dos exemplos deles vi que eles implementam algumas extensões, que implementei em cima da norma UBL normal.

Cumprimentos,

Md

Share this post


Link to post
Share on other sites
jrabasilio
1 hora atrás, md mad disse:

Boas.

Utilizei o xsd da norma ubl base e através dos exemplos deles vi que eles implementam algumas extensões, que implementei em cima da norma UBL normal.

Cumprimentos,

Md

Alteras-te o xsd do ubl base ? 

Sim, eles têm mais umas tag de compromisso, cabimento etc ...

Não queria estar a mexer no xsd base para incluir isso, preferia ter o xsd deles para gerar as minhas classes.

 

Obrigado

Share this post


Link to post
Share on other sites
laboss

Viva pessoal, alguém conseguiu gerar as classes para c# apartir do XSD da espap? Já tentei de tudo no XSD.exe mas não ta facil....

Share this post


Link to post
Share on other sites
md mad
1 hour ago, jrabasilio said:

Alteras-te o xsd do ubl base ?

Sim, eles têm mais umas tag de compromisso, cabimento etc ...

Não queria estar a mexer no xsd base para incluir isso, preferia ter o xsd deles para gerar as minhas classes.

 

Obrigado

Boas

Não alterei o xsd. 

Podes sempre alterar o xml depois de estar de acordo com a norma ubl e depois inseres os elementos e as extensões que são necessárias.

Cumprimentos.

Share this post


Link to post
Share on other sites
kalin
8 horas atrás, laboss disse:

Viva pessoal, alguém conseguiu gerar as classes para c# apartir do XSD da espap? Já tentei de tudo no XSD.exe mas não ta facil....

É preciso adicionar todas as referências, eu utilizei um ficheiro de configuração porque colocar tudo na linha de comandos dá para trocar os olhos.

O ficheiro que utilizei foi este, podes adicionar as referências que a especificação precise:

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateClasses language='CS' namespace='SolRIA'>
    <schema>common/CCTS_CCT_SchemaModule-2.1.xsd</schema>
    <schema>common/UBL-CommonAggregateComponents-2.1.xsd</schema>
    <schema>common/UBL-CommonBasicComponents-2.1.xsd</schema>
    <schema>common/UBL-CommonExtensionComponents-2.1.xsd</schema>
    <schema>common/UBL-CommonSignatureComponents-2.1.xsd</schema>
    <schema>common/UBL-CoreComponentParameters-2.1.xsd</schema>
    <schema>common/UBL-ExtensionContentDataType-2.1.xsd</schema>
    <schema>common/UBL-QualifiedDataTypes-2.1.xsd</schema>
    <schema>common/UBL-SignatureAggregateComponents-2.1.xsd</schema>
    <schema>common/UBL-SignatureBasicComponents-2.1.xsd</schema>
    <schema>common/UBL-UnqualifiedDataTypes-2.1.xsd</schema>
    <schema>common/UBL-XAdESv132-2.1.xsd</schema>
    <schema>common/UBL-XAdESv141-2.1.xsd</schema>
    <schema>common/UBL-xmldsig-core-schema-2.1.xsd</schema>
    <schema>espap-common/UBL-eSPap-AggregateComponents-2.1.xsd</schema>
    <schema>espap-common/UBL-eSPap-BasicComponents-2.1.xsd</schema>
    <schema>maindoc/UBL-eSPap-CreditNote-2.1.xsd</schema>
    <schema>maindoc/UBL-eSPap-DebitNote-2.1.xsd</schema>
    <schema>maindoc/UBL-eSPap-DocumentStatus-2.1.xsd</schema>
    <schema>maindoc/UBL-eSPap-Invoice-2.1.xsd</schema>
</generateClasses>
</xsd>

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.