@ripwords/myinvois-client 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +128 -4
  3. package/bun.lock +59 -0
  4. package/dist/{0X-Yw7mZEro.d.cts → 0X-CTIq3y3a.d.ts} +1 -2
  5. package/dist/{0X-C4IRh_fJ.d.ts → 0X-Cr3M7hci.d.cts} +1 -1
  6. package/dist/{1X-D_aUVsuM.d.cts → 1X-Bu4oiv8D.d.ts} +1 -2
  7. package/dist/{1X-C-_KHV-Q.d.ts → 1X-BywXCqtn.d.ts} +1 -2
  8. package/dist/{1X-Brnls9Jh.d.ts → 1X-CWwmfCzo.d.cts} +1 -1
  9. package/dist/{1X-BwpSoT3o.d.cts → 1X-ClnJ79HH.d.cts} +1 -1
  10. package/dist/{2X-DkS1BoE5.d.ts → 2X-3fSEGIuE.d.ts} +1 -2
  11. package/dist/{2X-Bb6elyzV.d.cts → 2X-CV9eYhog.d.cts} +1 -1
  12. package/dist/{2X-UdQcQW24.d.ts → 2X-DNtkJ0tj.d.cts} +1 -1
  13. package/dist/{2X-hClUyw26.d.cts → 2X-DnG3FY1f.d.ts} +1 -2
  14. package/dist/{3X-C7VFD-n-.d.cts → 3X--VWVsC84.d.cts} +1 -1
  15. package/dist/{3X-CLMESDvz.d.cts → 3X-BOxfatu3.d.cts} +1 -1
  16. package/dist/{3X-DVDyspgb.d.ts → 3X-CLdmoel1.d.ts} +1 -2
  17. package/dist/{3X-DFI-4RQQ.d.ts → 3X-Ynjfgoll.d.ts} +1 -2
  18. package/dist/{4X-DIfvpU6V.d.cts → 4X-B5ePdMky.d.ts} +1 -2
  19. package/dist/{4X-CvScPJTf.d.cts → 4X-BTG6o1Gn.d.ts} +1 -2
  20. package/dist/{4X-CIJ2JJ2w.d.ts → 4X-By9PzHaY.d.cts} +1 -1
  21. package/dist/{4X-CUR8jlaZ.d.ts → 4X-C7fzDWJ_.d.cts} +1 -1
  22. package/dist/{5X-BOUxhadJ.d.cts → 5X-B5M0Cv_K.d.cts} +1 -1
  23. package/dist/{5X-C6db432h.d.ts → 5X-CNAFsDm2.d.cts} +1 -1
  24. package/dist/{5X-CkLu7Vyd.d.cts → 5X-CjSz1zxJ.d.ts} +1 -2
  25. package/dist/{5X-COsZHUaQ.d.ts → 5X-dhP6fyou.d.ts} +1 -2
  26. package/dist/{6X-Mf32k1d0.d.cts → 6X-B9KP_vEn.d.ts} +1 -2
  27. package/dist/{6X-DE7RJeV6.d.cts → 6X-BHaY0TCf.d.ts} +1 -2
  28. package/dist/{6X-ClZDKOTC.d.ts → 6X-C3elgd-n.d.cts} +1 -1
  29. package/dist/{6X-C_fFIcJC.d.ts → 6X-uObUP4VG.d.cts} +1 -1
  30. package/dist/{7X-DoCUcp-J.d.cts → 7X-BifJnY24.d.cts} +1 -1
  31. package/dist/{7X-Chtd6B66.d.cts → 7X-C4eX_tAk.d.ts} +1 -2
  32. package/dist/{7X-BZyesooz.d.ts → 7X-D3idQBl9.d.cts} +1 -1
  33. package/dist/{7X-kot_VccM.d.ts → 7X-DtkQutx2.d.ts} +1 -2
  34. package/dist/{8X-Dr9RunRw.d.cts → 8X-5n9seY3z.d.ts} +1 -2
  35. package/dist/{8X-DkuKAkHz.d.ts → 8X-C6UMFvQW.d.cts} +1 -1
  36. package/dist/{8X-DqZyMvyV.d.cts → 8X-D6HTLShY.d.ts} +1 -2
  37. package/dist/{8X-Df4DOBOe.d.ts → 8X-DioBXCJ0.d.cts} +1 -1
  38. package/dist/{9X-BaoZtjWF.d.cts → 9X-BjffnXuq.d.cts} +1 -1
  39. package/dist/{9X-BDgifncF.d.ts → 9X-CHZKsIdD.d.ts} +1 -2
  40. package/dist/{9X-BcAb6Uso.d.cts → 9X-CJjPJgIG.d.cts} +1 -1
  41. package/dist/{9X-BhBWlgxG.d.ts → 9X-Cpb6V4JC.d.ts} +1 -2
  42. package/dist/{AX-D6XHWdrY.d.ts → AX-C0w_r3PA.d.ts} +1 -2
  43. package/dist/{AX-BY72FohC.d.cts → AX-DrEd2Ov6.d.cts} +1 -1
  44. package/dist/{BX-D_0C8Qbd.d.ts → BX-C5jc6myN.d.cts} +1 -1
  45. package/dist/{BX-CA0OmrUZ.d.cts → BX-RadlZ-6m.d.ts} +1 -2
  46. package/dist/{CX-glpQSL8x.d.cts → CX-CT1Zzb9D.d.ts} +1 -2
  47. package/dist/{CX-HH4cSZRX.d.ts → CX-oSgvmn3h.d.cts} +1 -1
  48. package/dist/{DX-Dx22ax_I.d.ts → DX-CtUeTKMM.d.ts} +1 -2
  49. package/dist/{DX-DimL1MDM.d.cts → DX-ZIG0enmK.d.cts} +1 -1
  50. package/dist/{EX-BRWh1wFc.d.ts → EX-084Yu7Wt.d.ts} +1 -2
  51. package/dist/{EX-Cx87Ruxl.d.cts → EX-BpWZ5ADq.d.cts} +1 -1
  52. package/dist/{FX-RmjwAr40.d.ts → FX-BrbQM0CW.d.ts} +1 -2
  53. package/dist/{FX-D81UlxNN.d.cts → FX-CvYBEc51.d.cts} +1 -1
  54. package/dist/{GX-CJyo7oDp.d.ts → GX-CU8PZy0G.d.cts} +1 -1
  55. package/dist/{GX-9i7piP9G.d.cts → GX-gKj8iAAh.d.ts} +1 -2
  56. package/dist/{HX-XALBTdLA.d.ts → HX-9D-ZXTy5.d.ts} +1 -2
  57. package/dist/{HX-20GVJAvl.d.cts → HX-DoEErDeE.d.cts} +1 -1
  58. package/dist/{IX-D54NGPsc.d.cts → IX-DR4Fc92A.d.ts} +1 -2
  59. package/dist/{IX-6SZ55QKb.d.ts → IX-jLAUHe8i.d.cts} +1 -1
  60. package/dist/{JX-hQ1XRmLp.d.ts → JX-DIKa9ma-.d.ts} +1 -2
  61. package/dist/{JX-C1RYcwQX.d.cts → JX-DX8BjYQC.d.cts} +1 -1
  62. package/dist/{KX-BNwunEfn.d.ts → KX-DpsJ_unT.d.ts} +1 -2
  63. package/dist/{KX-gQHCIgtQ.d.cts → KX-fZb4_vhw.d.cts} +1 -1
  64. package/dist/{LX-CHYX3X3J.d.ts → LX-D_mI1bk-.d.cts} +1 -1
  65. package/dist/{LX-CPurJGIh.d.cts → LX-DeXPPWUX.d.ts} +1 -2
  66. package/dist/{MX-BnyW5eHf.d.cts → MX-CKMjg_zK.d.ts} +1 -2
  67. package/dist/{MX-BPGLWSUz.d.ts → MX-DlYZhpkT.d.cts} +1 -1
  68. package/dist/{NX-B11fQuco.d.cts → NX-DELEEbad.d.cts} +1 -1
  69. package/dist/{NX-RulN5Ml3.d.ts → NX-oYdb4NDo.d.ts} +1 -2
  70. package/dist/{OX-T-ydRXQS.d.cts → OX-Bid9es3D.d.ts} +1 -2
  71. package/dist/{OX-DgKVSp7I.d.ts → OX-CKPyrIFf.d.cts} +1 -1
  72. package/dist/{PX-DA4A2kEv.d.ts → PX-D7jy9CFk.d.ts} +1 -2
  73. package/dist/{PX-p0n1SzvU.d.cts → PX-SP6NxBtG.d.cts} +1 -1
  74. package/dist/{QX-DrFqsMEs.d.ts → QX-BFWOR4g3.d.ts} +1 -2
  75. package/dist/{QX-CI1NccIB.d.cts → QX-QZA7E2O-.d.cts} +1 -1
  76. package/dist/{RX-Cm7vFcFN.d.ts → RX-DBcgbdeE.d.cts} +1 -1
  77. package/dist/{RX-DnNKol22.d.cts → RX-XHgCyMV1.d.ts} +1 -2
  78. package/dist/{SX-CsPPTu-W.d.ts → SX-Cl8RN8oH.d.ts} +1 -2
  79. package/dist/{SX-BUjiWQYz.d.cts → SX-DmiJeCMN.d.cts} +1 -1
  80. package/dist/{TX-DCY25MdR.d.ts → TX-C1SoDobK.d.cts} +1 -1
  81. package/dist/{TX-DOEpsf05.d.cts → TX-ZymoIbtr.d.ts} +1 -2
  82. package/dist/{UX-DgUOnTFK.d.cts → UX-D-Ndd1ov.d.ts} +1 -2
  83. package/dist/{UX-DauyagHy.d.ts → UX-DFVynFhQ.d.cts} +1 -1
  84. package/dist/{VX-kUX6LM-3.d.cts → VX-B-1b34r7.d.ts} +1 -2
  85. package/dist/{VX-DD4scgCe.d.ts → VX-DsRum5k3.d.cts} +1 -1
  86. package/dist/{WX-DPfyPFFh.d.cts → WX-0GuMjPNZ.d.ts} +1 -2
  87. package/dist/{WX-CjkoppdY.d.ts → WX-VReU5R5M.d.cts} +1 -1
  88. package/dist/{XX-C4C1gQZH.d.cts → XX-CF2NANsy.d.ts} +1 -2
  89. package/dist/{XX-sbsIUOnA.d.ts → XX-ChAviUMj.d.cts} +1 -1
  90. package/dist/{YX-DUdO8mRC.d.ts → YX-B51BbNSg.d.ts} +1 -2
  91. package/dist/{YX-BeT-LsiA.d.cts → YX-QfzeMEKx.d.cts} +1 -1
  92. package/dist/{ZX-DwfcSA-D.d.ts → ZX-BMJS1iAv.d.ts} +1 -2
  93. package/dist/{ZX-BuVTTq-D.d.cts → ZX-Ca2E726a.d.cts} +1 -1
  94. package/dist/api/platform/platformLogin.d.ts +58 -60
  95. package/dist/api/platform/platformLogin.js +1 -1
  96. package/dist/certificate-DFK-788s.cjs +62 -0
  97. package/dist/certificate-DFK-788s.cjs.map +1 -0
  98. package/dist/certificate-aooIRf9A.js +49 -0
  99. package/dist/{classification-codes-C2X4xW5-.d.ts → classification-codes-BKxV-rO9.d.ts} +1 -2
  100. package/dist/{country-code-DsI8Mbzx.d.ts → country-code-CQuaiQm2.d.ts} +1 -2
  101. package/dist/{currencies-DKuDflOO.d.ts → currencies-BYJK-m6v.d.ts} +1 -2
  102. package/dist/document-CARHiGdp.cjs +472 -0
  103. package/dist/document-CARHiGdp.cjs.map +1 -0
  104. package/dist/document-D6VKMAtx.js +405 -0
  105. package/dist/documents-CJ8hqIGH.d.ts +858 -0
  106. package/dist/documents-MGs0EvXh.d.cts +859 -0
  107. package/dist/{e-invoice-C2TxhyrK.d.ts → e-invoice-CmbLQkHw.d.ts} +1 -2
  108. package/dist/{getBaseUrl-Dx6RDC8I.js → getBaseUrl-R3IdgCu3.js} +1 -2
  109. package/dist/{index-B1DSs-wd.d.cts → index-0-EvC6Nv.d.ts} +1 -2
  110. package/dist/{index-FTgB2nM6.d.ts → index-D2_HVwCz.d.cts} +1 -1
  111. package/dist/index.cjs +308 -12
  112. package/dist/index.cjs.map +1 -0
  113. package/dist/index.d.ts +233 -60
  114. package/dist/index.js +306 -11
  115. package/dist/index10.cjs +0 -34
  116. package/dist/index11.cjs +25 -15
  117. package/dist/index11.cjs.map +1 -1
  118. package/dist/index12.cjs +24 -0
  119. package/dist/index12.cjs.map +1 -0
  120. package/dist/index13.cjs +0 -13
  121. package/dist/index15.cjs +3 -2
  122. package/dist/index16.cjs +12 -16
  123. package/dist/index17.cjs +2 -2
  124. package/dist/index18.cjs +336 -204
  125. package/dist/index18.cjs.map +1 -1
  126. package/dist/index19.cjs +325 -105
  127. package/dist/index19.cjs.map +1 -1
  128. package/dist/index20.cjs +136 -133
  129. package/dist/index20.cjs.map +1 -1
  130. package/dist/index21.cjs +203 -59
  131. package/dist/index21.cjs.map +1 -1
  132. package/dist/index22.cjs +104 -262
  133. package/dist/index22.cjs.map +1 -1
  134. package/dist/index23.cjs +132 -74
  135. package/dist/index23.cjs.map +1 -1
  136. package/dist/index24.cjs +59 -102
  137. package/dist/index24.cjs.map +1 -1
  138. package/dist/index25.cjs +262 -68
  139. package/dist/index25.cjs.map +1 -1
  140. package/dist/index26.cjs +74 -107
  141. package/dist/index26.cjs.map +1 -1
  142. package/dist/index27.cjs +102 -95
  143. package/dist/index27.cjs.map +1 -1
  144. package/dist/index28.cjs +68 -13
  145. package/dist/index28.cjs.map +1 -1
  146. package/dist/index29.cjs +107 -33
  147. package/dist/index29.cjs.map +1 -1
  148. package/dist/index30.cjs +95 -14
  149. package/dist/index30.cjs.map +1 -1
  150. package/dist/index31.cjs +11 -22
  151. package/dist/index31.cjs.map +1 -1
  152. package/dist/index32.cjs +31 -13
  153. package/dist/index32.cjs.map +1 -1
  154. package/dist/index33.cjs +12 -7
  155. package/dist/index33.cjs.map +1 -1
  156. package/dist/index34.cjs +22 -7
  157. package/dist/index34.cjs.map +1 -1
  158. package/dist/index35.cjs +13 -10
  159. package/dist/index35.cjs.map +1 -1
  160. package/dist/index36.cjs +7 -6
  161. package/dist/index36.cjs.map +1 -1
  162. package/dist/index37.cjs +7 -101
  163. package/dist/index37.cjs.map +1 -1
  164. package/dist/index38.cjs +10 -106
  165. package/dist/index38.cjs.map +1 -1
  166. package/dist/index39.cjs +6 -119
  167. package/dist/index39.cjs.map +1 -1
  168. package/dist/index40.cjs +101 -106
  169. package/dist/index40.cjs.map +1 -1
  170. package/dist/index41.cjs +106 -98
  171. package/dist/index41.cjs.map +1 -1
  172. package/dist/index42.cjs +119 -118
  173. package/dist/index42.cjs.map +1 -1
  174. package/dist/index43.cjs +106 -127
  175. package/dist/index43.cjs.map +1 -1
  176. package/dist/index44.cjs +98 -117
  177. package/dist/index44.cjs.map +1 -1
  178. package/dist/index45.cjs +118 -14
  179. package/dist/index45.cjs.map +1 -1
  180. package/dist/index46.cjs +127 -95
  181. package/dist/index46.cjs.map +1 -1
  182. package/dist/index47.cjs +117 -142
  183. package/dist/index47.cjs.map +1 -1
  184. package/dist/index48.cjs +14 -114
  185. package/dist/index48.cjs.map +1 -1
  186. package/dist/index49.cjs +95 -144
  187. package/dist/index49.cjs.map +1 -1
  188. package/dist/index5.cjs +0 -25
  189. package/dist/index50.cjs +142 -113
  190. package/dist/index50.cjs.map +1 -1
  191. package/dist/index51.cjs +114 -17
  192. package/dist/index51.cjs.map +1 -1
  193. package/dist/index52.cjs +144 -112
  194. package/dist/index52.cjs.map +1 -1
  195. package/dist/index53.cjs +113 -47
  196. package/dist/index53.cjs.map +1 -1
  197. package/dist/index54.cjs +17 -14
  198. package/dist/index54.cjs.map +1 -1
  199. package/dist/index55.cjs +112 -28
  200. package/dist/index55.cjs.map +1 -1
  201. package/dist/index56.cjs +47 -22
  202. package/dist/index56.cjs.map +1 -1
  203. package/dist/index57.cjs +14 -9
  204. package/dist/index57.cjs.map +1 -1
  205. package/dist/index58.cjs +28 -8
  206. package/dist/index58.cjs.map +1 -1
  207. package/dist/index58.cts.map +1 -0
  208. package/dist/index59.cjs +22 -17
  209. package/dist/index59.cjs.map +1 -1
  210. package/dist/index59.cts.map +1 -1
  211. package/dist/index6.cjs +25 -0
  212. package/dist/{index5.cjs.map → index6.cjs.map} +1 -1
  213. package/dist/index60.cjs +9 -412
  214. package/dist/index60.cjs.map +1 -1
  215. package/dist/index60.cts.map +1 -0
  216. package/dist/index61.cjs +8 -8
  217. package/dist/index61.cjs.map +1 -1
  218. package/dist/index61.cts.map +1 -0
  219. package/dist/index62.cjs +17 -9
  220. package/dist/index62.cjs.map +1 -1
  221. package/dist/index62.cts.map +1 -1
  222. package/dist/index63.cjs +419 -0
  223. package/dist/index63.cjs.map +1 -0
  224. package/dist/index63.cts.map +1 -1
  225. package/dist/index64.cjs +15 -0
  226. package/dist/index64.cjs.map +1 -0
  227. package/dist/index64.cts.map +1 -1
  228. package/dist/index65.cjs +10 -116
  229. package/dist/index65.cjs.map +1 -1
  230. package/dist/index65.cts.map +1 -1
  231. package/dist/index66.cjs +2 -228
  232. package/dist/index66.cts.map +1 -1
  233. package/dist/index8.cjs +0 -25
  234. package/dist/index9.cjs +25 -0
  235. package/dist/{index8.cjs.map → index9.cjs.map} +1 -1
  236. package/dist/msic-codes-C8PJVOaA.d.ts +25 -0
  237. package/dist/{msic-codes-B_1W6lZF.d.cts → msic-codes-CIKdPqag.d.cts} +11 -11
  238. package/dist/{payment-modes-DHihrywe.d.cts → payment-modes-BOTSRC_X.d.ts} +1 -2
  239. package/dist/{payment-modes-B8dNy3SM.d.ts → payment-modes-ghFEXnUl.d.cts} +1 -1
  240. package/dist/platformLogin-PGzMhw1X.cjs.map +1 -1
  241. package/dist/{platformLogin-DsxWWUXr.js → platformLogin-f0bNAoZI.js} +1 -2
  242. package/dist/{signatures-C9QPZTQd.d.ts → signatures-W-_brwdb.d.ts} +1 -2
  243. package/dist/{signatures-BKi9DP2K.d.cts → signatures-hFbt_std.d.cts} +1 -1
  244. package/dist/{state-codes-DXSWtE6a.d.cts → state-codes-BlILGZ9d.d.cts} +1 -1
  245. package/dist/{state-codes-CxG1S9YY.d.ts → state-codes-oeFKlwXZ.d.ts} +1 -2
  246. package/dist/{tax-types-CgwxONDS.d.cts → tax-types-B5sQ8UyN.d.cts} +1 -1
  247. package/dist/{tax-types-CEpfSh5P.d.ts → tax-types-CsQ76JMf.d.ts} +1 -2
  248. package/dist/types/classification-codes.d.ts +1 -1
  249. package/dist/types/country-code.d.ts +1 -1
  250. package/dist/types/currencies.d.ts +1 -1
  251. package/dist/types/documents.d.ts +18 -0
  252. package/dist/types/e-invoice.d.ts +1 -1
  253. package/dist/types/index.d.ts +58 -59
  254. package/dist/types/msic/0X.d.ts +1 -1
  255. package/dist/types/msic/1X.d.ts +1 -1
  256. package/dist/types/msic/2X.d.ts +1 -1
  257. package/dist/types/msic/3X.d.ts +1 -1
  258. package/dist/types/msic/4X.d.ts +1 -1
  259. package/dist/types/msic/5X.d.ts +1 -1
  260. package/dist/types/msic/6X.d.ts +1 -1
  261. package/dist/types/msic/7X.d.ts +1 -1
  262. package/dist/types/msic/8X.d.ts +1 -1
  263. package/dist/types/msic/9X.d.ts +1 -1
  264. package/dist/types/msic-codes.d.ts +11 -11
  265. package/dist/types/payment-modes.d.ts +1 -1
  266. package/dist/types/signatures.d.ts +1 -1
  267. package/dist/types/state-codes.d.ts +1 -1
  268. package/dist/types/tax-types.d.ts +1 -1
  269. package/dist/types/unit/1X.d.ts +1 -1
  270. package/dist/types/unit/2X.d.ts +1 -1
  271. package/dist/types/unit/3X.d.ts +1 -1
  272. package/dist/types/unit/4X.d.ts +1 -1
  273. package/dist/types/unit/5X.d.ts +1 -1
  274. package/dist/types/unit/6X.d.ts +1 -1
  275. package/dist/types/unit/7X.d.ts +1 -1
  276. package/dist/types/unit/8X.d.ts +1 -1
  277. package/dist/types/unit/9X.d.ts +1 -1
  278. package/dist/types/unit/AX.d.ts +1 -1
  279. package/dist/types/unit/BX.d.ts +1 -1
  280. package/dist/types/unit/CX.d.ts +1 -1
  281. package/dist/types/unit/DX.d.ts +1 -1
  282. package/dist/types/unit/EX.d.ts +1 -1
  283. package/dist/types/unit/FX.d.ts +1 -1
  284. package/dist/types/unit/GX.d.ts +1 -1
  285. package/dist/types/unit/HX.d.ts +1 -1
  286. package/dist/types/unit/IX.d.ts +1 -1
  287. package/dist/types/unit/JX.d.ts +1 -1
  288. package/dist/types/unit/KX.d.ts +1 -1
  289. package/dist/types/unit/LX.d.ts +1 -1
  290. package/dist/types/unit/MX.d.ts +1 -1
  291. package/dist/types/unit/NX.d.ts +1 -1
  292. package/dist/types/unit/OX.d.ts +1 -1
  293. package/dist/types/unit/PX.d.ts +1 -1
  294. package/dist/types/unit/QX.d.ts +1 -1
  295. package/dist/types/unit/RX.d.ts +1 -1
  296. package/dist/types/unit/SX.d.ts +1 -1
  297. package/dist/types/unit/TX.d.ts +1 -1
  298. package/dist/types/unit/UX.d.ts +1 -1
  299. package/dist/types/unit/VX.d.ts +1 -1
  300. package/dist/types/unit/WX.d.ts +1 -1
  301. package/dist/types/unit/XX.d.ts +1 -1
  302. package/dist/types/unit/YX.d.ts +1 -1
  303. package/dist/types/unit/ZX.d.ts +1 -1
  304. package/dist/types/unit-types.d.ts +36 -36
  305. package/dist/unit-types-B41YFOLT.d.ts +55 -0
  306. package/dist/unit-types-CjWNk2wS.d.cts +56 -0
  307. package/dist/utils/base64.d.ts +1 -2
  308. package/dist/utils/base64.js +1 -2
  309. package/dist/utils/certificate.d.ts +22 -0
  310. package/dist/utils/certificate.js +3 -0
  311. package/dist/utils/document.d.ts +135 -0
  312. package/dist/utils/document.js +3 -0
  313. package/dist/utils/getBaseUrl.d.ts +1 -2
  314. package/dist/utils/getBaseUrl.js +1 -1
  315. package/dist/utils/helpers.d.ts +271 -0
  316. package/dist/utils/helpers.js +330 -0
  317. package/dist/utils/signature-diagnostics.d.ts +93 -0
  318. package/dist/utils/signature-diagnostics.js +326 -0
  319. package/dist/utils/validation.d.ts +46 -0
  320. package/dist/utils/validation.js +134 -0
  321. package/myinvois-cert.conf.template +23 -0
  322. package/package.json +9 -3
  323. package/scripts/gen-cert.sh +159 -0
  324. package/src/api/platform/platformLogin.ts +1 -1
  325. package/src/index.ts +528 -1
  326. package/src/types/documents.d.ts +870 -0
  327. package/src/types/index.d.ts +1 -1
  328. package/src/utils/certificate.ts +60 -0
  329. package/src/utils/document.ts +852 -0
  330. package/src/utils/helpers.ts +552 -0
  331. package/src/utils/signature-diagnostics.ts +583 -0
  332. package/src/utils/validation.ts +268 -0
  333. package/test/MyInvoiClientWithRealData.test.ts +9 -1
  334. package/test/MyInvoisClient.test.ts +7 -1
  335. package/test/dynamicInvoiceFeatures.test.ts +451 -0
  336. package/test/signAndSubmitInvoice.test.ts +271 -734
  337. package/test/signature-diagnostics.test.ts +130 -0
  338. package/tsconfig.json +0 -3
  339. package/dist/0X-C4IRh_fJ.d.ts.map +0 -1
  340. package/dist/0X-Yw7mZEro.d.cts.map +0 -1
  341. package/dist/1X-Brnls9Jh.d.ts.map +0 -1
  342. package/dist/1X-BwpSoT3o.d.cts.map +0 -1
  343. package/dist/1X-C-_KHV-Q.d.ts.map +0 -1
  344. package/dist/1X-D_aUVsuM.d.cts.map +0 -1
  345. package/dist/2X-Bb6elyzV.d.cts.map +0 -1
  346. package/dist/2X-DkS1BoE5.d.ts.map +0 -1
  347. package/dist/2X-UdQcQW24.d.ts.map +0 -1
  348. package/dist/2X-hClUyw26.d.cts.map +0 -1
  349. package/dist/3X-C7VFD-n-.d.cts.map +0 -1
  350. package/dist/3X-CLMESDvz.d.cts.map +0 -1
  351. package/dist/3X-DFI-4RQQ.d.ts.map +0 -1
  352. package/dist/3X-DVDyspgb.d.ts.map +0 -1
  353. package/dist/4X-CIJ2JJ2w.d.ts.map +0 -1
  354. package/dist/4X-CUR8jlaZ.d.ts.map +0 -1
  355. package/dist/4X-CvScPJTf.d.cts.map +0 -1
  356. package/dist/4X-DIfvpU6V.d.cts.map +0 -1
  357. package/dist/5X-BOUxhadJ.d.cts.map +0 -1
  358. package/dist/5X-C6db432h.d.ts.map +0 -1
  359. package/dist/5X-COsZHUaQ.d.ts.map +0 -1
  360. package/dist/5X-CkLu7Vyd.d.cts.map +0 -1
  361. package/dist/6X-C_fFIcJC.d.ts.map +0 -1
  362. package/dist/6X-ClZDKOTC.d.ts.map +0 -1
  363. package/dist/6X-DE7RJeV6.d.cts.map +0 -1
  364. package/dist/6X-Mf32k1d0.d.cts.map +0 -1
  365. package/dist/7X-BZyesooz.d.ts.map +0 -1
  366. package/dist/7X-Chtd6B66.d.cts.map +0 -1
  367. package/dist/7X-DoCUcp-J.d.cts.map +0 -1
  368. package/dist/7X-kot_VccM.d.ts.map +0 -1
  369. package/dist/8X-Df4DOBOe.d.ts.map +0 -1
  370. package/dist/8X-DkuKAkHz.d.ts.map +0 -1
  371. package/dist/8X-DqZyMvyV.d.cts.map +0 -1
  372. package/dist/8X-Dr9RunRw.d.cts.map +0 -1
  373. package/dist/9X-BDgifncF.d.ts.map +0 -1
  374. package/dist/9X-BaoZtjWF.d.cts.map +0 -1
  375. package/dist/9X-BcAb6Uso.d.cts.map +0 -1
  376. package/dist/9X-BhBWlgxG.d.ts.map +0 -1
  377. package/dist/AX-BY72FohC.d.cts.map +0 -1
  378. package/dist/AX-D6XHWdrY.d.ts.map +0 -1
  379. package/dist/BX-CA0OmrUZ.d.cts.map +0 -1
  380. package/dist/BX-D_0C8Qbd.d.ts.map +0 -1
  381. package/dist/CX-HH4cSZRX.d.ts.map +0 -1
  382. package/dist/CX-glpQSL8x.d.cts.map +0 -1
  383. package/dist/DX-DimL1MDM.d.cts.map +0 -1
  384. package/dist/DX-Dx22ax_I.d.ts.map +0 -1
  385. package/dist/EX-BRWh1wFc.d.ts.map +0 -1
  386. package/dist/EX-Cx87Ruxl.d.cts.map +0 -1
  387. package/dist/FX-D81UlxNN.d.cts.map +0 -1
  388. package/dist/FX-RmjwAr40.d.ts.map +0 -1
  389. package/dist/GX-9i7piP9G.d.cts.map +0 -1
  390. package/dist/GX-CJyo7oDp.d.ts.map +0 -1
  391. package/dist/HX-20GVJAvl.d.cts.map +0 -1
  392. package/dist/HX-XALBTdLA.d.ts.map +0 -1
  393. package/dist/IX-6SZ55QKb.d.ts.map +0 -1
  394. package/dist/IX-D54NGPsc.d.cts.map +0 -1
  395. package/dist/JX-C1RYcwQX.d.cts.map +0 -1
  396. package/dist/JX-hQ1XRmLp.d.ts.map +0 -1
  397. package/dist/KX-BNwunEfn.d.ts.map +0 -1
  398. package/dist/KX-gQHCIgtQ.d.cts.map +0 -1
  399. package/dist/LX-CHYX3X3J.d.ts.map +0 -1
  400. package/dist/LX-CPurJGIh.d.cts.map +0 -1
  401. package/dist/MX-BPGLWSUz.d.ts.map +0 -1
  402. package/dist/MX-BnyW5eHf.d.cts.map +0 -1
  403. package/dist/MyInvoisClient-BrNyMjS-.d.cts +0 -178
  404. package/dist/MyInvoisClient-BrNyMjS-.d.cts.map +0 -1
  405. package/dist/MyInvoisClient-CXu4pdl-.d.ts +0 -178
  406. package/dist/MyInvoisClient-CXu4pdl-.d.ts.map +0 -1
  407. package/dist/MyInvoisClient-Cnvb5iUC.js +0 -299
  408. package/dist/MyInvoisClient-Cnvb5iUC.js.map +0 -1
  409. package/dist/MyInvoisClient-DO1dJfQq.cjs +0 -304
  410. package/dist/MyInvoisClient-DO1dJfQq.cjs.map +0 -1
  411. package/dist/NX-B11fQuco.d.cts.map +0 -1
  412. package/dist/NX-RulN5Ml3.d.ts.map +0 -1
  413. package/dist/OX-DgKVSp7I.d.ts.map +0 -1
  414. package/dist/OX-T-ydRXQS.d.cts.map +0 -1
  415. package/dist/PX-DA4A2kEv.d.ts.map +0 -1
  416. package/dist/PX-p0n1SzvU.d.cts.map +0 -1
  417. package/dist/QX-CI1NccIB.d.cts.map +0 -1
  418. package/dist/QX-DrFqsMEs.d.ts.map +0 -1
  419. package/dist/RX-Cm7vFcFN.d.ts.map +0 -1
  420. package/dist/RX-DnNKol22.d.cts.map +0 -1
  421. package/dist/SX-BUjiWQYz.d.cts.map +0 -1
  422. package/dist/SX-CsPPTu-W.d.ts.map +0 -1
  423. package/dist/TX-DCY25MdR.d.ts.map +0 -1
  424. package/dist/TX-DOEpsf05.d.cts.map +0 -1
  425. package/dist/UX-DauyagHy.d.ts.map +0 -1
  426. package/dist/UX-DgUOnTFK.d.cts.map +0 -1
  427. package/dist/VX-DD4scgCe.d.ts.map +0 -1
  428. package/dist/VX-kUX6LM-3.d.cts.map +0 -1
  429. package/dist/WX-CjkoppdY.d.ts.map +0 -1
  430. package/dist/WX-DPfyPFFh.d.cts.map +0 -1
  431. package/dist/XX-C4C1gQZH.d.cts.map +0 -1
  432. package/dist/XX-sbsIUOnA.d.ts.map +0 -1
  433. package/dist/YX-BeT-LsiA.d.cts.map +0 -1
  434. package/dist/YX-DUdO8mRC.d.ts.map +0 -1
  435. package/dist/ZX-BuVTTq-D.d.cts.map +0 -1
  436. package/dist/ZX-DwfcSA-D.d.ts.map +0 -1
  437. package/dist/api/platform/platformLogin.d.ts.map +0 -1
  438. package/dist/canonicalize-C_fNNpYr.cjs +0 -80
  439. package/dist/canonicalize-C_fNNpYr.cjs.map +0 -1
  440. package/dist/canonicalize-DNUrCGad.js +0 -68
  441. package/dist/canonicalize-DNUrCGad.js.map +0 -1
  442. package/dist/classification-codes-B15PbWxz.d.cts.map +0 -1
  443. package/dist/classification-codes-C2X4xW5-.d.ts.map +0 -1
  444. package/dist/country-code-DPeNFMMi.d.cts.map +0 -1
  445. package/dist/country-code-DsI8Mbzx.d.ts.map +0 -1
  446. package/dist/currencies-DKuDflOO.d.ts.map +0 -1
  447. package/dist/currencies-S5g1gzBU.d.cts.map +0 -1
  448. package/dist/e-invoice-BuwtFnlI.d.cts.map +0 -1
  449. package/dist/e-invoice-C2TxhyrK.d.ts.map +0 -1
  450. package/dist/getBaseUrl-Dx6RDC8I.js.map +0 -1
  451. package/dist/hashCert-Bol7lIh2.js +0 -62
  452. package/dist/hashCert-Bol7lIh2.js.map +0 -1
  453. package/dist/hashCert-mlYEuYex.cjs +0 -68
  454. package/dist/hashCert-mlYEuYex.cjs.map +0 -1
  455. package/dist/hashSignedProperties-9vj5wlYR.js +0 -83
  456. package/dist/hashSignedProperties-9vj5wlYR.js.map +0 -1
  457. package/dist/hashSignedProperties-CU_ZqqmY.cjs +0 -95
  458. package/dist/hashSignedProperties-CU_ZqqmY.cjs.map +0 -1
  459. package/dist/index-B1DSs-wd.d.cts.map +0 -1
  460. package/dist/index-CJNLQVjx.d.ts +0 -1
  461. package/dist/index-FTgB2nM6.d.ts.map +0 -1
  462. package/dist/index-Wy1ONBjV.d.cts +0 -1
  463. package/dist/index10.cjs.map +0 -1
  464. package/dist/index66.cjs.map +0 -1
  465. package/dist/index67.cjs +0 -4
  466. package/dist/index67.cts.map +0 -1
  467. package/dist/index68.cjs +0 -3
  468. package/dist/index68.cts.map +0 -1
  469. package/dist/index69.cjs +0 -4
  470. package/dist/index69.cts.map +0 -1
  471. package/dist/index70.cjs +0 -3
  472. package/dist/index70.cts.map +0 -1
  473. package/dist/index71.cjs +0 -3
  474. package/dist/index71.cts.map +0 -1
  475. package/dist/index72.cjs +0 -3
  476. package/dist/index72.cts.map +0 -1
  477. package/dist/index73.cjs +0 -3
  478. package/dist/index73.cts.map +0 -1
  479. package/dist/invoice-1_1-BJVcw-oE.d.ts +0 -432
  480. package/dist/invoice-1_1-BJVcw-oE.d.ts.map +0 -1
  481. package/dist/invoice-1_1-DWdNPRzr.d.cts +0 -432
  482. package/dist/invoice-1_1-DWdNPRzr.d.cts.map +0 -1
  483. package/dist/invoice1-1-8S-QQn7P.cjs +0 -547
  484. package/dist/invoice1-1-8S-QQn7P.cjs.map +0 -1
  485. package/dist/invoice1-1-CHuLpkFz.js +0 -504
  486. package/dist/invoice1-1-CHuLpkFz.js.map +0 -1
  487. package/dist/msic-codes-B_1W6lZF.d.cts.map +0 -1
  488. package/dist/msic-codes-bs0lTfSZ.d.ts +0 -26
  489. package/dist/msic-codes-bs0lTfSZ.d.ts.map +0 -1
  490. package/dist/payment-modes-B8dNy3SM.d.ts.map +0 -1
  491. package/dist/payment-modes-DHihrywe.d.cts.map +0 -1
  492. package/dist/platformLogin-DsxWWUXr.js.map +0 -1
  493. package/dist/populateFinalDocument-BdyYzz5Y.cjs +0 -96
  494. package/dist/populateFinalDocument-BdyYzz5Y.cjs.map +0 -1
  495. package/dist/populateFinalDocument-BpLXmgLv.js +0 -90
  496. package/dist/populateFinalDocument-BpLXmgLv.js.map +0 -1
  497. package/dist/populateSignedProperties-BJMcBQ6S.cjs +0 -58
  498. package/dist/populateSignedProperties-BJMcBQ6S.cjs.map +0 -1
  499. package/dist/populateSignedProperties-BvGN-YZH.js +0 -52
  500. package/dist/populateSignedProperties-BvGN-YZH.js.map +0 -1
  501. package/dist/sign-B61Cy3gO.cjs +0 -40
  502. package/dist/sign-B61Cy3gO.cjs.map +0 -1
  503. package/dist/sign-DzHK7UhR.js +0 -34
  504. package/dist/sign-DzHK7UhR.js.map +0 -1
  505. package/dist/signatures-BKi9DP2K.d.cts.map +0 -1
  506. package/dist/signatures-C9QPZTQd.d.ts.map +0 -1
  507. package/dist/state-codes-CxG1S9YY.d.ts.map +0 -1
  508. package/dist/state-codes-DXSWtE6a.d.cts.map +0 -1
  509. package/dist/tax-types-CEpfSh5P.d.ts.map +0 -1
  510. package/dist/tax-types-CgwxONDS.d.cts.map +0 -1
  511. package/dist/transform-BLz0S687.cjs +0 -72
  512. package/dist/transform-BLz0S687.cjs.map +0 -1
  513. package/dist/transform-D1q-U6Zj.js +0 -66
  514. package/dist/transform-D1q-U6Zj.js.map +0 -1
  515. package/dist/types/documents/index.d.ts +0 -57
  516. package/dist/types/documents/invoice-1_1.d.ts +0 -56
  517. package/dist/unit-types-1bF0KhIp.d.ts +0 -56
  518. package/dist/unit-types-1bF0KhIp.d.ts.map +0 -1
  519. package/dist/unit-types-CsrkvgfG.d.cts +0 -56
  520. package/dist/unit-types-CsrkvgfG.d.cts.map +0 -1
  521. package/dist/utils/MyInvoisClient.d.ts +0 -60
  522. package/dist/utils/MyInvoisClient.js +0 -13
  523. package/dist/utils/base64.d.ts.map +0 -1
  524. package/dist/utils/base64.js.map +0 -1
  525. package/dist/utils/debug/debug-document-hash.d.ts +0 -100
  526. package/dist/utils/debug/debug-document-hash.d.ts.map +0 -1
  527. package/dist/utils/debug/debug-document-hash.js +0 -120
  528. package/dist/utils/debug/debug-document-hash.js.map +0 -1
  529. package/dist/utils/debug/debug-invoice-submission.d.ts +0 -152
  530. package/dist/utils/debug/debug-invoice-submission.d.ts.map +0 -1
  531. package/dist/utils/debug/debug-invoice-submission.js +0 -226
  532. package/dist/utils/debug/debug-invoice-submission.js.map +0 -1
  533. package/dist/utils/getBaseUrl.d.ts.map +0 -1
  534. package/dist/utils/invoice1-1.d.ts +0 -117
  535. package/dist/utils/invoice1-1.d.ts.map +0 -1
  536. package/dist/utils/invoice1-1.js +0 -10
  537. package/dist/utils/signature/canonicalize.d.ts +0 -26
  538. package/dist/utils/signature/canonicalize.d.ts.map +0 -1
  539. package/dist/utils/signature/canonicalize.js +0 -3
  540. package/dist/utils/signature/hashCert.d.ts +0 -15
  541. package/dist/utils/signature/hashCert.d.ts.map +0 -1
  542. package/dist/utils/signature/hashCert.js +0 -3
  543. package/dist/utils/signature/hashSignedProperties.d.ts +0 -25
  544. package/dist/utils/signature/hashSignedProperties.d.ts.map +0 -1
  545. package/dist/utils/signature/hashSignedProperties.js +0 -3
  546. package/dist/utils/signature/populateFinalDocument.d.ts +0 -23
  547. package/dist/utils/signature/populateFinalDocument.d.ts.map +0 -1
  548. package/dist/utils/signature/populateFinalDocument.js +0 -3
  549. package/dist/utils/signature/populateSignedProperties.d.ts +0 -23
  550. package/dist/utils/signature/populateSignedProperties.d.ts.map +0 -1
  551. package/dist/utils/signature/populateSignedProperties.js +0 -3
  552. package/dist/utils/signature/sign.d.ts +0 -16
  553. package/dist/utils/signature/sign.d.ts.map +0 -1
  554. package/dist/utils/signature/sign.js +0 -3
  555. package/dist/utils/signature/transform.d.ts +0 -16
  556. package/dist/utils/signature/transform.d.ts.map +0 -1
  557. package/dist/utils/signature/transform.js +0 -3
  558. package/src/types/documents/index.d.ts +0 -1
  559. package/src/types/documents/invoice-1_1.d.ts +0 -439
  560. package/src/utils/MyInvoisClient.ts +0 -501
  561. package/src/utils/debug/debug-document-hash.ts +0 -249
  562. package/src/utils/debug/debug-invoice-submission.ts +0 -355
  563. package/src/utils/invoice1-1.ts +0 -671
  564. package/src/utils/signature/canonicalize.ts +0 -104
  565. package/src/utils/signature/hashCert.ts +0 -115
  566. package/src/utils/signature/hashSignedProperties.ts +0 -155
  567. package/src/utils/signature/populateFinalDocument.ts +0 -187
  568. package/src/utils/signature/populateSignedProperties.ts +0 -87
  569. package/src/utils/signature/sign.ts +0 -51
  570. package/src/utils/signature/transform.ts +0 -99
  571. package/test/canonicalize.test.ts +0 -110
  572. package/test/hashCert.test.ts +0 -95
  573. package/test/hashSignedProperties.test.ts +0 -140
  574. package/test/populateFinalDocument.test.ts +0 -218
  575. package/test/populateSignedProperties.test.ts +0 -155
  576. package/test/sign.test.ts +0 -70
  577. package/test/transform.test.ts +0 -158
@@ -0,0 +1,870 @@
1
+ import type { ClassificationCode } from './classification-codes.d.ts'
2
+ import type { CurrencyCode } from './currencies.d.ts'
3
+ import type { EInvoiceTypeCode } from './e-invoice.d.ts'
4
+ import type { MSICCode } from './msic-codes.d.ts'
5
+ import type { IssuerDigitalSignature } from './signatures.d.ts'
6
+ import type { Suggested } from './utils.d.ts'
7
+ import type { TaxTypeCode } from './tax-types.d.ts'
8
+
9
+ export type RegistrationType = 'BRN' | 'NRIC' | 'PASSPORT'
10
+
11
+ // Based on https://sdk.myinvois.hasil.gov.my/documents/invoice-v1-1/
12
+
13
+ /**
14
+ * Represents a physical address.
15
+ * Based on the Address section of the documentation.
16
+ */
17
+ export interface Address {
18
+ /** Main address line. Max 150 chars.
19
+ * @example Lot 66
20
+ */
21
+ addressLine0: string
22
+ /** City name. Max 50 chars. */
23
+ cityName: string
24
+ /** State code. Refer to /codes/state-codes/. Max 50 chars. */
25
+ state: string
26
+ /** Country code (ISO 3166-1). Refer to /codes/countries/. Max 3 chars. */
27
+ country: string // MYS
28
+ }
29
+
30
+ /**
31
+ * Represents the supplier information.
32
+ * Based on the Supplier section of the documentation.
33
+ */
34
+ export interface Supplier {
35
+ /** Supplier's name. Max 300 chars.
36
+ * @example Test Supplier Sdn Bhd
37
+ */
38
+ name: string
39
+ /** Supplier's Tax Identification Number (TIN). Max 14 chars.
40
+ * @example 1234567890
41
+ */
42
+ tin: string
43
+ /**
44
+ * Supplier's Registration Type. NRIC, BRN, PASSPORT
45
+ * @example NRIC
46
+ */
47
+ registrationType: RegistrationType
48
+ /**
49
+ * Supplier's Registration / Identification Number / Passport Number.
50
+ * Format depends on schemeID: NRIC (12), BRN (20), PASSPORT (12), ARMY (12).
51
+ * @example BRN: 202001234567
52
+ */
53
+ registrationNumber: string
54
+ /** Supplier's address. */
55
+ address: Address
56
+ /** Supplier's contact number (E.164 standard). Max 20 chars.
57
+ * @example +60123456789
58
+ */
59
+ contactNumber: string
60
+ /**
61
+ * Supplier's industry classification code. Max 10 chars.
62
+ * @example 41001
63
+ */
64
+ industryClassificationCode: MSICCode['code']
65
+ /**
66
+ * Supplier's industry classification description. Max 300 chars.
67
+ * @example Other retail sale in non-specialised stores
68
+ */
69
+ industryClassificationDescription: Suggested<MSICCode['description']>
70
+ }
71
+
72
+ /**
73
+ * Represents the buyer information.
74
+ * Based on the Buyer section of the documentation.
75
+ */
76
+ export interface Buyer {
77
+ /** Buyer's name. Max 300 chars.
78
+ * @example Hebat Group
79
+ */
80
+ name: string
81
+ /** Buyer's Tax Identification Number (TIN). Max 14 chars.
82
+ * @example C12345678901
83
+ */
84
+ tin: string
85
+ /**
86
+ * Buyer's Registration Type. NRIC, BRN, PASSPORT, ARMY
87
+ * @example BRN
88
+ */
89
+ registrationType: RegistrationType
90
+ /**
91
+ * Buyer's Registration / Identification Number / Passport Number.
92
+ * Format depends on schemeID: NRIC (12), BRN (20), PASSPORT (12), ARMY (12).
93
+ * @example BRN: 202001234567
94
+ */
95
+ registrationNumber: string
96
+ /**
97
+ * Buyer's SST registration number. Max 35 chars.
98
+ * Mandatory for SST-registrants.
99
+ * Allows up to two numbers separated by ';'.
100
+ * @example W10-1909-32000060
101
+ */
102
+ sstRegistrationNumber: string
103
+ /** Buyer's address. */
104
+ address: Address
105
+ /** Buyer's contact number (E.164 standard). Max 20 chars.
106
+ * @example +60123456789
107
+ */
108
+ contactNumber: string
109
+ }
110
+
111
+ /**
112
+ * Represents a single line item in an invoice.
113
+ * Based on the Invoice Line Item section of the documentation.
114
+ * https://sdk.myinvois.hasil.gov.my/documents/invoice-v1-1/#invoice-line-item
115
+ */
116
+ export interface InvoiceLineItem {
117
+ /**
118
+ * Item classification code. Refer to /codes/item-classifications/. Max 50 chars.
119
+ * @example 001
120
+ */
121
+ itemClassificationCode: ClassificationCode
122
+ /**
123
+ * Item description. Max 300 chars.
124
+ * @example Laptop
125
+ */
126
+ itemDescription: string
127
+ /**
128
+ * Unit price before tax. Max 18 digits, 6 decimal places.
129
+ * @example 1500.00
130
+ */
131
+ unitPrice: number
132
+ /**
133
+ * Tax type code. Refer to /codes/tax-types/. Max 2 chars.
134
+ * @example 01
135
+ */
136
+ taxType: TaxTypeCode
137
+ /**
138
+ * Tax rate. Max 18 digits, 2 decimal places.
139
+ * @example 6.00
140
+ */
141
+ taxRate: number
142
+ /**
143
+ * Tax amount. Max 18 digits, 2 decimal places.
144
+ * @example 90.00
145
+ */
146
+ taxAmount: number
147
+ /**
148
+ * Tax exemption reason code. Refer to /codes/tax-exemption-reasons/. Max 2 chars.
149
+ * Mandatory if tax rate is 0%.
150
+ * @example 02
151
+ */
152
+ taxExemptionReasonCode?: string
153
+ /**
154
+ * Tax exemption reason amount. Max 18 digits, 2 decimal places.
155
+ * Mandatory if tax rate is 0%.
156
+ * @example 1500.00
157
+ */
158
+ taxExemptionReasonAmount?: number
159
+ /**
160
+ * Total taxable amount per line (Quantity * Unit Price - Discount Amount). Max 18 digits, 2 decimal places.
161
+ * @example 1500.00
162
+ */
163
+ totalTaxableAmountPerLine: number
164
+ /**
165
+ * Total amount per line including tax (Total Taxable Amount Per Line + Tax Amount). Max 18 digits, 2 decimal places.
166
+ * @example 1590.00
167
+ */
168
+ totalAmountPerLine: number
169
+ }
170
+
171
+ /** Represents monetary totals for the invoice. Based on UBL cac:LegalMonetaryTotal. */
172
+ export interface LegalMonetaryTotal {
173
+ /** Total amount exclusive of taxes. Max 18 digits, 2 decimal places. */
174
+ taxExclusiveAmount: number
175
+ /** Total amount inclusive of taxes. Max 18 digits, 2 decimal places. */
176
+ taxInclusiveAmount: number
177
+ /** The final payable amount. Max 18 digits, 2 decimal places. */
178
+ payableAmount: number
179
+ }
180
+
181
+ /** Represents tax category information. Based on UBL cac:TaxCategory. */
182
+ export interface TaxCategory {
183
+ /** Tax type code. Refer to /codes/tax-types/. Max 2 chars. */
184
+ taxTypeCode: TaxTypeCode
185
+ /** Tax rate percentage. Max 18 digits, 2 decimal places. */
186
+ taxRate: number
187
+ }
188
+
189
+ /** Represents a subtotal for a specific tax category. Based on UBL cac:TaxSubtotal. */
190
+ export interface TaxSubtotal {
191
+ /** Taxable amount for this category. Max 18 digits, 2 decimal places. */
192
+ taxableAmount: number
193
+ /** Tax amount for this category. Max 18 digits, 2 decimal places. */
194
+ taxAmount: number
195
+ /** Tax category details. */
196
+ taxCategory: TaxCategory
197
+ }
198
+
199
+ /** Represents the total tax amount for the invoice. Based on UBL cac:TaxTotal. */
200
+ export interface TaxTotal {
201
+ /** Total tax amount for the entire invoice. Max 18 digits, 2 decimal places. */
202
+ taxAmount: number
203
+ }
204
+
205
+ /**
206
+ * Represents the core Invoice v1.1 document structure.
207
+ * Based on the Core section of the documentation.
208
+ */
209
+ export interface InvoiceV1_1 {
210
+ /** Supplier information. */
211
+ supplier: Supplier
212
+ /** Buyer information. */
213
+ buyer: Buyer
214
+ /** e-Invoice version. Fixed value '1.1'. */
215
+ eInvoiceVersion: '1.1'
216
+ /** e-Invoice type code. Refer to /codes/e-invoice-types/. Max 2 chars. */
217
+ eInvoiceTypeCode: EInvoiceTypeCode // e.g., '01'
218
+ /** Document reference number used by Supplier. Max 50 chars. */
219
+ eInvoiceCodeOrNumber: string // e.g., 'INV12345'
220
+ /** Date of issuance (YYYY-MM-DD) in UTC. Max 10 chars. */
221
+ eInvoiceDate: string // e.g., '2017-11-26'
222
+ /** Time of issuance (HH:mm:ssZ) in UTC. Max 9 chars. */
223
+ eInvoiceTime: string // e.g., '15:30:00Z'
224
+ /** Issuer's digital signature. Refer to /signature/ documentation. */
225
+ issuerDigitalSignature: IssuerDigitalSignature
226
+ /** Invoice currency code. Refer to /codes/currencies/. Max 3 chars. */
227
+ invoiceCurrencyCode: CurrencyCode // e.g., 'MYR'
228
+ /** Invoice line items. */
229
+ invoiceLineItems: InvoiceLineItem[]
230
+ /**
231
+ * Currency exchange rate to MYR. Max 15 decimal places.
232
+ * Mandatory if InvoiceCurrencyCode is not MYR.
233
+ */
234
+ currencyExchangeRate?: number // e.g., 1.0 or 4.75
235
+
236
+ /** Overall monetary totals for the invoice. */
237
+ legalMonetaryTotal: LegalMonetaryTotal
238
+ /** Total tax amounts and subtotals. */
239
+ taxTotal: TaxTotal
240
+ }
241
+
242
+ export type SubmissionStatus =
243
+ | 'InProgress'
244
+ | 'Valid'
245
+ | 'PartiallyValid'
246
+ | 'Invalid'
247
+
248
+ export type DocumentStatus = 'Valid' | 'Invalid' | 'Cancelled' | 'Submitted'
249
+
250
+ export type StandardError = {
251
+ code: string
252
+ message: string
253
+ target: string
254
+ details: {
255
+ code: string
256
+ message: string
257
+ target: string
258
+ }[]
259
+ }
260
+
261
+ export type DocumentValidationResult = 'Valid' | 'Invalid' | 'Pending'
262
+ export interface DocumentValidationStepResult {
263
+ name: string
264
+ status: DocumentValidationResult
265
+ error?: StandardError
266
+ }
267
+ export interface DocumentSummary {
268
+ uuid: string
269
+ submissionUid: string
270
+ longId: string
271
+ internalId: string
272
+ typeName: string
273
+ typeVersionName: string
274
+ issuerTin: string
275
+ issuerName: string
276
+ receiverId: string
277
+ receiverName: string
278
+ dateTimeIssued: string
279
+ dateTimeReceived: string
280
+ dateTimeValidated: string
281
+ totalPayableAmount: number
282
+ totalExcludingTax: number
283
+ totalDiscount: number
284
+ totalNetAmount: number
285
+ status: DocumentStatus
286
+ cancelDateTime: string | null
287
+ rejectRequestDateTime: string | null
288
+ documentStatusReason: string | null
289
+ createdByUserId: string
290
+ }
291
+
292
+ export interface GetSubmissionResponse {
293
+ submissionUid?: string
294
+ documentCount?: number
295
+ dateTimeReceived?: string
296
+ overallStatus?: SubmissionStatus
297
+ documentSummary?: DocumentSummary[]
298
+ error?: StandardError
299
+ }
300
+
301
+ export interface ResponseDocument {
302
+ invoiceCodeNumber: string
303
+ error?: StandardError
304
+ }
305
+ export interface SubmissionResponse {
306
+ submissionUid: string
307
+ acceptedDocuments: ResponseDocument[]
308
+ rejectedDocuments: ResponseDocument[]
309
+ }
310
+
311
+ export interface SigningCredentials {
312
+ /** Private key in PEM format for signing */
313
+ privateKeyPem: string
314
+ /** Certificate in PEM format */
315
+ certificatePem: string
316
+ /** Certificate issuer name (e.g., "CN=Trial LHDNM Sub CA V1, OU=Terms of use at https://www.posdigicert.com.my, O=LHDNM, C=MY") */
317
+ issuerName: string
318
+ /** Certificate serial number as string */
319
+ serialNumber: string
320
+ }
321
+
322
+ export interface FinalDocumentData {
323
+ signatureValue: string // Base64 encoded RSA signature (Sig from Step 4)
324
+ propsDigest: string // Base64 encoded hash of SignedProperties (PropsDigest from Step 7)
325
+ docDigest: string // Base64 encoded hash of Canonicalized Document (DocDigest from Step 3)
326
+ certificatePem: string // Signing certificate in PEM format
327
+ }
328
+
329
+ export interface SignedPropertiesData {
330
+ certDigest: string // Base64 encoded SHA-256 hash of certificate (Step 5)
331
+ signingTime: string // ISO 8601 UTC timestamp string (e.g., 2023-10-26T10:30:00Z)
332
+ issuerName: string // Certificate Issuer Name
333
+ serialNumber: string // Certificate Serial Number
334
+ }
335
+
336
+ export interface InvoiceSubmission {
337
+ /** Invoice ID */
338
+ ID: {
339
+ _: string
340
+ }[]
341
+
342
+ /** Issue date in YYYY-MM-DD format */
343
+ IssueDate: {
344
+ _: string
345
+ }[]
346
+
347
+ /** Issue time in HH:mm:ssZ format */
348
+ IssueTime: {
349
+ _: string
350
+ }[]
351
+
352
+ /** Invoice type code with version */
353
+ InvoiceTypeCode: {
354
+ _: string
355
+ listVersionID: string
356
+ }[]
357
+
358
+ /** Document currency code */
359
+ DocumentCurrencyCode: {
360
+ _: string
361
+ }[]
362
+
363
+ /** Supplier party information */
364
+ AccountingSupplierParty: {
365
+ Party: {
366
+ IndustryClassificationCode: {
367
+ _: string
368
+ name: string
369
+ }[]
370
+ PartyIdentification: {
371
+ ID: {
372
+ _: string
373
+ schemeID: string
374
+ }[]
375
+ }[]
376
+ PostalAddress: {
377
+ CityName: {
378
+ _: string
379
+ }[]
380
+ CountrySubentityCode: {
381
+ _: string
382
+ }[]
383
+ AddressLine: {
384
+ Line: {
385
+ _: string
386
+ }[]
387
+ }[]
388
+ Country: {
389
+ IdentificationCode: {
390
+ _: string
391
+ listID: string
392
+ listAgencyID: string
393
+ }[]
394
+ }[]
395
+ }[]
396
+ PartyLegalEntity: {
397
+ RegistrationName: {
398
+ _: string
399
+ }[]
400
+ }[]
401
+ Contact: {
402
+ Telephone: {
403
+ _: string
404
+ }[]
405
+ }[]
406
+ }[]
407
+ }[]
408
+
409
+ /** Customer party information */
410
+ AccountingCustomerParty: {
411
+ Party: {
412
+ PartyIdentification: {
413
+ ID: {
414
+ _: string
415
+ schemeID: string
416
+ }[]
417
+ }[]
418
+ PostalAddress: {
419
+ CityName: {
420
+ _: string
421
+ }[]
422
+ CountrySubentityCode: {
423
+ _: string
424
+ }[]
425
+ AddressLine: {
426
+ Line: {
427
+ _: string
428
+ }[]
429
+ }[]
430
+ Country: {
431
+ IdentificationCode: {
432
+ _: string
433
+ listID: string
434
+ listAgencyID: string
435
+ }[]
436
+ }[]
437
+ }[]
438
+ PartyLegalEntity: {
439
+ RegistrationName: {
440
+ _: string
441
+ }[]
442
+ }[]
443
+ Contact: {
444
+ Telephone: {
445
+ _: string
446
+ }[]
447
+ }[]
448
+ }[]
449
+ }[]
450
+
451
+ /** Tax total */
452
+ TaxTotal: {
453
+ TaxAmount: {
454
+ _: number
455
+ currencyID: string
456
+ }[]
457
+ TaxSubtotal: {
458
+ TaxableAmount: {
459
+ _: number
460
+ currencyID: string
461
+ }[]
462
+ TaxAmount: {
463
+ _: number
464
+ currencyID: string
465
+ }[]
466
+ TaxCategory: {
467
+ ID: {
468
+ _: string
469
+ }[]
470
+ TaxScheme: {
471
+ ID: {
472
+ _: string
473
+ schemeAgencyID: string
474
+ schemeID: string
475
+ }[]
476
+ }[]
477
+ }[]
478
+ }[]
479
+ }[]
480
+
481
+ /** Legal monetary total */
482
+ LegalMonetaryTotal: {
483
+ LineExtensionAmount: {
484
+ _: number
485
+ currencyID: string
486
+ }[]
487
+ TaxExclusiveAmount: {
488
+ _: number
489
+ currencyID: string
490
+ }[]
491
+ TaxInclusiveAmount: {
492
+ _: number
493
+ currencyID: string
494
+ }[]
495
+ PayableAmount: {
496
+ _: number
497
+ currencyID: string
498
+ }[]
499
+ }[]
500
+
501
+ /** Invoice line items */
502
+ InvoiceLine: {
503
+ ID: {
504
+ _: string
505
+ }[]
506
+ Item: {
507
+ CommodityClassification: {
508
+ ItemClassificationCode: {
509
+ _: string
510
+ listID: string
511
+ }[]
512
+ }[]
513
+ Description: {
514
+ _: string
515
+ }[]
516
+ }[]
517
+ ItemPriceExtension: {
518
+ Amount: {
519
+ _: number
520
+ currencyID: string
521
+ }[]
522
+ }[]
523
+ LineExtensionAmount: {
524
+ _: number
525
+ currencyID: string
526
+ }[]
527
+ Price: {
528
+ PriceAmount: {
529
+ _: number
530
+ currencyID: string
531
+ }[]
532
+ }[]
533
+ TaxTotal: {
534
+ TaxAmount: {
535
+ _: number
536
+ currencyID: string
537
+ }[]
538
+ TaxSubtotal: {
539
+ TaxableAmount: {
540
+ _: number
541
+ currencyID: string
542
+ }[]
543
+ TaxAmount: {
544
+ _: number
545
+ currencyID: string
546
+ }[]
547
+ TaxCategory: {
548
+ ID: {
549
+ _: string
550
+ }[]
551
+ TaxScheme: {
552
+ ID: {
553
+ _: string
554
+ schemeAgencyID: string
555
+ schemeID: string
556
+ }[]
557
+ }[]
558
+ }[]
559
+ }[]
560
+ }[]
561
+ }[]
562
+
563
+ /** Tax exchange rate - Mandatory where applicable */
564
+ TaxExchangeRate?: {
565
+ SourceCurrencyCode: {
566
+ _: string
567
+ }[]
568
+ TargetCurrencyCode: {
569
+ _: string
570
+ }[]
571
+ CalculationRate: {
572
+ _: number
573
+ }[]
574
+ }[]
575
+
576
+ /** UBL Extensions for signatures (optional - only present in signed documents) */
577
+ UBLExtensions?: {
578
+ UBLExtension: {
579
+ ExtensionURI: {
580
+ _: string
581
+ }[]
582
+ ExtensionContent: {
583
+ UBLDocumentSignatures: {
584
+ SignatureInformation: {
585
+ ID: {
586
+ _: string
587
+ }[]
588
+ ReferencedSignatureID: {
589
+ _: string
590
+ }[]
591
+ Signature: {
592
+ Id: string
593
+ Object: {
594
+ QualifyingProperties: {
595
+ Target: string
596
+ SignedProperties: {
597
+ Id: string
598
+ SignedSignatureProperties: {
599
+ SigningTime: {
600
+ _: string
601
+ }[]
602
+ SigningCertificate: {
603
+ Cert: {
604
+ CertDigest: {
605
+ DigestMethod: {
606
+ Algorithm: string
607
+ }[]
608
+ DigestValue: {
609
+ _: string
610
+ }[]
611
+ }[]
612
+ IssuerSerial: {
613
+ X509IssuerName: {
614
+ _: string
615
+ }[]
616
+ X509SerialNumber: {
617
+ _: string
618
+ }[]
619
+ }[]
620
+ }[]
621
+ }[]
622
+ }[]
623
+ }[]
624
+ }[]
625
+ }[]
626
+ KeyInfo: {
627
+ X509Data: {
628
+ X509Certificate: {
629
+ _: string
630
+ }[]
631
+ X509SubjectName: {
632
+ _: string
633
+ }[]
634
+ X509IssuerSerial: {
635
+ X509IssuerName: {
636
+ _: string
637
+ }[]
638
+ X509SerialNumber: {
639
+ _: string
640
+ }[]
641
+ }[]
642
+ }[]
643
+ }[]
644
+ SignatureValue: {
645
+ _: string
646
+ }[]
647
+ SignedInfo: {
648
+ CanonicalizationMethod: {
649
+ _: string
650
+ Algorithm: string
651
+ }[]
652
+ SignatureMethod: {
653
+ _: string
654
+ Algorithm: string
655
+ }[]
656
+ Reference: {
657
+ Id: string
658
+ Type: string
659
+ URI: string
660
+ DigestMethod: {
661
+ _: string
662
+ Algorithm: string
663
+ }[]
664
+ DigestValue: {
665
+ _: string
666
+ }[]
667
+ }[]
668
+ }[]
669
+ }[]
670
+ }[]
671
+ }[]
672
+ }[]
673
+ }[]
674
+ }[]
675
+
676
+ /** Signature reference (optional - only present in signed documents) */
677
+ Signature?: {
678
+ ID: {
679
+ _: string
680
+ }[]
681
+ SignatureMethod: {
682
+ _: string
683
+ }[]
684
+ }[]
685
+ }
686
+
687
+ /** Represents the complete UBL document structure with namespace declarations */
688
+ export interface UBLDocument {
689
+ /** UBL Invoice namespace */
690
+ _D: string
691
+ /** UBL CommonAggregateComponents namespace */
692
+ _A: string
693
+ /** UBL CommonBasicComponents namespace */
694
+ _B: string
695
+ /** Array of invoice submissions */
696
+ Invoice: InvoiceSubmission[]
697
+ }
698
+
699
+ /** Represents the signed properties structure for digital signatures */
700
+ export interface SignedPropertiesObject {
701
+ SignedProperties: {
702
+ /** Unique identifier for the signed properties */
703
+ Id: string
704
+ /** Signed signature properties containing signing details */
705
+ SignedSignatureProperties: {
706
+ /** Signing timestamp */
707
+ SigningTime: {
708
+ _: string
709
+ }[]
710
+ /** Signing certificate information */
711
+ SigningCertificate: {
712
+ /** Certificate details */
713
+ Cert: {
714
+ /** Certificate digest information */
715
+ CertDigest: {
716
+ /** Digest method algorithm */
717
+ DigestMethod: {
718
+ Algorithm: string
719
+ }[]
720
+ /** Base64 encoded digest value */
721
+ DigestValue: {
722
+ _: string
723
+ }[]
724
+ }[]
725
+ /** Certificate issuer and serial information */
726
+ IssuerSerial: {
727
+ /** X.509 issuer distinguished name */
728
+ X509IssuerName: {
729
+ _: string
730
+ }[]
731
+ /** X.509 certificate serial number */
732
+ X509SerialNumber: {
733
+ _: string
734
+ }[]
735
+ }[]
736
+ }[]
737
+ }[]
738
+ }[]
739
+ }[]
740
+ }
741
+
742
+ /** Represents the signed info structure for digital signatures */
743
+ export interface SignedInfoObject {
744
+ /** Canonicalization method */
745
+ CanonicalizationMethod: {
746
+ _: string
747
+ Algorithm: string
748
+ }[]
749
+ /** Signature method */
750
+ SignatureMethod: {
751
+ _: string
752
+ Algorithm: string
753
+ }[]
754
+ /** References being signed */
755
+ Reference: {
756
+ Id: string
757
+ Type: string
758
+ URI: string
759
+ DigestMethod: {
760
+ _: string
761
+ Algorithm: string
762
+ }[]
763
+ DigestValue: {
764
+ _: string
765
+ }[]
766
+ }[]
767
+ }
768
+
769
+ /** Represents a complete signed invoice with all signature elements */
770
+ export interface SignedInvoiceSubmission extends InvoiceSubmission {
771
+ /** UBL Extensions for signatures - required for signed documents */
772
+ UBLExtensions: {
773
+ UBLExtension: {
774
+ ExtensionURI: {
775
+ _: string
776
+ }[]
777
+ ExtensionContent: {
778
+ UBLDocumentSignatures: {
779
+ SignatureInformation: {
780
+ ID: {
781
+ _: string
782
+ }[]
783
+ ReferencedSignatureID: {
784
+ _: string
785
+ }[]
786
+ Signature: {
787
+ Id: string
788
+ Object: {
789
+ QualifyingProperties: {
790
+ Target: string
791
+ SignedProperties: {
792
+ Id: string
793
+ SignedSignatureProperties: {
794
+ SigningTime: {
795
+ _: string
796
+ }[]
797
+ SigningCertificate: {
798
+ Cert: {
799
+ CertDigest: {
800
+ DigestMethod: {
801
+ Algorithm: string
802
+ }[]
803
+ DigestValue: {
804
+ _: string
805
+ }[]
806
+ }[]
807
+ IssuerSerial: {
808
+ X509IssuerName: {
809
+ _: string
810
+ }[]
811
+ X509SerialNumber: {
812
+ _: string
813
+ }[]
814
+ }[]
815
+ }[]
816
+ }[]
817
+ }[]
818
+ }[]
819
+ }[]
820
+ }[]
821
+ KeyInfo: {
822
+ X509Data: {
823
+ X509Certificate: {
824
+ _: string
825
+ }[]
826
+ X509SubjectName: {
827
+ _: string
828
+ }[]
829
+ X509IssuerSerial: {
830
+ X509IssuerName: {
831
+ _: string
832
+ }[]
833
+ X509SerialNumber: {
834
+ _: string
835
+ }[]
836
+ }[]
837
+ }[]
838
+ }[]
839
+ SignatureValue: {
840
+ _: string
841
+ }[]
842
+ SignedInfo: SignedInfoObject[]
843
+ }[]
844
+ }[]
845
+ }[]
846
+ }[]
847
+ }[]
848
+ }[]
849
+
850
+ /** Signature reference - required for signed documents */
851
+ Signature: {
852
+ ID: {
853
+ _: string
854
+ }[]
855
+ SignatureMethod: {
856
+ _: string
857
+ }[]
858
+ }[]
859
+ }
860
+
861
+ export interface CompleteInvoice {
862
+ /** UBL Invoice namespace */
863
+ _D: string
864
+ /** UBL CommonAggregateComponents namespace */
865
+ _A: string
866
+ /** UBL CommonBasicComponents namespace */
867
+ _B: string
868
+ /** Array of signed invoice submissions */
869
+ Invoice: SignedInvoiceSubmission[]
870
+ }