@dainamite/billing 0.19.0 → 0.21.0

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 (614) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/README.md +14 -0
  3. package/dist/modules/billing/acl.js +13 -1
  4. package/dist/modules/billing/acl.js.map +2 -2
  5. package/dist/modules/billing/api/accounts/[id]/summary/route.js +52 -0
  6. package/dist/modules/billing/api/accounts/[id]/summary/route.js.map +7 -0
  7. package/dist/modules/billing/api/accounts/route.js +46 -4
  8. package/dist/modules/billing/api/accounts/route.js.map +2 -2
  9. package/dist/modules/billing/api/export/account/[id]/route.js +16 -12
  10. package/dist/modules/billing/api/export/account/[id]/route.js.map +2 -2
  11. package/dist/modules/billing/api/invoices/[id]/memos/route.js +54 -0
  12. package/dist/modules/billing/api/invoices/[id]/memos/route.js.map +7 -0
  13. package/dist/modules/billing/api/invoices/[id]/pdf/route.js +69 -0
  14. package/dist/modules/billing/api/invoices/[id]/pdf/route.js.map +7 -0
  15. package/dist/modules/billing/api/invoices/[id]/route.js +44 -24
  16. package/dist/modules/billing/api/invoices/[id]/route.js.map +2 -2
  17. package/dist/modules/billing/api/invoices/[id]/send/route.js +107 -0
  18. package/dist/modules/billing/api/invoices/[id]/send/route.js.map +7 -0
  19. package/dist/modules/billing/api/invoices/add-line/route.js +3 -3
  20. package/dist/modules/billing/api/invoices/add-line/route.js.map +2 -2
  21. package/dist/modules/billing/api/invoices/delete-draft/route.js +33 -0
  22. package/dist/modules/billing/api/invoices/delete-draft/route.js.map +7 -0
  23. package/dist/modules/billing/api/invoices/edit-line/route.js +3 -3
  24. package/dist/modules/billing/api/invoices/edit-line/route.js.map +2 -2
  25. package/dist/modules/billing/api/invoices/post/route.js +2 -2
  26. package/dist/modules/billing/api/invoices/post/route.js.map +2 -2
  27. package/dist/modules/billing/api/invoices/remove-line/route.js +3 -3
  28. package/dist/modules/billing/api/invoices/remove-line/route.js.map +2 -2
  29. package/dist/modules/billing/api/invoices/route.js +45 -46
  30. package/dist/modules/billing/api/invoices/route.js.map +2 -2
  31. package/dist/modules/billing/api/items/bulk/route.js +1 -1
  32. package/dist/modules/billing/api/items/bulk/route.js.map +2 -2
  33. package/dist/modules/billing/api/items/change-price/route.js +44 -0
  34. package/dist/modules/billing/api/items/change-price/route.js.map +7 -0
  35. package/dist/modules/billing/api/items/route.js +19 -7
  36. package/dist/modules/billing/api/items/route.js.map +2 -2
  37. package/dist/modules/billing/api/payment-imports/[id]/route.js +49 -0
  38. package/dist/modules/billing/api/payment-imports/[id]/route.js.map +7 -0
  39. package/dist/modules/billing/api/payment-imports/route.js +57 -0
  40. package/dist/modules/billing/api/payment-imports/route.js.map +7 -0
  41. package/dist/modules/billing/api/payments/[id]/route.js +60 -0
  42. package/dist/modules/billing/api/payments/[id]/route.js.map +7 -0
  43. package/dist/modules/billing/api/payments/allocate/route.js +35 -0
  44. package/dist/modules/billing/api/payments/allocate/route.js.map +7 -0
  45. package/dist/modules/billing/api/payments/assign/route.js +36 -0
  46. package/dist/modules/billing/api/payments/assign/route.js.map +7 -0
  47. package/dist/modules/billing/api/payments/convert-to-topup/route.js +35 -0
  48. package/dist/modules/billing/api/payments/convert-to-topup/route.js.map +7 -0
  49. package/dist/modules/billing/api/payments/ignore/route.js +35 -0
  50. package/dist/modules/billing/api/payments/ignore/route.js.map +7 -0
  51. package/dist/modules/billing/api/payments/import/route.js +63 -0
  52. package/dist/modules/billing/api/payments/import/route.js.map +7 -0
  53. package/dist/modules/billing/api/payments/restore/route.js +35 -0
  54. package/dist/modules/billing/api/payments/restore/route.js.map +7 -0
  55. package/dist/modules/billing/api/payments/route.js +114 -0
  56. package/dist/modules/billing/api/payments/route.js.map +7 -0
  57. package/dist/modules/billing/api/payments/unallocate/route.js +35 -0
  58. package/dist/modules/billing/api/payments/unallocate/route.js.map +7 -0
  59. package/dist/modules/billing/api/payments/unassign/route.js +35 -0
  60. package/dist/modules/billing/api/payments/unassign/route.js.map +7 -0
  61. package/dist/modules/billing/api/run-outcomes/route.js +44 -7
  62. package/dist/modules/billing/api/run-outcomes/route.js.map +2 -2
  63. package/dist/modules/billing/api/runs/[id]/post-drafts/route.js +61 -0
  64. package/dist/modules/billing/api/runs/[id]/post-drafts/route.js.map +7 -0
  65. package/dist/modules/billing/api/runs/[id]/route.js +53 -0
  66. package/dist/modules/billing/api/runs/[id]/route.js.map +7 -0
  67. package/dist/modules/billing/api/runs/retry-failed/route.js +3 -3
  68. package/dist/modules/billing/api/runs/retry-failed/route.js.map +2 -2
  69. package/dist/modules/billing/api/runs/route.js +11 -5
  70. package/dist/modules/billing/api/runs/route.js.map +2 -2
  71. package/dist/modules/billing/api/settings/number-preview/route.js +42 -0
  72. package/dist/modules/billing/api/settings/number-preview/route.js.map +7 -0
  73. package/dist/modules/billing/api/settings/route.js +92 -0
  74. package/dist/modules/billing/api/settings/route.js.map +7 -0
  75. package/dist/modules/billing/api/statements/route.js +3 -0
  76. package/dist/modules/billing/api/statements/route.js.map +2 -2
  77. package/dist/modules/billing/api/test-invoices/wipe/route.js +2 -2
  78. package/dist/modules/billing/api/test-invoices/wipe/route.js.map +2 -2
  79. package/dist/modules/billing/backend/billing/accounts/[id]/page.js +121 -232
  80. package/dist/modules/billing/backend/billing/accounts/[id]/page.js.map +2 -2
  81. package/dist/modules/billing/backend/billing/accounts/create/page.js +6 -0
  82. package/dist/modules/billing/backend/billing/accounts/create/page.js.map +2 -2
  83. package/dist/modules/billing/backend/billing/accounts/page.js +63 -4
  84. package/dist/modules/billing/backend/billing/accounts/page.js.map +2 -2
  85. package/dist/modules/billing/backend/billing/invoices/[id]/page.js +297 -65
  86. package/dist/modules/billing/backend/billing/invoices/[id]/page.js.map +3 -3
  87. package/dist/modules/billing/backend/billing/invoices/page.js +6 -172
  88. package/dist/modules/billing/backend/billing/invoices/page.js.map +2 -2
  89. package/dist/modules/billing/backend/billing/items/[id]/page.js +51 -7
  90. package/dist/modules/billing/backend/billing/items/[id]/page.js.map +2 -2
  91. package/dist/modules/billing/backend/billing/items/create/page.js +9 -6
  92. package/dist/modules/billing/backend/billing/items/create/page.js.map +2 -2
  93. package/dist/modules/billing/backend/billing/items/page.js +8 -2
  94. package/dist/modules/billing/backend/billing/items/page.js.map +2 -2
  95. package/dist/modules/billing/backend/billing/payments/[id]/page.js +297 -0
  96. package/dist/modules/billing/backend/billing/payments/[id]/page.js.map +7 -0
  97. package/dist/modules/billing/backend/billing/payments/[id]/page.meta.js +21 -0
  98. package/dist/modules/billing/backend/billing/payments/[id]/page.meta.js.map +7 -0
  99. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.js +74 -0
  100. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.js.map +7 -0
  101. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.meta.js +21 -0
  102. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.meta.js.map +7 -0
  103. package/dist/modules/billing/backend/billing/payments/page.js +58 -0
  104. package/dist/modules/billing/backend/billing/payments/page.js.map +7 -0
  105. package/dist/modules/billing/backend/billing/payments/page.meta.js +18 -0
  106. package/dist/modules/billing/backend/billing/payments/page.meta.js.map +7 -0
  107. package/dist/modules/billing/backend/billing/runs/[id]/page.js +49 -14
  108. package/dist/modules/billing/backend/billing/runs/[id]/page.js.map +2 -2
  109. package/dist/modules/billing/backend/billing/runs/page.js +58 -7
  110. package/dist/modules/billing/backend/billing/runs/page.js.map +2 -2
  111. package/dist/modules/billing/backend/billing/statements/[id]/page.js +61 -6
  112. package/dist/modules/billing/backend/billing/statements/[id]/page.js.map +2 -2
  113. package/dist/modules/billing/backend/billing/statements/page.js +1 -1
  114. package/dist/modules/billing/backend/billing/statements/page.js.map +2 -2
  115. package/dist/modules/billing/backend/billing/topups/page.js +1 -1
  116. package/dist/modules/billing/backend/billing/topups/page.js.map +2 -2
  117. package/dist/modules/billing/backend/billing/transactions/page.js +1 -1
  118. package/dist/modules/billing/backend/billing/transactions/page.js.map +2 -2
  119. package/dist/modules/billing/backend/billing/usage/create/page.js +3 -2
  120. package/dist/modules/billing/backend/billing/usage/create/page.js.map +2 -2
  121. package/dist/modules/billing/backend/config/billing/page.js +472 -0
  122. package/dist/modules/billing/backend/config/billing/page.js.map +7 -0
  123. package/dist/modules/billing/backend/config/billing/page.meta.js +19 -0
  124. package/dist/modules/billing/backend/config/billing/page.meta.js.map +7 -0
  125. package/dist/modules/billing/ce.js.map +2 -2
  126. package/dist/modules/billing/cli.js +22 -1
  127. package/dist/modules/billing/cli.js.map +2 -2
  128. package/dist/modules/billing/commands/accounts.js +6 -0
  129. package/dist/modules/billing/commands/accounts.js.map +2 -2
  130. package/dist/modules/billing/commands/index.js +3 -0
  131. package/dist/modules/billing/commands/index.js.map +2 -2
  132. package/dist/modules/billing/commands/invoices.js +272 -170
  133. package/dist/modules/billing/commands/invoices.js.map +2 -2
  134. package/dist/modules/billing/commands/items.js +108 -0
  135. package/dist/modules/billing/commands/items.js.map +2 -2
  136. package/dist/modules/billing/commands/memos.js +179 -0
  137. package/dist/modules/billing/commands/memos.js.map +7 -0
  138. package/dist/modules/billing/commands/payments.js +379 -0
  139. package/dist/modules/billing/commands/payments.js.map +7 -0
  140. package/dist/modules/billing/commands/runs.js +154 -7
  141. package/dist/modules/billing/commands/runs.js.map +2 -2
  142. package/dist/modules/billing/commands/settings.js +59 -0
  143. package/dist/modules/billing/commands/settings.js.map +7 -0
  144. package/dist/modules/billing/commands/topups.js +9 -2
  145. package/dist/modules/billing/commands/topups.js.map +2 -2
  146. package/dist/modules/billing/commands/transactions.js +2 -2
  147. package/dist/modules/billing/commands/transactions.js.map +2 -2
  148. package/dist/modules/billing/components/AccountForm.js +149 -42
  149. package/dist/modules/billing/components/AccountForm.js.map +2 -2
  150. package/dist/modules/billing/components/AccountInvoicesSection.js +64 -0
  151. package/dist/modules/billing/components/AccountInvoicesSection.js.map +7 -0
  152. package/dist/modules/billing/components/AccountPaymentsSection.js +43 -0
  153. package/dist/modules/billing/components/AccountPaymentsSection.js.map +7 -0
  154. package/dist/modules/billing/components/AccountPicker.js +56 -0
  155. package/dist/modules/billing/components/AccountPicker.js.map +7 -0
  156. package/dist/modules/billing/components/AllocatePaymentDialog.js +134 -0
  157. package/dist/modules/billing/components/AllocatePaymentDialog.js.map +7 -0
  158. package/dist/modules/billing/components/BillingDataTable.js +21 -0
  159. package/dist/modules/billing/components/BillingDataTable.js.map +7 -0
  160. package/dist/modules/billing/components/BillingSettingsLink.js +19 -0
  161. package/dist/modules/billing/components/BillingSettingsLink.js.map +7 -0
  162. package/dist/modules/billing/components/ChangeItemPriceDialog.js +158 -0
  163. package/dist/modules/billing/components/ChangeItemPriceDialog.js.map +7 -0
  164. package/dist/modules/billing/components/CreateMemoDialog.js +200 -0
  165. package/dist/modules/billing/components/CreateMemoDialog.js.map +7 -0
  166. package/dist/modules/billing/components/CustomerLabel.js +33 -0
  167. package/dist/modules/billing/components/CustomerLabel.js.map +7 -0
  168. package/dist/modules/billing/components/InvoicesTable.js +270 -0
  169. package/dist/modules/billing/components/InvoicesTable.js.map +7 -0
  170. package/dist/modules/billing/components/ItemForm.js +176 -44
  171. package/dist/modules/billing/components/ItemForm.js.map +2 -2
  172. package/dist/modules/billing/components/ItemPriceField.js +46 -0
  173. package/dist/modules/billing/components/ItemPriceField.js.map +7 -0
  174. package/dist/modules/billing/components/LineFormDialog.js +25 -2
  175. package/dist/modules/billing/components/LineFormDialog.js.map +2 -2
  176. package/dist/modules/billing/components/ManualPaymentDialog.js +122 -0
  177. package/dist/modules/billing/components/ManualPaymentDialog.js.map +7 -0
  178. package/dist/modules/billing/components/MoneyInput.js +14 -0
  179. package/dist/modules/billing/components/MoneyInput.js.map +7 -0
  180. package/dist/modules/billing/components/PaymentUploadDialog.js +115 -0
  181. package/dist/modules/billing/components/PaymentUploadDialog.js.map +7 -0
  182. package/dist/modules/billing/components/PaymentsTable.js +171 -0
  183. package/dist/modules/billing/components/PaymentsTable.js.map +7 -0
  184. package/dist/modules/billing/components/PostRunDraftsButton.js +105 -0
  185. package/dist/modules/billing/components/PostRunDraftsButton.js.map +7 -0
  186. package/dist/modules/billing/components/PrepaidPanel.js +14 -4
  187. package/dist/modules/billing/components/PrepaidPanel.js.map +2 -2
  188. package/dist/modules/billing/components/RunCyclesSection.js +209 -0
  189. package/dist/modules/billing/components/RunCyclesSection.js.map +7 -0
  190. package/dist/modules/billing/components/TestRunActions.js +127 -0
  191. package/dist/modules/billing/components/TestRunActions.js.map +7 -0
  192. package/dist/modules/billing/components/account/AccountItemsTab.js +157 -0
  193. package/dist/modules/billing/components/account/AccountItemsTab.js.map +7 -0
  194. package/dist/modules/billing/components/account/AccountRunBillingDialog.js +122 -0
  195. package/dist/modules/billing/components/account/AccountRunBillingDialog.js.map +7 -0
  196. package/dist/modules/billing/components/account/AccountRunsTab.js +152 -0
  197. package/dist/modules/billing/components/account/AccountRunsTab.js.map +7 -0
  198. package/dist/modules/billing/components/account/AccountStatementsTab.js +98 -0
  199. package/dist/modules/billing/components/account/AccountStatementsTab.js.map +7 -0
  200. package/dist/modules/billing/components/account/AccountSummaryCards.js +125 -0
  201. package/dist/modules/billing/components/account/AccountSummaryCards.js.map +7 -0
  202. package/dist/modules/billing/components/account/AccountUsageTab.js +91 -0
  203. package/dist/modules/billing/components/account/AccountUsageTab.js.map +7 -0
  204. package/dist/modules/billing/components/account/AccountView.js +73 -0
  205. package/dist/modules/billing/components/account/AccountView.js.map +7 -0
  206. package/dist/modules/billing/components/account/accountRow.js +39 -0
  207. package/dist/modules/billing/components/account/accountRow.js.map +7 -0
  208. package/dist/modules/billing/components/customerNames.js +42 -0
  209. package/dist/modules/billing/components/customerNames.js.map +7 -0
  210. package/dist/modules/billing/data/entities.js +615 -59
  211. package/dist/modules/billing/data/entities.js.map +2 -2
  212. package/dist/modules/billing/data/entityIds.js +10 -1
  213. package/dist/modules/billing/data/entityIds.js.map +2 -2
  214. package/dist/modules/billing/data/validators.js +269 -15
  215. package/dist/modules/billing/data/validators.js.map +2 -2
  216. package/dist/modules/billing/events.js +70 -0
  217. package/dist/modules/billing/events.js.map +2 -2
  218. package/dist/modules/billing/i18n/en.json +457 -21
  219. package/dist/modules/billing/i18n/pl.json +457 -21
  220. package/dist/modules/billing/index.js +6 -2
  221. package/dist/modules/billing/index.js.map +2 -2
  222. package/dist/modules/billing/lib/accountFinancials.js +58 -0
  223. package/dist/modules/billing/lib/accountFinancials.js.map +7 -0
  224. package/dist/modules/billing/lib/accountLock.js +14 -0
  225. package/dist/modules/billing/lib/accountLock.js.map +7 -0
  226. package/dist/modules/billing/lib/accountStatus.js +9 -7
  227. package/dist/modules/billing/lib/accountStatus.js.map +2 -2
  228. package/dist/modules/billing/lib/accountSummary.js +106 -0
  229. package/dist/modules/billing/lib/accountSummary.js.map +7 -0
  230. package/dist/modules/billing/lib/allocation.js +356 -0
  231. package/dist/modules/billing/lib/allocation.js.map +7 -0
  232. package/dist/modules/billing/lib/allocationEvents.js +22 -0
  233. package/dist/modules/billing/lib/allocationEvents.js.map +7 -0
  234. package/dist/modules/billing/lib/billPeriod.js +15 -1
  235. package/dist/modules/billing/lib/billPeriod.js.map +2 -2
  236. package/dist/modules/billing/lib/billRunEngine.js +241 -106
  237. package/dist/modules/billing/lib/billRunEngine.js.map +2 -2
  238. package/dist/modules/billing/lib/billRunLabel.js.map +1 -1
  239. package/dist/modules/billing/lib/billingSettings.js +116 -0
  240. package/dist/modules/billing/lib/billingSettings.js.map +7 -0
  241. package/dist/modules/billing/lib/commandRoute.js +81 -0
  242. package/dist/modules/billing/lib/commandRoute.js.map +7 -0
  243. package/dist/modules/billing/lib/customerLookup.js +97 -0
  244. package/dist/modules/billing/lib/customerLookup.js.map +7 -0
  245. package/dist/modules/billing/lib/dateOnly.js +13 -0
  246. package/dist/modules/billing/lib/dateOnly.js.map +7 -0
  247. package/dist/modules/billing/lib/documentParties.js +16 -0
  248. package/dist/modules/billing/lib/documentParties.js.map +7 -0
  249. package/dist/modules/billing/lib/documentTypes.js +27 -0
  250. package/dist/modules/billing/lib/documentTypes.js.map +7 -0
  251. package/dist/modules/billing/lib/dueDate.js +18 -0
  252. package/dist/modules/billing/lib/dueDate.js.map +7 -0
  253. package/dist/modules/billing/lib/iban.js +29 -0
  254. package/dist/modules/billing/lib/iban.js.map +7 -0
  255. package/dist/modules/billing/lib/invoiceDelivery.js +131 -0
  256. package/dist/modules/billing/lib/invoiceDelivery.js.map +7 -0
  257. package/dist/modules/billing/lib/invoiceLanguages.js +16 -0
  258. package/dist/modules/billing/lib/invoiceLanguages.js.map +7 -0
  259. package/dist/modules/billing/lib/invoiceWriter.js +107 -99
  260. package/dist/modules/billing/lib/invoiceWriter.js.map +2 -2
  261. package/dist/modules/billing/lib/itemBillingState.js +27 -0
  262. package/dist/modules/billing/lib/itemBillingState.js.map +7 -0
  263. package/dist/modules/billing/lib/itemPriceChange.js +18 -0
  264. package/dist/modules/billing/lib/itemPriceChange.js.map +7 -0
  265. package/dist/modules/billing/lib/itemSelector.js.map +2 -2
  266. package/dist/modules/billing/lib/lineAmounts.js +32 -0
  267. package/dist/modules/billing/lib/lineAmounts.js.map +7 -0
  268. package/dist/modules/billing/lib/memoGuards.js +25 -0
  269. package/dist/modules/billing/lib/memoGuards.js.map +7 -0
  270. package/dist/modules/billing/lib/navigation.js +48 -0
  271. package/dist/modules/billing/lib/navigation.js.map +7 -0
  272. package/dist/modules/billing/lib/numbering.js +120 -0
  273. package/dist/modules/billing/lib/numbering.js.map +7 -0
  274. package/dist/modules/billing/lib/overdue.js +36 -0
  275. package/dist/modules/billing/lib/overdue.js.map +7 -0
  276. package/dist/modules/billing/lib/paymentCsv.js +125 -0
  277. package/dist/modules/billing/lib/paymentCsv.js.map +7 -0
  278. package/dist/modules/billing/lib/paymentGateway.js +15 -0
  279. package/dist/modules/billing/lib/paymentGateway.js.map +7 -0
  280. package/dist/modules/billing/lib/paymentImport.js +164 -0
  281. package/dist/modules/billing/lib/paymentImport.js.map +7 -0
  282. package/dist/modules/billing/lib/paymentMatcher.js +36 -0
  283. package/dist/modules/billing/lib/paymentMatcher.js.map +7 -0
  284. package/dist/modules/billing/lib/pdf/attachmentStore.js +46 -0
  285. package/dist/modules/billing/lib/pdf/attachmentStore.js.map +7 -0
  286. package/dist/modules/billing/lib/pdf/fonts/embeddedFonts.js +7 -0
  287. package/dist/modules/billing/lib/pdf/fonts/embeddedFonts.js.map +7 -0
  288. package/dist/modules/billing/lib/pdf/invoiceModel.js +194 -0
  289. package/dist/modules/billing/lib/pdf/invoiceModel.js.map +7 -0
  290. package/dist/modules/billing/lib/pdf/invoicePdf.js +165 -0
  291. package/dist/modules/billing/lib/pdf/invoicePdf.js.map +7 -0
  292. package/dist/modules/billing/lib/pdf/invoiceTemplate.js +274 -0
  293. package/dist/modules/billing/lib/pdf/invoiceTemplate.js.map +7 -0
  294. package/dist/modules/billing/lib/prepaidConfig.js +17 -25
  295. package/dist/modules/billing/lib/prepaidConfig.js.map +2 -2
  296. package/dist/modules/billing/lib/prepaidConsume.js +26 -7
  297. package/dist/modules/billing/lib/prepaidConsume.js.map +2 -2
  298. package/dist/modules/billing/lib/prepaidPeriodClose.js +277 -158
  299. package/dist/modules/billing/lib/prepaidPeriodClose.js.map +2 -2
  300. package/dist/modules/billing/lib/prepaidTaxPoint.js +37 -0
  301. package/dist/modules/billing/lib/prepaidTaxPoint.js.map +7 -0
  302. package/dist/modules/billing/lib/seeds/demo.js +51 -3
  303. package/dist/modules/billing/lib/seeds/demo.js.map +2 -2
  304. package/dist/modules/billing/lib/seeds/paymentsSample.js +93 -0
  305. package/dist/modules/billing/lib/seeds/paymentsSample.js.map +7 -0
  306. package/dist/modules/billing/lib/seeds/sellerSettings.js +41 -0
  307. package/dist/modules/billing/lib/seeds/sellerSettings.js.map +7 -0
  308. package/dist/modules/billing/lib/servicePeriods.js +121 -0
  309. package/dist/modules/billing/lib/servicePeriods.js.map +7 -0
  310. package/dist/modules/billing/lib/tenantLock.js.map +1 -1
  311. package/dist/modules/billing/lib/testRunCleanup.js +24 -0
  312. package/dist/modules/billing/lib/testRunCleanup.js.map +7 -0
  313. package/dist/modules/billing/lib/topupCapture.js +2 -2
  314. package/dist/modules/billing/lib/topupCapture.js.map +2 -2
  315. package/dist/modules/billing/lib/topupReceipt.js +58 -79
  316. package/dist/modules/billing/lib/topupReceipt.js.map +2 -2
  317. package/dist/modules/billing/lib/usageRater.js.map +1 -1
  318. package/dist/modules/billing/lib/usageRunner.js +14 -6
  319. package/dist/modules/billing/lib/usageRunner.js.map +2 -2
  320. package/dist/modules/billing/lib/vat.js +39 -0
  321. package/dist/modules/billing/lib/vat.js.map +7 -0
  322. package/dist/modules/billing/migrations/Migration20261114000000_billing_customer_kind.js +15 -0
  323. package/dist/modules/billing/migrations/Migration20261114000000_billing_customer_kind.js.map +7 -0
  324. package/dist/modules/billing/migrations/Migration20261114100000_billing_cycle_semantics.js +25 -0
  325. package/dist/modules/billing/migrations/Migration20261114100000_billing_cycle_semantics.js.map +7 -0
  326. package/dist/modules/billing/migrations/Migration20261115000000_billing_invoice_ledger.js +115 -0
  327. package/dist/modules/billing/migrations/Migration20261115000000_billing_invoice_ledger.js.map +7 -0
  328. package/dist/modules/billing/migrations/Migration20261116000000_billing_invoice_documents.js +47 -0
  329. package/dist/modules/billing/migrations/Migration20261116000000_billing_invoice_documents.js.map +7 -0
  330. package/dist/modules/billing/migrations/Migration20261117000000_billing_payments.js +89 -0
  331. package/dist/modules/billing/migrations/Migration20261117000000_billing_payments.js.map +7 -0
  332. package/dist/modules/billing/migrations/Migration20261118000000_billing_memos.js +17 -0
  333. package/dist/modules/billing/migrations/Migration20261118000000_billing_memos.js.map +7 -0
  334. package/dist/modules/billing/migrations/Migration20261119000000_billing_operator_feedback.js +27 -0
  335. package/dist/modules/billing/migrations/Migration20261119000000_billing_operator_feedback.js.map +7 -0
  336. package/dist/modules/billing/migrations/Migration20261120000000_billing_allocation_scope_indexes.js +29 -0
  337. package/dist/modules/billing/migrations/Migration20261120000000_billing_allocation_scope_indexes.js.map +7 -0
  338. package/dist/modules/billing/setup.js +7 -184
  339. package/dist/modules/billing/setup.js.map +2 -2
  340. package/dist/modules/billing/subscribers/credit-memo-auto-send.js +16 -0
  341. package/dist/modules/billing/subscribers/credit-memo-auto-send.js.map +7 -0
  342. package/dist/modules/billing/subscribers/debit-memo-apply-credit.js +16 -0
  343. package/dist/modules/billing/subscribers/debit-memo-apply-credit.js.map +7 -0
  344. package/dist/modules/billing/subscribers/debit-memo-auto-send.js +16 -0
  345. package/dist/modules/billing/subscribers/debit-memo-auto-send.js.map +7 -0
  346. package/dist/modules/billing/subscribers/invoice-apply-credit.js +34 -0
  347. package/dist/modules/billing/subscribers/invoice-apply-credit.js.map +7 -0
  348. package/dist/modules/billing/subscribers/invoice-auto-send.js +30 -0
  349. package/dist/modules/billing/subscribers/invoice-auto-send.js.map +7 -0
  350. package/dist/modules/billing/subscribers/payment-captured-to-paid.js +69 -33
  351. package/dist/modules/billing/subscribers/payment-captured-to-paid.js.map +2 -2
  352. package/dist/modules/billing/subscribers/prepaid-topup-captured.js +4 -6
  353. package/dist/modules/billing/subscribers/prepaid-topup-captured.js.map +2 -2
  354. package/dist/modules/billing/workers/reap-stale-bill-runs.js +2 -2
  355. package/dist/modules/billing/workers/reap-stale-bill-runs.js.map +2 -2
  356. package/generated/entities/billing_account/index.ts +26 -0
  357. package/generated/entities/billing_account_balance/index.ts +13 -0
  358. package/generated/entities/billing_account_transaction/index.ts +21 -0
  359. package/generated/entities/billing_account_usage/index.ts +18 -0
  360. package/generated/entities/billing_allocation/index.ts +18 -0
  361. package/generated/entities/billing_document_sequence/index.ts +11 -0
  362. package/generated/entities/billing_draft_invoice_edit/index.ts +14 -0
  363. package/generated/entities/billing_invoice/index.ts +38 -0
  364. package/generated/entities/billing_invoice_line/index.ts +24 -0
  365. package/generated/entities/billing_item/index.ts +26 -0
  366. package/generated/entities/billing_payment/index.ts +25 -0
  367. package/generated/entities/billing_payment_import/index.ts +14 -0
  368. package/generated/entities/billing_run/index.ts +20 -0
  369. package/generated/entities/billing_run_outcome/index.ts +18 -0
  370. package/generated/entities/billing_settings/index.ts +26 -0
  371. package/generated/entities/billing_statement/index.ts +22 -0
  372. package/generated/entities/billing_topup/index.ts +20 -0
  373. package/generated/entities.ids.generated.ts +35 -0
  374. package/package.json +15 -10
  375. package/src/modules/billing/__integration__/TC-BILL-004.spec.ts +170 -0
  376. package/src/modules/billing/__integration__/TC-BILL-005.spec.ts +134 -0
  377. package/src/modules/billing/__integration__/TC-BILL-006.spec.ts +101 -0
  378. package/src/modules/billing/__integration__/TC-BILL-007.spec.ts +140 -0
  379. package/src/modules/billing/__integration__/TC-BILL-008.spec.ts +108 -0
  380. package/src/modules/billing/__integration__/TC-BILL-009.spec.ts +113 -0
  381. package/src/modules/billing/__integration__/TC-BILL-010.spec.ts +118 -0
  382. package/src/modules/billing/__integration__/TC-BILL-011.spec.ts +142 -0
  383. package/src/modules/billing/__integration__/TC-BILL-012.spec.ts +115 -0
  384. package/src/modules/billing/__integration__/TC-BILL-013.spec.ts +118 -0
  385. package/src/modules/billing/__integration__/sellerSettings.ts +24 -0
  386. package/src/modules/billing/__tests__/commands/invoices.test.ts +437 -355
  387. package/src/modules/billing/__tests__/commands/itemsBulk.test.ts +33 -0
  388. package/src/modules/billing/__tests__/commands/memos.test.ts +205 -0
  389. package/src/modules/billing/__tests__/commands/payments.test.ts +241 -0
  390. package/src/modules/billing/__tests__/commands/runsDelete.test.ts +146 -0
  391. package/src/modules/billing/__tests__/commands/runsPostDrafts.test.ts +106 -0
  392. package/src/modules/billing/__tests__/commands/topups.test.ts +11 -0
  393. package/src/modules/billing/__tests__/entityRegistry.test.ts +326 -0
  394. package/src/modules/billing/__tests__/events.test.ts +142 -0
  395. package/src/modules/billing/__tests__/helpers/prepaidMockEm.ts +28 -11
  396. package/src/modules/billing/__tests__/lib/accountFinancials.test.ts +53 -0
  397. package/src/modules/billing/__tests__/lib/accountSummary.test.ts +97 -0
  398. package/src/modules/billing/__tests__/lib/allocation.test.ts +319 -0
  399. package/src/modules/billing/__tests__/lib/billRunEngine.test.ts +231 -20
  400. package/src/modules/billing/__tests__/lib/billingSettings.test.ts +109 -0
  401. package/src/modules/billing/__tests__/lib/customerLookup.test.ts +156 -0
  402. package/src/modules/billing/__tests__/lib/dueDate.test.ts +35 -0
  403. package/src/modules/billing/__tests__/lib/iban.test.ts +38 -0
  404. package/src/modules/billing/__tests__/lib/invoiceDelivery.test.ts +189 -0
  405. package/src/modules/billing/__tests__/lib/invoiceWriter.test.ts +212 -10
  406. package/src/modules/billing/__tests__/lib/itemBillingState.test.ts +42 -0
  407. package/src/modules/billing/__tests__/lib/itemPriceChange.test.ts +165 -0
  408. package/src/modules/billing/__tests__/lib/lineAmounts.test.ts +86 -0
  409. package/src/modules/billing/__tests__/lib/navigation.test.ts +71 -0
  410. package/src/modules/billing/__tests__/lib/numbering.test.ts +91 -0
  411. package/src/modules/billing/__tests__/lib/overdue.test.ts +36 -0
  412. package/src/modules/billing/__tests__/lib/paymentCsv.test.ts +148 -0
  413. package/src/modules/billing/__tests__/lib/paymentImport.test.ts +113 -0
  414. package/src/modules/billing/__tests__/lib/paymentsSample.test.ts +73 -0
  415. package/src/modules/billing/__tests__/lib/pdf/invoicePdf.test.ts +199 -0
  416. package/src/modules/billing/__tests__/lib/pdf/invoicePdfService.test.ts +147 -0
  417. package/src/modules/billing/__tests__/lib/prepaidPeriodClose.test.ts +374 -98
  418. package/src/modules/billing/__tests__/lib/prepaidTaxPoint.test.ts +118 -0
  419. package/src/modules/billing/__tests__/lib/seedsDemo.test.ts +53 -2
  420. package/src/modules/billing/__tests__/lib/sellerSettings.test.ts +28 -0
  421. package/src/modules/billing/__tests__/lib/servicePeriods.test.ts +190 -0
  422. package/src/modules/billing/__tests__/lib/topupCapture.test.ts +6 -28
  423. package/src/modules/billing/__tests__/lib/topupReceipt.test.ts +21 -52
  424. package/src/modules/billing/__tests__/lib/vat.test.ts +51 -0
  425. package/src/modules/billing/__tests__/package-isolation.test.ts +22 -8
  426. package/src/modules/billing/__tests__/setup.test.ts +13 -4
  427. package/src/modules/billing/__tests__/validators.test.ts +193 -3
  428. package/src/modules/billing/acl.ts +12 -0
  429. package/src/modules/billing/api/accounts/[id]/summary/route.ts +62 -0
  430. package/src/modules/billing/api/accounts/route.ts +58 -4
  431. package/src/modules/billing/api/export/account/[id]/route.ts +20 -18
  432. package/src/modules/billing/api/invoices/[id]/memos/route.ts +63 -0
  433. package/src/modules/billing/api/invoices/[id]/pdf/route.ts +79 -0
  434. package/src/modules/billing/api/invoices/[id]/route.ts +57 -70
  435. package/src/modules/billing/api/invoices/[id]/send/route.ts +127 -0
  436. package/src/modules/billing/api/invoices/add-line/route.ts +3 -3
  437. package/src/modules/billing/api/invoices/delete-draft/route.ts +33 -0
  438. package/src/modules/billing/api/invoices/edit-line/route.ts +4 -4
  439. package/src/modules/billing/api/invoices/post/route.ts +7 -6
  440. package/src/modules/billing/api/invoices/remove-line/route.ts +3 -3
  441. package/src/modules/billing/api/invoices/route.ts +81 -86
  442. package/src/modules/billing/api/items/bulk/route.ts +2 -1
  443. package/src/modules/billing/api/items/change-price/route.ts +54 -0
  444. package/src/modules/billing/api/items/route.ts +23 -7
  445. package/src/modules/billing/api/payment-imports/[id]/route.ts +49 -0
  446. package/src/modules/billing/api/payment-imports/route.ts +57 -0
  447. package/src/modules/billing/api/payments/[id]/route.ts +63 -0
  448. package/src/modules/billing/api/payments/allocate/route.ts +35 -0
  449. package/src/modules/billing/api/payments/assign/route.ts +36 -0
  450. package/src/modules/billing/api/payments/convert-to-topup/route.ts +35 -0
  451. package/src/modules/billing/api/payments/ignore/route.ts +35 -0
  452. package/src/modules/billing/api/payments/import/route.ts +72 -0
  453. package/src/modules/billing/api/payments/restore/route.ts +35 -0
  454. package/src/modules/billing/api/payments/route.ts +147 -0
  455. package/src/modules/billing/api/payments/unallocate/route.ts +35 -0
  456. package/src/modules/billing/api/payments/unassign/route.ts +35 -0
  457. package/src/modules/billing/api/run-outcomes/route.ts +50 -7
  458. package/src/modules/billing/api/runs/[id]/post-drafts/route.ts +71 -0
  459. package/src/modules/billing/api/runs/[id]/route.ts +59 -0
  460. package/src/modules/billing/api/runs/retry-failed/route.ts +4 -3
  461. package/src/modules/billing/api/runs/route.ts +17 -9
  462. package/src/modules/billing/api/settings/number-preview/route.ts +46 -0
  463. package/src/modules/billing/api/settings/route.ts +116 -0
  464. package/src/modules/billing/api/statements/route.ts +5 -0
  465. package/src/modules/billing/api/test-invoices/wipe/route.ts +2 -2
  466. package/src/modules/billing/backend/billing/accounts/[id]/page.tsx +151 -372
  467. package/src/modules/billing/backend/billing/accounts/create/page.tsx +6 -0
  468. package/src/modules/billing/backend/billing/accounts/page.tsx +71 -5
  469. package/src/modules/billing/backend/billing/invoices/[id]/page.tsx +445 -96
  470. package/src/modules/billing/backend/billing/invoices/page.tsx +8 -227
  471. package/src/modules/billing/backend/billing/items/[id]/page.tsx +75 -6
  472. package/src/modules/billing/backend/billing/items/create/page.tsx +13 -8
  473. package/src/modules/billing/backend/billing/items/page.tsx +19 -3
  474. package/src/modules/billing/backend/billing/payments/[id]/page.meta.ts +19 -0
  475. package/src/modules/billing/backend/billing/payments/[id]/page.tsx +415 -0
  476. package/src/modules/billing/backend/billing/payments/imports/[id]/page.meta.ts +19 -0
  477. package/src/modules/billing/backend/billing/payments/imports/[id]/page.tsx +106 -0
  478. package/src/modules/billing/backend/billing/payments/page.meta.ts +16 -0
  479. package/src/modules/billing/backend/billing/payments/page.tsx +56 -0
  480. package/src/modules/billing/backend/billing/runs/[id]/page.tsx +50 -19
  481. package/src/modules/billing/backend/billing/runs/page.tsx +60 -9
  482. package/src/modules/billing/backend/billing/statements/[id]/page.tsx +87 -6
  483. package/src/modules/billing/backend/billing/statements/page.tsx +2 -2
  484. package/src/modules/billing/backend/billing/topups/page.tsx +2 -2
  485. package/src/modules/billing/backend/billing/transactions/page.tsx +2 -2
  486. package/src/modules/billing/backend/billing/usage/create/page.tsx +3 -2
  487. package/src/modules/billing/backend/config/billing/page.meta.ts +21 -0
  488. package/src/modules/billing/backend/config/billing/page.tsx +549 -0
  489. package/src/modules/billing/ce.ts +8 -7
  490. package/src/modules/billing/cli.ts +31 -1
  491. package/src/modules/billing/commands/accounts.ts +6 -0
  492. package/src/modules/billing/commands/index.ts +3 -0
  493. package/src/modules/billing/commands/invoices.ts +371 -238
  494. package/src/modules/billing/commands/items.ts +143 -0
  495. package/src/modules/billing/commands/memos.ts +218 -0
  496. package/src/modules/billing/commands/payments.ts +428 -0
  497. package/src/modules/billing/commands/runs.ts +208 -6
  498. package/src/modules/billing/commands/settings.ts +77 -0
  499. package/src/modules/billing/commands/topups.ts +12 -3
  500. package/src/modules/billing/commands/transactions.ts +2 -2
  501. package/src/modules/billing/components/AccountForm.tsx +199 -53
  502. package/src/modules/billing/components/AccountInvoicesSection.tsx +75 -0
  503. package/src/modules/billing/components/AccountPaymentsSection.tsx +42 -0
  504. package/src/modules/billing/components/AccountPicker.tsx +70 -0
  505. package/src/modules/billing/components/AllocatePaymentDialog.tsx +167 -0
  506. package/src/modules/billing/components/BillingDataTable.tsx +34 -0
  507. package/src/modules/billing/components/BillingSettingsLink.tsx +25 -0
  508. package/src/modules/billing/components/ChangeItemPriceDialog.tsx +180 -0
  509. package/src/modules/billing/components/CreateMemoDialog.tsx +232 -0
  510. package/src/modules/billing/components/CustomerLabel.tsx +53 -0
  511. package/src/modules/billing/components/InvoicesTable.tsx +344 -0
  512. package/src/modules/billing/components/ItemForm.tsx +233 -44
  513. package/src/modules/billing/components/ItemPriceField.tsx +81 -0
  514. package/src/modules/billing/components/LineFormDialog.tsx +25 -1
  515. package/src/modules/billing/components/ManualPaymentDialog.tsx +140 -0
  516. package/src/modules/billing/components/MoneyInput.tsx +26 -0
  517. package/src/modules/billing/components/PaymentUploadDialog.tsx +148 -0
  518. package/src/modules/billing/components/PaymentsTable.tsx +213 -0
  519. package/src/modules/billing/components/PostRunDraftsButton.tsx +129 -0
  520. package/src/modules/billing/components/PrepaidPanel.tsx +20 -7
  521. package/src/modules/billing/components/RunCyclesSection.tsx +298 -0
  522. package/src/modules/billing/components/TestRunActions.tsx +152 -0
  523. package/src/modules/billing/components/account/AccountItemsTab.tsx +192 -0
  524. package/src/modules/billing/components/account/AccountRunBillingDialog.tsx +147 -0
  525. package/src/modules/billing/components/account/AccountRunsTab.tsx +201 -0
  526. package/src/modules/billing/components/account/AccountStatementsTab.tsx +120 -0
  527. package/src/modules/billing/components/account/AccountSummaryCards.tsx +153 -0
  528. package/src/modules/billing/components/account/AccountUsageTab.tsx +122 -0
  529. package/src/modules/billing/components/account/AccountView.tsx +101 -0
  530. package/src/modules/billing/components/account/accountRow.ts +70 -0
  531. package/src/modules/billing/components/customerNames.ts +62 -0
  532. package/src/modules/billing/data/entities.ts +685 -15
  533. package/src/modules/billing/data/entityIds.ts +25 -11
  534. package/src/modules/billing/data/validators.ts +388 -8
  535. package/src/modules/billing/events.ts +82 -3
  536. package/src/modules/billing/i18n/en.json +457 -21
  537. package/src/modules/billing/i18n/pl.json +457 -21
  538. package/src/modules/billing/index.ts +6 -2
  539. package/src/modules/billing/lib/accountFinancials.ts +84 -0
  540. package/src/modules/billing/lib/accountLock.ts +32 -0
  541. package/src/modules/billing/lib/accountStatus.ts +11 -9
  542. package/src/modules/billing/lib/accountSummary.ts +172 -0
  543. package/src/modules/billing/lib/allocation.ts +515 -0
  544. package/src/modules/billing/lib/allocationEvents.ts +26 -0
  545. package/src/modules/billing/lib/billPeriod.ts +19 -0
  546. package/src/modules/billing/lib/billRunEngine.ts +362 -162
  547. package/src/modules/billing/lib/billRunLabel.ts +1 -1
  548. package/src/modules/billing/lib/billingSettings.ts +145 -0
  549. package/src/modules/billing/lib/commandRoute.ts +112 -0
  550. package/src/modules/billing/lib/customerLookup.ts +157 -0
  551. package/src/modules/billing/lib/dateOnly.ts +22 -0
  552. package/src/modules/billing/lib/documentParties.ts +23 -0
  553. package/src/modules/billing/lib/documentTypes.ts +37 -0
  554. package/src/modules/billing/lib/dueDate.ts +26 -0
  555. package/src/modules/billing/lib/iban.ts +36 -0
  556. package/src/modules/billing/lib/invoiceDelivery.ts +197 -0
  557. package/src/modules/billing/lib/invoiceLanguages.ts +34 -0
  558. package/src/modules/billing/lib/invoiceWriter.ts +162 -148
  559. package/src/modules/billing/lib/itemBillingState.ts +67 -0
  560. package/src/modules/billing/lib/itemPriceChange.ts +56 -0
  561. package/src/modules/billing/lib/itemSelector.ts +4 -1
  562. package/src/modules/billing/lib/lineAmounts.ts +61 -0
  563. package/src/modules/billing/lib/memoGuards.ts +41 -0
  564. package/src/modules/billing/lib/navigation.ts +64 -0
  565. package/src/modules/billing/lib/numbering.ts +174 -0
  566. package/src/modules/billing/lib/overdue.ts +60 -0
  567. package/src/modules/billing/lib/paymentCsv.ts +171 -0
  568. package/src/modules/billing/lib/paymentGateway.ts +52 -0
  569. package/src/modules/billing/lib/paymentImport.ts +228 -0
  570. package/src/modules/billing/lib/paymentMatcher.ts +88 -0
  571. package/src/modules/billing/lib/pdf/attachmentStore.ts +60 -0
  572. package/src/modules/billing/lib/pdf/fonts/NotoSans-Bold.ttf +0 -0
  573. package/src/modules/billing/lib/pdf/fonts/NotoSans-Regular.ttf +0 -0
  574. package/src/modules/billing/lib/pdf/fonts/OFL.txt +93 -0
  575. package/src/modules/billing/lib/pdf/fonts/embeddedFonts.ts +9 -0
  576. package/src/modules/billing/lib/pdf/invoiceModel.ts +328 -0
  577. package/src/modules/billing/lib/pdf/invoicePdf.ts +216 -0
  578. package/src/modules/billing/lib/pdf/invoiceTemplate.ts +338 -0
  579. package/src/modules/billing/lib/prepaidConfig.ts +27 -36
  580. package/src/modules/billing/lib/prepaidConsume.ts +29 -6
  581. package/src/modules/billing/lib/prepaidPeriodClose.ts +410 -242
  582. package/src/modules/billing/lib/prepaidTaxPoint.ts +76 -0
  583. package/src/modules/billing/lib/seeds/demo.ts +79 -6
  584. package/src/modules/billing/lib/seeds/paymentsSample.ts +136 -0
  585. package/src/modules/billing/lib/seeds/sellerSettings.ts +78 -0
  586. package/src/modules/billing/lib/servicePeriods.ts +226 -0
  587. package/src/modules/billing/lib/tenantLock.ts +1 -1
  588. package/src/modules/billing/lib/testRunCleanup.ts +42 -0
  589. package/src/modules/billing/lib/topupCapture.ts +3 -4
  590. package/src/modules/billing/lib/topupReceipt.ts +70 -103
  591. package/src/modules/billing/lib/usageRater.ts +1 -1
  592. package/src/modules/billing/lib/usageRunner.ts +17 -5
  593. package/src/modules/billing/lib/vat.ts +56 -0
  594. package/src/modules/billing/migrations/Migration20261114000000_billing_customer_kind.ts +25 -0
  595. package/src/modules/billing/migrations/Migration20261114100000_billing_cycle_semantics.ts +37 -0
  596. package/src/modules/billing/migrations/Migration20261115000000_billing_invoice_ledger.ts +132 -0
  597. package/src/modules/billing/migrations/Migration20261116000000_billing_invoice_documents.ts +58 -0
  598. package/src/modules/billing/migrations/Migration20261117000000_billing_payments.ts +97 -0
  599. package/src/modules/billing/migrations/Migration20261118000000_billing_memos.ts +21 -0
  600. package/src/modules/billing/migrations/Migration20261119000000_billing_operator_feedback.ts +39 -0
  601. package/src/modules/billing/migrations/Migration20261120000000_billing_allocation_scope_indexes.ts +35 -0
  602. package/src/modules/billing/setup.ts +11 -237
  603. package/src/modules/billing/subscribers/credit-memo-auto-send.ts +15 -0
  604. package/src/modules/billing/subscribers/debit-memo-apply-credit.ts +15 -0
  605. package/src/modules/billing/subscribers/debit-memo-auto-send.ts +15 -0
  606. package/src/modules/billing/subscribers/invoice-apply-credit.ts +39 -0
  607. package/src/modules/billing/subscribers/invoice-auto-send.ts +46 -0
  608. package/src/modules/billing/subscribers/payment-captured-to-paid.ts +84 -62
  609. package/src/modules/billing/subscribers/prepaid-topup-captured.ts +4 -8
  610. package/src/modules/billing/workers/reap-stale-bill-runs.ts +4 -4
  611. package/dist/modules/billing/lib/invoiceStatus.js +0 -38
  612. package/dist/modules/billing/lib/invoiceStatus.js.map +0 -7
  613. package/src/modules/billing/__tests__/lib/invoiceStatus.test.ts +0 -97
  614. package/src/modules/billing/lib/invoiceStatus.ts +0 -61
@@ -1,6 +1,12 @@
1
1
  import { z } from "zod";
2
+ import { DEFAULT_INVOICE_LANGUAGE, INVOICE_LANGUAGE_CODES } from "../lib/invoiceLanguages.js";
3
+ import { DOCUMENT_SERIES, validateMask } from "../lib/numbering.js";
4
+ import { isValidBic, isValidIban, normalizeIban } from "../lib/iban.js";
2
5
  const BILLING_ITEM_TYPES = ["one_time", "recurring", "usage"];
3
6
  const BILL_CYCLES = ["weekly", "monthly", "quarterly", "annually"];
7
+ const CHARGE_TIMINGS = ["in_advance", "in_arrears"];
8
+ const PRICE_BASES = ["net", "gross"];
9
+ const PREPAID_TAX_POINTS = ["topup", "consumption"];
4
10
  const BILL_RUN_TRIGGERS = ["schedule", "manual"];
5
11
  const BILL_RUN_STATUSES = ["running", "completed", "partial_failure", "failed"];
6
12
  const BILL_RUN_OUTCOME_STATUSES = [
@@ -13,7 +19,8 @@ const BILL_RUN_OUTCOME_STATUSES = [
13
19
  "failed"
14
20
  ];
15
21
  const DRAFT_INVOICE_EDIT_ACTIONS = ["line_added", "line_removed", "line_edited"];
16
- const INVOICE_STATUSES = ["draft", "posted", "paid", "void"];
22
+ const INVOICE_STATUSES = ["draft", "posted", "partially_paid", "paid", "credited"];
23
+ const DOCUMENT_TYPES = ["invoice", "credit_memo", "debit_memo", "receipt"];
17
24
  const BILLING_MODES = ["postpaid", "prepaid"];
18
25
  const TRANSACTION_TYPES = [
19
26
  "topup",
@@ -30,6 +37,7 @@ const TOPUP_STATUSES = [
30
37
  "expired",
31
38
  "cancelled"
32
39
  ];
40
+ const CUSTOMER_KINDS = ["company", "person"];
33
41
  const STATEMENT_STATUSES = ["generated", "sent"];
34
42
  const BALANCE_STATUSES = ["ok", "low", "exhausted"];
35
43
  const CREDIT_STATUSES = ["within_limit", "near_limit", "over_limit"];
@@ -134,14 +142,19 @@ const listPaginationBase = {
134
142
  sortDir: z.enum(["asc", "desc"]).optional()
135
143
  };
136
144
  const moneyNonNegative = z.number().finite().nonnegative();
145
+ const paymentTermsDaysSchema = z.coerce.number().int().min(0).max(365);
146
+ const invoiceLanguageSchema = z.string().trim().toLowerCase().pipe(z.enum(INVOICE_LANGUAGE_CODES));
137
147
  const billingAccountCreateSchema = scopedSchema.extend({
138
148
  customerId: z.string().min(1).max(255),
149
+ // Immutable after create (like customerId). Default 'company' keeps
150
+ // existing callers (CPQ connector, seeds) unaffected.
151
+ customerKind: z.enum(CUSTOMER_KINDS).default("company"),
139
152
  name: z.string().trim().min(1).max(255),
140
153
  currencyCode: z.string().trim().toUpperCase().length(3),
141
154
  billCycle: z.enum(BILL_CYCLES),
142
155
  billCycleAnchor: billCycleAnchorSchema,
143
156
  invoiceEmail: z.string().trim().email().max(320),
144
- invoiceLanguage: z.string().trim().toLowerCase().min(2).max(5),
157
+ invoiceLanguage: invoiceLanguageSchema.default(DEFAULT_INVOICE_LANGUAGE),
145
158
  // Nullable + optional — consistent with the update schema, and the
146
159
  // cpq-billing-connector's shell-account seed sends `taxId: null`
147
160
  // for customers with no tax id.
@@ -157,7 +170,10 @@ const billingAccountCreateSchema = scopedSchema.extend({
157
170
  creditLimit: moneyNonNegative.optional(),
158
171
  // Initial low-balance threshold for a prepaid account's balance row.
159
172
  // Null = resolve the tenant config default at read time.
160
- lowBalanceThreshold: moneyNonNegative.nullable().optional()
173
+ lowBalanceThreshold: moneyNonNegative.nullable().optional(),
174
+ // Spec B: null/omitted = the organization default payment terms.
175
+ paymentTermsDays: paymentTermsDaysSchema.nullable().optional(),
176
+ autoSendInvoice: z.boolean().optional()
161
177
  });
162
178
  const billingAccountUpdateSchema = scopedSchema.extend({
163
179
  id: z.string().uuid(),
@@ -165,7 +181,7 @@ const billingAccountUpdateSchema = scopedSchema.extend({
165
181
  billCycle: z.enum(BILL_CYCLES).optional(),
166
182
  billCycleAnchor: billCycleAnchorSchema.optional(),
167
183
  invoiceEmail: z.string().trim().email().max(320).optional(),
168
- invoiceLanguage: z.string().trim().toLowerCase().min(2).max(5).optional(),
184
+ invoiceLanguage: invoiceLanguageSchema.optional(),
169
185
  taxId: z.string().trim().max(64).nullable().optional(),
170
186
  invoiceAddress: invoiceAddressSchema.optional(),
171
187
  nextBillDate: z.coerce.date().optional(),
@@ -177,11 +193,14 @@ const billingAccountUpdateSchema = scopedSchema.extend({
177
193
  creditLimit: moneyNonNegative.optional(),
178
194
  // Editing the prepaid balance row's low-balance threshold. Null clears it
179
195
  // back to the tenant config default.
180
- lowBalanceThreshold: moneyNonNegative.nullable().optional()
196
+ lowBalanceThreshold: moneyNonNegative.nullable().optional(),
197
+ paymentTermsDays: paymentTermsDaysSchema.nullable().optional(),
198
+ autoSendInvoice: z.boolean().optional()
181
199
  // `currencyCode` is intentionally NOT updatable — currency is frozen at
182
200
  // account create time so historical invoices keep their currency context.
183
201
  // `customerId` is also immutable; create a new account if the customer
184
- // FK changes.
202
+ // FK changes. `customerKind` follows `customerId` and is likewise not
203
+ // updatable.
185
204
  });
186
205
  const billingAccountDeleteSchema = scopedSchema.extend({
187
206
  id: z.string().uuid()
@@ -190,12 +209,41 @@ const billingAccountListQuerySchema = z.object({
190
209
  ...listPaginationBase,
191
210
  id: z.string().uuid().optional(),
192
211
  customerId: z.string().optional(),
212
+ customerKind: z.enum(CUSTOMER_KINDS).optional(),
193
213
  currencyCode: z.string().optional(),
194
214
  billCycle: z.enum(BILL_CYCLES).optional(),
195
215
  billingMode: z.enum(BILLING_MODES).optional(),
196
216
  isActive: z.coerce.boolean().optional(),
197
- search: z.string().optional()
217
+ search: z.string().optional(),
218
+ // Spec F (F8): only accounts with at least one overdue receivable.
219
+ hasOverdue: z.union([z.boolean(), z.enum(["true", "false"])]).transform((value) => value === true || value === "true").optional()
198
220
  }).passthrough();
221
+ const taxRateSchema = z.coerce.number().finite().min(0).max(100);
222
+ const chargeTimingFields = {
223
+ chargeTiming: z.enum(CHARGE_TIMINGS).optional(),
224
+ prorate: z.boolean().optional(),
225
+ // Spec F (F-D2). Omitted → 'net' on create; unchanged on update.
226
+ priceBasis: z.enum(PRICE_BASES).optional()
227
+ };
228
+ const GROSS_TIERED_UNSUPPORTED_MESSAGE = "billing.item.gross_tiered_unsupported";
229
+ function isTieredRate(rateJson) {
230
+ return typeof rateJson === "object" && rateJson !== null && "model" in rateJson && "tiers" in rateJson;
231
+ }
232
+ function refinePriceBasis(val, ctx) {
233
+ if (val.priceBasis === "gross" && isTieredRate(val.rateJson)) {
234
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["priceBasis"], message: GROSS_TIERED_UNSUPPORTED_MESSAGE });
235
+ }
236
+ }
237
+ const CHARGE_TIMING_RECURRING_ONLY_MESSAGE = "chargeTiming / prorate can only be set on recurring items";
238
+ function refineChargeTiming(val, ctx) {
239
+ if (val.type === "recurring") return;
240
+ if (val.chargeTiming !== void 0 && val.chargeTiming !== "in_advance") {
241
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["chargeTiming"], message: CHARGE_TIMING_RECURRING_ONLY_MESSAGE });
242
+ }
243
+ if (val.prorate === false) {
244
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["prorate"], message: CHARGE_TIMING_RECURRING_ONLY_MESSAGE });
245
+ }
246
+ }
199
247
  const ratePayloadByType = z.object({
200
248
  type: z.enum(BILLING_ITEM_TYPES),
201
249
  rateJson: z.unknown()
@@ -222,10 +270,14 @@ const billingItemCreateSchema = scopedSchema.extend({
222
270
  subscriptionId: z.string().trim().max(255).optional(),
223
271
  subscriptionItemId: z.string().trim().max(255).optional(),
224
272
  // `source_ref` is the idempotency key. NULL → no dedup, always create.
225
- sourceRef: z.string().trim().min(1).max(255).optional()
273
+ sourceRef: z.string().trim().min(1).max(255).optional(),
274
+ taxRate: taxRateSchema.optional(),
275
+ ...chargeTimingFields
226
276
  // currency_mismatch and billed_to_date are system-managed, never set by
227
277
  // clients on create.
228
278
  }).superRefine((val, ctx) => {
279
+ refineChargeTiming(val, ctx);
280
+ refinePriceBasis(val, ctx);
229
281
  try {
230
282
  validateRateJson(val.type, val.rateJson);
231
283
  } catch (err) {
@@ -250,8 +302,12 @@ const billingItemBulkEntrySchema = z.object({
250
302
  uomCode: z.string().trim().max(64).optional(),
251
303
  subscriptionId: z.string().trim().max(255).optional(),
252
304
  subscriptionItemId: z.string().trim().max(255).optional(),
253
- sourceRef: z.string().trim().min(1).max(255).optional()
305
+ sourceRef: z.string().trim().min(1).max(255).optional(),
306
+ taxRate: taxRateSchema.optional(),
307
+ ...chargeTimingFields
254
308
  }).superRefine((val, ctx) => {
309
+ refineChargeTiming(val, ctx);
310
+ refinePriceBasis(val, ctx);
255
311
  try {
256
312
  validateRateJson(val.type, val.rateJson);
257
313
  } catch (err) {
@@ -285,7 +341,18 @@ const billingItemUpdateSchema = scopedSchema.extend({
285
341
  subscriptionId: z.string().trim().max(255).nullable().optional(),
286
342
  subscriptionItemId: z.string().trim().max(255).nullable().optional(),
287
343
  // `source_ref` immutable — it's the idempotency identity of the item.
288
- isActive: z.boolean().optional()
344
+ isActive: z.boolean().optional(),
345
+ // Affects future invoices only — posted lines keep their snapshot.
346
+ taxRate: taxRateSchema.optional(),
347
+ // Recurring only (enforced by the command, which knows the item type).
348
+ // Safe to change after billing: the `billed_to_date` watermark prevents
349
+ // any day from being billed twice.
350
+ ...chargeTimingFields
351
+ });
352
+ const billingItemChangePriceSchema = scopedSchema.extend({
353
+ id: z.string().uuid(),
354
+ effectiveDate: z.coerce.date(),
355
+ unitPrice: z.coerce.number().finite().nonnegative()
289
356
  });
290
357
  const billingItemDeleteSchema = scopedSchema.extend({
291
358
  id: z.string().uuid()
@@ -338,8 +405,10 @@ const billingRunTriggerSchema = scopedSchema.extend({
338
405
  // from the input shape.
339
406
  mode: z.enum(BILL_RUN_MODES).default("real"),
340
407
  asOfDate: z.coerce.date().optional(),
341
- scopedAccountIds: z.array(z.string().uuid()).optional(),
342
- catchUp: z.boolean().optional()
408
+ scopedAccountIds: z.array(z.string().uuid()).optional()
409
+ // Spec A: there is no `catchUp` flag — every run bills all due cycles up
410
+ // to `asOfDate`. Old clients still sending it are not rejected: the
411
+ // object schema strips unknown keys.
343
412
  });
344
413
  const billingRunRetryFailedSchema = scopedSchema.extend({
345
414
  billRunId: z.string().uuid(),
@@ -353,11 +422,16 @@ const billingRunListQuerySchema = z.object({
353
422
  triggeredBy: z.enum(BILL_RUN_TRIGGERS).optional(),
354
423
  parentRunId: z.string().uuid().optional(),
355
424
  asOfDateFrom: z.coerce.date().optional(),
356
- asOfDateTo: z.coerce.date().optional()
425
+ asOfDateTo: z.coerce.date().optional(),
426
+ // Spec F (F1): narrow the list to one run mode.
427
+ mode: z.enum(["real", "test", "dry"]).optional()
357
428
  }).passthrough();
358
429
  const billingInvoicePostSchema = scopedSchema.extend({
359
430
  invoiceId: z.string().uuid()
360
431
  });
432
+ const billingInvoiceSendSchema = scopedSchema.extend({
433
+ invoiceId: z.string().uuid()
434
+ });
361
435
  const lineEditableFields = z.object({
362
436
  description: z.string().trim().min(1).max(500).optional(),
363
437
  quantity: z.coerce.number().finite().nonnegative().optional(),
@@ -366,7 +440,8 @@ const lineEditableFields = z.object({
366
440
  // than `unit_price × quantity`" cases (rare; mostly for negative
367
441
  // credits or rounding fix-ups). When provided, it short-circuits
368
442
  // the auto-compute path.
369
- totalNetAmount: z.coerce.number().finite().optional()
443
+ totalNetAmount: z.coerce.number().finite().optional(),
444
+ taxRate: taxRateSchema.optional()
370
445
  });
371
446
  const billingInvoiceEditLineSchema = scopedSchema.extend({
372
447
  invoiceId: z.string().uuid(),
@@ -382,7 +457,9 @@ const billingInvoiceAddLineSchema = scopedSchema.extend({
382
457
  // `billing_item_id` blank because ad-hoc lines aren't tied to a
383
458
  // Billing Item.
384
459
  billingItemId: z.string().uuid().optional(),
385
- billingType: z.enum(BILLING_ITEM_TYPES).optional()
460
+ billingType: z.enum(BILLING_ITEM_TYPES).optional(),
461
+ // Omitted → the organization default VAT rate.
462
+ taxRate: taxRateSchema.optional()
386
463
  });
387
464
  const billingInvoiceRemoveLineSchema = scopedSchema.extend({
388
465
  invoiceId: z.string().uuid(),
@@ -392,6 +469,15 @@ const billingWipeTestInvoicesSchema = scopedSchema.extend({
392
469
  /** Optional — when set, wipes only test invoices from this run. */
393
470
  billRunId: z.string().uuid().optional()
394
471
  });
472
+ const billingRunDeleteSchema = scopedSchema.extend({
473
+ billRunId: z.string().uuid()
474
+ });
475
+ const billingRunPostDraftsSchema = scopedSchema.extend({
476
+ billRunId: z.string().uuid(),
477
+ /** Continue after this invoice id (ids are processed in ascending order). */
478
+ afterInvoiceId: z.string().uuid().optional(),
479
+ limit: z.coerce.number().int().min(1).max(100).optional()
480
+ });
395
481
  const billingTopupCreateSchema = scopedSchema.extend({
396
482
  // The route maps the `/accounts/{id}/topups` path param into billAccountId.
397
483
  billAccountId: z.string().uuid(),
@@ -446,7 +532,144 @@ const billingStatementListQuerySchema = z.object({
446
532
  periodEndFrom: z.coerce.date().optional(),
447
533
  periodEndTo: z.coerce.date().optional()
448
534
  }).passthrough();
535
+ const queryBoolean = z.preprocess(
536
+ (value) => value === "true" || value === true ? true : value === "false" || value === false ? false : void 0,
537
+ z.boolean().optional()
538
+ );
539
+ const billingInvoiceListQuerySchema = z.object({
540
+ ...listPaginationBase,
541
+ id: z.string().uuid().optional(),
542
+ status: z.enum(INVOICE_STATUSES).optional(),
543
+ documentType: z.enum(DOCUMENT_TYPES).optional(),
544
+ billRunId: z.string().uuid().optional(),
545
+ billAccountId: z.string().uuid().optional(),
546
+ testRun: queryBoolean,
547
+ search: z.string().trim().max(100).optional(),
548
+ // Spec B: computed overdue (B-D6) and due-date window.
549
+ overdue: queryBoolean,
550
+ dueFrom: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
551
+ dueTo: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
552
+ }).passthrough();
553
+ const numberMaskSchema = z.string().trim().superRefine((mask, ctx) => {
554
+ for (const code of validateMask(mask)) {
555
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: code });
556
+ }
557
+ });
558
+ const moneyString = z.coerce.number().finite().nonnegative();
559
+ function optionalText(max) {
560
+ return z.string().trim().max(max).transform((value) => value === "" ? null : value).nullable().optional();
561
+ }
562
+ const sellerAddressSchema = invoiceAddressSchema;
563
+ const billingSettingsUpdateSchema = scopedSchema.extend({
564
+ lowBalanceThresholdDefault: moneyString.optional(),
565
+ nearLimitBufferDefault: moneyString.optional(),
566
+ statementEnabled: z.boolean().optional(),
567
+ topupTaxRate: z.coerce.number().finite().min(0).max(100).optional(),
568
+ topupProvider: z.string().trim().min(1).max(64).optional(),
569
+ numberMasks: z.object(Object.fromEntries(DOCUMENT_SERIES.map((series) => [series, numberMaskSchema.optional()]))).strict().optional(),
570
+ // Seller / payment / document fields (Spec B). Empty string clears.
571
+ legalName: optionalText(255),
572
+ sellerAddress: sellerAddressSchema.nullable().optional(),
573
+ taxId: optionalText(64),
574
+ bankName: optionalText(255),
575
+ iban: z.string().transform(normalizeIban).refine((value) => value === "" || isValidIban(value), { message: "billing.settings.error.iban_invalid" }).transform((value) => value === "" ? null : value).nullable().optional(),
576
+ bic: z.string().trim().toUpperCase().refine((value) => value === "" || isValidBic(value), { message: "billing.settings.error.bic_invalid" }).transform((value) => value === "" ? null : value).nullable().optional(),
577
+ invoiceFooter: optionalText(2e3),
578
+ logoAttachmentId: z.string().uuid().nullable().optional(),
579
+ defaultPaymentTermsDays: paymentTermsDaysSchema.optional(),
580
+ defaultTaxRate: taxRateSchema.optional(),
581
+ // Spec F (F-D3).
582
+ prepaidTaxPoint: z.enum(PREPAID_TAX_POINTS).optional()
583
+ });
584
+ const PAYMENT_STATUSES = [
585
+ "unmatched",
586
+ "matched",
587
+ "partially_allocated",
588
+ "allocated",
589
+ "ignored",
590
+ "converted_to_topup"
591
+ ];
592
+ const PAYMENT_SOURCES = ["csv", "manual", "gateway"];
593
+ const PAYMENT_MATCH_REASONS = [
594
+ "no_reference",
595
+ "currency_mismatch",
596
+ "invoice_already_paid",
597
+ "prepaid_account",
598
+ "manual"
599
+ ];
600
+ const ALLOCATION_SOURCE_TYPES = ["payment", "credit_memo"];
601
+ const ALLOCATED_BY = ["auto", "credit", "user", "gateway"];
602
+ const isoDateString = z.string().regex(/^\d{4}-\d{2}-\d{2}$/);
603
+ const positiveMoney = z.coerce.number().finite().positive();
604
+ const billingPaymentCreateSchema = scopedSchema.extend({
605
+ receivedAt: isoDateString,
606
+ amount: positiveMoney,
607
+ currencyCode: z.string().trim().toUpperCase().length(3),
608
+ reference: z.string().trim().max(500).optional(),
609
+ payerName: z.string().trim().max(255).optional(),
610
+ payerAccount: z.string().trim().max(64).optional(),
611
+ // Known account → status `matched` and credit auto-apply; else `unmatched`.
612
+ billAccountId: z.string().uuid().optional()
613
+ });
614
+ const billingPaymentAssignSchema = scopedSchema.extend({
615
+ paymentId: z.string().uuid(),
616
+ billAccountId: z.string().uuid()
617
+ });
618
+ const billingPaymentAllocateSchema = scopedSchema.extend({
619
+ paymentId: z.string().uuid(),
620
+ allocations: z.array(z.object({ invoiceId: z.string().uuid(), amount: positiveMoney })).min(1).max(100)
621
+ });
622
+ const billingAllocationRemoveSchema = scopedSchema.extend({
623
+ allocationId: z.string().uuid()
624
+ });
625
+ const billingPaymentIdSchema = scopedSchema.extend({
626
+ paymentId: z.string().uuid()
627
+ });
628
+ const billingPaymentConvertSchema = scopedSchema.extend({
629
+ paymentId: z.string().uuid(),
630
+ billAccountId: z.string().uuid()
631
+ });
632
+ const PAYMENT_IMPORT_MAX_BYTES = 2 * 1024 * 1024;
633
+ const PAYMENT_IMPORT_MAX_ROWS = 5e3;
634
+ const billingPaymentImportSchema = scopedSchema.extend({
635
+ fileName: z.string().trim().min(1).max(255),
636
+ content: z.string().max(PAYMENT_IMPORT_MAX_BYTES)
637
+ });
638
+ const billingPaymentListQuerySchema = z.object({
639
+ ...listPaginationBase,
640
+ id: z.string().uuid().optional(),
641
+ status: z.enum(PAYMENT_STATUSES).optional(),
642
+ billAccountId: z.string().uuid().optional(),
643
+ importId: z.string().uuid().optional(),
644
+ receivedFrom: isoDateString.optional(),
645
+ receivedTo: isoDateString.optional(),
646
+ search: z.string().trim().max(100).optional()
647
+ }).passthrough();
648
+ const billingPaymentImportListQuerySchema = z.object({ ...listPaginationBase, id: z.string().uuid().optional() }).passthrough();
649
+ const MEMO_TYPES = ["credit_memo", "debit_memo"];
650
+ const memoLineSchema = z.object({
651
+ // Copied from the original (credit prefill). The original line's VAT rate wins.
652
+ correctsLineId: z.string().uuid().optional(),
653
+ description: z.string().trim().min(1).max(500),
654
+ quantity: z.coerce.number().finite().positive(),
655
+ unitPriceNet: z.coerce.number().finite().nonnegative(),
656
+ // New lines: omitted → organization default rate.
657
+ taxRate: z.coerce.number().finite().min(0).max(100).optional()
658
+ });
659
+ const billingMemoCreateSchema = scopedSchema.extend({
660
+ invoiceId: z.string().uuid(),
661
+ type: z.enum(MEMO_TYPES),
662
+ reason: z.string().trim().min(1, "billing.memo.error.reason_required").max(1e3),
663
+ // Credit memo without lines = full credit (all original lines). Debit memo
664
+ // without lines = empty draft (lines are added on the draft).
665
+ lines: z.array(memoLineSchema).max(200).optional()
666
+ });
667
+ const billingDraftDeleteSchema = scopedSchema.extend({
668
+ invoiceId: z.string().uuid()
669
+ });
449
670
  export {
671
+ ALLOCATED_BY,
672
+ ALLOCATION_SOURCE_TYPES,
450
673
  BALANCE_STATUSES,
451
674
  BILLING_ITEM_TYPES,
452
675
  BILLING_MODES,
@@ -455,9 +678,22 @@ export {
455
678
  BILL_RUN_OUTCOME_STATUSES,
456
679
  BILL_RUN_STATUSES,
457
680
  BILL_RUN_TRIGGERS,
681
+ CHARGE_TIMINGS,
682
+ CHARGE_TIMING_RECURRING_ONLY_MESSAGE,
458
683
  CREDIT_STATUSES,
684
+ CUSTOMER_KINDS,
685
+ DOCUMENT_TYPES,
459
686
  DRAFT_INVOICE_EDIT_ACTIONS,
687
+ GROSS_TIERED_UNSUPPORTED_MESSAGE,
460
688
  INVOICE_STATUSES,
689
+ MEMO_TYPES,
690
+ PAYMENT_IMPORT_MAX_BYTES,
691
+ PAYMENT_IMPORT_MAX_ROWS,
692
+ PAYMENT_MATCH_REASONS,
693
+ PAYMENT_SOURCES,
694
+ PAYMENT_STATUSES,
695
+ PREPAID_TAX_POINTS,
696
+ PRICE_BASES,
461
697
  STATEMENT_STATUSES,
462
698
  TOPUP_STATUSES,
463
699
  TRANSACTION_TYPES,
@@ -466,18 +702,35 @@ export {
466
702
  billingAccountDeleteSchema,
467
703
  billingAccountListQuerySchema,
468
704
  billingAccountUpdateSchema,
705
+ billingAllocationRemoveSchema,
706
+ billingDraftDeleteSchema,
469
707
  billingInvoiceAddLineSchema,
470
708
  billingInvoiceEditLineSchema,
709
+ billingInvoiceListQuerySchema,
471
710
  billingInvoicePostSchema,
472
711
  billingInvoiceRemoveLineSchema,
712
+ billingInvoiceSendSchema,
473
713
  billingItemBulkCreateSchema,
714
+ billingItemChangePriceSchema,
474
715
  billingItemCreateSchema,
475
716
  billingItemDeleteSchema,
476
717
  billingItemListQuerySchema,
477
718
  billingItemUpdateSchema,
719
+ billingMemoCreateSchema,
720
+ billingPaymentAllocateSchema,
721
+ billingPaymentAssignSchema,
722
+ billingPaymentConvertSchema,
723
+ billingPaymentCreateSchema,
724
+ billingPaymentIdSchema,
725
+ billingPaymentImportListQuerySchema,
726
+ billingPaymentImportSchema,
727
+ billingPaymentListQuerySchema,
728
+ billingRunDeleteSchema,
478
729
  billingRunListQuerySchema,
730
+ billingRunPostDraftsSchema,
479
731
  billingRunRetryFailedSchema,
480
732
  billingRunTriggerSchema,
733
+ billingSettingsUpdateSchema,
481
734
  billingStatementGenerateSchema,
482
735
  billingStatementListQuerySchema,
483
736
  billingTopupCreateSchema,
@@ -488,6 +741,7 @@ export {
488
741
  billingUsageListQuerySchema,
489
742
  billingWipeTestInvoicesSchema,
490
743
  invoiceAddressSchema,
744
+ isTieredRate,
491
745
  rateJsonOneTime,
492
746
  rateJsonRecurring,
493
747
  rateJsonUsage,