thailands Transition into the Digital Era

We are the catapult, which carries you into the future of Information Technology for Paperless System, where you land softly - but with an envelop the Success!

I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

asdsdfsdfsdsdf

Our official partners include

thailands Transition into the Digital Era

We are the catapult, which carries you into the future of Information Technology for Paperless System, where you land softly – but with an envelop the Success!

Our official partners include

About Us

About Us

About us Company profile Inbatek Co., Ltd is a German-Thai company, with expertise in paperless and PDF technologies such as e-Document management, e-Invoicing, digital signatures and digital time stamping. Moreover, It has more than 20 years experience in ERP and document management system in European countries. With the 20 years experiences in Software and automatic…

recent announcements

18 years iText!

Happy birthday iText! 18 years years ago, the journey started with the release of iText 0.30. Since than


Read More


February 14, 2018

Blockchain

The blockhain is a technologie, developed in the early 90’s that recently got more popular with the rise


Read More


February 9, 2018

Our New Cloud Service

With our soild infrastructure we are finally able to give you a sneak peek at our new cloud


Read More


February 4, 2018

Smart like a fox!

Lets us explain technical terms and how our service can improve your business today.

Contact US

Integration of digital documents to improve your business is our main goal. Get tips and ideas on further steps you can take to make things happen.


Phone
+66(0) 210 740 27

Address
78/460 Moo.6, T. Buengkamproy A. Lumloogga, Pathumthani 12150 Thailand

Email

เข้าสู่ระบบ

Extract XMP

  1. namespace ExtractXMPConsoleApplication1
  2.     {
  3.         class Program
  4.         {
  5.             static void Main(string[] args)
  6.             {
  7.                 var filename = args[0];
  8.                 PdfReader pdf = new PdfReader(filename);
  9.                 string metadataXml = System.Text.Encoding.UTF8.GetString(pdf.Metadata);
  10.             }
  11.         }
  12.     }

Create E-Tax Invoice

program.cs

  1.     using CreateETDAInvoiceFromXml;
  2.     using iTextSharp.text;
  3.     using iTextSharp.text.pdf;
  4.     using Saxon.Api;
  5.     using System;
  6.     using System.IO;
  7.  
  8.     namespace CreateEtaxInvoiceUsingXslt2
  9.     {
  10.         class Program
  11.         {
  12.             static void Main(string[] args)
  13.             {
  14.                 string xsltfilename = @"ExampleDesignForETDA_1p0_c1p0_s1p0_2.xsl";
  15.                 string inputfilename = @"Example_TaxInvoice_v2-0.xml";
  16.                 string outputpdfilename = "result.pdf";
  17.  
  18.                 var xslt = new FileInfo(xsltfilename);
  19.                 var input = new FileInfo(inputfilename);
  20.                 var output = new FileInfo(@"result.html");
  21.                 var outputpdf = new FileInfo(outputpdfilename);
  22.  
  23.                 Processor proc = new Processor();
  24.                 proc.RegisterExtensionFunction(new BahtText());
  25.                 XsltCompiler xsltc = proc.NewXsltCompiler();
  26.                 var executable = xsltc.Compile(new Uri(xslt.FullName));
  27.  
  28.                 // Do transformation to a destination
  29.                 var destination = new DomDestination();
  30.  
  31.                 using (var inputStream = input.OpenRead())
  32.                 {
  33.                     var transformer = executable.Load();
  34.                     transformer.SetInputStream(inputStream, new Uri(input.DirectoryName));
  35.                     transformer.Run(destination);
  36.                 }
  37.  
  38.                 File.WriteAllBytes("result.pdf", createPDF(destination.XmlDocument.OuterXml).ToArray());
  39.  
  40.                 // Save result to a file (or whatever else you wanna do)
  41.                 destination.XmlDocument.Save(output.FullName);
  42.                 System.Diagnostics.Process.Start("result.pdf");
  43.             }
  44.  
  45.             private static MemoryStream createPDF(string html)
  46.             {
  47.                 MemoryStream msOutput = new MemoryStream();
  48.                 TextReader reader = new StringReader(html);
  49.  
  50.                 // step 1: creation of a document-object
  51.                 Document document = new Document(PageSize.A4, 30, 30, 30, 30);
  52.  
  53.                 // step 2:
  54.                 // we create a writer that listens to the document
  55.                 // and directs a XML-stream to a file
  56.                 PdfWriter writer = PdfWriter.GetInstance(document, msOutput);
  57.  
  58.                 // step 3: we create a worker parse the document
  59.  
  60.                 //  var worker = new XMLWorker(document);
  61.  
  62.                 /**************************************************
  63.                  * Example #2                                     *
  64.                  *                                                *
  65.                  * Use the XMLWorker to parse the HTML.           *
  66.                  * Only inline CSS and absolutely linked          *
  67.                  * CSS is supported                               *
  68.                  * ************************************************/
  69.                 document.Open();
  70.                 //XMLWorker also reads from a TextReader and not directly from a string
  71.  
  72.                 //Parse the HTML
  73.                 iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, reader);
  74.  
  75.                 // step 4: we open document and start the worker on the document
  76.  
  77.                 //worker.StartDocument();
  78.  
  79.                 //// step 5: parse the html into the document
  80.                 //worker.Parse(reader);
  81.  
  82.                 //// step 6: close the document and the worker
  83.                 //worker.EndDocument();
  84.                 //  worker.Close();
  85.                 document.Close();
  86.  
  87.                 return msOutput;
  88.             }
  89.         }
  90.     }

Here are some examples on how to use the program (please click on the document to see the sourcecode).

example_taxinvoice.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2.     <rsm:CrossIndustryDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.                                xmlns:rsm="urn:ferd:CrossIndustryDocument:invoice:1p0"
  4.                                xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12"
  5.                                xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:15">
  6.         <rsm:SpecifiedExchangedDocumentContext>
  7.             <ram:TestIndicator>
  8.                 <udt:Indicator>false</udt:Indicator>
  9.             </ram:TestIndicator>
  10.             <ram:GuidelineSpecifiedDocumentContextParameter>
  11.                 <ram:ID>urn:ferd:CrossIndustryDocument:invoice:1p0:extended</ram:ID>
  12.             </ram:GuidelineSpecifiedDocumentContextParameter>
  13.         </rsm:SpecifiedExchangedDocumentContext>
  14.         <rsm:HeaderExchangedDocument>
  15.             <ram:ID>322567-53654816</ram:ID>
  16.             <ram:Name>Beitragsrechnung für GS1 Complete 2015</ram:Name>
  17.             <ram:TypeCode>380</ram:TypeCode>
  18.             <ram:IssueDateTime>
  19.                 <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  20.             </ram:IssueDateTime>
  21.             <ram:IncludedNote>
  22.                 <ram:Content></ram:Content>
  23.             </ram:IncludedNote>
  24.             <ram:IncludedNote>
  25.                 <ram:Content>Ihr Antrag vom: 28.07.2015, Herr Johannes Döring</ram:Content>
  26.             </ram:IncludedNote>
  27.             <ram:IncludedNote>
  28.                 <ram:Content>
  29.     Hiermit berechnen wir Ihnen gem. Ziffer III, 1 der Allg. Geschäftsbedingungen im Rahmen Ihrer Teilnahme an GS1 Complete für die Lokationsnummer (GLN):
  30.  
  31.     42 6044293 000 6 Johannes Döring</ram:Content>
  32.             </ram:IncludedNote>
  33.             <ram:IncludedNote>
  34.                 <ram:Content></ram:Content>
  35.             </ram:IncludedNote>
  36.             <ram:IncludedNote>
  37.                 <ram:Content>
  38.     Die Berechnung des jährlichen Nutzungspreises erfolgt auf Basis des von Ihnen gemeldeten Gesamtumsatzes Ihres Unternehmens. Wir behalten uns eine Prüfung und eventuelle Umgruppierung, verbunden mit Nachberechnungen, vor.
  39.     </ram:Content>
  40.             </ram:IncludedNote>
  41.             <ram:IncludedNote>
  42.                 <ram:Content>Vorsitzender des Aufsichtsrates: Erich Harsch Geschäftsführung: Jörg Pretzel Gesellschafter der GS1 Germany: EHI Retail Institute, Markenverband Amtsgericht Köln HRB 6276</ram:Content>
  43.                 <ram:SubjectCode>REG</ram:SubjectCode>
  44.             </ram:IncludedNote>
  45.         </rsm:HeaderExchangedDocument>
  46.         <rsm:SpecifiedSupplyChainTradeTransaction>
  47.             <ram:ApplicableSupplyChainTradeAgreement>
  48.                 <ram:SellerTradeParty>
  49.                     <ram:GlobalID schemeID="0088">4000001000005</ram:GlobalID>
  50.                     <ram:Name>GS1 Germany GmbH</ram:Name>
  51.                     <ram:DefinedTradeContact>
  52.                         <ram:PersonName>yj</ram:PersonName>
  53.                         <ram:TelephoneUniversalCommunication>
  54.                             <ram:CompleteNumber>+49 (221) 94714-333</ram:CompleteNumber>
  55.                         </ram:TelephoneUniversalCommunication>
  56.                         <ram:FaxUniversalCommunication>
  57.                             <ram:CompleteNumber>+49 (221) 94714-7291</ram:CompleteNumber>
  58.                         </ram:FaxUniversalCommunication>
  59.                         <ram:EmailURIUniversalCommunication>
  60.                             <ram:URIID>rechnung@gs1-germany.de</ram:URIID>
  61.                         </ram:EmailURIUniversalCommunication>
  62.                     </ram:DefinedTradeContact>
  63.                     <ram:PostalTradeAddress>
  64.                         <ram:PostcodeCode>50825</ram:PostcodeCode>
  65.                         <ram:LineOne>Maarweg 133</ram:LineOne>
  66.                         <ram:CityName>Köln</ram:CityName>
  67.                         <ram:CountryID>DE</ram:CountryID>
  68.                     </ram:PostalTradeAddress>
  69.                     <ram:SpecifiedTaxRegistration>
  70.                         <ram:ID schemeID="VA">DE122775856</ram:ID>
  71.                     </ram:SpecifiedTaxRegistration>
  72.                 </ram:SellerTradeParty>
  73.                 <ram:BuyerTradeParty>
  74.                     <ram:ID>D322567</ram:ID>
  75.                     <ram:GlobalID schemeID="0088">4260442930006</ram:GlobalID>
  76.                     <ram:Name>Johannes Döring</ram:Name>
  77.                     <ram:PostalTradeAddress>
  78.                         <ram:PostcodeCode>56567</ram:PostcodeCode>
  79.                         <ram:LineOne>Melsbacher Str. 25</ram:LineOne>
  80.                         <ram:CityName>Neuwied</ram:CityName>
  81.                         <ram:CountryID>DE</ram:CountryID>
  82.                     </ram:PostalTradeAddress>
  83.                     <ram:SpecifiedTaxRegistration>
  84.                         <ram:ID schemeID="VA">DE211477959</ram:ID>
  85.                     </ram:SpecifiedTaxRegistration>
  86.                 </ram:BuyerTradeParty>
  87.             </ram:ApplicableSupplyChainTradeAgreement>
  88.             <ram:ApplicableSupplyChainTradeDelivery>
  89.                 <ram:ActualDeliverySupplyChainEvent>
  90.                     <ram:OccurrenceDateTime>
  91.                         <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  92.                     </ram:OccurrenceDateTime>
  93.                 </ram:ActualDeliverySupplyChainEvent>
  94.             </ram:ApplicableSupplyChainTradeDelivery>
  95.             <ram:ApplicableSupplyChainTradeSettlement>
  96.                 <ram:PaymentReference>322567-53654816</ram:PaymentReference>
  97.                 <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
  98.                 <ram:SpecifiedTradeSettlementPaymentMeans>
  99.                     <ram:TypeCode>31</ram:TypeCode>
  100.                     <ram:Information>sofort netto ohne Abzug</ram:Information>
  101.                     <ram:PayeePartyCreditorFinancialAccount>
  102.                         <ram:IBANID>DE86570900001052005000</ram:IBANID>
  103.                     </ram:PayeePartyCreditorFinancialAccount>
  104.                     <ram:PayeeSpecifiedCreditorFinancialInstitution>
  105.                         <ram:BICID>GENODE51KOB</ram:BICID>
  106.                         <ram:Name>Volksbank Koblenz Mittelrhein eG</ram:Name>
  107.                     </ram:PayeeSpecifiedCreditorFinancialInstitution>
  108.                 </ram:SpecifiedTradeSettlementPaymentMeans>
  109.                 <ram:ApplicableTradeTax>
  110.                     <ram:CalculatedAmount currencyID="EUR">77.90</ram:CalculatedAmount>
  111.                     <ram:TypeCode>VAT</ram:TypeCode>
  112.                     <ram:BasisAmount currencyID="EUR">410.00</ram:BasisAmount>
  113.                     <ram:CategoryCode>S</ram:CategoryCode>
  114.                     <ram:ApplicablePercent>19.00</ram:ApplicablePercent>
  115.                 </ram:ApplicableTradeTax>
  116.                 <ram:BillingSpecifiedPeriod>
  117.                     <ram:StartDateTime>
  118.                         <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  119.                     </ram:StartDateTime>
  120.                     <ram:EndDateTime>
  121.                         <udt:DateTimeString format="102">20151231</udt:DateTimeString>
  122.                     </ram:EndDateTime>
  123.                 </ram:BillingSpecifiedPeriod>
  124.                 <ram:SpecifiedTradePaymentTerms>
  125.                     <ram:Description>Zahlbar sofort ohne Abzug</ram:Description>
  126.                     <ram:DueDateDateTime>
  127.                         <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  128.                     </ram:DueDateDateTime>
  129.                 </ram:SpecifiedTradePaymentTerms>
  130.                 <ram:SpecifiedTradeSettlementMonetarySummation>
  131.                     <ram:LineTotalAmount currencyID="EUR">410.00</ram:LineTotalAmount>
  132.                     <ram:ChargeTotalAmount currencyID="EUR">0.00</ram:ChargeTotalAmount>
  133.                     <ram:AllowanceTotalAmount currencyID="EUR">0.00</ram:AllowanceTotalAmount>
  134.                     <ram:TaxBasisTotalAmount currencyID="EUR">410.00</ram:TaxBasisTotalAmount>
  135.                     <ram:TaxTotalAmount currencyID="EUR">77.90</ram:TaxTotalAmount>
  136.                     <ram:GrandTotalAmount currencyID="EUR">487.25</ram:GrandTotalAmount>
  137.                     <ram:TotalPrepaidAmount currencyID="EUR">0.00</ram:TotalPrepaidAmount>
  138.                     <ram:DuePayableAmount currencyID="EUR">487.90</ram:DuePayableAmount>
  139.                 </ram:SpecifiedTradeSettlementMonetarySummation>
  140.             </ram:ApplicableSupplyChainTradeSettlement>
  141.             <ram:IncludedSupplyChainTradeLineItem>
  142.                 <ram:AssociatedDocumentLineDocument>
  143.                     <ram:LineID>1</ram:LineID>
  144.                 </ram:AssociatedDocumentLineDocument>
  145.                 <ram:SpecifiedSupplyChainTradeAgreement>
  146.                     <ram:GrossPriceProductTradePrice>
  147.                         <ram:ChargeAmount currencyID="EUR">230.0000</ram:ChargeAmount>
  148.                         <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
  149.                     </ram:GrossPriceProductTradePrice>
  150.                     <ram:NetPriceProductTradePrice>
  151.                         <ram:ChargeAmount currencyID="EUR">230.0000</ram:ChargeAmount>
  152.                         <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
  153.                     </ram:NetPriceProductTradePrice>
  154.                 </ram:SpecifiedSupplyChainTradeAgreement>
  155.                 <ram:SpecifiedSupplyChainTradeDelivery>
  156.                     <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
  157.                     <ram:ActualDeliverySupplyChainEvent>
  158.                         <ram:OccurrenceDateTime>
  159.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  160.                         </ram:OccurrenceDateTime>
  161.                     </ram:ActualDeliverySupplyChainEvent>
  162.                 </ram:SpecifiedSupplyChainTradeDelivery>
  163.                 <ram:SpecifiedSupplyChainTradeSettlement>
  164.                     <ram:ApplicableTradeTax>
  165.                         <ram:TypeCode>VAT</ram:TypeCode>
  166.                         <ram:CategoryCode>S</ram:CategoryCode>
  167.                         <ram:ApplicablePercent>19.00</ram:ApplicablePercent>
  168.                     </ram:ApplicableTradeTax>
  169.                     <ram:BillingSpecifiedPeriod>
  170.                         <ram:StartDateTime>
  171.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  172.                         </ram:StartDateTime>
  173.                         <ram:EndDateTime>
  174.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  175.                         </ram:EndDateTime>
  176.                     </ram:BillingSpecifiedPeriod>
  177.                     <ram:SpecifiedTradeSettlementMonetarySummation>
  178.                         <ram:LineTotalAmount currencyID="EUR">230.00</ram:LineTotalAmount>
  179.                     </ram:SpecifiedTradeSettlementMonetarySummation>
  180.                 </ram:SpecifiedSupplyChainTradeSettlement>
  181.                 <ram:SpecifiedTradeProduct>
  182.                     <ram:GlobalID schemeID="0088">4000001016495</ram:GlobalID>
  183.                     <ram:SellerAssignedID>4000001016495</ram:SellerAssignedID>
  184.                     <ram:Name>Bereitstellungspreis für 9-stellige Basisnummer</ram:Name>
  185.                 </ram:SpecifiedTradeProduct>
  186.             </ram:IncludedSupplyChainTradeLineItem>
  187.             <ram:IncludedSupplyChainTradeLineItem>
  188.                 <ram:AssociatedDocumentLineDocument>
  189.                     <ram:LineID>2</ram:LineID>
  190.                 </ram:AssociatedDocumentLineDocument>
  191.                 <ram:SpecifiedSupplyChainTradeAgreement>
  192.                     <ram:GrossPriceProductTradePrice>
  193.                         <ram:ChargeAmount currencyID="EUR">150.0000</ram:ChargeAmount>
  194.                         <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
  195.                     </ram:GrossPriceProductTradePrice>
  196.                     <ram:NetPriceProductTradePrice>
  197.                         <ram:ChargeAmount currencyID="EUR">150.0000</ram:ChargeAmount>
  198.                         <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
  199.                     </ram:NetPriceProductTradePrice>
  200.                 </ram:SpecifiedSupplyChainTradeAgreement>
  201.                 <ram:SpecifiedSupplyChainTradeDelivery>
  202.                     <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
  203.                     <ram:ActualDeliverySupplyChainEvent>
  204.                         <ram:OccurrenceDateTime>
  205.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  206.                         </ram:OccurrenceDateTime>
  207.                     </ram:ActualDeliverySupplyChainEvent>
  208.                 </ram:SpecifiedSupplyChainTradeDelivery>
  209.                 <ram:SpecifiedSupplyChainTradeSettlement>
  210.                     <ram:ApplicableTradeTax>
  211.                         <ram:TypeCode>VAT</ram:TypeCode>
  212.                         <ram:CategoryCode>S</ram:CategoryCode>
  213.                         <ram:ApplicablePercent>19.00</ram:ApplicablePercent>
  214.                     </ram:ApplicableTradeTax>
  215.                     <ram:BillingSpecifiedPeriod>
  216.                         <ram:StartDateTime>
  217.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  218.                         </ram:StartDateTime>
  219.                         <ram:EndDateTime>
  220.                             <udt:DateTimeString format="102">20151231</udt:DateTimeString>
  221.                         </ram:EndDateTime>
  222.                     </ram:BillingSpecifiedPeriod>
  223.                     <ram:SpecifiedTradeSettlementMonetarySummation>
  224.                         <ram:LineTotalAmount currencyID="EUR">150.00</ram:LineTotalAmount>
  225.                     </ram:SpecifiedTradeSettlementMonetarySummation>
  226.                 </ram:SpecifiedSupplyChainTradeSettlement>
  227.                 <ram:SpecifiedTradeProduct>
  228.                     <ram:GlobalID schemeID="0088">4000001020300</ram:GlobalID>
  229.                     <ram:SellerAssignedID>4000001020300</ram:SellerAssignedID>
  230.                     <ram:Name>Jährlicher Nutzungspreis Umsatzstufe 1</ram:Name>
  231.                 </ram:SpecifiedTradeProduct>
  232.             </ram:IncludedSupplyChainTradeLineItem>
  233.             <ram:IncludedSupplyChainTradeLineItem>
  234.                 <ram:AssociatedDocumentLineDocument>
  235.                     <ram:LineID>3</ram:LineID>
  236.                 </ram:AssociatedDocumentLineDocument>
  237.                 <ram:SpecifiedSupplyChainTradeAgreement>
  238.                     <ram:GrossPriceProductTradePrice>
  239.                         <ram:ChargeAmount currencyID="EUR">30.0000</ram:ChargeAmount>
  240.                         <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
  241.                     </ram:GrossPriceProductTradePrice>
  242.                     <ram:NetPriceProductTradePrice>
  243.                         <ram:ChargeAmount currencyID="EUR">30.0000</ram:ChargeAmount>
  244.                         <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
  245.                     </ram:NetPriceProductTradePrice>
  246.                 </ram:SpecifiedSupplyChainTradeAgreement>
  247.                 <ram:SpecifiedSupplyChainTradeDelivery>
  248.                     <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
  249.                     <ram:ActualDeliverySupplyChainEvent>
  250.                         <ram:OccurrenceDateTime>
  251.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  252.                         </ram:OccurrenceDateTime>
  253.                     </ram:ActualDeliverySupplyChainEvent>
  254.                 </ram:SpecifiedSupplyChainTradeDelivery>
  255.                 <ram:SpecifiedSupplyChainTradeSettlement>
  256.                     <ram:ApplicableTradeTax>
  257.                         <ram:TypeCode>VAT</ram:TypeCode>
  258.                         <ram:CategoryCode>S</ram:CategoryCode>
  259.                         <ram:ApplicablePercent>19.00</ram:ApplicablePercent>
  260.                     </ram:ApplicableTradeTax>
  261.                     <ram:BillingSpecifiedPeriod>
  262.                         <ram:StartDateTime>
  263.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  264.                         </ram:StartDateTime>
  265.                         <ram:EndDateTime>
  266.                             <udt:DateTimeString format="102">20150731</udt:DateTimeString>
  267.                         </ram:EndDateTime>
  268.                     </ram:BillingSpecifiedPeriod>
  269.                     <ram:SpecifiedTradeSettlementMonetarySummation>
  270.                         <ram:LineTotalAmount currencyID="EUR">30.00</ram:LineTotalAmount>
  271.                     </ram:SpecifiedTradeSettlementMonetarySummation>
  272.                 </ram:SpecifiedSupplyChainTradeSettlement>
  273.                 <ram:SpecifiedTradeProduct>
  274.                     <ram:GlobalID schemeID="0088">4000001021109</ram:GlobalID>
  275.                     <ram:SellerAssignedID>4000001021109</ram:SellerAssignedID>
  276.                     <ram:Name>Zertifikat Englisch/Deutsch</ram:Name>
  277.                 </ram:SpecifiedTradeProduct>
  278.             </ram:IncludedSupplyChainTradeLineItem>
  279.         </rsm:SpecifiedSupplyChainTradeTransaction>
  280.     </rsm:CrossIndustryDocument>

example_design-for-ETDA.xsl

  1.  
  2.     <?xml version="1.0" encoding="utf-8"?>
  3.     <xsl:stylesheet exclude-result-prefixes="rsm ram udt" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12" xmlns:rsm="urn:ferd:CrossIndustryDocument:invoice:1p0" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:15" version="1.0">
  4.       <xsl:output method="xml" indent="yes" encoding="UTF-8" />
  5.       <xsl:template match="/rsm:CrossIndustryDocument">
  6.         <html>
  7.           <head>
  8.             <link rel="stylesheet" type="text/css" href="invoice.css" />
  9.           </head>
  10.           <body>
  11.             <img src="logo.png" alt="Das Company - logo" />
  12.             <br />
  13.             <xsl:apply-templates />
  14.           </body>
  15.         </html>
  16.       </xsl:template>
  17.  
  18.       <xsl:template match="rsm:SpecifiedExchangedDocumentContext" />
  19.       <xsl:template match="rsm:HeaderExchangedDocument">
  20.         <h1 id="header">
  21.           <xsl:value-of select="ram:Name" />
  22.           <xsl:text> </xsl:text>
  23.           <xsl:value-of select="ram:ID" />
  24.         </h1>
  25.         <xsl:apply-templates select="ram:IssueDateTime" />
  26.       </xsl:template>
  27.       <xsl:template match="rsm:SpecifiedSupplyChainTradeTransaction">
  28.         <table width="100%" border="0" id="addresses">
  29.           <tr>
  30.             <td valign="Top" width="10%">
  31.               <b>From:</b>
  32.             </td>
  33.             <td valign="Top" width="40%">
  34.               <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement/ram:SellerTradeParty">
  35.                 <xsl:call-template name="address" />
  36.               </xsl:for-each>
  37.             </td>
  38.             <td valign="Top" width="10%">
  39.               <b>To:</b>
  40.             </td>
  41.             <td valign="Top" width="40%">
  42.               <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement/ram:BuyerTradeParty">
  43.                 <xsl:call-template name="address" />
  44.               </xsl:for-each>
  45.             </td>
  46.           </tr>
  47.         </table>
  48.         <table width="100%" id="products">
  49.           <tr class="headerrow">
  50.             <th>#</th>
  51.             <th>Product</th>
  52.             <th>Unit</th>
  53.             <th>Qty.</th>
  54.             <th>Sub.</th>
  55.             <th>Tax%</th>
  56.             <th>Tax</th>
  57.             <th>Total</th>
  58.             <th>Curr.</th>
  59.           </tr>
  60.           <xsl:for-each select="ram:IncludedSupplyChainTradeLineItem">
  61.             <tr>
  62.               <td align="Right">
  63.                 <xsl:value-of select="ram:AssociatedDocumentLineDocument/ram:LineID" />.
  64.               </td>
  65.               <td class="bold">
  66.                 <xsl:value-of select="ram:SpecifiedTradeProduct/ram:Name" />
  67.               </td>
  68.               <td align="Right">
  69.                 <xsl:call-template name="twodecimals">
  70.                   <xsl:with-param name="number" select="ram:SpecifiedSupplyChainTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount" />
  71.                 </xsl:call-template>
  72.               </td>
  73.               <td align="Right">
  74.                 <xsl:call-template name="twodecimals">
  75.                   <xsl:with-param name="number" select="ram:SpecifiedSupplyChainTradeDelivery/ram:BilledQuantity" />
  76.                 </xsl:call-template>
  77.               </td>
  78.               <td align="Right">
  79.                 <xsl:value-of select="ram:SpecifiedSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:LineTotalAmount" />
  80.               </td>
  81.               <td align="Right">
  82.                 <xsl:value-of select="ram:SpecifiedSupplyChainTradeSettlement/ram:ApplicableTradeTax/ram:ApplicablePercent" />%
  83.               </td>
  84.               <td align="Right">
  85.                 <xsl:call-template name="calcTax">
  86.                   <xsl:with-param name="basis" select="ram:SpecifiedSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:LineTotalAmount" />
  87.                   <xsl:with-param name="tax" select="ram:SpecifiedSupplyChainTradeSettlement/ram:ApplicableTradeTax/ram:ApplicablePercent" />
  88.                 </xsl:call-template>
  89.               </td>
  90.               <td align="Right" class="bold">
  91.                 <xsl:call-template name="calcWithTax">
  92.                   <xsl:with-param name="basis" select="ram:SpecifiedSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:LineTotalAmount" />
  93.                   <xsl:with-param name="tax" select="ram:SpecifiedSupplyChainTradeSettlement/ram:ApplicableTradeTax/ram:ApplicablePercent" />
  94.                 </xsl:call-template>
  95.               </td>
  96.               <td>
  97.                 <xsl:value-of select="ram:SpecifiedSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:LineTotalAmount/@currencyID" />
  98.               </td>
  99.             </tr>
  100.           </xsl:for-each>
  101.         </table>
  102.         <table width="100%" id="totals">
  103.           <tr class="headerrow">
  104.             <th>Tax</th>
  105.             <th>%</th>
  106.             <th>Base amount:</th>
  107.             <th>Tax amount:</th>
  108.             <th>Total</th>
  109.             <th>Curr.</th>
  110.           </tr>
  111.           <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement/ram:ApplicableTradeTax">
  112.             <tr>
  113.               <td align="Right">
  114.                 <xsl:value-of select="ram:TypeCode" />
  115.               </td>
  116.               <td align="Right">
  117.                 <xsl:value-of select="ram:ApplicablePercent" />
  118.               </td>
  119.               <td align="Right">
  120.                 <xsl:value-of select="ram:BasisAmount" />
  121.               </td>
  122.               <td align="Right">
  123.                 <xsl:value-of select="ram:CalculatedAmount" />
  124.               </td>
  125.               <td align="Right">
  126.                 <xsl:call-template name="calcWithTax">
  127.                   <xsl:with-param name="basis" select="ram:BasisAmount" />
  128.                   <xsl:with-param name="tax" select="ram:ApplicablePercent" />
  129.                 </xsl:call-template>
  130.               </td>
  131.               <td>
  132.                 <xsl:value-of select="ram:CalculatedAmount/@currencyID" />
  133.               </td>
  134.             </tr>
  135.           </xsl:for-each>
  136.           <tr>
  137.             <td class="total" align="Right" colspan="2">Grand total:</td>
  138.             <td class="total" align="Right">
  139.               <xsl:value-of select="ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:TaxBasisTotalAmount" />
  140.             </td>
  141.             <td class="total" align="Right">
  142.               <xsl:value-of select="ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:TaxTotalAmount" />
  143.             </td>
  144.             <td class="total" align="Right">
  145.               <xsl:value-of select="ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:GrandTotalAmount" />
  146.             </td>
  147.             <td class="total">
  148.               <xsl:value-of select="ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:GrandTotalAmount/@currencyID" />
  149.             </td>
  150.           </tr>
  151.         </table>
  152.         <table id="wireinfo">
  153.           <tr>
  154.             <td colspan="4">
  155.               Please wire the amount due to our bank account using the following reference: <xsl:value-of select="ram:ApplicableSupplyChainTradeSettlement/ram:PaymentReference" />
  156.             </td>
  157.           </tr>
  158.           <tr>
  159.             <th></th>
  160.             <th class="wireheader">Bank</th>
  161.             <th class="wireheader">BIC ID</th>
  162.             <th class="wireheader">IBAN Number</th>
  163.           </tr>
  164.           <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans">
  165.             <tr>
  166.               <td></td>
  167.               <td>
  168.                 <xsl:value-of select="ram:PayeeSpecifiedCreditorFinancialInstitution/ram:Name" />
  169.               </td>
  170.               <td>
  171.                 <xsl:value-of select="ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID" />
  172.               </td>
  173.               <td>
  174.                 <xsl:value-of select="ram:PayeePartyCreditorFinancialAccount/ram:IBANID" />
  175.               </td>
  176.             </tr>
  177.           </xsl:for-each>
  178.         </table>
  179.       </xsl:template>
  180.  
  181.  
  182.       <xsl:template match="udt:DateTimeString">
  183.         <h2 id="date">
  184.           <xsl:choose>
  185.             <xsl:when test="@format='610'">
  186.               <xsl:call-template name="YYYYMM">
  187.                 <xsl:with-param name="date" select="." />
  188.               </xsl:call-template>
  189.             </xsl:when>
  190.             <xsl:when test="@format='616'">
  191.               <xsl:call-template name="YYYYWW">
  192.                 <xsl:with-param name="date" select="." />
  193.               </xsl:call-template>
  194.             </xsl:when>
  195.             <xsl:otherwise>
  196.               <xsl:call-template name="YYYYMMDD">
  197.                 <xsl:with-param name="date" select="." />
  198.               </xsl:call-template>
  199.             </xsl:otherwise>
  200.           </xsl:choose>
  201.         </h2>
  202.       </xsl:template>
  203.  
  204.       <xsl:template name="address">
  205.         <span class="name">
  206.           <xsl:value-of select="ram:Name" />
  207.         </span><br />
  208.         <xsl:value-of select="ram:PostalTradeAddress/ram:LineOne" /><br />
  209.         <xsl:value-of select="ram:PostalTradeAddress/ram:LineTwo" /><br />
  210.         <xsl:value-of select="ram:PostalTradeAddress/ram:CountryID" />-<xsl:value-of select="ram:PostalTradeAddress/ram:PostcodeCode" /><xsl:text> </xsl:text><xsl:value-of select="ram:PostalTradeAddress/ram:CityName" /><br />
  211.         <xsl:for-each select="ram:SpecifiedTaxRegistration/ram:ID">
  212.           <xsl:value-of select="@schemeID" />: <xsl:value-of select="." /><br />
  213.         </xsl:for-each>
  214.       </xsl:template>
  215.  
  216.       <xsl:template name="calcTax">
  217.         <xsl:param name="basis" />
  218.         <xsl:param name="tax" />
  219.         <xsl:call-template name="twodecimals">
  220.           <xsl:with-param name="number" select="($basis * $tax) div 100" />
  221.         </xsl:call-template>
  222.       </xsl:template>
  223.       <xsl:template name="calcWithTax">
  224.         <xsl:param name="basis" />
  225.         <xsl:param name="tax" />
  226.         <xsl:call-template name="twodecimals">
  227.           <xsl:with-param name="number" select="$basis + (($basis * $tax) div 100)" />
  228.         </xsl:call-template>
  229.       </xsl:template>
  230.       <xsl:template name="twodecimals">
  231.         <xsl:param name="number" />
  232.         <xsl:value-of select="format-number(round($number*100) div 100, '0.00')"/>
  233.       </xsl:template>
  234.       <xsl:template name="YYYYMMDD">
  235.         <xsl:param name="date" />
  236.         <xsl:value-of select="substring($date,1,4)" />-<xsl:value-of select="substring($date,5,2)" />-<xsl:value-of select="substring($date,7,2)" />
  237.       </xsl:template>
  238.       <xsl:template name="YYYYMM">
  239.         <xsl:param name="date" />
  240.         <xsl:value-of select="substring($date,1,4)" />-<xsl:value-of select="substring($date,5,2)" />
  241.       </xsl:template>
  242.       <xsl:template name="YYYYWW">
  243.         <xsl:param name="date" />
  244.         <xsl:value-of select="substring($date,1,4)" />; week <xsl:value-of select="substring($date,5,2)" />
  245.       </xsl:template>
  246.     </xsl:stylesheet>

E-Tax

We are proud to be the authors of the official development guideline for the Thai E-Tax-Invoice released by ETDA.

Here we provide you with some example codes for how to use the Thai E-Tax invoice.

For  your information: Using code examples to integrate into commercial environment or tools such as

  1. Integrating E-Tax invoice code samples into ERP or invoicing solution, always requires valid licenses for iText and Inbatek components used.
  2.  iText and Inbatek source codes are provided here under AGPL license

Therefore, developers and users are obligated to purchase commercial itext and Inbatek licenses in order to fulfill AGPL terms.

Examples

E-Tax invoice is only valid with a correct XMP record in the PDF metadata.

Here is an example how to extract the XMP metadata using iTextSharp 5.

This example shows how to produce a valid E-Tax invoice file

IDoc

The Intermediate Document (IDoc) is a container for exchanging data between R / 3, R / 2 and external systems.

SAP Application Link Enabling (ALE) uses IDocs to communicate data between logical systems.
External systems can use IDocs as the standard interface for data transfer.

IDocs are generated methods in the distribution of message types and (object).
The message type is the format in which the data for a specific business process is transmitted electronically.

EDI (Electronic Data Interchange)

The advantage of EDI (Electronic Data Interchange) is that it is a direct to computer with minimal or no action by the people to an exchange of computer. Standard business documents can be exchanged electronically as between companies. Thus the lengthy post is prevented as well as data errors. Many business processes are more efficient with the elimination of paper processing.

Shops can be implemented more quickly because electronic documents can be automatically integrated with other business systems. Due to better data quality, the whole transaction process is accelerated because there are fewer sources of error and the work need not be repeated.

EDI is essentially a data processing concept which is independent of communication protocols and transmission media. So organizations can exchange electronic documents with other organizations around the world, as long
support these same EDI standards – which is as easy as the exchange of information within the organization.

While EDI has benefited enormously from the technology advantages such. As the introduction of the Internet, the decision to implement enterprise level and not at a technical level should be taken if you want to take full advantage of your EDI investment.

EDIFACT

EDIFACT stands for United Nations Electronic Data Interchange For Administration, Commerce and Transport. EDIFACT is a branch overlapping international standard for the format of electronic data in commercial transactions. EDIFACT is one of several international EDI standards.

ZUGFeRD

The German ZUGFeRD Format for electronic Invoices (ZUGFeRD: acronym for Central User Guide of the Forum electronic invoice Germany) is a specification for the same format electronic invoices. The format was developed electronic invoice Germany in cooperation with associations, government departments and companies from the Forum.

FeRD’s vision for the data format

In future, it should be just as easy to send and receive electronic invoices as paper invoices. Everyone involved should be able to exchange electronic invoices without prior consultation or agreement.

Business process optimisation by using structured data

  • To enable the invoice recipient to exercise this option, the sender should include structured data even if they are not used by the sender itself.
  • Software manufacturers should support all defined data fields as structured data.
  • The invoice recipient may elect the option to optimise its business process by using structured data.

PDF/A-3

PDF / A is a format for long-term archiving of digital documents, which has been standardized by the International Organization for Standardization (ISO) as a subset of the Portable Document Format (PDF). The standard specifies how the elements of the underlying PDF versions must be used with regard to the long-term archiving. There are both mandatory and non-approved ingredients.

The specification of PDF / A-3 was published on 17 October 2012. A major extension compared to PDF / A-2 share the container is: Any file types can be embedded in PDF / A-3 [6] A PDF. / A-3 document can in this way, for example, the raw data is attached, with which it was created. The standard regulates the archive capability of the embedded files themselves are not PDF / A-compliant.

[download_checkout]

Thank you for your purchase! [edd_receipt]

Your transaction failed, please try again or contact site support.

[purchase_history]

Our official partners include

Contact

Here we help you to find his way in the jungle of technical vocabulary and thus to obtain an optimum overview of the whole subject.

We work future-oriented and with the purpose to give our customers the best possible IT support on hand. Here, it is important to us that you know the features and benefits and appreciate why we have put this knowledge database for you online.

With PDF ready for the future

We are partner of iText. Standards for administration, archiving, invoicing and compliance increasingly rely on PDF. iText is the right partner to help you automate your documentation processes. We offer powerful and flexible tools for PDF creation, editing and inspection, and have been doing so for over 15 years. With the release of iText 7, redesigned from the ground up, even more features and functionalities are now at developers’ fingertips. iText serves over 5,000 customers across the world, including finance, governmental, technology and logistics companies. With us, you can truly take your documentation needs to the next level.

PDF / A is a format for long-term archiving of digital documents, which has been standardized by the International Organization for Standardization (ISO) as a subset of the Portable Document Format (PDF). The standard specifies how the elements of the underlying PDF versions must be used with regard to the long-term archiving. There are both mandatory and non-approved ingredients.

Automatically generated PDF’s are the future

iText is a software developer toolkit that allows users to integrate PDF functionalities within their applications processes or products. You know that PDF is one of the world’s most widely used document formats, but perhaps you didn’t know how it can help you save money today?

custom made software

We offer also comprehensive support for existing software projects, such as the implementation of stand-alone solutions in all areas. Here, we draw on decades of expertise in the field of programming. Together with you, we will develop a solution adapted to your needs! Maximum productivity and a complete integrity in your IT infrastructure are guaranteed!

Conception

A stable concept is essential.

programming

The most important part.

integration

Includes maintainance.

Branding

Corporate Design

Every business needs the right design. We create or develop whole brands – online and offline.

Advertising

In all kinds of forms: Newsletter, Banners, Social-Media, Landingpages

Custom Concepts

Personalized conception to address the target group in the most effective way.

We are able to create brands. With a long background in international e-commerce marketing, we also create advertising for our clients. Optimized banners, landingpages or even social-media campaigns like facebook sweepstakes are our expertise. We will support you from start of the customized concept, to the final launch and onwards.

interface development

User experience

infrastructure

relations

Our knowledge in the merging of different systems and databases can bring your IT infrastructure as well as the relations with customers and suppliers on a new level. Clean and efficient processes are essential in today’s business world and require internal and external connections in many places in order to exploit further synergies and growth potential.

Company profile

Inbatek Co., Ltd is a German-Thai company, with expertise in paperless and PDF technologies such as e-Document management, e-Invoicing, digital signatures and digital time stamping. Moreover, It has more than 20 years experience in ERP and document management system in European countries. With the 20 years experiences in Software and automatic technologies, Inbatek was founded in 2016 to support “Thailand” into the digital era with advanced technologies.
Inbatek is an exclusive iText Partner for Thailand, which is an international company enabling companies with digital transformation technology through its PDF software development kit based in Europe, Singapore and the USA. iText is the world most used PDF library for JAVA and.NET. The iText PDF component is the preferred choice for most developers, since it is open source with PDF features and is also very well supported on every platform.
Inbatek is an official partner of GEFEG mbH for Thailand. (gefeg.com), a software company for XML standardization, used by UN/CEFACT. Inbatek is a member of UN/CEFACT. We are a dedicated business intelligence and system integration IT consulting firm, which focuses on technical software architecture, performance, source code security auditing and source code assessment with a tactic improvement. Currently, Inbatek has received the honor to implement the guideline and define the standard and XML profile of the following document for ETDA, indirectly for Thai revenue department:

“Developing E-Tax invoice based on PDF/A-3 and XML with digital signature & digital time stamp for Thailand.” Part of that Guideline was a reference implementation for generating and validating e-Tax invoices. Our engine code will be used by revenue department on their server for processing and validation E-Tax-Invoices. iText was used in the reference implementation since it is open source and has all the required functionalities. An important factor for the guideline was that it is transparent enough to allow relatively easy to build an implementation even with different technologies.
Since it is the same engine, and we are the authors of the standard, using our engine at the customer side will guarantee 100% compatibility.
We always aim to deliver the best solutions to customers in public and private sectors Including an insurance company, security company, financial, energy, logistic, retail, manufacturing, and government.

What we stand for

Long term experience
on the global IT market

The customer’s success
is our main task

German work
ethics

Cutting edge
technology

Our key members

Johannes Doering
CTO and Co-Founder, Inbatek Co., Ltd

He founded his consulting company at the young age of 19, worked at SAP in 2004 during his computer science master study. Since then, he worked and consulted for many kinds of integration with SAP systems and other systems, using NCO 2, later 3 and JCO.
Email: johannes@inbatek.com

Dr. Sujira Doering
CEO and Founder, Inbatek Co., Ltd

Studied internationally in Thailand and Germany and holds a Ph.D. degree in Nano- electronics from AIT. She was a speaker at global conferences for Physics and Nanotechnology.
Email: sujira@inbatek.com