├── 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 |
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 | 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
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 |
--------------------------------------------------------------------------------