├── EDocumentApp ├── EinvoceDocApp.z01 ├── EinvoceDocApp.z02 ├── EinvoceDocApp.z03 ├── EinvoceDocApp.zip └── readme ├── README.md ├── Step to Generate Signature (updated ).pdf ├── WinEInvoiceApp ├── MainAppScreen1.png ├── MainAppScreen2.png ├── Updated_24_Jan_2025.png ├── WinEInvoiceWinApp.zip └── readme.txt ├── X509CertificateTool ├── TestCert.zip └── readme.txt ├── XmlSignatureTest ├── TestEInvoiceVer2.zip └── readme ├── documents ├── How_to_generate_clientid.pdf ├── How_to_setup_intermediary_v2.pdf └── readme ├── hashingUtilities ├── HashUtility.cs └── readme.txt ├── jsonsamples ├── JsonSignProperties.json ├── JsonWithOutSignature.json ├── JsonWithSignature.json ├── Json_Note.txt ├── JsonsampleWithForeigncurrency.json ├── Jsonwithmultipletaxtype.json ├── Jsonwithsametaxtype.json ├── consolidateJson_sample.json └── decimalpointnote ├── linux └── einvoiceapp │ ├── LinuxEInvoiceApp.zip │ └── readme.txt ├── middleware ├── csv │ ├── einvoice_mutipleitem.csv │ ├── einvoice_singleitem.csv │ ├── einvoiceapp instructions.pdf │ ├── invoicetemplate_mutliItem.xlsx │ ├── invoicetemplatedoc.xlsx │ └── sample.csv ├── middleappConsole.zip └── readme.txt ├── mokbuymecoffeeTNG_QR.jpg ├── stepToGenerateJsonDC.pdf └── xmlsample ├── XmlSampleWithMutliTax.xml ├── XmlSampleWithOneTax.xml ├── XmlSignProperties.xml ├── XmlwithSignature.xml ├── documentWithOutSignature.xml └── documentWithSignature.xml /EDocumentApp/EinvoceDocApp.z01: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/EDocumentApp/EinvoceDocApp.z01 -------------------------------------------------------------------------------- /EDocumentApp/EinvoceDocApp.z02: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/EDocumentApp/EinvoceDocApp.z02 -------------------------------------------------------------------------------- /EDocumentApp/EinvoceDocApp.z03: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/EDocumentApp/EinvoceDocApp.z03 -------------------------------------------------------------------------------- /EDocumentApp/EinvoceDocApp.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/EDocumentApp/EinvoceDocApp.zip -------------------------------------------------------------------------------- /EDocumentApp/readme: -------------------------------------------------------------------------------- 1 | I have created a Windows app that allows you to download documents from the MyInvoice portal. You can download documents submitted by yourself 2 | or by other vendors. These documents can be downloaded monthly and saved into local databases. You can review the historical data and check the 3 | contents of the documents. Additionally, the downloaded list can be exported to an Excel file for auditing purposes. 4 | 5 | Download all the zip files (EinvoceDocApp.zip, EinvoceDocApp.z01, EinvoceDocApp.z02, and EinvoceDocApp.z03). 6 | Unzip them into any folder. Go to the unzipped folder and run EInvoiceDocument.exe. 7 | A settings form will pop up; just fill in the information. You're good to go. 8 | 9 | - It support sandbox or live portal. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | I offer specialized e-invoice integration services tailored for legacy systems, including the development of cross-platform console applications. My solutions enable seamless integration with existing infrastructures, ensuring efficient invoicing processes while maintaining compatibility with older systems. 2 | 3 | 4 | Buy Me A Coffee 5 | 6 | If you find my e-invoice resources helpful, I would greatly appreciate it if you could consider buying me a coffee or sending me TNG. Thank you for your support! 7 | 8 | -------------------------------------------------------------------------------- /Step to Generate Signature (updated ).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/Step to Generate Signature (updated ).pdf -------------------------------------------------------------------------------- /WinEInvoiceApp/MainAppScreen1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/WinEInvoiceApp/MainAppScreen1.png -------------------------------------------------------------------------------- /WinEInvoiceApp/MainAppScreen2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/WinEInvoiceApp/MainAppScreen2.png -------------------------------------------------------------------------------- /WinEInvoiceApp/Updated_24_Jan_2025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/WinEInvoiceApp/Updated_24_Jan_2025.png -------------------------------------------------------------------------------- /WinEInvoiceApp/WinEInvoiceWinApp.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/WinEInvoiceApp/WinEInvoiceWinApp.zip -------------------------------------------------------------------------------- /WinEInvoiceApp/readme.txt: -------------------------------------------------------------------------------- 1 | update 26-Jan-2025 2 | - Download your submitted document into your portal and view the raw JSON or XML submitted by youself or your supplier. 3 | - To be able to download, you must supply your own ClientID and Secret ID generated from your portal. 4 | - Auto prompt the Settings Form to fill up the required settings. 5 | - No need to set config file. 6 | 7 | 8 | - Unzip WinEInvoiceWinApp.zip to any folder. (windows base app) 9 | 10 | - run EInvoiceWinApp.exe. 11 | 1. Load Json or Xml document (without signature) 12 | 2. Generate Signature 13 | - all the Signature related data will show up. 14 | 3. Submit Document (only to sandbox api only) 15 | 4. Get Document/Document Detail status. 16 | 5. Save the output to file for checking and comparing purpose. 17 | 6. View document in Form or raw format 18 | 19 | Note: 20 | This app is primarily intended for testing and debugging purposes and is not recommended for production use. 21 | 22 | 23 | - You can now view the document (JSON/XML) for hashing (before signing). 24 | - You can view the final document. 25 | - You can view the XML sign's QualifyingProperties for the signProp (the most challenging part). 26 | - You can view all the certificate information. 27 | - You can save the file or information. 28 | - Check the JWT Token payload (check if intermediary is setup properly) 29 | - Verify TIN No 30 | - Search TIN No. 31 | - Download document from your portal (submitted or received) 32 | -------------------------------------------------------------------------------- /X509CertificateTool/TestCert.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/X509CertificateTool/TestCert.zip -------------------------------------------------------------------------------- /X509CertificateTool/readme.txt: -------------------------------------------------------------------------------- 1 | A tool to read X509Certificate data 2 | just run at command prompt: 3 | testcert certpass certfullpath 4 | eg testcert B356(Dqa C:\test\postcert.p12 5 | 6 | will display the cert data on console 7 | 8 | need dot.net 4.72 or later 4.8. 9 | -------------------------------------------------------------------------------- /XmlSignatureTest/TestEInvoiceVer2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/XmlSignatureTest/TestEInvoiceVer2.zip -------------------------------------------------------------------------------- /XmlSignatureTest/readme: -------------------------------------------------------------------------------- 1 | 1. unzip the TestEInvoiceVer2.zip to any folder. 2 | 2. goto the folder, edit TestEInvoice.exe.config, fill in the correct value and save it 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 3. go to cmd prompt. cd to the unzip folder 14 | 4. run TestEInvoice.exe yourinput 15 | for XmL 16 | eg TestEInvoice.exe xml C:\\test\einvoice.xml 17 | for Json 18 | TestEInvoice.exe json C:\\test\einvoice.json 19 | 5. the input xml/json file is without signature, but with the proper input value. 20 | 6. the exe will generate the signature in and do submit to the API url mentioned above. 21 | 7. the output xml/json (with signature) will store at the EInv_JsonPath mentioned above. 22 | -------------------------------------------------------------------------------- /documents/How_to_generate_clientid.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/documents/How_to_generate_clientid.pdf -------------------------------------------------------------------------------- /documents/How_to_setup_intermediary_v2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/documents/How_to_setup_intermediary_v2.pdf -------------------------------------------------------------------------------- /documents/readme: -------------------------------------------------------------------------------- 1 | A ClientID and secret ID function similarly to a login ID and password; they are used to log in to the LHDN sandbox or live portal. Users are responsible for keeping them safe and private. 2 | -------------------------------------------------------------------------------- /hashingUtilities/HashUtility.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Text; 4 | using System.Security.Cryptography; 5 | using System.Security.Cryptography.X509Certificates; 6 | 7 | /// 8 | /// Author : TH MOK 9 | /// Description : Utility use to hash,serialize and sign data 10 | /// Date : 2027-05-02 11 | /// 12 | namespace EInvoiceAPI.Utility 13 | { 14 | public class HashUtility 15 | { 16 | //this will get the certDigest 17 | public static string GetCertHash(X509Certificate2 cert) 18 | { 19 | byte[] rawcertbytes = cert.RawData; 20 | byte[] certbytes = Sha256HashBytes(rawcertbytes); 21 | 22 | return Convert.ToBase64String(certbytes); 23 | } 24 | 25 | // this will get the cert raw data and put into Json's X509Certificate 26 | public static string GetX509Certificate(X509Certificate2 cert) 27 | { 28 | byte[] rawcertbytes = cert.RawData; 29 | return Convert.ToBase64String(rawcertbytes); 30 | 31 | } 32 | 33 | //Get Certificate number, need to convert to Int64 34 | public static Int64 GetCertSerialNumber(X509Certificate2 cert) 35 | { 36 | return Int64.Parse(cert.SerialNumber, NumberStyles.HexNumber); 37 | 38 | } 39 | 40 | //to sign the data become sign digest 41 | public static byte[] SignData(byte[] hashdata, X509Certificate2 cert) 42 | { 43 | byte[] signedData = null; 44 | using (RSA rsa = cert.GetRSAPrivateKey()) 45 | { 46 | try 47 | { 48 | var sharedParameters = rsa.ExportParameters(false); 49 | RSAPKCS1SignatureFormatter rsaFormatter = new RSAPKCS1SignatureFormatter(rsa); 50 | rsaFormatter.SetHashAlgorithm(nameof(SHA256)); 51 | signedData = rsaFormatter.CreateSignature(hashdata); 52 | } 53 | catch (CryptographicException ex) 54 | { 55 | throw new Exception(ex.Message, ex); 56 | } 57 | } 58 | 59 | return signedData; 60 | } 61 | 62 | public static string HashString(string text, string salt = "") 63 | { 64 | if (string.IsNullOrEmpty(text)) 65 | { 66 | return string.Empty; 67 | } 68 | 69 | // Uses SHA256 to create the hash 70 | using (var sha = new System.Security.Cryptography.SHA256Managed()) 71 | { 72 | // Convert the string to a byte array first, to be processed 73 | byte[] textBytes = System.Text.Encoding.UTF8.GetBytes(text + salt); 74 | byte[] hashBytes = sha.ComputeHash(textBytes); 75 | 76 | // Convert back to a string, removing the '-' that BitConverter adds 77 | string hash = BitConverter 78 | .ToString(hashBytes) 79 | .Replace("-", String.Empty); 80 | 81 | return hash; 82 | } 83 | } 84 | 85 | public static string StringToBase64(string Base64String) 86 | { 87 | 88 | // Convert string to Base64 89 | byte[] bytes = Encoding.UTF8.GetBytes(Base64String); 90 | 91 | return System.Convert.ToBase64String(bytes, Base64FormattingOptions.None); 92 | } 93 | 94 | public static string SerializeJson(object doc) 95 | { 96 | var settings = new JsonSerializerSettings 97 | { 98 | DateFormatString = "yyyy-MM-ddTH:mmZ", 99 | DateTimeZoneHandling = DateTimeZoneHandling.Utc, 100 | NullValueHandling = NullValueHandling.Ignore, 101 | 102 | }; 103 | var jsonString = JsonConvert.SerializeObject(doc, settings); 104 | 105 | return jsonString; 106 | } 107 | 108 | public static string SerializeJsonIndented(object doc) 109 | { 110 | var settings = new JsonSerializerSettings 111 | { 112 | DateFormatString = "yyyy-MM-ddTH:mmZ", 113 | DateTimeZoneHandling = DateTimeZoneHandling.Utc, 114 | NullValueHandling = NullValueHandling.Ignore, 115 | Formatting = Formatting.Indented 116 | }; 117 | var jsonString = JsonConvert.SerializeObject(doc, settings); 118 | 119 | return jsonString; 120 | } 121 | 122 | public static byte[] Sha256Hash(string text) 123 | { 124 | using (SHA256 sha256 = SHA256.Create()) 125 | { 126 | byte[] byteData = Encoding.UTF8.GetBytes(text); 127 | var hashBytes = sha256.ComputeHash(byteData); 128 | 129 | return hashBytes; 130 | } 131 | } 132 | public static byte[] Sha256HashBytes(byte[] byteData) 133 | { 134 | using (SHA256 sha256 = SHA256.Create()) 135 | { 136 | var hashBytes = sha256.ComputeHash(byteData); 137 | 138 | return hashBytes; 139 | } 140 | } 141 | 142 | 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /hashingUtilities/readme.txt: -------------------------------------------------------------------------------- 1 | HashUtility.cs 2 | Contains the functions use for hashing, serialize json and sign data. 3 | 4 | the signdata function solve the DS333 also. 5 | 6 | Tool that help for debugging 7 | https://jsonformatter.org/ 8 | https://jsonformatter.org/xml-formatter 9 | https://www.base64decode.org/dec/YWRtaW5pc3RyYXRvcg/ 10 | https://tomeko.net/software/JSONedit/ 11 | https://microsoft.github.io/XmlNotepad/ 12 | https://keystore-explorer.org/index.html 13 | 14 | 15 | -------------------------------------------------------------------------------- /jsonsamples/JsonSignProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "Target" : "signature", 3 | "SignedProperties" : [ 4 | { 5 | "Id" : "id-xades-signed-props", 6 | "SignedSignatureProperties" : [ 7 | { 8 | "SigningTime" : [ 9 | { 10 | "_" : "2024-07-10T07:26:32Z" 11 | } 12 | ], 13 | "SigningCertificate" : [ 14 | { 15 | "Cert" : [ 16 | { 17 | "CertDigest" : [ 18 | { 19 | "DigestMethod" : [ 20 | { 21 | "_" : "", 22 | "Algorithm" : "http://www.w3.org/2001/04/xmlenc#sha256" 23 | } 24 | ], 25 | "DigestValue" : [ 26 | { 27 | "_" : "SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE=" 28 | } 29 | ] 30 | } 31 | ], 32 | "IssuerSerial" : [ 33 | { 34 | "X509IssuerName" : [ 35 | { 36 | "_" : "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 37 | } 38 | ], 39 | "X509SerialNumber" : [ 40 | { 41 | "_" : 352825 42 | } 43 | ] 44 | } 45 | ] 46 | } 47 | ] 48 | } 49 | ] 50 | } 51 | ] 52 | } 53 | ] 54 | } 55 | -------------------------------------------------------------------------------- /jsonsamples/JsonWithOutSignature.json: -------------------------------------------------------------------------------- 1 | { 2 | "_D": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2", 3 | "_A": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", 4 | "_B": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", 5 | "Invoice": [ 6 | { 7 | "ID": [ 8 | { 9 | "_": "IV0000132001" 10 | } 11 | ], 12 | "IssueDate": [ 13 | { 14 | "_": "2024-07-10" 15 | } 16 | ], 17 | "IssueTime": [ 18 | { 19 | "_": "07:26:00Z" 20 | } 21 | ], 22 | "InvoiceTypeCode": [ 23 | { 24 | "_": "01", 25 | "listVersionID": "1.0" 26 | } 27 | ], 28 | "DocumentCurrencyCode": [ 29 | { 30 | "_": "MYR" 31 | } 32 | ], 33 | "InvoicePeriod": [ 34 | { 35 | "StartDate": [ 36 | { 37 | "_": "2024-07-10" 38 | } 39 | ], 40 | "EndDate": [ 41 | { 42 | "_": "2024-07-10" 43 | } 44 | ], 45 | "Description": [ 46 | { 47 | "_": "Daily" 48 | } 49 | ] 50 | } 51 | ], 52 | "BillingReference": [ 53 | { 54 | "AdditionalDocumentReference": [ 55 | { 56 | "ID": [ 57 | { 58 | "_": "IV0000132001" 59 | } 60 | ] 61 | } 62 | ] 63 | } 64 | ], 65 | "AccountingSupplierParty": [ 66 | { 67 | "Party": [ 68 | { 69 | "IndustryClassificationCode": [ 70 | { 71 | "_": "62099", 72 | "name": "Other information technology service activities n.e.c." 73 | } 74 | ], 75 | "PartyIdentification": [ 76 | { 77 | "ID": [ 78 | { 79 | "_": "C20407777999", 80 | "schemeID": "TIN" 81 | } 82 | ] 83 | }, 84 | { 85 | "ID": [ 86 | { 87 | "_": "20080101999", 88 | "schemeID": "BRN" 89 | } 90 | ] 91 | } 92 | ], 93 | "PostalAddress": [ 94 | { 95 | "CityName": [ 96 | { 97 | "_": "Cheras" 98 | } 99 | ], 100 | "CountrySubentityCode": [ 101 | { 102 | "_": "14" 103 | } 104 | ], 105 | "AddressLine": [ 106 | { 107 | "Line": [ 108 | { 109 | "_": "B, 14, Jalan 4/142a, " 110 | } 111 | ] 112 | }, 113 | { 114 | "Line": [ 115 | { 116 | "_": "Cheras, 56000 Cheras" 117 | } 118 | ] 119 | }, 120 | { 121 | "Line": [ 122 | { 123 | "_": "Wilayah Persekutuan Kuala Lumpur" 124 | } 125 | ] 126 | } 127 | ], 128 | "Country": [ 129 | { 130 | "IdentificationCode": [ 131 | { 132 | "_": "MYS", 133 | "listID": "ISO3166-1", 134 | "listAgencyID": "6" 135 | } 136 | ] 137 | } 138 | ] 139 | } 140 | ], 141 | "PartyLegalEntity": [ 142 | { 143 | "RegistrationName": [ 144 | { 145 | "_": "COMPUTER SYSTEMS SERVICES" 146 | } 147 | ] 148 | } 149 | ], 150 | "Contact": [ 151 | { 152 | "Telephone": [ 153 | { 154 | "_": "019-562 3923" 155 | } 156 | ], 157 | "ElectronicMail": [ 158 | { 159 | "_": "Info@computer.com.my" 160 | } 161 | ] 162 | } 163 | ] 164 | } 165 | ] 166 | } 167 | ], 168 | "AccountingCustomerParty": [ 169 | { 170 | "Party": [ 171 | { 172 | "PartyIdentification": [ 173 | { 174 | "ID": [ 175 | { 176 | "_": "C2402945234", 177 | "schemeID": "TIN" 178 | } 179 | ] 180 | }, 181 | { 182 | "ID": [ 183 | { 184 | "_": "201501227245", 185 | "schemeID": "BRN" 186 | } 187 | ] 188 | } 189 | ], 190 | "PostalAddress": [ 191 | { 192 | "CityName": [ 193 | { 194 | "_": "MOUNT AUSTIN" 195 | } 196 | ], 197 | "CountrySubentityCode": [ 198 | { 199 | "_": "01" 200 | } 201 | ], 202 | "AddressLine": [ 203 | { 204 | "Line": [ 205 | { 206 | "_": "NO. 21 & 23, JALAM MUTIARA EMAS 5/11," 207 | } 208 | ] 209 | }, 210 | { 211 | "Line": [ 212 | { 213 | "_": "TAMAN MOUNT AUSTIN, JOHOR," 214 | } 215 | ] 216 | } 217 | ], 218 | "Country": [ 219 | { 220 | "IdentificationCode": [ 221 | { 222 | "_": "MYS", 223 | "listID": "ISO3166-1", 224 | "listAgencyID": "6" 225 | } 226 | ] 227 | } 228 | ] 229 | } 230 | ], 231 | "PartyLegalEntity": [ 232 | { 233 | "RegistrationName": [ 234 | { 235 | "_": "General Public" 236 | } 237 | ] 238 | } 239 | ], 240 | "Contact": [ 241 | { 242 | "Telephone": [ 243 | { 244 | "_": "0127756434" 245 | } 246 | ], 247 | "ElectronicMail": [ 248 | { 249 | "_": "mount@hotmail.com" 250 | } 251 | ] 252 | } 253 | ] 254 | } 255 | ] 256 | } 257 | ], 258 | "TaxTotal": [ 259 | { 260 | "TaxAmount": [ 261 | { 262 | "_": 3.5, 263 | "currencyID": "MYR" 264 | } 265 | ], 266 | "TaxSubtotal": [ 267 | { 268 | "TaxableAmount": [ 269 | { 270 | "_": 35.0, 271 | "currencyID": "MYR" 272 | } 273 | ], 274 | "TaxAmount": [ 275 | { 276 | "_": 3.5, 277 | "currencyID": "MYR" 278 | } 279 | ], 280 | "TaxCategory": [ 281 | { 282 | "ID": [ 283 | { 284 | "_": "01" 285 | } 286 | ], 287 | "TaxScheme": [ 288 | { 289 | "ID": [ 290 | { 291 | "_": "OTH", 292 | "schemeID": "UN/ECE 5153", 293 | "schemeAgencyID": "6" 294 | } 295 | ] 296 | } 297 | ] 298 | } 299 | ] 300 | } 301 | ] 302 | } 303 | ], 304 | "LegalMonetaryTotal": [ 305 | { 306 | "LineExtensionAmount": [ 307 | { 308 | "_": 35.0, 309 | "currencyID": "MYR" 310 | } 311 | ], 312 | "TaxExclusiveAmount": [ 313 | { 314 | "_": 35.0, 315 | "currencyID": "MYR" 316 | } 317 | ], 318 | "TaxInclusiveAmount": [ 319 | { 320 | "_": 38.5, 321 | "currencyID": "MYR" 322 | } 323 | ], 324 | "AllowanceTotalAmount": [ 325 | { 326 | "_": 5.0, 327 | "currencyID": "MYR" 328 | } 329 | ], 330 | "PayableAmount": [ 331 | { 332 | "_": 38.5, 333 | "currencyID": "MYR" 334 | } 335 | ] 336 | } 337 | ], 338 | "InvoiceLine": [ 339 | { 340 | "ID": [ 341 | { 342 | "_": "1" 343 | } 344 | ], 345 | "InvoicedQuantity": [ 346 | { 347 | "_": 2.0, 348 | "unitCode": "H87" 349 | } 350 | ], 351 | "LineExtensionAmount": [ 352 | { 353 | "_": 35.0, 354 | "currencyID": "MYR" 355 | } 356 | ], 357 | "AllowanceCharge": [ 358 | { 359 | "ChargeIndicator": [ 360 | { 361 | "_": false 362 | } 363 | ], 364 | "AllowanceChargeReason": [ 365 | { 366 | "_": "Item Discount" 367 | } 368 | ], 369 | "Amount": [ 370 | { 371 | "_": 5.0, 372 | "currencyID": "MYR" 373 | } 374 | ], 375 | "MultiplierFactorNumeric": [ 376 | { 377 | "_": 1.0 378 | } 379 | ] 380 | } 381 | ], 382 | "TaxTotal": [ 383 | { 384 | "TaxAmount": [ 385 | { 386 | "_": 3.5, 387 | "currencyID": "MYR" 388 | } 389 | ], 390 | "TaxSubtotal": [ 391 | { 392 | "TaxableAmount": [ 393 | { 394 | "_": 35.0, 395 | "currencyID": "MYR" 396 | } 397 | ], 398 | "TaxAmount": [ 399 | { 400 | "_": 3.5, 401 | "currencyID": "MYR" 402 | } 403 | ], 404 | "TaxCategory": [ 405 | { 406 | "ID": [ 407 | { 408 | "_": "01" 409 | } 410 | ], 411 | "Percent": [ 412 | { 413 | "_": 10.0 414 | } 415 | ], 416 | "TaxScheme": [ 417 | { 418 | "ID": [ 419 | { 420 | "_": "OTH", 421 | "schemeID": "UN/ECE 5153", 422 | "schemeAgencyID": "6" 423 | } 424 | ] 425 | } 426 | ] 427 | } 428 | ] 429 | } 430 | ] 431 | } 432 | ], 433 | "Item": [ 434 | { 435 | "CommodityClassification": [ 436 | { 437 | "ItemClassificationCode": [ 438 | { 439 | "_": "003", 440 | "listID": "CLASS" 441 | } 442 | ] 443 | } 444 | ], 445 | "Description": [ 446 | { 447 | "_": "Computer Monitor 24 inch" 448 | } 449 | ] 450 | } 451 | ], 452 | "Price": [ 453 | { 454 | "PriceAmount": [ 455 | { 456 | "_": 20.0, 457 | "currencyID": "MYR" 458 | } 459 | ] 460 | } 461 | ], 462 | "ItemPriceExtension": [ 463 | { 464 | "Amount": [ 465 | { 466 | "_": 40.0, 467 | "currencyID": "MYR" 468 | } 469 | ] 470 | } 471 | ] 472 | } 473 | ] 474 | } 475 | ] 476 | } 477 | -------------------------------------------------------------------------------- /jsonsamples/JsonWithSignature.json: -------------------------------------------------------------------------------- 1 | { 2 | "_D": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2", 3 | "_A": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", 4 | "_B": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", 5 | "Invoice": [ 6 | { 7 | "UBLExtensions": [ 8 | { 9 | "UBLExtension": [ 10 | { 11 | "ExtensionURI": [ 12 | { 13 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 14 | } 15 | ], 16 | "ExtensionContent": [ 17 | { 18 | "UBLDocumentSignatures": [ 19 | { 20 | "SignatureInformation": [ 21 | { 22 | "ID": [ 23 | { 24 | "_": "urn:oasis:names:specification:ubl:signature:1" 25 | } 26 | ], 27 | "ReferencedSignatureID": [ 28 | { 29 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 30 | } 31 | ], 32 | "Signature": [ 33 | { 34 | "Id": "signature", 35 | "Object": [ 36 | { 37 | "QualifyingProperties": [ 38 | { 39 | "Target": "signature", 40 | "SignedProperties": [ 41 | { 42 | "Id": "id-xades-signed-props", 43 | "SignedSignatureProperties": [ 44 | { 45 | "SigningTime": [ 46 | { 47 | "_": "2024-07-10T07:26:32Z" 48 | } 49 | ], 50 | "SigningCertificate": [ 51 | { 52 | "Cert": [ 53 | { 54 | "CertDigest": [ 55 | { 56 | "DigestMethod": [ 57 | { 58 | "_": "", 59 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 60 | } 61 | ], 62 | "DigestValue": [ 63 | { 64 | "_": "SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE=" 65 | } 66 | ] 67 | } 68 | ], 69 | "IssuerSerial": [ 70 | { 71 | "X509IssuerName": [ 72 | { 73 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 74 | } 75 | ], 76 | "X509SerialNumber": [ 77 | { 78 | "_": "352825" 79 | } 80 | ] 81 | } 82 | ] 83 | } 84 | ] 85 | } 86 | ] 87 | } 88 | ] 89 | } 90 | ] 91 | } 92 | ] 93 | } 94 | ], 95 | "KeyInfo": [ 96 | { 97 | "X509Data": [ 98 | { 99 | "X509Certificate": [ 100 | { 101 | "_": "MIIFmTCCA4GgAwIBAgIDBWI5MA0GCSqGSIb3DQEBCwUAMHUxCzAJk1ZMQ4wDAYDVQQKEwVMSEROTTE2MDQGA1UECxMtVGVybXMgb2YgdXNlIGF0IGh0dHA6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15MR4wHAYDVQQDExVUcmlhbCBMSEROTSBTdWIgQ0EgVjEwHhcNMjQwNjI0MTM0NzAyWhcNMjQwOTIyMTM0NzAyWjCBrjELMAkGA1UEBhMCTVkxJjAkBgNVBAoTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQRhEwxDMjA0MDc3NzcxMDAxJjAkBgNVBAMTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQQFEwwyMDA4MDEwMTI5NDMxITAfBgkqhkiG9w0BCQEWEmhyQHdpbmNvbS10ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPfj7yzpRLbA14wCYBj3GlUAfgiYgi/Pqq9vRzEg9w4DaNcockZoFoR2KNFej9oVBp4QwL26pQmtP+dW9EYhk9wkO8pO9chlYJC0oEWlp5QmMIdxYznYa0FrE1dXF5s+KM4sz+YUrKv0xoGC4d2yViYpDoGyjomlJvZDw1kYOIU85YMqCvGQ6Fy3+pvfPIz8mw/i8ohoSr3B40aBvKk1k87LeQroozRsWv/HAnoZhfWNj/tCY+D9khLO+AumBST5vuQGaCM0QljwVVM1bGB8nVBm63IkFgbg981lGVl7eRHx9/wxQAe66z4ZiisHOy3svCW4CvvCNfI1yRlENqjhQ0CAwEAAaOB9zCB9DAfBgNVHSUEGDAWBggrBgEFBQcDBAYKKwYBBAGCNwoDDDARBgNVHQ4ECgQIRs2oXxJ4NI4wUwYDVR0gBEwwSjBIBgkrBgEEAYOKRQEwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15L3JlcG9zaXRvcnkvY3BzMBMGA1UdIwQMMAqACE1/2Wu2xQjQMA4GA1UdDwEB/wQEAwIGQDBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vdHJpYWxjcmwucG9zZGlnaWNlcnQuY29tLm15L1RyaWFsTEhETk1WMS5jcmwwDQYJKoZIhvcNAQELBQADggIBABdKH4jeXadccLvOZCgkNer+UfWDS8Y2HkKHaIUPFpRlblFg/CaLkZqnGzHRoFZwG3UbWNWLQbziOhmwwN8hm9+cViB/gJlEPA1PLlAtsICaRDwIQg+0Ulh+quNUErsgmQbw9m04pL13LUQuc1puzGayg4Tf/TZdqPHnhiKbI0Ro0pISq04SGvmMlwwOK7OEfis1xjRdwPSDVM19qsqPbEG1TfgeN7rwUkQ5QI/OKdbMBZqLs5c0neeCpgauQ/EJ4qw5SZAxENzSkZne29svnkUVP6qcwY0CIH9uppvzNh1Sy8pecXgN5z+AqV20obiS65Or2+3zkBmb0W4m4mEcIrwq9Fbyrs6tASCFCfkjIUq7ZCYBtwn29jj8phunrndTDpvQq7JKzKVztWyOBTOqjgCy31qBrBPWPyvO7go67c02IEdnmV4l8I5ff4TewDNsgvManO/rTGOpdL8mdYixKMeR6OxQ3UNyz0GGUWfpktYb60q2Y5F1cF3YkdpqEKLi9C39koi/uxX6+iFBiCmuoFquZA6HvSjw7HzG7JPwDplL8iBtYHBa8ISd24ffWE5T429sKNzdD/cXdfVNMFbyY+aHWBSi+9G5GdqPV+4et47QyL8prg3c+kdXd7oczdrUH6V+IXcgf5gt99M5kNbJ2jak5PS6WtHz63OYMJZLdvPH" 102 | } 103 | ], 104 | "X509SubjectName": [ 105 | { 106 | "_": "E=hr@wincom-tech.com, SERIALNUMBER=20090101999, CN=IT SOLUTIONS SDN. BHD., OID.2.5.4.97=C2040773455, O=IT SOLUTIONS SDN. BHD., C=MY" 107 | } 108 | ], 109 | "X509IssuerSerial": [ 110 | { 111 | "X509IssuerName": [ 112 | { 113 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 114 | } 115 | ], 116 | "X509SerialNumber": [ 117 | { 118 | "_": "352825" 119 | } 120 | ] 121 | } 122 | ] 123 | } 124 | ] 125 | } 126 | ], 127 | "SignatureValue": [ 128 | { 129 | "_": "lLhfewSjj5Km3A2Oi5TPEYbmueTpLF+nx1gVpcrT8PwqKwR9e+ypUVEwJ/ZgSdfrjHmMlxLTHC59/kDya0jZ/VZjoaJ+MUi7dTg1eDUmCQfr944ZOH0P+NCUEFzHV84oG4xWCZXYwpKb7PpqUv1hpF5z8EPWYA73NgYXoDFf8XqNuvzKALCSb2laaJa0UNKQKPoe2u1TBCw1KBa4T62Of26rNqhE+ZdAQ6WSnBehHnRZqot+dugiKjeDsegq5IYC8/Nf4RHbVhq2OXBjS0+VM+MzrQQIApptPm0wSCqAuLFUSakzsgkg+3MLjn+2WBFhBRDdWK12J7Q==" 130 | } 131 | ], 132 | "SignedInfo": [ 133 | { 134 | "SignatureMethod": [ 135 | { 136 | "_": "", 137 | "Algorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" 138 | } 139 | ], 140 | "Reference": [ 141 | { 142 | "Id": "id-doc-signed-data", 143 | "URI": "", 144 | "DigestMethod": [ 145 | { 146 | "_": "", 147 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 148 | } 149 | ], 150 | "DigestValue": [ 151 | { 152 | "_": "a9ggCQNYQBhvy/E3ZOBZsL9kV2iFtDjHuZk3HYRLq38=" 153 | } 154 | ] 155 | }, 156 | { 157 | "Id": "id-xades-signed-props", 158 | "Type": "http://uri.etsi.org/01903/v1.3.2#SignedProperties", 159 | "URI": "#id-xades-signed-props", 160 | "DigestMethod": [ 161 | { 162 | "_": "", 163 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 164 | } 165 | ], 166 | "DigestValue": [ 167 | { 168 | "_": "AhcQFyr1jpMCMvGrNCN0ClCfGhfUbu/5RhwRQ1otwl4=" 169 | } 170 | ] 171 | } 172 | ] 173 | } 174 | ] 175 | } 176 | ] 177 | } 178 | ] 179 | } 180 | ] 181 | } 182 | ] 183 | } 184 | ] 185 | } 186 | ], 187 | "ID": [ 188 | { 189 | "_": "IV0000132001" 190 | } 191 | ], 192 | "IssueDate": [ 193 | { 194 | "_": "2024-07-10" 195 | } 196 | ], 197 | "IssueTime": [ 198 | { 199 | "_": "07:26:00Z" 200 | } 201 | ], 202 | "InvoiceTypeCode": [ 203 | { 204 | "_": "01", 205 | "listVersionID": "1.1" 206 | } 207 | ], 208 | "DocumentCurrencyCode": [ 209 | { 210 | "_": "MYR" 211 | } 212 | ], 213 | "Signature": [ 214 | { 215 | "ID": [ 216 | { 217 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 218 | } 219 | ], 220 | "SignatureMethod": [ 221 | { 222 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 223 | } 224 | ] 225 | } 226 | ], 227 | "InvoicePeriod": [ 228 | { 229 | "StartDate": [ 230 | { 231 | "_": "2024-07-10" 232 | } 233 | ], 234 | "EndDate": [ 235 | { 236 | "_": "2024-07-10" 237 | } 238 | ], 239 | "Description": [ 240 | { 241 | "_": "Daily" 242 | } 243 | ] 244 | } 245 | ], 246 | "BillingReference": [ 247 | { 248 | "AdditionalDocumentReference": [ 249 | { 250 | "ID": [ 251 | { 252 | "_": "IV0000132001" 253 | } 254 | ] 255 | } 256 | ] 257 | } 258 | ], 259 | "AccountingSupplierParty": [ 260 | { 261 | "Party": [ 262 | { 263 | "IndustryClassificationCode": [ 264 | { 265 | "_": "62099", 266 | "name": "Other information technology service activities n.e.c." 267 | } 268 | ], 269 | "PartyIdentification": [ 270 | { 271 | "ID": [ 272 | { 273 | "_": "C20407777999", 274 | "schemeID": "TIN" 275 | } 276 | ] 277 | }, 278 | { 279 | "ID": [ 280 | { 281 | "_": "20080101999", 282 | "schemeID": "BRN" 283 | } 284 | ] 285 | } 286 | ], 287 | "PostalAddress": [ 288 | { 289 | "CityName": [ 290 | { 291 | "_": "Cheras" 292 | } 293 | ], 294 | "CountrySubentityCode": [ 295 | { 296 | "_": "14" 297 | } 298 | ], 299 | "AddressLine": [ 300 | { 301 | "Line": [ 302 | { 303 | "_": "B, 14, Jalan 4/142a, " 304 | } 305 | ] 306 | }, 307 | { 308 | "Line": [ 309 | { 310 | "_": "Cheras, 56000 Cheras" 311 | } 312 | ] 313 | }, 314 | { 315 | "Line": [ 316 | { 317 | "_": "Wilayah Persekutuan Kuala Lumpur" 318 | } 319 | ] 320 | } 321 | ], 322 | "Country": [ 323 | { 324 | "IdentificationCode": [ 325 | { 326 | "_": "MYS", 327 | "listID": "ISO3166-1", 328 | "listAgencyID": "6" 329 | } 330 | ] 331 | } 332 | ] 333 | } 334 | ], 335 | "PartyLegalEntity": [ 336 | { 337 | "RegistrationName": [ 338 | { 339 | "_": "COMPUTER SYSTEMS SERVICES" 340 | } 341 | ] 342 | } 343 | ], 344 | "Contact": [ 345 | { 346 | "Telephone": [ 347 | { 348 | "_": "019-562 3923" 349 | } 350 | ], 351 | "ElectronicMail": [ 352 | { 353 | "_": "Info@computer.com.my" 354 | } 355 | ] 356 | } 357 | ] 358 | } 359 | ] 360 | } 361 | ], 362 | "AccountingCustomerParty": [ 363 | { 364 | "Party": [ 365 | { 366 | "PartyIdentification": [ 367 | { 368 | "ID": [ 369 | { 370 | "_": "C2402945234", 371 | "schemeID": "TIN" 372 | } 373 | ] 374 | }, 375 | { 376 | "ID": [ 377 | { 378 | "_": "201501227245", 379 | "schemeID": "BRN" 380 | } 381 | ] 382 | } 383 | ], 384 | "PostalAddress": [ 385 | { 386 | "CityName": [ 387 | { 388 | "_": "MOUNT AUSTIN" 389 | } 390 | ], 391 | "CountrySubentityCode": [ 392 | { 393 | "_": "01" 394 | } 395 | ], 396 | "AddressLine": [ 397 | { 398 | "Line": [ 399 | { 400 | "_": "NO. 21 & 23, JALAM MUTIARA EMAS 5/11," 401 | } 402 | ] 403 | }, 404 | { 405 | "Line": [ 406 | { 407 | "_": "TAMAN MOUNT AUSTIN, JOHOR," 408 | } 409 | ] 410 | } 411 | ], 412 | "Country": [ 413 | { 414 | "IdentificationCode": [ 415 | { 416 | "_": "MYS", 417 | "listID": "ISO3166-1", 418 | "listAgencyID": "6" 419 | } 420 | ] 421 | } 422 | ] 423 | } 424 | ], 425 | "PartyLegalEntity": [ 426 | { 427 | "RegistrationName": [ 428 | { 429 | "_": "General Public" 430 | } 431 | ] 432 | } 433 | ], 434 | "Contact": [ 435 | { 436 | "Telephone": [ 437 | { 438 | "_": "0127756434" 439 | } 440 | ], 441 | "ElectronicMail": [ 442 | { 443 | "_": "mount@hotmail.com" 444 | } 445 | ] 446 | } 447 | ] 448 | } 449 | ] 450 | } 451 | ], 452 | "TaxTotal": [ 453 | { 454 | "TaxAmount": [ 455 | { 456 | "_": 3.5, 457 | "currencyID": "MYR" 458 | } 459 | ], 460 | "TaxSubtotal": [ 461 | { 462 | "TaxableAmount": [ 463 | { 464 | "_": 35.0, 465 | "currencyID": "MYR" 466 | } 467 | ], 468 | "TaxAmount": [ 469 | { 470 | "_": 3.5, 471 | "currencyID": "MYR" 472 | } 473 | ], 474 | "TaxCategory": [ 475 | { 476 | "ID": [ 477 | { 478 | "_": "01" 479 | } 480 | ], 481 | "TaxScheme": [ 482 | { 483 | "ID": [ 484 | { 485 | "_": "OTH", 486 | "schemeID": "UN/ECE 5153", 487 | "schemeAgencyID": "6" 488 | } 489 | ] 490 | } 491 | ] 492 | } 493 | ] 494 | } 495 | ] 496 | } 497 | ], 498 | "LegalMonetaryTotal": [ 499 | { 500 | "LineExtensionAmount": [ 501 | { 502 | "_": 35.0, 503 | "currencyID": "MYR" 504 | } 505 | ], 506 | "TaxExclusiveAmount": [ 507 | { 508 | "_": 35.0, 509 | "currencyID": "MYR" 510 | } 511 | ], 512 | "TaxInclusiveAmount": [ 513 | { 514 | "_": 38.5, 515 | "currencyID": "MYR" 516 | } 517 | ], 518 | "AllowanceTotalAmount": [ 519 | { 520 | "_": 5.0, 521 | "currencyID": "MYR" 522 | } 523 | ], 524 | "PayableAmount": [ 525 | { 526 | "_": 38.5, 527 | "currencyID": "MYR" 528 | } 529 | ] 530 | } 531 | ], 532 | "InvoiceLine": [ 533 | { 534 | "ID": [ 535 | { 536 | "_": "1" 537 | } 538 | ], 539 | "InvoicedQuantity": [ 540 | { 541 | "_": 2.0, 542 | "unitCode": "H87" 543 | } 544 | ], 545 | "LineExtensionAmount": [ 546 | { 547 | "_": 35.0, 548 | "currencyID": "MYR" 549 | } 550 | ], 551 | "AllowanceCharge": [ 552 | { 553 | "ChargeIndicator": [ 554 | { 555 | "_": false 556 | } 557 | ], 558 | "AllowanceChargeReason": [ 559 | { 560 | "_": "Item Discount" 561 | } 562 | ], 563 | "Amount": [ 564 | { 565 | "_": 5.0, 566 | "currencyID": "MYR" 567 | } 568 | ], 569 | "MultiplierFactorNumeric": [ 570 | { 571 | "_": 1.0 572 | } 573 | ] 574 | } 575 | ], 576 | "TaxTotal": [ 577 | { 578 | "TaxAmount": [ 579 | { 580 | "_": 3.5, 581 | "currencyID": "MYR" 582 | } 583 | ], 584 | "TaxSubtotal": [ 585 | { 586 | "TaxableAmount": [ 587 | { 588 | "_": 35.0, 589 | "currencyID": "MYR" 590 | } 591 | ], 592 | "TaxAmount": [ 593 | { 594 | "_": 3.5, 595 | "currencyID": "MYR" 596 | } 597 | ], 598 | "TaxCategory": [ 599 | { 600 | "ID": [ 601 | { 602 | "_": "01" 603 | } 604 | ], 605 | "Percent": [ 606 | { 607 | "_": 10.0 608 | } 609 | ], 610 | "TaxScheme": [ 611 | { 612 | "ID": [ 613 | { 614 | "_": "OTH", 615 | "schemeID": "UN/ECE 5153", 616 | "schemeAgencyID": "6" 617 | } 618 | ] 619 | } 620 | ] 621 | } 622 | ] 623 | } 624 | ] 625 | } 626 | ], 627 | "Item": [ 628 | { 629 | "CommodityClassification": [ 630 | { 631 | "ItemClassificationCode": [ 632 | { 633 | "_": "003", 634 | "listID": "CLASS" 635 | } 636 | ] 637 | } 638 | ], 639 | "Description": [ 640 | { 641 | "_": "Computer Monitor 24 inch" 642 | } 643 | ] 644 | } 645 | ], 646 | "Price": [ 647 | { 648 | "PriceAmount": [ 649 | { 650 | "_": 20.0, 651 | "currencyID": "MYR" 652 | } 653 | ] 654 | } 655 | ], 656 | "ItemPriceExtension": [ 657 | { 658 | "Amount": [ 659 | { 660 | "_": 40.0, 661 | "currencyID": "MYR" 662 | } 663 | ] 664 | } 665 | ] 666 | } 667 | ] 668 | } 669 | ] 670 | } 671 | -------------------------------------------------------------------------------- /jsonsamples/Json_Note.txt: -------------------------------------------------------------------------------- 1 | 1. string jsonString = SerializeJson(invoicedoc); --> assume the invoice is the class 2 | byte[] docHash = Sha256Hash(jsonString); --> docHash 3 | 4 | 2. byte[] sign = SignData(docHash); --> sign the data become Sig digest 5 | 6 | 3. The certificate serialnumber is BigInteger or Int64 7 | convert via Int64.Parse(cert.SerialNumber, NumberStyles.HexNumber); 8 | in json file should look like this 9 | "X509SerialNumber":[{"_" : 352825}] 10 | 11 | 4. the certificate hash 12 | byte[] rawcertbytes = cert.RawData; 13 | byte[] certbytes = Sha256HashBytes(rawcertbytes); 14 | certDigest =Convert.ToBase64String(certbytes); 15 | x509Certificate = Convert.ToBase64String(rawcertbytes); -- certificate data 16 | 17 | 5. the signTime = DateTime.UtcNow().ToString("yyyy-MM-ddTHH:mm:ssZ"); -------------------------------------------------------------------------------- /jsonsamples/JsonsampleWithForeigncurrency.json: -------------------------------------------------------------------------------- 1 | { 2 | "_D": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2", 3 | "_A": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", 4 | "_B": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", 5 | "Invoice": [ 6 | { 7 | "UBLExtensions": [ 8 | { 9 | "UBLExtension": [ 10 | { 11 | "ExtensionURI": [ 12 | { 13 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 14 | } 15 | ], 16 | "ExtensionContent": [ 17 | { 18 | "UBLDocumentSignatures": [ 19 | { 20 | "SignatureInformation": [ 21 | { 22 | "ID": [ 23 | { 24 | "_": "urn:oasis:names:specification:ubl:signature:1" 25 | } 26 | ], 27 | "ReferencedSignatureID": [ 28 | { 29 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 30 | } 31 | ], 32 | "Signature": [ 33 | { 34 | "Id": "signature", 35 | "SignedInfo": [ 36 | { 37 | "SignatureMethod": [ 38 | { 39 | "_": "", 40 | "Algorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" 41 | } 42 | ], 43 | "Reference": [ 44 | { 45 | "Id": "id-doc-signed-data", 46 | "Type": "", 47 | "URI": "", 48 | "DigestMethod": [ 49 | { 50 | "_": "", 51 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 52 | } 53 | ], 54 | "DigestValue": [ 55 | { 56 | "_": "XpHplp4TFLsl5PyZ2sbXiw2JdzG63MocDohqcZL1/hE=" 57 | } 58 | ] 59 | }, 60 | { 61 | "Id": "id-xades-signed-props", 62 | "Type": "http://uri.etsi.org/01903/v1.3.2#SignedProperties", 63 | "URI": "#id-xades-signed-props", 64 | "DigestMethod": [ 65 | { 66 | "_": "", 67 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 68 | } 69 | ], 70 | "DigestValue": [ 71 | { 72 | "_": "qym6QZJz3xATHGV6MbZOdsp3WW4iKrBfnPch2VpR0ew=" 73 | } 74 | ] 75 | } 76 | ] 77 | } 78 | ], 79 | "SignatureValue": [ 80 | { 81 | "_": "ox5pfvoS1qq4qjbsz3IcQLatimLvb7licN6FpTu0ZJSs0lU1RhEVZWwJp7fTib1/niErpU04qho3l5hM/a5C1VutJBVQW35U+dSAwGzBTNvBb9elZ+yiDLN+Hno0vdUD5aQZOY29ckg0Y2vBpBPVOc9gAqT+7Gfw3jeCSXIUeR7QQqC2FK4fwLNzIQJJtbFXvbQBd5cVNmMWLUeiu/DCBWloXaNVg344QEb7i6FSbZD6xTay+E+GdSIQul1GzBCyrnW3GllonVMdldqik+Y4ctX2ObclvIQOHBipK7/vf2EENp4jtg9EsEbd/eLr1VsWM0wiGqOFlZBUFUJofmcdfw==" 82 | } 83 | ], 84 | "KeyInfo": [ 85 | { 86 | "KeyValue": [ 87 | { 88 | "RSAKeyValue": [ 89 | { 90 | "Modulus": [ 91 | { 92 | "_": "o9+PvLOlEtsDXjAJgGPcaVQB+CJiCL8+qr29HMSD3DgNo1yhyRmgWhHYo0V6P2hUGnhDAvbqlCa0/51b0RiGT3CQ7yk71yGVgkLSgRaWnlCYwh3FjOdhrQWsTV1cXmz4ozizP5hSsq/TGgYLh3bJWJikOgbKOiaUm9kPDWRg4hTzlgyoK8ZDoXLf6m988jPybD+LyiGhKvcHjRoG8qTWTzst5CuijNGxa/8cCehmF9Y2P+0Jj4P2SEs74C6YFJPm+5AZoIzRCWPBVUzVsYHydUGbrciQWBuD3zWUZWXt5EfH3/DFAB7rrPhmKKwc7Ley8JbgK+8I18jXJGUQ2qOFDQ==" 93 | } 94 | ], 95 | "Exponent": [ 96 | { 97 | "_": "AQAB" 98 | } 99 | ] 100 | } 101 | ] 102 | } 103 | ], 104 | "X509Data": [ 105 | { 106 | "X509Certificate": [ 107 | { 108 | "_": "MIIFmTCCA4GgAwIBAgIDBWI5MA0GCSqGSIb3DQEBCwUAMHUxCzAJBgNVBAYTAk1ZMQ4wDAYDVQQKEwVMSEROTTE2MDQGA1UECxMtVGVybXMgb2YgdXNlIGF0IGh0dHA6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15MR4wHAYDVQQDExVUcmlhbCBMSEROTSBTdWIgQ0EgVjEwHhcNMjQwNjI0MTM0NzAyWhcNMjQwOTIyMTM0NzAyWjCBrjELMAkGA1UEBhMCTVkxJjAkBgNVBAoTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQRhEwxDMjA0MDc3NzcxMDAxJjAkBgNVBAMTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQQFEwwyMDA4MDEwMTI5NDMxITAfBgkqhkiG9w0BCQEWEmhyQHdpbmNvbS10ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPfj7yzpRLbA14wCYBj3GlUAfgiYgi/Pqq9vRzEg9w4DaNcockZoFoR2KNFej9oVBp4QwL26pQmtP+dW9EYhk9wkO8pO9chlYJC0oEWlp5QmMIdxYznYa0FrE1dXF5s+KM4sz+YUrKv0xoGC4d2yViYpDoGyjomlJvZDw1kYOIU85YMqCvGQ6Fy3+pvfPIz8mw/i8ohoSr3B40aBvKk1k87LeQroozRsWv/HAnoZhfWNj/tCY+D9khLO+AumBST5vuQGaCM0QljwVVM1bGB8nVBm63IkFgbg981lGVl7eRHx9/wxQAe66z4ZiisHOy3svCW4CvvCNfI1yRlENqjhQ0CAwEAAaOB9zCB9DAfBgNVHSUEGDAWBggrBgEFBQcDBAYKKwYBBAGCNwoDDDARBgNVHQ4ECgQIRs2oXxJ4NI4wUwYDVR0gBEwwSjBIBgkrBgEEAYOKRQEwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15L3JlcG9zaXRvcnkvY3BzMBMGA1UdIwQMMAqACE1/2Wu2xQjQMA4GA1UdDwEB/wQEAwIGQDBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vdHJpYWxjcmwucG9zZGlnaWNlcnQuY29tLm15L1RyaWFsTEhETk1WMS5jcmwwDQYJKoZIhvcNAQELBQADggIBABdKH4jeXadccLvOZCgkNer+UfWDS8Y2HkKHaIUPFpRlblFg/CaLkZqnGzHRoFZwG3UbWNWLQbziOhmwwN8hm9+cViB/gJlEPA1PLlAtsICaRDwIQg+0Ulh+quNUErsgmQbw9m04pL13LUQuc1puzGayg4Tf/TZdqPHnhiKbI0Ro0pISq04SGvmMlwwOK7OEfis1xjRdwPSDVM19qsqPbEG1TfgeN7rwUkQ5QI/OKdbMBZqLs5c0neeCpgauQ/EJ4qw5SZAxENzSkZne29svnkUVP6qcwY0CIH9uppvzNh1Sy8pecXgN5z+AqV20obiS65Or2+3zkBmb0W4m4mEcIrwq9Fbyrs6tASCFCfkjIUq7ZCYBtwn29jj8phunrndTDpvQq7JKzKVztWyOBTOqjgCy31qBrBPWPyvO7go67c02IEdnmV4l8I5ff4TewDNsgvManO/rTGOpdL8mdYixKMeR6OxQ3UNyz0GGUWfpktYb60q2Y5F1cF3YkdpqEKLi9C39koi/uxX6+iFBiCmuoFquZA6HvSjw7HzG7JPwDplL8iBtYHBa8ISd24ffWE5T429sKNzdD/cXdfVNMFbyY+aHWBSi+9G5GdqPV+4et47QyL8prg3c+kdXd7oczdrUH6V+IXcgf5gt99M5kNbJ2jak5PS6WtHz63OYMJZLdvPH" 109 | } 110 | ], 111 | "X509SubjectName": [ 112 | { 113 | "_": "E=hr@demo-tech.com, SERIALNUMBER=200801012888, CN=DEMO IT SOLUTIONS SDN. BHD., OID.2.5.4.97=C20407777999, O=DEMO IT SOLUTIONS SDN. BHD., C=MY" 114 | } 115 | ], 116 | "X509IssuerSerial": [ 117 | { 118 | "X509IssuerName": [ 119 | { 120 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 121 | } 122 | ], 123 | "X509SerialNumber": [ 124 | { 125 | "_": "352825" 126 | } 127 | ] 128 | } 129 | ] 130 | } 131 | ] 132 | } 133 | ], 134 | "Object": [ 135 | { 136 | "QualifyingProperties": [ 137 | { 138 | "Target": "signature", 139 | "SignedProperties": [ 140 | { 141 | "Id": "id-xades-signed-props", 142 | "SignedSignatureProperties": [ 143 | { 144 | "SigningTime": [ 145 | { 146 | "_": "2024-07-31T10:04:32Z" 147 | } 148 | ], 149 | "SigningCertificate": [ 150 | { 151 | "Cert": [ 152 | { 153 | "CertDigest": [ 154 | { 155 | "DigestMethod": [ 156 | { 157 | "_": "", 158 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 159 | } 160 | ], 161 | "DigestValue": [ 162 | { 163 | "_": "SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE=" 164 | } 165 | ] 166 | } 167 | ], 168 | "IssuerSerial": [ 169 | { 170 | "X509IssuerName": [ 171 | { 172 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 173 | } 174 | ], 175 | "X509SerialNumber": [ 176 | { 177 | "_": "352825" 178 | } 179 | ] 180 | } 181 | ] 182 | } 183 | ] 184 | } 185 | ] 186 | } 187 | ] 188 | } 189 | ] 190 | } 191 | ] 192 | } 193 | ] 194 | } 195 | ] 196 | } 197 | ] 198 | } 199 | ] 200 | } 201 | ] 202 | } 203 | ] 204 | } 205 | ], 206 | "ID": [ 207 | { 208 | "_": "INV240700045" 209 | } 210 | ], 211 | "IssueDate": [ 212 | { 213 | "_": "2024-07-31" 214 | } 215 | ], 216 | "IssueTime": [ 217 | { 218 | "_": "10:04:00Z" 219 | } 220 | ], 221 | "InvoiceTypeCode": [ 222 | { 223 | "_": "01", 224 | "listVersionID": "1.1" 225 | } 226 | ], 227 | "DocumentCurrencyCode": [ 228 | { 229 | "_": "EUR" 230 | } 231 | ], 232 | "TaxExchangeRate": [ 233 | { 234 | "CalculationRate": [ 235 | { 236 | "_": 5.1 237 | } 238 | ], 239 | "SourceCurrencyCode": [ 240 | { 241 | "_": "EUR" 242 | } 243 | ], 244 | "TargetCurrencyCode": [ 245 | { 246 | "_": "MYR" 247 | } 248 | ] 249 | } 250 | ], 251 | "Signature": [ 252 | { 253 | "ID": [ 254 | { 255 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 256 | } 257 | ], 258 | "SignatureMethod": [ 259 | { 260 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 261 | } 262 | ] 263 | } 264 | ], 265 | "InvoicePeriod": [ 266 | { 267 | "StartDate": [ 268 | { 269 | "_": "2024-07-31" 270 | } 271 | ], 272 | "EndDate": [ 273 | { 274 | "_": "2024-07-31" 275 | } 276 | ], 277 | "Description": [ 278 | { 279 | "_": "Daily" 280 | } 281 | ] 282 | } 283 | ], 284 | "BillingReference": [ 285 | { 286 | "AdditionalDocumentReference": [ 287 | { 288 | "ID": [ 289 | { 290 | "_": "INV240700045" 291 | } 292 | ] 293 | } 294 | ] 295 | } 296 | ], 297 | "AccountingSupplierParty": [ 298 | { 299 | "Party": [ 300 | { 301 | "IndustryClassificationCode": [ 302 | { 303 | "_": "62010", 304 | "name": "Computer programming activities" 305 | } 306 | ], 307 | "PartyIdentification": [ 308 | { 309 | "ID": [ 310 | { 311 | "_": "C20407777999", 312 | "schemeID": "TIN" 313 | } 314 | ] 315 | }, 316 | { 317 | "ID": [ 318 | { 319 | "_": "200801012888", 320 | "schemeID": "BRN" 321 | } 322 | ] 323 | }, 324 | { 325 | "ID": [ 326 | { 327 | "_": "NA", 328 | "schemeID": "SST" 329 | } 330 | ] 331 | }, 332 | { 333 | "ID": [ 334 | { 335 | "_": "NA", 336 | "schemeID": "TTX" 337 | } 338 | ] 339 | } 340 | ], 341 | "PostalAddress": [ 342 | { 343 | "CityName": [ 344 | { 345 | "_": "81300 Johor Bahru, Johor" 346 | } 347 | ], 348 | "CountrySubentityCode": [ 349 | { 350 | "_": "01" 351 | } 352 | ], 353 | "AddressLine": [ 354 | { 355 | "Line": [ 356 | { 357 | "_": "16, Jln Kempas 4/5" 358 | } 359 | ] 360 | }, 361 | { 362 | "Line": [ 363 | { 364 | "_": "Taman Kempas Baru " 365 | } 366 | ] 367 | }, 368 | { 369 | "Line": [ 370 | { 371 | "_": "81400 Johor Bahru" 372 | } 373 | ] 374 | } 375 | ], 376 | "Country": [ 377 | { 378 | "IdentificationCode": [ 379 | { 380 | "_": "MYS", 381 | "listID": "ISO3166-1", 382 | "listAgencyID": "6" 383 | } 384 | ] 385 | } 386 | ] 387 | } 388 | ], 389 | "PartyLegalEntity": [ 390 | { 391 | "RegistrationName": [ 392 | { 393 | "_": "DEMO IT SOLUTIONS SDN. BHD." 394 | } 395 | ] 396 | } 397 | ], 398 | "Contact": [ 399 | { 400 | "Telephone": [ 401 | { 402 | "_": "07-562 5999" 403 | } 404 | ], 405 | "ElectronicMail": [ 406 | { 407 | "_": "sales@demo-tech.com" 408 | } 409 | ] 410 | } 411 | ] 412 | } 413 | ] 414 | } 415 | ], 416 | "AccountingCustomerParty": [ 417 | { 418 | "Party": [ 419 | { 420 | "PartyIdentification": [ 421 | { 422 | "ID": [ 423 | { 424 | "_": "EI00000000020", 425 | "schemeID": "TIN" 426 | } 427 | ] 428 | }, 429 | { 430 | "ID": [ 431 | { 432 | "_": "196666X", 433 | "schemeID": "BRN" 434 | } 435 | ] 436 | }, 437 | { 438 | "ID": [ 439 | { 440 | "_": "NA", 441 | "schemeID": "SST" 442 | } 443 | ] 444 | }, 445 | { 446 | "ID": [ 447 | { 448 | "_": "NA", 449 | "schemeID": "TTX" 450 | } 451 | ] 452 | } 453 | ], 454 | "PostalAddress": [ 455 | { 456 | "CityName": [ 457 | { 458 | "_": "WOLFURT" 459 | } 460 | ], 461 | "CountrySubentityCode": [ 462 | { 463 | "_": "17" 464 | } 465 | ], 466 | "AddressLine": [ 467 | { 468 | "Line": [ 469 | { 470 | "_": "KESSELSTRASSE 33" 471 | } 472 | ] 473 | }, 474 | { 475 | "Line": [ 476 | { 477 | "_": "A-6961 WOLFURT" 478 | } 479 | ] 480 | }, 481 | { 482 | "Line": [ 483 | { 484 | "_": "AUSTRIA" 485 | } 486 | ] 487 | } 488 | ], 489 | "Country": [ 490 | { 491 | "IdentificationCode": [ 492 | { 493 | "_": "AUT", 494 | "listID": "ISO3166-1", 495 | "listAgencyID": "6" 496 | } 497 | ] 498 | } 499 | ] 500 | } 501 | ], 502 | "PartyLegalEntity": [ 503 | { 504 | "RegistrationName": [ 505 | { 506 | "_": "MEUGEORG & CO KG" 507 | } 508 | ] 509 | } 510 | ], 511 | "Contact": [ 512 | { 513 | "Telephone": [ 514 | { 515 | "_": "435574674345" 516 | } 517 | ], 518 | "ElectronicMail": [ 519 | { 520 | "_": "m.feiner@MEUGEORG.com" 521 | } 522 | ] 523 | } 524 | ] 525 | } 526 | ] 527 | } 528 | ], 529 | "TaxTotal": [ 530 | { 531 | "TaxAmount": [ 532 | { 533 | "_": 0.0, 534 | "currencyID": "EUR" 535 | } 536 | ], 537 | "TaxSubtotal": [ 538 | { 539 | "TaxableAmount": [ 540 | { 541 | "_": 10.0, 542 | "currencyID": "EUR" 543 | } 544 | ], 545 | "TaxAmount": [ 546 | { 547 | "_": 0.0, 548 | "currencyID": "EUR" 549 | } 550 | ], 551 | "TaxCategory": [ 552 | { 553 | "ID": [ 554 | { 555 | "_": "06" 556 | } 557 | ], 558 | "TaxScheme": [ 559 | { 560 | "ID": [ 561 | { 562 | "_": "OTH", 563 | "schemeID": "UN/ECE 5153", 564 | "schemeAgencyID": "6" 565 | } 566 | ] 567 | } 568 | ] 569 | } 570 | ] 571 | } 572 | ] 573 | } 574 | ], 575 | "LegalMonetaryTotal": [ 576 | { 577 | "LineExtensionAmount": [ 578 | { 579 | "_": 10.0, 580 | "currencyID": "EUR" 581 | } 582 | ], 583 | "TaxExclusiveAmount": [ 584 | { 585 | "_": 10.0, 586 | "currencyID": "EUR" 587 | } 588 | ], 589 | "TaxInclusiveAmount": [ 590 | { 591 | "_": 10.0, 592 | "currencyID": "EUR" 593 | } 594 | ], 595 | "AllowanceTotalAmount": [ 596 | { 597 | "_": 0.0, 598 | "currencyID": "EUR" 599 | } 600 | ], 601 | "PayableAmount": [ 602 | { 603 | "_": 10.0, 604 | "currencyID": "EUR" 605 | } 606 | ] 607 | } 608 | ], 609 | "InvoiceLine": [ 610 | { 611 | "ID": [ 612 | { 613 | "_": "1" 614 | } 615 | ], 616 | "InvoicedQuantity": [ 617 | { 618 | "_": 1.0, 619 | "unitCode": "H87" 620 | } 621 | ], 622 | "LineExtensionAmount": [ 623 | { 624 | "_": 10.0, 625 | "currencyID": "EUR" 626 | } 627 | ], 628 | "TaxTotal": [ 629 | { 630 | "TaxAmount": [ 631 | { 632 | "_": 0.0, 633 | "currencyID": "EUR" 634 | } 635 | ], 636 | "TaxSubtotal": [ 637 | { 638 | "TaxableAmount": [ 639 | { 640 | "_": 10.0, 641 | "currencyID": "EUR" 642 | } 643 | ], 644 | "TaxAmount": [ 645 | { 646 | "_": 0.0, 647 | "currencyID": "EUR" 648 | } 649 | ], 650 | "Percent": [ 651 | { 652 | "_": 0.0 653 | } 654 | ], 655 | "TaxCategory": [ 656 | { 657 | "ID": [ 658 | { 659 | "_": "06" 660 | } 661 | ], 662 | "TaxScheme": [ 663 | { 664 | "ID": [ 665 | { 666 | "_": "OTH", 667 | "schemeID": "UN/ECE 5153", 668 | "schemeAgencyID": "6" 669 | } 670 | ] 671 | } 672 | ] 673 | } 674 | ] 675 | } 676 | ] 677 | } 678 | ], 679 | "Item": [ 680 | { 681 | "CommodityClassification": [ 682 | { 683 | "ItemClassificationCode": [ 684 | { 685 | "_": "003", 686 | "listID": "CLASS" 687 | } 688 | ] 689 | } 690 | ], 691 | "Description": [ 692 | { 693 | "_": "CUSTOMIZED PUNCH" 694 | } 695 | ] 696 | } 697 | ], 698 | "Price": [ 699 | { 700 | "PriceAmount": [ 701 | { 702 | "_": 10.0, 703 | "currencyID": "EUR" 704 | } 705 | ] 706 | } 707 | ], 708 | "ItemPriceExtension": [ 709 | { 710 | "Amount": [ 711 | { 712 | "_": 10.0, 713 | "currencyID": "EUR" 714 | } 715 | ] 716 | } 717 | ] 718 | } 719 | ] 720 | } 721 | ] 722 | } 723 | -------------------------------------------------------------------------------- /jsonsamples/Jsonwithsametaxtype.json: -------------------------------------------------------------------------------- 1 | { 2 | "_D": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2", 3 | "_A": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", 4 | "_B": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", 5 | "Invoice": [ 6 | { 7 | "UBLExtensions": [ 8 | { 9 | "UBLExtension": [ 10 | { 11 | "ExtensionURI": [ 12 | { 13 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 14 | } 15 | ], 16 | "ExtensionContent": [ 17 | { 18 | "UBLDocumentSignatures": [ 19 | { 20 | "SignatureInformation": [ 21 | { 22 | "ID": [ 23 | { 24 | "_": "urn:oasis:names:specification:ubl:signature:1" 25 | } 26 | ], 27 | "ReferencedSignatureID": [ 28 | { 29 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 30 | } 31 | ], 32 | "Signature": [ 33 | { 34 | "Id": "signature", 35 | "SignedInfo": [ 36 | { 37 | "SignatureMethod": [ 38 | { 39 | "_": "", 40 | "Algorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" 41 | } 42 | ], 43 | "Reference": [ 44 | { 45 | "Id": "id-doc-signed-data", 46 | "Type": "", 47 | "URI": "", 48 | "DigestMethod": [ 49 | { 50 | "_": "", 51 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 52 | } 53 | ], 54 | "DigestValue": [ 55 | { 56 | "_": "1hpIMeBtU/UZ12AHCrW9pdJDCItkC/rSyMybIT2pU0E=" 57 | } 58 | ] 59 | }, 60 | { 61 | "Id": "id-xades-signed-props", 62 | "Type": "http://uri.etsi.org/01903/v1.3.2#SignedProperties", 63 | "URI": "#id-xades-signed-props", 64 | "DigestMethod": [ 65 | { 66 | "_": "", 67 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 68 | } 69 | ], 70 | "DigestValue": [ 71 | { 72 | "_": "uVeAkVcdfdSFs3t2BqPcVkOM9B11VWoZZCXX+rSBzFQ=" 73 | } 74 | ] 75 | } 76 | ] 77 | } 78 | ], 79 | "SignatureValue": [ 80 | { 81 | "_": "Y+Nhxwcrzub+qNBGOehSz1ToPSMV61OuoeWrMrHgW5srip/wRFruIVsT98h97HTLsB+8enhZBFE/PB+EPOJ3MbFHTnS0EfSnrkYSNP+7AGJtqe/8ubE8x12tIvI92GRHTEAg+imMsZK2KANuyxUoiqnyK1Y98XnOPmwhbEyMbuLMOwZBgWvQkQTtlin1AlV0pQo/BVeZCLvMV7AS4zrZAztWOmWazO/E/j3MlBUKhEmQ/p5ZYToRAB6k66secho4WOBlM+tCZLFN2Yott+ZcRQii0Yf+kQsuJJxw5m6AHXeT9bbPcmqH13D41S17SK28UDYqKr6XUAG5UZ4J7Vppuw==" 82 | } 83 | ], 84 | "KeyInfo": [ 85 | { 86 | "X509Data": [ 87 | { 88 | "X509Certificate": [ 89 | { 90 | "_": "MIIFmTCCA4GgAwIBAgIDBWI5MA0GCSqGSIb3DQEBCwUAMHUxCzAJBgNVBAYTAk1ZMQ4wDAYDVQQKEwVMSEROTTE2MDQGA1UECxMtVGVybXMgb2YgdXNlIGF0IGh0dHA6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15MR4wHAYDVQQDExVUcmlhbCBMSEROTSBTdWIgQ0EgVjEwHhcNMjQwNjI0MTM0NzAyWhcNMjQwOTIyMTM0NzAyWjCBrjELMAkGA1UEBhMCTVkxJjAkBgNVBAoTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQRhEwxDMjA0MDc3NzcxMDAxJjAkBgNVBAMTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQQFEwwyMDA4MDEwMTI5NDMxITAfBgkqhkiG9w0BCQEWEmhyQHdpbmNvbS10ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPfj7yzpRLbA14wCYBj3GlUAfgiYgi/Pqq9vRzEg9w4DaNcockZoFoR2KNFej9oVBp4QwL26pQmtP+dW9EYhk9wkO8pO9chlYJC0oEWlp5QmMIdxYznYa0FrE1dXF5s+KM4sz+YUrKv0xoGC4d2yViYpDoGyjomlJvZDw1kYOIU85YMqCvGQ6Fy3+pvfPIz8mw/i8ohoSr3B40aBvKk1k87LeQroozRsWv/HAnoZhfWNj/tCY+D9khLO+AumBST5vuQGaCM0QljwVVM1bGB8nVBm63IkFgbg981lGVl7eRHx9/wxQAe66z4ZiisHOy3svCW4CvvCNfI1yRlENqjhQ0CAwEAAaOB9zCB9DAfBgNVHSUEGDAWBggrBgEFBQcDBAYKKwYBBAGCNwoDDDARBgNVHQ4ECgQIRs2oXxJ4NI4wUwYDVR0gBEwwSjBIBgkrBgEEAYOKRQEwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15L3JlcG9zaXRvcnkvY3BzMBMGA1UdIwQMMAqACE1/2Wu2xQjQMA4GA1UdDwEB/wQEAwIGQDBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vdHJpYWxjcmwucG9zZGlnaWNlcnQuY29tLm15L1RyaWFsTEhETk1WMS5jcmwwDQYJKoZIhvcNAQELBQADggIBABdKH4jeXadccLvOZCgkNer+UfWDS8Y2HkKHaIUPFpRlblFg/CaLkZqnGzHRoFZwG3UbWNWLQbziOhmwwN8hm9+cViB/gJlEPA1PLlAtsICaRDwIQg+0Ulh+quNUErsgmQbw9m04pL13LUQuc1puzGayg4Tf/TZdqPHnhiKbI0Ro0pISq04SGvmMlwwOK7OEfis1xjRdwPSDVM19qsqPbEG1TfgeN7rwUkQ5QI/OKdbMBZqLs5c0neeCpgauQ/EJ4qw5SZAxENzSkZne29svnkUVP6qcwY0CIH9uppvzNh1Sy8pecXgN5z+AqV20obiS65Or2+3zkBmb0W4m4mEcIrwq9Fbyrs6tASCFCfkjIUq7ZCYBtwn29jj8phunrndTDpvQq7JKzKVztWyOBTOqjgCy31qBrBPWPyvO7go67c02IEdnmV4l8I5ff4TewDNsgvManO/rTGOpdL8mdYixKMeR6OxQ3UNyz0GGUWfpktYb60q2Y5F1cF3YkdpqEKLi9C39koi/uxX6+iFBiCmuoFquZA6HvSjw7HzG7JPwDplL8iBtYHBa8ISd24ffWE5T429sKNzdD/cXdfVNMFbyY+aHWBSi+9G5GdqPV+4et47QyL8prg3c+kdXd7oczdrUH6V+IXcgf5gt99M5kNbJ2jak5PS6WtHz63OYMJZLdvPH" 91 | } 92 | ], 93 | "X509SubjectName": [ 94 | { 95 | "_": "E=hr@demo-tech.com, SERIALNUMBER=20080101999, CN=DEMO SOLUTIONS SDN. BHD., OID.2.5.4.97=C20407777999, O=DEMO IT SOLUTIONS SDN. BHD., C=MY" 96 | } 97 | ], 98 | "X509IssuerSerial": [ 99 | { 100 | "X509IssuerName": [ 101 | { 102 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 103 | } 104 | ], 105 | "X509SerialNumber": [ 106 | { 107 | "_": "352825" 108 | } 109 | ] 110 | } 111 | ] 112 | } 113 | ] 114 | } 115 | ], 116 | "Object": [ 117 | { 118 | "QualifyingProperties": [ 119 | { 120 | "Target": "signature", 121 | "SignedProperties": [ 122 | { 123 | "Id": "id-xades-signed-props", 124 | "SignedSignatureProperties": [ 125 | { 126 | "SigningTime": [ 127 | { 128 | "_": "2024-07-19T09:06:10Z" 129 | } 130 | ], 131 | "SigningCertificate": [ 132 | { 133 | "Cert": [ 134 | { 135 | "CertDigest": [ 136 | { 137 | "DigestMethod": [ 138 | { 139 | "_": "", 140 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 141 | } 142 | ], 143 | "DigestValue": [ 144 | { 145 | "_": "SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE=" 146 | } 147 | ] 148 | } 149 | ], 150 | "IssuerSerial": [ 151 | { 152 | "X509IssuerName": [ 153 | { 154 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 155 | } 156 | ], 157 | "X509SerialNumber": [ 158 | { 159 | "_": "352825" 160 | } 161 | ] 162 | } 163 | ] 164 | } 165 | ] 166 | } 167 | ] 168 | } 169 | ] 170 | } 171 | ] 172 | } 173 | ] 174 | } 175 | ] 176 | } 177 | ] 178 | } 179 | ] 180 | } 181 | ] 182 | } 183 | ] 184 | } 185 | ] 186 | } 187 | ], 188 | "ID": [ 189 | { 190 | "_": "INV240700025" 191 | } 192 | ], 193 | "IssueDate": [ 194 | { 195 | "_": "2024-07-19" 196 | } 197 | ], 198 | "IssueTime": [ 199 | { 200 | "_": "09:06:00Z" 201 | } 202 | ], 203 | "InvoiceTypeCode": [ 204 | { 205 | "_": "01", 206 | "listVersionID": "1.1" 207 | } 208 | ], 209 | "DocumentCurrencyCode": [ 210 | { 211 | "_": "MYR" 212 | } 213 | ], 214 | "Signature": [ 215 | { 216 | "ID": [ 217 | { 218 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 219 | } 220 | ], 221 | "SignatureMethod": [ 222 | { 223 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 224 | } 225 | ] 226 | } 227 | ], 228 | "InvoicePeriod": [ 229 | { 230 | "StartDate": [ 231 | { 232 | "_": "2024-07-19" 233 | } 234 | ], 235 | "EndDate": [ 236 | { 237 | "_": "2024-07-19" 238 | } 239 | ], 240 | "Description": [ 241 | { 242 | "_": "Daily" 243 | } 244 | ] 245 | } 246 | ], 247 | "BillingReference": [ 248 | { 249 | "AdditionalDocumentReference": [ 250 | { 251 | "ID": [ 252 | { 253 | "_": "INV240700025" 254 | } 255 | ] 256 | } 257 | ] 258 | } 259 | ], 260 | "AccountingSupplierParty": [ 261 | { 262 | "Party": [ 263 | { 264 | "IndustryClassificationCode": [ 265 | { 266 | "_": "62010", 267 | "name": "COMPUTER PROGRAMMING ACTIVITIES" 268 | } 269 | ], 270 | "PartyIdentification": [ 271 | { 272 | "ID": [ 273 | { 274 | "_": "C20407777999", 275 | "schemeID": "TIN" 276 | } 277 | ] 278 | }, 279 | { 280 | "ID": [ 281 | { 282 | "_": "20080101888", 283 | "schemeID": "BRN" 284 | } 285 | ] 286 | }, 287 | { 288 | "ID": [ 289 | { 290 | "_": "J31-1999-3202333", 291 | "schemeID": "SST" 292 | } 293 | ] 294 | }, 295 | { 296 | "ID": [ 297 | { 298 | "_": "NA", 299 | "schemeID": "TTX" 300 | } 301 | ] 302 | } 303 | ], 304 | "PostalAddress": [ 305 | { 306 | "CityName": [ 307 | { 308 | "_": "JOHOR BAHRU" 309 | } 310 | ], 311 | "CountrySubentityCode": [ 312 | { 313 | "_": "01" 314 | } 315 | ], 316 | "AddressLine": [ 317 | { 318 | "Line": [ 319 | { 320 | "_": "No. 21, JALAN PADU," 321 | } 322 | ] 323 | }, 324 | { 325 | "Line": [ 326 | { 327 | "_": "KAWASAN PERINDUTRIAN tampoi," 328 | } 329 | ] 330 | }, 331 | { 332 | "Line": [ 333 | { 334 | "_": "80350 JOHOR BAHRU, JOHOR, MALAYSIA." 335 | } 336 | ] 337 | } 338 | ], 339 | "Country": [ 340 | { 341 | "IdentificationCode": [ 342 | { 343 | "_": "MYS", 344 | "listID": "ISO3166-1", 345 | "listAgencyID": "6" 346 | } 347 | ] 348 | } 349 | ] 350 | } 351 | ], 352 | "PartyLegalEntity": [ 353 | { 354 | "RegistrationName": [ 355 | { 356 | "_": "DEMO IT SOLUTIONS" 357 | } 358 | ] 359 | } 360 | ], 361 | "Contact": [ 362 | { 363 | "Telephone": [ 364 | { 365 | "_": "607-2365888" 366 | } 367 | ] 368 | } 369 | ] 370 | } 371 | ] 372 | } 373 | ], 374 | "AccountingCustomerParty": [ 375 | { 376 | "Party": [ 377 | { 378 | "PartyIdentification": [ 379 | { 380 | "ID": [ 381 | { 382 | "_": "C24029452888", 383 | "schemeID": "TIN" 384 | } 385 | ] 386 | }, 387 | { 388 | "ID": [ 389 | { 390 | "_": "201501027666", 391 | "schemeID": "BRN" 392 | } 393 | ] 394 | }, 395 | { 396 | "ID": [ 397 | { 398 | "_": "ATU65701777", 399 | "schemeID": "SST" 400 | } 401 | ] 402 | } 403 | ], 404 | "PostalAddress": [ 405 | { 406 | "CityName": [ 407 | { 408 | "_": "MOUNT AUSTIN" 409 | } 410 | ], 411 | "CountrySubentityCode": [ 412 | { 413 | "_": "01" 414 | } 415 | ], 416 | "AddressLine": [ 417 | { 418 | "Line": [ 419 | { 420 | "_": "NO. 21 & 23, JALAM MUTIARA EMAS 5/11," 421 | } 422 | ] 423 | }, 424 | { 425 | "Line": [ 426 | { 427 | "_": "TAMAN MOUNT AUSTIN, JOHOR," 428 | } 429 | ] 430 | }, 431 | { 432 | "Line": [ 433 | { 434 | "_": "TAMAN MOUNT AUSTIN, JOHOR," 435 | } 436 | ] 437 | } 438 | ], 439 | "Country": [ 440 | { 441 | "IdentificationCode": [ 442 | { 443 | "_": "MYS", 444 | "listID": "ISO3166-1", 445 | "listAgencyID": "6" 446 | } 447 | ] 448 | } 449 | ] 450 | } 451 | ], 452 | "PartyLegalEntity": [ 453 | { 454 | "RegistrationName": [ 455 | { 456 | "_": "TRIANGLE SOLUTION" 457 | } 458 | ] 459 | } 460 | ], 461 | "Contact": [ 462 | { 463 | "Telephone": [ 464 | { 465 | "_": "43160186773" 466 | } 467 | ], 468 | "ElectronicMail": [ 469 | { 470 | "_": "mokth@hotmail.com" 471 | } 472 | ] 473 | } 474 | ] 475 | } 476 | ] 477 | } 478 | ], 479 | "TaxTotal": [ 480 | { 481 | "TaxAmount": [ 482 | { 483 | "_": 3.96, 484 | "currencyID": "MYR" 485 | } 486 | ], 487 | "TaxSubtotal": [ 488 | { 489 | "TaxableAmount": [ 490 | { 491 | "_": 66.0, 492 | "currencyID": "MYR" 493 | } 494 | ], 495 | "TaxAmount": [ 496 | { 497 | "_": 3.96, 498 | "currencyID": "MYR" 499 | } 500 | ], 501 | "TaxCategory": [ 502 | { 503 | "ID": [ 504 | { 505 | "_": "01" 506 | } 507 | ], 508 | "TaxScheme": [ 509 | { 510 | "ID": [ 511 | { 512 | "_": "OTH", 513 | "schemeID": "UN/ECE 5153", 514 | "schemeAgencyID": "6" 515 | } 516 | ] 517 | } 518 | ] 519 | } 520 | ] 521 | } 522 | ] 523 | } 524 | ], 525 | "LegalMonetaryTotal": [ 526 | { 527 | "LineExtensionAmount": [ 528 | { 529 | "_": 66.0, 530 | "currencyID": "MYR" 531 | } 532 | ], 533 | "TaxExclusiveAmount": [ 534 | { 535 | "_": 66.0, 536 | "currencyID": "MYR" 537 | } 538 | ], 539 | "TaxInclusiveAmount": [ 540 | { 541 | "_": 69.96, 542 | "currencyID": "MYR" 543 | } 544 | ], 545 | "AllowanceTotalAmount": [ 546 | { 547 | "_": 0.0, 548 | "currencyID": "MYR" 549 | } 550 | ], 551 | "PayableAmount": [ 552 | { 553 | "_": 69.96, 554 | "currencyID": "MYR" 555 | } 556 | ] 557 | } 558 | ], 559 | "InvoiceLine": [ 560 | { 561 | "ID": [ 562 | { 563 | "_": "1" 564 | } 565 | ], 566 | "InvoicedQuantity": [ 567 | { 568 | "_": 2.0, 569 | "unitCode": "H87" 570 | } 571 | ], 572 | "LineExtensionAmount": [ 573 | { 574 | "_": 42.0, 575 | "currencyID": "MYR" 576 | } 577 | ], 578 | "TaxTotal": [ 579 | { 580 | "TaxAmount": [ 581 | { 582 | "_": 2.52, 583 | "currencyID": "MYR" 584 | } 585 | ], 586 | "TaxSubtotal": [ 587 | { 588 | "TaxableAmount": [ 589 | { 590 | "_": 42.0, 591 | "currencyID": "MYR" 592 | } 593 | ], 594 | "TaxAmount": [ 595 | { 596 | "_": 2.52, 597 | "currencyID": "MYR" 598 | } 599 | ], 600 | "TaxCategory": [ 601 | { 602 | "ID": [ 603 | { 604 | "_": "01" 605 | } 606 | ], 607 | "Percent": [ 608 | { 609 | "_": 6.0 610 | } 611 | ], 612 | "TaxScheme": [ 613 | { 614 | "ID": [ 615 | { 616 | "_": "OTH", 617 | "schemeID": "UN/ECE 5153", 618 | "schemeAgencyID": "6" 619 | } 620 | ] 621 | } 622 | ] 623 | } 624 | ] 625 | } 626 | ] 627 | } 628 | ], 629 | "Item": [ 630 | { 631 | "CommodityClassification": [ 632 | { 633 | "ItemClassificationCode": [ 634 | { 635 | "_": "003", 636 | "listID": "CLASS" 637 | } 638 | ] 639 | } 640 | ], 641 | "Description": [ 642 | { 643 | "_": "TOOLSDWG NO : P/NAME : SPEC : " 644 | } 645 | ] 646 | } 647 | ], 648 | "Price": [ 649 | { 650 | "PriceAmount": [ 651 | { 652 | "_": 21.0, 653 | "currencyID": "MYR" 654 | } 655 | ] 656 | } 657 | ], 658 | "ItemPriceExtension": [ 659 | { 660 | "Amount": [ 661 | { 662 | "_": 42.0, 663 | "currencyID": "MYR" 664 | } 665 | ] 666 | } 667 | ] 668 | }, 669 | { 670 | "ID": [ 671 | { 672 | "_": "2" 673 | } 674 | ], 675 | "InvoicedQuantity": [ 676 | { 677 | "_": 2.0, 678 | "unitCode": "H87" 679 | } 680 | ], 681 | "LineExtensionAmount": [ 682 | { 683 | "_": 24.0, 684 | "currencyID": "MYR" 685 | } 686 | ], 687 | "TaxTotal": [ 688 | { 689 | "TaxAmount": [ 690 | { 691 | "_": 1.44, 692 | "currencyID": "MYR" 693 | } 694 | ], 695 | "TaxSubtotal": [ 696 | { 697 | "TaxableAmount": [ 698 | { 699 | "_": 24.0, 700 | "currencyID": "MYR" 701 | } 702 | ], 703 | "TaxAmount": [ 704 | { 705 | "_": 1.44, 706 | "currencyID": "MYR" 707 | } 708 | ], 709 | "TaxCategory": [ 710 | { 711 | "ID": [ 712 | { 713 | "_": "01" 714 | } 715 | ], 716 | "Percent": [ 717 | { 718 | "_": 6.0 719 | } 720 | ], 721 | "TaxScheme": [ 722 | { 723 | "ID": [ 724 | { 725 | "_": "OTH", 726 | "schemeID": "UN/ECE 5153", 727 | "schemeAgencyID": "6" 728 | } 729 | ] 730 | } 731 | ] 732 | } 733 | ] 734 | } 735 | ] 736 | } 737 | ], 738 | "Item": [ 739 | { 740 | "CommodityClassification": [ 741 | { 742 | "ItemClassificationCode": [ 743 | { 744 | "_": "003", 745 | "listID": "CLASS" 746 | } 747 | ] 748 | } 749 | ], 750 | "Description": [ 751 | { 752 | "_": "PUNCHESDWG NO : P/NAME : SPEC : " 753 | } 754 | ] 755 | } 756 | ], 757 | "Price": [ 758 | { 759 | "PriceAmount": [ 760 | { 761 | "_": 12.0, 762 | "currencyID": "MYR" 763 | } 764 | ] 765 | } 766 | ], 767 | "ItemPriceExtension": [ 768 | { 769 | "Amount": [ 770 | { 771 | "_": 24.0, 772 | "currencyID": "MYR" 773 | } 774 | ] 775 | } 776 | ] 777 | } 778 | ] 779 | } 780 | ] 781 | } 782 | -------------------------------------------------------------------------------- /jsonsamples/consolidateJson_sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "_D": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2", 3 | "_A": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", 4 | "_B": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", 5 | "Invoice": [ 6 | { 7 | "UBLExtensions": [ 8 | { 9 | "UBLExtension": [ 10 | { 11 | "ExtensionURI": [ 12 | { 13 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 14 | } 15 | ], 16 | "ExtensionContent": [ 17 | { 18 | "UBLDocumentSignatures": [ 19 | { 20 | "SignatureInformation": [ 21 | { 22 | "ID": [ 23 | { 24 | "_": "urn:oasis:names:specification:ubl:signature:1" 25 | } 26 | ], 27 | "ReferencedSignatureID": [ 28 | { 29 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 30 | } 31 | ], 32 | "Signature": [ 33 | { 34 | "Id": "signature", 35 | "Object": [ 36 | { 37 | "QualifyingProperties": [ 38 | { 39 | "Target": "signature", 40 | "SignedProperties": [ 41 | { 42 | "Id": "id-xades-signed-props", 43 | "SignedSignatureProperties": [ 44 | { 45 | "SigningTime": [ 46 | { 47 | "_": "2024-07-19T04:21:04Z" 48 | } 49 | ], 50 | "SigningCertificate": [ 51 | { 52 | "Cert": [ 53 | { 54 | "CertDigest": [ 55 | { 56 | "DigestMethod": [ 57 | { 58 | "_": "", 59 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 60 | } 61 | ], 62 | "DigestValue": [ 63 | { 64 | "_": "SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE=" 65 | } 66 | ] 67 | } 68 | ], 69 | "IssuerSerial": [ 70 | { 71 | "X509IssuerName": [ 72 | { 73 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 74 | } 75 | ], 76 | "X509SerialNumber": [ 77 | { 78 | "_": "352825" 79 | } 80 | ] 81 | } 82 | ] 83 | } 84 | ] 85 | } 86 | ] 87 | } 88 | ] 89 | } 90 | ] 91 | } 92 | ] 93 | } 94 | ], 95 | "KeyInfo": [ 96 | { 97 | "X509Data": [ 98 | { 99 | "X509Certificate": [ 100 | { 101 | "_": "MIIFmTCCA4GgAwIBAgIDBWI5MA0GCSqGSIb3DQEBCwUAMHUxCzAJBgNVBAYTAk1ZMQ4wDAYDVQQKEwVMSEROTTE2MDQGA1UECxMtVGVybXMgb2YgdXNlIGF0IGh0dHA6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15MR4wHAYDVQQDExVUcmlhbCBMSEROTSBTdWIgQ0EgVjEwHhcNMjQwNjI0MTM0NzAyWhcNMjQwOTIyMTM0NzAyWjCBrjELMAkGA1UEBhMCTVkxJjAkBgNVBAoTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQRhEwxDMjA0MDc3NzcxMDAxJjAkBgNVBAMTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQQFEwwyMDA4MDEwMTI5NDMxITAfBgkqhkiG9w0BCQEWEmhyQHdpbmNvbS10ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPfj7yzpRLbA14wCYBj3GlUAfgiYgi/Pqq9vRzEg9w4DaNcockZoFoR2KNFej9oVBp4QwL26pQmtP+dW9EYhk9wkO8pO9chlYJC0oEWlp5QmMIdxYznYa0FrE1dXF5s+KM4sz+YUrKv0xoGC4d2yViYpDoGyjomlJvZDw1kYOIU85YMqCvGQ6Fy3+pvfPIz8mw/i8ohoSr3B40aBvKk1k87LeQroozRsWv/HAnoZhfWNj/tCY+D9khLO+AumBST5vuQGaCM0QljwVVM1bGB8nVBm63IkFgbg981lGVl7eRHx9/wxQAe66z4ZiisHOy3svCW4CvvCNfI1yRlENqjhQ0CAwEAAaOB9zCB9DAfBgNVHSUEGDAWBggrBgEFBQcDBAYKKwYBBAGCNwoDDDARBgNVHQ4ECgQIRs2oXxJ4NI4wUwYDVR0gBEwwSjBIBgkrBgEEAYOKRQEwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15L3JlcG9zaXRvcnkvY3BzMBMGA1UdIwQMMAqACE1/2Wu2xQjQMA4GA1UdDwEB/wQEAwIGQDBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vdHJpYWxjcmwucG9zZGlnaWNlcnQuY29tLm15L1RyaWFsTEhETk1WMS5jcmwwDQYJKoZIhvcNAQELBQADggIBABdKH4jeXadccLvOZCgkNer+UfWDS8Y2HkKHaIUPFpRlblFg/CaLkZqnGzHRoFZwG3UbWNWLQbziOhmwwN8hm9+cViB/gJlEPA1PLlAtsICaRDwIQg+0Ulh+quNUErsgmQbw9m04pL13LUQuc1puzGayg4Tf/TZdqPHnhiKbI0Ro0pISq04SGvmMlwwOK7OEfis1xjRdwPSDVM19qsqPbEG1TfgeN7rwUkQ5QI/OKdbMBZqLs5c0neeCpgauQ/EJ4qw5SZAxENzSkZne29svnkUVP6qcwY0CIH9uppvzNh1Sy8pecXgN5z+AqV20obiS65Or2+3zkBmb0W4m4mEcIrwq9Fbyrs6tASCFCfkjIUq7ZCYBtwn29jj8phunrndTDpvQq7JKzKVztWyOBTOqjgCy31qBrBPWPyvO7go67c02IEdnmV4l8I5ff4TewDNsgvManO/rTGOpdL8mdYixKMeR6OxQ3UNyz0GGUWfpktYb60q2Y5F1cF3YkdpqEKLi9C39koi/uxX6+iFBiCmuoFquZA6HvSjw7HzG7JPwDplL8iBtYHBa8ISd24ffWE5T429sKNzdD/cXdfVNMFbyY+aHWBSi+9G5GdqPV+4et47QyL8prg3c+kdXd7oczdrUH6V+IXcgf5gt99M5kNbJ2jak5PS6WtHz63OYMJZLdvPH" 102 | } 103 | ], 104 | "X509SubjectName": [ 105 | { 106 | "_": "E=hr@demo-tech.com, SERIALNUMBER=20080101299, CN=DEMO IT SOLUTIONS SDN. BHD., OID.2.5.4.97=C20407777999, O=DEMO IT SOLUTIONS SDN. BHD., C=MY" 107 | } 108 | ], 109 | "X509IssuerSerial": [ 110 | { 111 | "X509IssuerName": [ 112 | { 113 | "_": "CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY" 114 | } 115 | ], 116 | "X509SerialNumber": [ 117 | { 118 | "_": "352825" 119 | } 120 | ] 121 | } 122 | ] 123 | } 124 | ] 125 | } 126 | ], 127 | "SignatureValue": [ 128 | { 129 | "_": "H2FLrBBqQOpEd0T+Wq+JTzl9krWN8MObZzUgNgsNhHExh1jFiwljXhIv8IXVQB+XalnArtrHqgiYGsWxI1CkdwptXFzrT2ngmmHz20neZlB+xdyl2eg571n/cmrwC8QxsnECieub4MKekOTPODLxhIL++37HqJY04Sotg1dQ5xVz5NBR33B0v1c75rdCP0afb3rptL4Y3L6yPgCuKK5q3ytDbR9Q03tkZEPAfYUVts3xduZeYuGUgty1e1C09AFfA8e07k3xYdBI0aV80nv5D0C2d+c6Iis+npHSjegkZDXAv5ges66Iboc+jMj/WgM9P/jwpkGN+W0q9fSyPhfLrw==" 130 | } 131 | ], 132 | "SignedInfo": [ 133 | { 134 | "SignatureMethod": [ 135 | { 136 | "_": "", 137 | "Algorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" 138 | } 139 | ], 140 | "Reference": [ 141 | { 142 | "Id": "id-doc-signed-data", 143 | "URI": "", 144 | "DigestMethod": [ 145 | { 146 | "_": "", 147 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 148 | } 149 | ], 150 | "DigestValue": [ 151 | { 152 | "_": "aq5n5tVfmCTBctvex6V0Eg2W4a1C5papG7OT719ENtk=" 153 | } 154 | ] 155 | }, 156 | { 157 | "Id": "id-xades-signed-props", 158 | "Type": "http://uri.etsi.org/01903/v1.3.2#SignedProperties", 159 | "URI": "#id-xades-signed-props", 160 | "DigestMethod": [ 161 | { 162 | "_": "", 163 | "Algorithm": "http://www.w3.org/2001/04/xmlenc#sha256" 164 | } 165 | ], 166 | "DigestValue": [ 167 | { 168 | "_": "ggeSIkjCBgzJlpgS+4PNKbPmnSmL2FBIYur0bNjtzFk=" 169 | } 170 | ] 171 | } 172 | ] 173 | } 174 | ] 175 | } 176 | ] 177 | } 178 | ] 179 | } 180 | ] 181 | } 182 | ] 183 | } 184 | ] 185 | } 186 | ], 187 | "ID": [ 188 | { 189 | "_": "IV00000101CON02" 190 | } 191 | ], 192 | "IssueDate": [ 193 | { 194 | "_": "2024-07-19" 195 | } 196 | ], 197 | "IssueTime": [ 198 | { 199 | "_": "04:21:00Z" 200 | } 201 | ], 202 | "InvoiceTypeCode": [ 203 | { 204 | "_": "01", 205 | "listVersionID": "1.1" 206 | } 207 | ], 208 | "DocumentCurrencyCode": [ 209 | { 210 | "_": "MYR" 211 | } 212 | ], 213 | "Signature": [ 214 | { 215 | "ID": [ 216 | { 217 | "_": "urn:oasis:names:specification:ubl:signature:Invoice" 218 | } 219 | ], 220 | "SignatureMethod": [ 221 | { 222 | "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" 223 | } 224 | ] 225 | } 226 | ], 227 | "BillingReference": [ 228 | { 229 | "AdditionalDocumentReference": [ 230 | { 231 | "ID": [ 232 | { 233 | "_": "" 234 | } 235 | ] 236 | } 237 | ] 238 | } 239 | ], 240 | "AccountingSupplierParty": [ 241 | { 242 | "Party": [ 243 | { 244 | "IndustryClassificationCode": [ 245 | { 246 | "_": "62099", 247 | "name": "Other information technology service activities n.e.c." 248 | } 249 | ], 250 | "PartyIdentification": [ 251 | { 252 | "ID": [ 253 | { 254 | "_": "C20407777999", 255 | "schemeID": "TIN" 256 | } 257 | ] 258 | }, 259 | { 260 | "ID": [ 261 | { 262 | "_": "200801012999", 263 | "schemeID": "BRN" 264 | } 265 | ] 266 | }, 267 | { 268 | "ID": [ 269 | { 270 | "_": "NA", 271 | "schemeID": "SST" 272 | } 273 | ] 274 | }, 275 | { 276 | "ID": [ 277 | { 278 | "_": "NA", 279 | "schemeID": "TTX" 280 | } 281 | ] 282 | } 283 | ], 284 | "PostalAddress": [ 285 | { 286 | "CityName": [ 287 | { 288 | "_": "Cheras" 289 | } 290 | ], 291 | "CountrySubentityCode": [ 292 | { 293 | "_": "14" 294 | } 295 | ], 296 | "AddressLine": [ 297 | { 298 | "Line": [ 299 | { 300 | "_": "B-4, 15, Jalan 4/142a, " 301 | } 302 | ] 303 | }, 304 | { 305 | "Line": [ 306 | { 307 | "_": "Cheras, 56000 Cheras" 308 | } 309 | ] 310 | }, 311 | { 312 | "Line": [ 313 | { 314 | "_": "Wilayah Persekutuan Kuala Lumpur" 315 | } 316 | ] 317 | } 318 | ], 319 | "Country": [ 320 | { 321 | "IdentificationCode": [ 322 | { 323 | "_": "MYS", 324 | "listID": "ISO3166-1", 325 | "listAgencyID": "6" 326 | } 327 | ] 328 | } 329 | ] 330 | } 331 | ], 332 | "PartyLegalEntity": [ 333 | { 334 | "RegistrationName": [ 335 | { 336 | "_": "DEMO SYSTEMS SERVICES" 337 | } 338 | ] 339 | } 340 | ], 341 | "Contact": [ 342 | { 343 | "Telephone": [ 344 | { 345 | "_": "019-626 9999" 346 | } 347 | ], 348 | "ElectronicMail": [ 349 | { 350 | "_": "Info@demo.com.my" 351 | } 352 | ] 353 | } 354 | ] 355 | } 356 | ] 357 | } 358 | ], 359 | "AccountingCustomerParty": [ 360 | { 361 | "Party": [ 362 | { 363 | "PartyIdentification": [ 364 | { 365 | "ID": [ 366 | { 367 | "_": "EI00000000010", 368 | "schemeID": "TIN" 369 | } 370 | ] 371 | }, 372 | { 373 | "ID": [ 374 | { 375 | "_": "NA", 376 | "schemeID": "BRN" 377 | } 378 | ] 379 | }, 380 | { 381 | "ID": [ 382 | { 383 | "_": "NA", 384 | "schemeID": "SST" 385 | } 386 | ] 387 | }, 388 | { 389 | "ID": [ 390 | { 391 | "_": "NA", 392 | "schemeID": "SST" 393 | } 394 | ] 395 | } 396 | ], 397 | "PostalAddress": [ 398 | { 399 | "CityName": [ 400 | { 401 | "_": "NA" 402 | } 403 | ], 404 | "CountrySubentityCode": [ 405 | { 406 | "_": "17" 407 | } 408 | ], 409 | "AddressLine": [ 410 | { 411 | "Line": [ 412 | { 413 | "_": "NA" 414 | } 415 | ] 416 | } 417 | ], 418 | "Country": [ 419 | { 420 | "IdentificationCode": [ 421 | { 422 | "_": "MYS", 423 | "listID": "ISO3166-1", 424 | "listAgencyID": "6" 425 | } 426 | ] 427 | } 428 | ] 429 | } 430 | ], 431 | "PartyLegalEntity": [ 432 | { 433 | "RegistrationName": [ 434 | { 435 | "_": "General Public" 436 | } 437 | ] 438 | } 439 | ], 440 | "Contact": [ 441 | { 442 | "Telephone": [ 443 | { 444 | "_": "NA" 445 | } 446 | ], 447 | "ElectronicMail": [ 448 | { 449 | "_": "NA" 450 | } 451 | ] 452 | } 453 | ] 454 | } 455 | ] 456 | } 457 | ], 458 | "TaxTotal": [ 459 | { 460 | "TaxAmount": [ 461 | { 462 | "_": 0.0, 463 | "currencyID": "MYR" 464 | } 465 | ], 466 | "TaxSubtotal": [ 467 | { 468 | "TaxableAmount": [ 469 | { 470 | "_": 60.0, 471 | "currencyID": "MYR" 472 | } 473 | ], 474 | "TaxAmount": [ 475 | { 476 | "_": 0.0, 477 | "currencyID": "MYR" 478 | } 479 | ], 480 | "TaxCategory": [ 481 | { 482 | "ID": [ 483 | { 484 | "_": "06" 485 | } 486 | ], 487 | "TaxScheme": [ 488 | { 489 | "ID": [ 490 | { 491 | "_": "OTH", 492 | "schemeID": "UN/ECE 5153", 493 | "schemeAgencyID": "6" 494 | } 495 | ] 496 | } 497 | ] 498 | } 499 | ] 500 | } 501 | ] 502 | } 503 | ], 504 | "LegalMonetaryTotal": [ 505 | { 506 | "LineExtensionAmount": [ 507 | { 508 | "_": 60.0, 509 | "currencyID": "MYR" 510 | } 511 | ], 512 | "TaxExclusiveAmount": [ 513 | { 514 | "_": 60.0, 515 | "currencyID": "MYR" 516 | } 517 | ], 518 | "TaxInclusiveAmount": [ 519 | { 520 | "_": 60.0, 521 | "currencyID": "MYR" 522 | } 523 | ], 524 | "AllowanceTotalAmount": [ 525 | { 526 | "_": 0.0, 527 | "currencyID": "MYR" 528 | } 529 | ], 530 | "PayableAmount": [ 531 | { 532 | "_": 60.0, 533 | "currencyID": "MYR" 534 | } 535 | ] 536 | } 537 | ], 538 | "InvoiceLine": [ 539 | { 540 | "ID": [ 541 | { 542 | "_": "INVNO00001" 543 | } 544 | ], 545 | "InvoicedQuantity": [ 546 | { 547 | "_": 2.0, 548 | "unitCode": "H87" 549 | } 550 | ], 551 | "LineExtensionAmount": [ 552 | { 553 | "_": 40.0, 554 | "currencyID": "MYR" 555 | } 556 | ], 557 | "TaxTotal": [ 558 | { 559 | "TaxAmount": [ 560 | { 561 | "_": 0.0, 562 | "currencyID": "MYR" 563 | } 564 | ], 565 | "TaxSubtotal": [ 566 | { 567 | "TaxableAmount": [ 568 | { 569 | "_": 40.0, 570 | "currencyID": "MYR" 571 | } 572 | ], 573 | "TaxAmount": [ 574 | { 575 | "_": 0.0, 576 | "currencyID": "MYR" 577 | } 578 | ], 579 | "TaxCategory": [ 580 | { 581 | "ID": [ 582 | { 583 | "_": "06" 584 | } 585 | ], 586 | "Percent": [ 587 | { 588 | "_": 0.0 589 | } 590 | ], 591 | "TaxScheme": [ 592 | { 593 | "ID": [ 594 | { 595 | "_": "OTH", 596 | "schemeID": "UN/ECE 5153", 597 | "schemeAgencyID": "6" 598 | } 599 | ] 600 | } 601 | ] 602 | } 603 | ] 604 | } 605 | ] 606 | } 607 | ], 608 | "Item": [ 609 | { 610 | "CommodityClassification": [ 611 | { 612 | "ItemClassificationCode": [ 613 | { 614 | "_": "004", 615 | "listID": "CLASS" 616 | } 617 | ] 618 | } 619 | ], 620 | "Description": [ 621 | { 622 | "_": "NA" 623 | } 624 | ] 625 | } 626 | ], 627 | "Price": [ 628 | { 629 | "PriceAmount": [ 630 | { 631 | "_": 20.0, 632 | "currencyID": "MYR" 633 | } 634 | ] 635 | } 636 | ], 637 | "ItemPriceExtension": [ 638 | { 639 | "Amount": [ 640 | { 641 | "_": 40.0, 642 | "currencyID": "MYR" 643 | } 644 | ] 645 | } 646 | ] 647 | }, 648 | { 649 | "ID": [ 650 | { 651 | "_": "INVNO00002" 652 | } 653 | ], 654 | "InvoicedQuantity": [ 655 | { 656 | "_": 1.0, 657 | "unitCode": "H87" 658 | } 659 | ], 660 | "LineExtensionAmount": [ 661 | { 662 | "_": 20.0, 663 | "currencyID": "MYR" 664 | } 665 | ], 666 | "TaxTotal": [ 667 | { 668 | "TaxAmount": [ 669 | { 670 | "_": 0.0, 671 | "currencyID": "MYR" 672 | } 673 | ], 674 | "TaxSubtotal": [ 675 | { 676 | "TaxableAmount": [ 677 | { 678 | "_": 20.0, 679 | "currencyID": "MYR" 680 | } 681 | ], 682 | "TaxAmount": [ 683 | { 684 | "_": 0.0, 685 | "currencyID": "MYR" 686 | } 687 | ], 688 | "TaxCategory": [ 689 | { 690 | "ID": [ 691 | { 692 | "_": "06" 693 | } 694 | ], 695 | "Percent": [ 696 | { 697 | "_": 0.0 698 | } 699 | ], 700 | "TaxScheme": [ 701 | { 702 | "ID": [ 703 | { 704 | "_": "OTH", 705 | "schemeID": "UN/ECE 5153", 706 | "schemeAgencyID": "6" 707 | } 708 | ] 709 | } 710 | ] 711 | } 712 | ] 713 | } 714 | ] 715 | } 716 | ], 717 | "Item": [ 718 | { 719 | "CommodityClassification": [ 720 | { 721 | "ItemClassificationCode": [ 722 | { 723 | "_": "004", 724 | "listID": "CLASS" 725 | } 726 | ] 727 | } 728 | ], 729 | "Description": [ 730 | { 731 | "_": "NA" 732 | } 733 | ] 734 | } 735 | ], 736 | "Price": [ 737 | { 738 | "PriceAmount": [ 739 | { 740 | "_": 10.0, 741 | "currencyID": "MYR" 742 | } 743 | ] 744 | } 745 | ], 746 | "ItemPriceExtension": [ 747 | { 748 | "Amount": [ 749 | { 750 | "_": 20.0, 751 | "currencyID": "MYR" 752 | } 753 | ] 754 | } 755 | ] 756 | } 757 | ] 758 | } 759 | ] 760 | } 761 | -------------------------------------------------------------------------------- /jsonsamples/decimalpointnote: -------------------------------------------------------------------------------- 1 | for decimal in json, minimal is 1 decimal point 2 | eg: 3 | 0 bad 4 | 0.0 good 5 | 1 bad 6 | 1.0 good 7 | 1.10 bad 8 | 1.1 good 9 | 3.2341 good 10 | 3.23410 bad 11 | -------------------------------------------------------------------------------- /linux/einvoiceapp/LinuxEInvoiceApp.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/linux/einvoiceapp/LinuxEInvoiceApp.zip -------------------------------------------------------------------------------- /linux/einvoiceapp/readme.txt: -------------------------------------------------------------------------------- 1 | 1. install .Net 8 runtime 2 | 2. unzip the LinuxEInvoiceApp.zip in any folder. 3 | 3. go to the unzip folder, edit appsettings.json 4 | fill in the settings. Save it. 5 | 4. run the eInvoiceLinuxApp 6 | i. Load yuor Xml or Json file without signature. 7 | ii. Click Generate Signature. All the value will show if not error. 8 | iii. Click Submit Document to submit to sandbox. 9 | Check the result show at the API result box. 10 | iv. Click the Get Document / Get Document Detail to see the detail 11 | 5. Click Save to save the result to file for checking purpose. 12 | 13 | Enjoy. 14 | 15 | MOk 16 | -------------------------------------------------------------------------------- /middleware/csv/einvoice_mutipleitem.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/middleware/csv/einvoice_mutipleitem.csv -------------------------------------------------------------------------------- /middleware/csv/einvoice_singleitem.csv: -------------------------------------------------------------------------------- 1 | INV2024003||NA|2024-12-12|01|MYR||1.0|110|10|0.00|100|110|C20407777999|Demo IT Solutions|62010|Computer programming activities|200801012888|BRN|NA|NA|6, Jln Kempas Utama 2/5|Taman Kempas Utama|81300 Johor Bahru||Johor Bahru|01|MYS|81300|sales@democom|012-333 6511|IG4670209889|Wong Ah Cheng|791127085889|NRIC|NA|NA|No 9 Jalan Kempas Utama|Tamam Kempas|||Johor Bahru|01|MYS|81200|mokrh@gmail.com|012-7767567|1|1|003|Computer part|H87|100|100|110|100|0.0|100|10|01|10|0.00|0.00|NA|0.00 2 | -------------------------------------------------------------------------------- /middleware/csv/einvoiceapp instructions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/middleware/csv/einvoiceapp instructions.pdf -------------------------------------------------------------------------------- /middleware/csv/invoicetemplate_mutliItem.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/middleware/csv/invoicetemplate_mutliItem.xlsx -------------------------------------------------------------------------------- /middleware/csv/invoicetemplatedoc.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/middleware/csv/invoicetemplatedoc.xlsx -------------------------------------------------------------------------------- /middleware/csv/sample.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/middleware/csv/sample.csv -------------------------------------------------------------------------------- /middleware/middleappConsole.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/middleware/middleappConsole.zip -------------------------------------------------------------------------------- /middleware/readme.txt: -------------------------------------------------------------------------------- 1 | updated 20-Sep-2024 2 | 3 | I can customize my console application to read and process CSV or text files from legacy systems containing Invoice, Credit Note, and Debit Note data. 4 | The application will generate JSON or XML formats and submit them to the LHDN API server. Additionally, I can implement functionality to write the 5 | API response to a local text file for the legacy system to access. Alternatively, I can assist in updating the API response directly to the 6 | legacy system's database, such as DBF or Access. 7 | 8 | ============================================================ 9 | ============================================================ 10 | Updated 15/Aug/2024 at 5pm local Malaysia Time 11 | please download the zip file again (have missing files). 12 | ============================================================ 13 | ============================================================ 14 | 15 | - Unzip middleappConsole.zip to any folder. (windows base app) 16 | - Go to the unzip folder, configure the eInvoiceConsole.exe.config file. fill in the valid value. 17 | - run eInvoiceConsole.exe at cmd prompt. list out all the available commands. 18 | ============================================================ 19 | - Note: the app only connected to SANDBOX API only!!!!. 20 | ============================================================ 21 | 22 | Here is a summary of each command along with its usage examples and descriptions: 23 | 24 | New added (19/11/2024) 25 | 26 | Submit CSV file 27 | eInvoiceConsole.exe csv docno fulldocumentpath 28 | -Example: eInvoiceConsole.exe csv INV0001 c:\data\invoice.csv 29 | -Response: Written in the output folder 30 | refer to csv folder for the sample and and template file 31 | 32 | 1.Verify TIN 33 | 34 | eInvoiceConsole.exe verify tin idtype idvalue 35 | 36 | -idtype: Type of ID (BRN, NRIC, PASSPORT, ARMY) 37 | -idvalue: The actual ID value 38 | -Example: eInvoiceConsole.exe verify C122023333 BRN C233333 39 | -Response: Written in the output folder 40 | 41 | 2.Submit Document 42 | Submit json or xml document to LHDN 43 | Pass in the json or xml without signature, the app will generate the signature and submit to LHDN 44 | 45 | eInvoiceConsole.exe submitxml docno docpath 46 | eInvoiceConsole.exe submitjson docno docpath 47 | 48 | -docno: Document number 49 | -docpath: Full path to the XML or JSON file (without signature) 50 | -Example XML: eInvoiceConsole.exe submitxml INV00001 c:\data\INV00001.xml 51 | -Example JSON: eInvoiceConsole.exe submitjson INV00001 c:\data\INV00001.json 52 | -Response: Written in the output folder 53 | 54 | 3.Submit Document only 55 | Submit json or xml document to LHDN (either ver 1.0 or 1.1) 56 | Pass in the json or xml with or without signature, the app only package and submit to LHDN 57 | 58 | eInvoiceConsole.exe submitonlyxml docno docpath 59 | eInvoiceConsole.exe submitonlyjson docno docpath 60 | 61 | -docno: Document number 62 | -docpath: Full path to the XML or JSON file (without signature) 63 | -Example XML: eInvoiceConsole.exe submitxml INV00001 c:\data\INV00001.xml 64 | -Example JSON: eInvoiceConsole.exe submitjson INV00001 c:\data\INV00001.json 65 | -Response: Written in the output folder 66 | 67 | 4.Submission 68 | Get submission status 69 | eInvoiceConsole.exe submission submissionid 70 | 71 | -submissionid: ID of the submission 72 | -Example: eInvoiceConsole.exe submission 777SFG9992SSS424 73 | -Response: Written in the output folder 74 | 75 | 5.Document 76 | Get document info 77 | eInvoiceConsole.exe document docUUID 78 | 79 | -docUUID: Unique identifier of the document 80 | -Example: eInvoiceConsole.exe document 34444SFG9992SSS424 81 | -Response: Written in the output folder 82 | 83 | 6.Document Detail 84 | Get document detail info 85 | eInvoiceConsole.exe documentdetail docUUID 86 | 87 | -docUUID: Unique identifier of the document 88 | -Example: eInvoiceConsole.exe documentdetail 34444SFG9992SSS424 89 | -Response: Written in the output folder 90 | 91 | 7.Cancel Document 92 | To cancel a document 93 | eInvoiceConsole.exe cancel docUUID reasonString 94 | 95 | -docUUID: Unique identifier of the document 96 | -reasonString: Reason for cancellation 97 | -Example: eInvoiceConsole.exe cancel 34444SFG9992SSS424 "wrong invoice amount" 98 | -Response: Written in the output folder 99 | 100 | 8.Reject Document 101 | To request reject 102 | eInvoiceConsole.exe reject docUUID reasonString 103 | 104 | -docUUID: Unique identifier of the document 105 | -reasonString: Reason for rejection 106 | -Example: eInvoiceConsole.exe reject 34444SFG9992SSS424 "wrong invoice amount" 107 | -Response: Written in the output folder 108 | 109 | 9.Recent Documents 110 | Get Recent documents 111 | eInvoiceConsole.exe recent querystringPath 112 | 113 | -querystringPath: refer to https://sdk.myinvois.hasil.gov.my/einvoicingapi/#get-recent-documents 114 | -Example: eInvoiceConsole.exe recent issueDateFrom=2024-08-01T01:59:10Z&issueDateTo=2024-08-10T01:59:10Z&status=valid 115 | -Response: Written in the output folder 116 | 117 | 10.Search Documents 118 | To search documents 119 | eInvoiceConsole.exe search querystringPath 120 | 121 | -querystringPath: refer to https://sdk.myinvois.hasil.gov.my/einvoicingapi/#search-documents 122 | -Example: eInvoiceConsole.exe search issueDateFrom=2024-08-01T01:59:10Z&issueDateTo=2024-08-10T01:59:10Z&status=valid 123 | -Response: Written in the output folder 124 | 125 | 11.Login 126 | Peform login, the decode token is save at the respone folder. 127 | eInvoiceConsole.exe login 128 | 129 | -Example: eInvoiceConsole.exe login 130 | -Response: Written in the output folder 131 | 132 | 12.Notification 133 | To get notification 134 | eInvoiceConsole.exe notification querystringPath 135 | 136 | -querystringPath: refer to https://sdk.myinvois.hasil.gov.my/api/06-get-notifications/ 137 | -Example: eInvoiceConsole.exe notification dateFrom=2024-08-01T01:59:10Z&dateTo=2024-08-10T01:59:10Z&status=delivered 138 | -Response: Written in the output folder 139 | 140 | 13. Sign XML document 141 | generate XML signature and return the XML document with digital signature 142 | 143 | eInvoiceConsole.exe xmlsign docpath 144 | -Example: eInvoiceConsole.exe xmlsign c:\data\invouce.xml 145 | -Response: Written in the output folder 146 | 147 | 14. Sign JSON document 148 | generate JSON signature and return the JSON document with digital signature 149 | 150 | eInvoiceConsole.exe jsonsign docpath 151 | -Example: eInvoiceConsole.exe jsonsign c:\data\invouce.json 152 | -Response: Written in the output folder 153 | 154 | any request please email to mokth@hotmail.com. 155 | -------------------------------------------------------------------------------- /mokbuymecoffeeTNG_QR.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/mokbuymecoffeeTNG_QR.jpg -------------------------------------------------------------------------------- /stepToGenerateJsonDC.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokth/einvoice/2497a3cd59d6dc21613b2b72eb89da7ca15a3826/stepToGenerateJsonDC.pdf -------------------------------------------------------------------------------- /xmlsample/XmlSampleWithMutliTax.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 9 | 10 | 14 | 15 | urn:oasis:names:specification:ubl:signature:1 16 | urn:oasis:names:specification:ubl:signature:Invoice 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | not(//ancestor-or-self::ext:UBLExtensions) 26 | 27 | 28 | not(//ancestor-or-self::cac:Signature) 29 | 30 | 31 | 32 | 33 | bRGOYbaypwLhtnGB+lMLGcJ9OTWY7QyNEaY2e0I1MPI= 34 | 35 | 36 | 37 | AoQ4fKQJyKv5f9UfIXfQadcvjHJ9EIL6uIZWkV9kJOo= 38 | 39 | 40 | mHQ+9UFFKDLwyj5ugxIn28vnCm4cVVugzCVqQJswYhlZc+X51iZ2tRjwnfs9mlF/IYWMO+eVPE7x+rPxe5iAPkuPonxJxf261PTJsLa3o4Hw9Tku73Prffe5eIHeYgyJZBJFq4/J3bJZFgP3A89x6Gl8/rzkao5jqPQAAMgLKuJmgGSxbojki2zjaXFsnF7hN/548CAFXZN8HYXHNtH4mtUATh4hTaMt0CNMAGe8MkCXWCkHg48gFggmzc7K4zsHq1M/NCrANXtRKWKOamAxdlWSNQ+4tvVDejnynHBbJHE3k8lFTu9WomwYq5OO3ZmwLH0b3xIvnRJlPy4QcSv/Hg== 41 | 42 | 43 | MIIFmTCCA4GgAwIBAgIDBWI5MA0GCSqGSIb3DQEBCwUAMHUxCzAJBgNVBAYTAk1ZMQ4wDAYDVQQKEwVMSEROTTE2MDQGA1UECxMtVGVybXMgb2YgdXNlIGF0IGh0dHA6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15MR4wHAYDVQQDExVUcmlhbCBMSEROTSBTdWIgQ0EgVjEwHhcNMjQwNjI0MTM0NzAyWhcNMjQwOTIyMTM0NzAyWjCBrjELMAkGA1UEBhMCTVkxJjAkBgNVBAoTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQRhEwxDMjA0MDc3NzcxMDAxJjAkBgNVBAMTHVdJTkNPTSBJVCBTT0xVVElPTlMgU0ROLiBCSEQuMRUwEwYDVQQFEwwyMDA4MDEwMTI5NDMxITAfBgkqhkiG9w0BCQEWEmhyQHdpbmNvbS10ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPfj7yzpRLbA14wCYBj3GlUAfgiYgi/Pqq9vRzEg9w4DaNcockZoFoR2KNFej9oVBp4QwL26pQmtP+dW9EYhk9wkO8pO9chlYJC0oEWlp5QmMIdxYznYa0FrE1dXF5s+KM4sz+YUrKv0xoGC4d2yViYpDoGyjomlJvZDw1kYOIU85YMqCvGQ6Fy3+pvfPIz8mw/i8ohoSr3B40aBvKk1k87LeQroozRsWv/HAnoZhfWNj/tCY+D9khLO+AumBST5vuQGaCM0QljwVVM1bGB8nVBm63IkFgbg981lGVl7eRHx9/wxQAe66z4ZiisHOy3svCW4CvvCNfI1yRlENqjhQ0CAwEAAaOB9zCB9DAfBgNVHSUEGDAWBggrBgEFBQcDBAYKKwYBBAGCNwoDDDARBgNVHQ4ECgQIRs2oXxJ4NI4wUwYDVR0gBEwwSjBIBgkrBgEEAYOKRQEwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cucG9zZGlnaWNlcnQuY29tLm15L3JlcG9zaXRvcnkvY3BzMBMGA1UdIwQMMAqACE1/2Wu2xQjQMA4GA1UdDwEB/wQEAwIGQDBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vdHJpYWxjcmwucG9zZGlnaWNlcnQuY29tLm15L1RyaWFsTEhETk1WMS5jcmwwDQYJKoZIhvcNAQELBQADggIBABdKH4jeXadccLvOZCgkNer+UfWDS8Y2HkKHaIUPFpRlblFg/CaLkZqnGzHRoFZwG3UbWNWLQbziOhmwwN8hm9+cViB/gJlEPA1PLlAtsICaRDwIQg+0Ulh+quNUErsgmQbw9m04pL13LUQuc1puzGayg4Tf/TZdqPHnhiKbI0Ro0pISq04SGvmMlwwOK7OEfis1xjRdwPSDVM19qsqPbEG1TfgeN7rwUkQ5QI/OKdbMBZqLs5c0neeCpgauQ/EJ4qw5SZAxENzSkZne29svnkUVP6qcwY0CIH9uppvzNh1Sy8pecXgN5z+AqV20obiS65Or2+3zkBmb0W4m4mEcIrwq9Fbyrs6tASCFCfkjIUq7ZCYBtwn29jj8phunrndTDpvQq7JKzKVztWyOBTOqjgCy31qBrBPWPyvO7go67c02IEdnmV4l8I5ff4TewDNsgvManO/rTGOpdL8mdYixKMeR6OxQ3UNyz0GGUWfpktYb60q2Y5F1cF3YkdpqEKLi9C39koi/uxX6+iFBiCmuoFquZA6HvSjw7HzG7JPwDplL8iBtYHBa8ISd24ffWE5T429sKNzdD/cXdfVNMFbyY+aHWBSi+9G5GdqPV+4et47QyL8prg3c+kdXd7oczdrUH6V+IXcgf5gt99M5kNbJ2jak5PS6WtHz63OYMJZLdvPH 44 | 45 | 46 | 47 | 49 | 50 | 51 | 2024-07-19T07:29:03Z 52 | 53 | 54 | 55 | 56 | SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE= 57 | 58 | 59 | CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY 60 | 352825 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | INV240700021 75 | 2024-07-19 76 | 07:29:00Z 77 | 01 78 | MYR 79 | 80 | 81 | INV240700021 82 | 83 | 84 | 85 | urn:oasis:names:specification:ubl:signature:Invoice 86 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 87 | 88 | 89 | 90 | 62010 91 | 92 | C20407777999 93 | 94 | 95 | 200801012999 96 | 97 | 98 | NA 99 | 100 | 101 | NA 102 | 103 | 104 | JOHOR BAHRU 105 | 80350 106 | 01 107 | 108 | No. 21, JALAN PADU, 109 | 110 | 111 | KAWASAN PERINDUTRIAN tampoi, 112 | 113 | 114 | 80350 JOHOR BAHRU, JOHOR, MALAYSIA. 115 | 116 | 117 | MYS 118 | 119 | 120 | 121 | DEMO IT SOLUTIONS 122 | 123 | 124 | 607-2365287 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | C24029452888 133 | 134 | 135 | 201501027888 136 | 137 | 138 | MOUNT AUSTIN 139 | 81100 140 | 01 141 | 142 | NO. 21 & 23, JALAM MUTIARA EMAS 5/11, 143 | 144 | 145 | TAMAN MOUNT AUSTIN, JOHOR, 146 | 147 | 148 | TAMAN MOUNT AUSTIN, JOHOR, 149 | 150 | 151 | MYS 152 | 153 | 154 | 155 | TRIANGLE SOLUTION 156 | 157 | 158 | 43160186773 159 | mokth@hotmail.com 160 | 161 | 162 | 163 | 164 | 5.64 165 | 166 | 4.2 167 | 4.2 168 | 169 | 03 170 | 10 171 | 172 | OTH 173 | 174 | 175 | 176 | 177 | 1.44 178 | 1.44 179 | 180 | 01 181 | 6 182 | 183 | OTH 184 | 185 | 186 | 187 | 188 | 0 189 | 0 190 | 191 | 06 192 | 0 193 | 194 | OTH 195 | 196 | 197 | 198 | 199 | 200 | 168 201 | 168 202 | 173.64 203 | 0 204 | 173.64 205 | 206 | 207 | 1 208 | 2 209 | 46.2 210 | 211 | 4.2 212 | 213 | 42 214 | 4.2 215 | 216 | 03 217 | 10 218 | 219 | OTH 220 | 221 | 222 | 223 | 224 | 225 | TOOLSDWG NO : P/NAME : SPEC : 226 | 227 | 003 228 | 229 | 230 | 231 | 21 232 | 233 | 234 | 42 235 | 236 | 237 | 238 | 2 239 | 2 240 | 25.44 241 | 242 | 1.44 243 | 244 | 24 245 | 1.44 246 | 247 | 01 248 | 6 249 | 250 | OTH 251 | 252 | 253 | 254 | 255 | 256 | PUNCHESDWG NO : P/NAME : SPEC : 257 | 258 | 003 259 | 260 | 261 | 262 | 12 263 | 264 | 265 | 24 266 | 267 | 268 | 269 | 3 270 | 3 271 | 102 272 | 273 | 0 274 | 275 | 102 276 | 0 277 | 278 | 06 279 | 0 280 | 281 | OTH 282 | 283 | 284 | 285 | 286 | 287 | GUIDE PINDWG NO : P/NAME : SPEC : 288 | 289 | 003 290 | 291 | 292 | 293 | 34 294 | 295 | 296 | 102 297 | 298 | 299 | -------------------------------------------------------------------------------- /xmlsample/XmlSampleWithOneTax.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 9 | 10 | 14 | 15 | urn:oasis:names:specification:ubl:signature:1 16 | urn:oasis:names:specification:ubl:signature:Invoice 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | not(//ancestor-or-self::ext:UBLExtensions) 26 | 27 | 28 | not(//ancestor-or-self::cac:Signature) 29 | 30 | 31 | 32 | 33 | 9TAe8NWXEnAAGpjO+c/cvog34nYmhkIw8m21XeSr5rk= 34 | 35 | 36 | 37 | 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 44 | 45 | 46 | 47 | 49 | 50 | 51 | 2024-07-19T07:31:47Z 52 | 53 | 54 | 55 | 56 | SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE= 57 | 58 | 59 | CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY 60 | 352825 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | INV240700020 75 | 2024-07-19 76 | 07:31:00Z 77 | 01 78 | MYR 79 | 80 | 81 | INV240700020 82 | 83 | 84 | 85 | urn:oasis:names:specification:ubl:signature:Invoice 86 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 87 | 88 | 89 | 90 | 62010 91 | 92 | C20407777999 93 | 94 | 95 | 200801012999 96 | 97 | 98 | NA 99 | 100 | 101 | NA 102 | 103 | 104 | JOHOR BAHRU 105 | 80350 106 | 01 107 | 108 | No. 21, JALAN PADU, 109 | 110 | 111 | KAWASAN PERINDUTRIAN tampoi, 112 | 113 | 114 | 80350 JOHOR BAHRU, JOHOR, MALAYSIA. 115 | 116 | 117 | MYS 118 | 119 | 120 | 121 | DEMO IT SOLUTIONS 122 | 123 | 124 | 607-2365999 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | C24029452888 133 | 134 | 135 | 201501027888 136 | 137 | 138 | MOUNT AUSTIN 139 | 81100 140 | 01 141 | 142 | NO. 21 & 23, JALAM MUTIARA EMAS 5/11, 143 | 144 | 145 | TAMAN MOUNT AUSTIN, JOHOR, 146 | 147 | 148 | TAMAN MOUNT AUSTIN, JOHOR, 149 | 150 | 151 | MYS 152 | 153 | 154 | 155 | TRIANGLE SOLUTION 156 | 157 | 158 | 43160186773 159 | mokth@hotmail.com 160 | 161 | 162 | 163 | 164 | 2.52 165 | 166 | 2.52 167 | 2.52 168 | 169 | 01 170 | 6 171 | 172 | OTH 173 | 174 | 175 | 176 | 177 | 178 | 42 179 | 42 180 | 44.52 181 | 0 182 | 44.52 183 | 184 | 185 | 1 186 | 2 187 | 44.52 188 | 189 | 2.52 190 | 191 | 42 192 | 2.52 193 | 194 | 01 195 | 6 196 | 197 | OTH 198 | 199 | 200 | 201 | 202 | 203 | TOOLSDWG NO : P/NAME : SPEC : 204 | 205 | 003 206 | 207 | 208 | 209 | 21 210 | 211 | 212 | 42 213 | 214 | 215 | -------------------------------------------------------------------------------- /xmlsample/XmlSignProperties.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 2024-07-06T15:06:45Z 4 | 5 | 6 | 7 | 8 | SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE= 9 | 10 | 11 | CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY 12 | 352825 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /xmlsample/XmlwithSignature.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 6 | 7 | 8 | 9 | urn:oasis:names:specification:ubl:signature:1 10 | urn:oasis:names:specification:ubl:signature:Invoice 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | not(//ancestor-or-self::ext:UBLExtensions) 19 | 20 | 21 | not(//ancestor-or-self::cac:Signature) 22 | 23 | 24 | 25 | 26 | hFJCG5gbCO629gl94y3ofhcXoH8vssi/hbv3LuJJluk= 27 | 28 | 29 | 30 | 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 37 | 38 | 39 | 40 | 41 | 42 | 43 | 2024-07-06T15:06:45Z 44 | 45 | 46 | 47 | 48 | SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE= 49 | 50 | 51 | CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY 52 | 352825 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | IV00000105 67 | 2024-07-06 68 | 15:06:00Z 69 | 01 70 | MYR 71 | 72 | 73 | IV00000105 74 | 75 | 76 | 77 | urn:oasis:names:specification:ubl:signature:Invoice 78 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 79 | 80 | 81 | 82 | 62099 83 | 84 | C20407777999 85 | 86 | 87 | 200801012888 88 | 89 | 90 | Cheras 91 | 56000 92 | 14 93 | 94 | B-3, 13, Jalan 2/142a, 95 | 96 | 97 | Cheras, 56000 Cheras 98 | 99 | 100 | Wilayah Persekutuan Kuala Lumpur 101 | 102 | 103 | MYS 104 | 105 | 106 | 107 | COMPUTER SYSTEMS SERVICES 108 | 109 | 110 | 019-626 3455 111 | Info@computer.com.my 112 | 113 | 114 | 115 | 116 | 117 | 118 | C20407777999 119 | 120 | 121 | 200801012888 122 | 123 | 124 | Cheras 125 | 56000 126 | 14 127 | 128 | B-2, 34, Jalan 4/14A, 129 | 130 | 131 | Cheras, 56000 Cheras 132 | 133 | 134 | Cheras, 56000 Cheras 135 | 136 | 137 | MYS 138 | 139 | 140 | 141 | COMPUTER SYSTEMS SERVICES 142 | 143 | 144 | 019-626 3923 145 | Info@computer.com.my 146 | 147 | 148 | 149 | 150 | 0 151 | 152 | 40 153 | 0 154 | 155 | 06 156 | 0 157 | 158 | OTH 159 | 160 | 161 | 162 | 163 | 164 | 40 165 | 40 166 | 49 167 | 0 168 | 49 169 | 170 | 171 | 1 172 | 2 173 | 40 174 | 175 | 0 176 | 177 | 40 178 | 0 179 | 180 | 06 181 | 0 182 | 183 | OTH 184 | 185 | 186 | 187 | 188 | 189 | Computer Monitor 24 inch 190 | 191 | 003 192 | 193 | 194 | 195 | 20 196 | 197 | 198 | 40 199 | 200 | 201 | -------------------------------------------------------------------------------- /xmlsample/documentWithOutSignature.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | IV0000010134444 4 | 2024-07-16 5 | 03:36:00Z 6 | 01 7 | MYR 8 | 9 | 10 | IV0000010134444 11 | 12 | 13 | 14 | urn:oasis:names:specification:ubl:signature:Invoice 15 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 16 | 17 | 18 | 19 | 62099 20 | 21 | C20407779999 22 | 23 | 24 | 200801012943 25 | 26 | 27 | Cheras 28 | 56000 29 | 14 30 | 31 | B-3, 13, Jalan 2/142a, 32 | 33 | 34 | Cheras, 56000 Cheras 35 | 36 | 37 | Wilayah Persekutuan Kuala Lumpur 38 | 39 | 40 | MYS 41 | 42 | 43 | 44 | M POS SYSTEMS SERVICES 45 | 46 | 47 | 019-626 3923 48 | Info@m-pos.com.my 49 | 50 | 51 | 52 | 53 | 54 | 55 | C20407777888 56 | 57 | 58 | 200801012943 59 | 60 | 61 | Cheras 62 | 56000 63 | 14 64 | 65 | B-3, 13, Jalan 2/142a, 66 | 67 | 68 | Cheras, 56000 Cheras 69 | 70 | 71 | Cheras, 56000 Cheras 72 | 73 | 74 | MYS 75 | 76 | 77 | 78 | M POS SYSTEMS SERVICES 79 | 80 | 81 | 019-626 3923 82 | Info@m-pos.com.my 83 | 84 | 85 | 86 | 87 | 3.5 88 | 89 | 3.5 90 | 3.5 91 | 92 | 01 93 | 10 94 | 95 | OTH 96 | 97 | 98 | 99 | 100 | 101 | 35 102 | 35 103 | 38.5 104 | 5 105 | 38.5 106 | 107 | 108 | 1 109 | 2 110 | 35 111 | 112 | false 113 | Item Discount 114 | 1 115 | 5 116 | 117 | 118 | 3.5 119 | 120 | 35 121 | 3.5 122 | 123 | 01 124 | 10 125 | 126 | OTH 127 | 128 | 129 | 130 | 131 | 132 | Computer Monitor 24 inch 133 | 134 | 003 135 | 136 | 137 | 138 | 20 139 | 140 | 141 | 40 142 | 143 | 144 | -------------------------------------------------------------------------------- /xmlsample/documentWithSignature.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 6 | 7 | 8 | 9 | urn:oasis:names:specification:ubl:signature:1 10 | urn:oasis:names:specification:ubl:signature:Invoice 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | not(//ancestor-or-self::ext:UBLExtensions) 19 | 20 | 21 | not(//ancestor-or-self::cac:Signature) 22 | 23 | 24 | 25 | 26 | JNb6AzNY6vCkSewajZPfg7Pj/32AlnoSpYyS85YbNks= 27 | 28 | 29 | 30 | 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 37 | 38 | 39 | 40 | 41 | 42 | 43 | 2024-07-16T03:36:15Z 44 | 45 | 46 | 47 | 48 | SLFswNMf8a6muzczA+EO356bvJNDkr9LhT25+pqacdE= 49 | 50 | 51 | CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY 52 | 352825 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | IV0000010134444 67 | 2024-07-16 68 | 03:36:00Z 69 | 01 70 | MYR 71 | 72 | 73 | IV0000010134444 74 | 75 | 76 | 77 | urn:oasis:names:specification:ubl:signature:Invoice 78 | urn:oasis:names:specification:ubl:dsig:enveloped:xades 79 | 80 | 81 | 82 | 62099 83 | 84 | C20407779999 85 | 86 | 87 | 200801012943 88 | 89 | 90 | Cheras 91 | 56000 92 | 14 93 | 94 | B-3, 13, Jalan 2/142a, 95 | 96 | 97 | Cheras, 56000 Cheras 98 | 99 | 100 | Wilayah Persekutuan Kuala Lumpur 101 | 102 | 103 | MYS 104 | 105 | 106 | 107 | M POS SYSTEMS SERVICES 108 | 109 | 110 | 019-626 3923 111 | Info@m-pos.com.my 112 | 113 | 114 | 115 | 116 | 117 | 118 | C20407777888 119 | 120 | 121 | 200801012943 122 | 123 | 124 | Cheras 125 | 56000 126 | 14 127 | 128 | B-3, 13, Jalan 2/142a, 129 | 130 | 131 | Cheras, 56000 Cheras 132 | 133 | 134 | Cheras, 56000 Cheras 135 | 136 | 137 | MYS 138 | 139 | 140 | 141 | M POS SYSTEMS SERVICES 142 | 143 | 144 | 019-626 3923 145 | Info@m-pos.com.my 146 | 147 | 148 | 149 | 150 | 3.5 151 | 152 | 3.5 153 | 3.5 154 | 155 | 01 156 | 10 157 | 158 | OTH 159 | 160 | 161 | 162 | 163 | 164 | 35 165 | 35 166 | 38.5 167 | 5 168 | 38.5 169 | 170 | 171 | 1 172 | 2 173 | 35 174 | 175 | false 176 | Item Discount 177 | 1 178 | 5 179 | 180 | 181 | 3.5 182 | 183 | 35 184 | 3.5 185 | 186 | 01 187 | 10 188 | 189 | OTH 190 | 191 | 192 | 193 | 194 | 195 | Computer Monitor 24 inch 196 | 197 | 003 198 | 199 | 200 | 201 | 20 202 | 203 | 204 | 40 205 | 206 | 207 | --------------------------------------------------------------------------------