@epostak/sdk 1.0.0 → 1.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 (46) hide show
  1. package/README.md +94 -396
  2. package/dist/client.d.ts +30 -8
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +28 -11
  5. package/dist/client.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/resources/account.d.ts +25 -0
  9. package/dist/resources/account.d.ts.map +1 -1
  10. package/dist/resources/account.js +25 -0
  11. package/dist/resources/account.js.map +1 -1
  12. package/dist/resources/documents.d.ts +265 -1
  13. package/dist/resources/documents.d.ts.map +1 -1
  14. package/dist/resources/documents.js +265 -1
  15. package/dist/resources/documents.js.map +1 -1
  16. package/dist/resources/extract.d.ts +58 -0
  17. package/dist/resources/extract.d.ts.map +1 -1
  18. package/dist/resources/extract.js +64 -2
  19. package/dist/resources/extract.js.map +1 -1
  20. package/dist/resources/firms.d.ts +104 -0
  21. package/dist/resources/firms.d.ts.map +1 -1
  22. package/dist/resources/firms.js +104 -0
  23. package/dist/resources/firms.js.map +1 -1
  24. package/dist/resources/peppol.d.ts +68 -1
  25. package/dist/resources/peppol.d.ts.map +1 -1
  26. package/dist/resources/peppol.js +68 -1
  27. package/dist/resources/peppol.js.map +1 -1
  28. package/dist/resources/reporting.d.ts +28 -0
  29. package/dist/resources/reporting.d.ts.map +1 -1
  30. package/dist/resources/reporting.js +28 -0
  31. package/dist/resources/reporting.js.map +1 -1
  32. package/dist/resources/webhooks.d.ts +207 -2
  33. package/dist/resources/webhooks.d.ts.map +1 -1
  34. package/dist/resources/webhooks.js +224 -3
  35. package/dist/resources/webhooks.js.map +1 -1
  36. package/dist/types.d.ts +499 -19
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/utils/errors.d.ts +26 -4
  39. package/dist/utils/errors.d.ts.map +1 -1
  40. package/dist/utils/errors.js +26 -4
  41. package/dist/utils/errors.js.map +1 -1
  42. package/dist/utils/request.d.ts +42 -2
  43. package/dist/utils/request.d.ts.map +1 -1
  44. package/dist/utils/request.js +105 -30
  45. package/dist/utils/request.js.map +1 -1
  46. package/package.json +1 -1
@@ -1,5 +1,24 @@
1
1
  import { BaseResource, buildQuery } from "../utils/request.js";
2
+ /**
3
+ * Resource for managing received (inbound) documents in your inbox.
4
+ * Provides methods to list, retrieve, and acknowledge incoming invoices.
5
+ */
2
6
  export class InboxResource extends BaseResource {
7
+ /**
8
+ * List documents in your inbox with optional filtering and pagination.
9
+ *
10
+ * @param params - Optional query parameters for filtering and pagination
11
+ * @returns Paginated list of inbox documents
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Get unprocessed documents
16
+ * const { documents, total } = await client.documents.inbox.list({
17
+ * status: 'RECEIVED',
18
+ * limit: 50,
19
+ * });
20
+ * ```
21
+ */
3
22
  list(params) {
4
23
  return this.request("GET", `/documents/inbox${buildQuery({
5
24
  offset: params?.offset,
@@ -8,12 +27,53 @@ export class InboxResource extends BaseResource {
8
27
  since: params?.since,
9
28
  })}`);
10
29
  }
30
+ /**
31
+ * Retrieve a single inbox document by ID, including the raw UBL XML payload.
32
+ *
33
+ * @param id - Document UUID
34
+ * @returns Document details with the UBL XML payload
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const { document, payload } = await client.documents.inbox.get('doc-uuid');
39
+ * console.log(payload); // UBL XML string
40
+ * ```
41
+ */
11
42
  get(id) {
12
43
  return this.request("GET", `/documents/inbox/${encodeURIComponent(id)}`);
13
44
  }
45
+ /**
46
+ * Acknowledge (mark as processed) a received inbox document.
47
+ * Once acknowledged, the document moves from `RECEIVED` to `ACKNOWLEDGED` status.
48
+ *
49
+ * @param id - Document UUID to acknowledge
50
+ * @returns Acknowledgment confirmation with timestamp
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const ack = await client.documents.inbox.acknowledge('doc-uuid');
55
+ * console.log(ack.acknowledgedAt); // "2026-04-11T12:00:00Z"
56
+ * ```
57
+ */
14
58
  acknowledge(id) {
15
59
  return this.request("POST", `/documents/inbox/${encodeURIComponent(id)}/acknowledge`);
16
60
  }
61
+ /**
62
+ * List documents across all managed firms (integrator endpoint).
63
+ * Only available with integrator API keys (`sk_int_*`).
64
+ *
65
+ * @param params - Optional query parameters including firm_id filter
66
+ * @returns Paginated list of documents across all firms
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // Poll for new documents across all clients
71
+ * const { documents } = await client.documents.inbox.listAll({
72
+ * since: '2026-04-01T00:00:00Z',
73
+ * status: 'RECEIVED',
74
+ * });
75
+ * ```
76
+ */
17
77
  listAll(params) {
18
78
  return this.request("GET", `/documents/inbox/all${buildQuery({
19
79
  offset: params?.offset,
@@ -24,45 +84,249 @@ export class InboxResource extends BaseResource {
24
84
  })}`);
25
85
  }
26
86
  }
87
+ /**
88
+ * Resource for sending, receiving, and managing Peppol e-invoicing documents.
89
+ * This is the primary resource for document operations — sending invoices,
90
+ * checking delivery status, downloading PDFs, and responding to received invoices.
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const client = new EPostak({ apiKey: 'sk_live_xxxxx' });
95
+ *
96
+ * // Send an invoice
97
+ * const result = await client.documents.send({
98
+ * receiverPeppolId: '0245:1234567890',
99
+ * items: [{ description: 'Consulting', quantity: 10, unitPrice: 100, vatRate: 23 }],
100
+ * });
101
+ *
102
+ * // Check delivery status
103
+ * const status = await client.documents.status(result.documentId);
104
+ * ```
105
+ */
27
106
  export class DocumentsResource extends BaseResource {
28
- /** Access received documents */
107
+ /** Sub-resource for managing received (inbound) documents */
29
108
  inbox;
30
109
  constructor(config) {
31
110
  super(config);
32
111
  this.inbox = new InboxResource(config);
33
112
  }
113
+ /**
114
+ * Retrieve a single document by ID.
115
+ *
116
+ * @param id - Document UUID
117
+ * @returns Full document object including parties, lines, and totals
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * const doc = await client.documents.get('doc-uuid');
122
+ * console.log(doc.totals.withVat); // 1230.00
123
+ * ```
124
+ */
34
125
  get(id) {
35
126
  return this.request("GET", `/documents/${encodeURIComponent(id)}`);
36
127
  }
128
+ /**
129
+ * Update a draft document. Only documents that have not been sent yet can be updated.
130
+ * Pass `null` to clear optional fields, or omit them to leave unchanged.
131
+ *
132
+ * @param id - Document UUID of the draft to update
133
+ * @param body - Fields to update
134
+ * @returns The updated document
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * const updated = await client.documents.update('doc-uuid', {
139
+ * dueDate: '2026-05-15',
140
+ * note: 'Updated payment terms',
141
+ * });
142
+ * ```
143
+ */
37
144
  update(id, body) {
38
145
  return this.request("PATCH", `/documents/${encodeURIComponent(id)}`, body);
39
146
  }
147
+ /**
148
+ * Send an invoice via the Peppol network. Accepts either structured JSON
149
+ * (the API generates UBL XML) or pre-built UBL XML.
150
+ *
151
+ * @param body - Invoice data as JSON fields or raw UBL XML
152
+ * @returns Document ID, Peppol message ID, and status confirmation
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * // Send using JSON (API generates UBL)
157
+ * const result = await client.documents.send({
158
+ * receiverPeppolId: '0245:1234567890',
159
+ * invoiceNumber: 'FV-2026-042',
160
+ * items: [
161
+ * { description: 'Web development', quantity: 40, unit: 'HUR', unitPrice: 80, vatRate: 23 },
162
+ * ],
163
+ * });
164
+ *
165
+ * // Send using raw UBL XML
166
+ * const result = await client.documents.send({
167
+ * receiverPeppolId: '0245:1234567890',
168
+ * xml: '<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">...</Invoice>',
169
+ * });
170
+ * ```
171
+ */
40
172
  send(body) {
41
173
  return this.request("POST", "/documents/send", body);
42
174
  }
175
+ /**
176
+ * Get the current delivery status and full status history of a document.
177
+ * Use this to track whether a sent invoice was delivered, acknowledged, or failed.
178
+ *
179
+ * @param id - Document UUID
180
+ * @returns Status details including history timeline and delivery timestamps
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const status = await client.documents.status('doc-uuid');
185
+ * console.log(status.status); // "DELIVERED"
186
+ * console.log(status.deliveredAt); // "2026-04-11T12:30:00Z"
187
+ * ```
188
+ */
43
189
  status(id) {
44
190
  return this.request("GET", `/documents/${encodeURIComponent(id)}/status`);
45
191
  }
192
+ /**
193
+ * Retrieve delivery evidence for a sent document, including AS4 receipts,
194
+ * Message Level Response (MLR), and Invoice Response from the buyer.
195
+ *
196
+ * @param id - Document UUID
197
+ * @returns Evidence records (AS4 receipt, MLR, Invoice Response)
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const evidence = await client.documents.evidence('doc-uuid');
202
+ * if (evidence.invoiceResponse?.status === 'AP') {
203
+ * console.log('Invoice was accepted by the buyer');
204
+ * }
205
+ * ```
206
+ */
46
207
  evidence(id) {
47
208
  return this.request("GET", `/documents/${encodeURIComponent(id)}/evidence`);
48
209
  }
210
+ /**
211
+ * Download the PDF visualization of a document.
212
+ *
213
+ * @param id - Document UUID
214
+ * @returns PDF file content as a Buffer
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * import { writeFileSync } from 'fs';
219
+ *
220
+ * const pdfBuffer = await client.documents.pdf('doc-uuid');
221
+ * writeFileSync('invoice.pdf', pdfBuffer);
222
+ * ```
223
+ */
49
224
  async pdf(id) {
50
225
  const res = await this.request("GET", `/documents/${encodeURIComponent(id)}/pdf`, undefined, { rawResponse: true });
51
226
  return Buffer.from(await res.arrayBuffer());
52
227
  }
228
+ /**
229
+ * Download the UBL XML of a document.
230
+ *
231
+ * @param id - Document UUID
232
+ * @returns UBL 2.1 XML content as a string
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const xml = await client.documents.ubl('doc-uuid');
237
+ * console.log(xml); // "<?xml version="1.0"?><Invoice ...>...</Invoice>"
238
+ * ```
239
+ */
53
240
  async ubl(id) {
54
241
  const res = await this.request("GET", `/documents/${encodeURIComponent(id)}/ubl`, undefined, { rawResponse: true });
55
242
  return res.text();
56
243
  }
244
+ /**
245
+ * Send an Invoice Response (accept, reject, or query) for a received document.
246
+ * This sends a Peppol Invoice Response message back to the supplier.
247
+ *
248
+ * @param id - Document UUID of the received invoice
249
+ * @param body - Response status and optional note
250
+ * @returns Confirmation with the response status and timestamp
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * // Accept an invoice
255
+ * await client.documents.respond('doc-uuid', { status: 'AP' });
256
+ *
257
+ * // Reject with a reason
258
+ * await client.documents.respond('doc-uuid', {
259
+ * status: 'RE',
260
+ * note: 'Incorrect VAT rate applied',
261
+ * });
262
+ * ```
263
+ */
57
264
  respond(id, body) {
58
265
  return this.request("POST", `/documents/${encodeURIComponent(id)}/respond`, body);
59
266
  }
267
+ /**
268
+ * Validate a document without sending it. Checks Peppol BIS 3.0 compliance
269
+ * and returns warnings. For JSON input, also returns the generated UBL XML preview.
270
+ *
271
+ * @param body - Document data to validate (same format as `send()`)
272
+ * @returns Validation result with warnings and optional UBL preview
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * const result = await client.documents.validate({
277
+ * receiverPeppolId: '0245:1234567890',
278
+ * items: [{ description: 'Test', quantity: 1, unitPrice: 100, vatRate: 23 }],
279
+ * });
280
+ * if (!result.valid) {
281
+ * console.error('Validation failed:', result.warnings);
282
+ * }
283
+ * ```
284
+ */
60
285
  validate(body) {
61
286
  return this.request("POST", "/documents/validate", body);
62
287
  }
288
+ /**
289
+ * Check if a Peppol receiver is registered and supports the target document type
290
+ * before sending. Use this to avoid sending to non-existent participants.
291
+ *
292
+ * @param body - Receiver Peppol ID and optional document type to check
293
+ * @returns Preflight result with registration and capability info
294
+ *
295
+ * @example
296
+ * ```typescript
297
+ * const check = await client.documents.preflight({
298
+ * receiverPeppolId: '0245:1234567890',
299
+ * });
300
+ * if (!check.registered) {
301
+ * console.error('Receiver is not on the Peppol network');
302
+ * }
303
+ * ```
304
+ */
63
305
  preflight(body) {
64
306
  return this.request("POST", "/documents/preflight", body);
65
307
  }
308
+ /**
309
+ * Convert between JSON and UBL XML formats without sending.
310
+ * Useful for previewing the UBL output or parsing received XML into structured data.
311
+ *
312
+ * @param body - Conversion request with direction and input data
313
+ * @returns Converted output (UBL XML string or parsed JSON object)
314
+ *
315
+ * @example
316
+ * ```typescript
317
+ * // JSON to UBL
318
+ * const { result: ublXml } = await client.documents.convert({
319
+ * direction: 'json_to_ubl',
320
+ * data: { invoiceNumber: 'FV-001', items: [...] },
321
+ * });
322
+ *
323
+ * // UBL to JSON
324
+ * const { result: parsed } = await client.documents.convert({
325
+ * direction: 'ubl_to_json',
326
+ * xml: '<Invoice>...</Invoice>',
327
+ * });
328
+ * ```
329
+ */
66
330
  convert(body) {
67
331
  return this.request("POST", "/documents/convert", body);
68
332
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/resources/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/resources/documents.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,65 @@
1
1
  import { BaseResource } from "../utils/request.js";
2
2
  import type { ExtractResult, BatchExtractResult } from "../types.js";
3
+ /**
4
+ * Resource for AI-powered data extraction from PDF invoices and scanned images.
5
+ * Extracts structured invoice data (parties, line items, totals) and generates
6
+ * UBL 2.1 XML that can be sent via Peppol.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { readFileSync } from 'fs';
11
+ *
12
+ * const pdf = readFileSync('invoice.pdf');
13
+ * const result = await client.extract.single(pdf, 'application/pdf', 'invoice.pdf');
14
+ * console.log(result.confidence); // 0.95
15
+ * console.log(result.ubl_xml); // Generated UBL XML
16
+ * ```
17
+ */
3
18
  export declare class ExtractResource extends BaseResource {
19
+ /**
20
+ * Extract structured data from a single PDF or image file.
21
+ * Uses AI-powered OCR to identify invoice fields, line items, parties, and totals,
22
+ * then generates UBL 2.1 XML from the extracted data.
23
+ *
24
+ * @param file - File content as a Buffer or Blob
25
+ * @param mimeType - MIME type of the file (e.g. `"application/pdf"`, `"image/png"`)
26
+ * @param fileName - Original file name for reference (defaults to `"document"`)
27
+ * @returns Extracted data, generated UBL XML, and confidence score
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import { readFileSync } from 'fs';
32
+ *
33
+ * const pdf = readFileSync('invoice.pdf');
34
+ * const result = await client.extract.single(pdf, 'application/pdf', 'invoice.pdf');
35
+ * if (result.confidence > 0.8) {
36
+ * // Use the generated UBL to send via Peppol
37
+ * await client.documents.send({
38
+ * receiverPeppolId: '0245:1234567890',
39
+ * xml: result.ubl_xml,
40
+ * });
41
+ * }
42
+ * ```
43
+ */
4
44
  single(file: Buffer | Blob, mimeType: string, fileName?: string): Promise<ExtractResult>;
45
+ /**
46
+ * Extract structured data from multiple PDF or image files in a single request.
47
+ * Each file is processed independently — individual failures don't affect others.
48
+ *
49
+ * @param files - Array of files with their MIME types and optional file names
50
+ * @returns Batch result with individual outcomes per file and success/failure counts
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * import { readFileSync } from 'fs';
55
+ *
56
+ * const result = await client.extract.batch([
57
+ * { file: readFileSync('invoice1.pdf'), mimeType: 'application/pdf', fileName: 'invoice1.pdf' },
58
+ * { file: readFileSync('invoice2.pdf'), mimeType: 'application/pdf', fileName: 'invoice2.pdf' },
59
+ * ]);
60
+ * console.log(`${result.successful}/${result.total} extracted successfully`);
61
+ * ```
62
+ */
5
63
  batch(files: Array<{
6
64
  file: Buffer | Blob;
7
65
  mimeType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/resources/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAO5F,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQ/G"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/resources/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CACJ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAa,GACpB,OAAO,CAAC,aAAa,CAAC;IAUzB;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CACH,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACzE,OAAO,CAAC,kBAAkB,CAAC;CAW/B"}
@@ -1,15 +1,77 @@
1
1
  import { BaseResource } from "../utils/request.js";
2
+ /**
3
+ * Resource for AI-powered data extraction from PDF invoices and scanned images.
4
+ * Extracts structured invoice data (parties, line items, totals) and generates
5
+ * UBL 2.1 XML that can be sent via Peppol.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { readFileSync } from 'fs';
10
+ *
11
+ * const pdf = readFileSync('invoice.pdf');
12
+ * const result = await client.extract.single(pdf, 'application/pdf', 'invoice.pdf');
13
+ * console.log(result.confidence); // 0.95
14
+ * console.log(result.ubl_xml); // Generated UBL XML
15
+ * ```
16
+ */
2
17
  export class ExtractResource extends BaseResource {
18
+ /**
19
+ * Extract structured data from a single PDF or image file.
20
+ * Uses AI-powered OCR to identify invoice fields, line items, parties, and totals,
21
+ * then generates UBL 2.1 XML from the extracted data.
22
+ *
23
+ * @param file - File content as a Buffer or Blob
24
+ * @param mimeType - MIME type of the file (e.g. `"application/pdf"`, `"image/png"`)
25
+ * @param fileName - Original file name for reference (defaults to `"document"`)
26
+ * @returns Extracted data, generated UBL XML, and confidence score
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { readFileSync } from 'fs';
31
+ *
32
+ * const pdf = readFileSync('invoice.pdf');
33
+ * const result = await client.extract.single(pdf, 'application/pdf', 'invoice.pdf');
34
+ * if (result.confidence > 0.8) {
35
+ * // Use the generated UBL to send via Peppol
36
+ * await client.documents.send({
37
+ * receiverPeppolId: '0245:1234567890',
38
+ * xml: result.ubl_xml,
39
+ * });
40
+ * }
41
+ * ```
42
+ */
3
43
  single(file, mimeType, fileName = "document") {
4
44
  const form = new FormData();
5
- const blob = file instanceof Blob ? file : new Blob([new Uint8Array(file)], { type: mimeType });
45
+ const blob = file instanceof Blob
46
+ ? file
47
+ : new Blob([new Uint8Array(file)], { type: mimeType });
6
48
  form.append("file", blob, fileName);
7
49
  return this.request("POST", "/extract", form);
8
50
  }
51
+ /**
52
+ * Extract structured data from multiple PDF or image files in a single request.
53
+ * Each file is processed independently — individual failures don't affect others.
54
+ *
55
+ * @param files - Array of files with their MIME types and optional file names
56
+ * @returns Batch result with individual outcomes per file and success/failure counts
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * import { readFileSync } from 'fs';
61
+ *
62
+ * const result = await client.extract.batch([
63
+ * { file: readFileSync('invoice1.pdf'), mimeType: 'application/pdf', fileName: 'invoice1.pdf' },
64
+ * { file: readFileSync('invoice2.pdf'), mimeType: 'application/pdf', fileName: 'invoice2.pdf' },
65
+ * ]);
66
+ * console.log(`${result.successful}/${result.total} extracted successfully`);
67
+ * ```
68
+ */
9
69
  batch(files) {
10
70
  const form = new FormData();
11
71
  for (const { file, mimeType, fileName } of files) {
12
- const blob = file instanceof Blob ? file : new Blob([new Uint8Array(file)], { type: mimeType });
72
+ const blob = file instanceof Blob
73
+ ? file
74
+ : new Blob([new Uint8Array(file)], { type: mimeType });
13
75
  form.append("files", blob, fileName ?? "document");
14
76
  }
15
77
  return this.request("POST", "/extract/batch", form);
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/resources/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,MAAM,CAAC,IAAmB,EAAE,QAAgB,EAAE,QAAQ,GAAG,UAAU;QACjE,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAA0E;QAC9E,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/resources/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CACJ,IAAmB,EACnB,QAAgB,EAChB,QAAQ,GAAG,UAAU;QAErB,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GACR,IAAI,YAAY,IAAI;YAClB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CACH,KAA0E;QAE1E,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,GACR,IAAI,YAAY,IAAI;gBAClB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,14 +1,118 @@
1
1
  import { BaseResource } from "../utils/request.js";
2
2
  import type { FirmSummary, FirmDetail, FirmDocumentsParams, InboxListResponse, PeppolIdentifierResponse, AssignFirmRequest, AssignFirmResponse, BatchAssignFirmsRequest, BatchAssignFirmsResponse } from "../types.js";
3
+ /**
4
+ * Resource for managing firms (companies) associated with your account.
5
+ * Integrators use this to assign client firms, view their documents,
6
+ * and register Peppol identifiers.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // List all managed firms
11
+ * const firms = await client.firms.list();
12
+ *
13
+ * // Assign a new firm by ICO
14
+ * const { firm } = await client.firms.assign({ ico: '12345678' });
15
+ * ```
16
+ */
3
17
  export declare class FirmsResource extends BaseResource {
18
+ /**
19
+ * List all firms associated with the current account.
20
+ * For integrator keys, returns all assigned client firms.
21
+ *
22
+ * @returns Array of firm summaries
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const firms = await client.firms.list();
27
+ * firms.forEach(f => console.log(f.name, f.peppolStatus));
28
+ * ```
29
+ */
4
30
  list(): Promise<FirmSummary[]>;
31
+ /**
32
+ * Get detailed information about a specific firm, including tax IDs,
33
+ * address, and all registered Peppol identifiers.
34
+ *
35
+ * @param id - Firm UUID
36
+ * @returns Detailed firm information
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const firm = await client.firms.get('firm-uuid');
41
+ * console.log(firm.icDph); // "SK2020123456"
42
+ * ```
43
+ */
5
44
  get(id: string): Promise<FirmDetail>;
45
+ /**
46
+ * List documents belonging to a specific firm.
47
+ * Useful for integrators to view a client's document history.
48
+ *
49
+ * @param id - Firm UUID
50
+ * @param params - Optional pagination and direction filter
51
+ * @returns Paginated list of the firm's documents
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const { documents } = await client.firms.documents('firm-uuid', {
56
+ * direction: 'inbound',
57
+ * limit: 100,
58
+ * });
59
+ * ```
60
+ */
6
61
  documents(id: string, params?: FirmDocumentsParams): Promise<InboxListResponse>;
62
+ /**
63
+ * Register a new Peppol identifier for a firm. This enables the firm
64
+ * to send and receive documents on the Peppol network under this identifier.
65
+ *
66
+ * @param id - Firm UUID
67
+ * @param peppolId - Peppol identifier with scheme and value
68
+ * @returns The registered identifier details
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const result = await client.firms.registerPeppolId('firm-uuid', {
73
+ * scheme: '0245',
74
+ * identifier: '1234567890',
75
+ * });
76
+ * console.log(result.peppolId); // "0245:1234567890"
77
+ * ```
78
+ */
7
79
  registerPeppolId(id: string, peppolId: {
8
80
  scheme: string;
9
81
  identifier: string;
10
82
  }): Promise<PeppolIdentifierResponse>;
83
+ /**
84
+ * Assign a firm to the integrator account by its Slovak ICO.
85
+ * Once assigned, you can send/receive documents on behalf of this firm.
86
+ *
87
+ * @param body - Request containing the firm's ICO (8-digit Slovak business registration number)
88
+ * @returns The assigned firm details and status
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const { firm } = await client.firms.assign({ ico: '12345678' });
93
+ * console.log(firm.id); // Use this UUID for subsequent operations
94
+ * ```
95
+ */
11
96
  assign(body: AssignFirmRequest): Promise<AssignFirmResponse>;
97
+ /**
98
+ * Assign multiple firms at once by their Slovak ICOs.
99
+ * Each ICO is processed independently — individual failures don't affect others.
100
+ * Maximum 50 ICOs per request.
101
+ *
102
+ * @param body - Request containing an array of ICOs
103
+ * @returns Individual results for each ICO (success or error)
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const { results } = await client.firms.assignBatch({
108
+ * icos: ['12345678', '87654321', '11223344'],
109
+ * });
110
+ * results.forEach(r => {
111
+ * if (r.error) console.error(`${r.ico}: ${r.message}`);
112
+ * else console.log(`${r.ico}: ${r.status}`);
113
+ * });
114
+ * ```
115
+ */
12
116
  assignBatch(body: BatchAssignFirmsRequest): Promise<BatchAssignFirmsResponse>;
13
117
  }
14
118
  //# sourceMappingURL=firms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"firms.d.ts","sourceRoot":"","sources":["../../src/resources/firms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EAEV,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAc,SAAQ,YAAY;IACvC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKpC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpC,SAAS,CACP,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAW7B,gBAAgB,CACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,wBAAwB,CAAC;IAQpC,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI5D,WAAW,CACT,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;CAGrC"}
1
+ {"version":3,"file":"firms.d.ts","sourceRoot":"","sources":["../../src/resources/firms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EAEV,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKpC;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CACP,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAW7B;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,wBAAwB,CAAC;IAQpC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI5D;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CACT,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;CAGrC"}