@elyonar/einvoice-js 0.1.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 (148) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +230 -0
  3. package/dist/cjs/client/http-client.d.ts +52 -0
  4. package/dist/cjs/client/http-client.d.ts.map +1 -0
  5. package/dist/cjs/client/http-client.js +117 -0
  6. package/dist/cjs/client/http-client.js.map +1 -0
  7. package/dist/cjs/client/index.d.ts +3 -0
  8. package/dist/cjs/client/index.d.ts.map +1 -0
  9. package/dist/cjs/client/index.js +6 -0
  10. package/dist/cjs/client/index.js.map +1 -0
  11. package/dist/cjs/einvoice.d.ts +69 -0
  12. package/dist/cjs/einvoice.d.ts.map +1 -0
  13. package/dist/cjs/einvoice.js +79 -0
  14. package/dist/cjs/einvoice.js.map +1 -0
  15. package/dist/cjs/errors.d.ts +74 -0
  16. package/dist/cjs/errors.d.ts.map +1 -0
  17. package/dist/cjs/errors.js +98 -0
  18. package/dist/cjs/errors.js.map +1 -0
  19. package/dist/cjs/index.d.ts +12 -0
  20. package/dist/cjs/index.d.ts.map +1 -0
  21. package/dist/cjs/index.js +40 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/package.json +1 -0
  24. package/dist/cjs/services/billing.d.ts +75 -0
  25. package/dist/cjs/services/billing.d.ts.map +1 -0
  26. package/dist/cjs/services/billing.js +172 -0
  27. package/dist/cjs/services/billing.js.map +1 -0
  28. package/dist/cjs/services/buyers.d.ts +57 -0
  29. package/dist/cjs/services/buyers.d.ts.map +1 -0
  30. package/dist/cjs/services/buyers.js +110 -0
  31. package/dist/cjs/services/buyers.js.map +1 -0
  32. package/dist/cjs/services/index.d.ts +5 -0
  33. package/dist/cjs/services/index.d.ts.map +1 -0
  34. package/dist/cjs/services/index.js +12 -0
  35. package/dist/cjs/services/index.js.map +1 -0
  36. package/dist/cjs/services/invoices.d.ts +94 -0
  37. package/dist/cjs/services/invoices.d.ts.map +1 -0
  38. package/dist/cjs/services/invoices.js +193 -0
  39. package/dist/cjs/services/invoices.js.map +1 -0
  40. package/dist/cjs/services/sellers.d.ts +61 -0
  41. package/dist/cjs/services/sellers.d.ts.map +1 -0
  42. package/dist/cjs/services/sellers.js +114 -0
  43. package/dist/cjs/services/sellers.js.map +1 -0
  44. package/dist/cjs/types/billing.d.ts +174 -0
  45. package/dist/cjs/types/billing.d.ts.map +1 -0
  46. package/dist/cjs/types/billing.js +6 -0
  47. package/dist/cjs/types/billing.js.map +1 -0
  48. package/dist/cjs/types/common.d.ts +53 -0
  49. package/dist/cjs/types/common.d.ts.map +1 -0
  50. package/dist/cjs/types/common.js +6 -0
  51. package/dist/cjs/types/common.js.map +1 -0
  52. package/dist/cjs/types/index.d.ts +6 -0
  53. package/dist/cjs/types/index.d.ts.map +1 -0
  54. package/dist/cjs/types/index.js +3 -0
  55. package/dist/cjs/types/index.js.map +1 -0
  56. package/dist/cjs/types/invoice.d.ts +183 -0
  57. package/dist/cjs/types/invoice.d.ts.map +1 -0
  58. package/dist/cjs/types/invoice.js +6 -0
  59. package/dist/cjs/types/invoice.js.map +1 -0
  60. package/dist/cjs/types/party.d.ts +128 -0
  61. package/dist/cjs/types/party.d.ts.map +1 -0
  62. package/dist/cjs/types/party.js +3 -0
  63. package/dist/cjs/types/party.js.map +1 -0
  64. package/dist/cjs/types/webhook.d.ts +14 -0
  65. package/dist/cjs/types/webhook.d.ts.map +1 -0
  66. package/dist/cjs/types/webhook.js +6 -0
  67. package/dist/cjs/types/webhook.js.map +1 -0
  68. package/dist/cjs/webhooks/index.d.ts +3 -0
  69. package/dist/cjs/webhooks/index.d.ts.map +1 -0
  70. package/dist/cjs/webhooks/index.js +6 -0
  71. package/dist/cjs/webhooks/index.js.map +1 -0
  72. package/dist/cjs/webhooks/verify.d.ts +43 -0
  73. package/dist/cjs/webhooks/verify.d.ts.map +1 -0
  74. package/dist/cjs/webhooks/verify.js +92 -0
  75. package/dist/cjs/webhooks/verify.js.map +1 -0
  76. package/dist/esm/client/http-client.d.ts +52 -0
  77. package/dist/esm/client/http-client.d.ts.map +1 -0
  78. package/dist/esm/client/http-client.js +113 -0
  79. package/dist/esm/client/http-client.js.map +1 -0
  80. package/dist/esm/client/index.d.ts +3 -0
  81. package/dist/esm/client/index.d.ts.map +1 -0
  82. package/dist/esm/client/index.js +2 -0
  83. package/dist/esm/client/index.js.map +1 -0
  84. package/dist/esm/einvoice.d.ts +69 -0
  85. package/dist/esm/einvoice.d.ts.map +1 -0
  86. package/dist/esm/einvoice.js +75 -0
  87. package/dist/esm/einvoice.js.map +1 -0
  88. package/dist/esm/errors.d.ts +74 -0
  89. package/dist/esm/errors.d.ts.map +1 -0
  90. package/dist/esm/errors.js +89 -0
  91. package/dist/esm/errors.js.map +1 -0
  92. package/dist/esm/index.d.ts +12 -0
  93. package/dist/esm/index.d.ts.map +1 -0
  94. package/dist/esm/index.js +24 -0
  95. package/dist/esm/index.js.map +1 -0
  96. package/dist/esm/services/billing.d.ts +75 -0
  97. package/dist/esm/services/billing.d.ts.map +1 -0
  98. package/dist/esm/services/billing.js +168 -0
  99. package/dist/esm/services/billing.js.map +1 -0
  100. package/dist/esm/services/buyers.d.ts +57 -0
  101. package/dist/esm/services/buyers.d.ts.map +1 -0
  102. package/dist/esm/services/buyers.js +106 -0
  103. package/dist/esm/services/buyers.js.map +1 -0
  104. package/dist/esm/services/index.d.ts +5 -0
  105. package/dist/esm/services/index.d.ts.map +1 -0
  106. package/dist/esm/services/index.js +5 -0
  107. package/dist/esm/services/index.js.map +1 -0
  108. package/dist/esm/services/invoices.d.ts +94 -0
  109. package/dist/esm/services/invoices.d.ts.map +1 -0
  110. package/dist/esm/services/invoices.js +189 -0
  111. package/dist/esm/services/invoices.js.map +1 -0
  112. package/dist/esm/services/sellers.d.ts +61 -0
  113. package/dist/esm/services/sellers.d.ts.map +1 -0
  114. package/dist/esm/services/sellers.js +110 -0
  115. package/dist/esm/services/sellers.js.map +1 -0
  116. package/dist/esm/types/billing.d.ts +174 -0
  117. package/dist/esm/types/billing.d.ts.map +1 -0
  118. package/dist/esm/types/billing.js +5 -0
  119. package/dist/esm/types/billing.js.map +1 -0
  120. package/dist/esm/types/common.d.ts +53 -0
  121. package/dist/esm/types/common.d.ts.map +1 -0
  122. package/dist/esm/types/common.js +5 -0
  123. package/dist/esm/types/common.js.map +1 -0
  124. package/dist/esm/types/index.d.ts +6 -0
  125. package/dist/esm/types/index.d.ts.map +1 -0
  126. package/dist/esm/types/index.js +2 -0
  127. package/dist/esm/types/index.js.map +1 -0
  128. package/dist/esm/types/invoice.d.ts +183 -0
  129. package/dist/esm/types/invoice.d.ts.map +1 -0
  130. package/dist/esm/types/invoice.js +5 -0
  131. package/dist/esm/types/invoice.js.map +1 -0
  132. package/dist/esm/types/party.d.ts +128 -0
  133. package/dist/esm/types/party.d.ts.map +1 -0
  134. package/dist/esm/types/party.js +2 -0
  135. package/dist/esm/types/party.js.map +1 -0
  136. package/dist/esm/types/webhook.d.ts +14 -0
  137. package/dist/esm/types/webhook.d.ts.map +1 -0
  138. package/dist/esm/types/webhook.js +5 -0
  139. package/dist/esm/types/webhook.js.map +1 -0
  140. package/dist/esm/webhooks/index.d.ts +3 -0
  141. package/dist/esm/webhooks/index.d.ts.map +1 -0
  142. package/dist/esm/webhooks/index.js +2 -0
  143. package/dist/esm/webhooks/index.js.map +1 -0
  144. package/dist/esm/webhooks/verify.d.ts +43 -0
  145. package/dist/esm/webhooks/verify.d.ts.map +1 -0
  146. package/dist/esm/webhooks/verify.js +89 -0
  147. package/dist/esm/webhooks/verify.js.map +1 -0
  148. package/package.json +87 -0
@@ -0,0 +1,94 @@
1
+ import type { HttpClient } from '../client/http-client.js';
2
+ import type { ApiResponse, RequestOptions } from '../types/common.js';
3
+ import type { Invoice, CreateInvoiceParams, UpdateInvoiceParams, ListInvoicesParams, SubmitResult, BatchSubmitResult, RetryResult, InvoiceStatusResult, ValidationResult, DownloadResult, InvoiceStatistics, InvoiceStatisticsParams, CancelInvoiceParams } from '../types/invoice.js';
4
+ /**
5
+ * Service for managing invoices.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const client = new EInvoice({ apiKey: 'sk_test_...' });
10
+ *
11
+ * // Create an invoice
12
+ * const invoice = await client.invoices.create({
13
+ * sellerId: 'sel_123',
14
+ * buyerId: 'buy_456',
15
+ * invoiceDate: '2026-03-20',
16
+ * dueDate: '2026-04-20',
17
+ * currency: 'NGN',
18
+ * lineItems: [{ description: 'Widget', quantity: 10, unitPrice: 500, vatRate: 7.5 }],
19
+ * });
20
+ *
21
+ * // Submit to tax authority
22
+ * await client.invoices.submit(invoice.data.id);
23
+ * ```
24
+ */
25
+ export declare class InvoiceService {
26
+ private readonly http;
27
+ /** @internal */
28
+ constructor(http: HttpClient);
29
+ /**
30
+ * Create a new draft invoice.
31
+ */
32
+ create(params: CreateInvoiceParams, options?: RequestOptions): Promise<ApiResponse<Invoice>>;
33
+ /**
34
+ * Get an invoice by ID.
35
+ */
36
+ get(id: string, options?: RequestOptions): Promise<ApiResponse<Invoice>>;
37
+ /**
38
+ * List invoices with optional filtering and pagination.
39
+ */
40
+ list(params?: ListInvoicesParams, options?: RequestOptions): Promise<ApiResponse<Invoice[]>>;
41
+ /**
42
+ * Update a draft invoice. Only invoices in `draft` status can be updated.
43
+ */
44
+ update(id: string, params: UpdateInvoiceParams, options?: RequestOptions): Promise<ApiResponse<Invoice>>;
45
+ /**
46
+ * Permanently delete a draft invoice. Only invoices in `draft` status can be deleted.
47
+ */
48
+ delete(id: string, options?: RequestOptions): Promise<ApiResponse<{
49
+ deleted: boolean;
50
+ }>>;
51
+ /**
52
+ * Submit an invoice to the tax authority for validation. This action is irreversible.
53
+ * The invoice must be in `draft` status.
54
+ */
55
+ submit(id: string, options?: RequestOptions): Promise<ApiResponse<SubmitResult>>;
56
+ /**
57
+ * Submit multiple invoices in a single batch (1–100 invoices).
58
+ */
59
+ batchSubmit(invoiceIds: string[], options?: RequestOptions): Promise<ApiResponse<BatchSubmitResult>>;
60
+ /**
61
+ * Retry a failed invoice submission.
62
+ */
63
+ retry(id: string, options?: RequestOptions): Promise<ApiResponse<RetryResult>>;
64
+ /**
65
+ * Cancel an accepted invoice. This creates a credit note.
66
+ */
67
+ cancel(id: string, params: CancelInvoiceParams, options?: RequestOptions): Promise<ApiResponse<Invoice>>;
68
+ /**
69
+ * Get the current status of an invoice from the local database.
70
+ */
71
+ getStatus(id: string, options?: RequestOptions): Promise<ApiResponse<InvoiceStatusResult>>;
72
+ /**
73
+ * Query the tax authority for real-time invoice status.
74
+ */
75
+ queryStatus(id: string, options?: RequestOptions): Promise<ApiResponse<InvoiceStatusResult>>;
76
+ /**
77
+ * Validate invoice data without creating an invoice.
78
+ * Returns validation errors, warnings, and calculated amounts.
79
+ */
80
+ validate(params: CreateInvoiceParams, options?: RequestOptions): Promise<ApiResponse<ValidationResult>>;
81
+ /**
82
+ * Get a temporary download URL for the invoice PDF or XML.
83
+ */
84
+ download(id: string, format?: 'pdf' | 'xml', options?: RequestOptions): Promise<ApiResponse<DownloadResult>>;
85
+ /**
86
+ * Get invoice statistics and analytics.
87
+ */
88
+ getStatistics(params?: InvoiceStatisticsParams, options?: RequestOptions): Promise<ApiResponse<InvoiceStatistics>>;
89
+ /**
90
+ * Get reference data needed for invoice creation (currencies, tax rates, etc.).
91
+ */
92
+ getSetup(options?: RequestOptions): Promise<ApiResponse<Record<string, unknown>>>;
93
+ }
94
+ //# sourceMappingURL=invoices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../../src/services/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EACV,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,gBAAgB;gBACa,IAAI,EAAE,UAAU;IAE7C;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IASlG;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAQ9E;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IASlG;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAS9G;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAQ9F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAQtF;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAS1G;;OAEG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAQpF;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAS9G;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAQhG;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAQlG;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAS7G;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IASlH;;OAEG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IASxH;;OAEG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAOxF"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Service for managing invoices.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * const client = new EInvoice({ apiKey: 'sk_test_...' });
7
+ *
8
+ * // Create an invoice
9
+ * const invoice = await client.invoices.create({
10
+ * sellerId: 'sel_123',
11
+ * buyerId: 'buy_456',
12
+ * invoiceDate: '2026-03-20',
13
+ * dueDate: '2026-04-20',
14
+ * currency: 'NGN',
15
+ * lineItems: [{ description: 'Widget', quantity: 10, unitPrice: 500, vatRate: 7.5 }],
16
+ * });
17
+ *
18
+ * // Submit to tax authority
19
+ * await client.invoices.submit(invoice.data.id);
20
+ * ```
21
+ */
22
+ export class InvoiceService {
23
+ http;
24
+ /** @internal */
25
+ constructor(http) {
26
+ this.http = http;
27
+ }
28
+ /**
29
+ * Create a new draft invoice.
30
+ */
31
+ async create(params, options) {
32
+ return this.http.request({
33
+ method: 'POST',
34
+ path: '/i/v1/invoices',
35
+ body: params,
36
+ requestOptions: options,
37
+ });
38
+ }
39
+ /**
40
+ * Get an invoice by ID.
41
+ */
42
+ async get(id, options) {
43
+ return this.http.request({
44
+ method: 'GET',
45
+ path: `/i/v1/invoices/${id}`,
46
+ requestOptions: options,
47
+ });
48
+ }
49
+ /**
50
+ * List invoices with optional filtering and pagination.
51
+ */
52
+ async list(params, options) {
53
+ return this.http.request({
54
+ method: 'GET',
55
+ path: '/i/v1/invoices',
56
+ query: params,
57
+ requestOptions: options,
58
+ });
59
+ }
60
+ /**
61
+ * Update a draft invoice. Only invoices in `draft` status can be updated.
62
+ */
63
+ async update(id, params, options) {
64
+ return this.http.request({
65
+ method: 'PATCH',
66
+ path: `/i/v1/invoices/${id}`,
67
+ body: params,
68
+ requestOptions: options,
69
+ });
70
+ }
71
+ /**
72
+ * Permanently delete a draft invoice. Only invoices in `draft` status can be deleted.
73
+ */
74
+ async delete(id, options) {
75
+ return this.http.request({
76
+ method: 'DELETE',
77
+ path: `/i/v1/invoices/${id}`,
78
+ requestOptions: options,
79
+ });
80
+ }
81
+ /**
82
+ * Submit an invoice to the tax authority for validation. This action is irreversible.
83
+ * The invoice must be in `draft` status.
84
+ */
85
+ async submit(id, options) {
86
+ return this.http.request({
87
+ method: 'POST',
88
+ path: `/i/v1/invoices/${id}/submit`,
89
+ requestOptions: options,
90
+ });
91
+ }
92
+ /**
93
+ * Submit multiple invoices in a single batch (1–100 invoices).
94
+ */
95
+ async batchSubmit(invoiceIds, options) {
96
+ return this.http.request({
97
+ method: 'POST',
98
+ path: '/i/v1/invoices/batch-submit',
99
+ body: { invoiceIds },
100
+ requestOptions: options,
101
+ });
102
+ }
103
+ /**
104
+ * Retry a failed invoice submission.
105
+ */
106
+ async retry(id, options) {
107
+ return this.http.request({
108
+ method: 'POST',
109
+ path: `/i/v1/invoices/${id}/retry`,
110
+ requestOptions: options,
111
+ });
112
+ }
113
+ /**
114
+ * Cancel an accepted invoice. This creates a credit note.
115
+ */
116
+ async cancel(id, params, options) {
117
+ return this.http.request({
118
+ method: 'POST',
119
+ path: `/i/v1/invoices/${id}/cancel`,
120
+ body: params,
121
+ requestOptions: options,
122
+ });
123
+ }
124
+ /**
125
+ * Get the current status of an invoice from the local database.
126
+ */
127
+ async getStatus(id, options) {
128
+ return this.http.request({
129
+ method: 'GET',
130
+ path: `/i/v1/invoices/${id}/status`,
131
+ requestOptions: options,
132
+ });
133
+ }
134
+ /**
135
+ * Query the tax authority for real-time invoice status.
136
+ */
137
+ async queryStatus(id, options) {
138
+ return this.http.request({
139
+ method: 'POST',
140
+ path: `/i/v1/invoices/${id}/query-status`,
141
+ requestOptions: options,
142
+ });
143
+ }
144
+ /**
145
+ * Validate invoice data without creating an invoice.
146
+ * Returns validation errors, warnings, and calculated amounts.
147
+ */
148
+ async validate(params, options) {
149
+ return this.http.request({
150
+ method: 'POST',
151
+ path: '/i/v1/invoices/validate',
152
+ body: params,
153
+ requestOptions: options,
154
+ });
155
+ }
156
+ /**
157
+ * Get a temporary download URL for the invoice PDF or XML.
158
+ */
159
+ async download(id, format, options) {
160
+ return this.http.request({
161
+ method: 'GET',
162
+ path: `/i/v1/invoices/${id}/download`,
163
+ query: { format },
164
+ requestOptions: options,
165
+ });
166
+ }
167
+ /**
168
+ * Get invoice statistics and analytics.
169
+ */
170
+ async getStatistics(params, options) {
171
+ return this.http.request({
172
+ method: 'GET',
173
+ path: '/i/v1/invoices/statistics',
174
+ query: params,
175
+ requestOptions: options,
176
+ });
177
+ }
178
+ /**
179
+ * Get reference data needed for invoice creation (currencies, tax rates, etc.).
180
+ */
181
+ async getSetup(options) {
182
+ return this.http.request({
183
+ method: 'GET',
184
+ path: '/i/v1/invoices/setup',
185
+ requestOptions: options,
186
+ });
187
+ }
188
+ }
189
+ //# sourceMappingURL=invoices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../src/services/invoices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { HttpClient } from '../client/http-client.js';
2
+ import type { ApiResponse, RequestOptions } from '../types/common.js';
3
+ import type { Seller, CreateSellerParams, UpdateSellerParams, ListSellersParams, TinVerificationResult, SearchResult } from '../types/party.js';
4
+ /**
5
+ * Service for managing sellers (your business entities that issue invoices).
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const client = new EInvoice({ apiKey: 'sk_test_...' });
10
+ *
11
+ * const seller = await client.sellers.create({
12
+ * partyName: 'Acme Corp',
13
+ * tin: '12345678-0001',
14
+ * sellerType: 'COMPANY',
15
+ * email: 'billing@acme.com',
16
+ * });
17
+ *
18
+ * // Verify TIN with tax authority
19
+ * await client.sellers.verifyTin(seller.data.id);
20
+ * ```
21
+ */
22
+ export declare class SellerService {
23
+ private readonly http;
24
+ /** @internal */
25
+ constructor(http: HttpClient);
26
+ /**
27
+ * Register a new seller.
28
+ */
29
+ create(params: CreateSellerParams, options?: RequestOptions): Promise<ApiResponse<Seller>>;
30
+ /**
31
+ * Get a seller by ID.
32
+ */
33
+ get(id: string, options?: RequestOptions): Promise<ApiResponse<Seller>>;
34
+ /**
35
+ * List sellers with optional filtering and pagination.
36
+ */
37
+ list(params?: ListSellersParams, options?: RequestOptions): Promise<ApiResponse<Seller[]>>;
38
+ /**
39
+ * Update seller details. Note: TIN cannot be changed after creation.
40
+ */
41
+ update(id: string, params: UpdateSellerParams, options?: RequestOptions): Promise<ApiResponse<Seller>>;
42
+ /**
43
+ * Delete a seller. Only sellers with no associated invoices can be deleted.
44
+ */
45
+ delete(id: string, options?: RequestOptions): Promise<ApiResponse<{
46
+ deleted: boolean;
47
+ }>>;
48
+ /**
49
+ * Trigger TIN verification with the tax authority.
50
+ */
51
+ verifyTin(id: string, options?: RequestOptions): Promise<ApiResponse<TinVerificationResult>>;
52
+ /**
53
+ * Check TIN verification status.
54
+ */
55
+ getVerificationStatus(id: string, options?: RequestOptions): Promise<ApiResponse<TinVerificationResult>>;
56
+ /**
57
+ * Search sellers by name or TIN.
58
+ */
59
+ search(query: string, options?: RequestOptions): Promise<ApiResponse<SearchResult>>;
60
+ }
61
+ //# sourceMappingURL=sellers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellers.d.ts","sourceRoot":"","sources":["../../../src/services/sellers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IAEZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,gBAAgB;gBACa,IAAI,EAAE,UAAU;IAE7C;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAShG;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAQ7E;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAShG;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAS5G;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAQ9F;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAQlG;;OAEG;IACG,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAQ9G;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;CAQ1F"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Service for managing sellers (your business entities that issue invoices).
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * const client = new EInvoice({ apiKey: 'sk_test_...' });
7
+ *
8
+ * const seller = await client.sellers.create({
9
+ * partyName: 'Acme Corp',
10
+ * tin: '12345678-0001',
11
+ * sellerType: 'COMPANY',
12
+ * email: 'billing@acme.com',
13
+ * });
14
+ *
15
+ * // Verify TIN with tax authority
16
+ * await client.sellers.verifyTin(seller.data.id);
17
+ * ```
18
+ */
19
+ export class SellerService {
20
+ http;
21
+ /** @internal */
22
+ constructor(http) {
23
+ this.http = http;
24
+ }
25
+ /**
26
+ * Register a new seller.
27
+ */
28
+ async create(params, options) {
29
+ return this.http.request({
30
+ method: 'POST',
31
+ path: '/i/v1/sellers',
32
+ body: params,
33
+ requestOptions: options,
34
+ });
35
+ }
36
+ /**
37
+ * Get a seller by ID.
38
+ */
39
+ async get(id, options) {
40
+ return this.http.request({
41
+ method: 'GET',
42
+ path: `/i/v1/sellers/${id}`,
43
+ requestOptions: options,
44
+ });
45
+ }
46
+ /**
47
+ * List sellers with optional filtering and pagination.
48
+ */
49
+ async list(params, options) {
50
+ return this.http.request({
51
+ method: 'GET',
52
+ path: '/i/v1/sellers',
53
+ query: params,
54
+ requestOptions: options,
55
+ });
56
+ }
57
+ /**
58
+ * Update seller details. Note: TIN cannot be changed after creation.
59
+ */
60
+ async update(id, params, options) {
61
+ return this.http.request({
62
+ method: 'PATCH',
63
+ path: `/i/v1/sellers/${id}`,
64
+ body: params,
65
+ requestOptions: options,
66
+ });
67
+ }
68
+ /**
69
+ * Delete a seller. Only sellers with no associated invoices can be deleted.
70
+ */
71
+ async delete(id, options) {
72
+ return this.http.request({
73
+ method: 'DELETE',
74
+ path: `/i/v1/sellers/${id}`,
75
+ requestOptions: options,
76
+ });
77
+ }
78
+ /**
79
+ * Trigger TIN verification with the tax authority.
80
+ */
81
+ async verifyTin(id, options) {
82
+ return this.http.request({
83
+ method: 'POST',
84
+ path: `/i/v1/sellers/${id}/verify-tax-number`,
85
+ requestOptions: options,
86
+ });
87
+ }
88
+ /**
89
+ * Check TIN verification status.
90
+ */
91
+ async getVerificationStatus(id, options) {
92
+ return this.http.request({
93
+ method: 'GET',
94
+ path: `/i/v1/sellers/${id}/verification-status`,
95
+ requestOptions: options,
96
+ });
97
+ }
98
+ /**
99
+ * Search sellers by name or TIN.
100
+ */
101
+ async search(query, options) {
102
+ return this.http.request({
103
+ method: 'GET',
104
+ path: '/i/v1/sellers/search',
105
+ query: { q: query },
106
+ requestOptions: options,
107
+ });
108
+ }
109
+ }
110
+ //# sourceMappingURL=sellers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellers.js","sourceRoot":"","sources":["../../../src/services/sellers.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,aAAa;IAEK;IAD7B,gBAAgB;IAChB,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAA0B,EAAE,OAAwB;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS;YAC/B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS;YAC/B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC3B,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAA0B,EAAE,OAAwB;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAW;YACjC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,MAAqD;YAC5D,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA0B,EAAE,OAAwB;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS;YAC/B,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC3B,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuB;YAC7C,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC3B,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,OAAwB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,iBAAiB,EAAE,oBAAoB;YAC7C,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,EAAU,EAAE,OAAwB;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,EAAE,sBAAsB;YAC/C,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAwB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;YACnB,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,174 @@
1
+ export type BillingMode = 'SUBSCRIPTION' | 'PAYG' | 'HYBRID';
2
+ export type BillingAccountStatus = 'ACTIVE' | 'SUSPENDED' | 'TRIAL' | 'DELINQUENT';
3
+ export type SubscriptionStatus = 'ACTIVE' | 'CANCELLED' | 'PAST_DUE' | 'UNPAID' | 'PAUSED' | 'EXPIRED';
4
+ export type SubscriptionInterval = 'MONTHLY' | 'YEARLY';
5
+ export type BillingPaymentStatus = 'PENDING' | 'PROCESSING' | 'SUCCEEDED' | 'FAILED' | 'CANCELLED' | 'REFUNDED';
6
+ export type CreditTransactionType = 'PURCHASE' | 'CONSUMPTION' | 'REFUND' | 'BONUS' | 'MANUAL' | 'SUBSCRIPTION' | 'ROLLBACK' | 'PAYG_PURCHASE';
7
+ export type CreditTransactionStatus = 'COMPLETED' | 'PENDING' | 'FAILED' | 'REVERSED';
8
+ export interface BillingAccount {
9
+ id: string;
10
+ organizationId: string;
11
+ billingMode: BillingMode;
12
+ creditBalance: number;
13
+ subscriptionCredits: number;
14
+ paygCredits: number;
15
+ status: BillingAccountStatus;
16
+ trialEndsAt?: string;
17
+ lowBalanceThreshold?: number;
18
+ defaultCurrency: string;
19
+ autoReload?: boolean;
20
+ metadata?: Record<string, unknown>;
21
+ createdAt: string;
22
+ updatedAt: string;
23
+ }
24
+ export interface SubscriptionPlan {
25
+ id: string;
26
+ code: string;
27
+ name: string;
28
+ description?: string;
29
+ isActive: boolean;
30
+ sortOrder: number;
31
+ badge?: string;
32
+ prices?: SubscriptionPlanPrice[];
33
+ metadata?: Record<string, unknown>;
34
+ }
35
+ export interface SubscriptionPlanPrice {
36
+ id: string;
37
+ currency: string;
38
+ interval: SubscriptionInterval;
39
+ amount: number;
40
+ isActive: boolean;
41
+ }
42
+ export interface Subscription {
43
+ id: string;
44
+ billingAccountId: string;
45
+ planId: string;
46
+ planName: string;
47
+ creditsPerPeriod: number;
48
+ price: number;
49
+ currency: string;
50
+ interval: SubscriptionInterval;
51
+ provider: string;
52
+ externalSubscriptionId?: string;
53
+ currentPeriodStart: string;
54
+ currentPeriodEnd: string;
55
+ status: SubscriptionStatus;
56
+ trialEndsAt?: string;
57
+ cancelAtPeriodEnd: boolean;
58
+ totalAmountPaid: number;
59
+ totalCreditsAllocated: number;
60
+ metadata?: Record<string, unknown>;
61
+ createdAt: string;
62
+ updatedAt: string;
63
+ }
64
+ export interface CreditPackage {
65
+ id: string;
66
+ name: string;
67
+ description?: string;
68
+ credits: number;
69
+ bonusCredits: number;
70
+ displayOrder: number;
71
+ isActive: boolean;
72
+ isPublic: boolean;
73
+ isFeatured: boolean;
74
+ discountPercentage?: number;
75
+ validFrom?: string;
76
+ validUntil?: string;
77
+ prices?: CreditPackagePrice[];
78
+ metadata?: Record<string, unknown>;
79
+ }
80
+ export interface CreditPackagePrice {
81
+ id: string;
82
+ currency: string;
83
+ price: number;
84
+ isActive: boolean;
85
+ }
86
+ export interface CreditTransaction {
87
+ id: string;
88
+ billingAccountId: string;
89
+ type: CreditTransactionType;
90
+ status: CreditTransactionStatus;
91
+ amount: number;
92
+ creditPool: 'subscription' | 'payg';
93
+ balanceAfter: number;
94
+ description: string;
95
+ paymentId?: string;
96
+ subscriptionId?: string;
97
+ processedAt?: string;
98
+ metadata?: Record<string, unknown>;
99
+ createdAt: string;
100
+ }
101
+ export interface Payment {
102
+ id: string;
103
+ billingAccountId: string;
104
+ provider: string;
105
+ externalId?: string;
106
+ amount: number;
107
+ currency: string;
108
+ creditsGranted: number;
109
+ status: BillingPaymentStatus;
110
+ checkoutUrl?: string;
111
+ failureReason?: string;
112
+ metadata?: Record<string, unknown>;
113
+ createdAt: string;
114
+ }
115
+ export interface BalanceCheck {
116
+ sufficient: boolean;
117
+ currentBalance: number;
118
+ required: number;
119
+ deficit: number;
120
+ }
121
+ export interface PurchaseCreditsParams {
122
+ packageId: string;
123
+ currency?: string;
124
+ paymentMethod?: string;
125
+ }
126
+ export interface PurchaseResult {
127
+ paymentId: string;
128
+ status: string;
129
+ checkoutUrl?: string;
130
+ creditsGranted?: number;
131
+ expiresAt?: string;
132
+ }
133
+ export interface UsageAnalytics {
134
+ totalSubmissions: number;
135
+ creditsUsed: number;
136
+ costPerSubmission?: number;
137
+ remainingBudget?: number;
138
+ dailyBreakdown?: Array<{
139
+ date: string;
140
+ submissions: number;
141
+ credits: number;
142
+ }>;
143
+ }
144
+ export interface BillingSetup {
145
+ billingAccount: BillingAccount;
146
+ subscription?: Subscription;
147
+ usage?: Record<string, unknown>;
148
+ plans?: SubscriptionPlan[];
149
+ }
150
+ export interface ListPlansParams {
151
+ currency?: string;
152
+ interval?: SubscriptionInterval;
153
+ }
154
+ export interface ListPackagesParams {
155
+ currency?: string;
156
+ isPublic?: boolean;
157
+ }
158
+ export interface ListPaymentsParams {
159
+ page?: number;
160
+ pageSize?: number;
161
+ status?: BillingPaymentStatus;
162
+ }
163
+ export interface ListTransactionsParams {
164
+ page?: number;
165
+ pageSize?: number;
166
+ type?: CreditTransactionType;
167
+ status?: CreditTransactionStatus;
168
+ }
169
+ export interface UsageAnalyticsParams {
170
+ startDate?: string;
171
+ endDate?: string;
172
+ groupBy?: 'day' | 'week' | 'month';
173
+ }
174
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../src/types/billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // ═══════════════════════════════════════════
2
+ // Enums
3
+ // ═══════════════════════════════════════════
4
+ export {};
5
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/types/billing.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,QAAQ;AACR,8CAA8C"}