[Slovensko]
 

Gama System® eTaxes SDK. eTaxes simplified.



Gama System eTaxes SDK development framework enables simple connectivity, depositing, reading and management of tax documents from edavki.durs.si tax system.

Framework is intended for business solution development, which needs integration of sending, reading and management of tax and other documents supported by Tax Administration of the Republic of Slovenia.

Current version: 1.0.6.08

For access to Gama System® eTaxes SDK email us at:


Supported Functionalities

General Properties:
  • Writing and reading of any tax document
  • Sending, reading, saving, depositing documents
  • Intuitive, hierarchical object model
  • Strongly typed access to document properties
  • Simple communication with the tax system
  • Support for digital signatures
  • Smart card support
  • Certificate support
  • Classes ETaxes, DursDocument, DursDocumentHeader, DursDocumentBody, DursDocumentSignature

Communication:
  • Checking documents
  • Calculating documents
  • Saving documents
  • Depositing documents
  • Document list access
  • Document errors access
  • Login, logout

Cryptography:
  • Digital signing of documents
  • Checking digital signature validity of new documents
  • Checking digital signature validity of retrieved documents
  • Checking client signatures, server signatures, timestamp signatures
  • Chekcing client certificate validity, server certificate validity, timestamp certificate validity
  • Access to public keys of client certificate, server certificate, timestamp certificate
  • Certificate chain checking
Technical Details

Document Serialization:
  • Document header
  • Document body
  • Digital signatures
  • Strongly typed access to document header properties
  • Strongly typed access to document body properties
  • Editing document contents
  • Adding / editing / deleting document elements and attributes
  • Dynamic serialization to System.Xml.Linq.XDocument, System.XmlDocument, System.String.

Document Deserialization:
  • Reading of arbitrary tax document from XML representation
  • Reading of arbitrary tax document from local file
  • Reading of arbitrary tax document from stream
  • Document header
  • Document body
  • Digital signatures
  • Certificates
  • Dynamic deserialization from System.Xml.Linq.XDocument, System.XmlDocument, System.String.

Technologies:
  • Microsoft Visual Studio 2008
  • Microsoft .NET Framework 3.5 SP1
  • System.Xml (DOM document access)
  • System.Xml.Linq (LINQ to XML)
  • System.ServiceModel (Windows Communication Foundation)
  • System.Security.Cryptography (Digital signatures, certificates)
  • System.Security.Cryptography.Xml (XML Signature)


Architecture

Diagram: Solution Positioning


Object Model

Base Classes:
  • Tax document: DursDocument
  • Tax document header: DursDocumentHeader
  • Tax document body: DursDocumentBody
  • Tax document digital signature: DursDocumentSignature
Supporting Classes:
  • Certificate support: LocalCertificate
  • Communication support: ETaxes
  • Taxpayer: Taxpayer
  • Tax number: TaxNumber
  • Subtypes: DursDocumentType, DursDocumentDomain, DursDocumentDisplayData, EndpointType, LoginType, TaxpayerType, DursDocumentSignatureType
Object model allows access to all tax document properties, sending, retrieving, digital signing and checking of documents.

Diagram: Object Model


Samples

Certificate Selection:
  • Enables client certificate selection. Options are: directly from store, specific store with search criteria, smart card and selection window

    X509Certificate2 cert = LocalCertificate.GetCertificate(X509FindType.FindBySubjectName, "12345678");
Login, Logout:
  • Enables login / logout from edavki.durs.si

    DursCommunicator dc = new DursCommunicator(EndpointType.TestEndpoint, LoginType.ClientLogin);
    dc.Login(new TaxNumber("12345678"), TaxpayerType.Company);
    dc.Logout();
Document Creation:
  • Enables strongly typed tax document creation

    DursDocumentHeader header = new DursDocumentHeader(new TaxNumber("12345678"), TaxpayerType.Person);
    DursDocumentBody body = new DursDocumentBody(
      new XDocument(
        new XElement("OPSVZ",
          new XElement("DocumentWorkflowID", "O"),
          new XElement("F001", "2009-04-01"),
          new XElement("F001a", "2009-04-30")
        )));
    DursDocument document = new DursDocument(new Uri(StringLiterals.OPSVZElementNamespace), header, body);
Document Header Access:
  • Enables document header access, formatting of tax document header, definition of taxpayer

    DursDocumentHeader header = new DursDocumentHeader(new TaxNumber("12345678"), TaxpayerType.Company);
    header.TaxpayerName = "Janez Novak";
    header.TaxpayerAddress1 = "Tehnološki park Ljubljana";
    header.TaxpayerAddress2 = "Pot za Brdom 100";
Document Body Access:
  • Enables document body access

    DursDocument document = new DursDocument();
    DursDocumentBody body = new DursDocumentBody();

    body.AppendChildElement(null, new XElement("root", new XElement("sub")));
    body.AppendChildElement("/root", "subs", null);
    body.AppendChildElement("/root/subs", "sub1", "1");
    body.AppendChildElement("/root/subs", "sub2", "2");
    body.AppendElement("/root/subs", "subs2", "another sub");
    body.DeleteElement("/root/subs/sub2");
    body.UpdateElement("/root/subs/sub1", "1.2");

    document.Body = body;
Digital Signature:
  • Digitally signs a document with conformant signature

    DursDocument document = new DursDocument();
    document.Sign(DursDocumentDomain.ProductionDomain,
        cert, DursDocumentSignatureType.Depositor);
Depositing Document:
  • Enables document signature and depositing

    // generate document
    DursDocument document = new DursDocument();

    // update and calculate document
    et.UpdateDocumentData(document);
    et.CalculateDocumentData(document);

    // sign document
    document.Sign(DursDocumentDomain.ProductionDomain,
        cert, DursDocumentSignatureType.Depositor);

    // deposit document
    string docId = et.DepositDocument(document, true);
Reading Documents, Signature, Certificate Checking:
  • Enables document reading, checking of document signatures and certificate validity

    DursDocument document = new DursDocument(@"C:\Taxes\Doh_KDVP_EDP-12345678-123-povr.xml");
    DursDocumentBody body = document.Body;
    DursDocumentHeader header = document.Header;
    DursDocumentSignature sig = document.Signature;
    bool sigsValid = document.CheckAllSignatures();
    bool certsValid = document.CheckAllCertificates();
    Console.Write(document.AsString);
 

  [Slovensko] System requirements: Microsoft .NET Framework 3.5 SP1, Microsoft Visual Studio 2008
Microsoft logo is a registered trademark of Microsoft Corporation in the United States and/or other countries