@ripwords/myinvois-client 0.1.0 → 0.1.2

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