@factucat/sdk 0.2.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.
@@ -0,0 +1,623 @@
1
+ import type { CustomerCreateInput, CustomerListQuery, CustomerRecord, DraftAddItemInput, DraftCreateInput, DraftListItem, DraftListQuery, DraftRecord, DraftSetMetaInput, DraftSetReceiverInput, DraftStampInput, DraftUpdateItemInput, InvoiceListItem, InvoiceListQuery, InvoicePdfOutput, InvoiceRecord, InvoiceXmlOutput, PublicApiErrorCode, PublicMe } from '@factucat/public-api-contracts';
2
+ export declare class FactuCatApiError extends Error {
3
+ readonly code: PublicApiErrorCode;
4
+ readonly requestId: string;
5
+ readonly retryable: boolean;
6
+ readonly status: number;
7
+ constructor(input: {
8
+ code: PublicApiErrorCode;
9
+ message: string;
10
+ requestId: string;
11
+ retryable: boolean;
12
+ status: number;
13
+ });
14
+ }
15
+ type RequestOptions = {
16
+ signal?: AbortSignal;
17
+ idempotencyKey?: string;
18
+ };
19
+ export type FactuCatSdkOptions = {
20
+ baseUrl: string;
21
+ apiKey: string;
22
+ userAgent?: string;
23
+ timeoutMs?: number;
24
+ fetch?: typeof globalThis.fetch;
25
+ };
26
+ export declare class FactuCatSdk {
27
+ private readonly apiKey;
28
+ private readonly baseUrl;
29
+ private readonly fetchImpl;
30
+ private readonly timeoutMs;
31
+ private readonly userAgent?;
32
+ constructor(options: FactuCatSdkOptions);
33
+ getMe(options?: RequestOptions): Promise<PublicMe>;
34
+ listCustomers(input?: CustomerListQuery, options?: RequestOptions): Promise<{
35
+ id: string;
36
+ userId: string;
37
+ legalName: string;
38
+ rfc: string;
39
+ postalCode: string;
40
+ taxRegime: string;
41
+ sendInvoices: boolean;
42
+ invoiceLanguage: "es" | "en";
43
+ currency: "MXN" | "USD" | "EUR";
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ fiscalResidence?: string | undefined;
47
+ taxId?: string | undefined;
48
+ email?: string | undefined;
49
+ whatsappPhone?: string | undefined;
50
+ }[]>;
51
+ createCustomer(input: CustomerCreateInput, options?: RequestOptions): Promise<{
52
+ id: string;
53
+ userId: string;
54
+ legalName: string;
55
+ rfc: string;
56
+ postalCode: string;
57
+ taxRegime: string;
58
+ sendInvoices: boolean;
59
+ invoiceLanguage: "es" | "en";
60
+ currency: "MXN" | "USD" | "EUR";
61
+ createdAt: string;
62
+ updatedAt: string;
63
+ fiscalResidence?: string | undefined;
64
+ taxId?: string | undefined;
65
+ email?: string | undefined;
66
+ whatsappPhone?: string | undefined;
67
+ }>;
68
+ getCustomer(id: string, options?: RequestOptions): Promise<{
69
+ id: string;
70
+ userId: string;
71
+ legalName: string;
72
+ rfc: string;
73
+ postalCode: string;
74
+ taxRegime: string;
75
+ sendInvoices: boolean;
76
+ invoiceLanguage: "es" | "en";
77
+ currency: "MXN" | "USD" | "EUR";
78
+ createdAt: string;
79
+ updatedAt: string;
80
+ fiscalResidence?: string | undefined;
81
+ taxId?: string | undefined;
82
+ email?: string | undefined;
83
+ whatsappPhone?: string | undefined;
84
+ }>;
85
+ listDrafts(input?: DraftListQuery, options?: RequestOptions): Promise<{
86
+ id: string;
87
+ folio: string;
88
+ receiverLegalName: string;
89
+ currency: "MXN" | "USD" | "EUR";
90
+ total: number;
91
+ createdAt: string;
92
+ updatedAt: string;
93
+ status: "error" | "draft";
94
+ receiverEmail?: string | undefined;
95
+ issuedAt?: string | undefined;
96
+ errorMessage?: string | undefined;
97
+ }[]>;
98
+ createDraft(input?: DraftCreateInput, options?: RequestOptions): Promise<{
99
+ id: string;
100
+ userId: string;
101
+ receiverRfc: string;
102
+ receiverLegalName: string;
103
+ receiverPostalCode: string;
104
+ receiverTaxRegime: string;
105
+ receiverInvoiceLanguage: "es" | "en";
106
+ status: "error" | "draft" | "issued" | "cancelled";
107
+ cfdiType: string;
108
+ cfdiUse: string;
109
+ currency: "MXN" | "USD" | "EUR";
110
+ exchangeRate: number;
111
+ subtotal: number;
112
+ vatRate: 0 | 0.1 | 0.16;
113
+ taxTotal: number;
114
+ total: number;
115
+ pdfLanguage: "es" | "en";
116
+ createdAt: string;
117
+ updatedAt: string;
118
+ items: {
119
+ id: string;
120
+ invoiceId: string;
121
+ position: number;
122
+ unitCode: string;
123
+ description: string;
124
+ quantity: number;
125
+ unitPrice: number;
126
+ amount: number;
127
+ vatRate: 0 | 0.1 | 0.16;
128
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
129
+ productCode?: string | undefined;
130
+ vatSource?: "default" | "manual" | "inferred" | undefined;
131
+ vatReason?: string | undefined;
132
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
133
+ isrWithholdingReason?: string | undefined;
134
+ suggestedProductCode?: string | undefined;
135
+ suggestionConfidence?: number | undefined;
136
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
137
+ }[];
138
+ customerId?: string | undefined;
139
+ receiverFiscalResidence?: string | undefined;
140
+ receiverTaxId?: string | undefined;
141
+ receiverEmail?: string | undefined;
142
+ serie?: string | undefined;
143
+ folio?: string | undefined;
144
+ satUuid?: string | undefined;
145
+ paymentMethod?: string | undefined;
146
+ paymentForm?: string | undefined;
147
+ exchangeRateDate?: string | undefined;
148
+ customerNotes?: string | undefined;
149
+ errorMessage?: string | undefined;
150
+ issuedAt?: string | undefined;
151
+ cancelledAt?: string | undefined;
152
+ }>;
153
+ getDraft(id: string, options?: RequestOptions): Promise<{
154
+ id: string;
155
+ userId: string;
156
+ receiverRfc: string;
157
+ receiverLegalName: string;
158
+ receiverPostalCode: string;
159
+ receiverTaxRegime: string;
160
+ receiverInvoiceLanguage: "es" | "en";
161
+ status: "error" | "draft" | "issued" | "cancelled";
162
+ cfdiType: string;
163
+ cfdiUse: string;
164
+ currency: "MXN" | "USD" | "EUR";
165
+ exchangeRate: number;
166
+ subtotal: number;
167
+ vatRate: 0 | 0.1 | 0.16;
168
+ taxTotal: number;
169
+ total: number;
170
+ pdfLanguage: "es" | "en";
171
+ createdAt: string;
172
+ updatedAt: string;
173
+ items: {
174
+ id: string;
175
+ invoiceId: string;
176
+ position: number;
177
+ unitCode: string;
178
+ description: string;
179
+ quantity: number;
180
+ unitPrice: number;
181
+ amount: number;
182
+ vatRate: 0 | 0.1 | 0.16;
183
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
184
+ productCode?: string | undefined;
185
+ vatSource?: "default" | "manual" | "inferred" | undefined;
186
+ vatReason?: string | undefined;
187
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
188
+ isrWithholdingReason?: string | undefined;
189
+ suggestedProductCode?: string | undefined;
190
+ suggestionConfidence?: number | undefined;
191
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
192
+ }[];
193
+ customerId?: string | undefined;
194
+ receiverFiscalResidence?: string | undefined;
195
+ receiverTaxId?: string | undefined;
196
+ receiverEmail?: string | undefined;
197
+ serie?: string | undefined;
198
+ folio?: string | undefined;
199
+ satUuid?: string | undefined;
200
+ paymentMethod?: string | undefined;
201
+ paymentForm?: string | undefined;
202
+ exchangeRateDate?: string | undefined;
203
+ customerNotes?: string | undefined;
204
+ errorMessage?: string | undefined;
205
+ issuedAt?: string | undefined;
206
+ cancelledAt?: string | undefined;
207
+ }>;
208
+ setDraftReceiver(id: string, input: DraftSetReceiverInput, options?: RequestOptions): Promise<{
209
+ id: string;
210
+ userId: string;
211
+ receiverRfc: string;
212
+ receiverLegalName: string;
213
+ receiverPostalCode: string;
214
+ receiverTaxRegime: string;
215
+ receiverInvoiceLanguage: "es" | "en";
216
+ status: "error" | "draft" | "issued" | "cancelled";
217
+ cfdiType: string;
218
+ cfdiUse: string;
219
+ currency: "MXN" | "USD" | "EUR";
220
+ exchangeRate: number;
221
+ subtotal: number;
222
+ vatRate: 0 | 0.1 | 0.16;
223
+ taxTotal: number;
224
+ total: number;
225
+ pdfLanguage: "es" | "en";
226
+ createdAt: string;
227
+ updatedAt: string;
228
+ items: {
229
+ id: string;
230
+ invoiceId: string;
231
+ position: number;
232
+ unitCode: string;
233
+ description: string;
234
+ quantity: number;
235
+ unitPrice: number;
236
+ amount: number;
237
+ vatRate: 0 | 0.1 | 0.16;
238
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
239
+ productCode?: string | undefined;
240
+ vatSource?: "default" | "manual" | "inferred" | undefined;
241
+ vatReason?: string | undefined;
242
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
243
+ isrWithholdingReason?: string | undefined;
244
+ suggestedProductCode?: string | undefined;
245
+ suggestionConfidence?: number | undefined;
246
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
247
+ }[];
248
+ customerId?: string | undefined;
249
+ receiverFiscalResidence?: string | undefined;
250
+ receiverTaxId?: string | undefined;
251
+ receiverEmail?: string | undefined;
252
+ serie?: string | undefined;
253
+ folio?: string | undefined;
254
+ satUuid?: string | undefined;
255
+ paymentMethod?: string | undefined;
256
+ paymentForm?: string | undefined;
257
+ exchangeRateDate?: string | undefined;
258
+ customerNotes?: string | undefined;
259
+ errorMessage?: string | undefined;
260
+ issuedAt?: string | undefined;
261
+ cancelledAt?: string | undefined;
262
+ }>;
263
+ setDraftMeta(id: string, input: DraftSetMetaInput, options?: RequestOptions): Promise<{
264
+ id: string;
265
+ userId: string;
266
+ receiverRfc: string;
267
+ receiverLegalName: string;
268
+ receiverPostalCode: string;
269
+ receiverTaxRegime: string;
270
+ receiverInvoiceLanguage: "es" | "en";
271
+ status: "error" | "draft" | "issued" | "cancelled";
272
+ cfdiType: string;
273
+ cfdiUse: string;
274
+ currency: "MXN" | "USD" | "EUR";
275
+ exchangeRate: number;
276
+ subtotal: number;
277
+ vatRate: 0 | 0.1 | 0.16;
278
+ taxTotal: number;
279
+ total: number;
280
+ pdfLanguage: "es" | "en";
281
+ createdAt: string;
282
+ updatedAt: string;
283
+ items: {
284
+ id: string;
285
+ invoiceId: string;
286
+ position: number;
287
+ unitCode: string;
288
+ description: string;
289
+ quantity: number;
290
+ unitPrice: number;
291
+ amount: number;
292
+ vatRate: 0 | 0.1 | 0.16;
293
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
294
+ productCode?: string | undefined;
295
+ vatSource?: "default" | "manual" | "inferred" | undefined;
296
+ vatReason?: string | undefined;
297
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
298
+ isrWithholdingReason?: string | undefined;
299
+ suggestedProductCode?: string | undefined;
300
+ suggestionConfidence?: number | undefined;
301
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
302
+ }[];
303
+ customerId?: string | undefined;
304
+ receiverFiscalResidence?: string | undefined;
305
+ receiverTaxId?: string | undefined;
306
+ receiverEmail?: string | undefined;
307
+ serie?: string | undefined;
308
+ folio?: string | undefined;
309
+ satUuid?: string | undefined;
310
+ paymentMethod?: string | undefined;
311
+ paymentForm?: string | undefined;
312
+ exchangeRateDate?: string | undefined;
313
+ customerNotes?: string | undefined;
314
+ errorMessage?: string | undefined;
315
+ issuedAt?: string | undefined;
316
+ cancelledAt?: string | undefined;
317
+ }>;
318
+ addDraftItem(id: string, input: DraftAddItemInput, options?: RequestOptions): Promise<{
319
+ id: string;
320
+ userId: string;
321
+ receiverRfc: string;
322
+ receiverLegalName: string;
323
+ receiverPostalCode: string;
324
+ receiverTaxRegime: string;
325
+ receiverInvoiceLanguage: "es" | "en";
326
+ status: "error" | "draft" | "issued" | "cancelled";
327
+ cfdiType: string;
328
+ cfdiUse: string;
329
+ currency: "MXN" | "USD" | "EUR";
330
+ exchangeRate: number;
331
+ subtotal: number;
332
+ vatRate: 0 | 0.1 | 0.16;
333
+ taxTotal: number;
334
+ total: number;
335
+ pdfLanguage: "es" | "en";
336
+ createdAt: string;
337
+ updatedAt: string;
338
+ items: {
339
+ id: string;
340
+ invoiceId: string;
341
+ position: number;
342
+ unitCode: string;
343
+ description: string;
344
+ quantity: number;
345
+ unitPrice: number;
346
+ amount: number;
347
+ vatRate: 0 | 0.1 | 0.16;
348
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
349
+ productCode?: string | undefined;
350
+ vatSource?: "default" | "manual" | "inferred" | undefined;
351
+ vatReason?: string | undefined;
352
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
353
+ isrWithholdingReason?: string | undefined;
354
+ suggestedProductCode?: string | undefined;
355
+ suggestionConfidence?: number | undefined;
356
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
357
+ }[];
358
+ customerId?: string | undefined;
359
+ receiverFiscalResidence?: string | undefined;
360
+ receiverTaxId?: string | undefined;
361
+ receiverEmail?: string | undefined;
362
+ serie?: string | undefined;
363
+ folio?: string | undefined;
364
+ satUuid?: string | undefined;
365
+ paymentMethod?: string | undefined;
366
+ paymentForm?: string | undefined;
367
+ exchangeRateDate?: string | undefined;
368
+ customerNotes?: string | undefined;
369
+ errorMessage?: string | undefined;
370
+ issuedAt?: string | undefined;
371
+ cancelledAt?: string | undefined;
372
+ }>;
373
+ updateDraftItem(draftId: string, itemId: string, input: DraftUpdateItemInput, options?: RequestOptions): Promise<{
374
+ id: string;
375
+ userId: string;
376
+ receiverRfc: string;
377
+ receiverLegalName: string;
378
+ receiverPostalCode: string;
379
+ receiverTaxRegime: string;
380
+ receiverInvoiceLanguage: "es" | "en";
381
+ status: "error" | "draft" | "issued" | "cancelled";
382
+ cfdiType: string;
383
+ cfdiUse: string;
384
+ currency: "MXN" | "USD" | "EUR";
385
+ exchangeRate: number;
386
+ subtotal: number;
387
+ vatRate: 0 | 0.1 | 0.16;
388
+ taxTotal: number;
389
+ total: number;
390
+ pdfLanguage: "es" | "en";
391
+ createdAt: string;
392
+ updatedAt: string;
393
+ items: {
394
+ id: string;
395
+ invoiceId: string;
396
+ position: number;
397
+ unitCode: string;
398
+ description: string;
399
+ quantity: number;
400
+ unitPrice: number;
401
+ amount: number;
402
+ vatRate: 0 | 0.1 | 0.16;
403
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
404
+ productCode?: string | undefined;
405
+ vatSource?: "default" | "manual" | "inferred" | undefined;
406
+ vatReason?: string | undefined;
407
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
408
+ isrWithholdingReason?: string | undefined;
409
+ suggestedProductCode?: string | undefined;
410
+ suggestionConfidence?: number | undefined;
411
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
412
+ }[];
413
+ customerId?: string | undefined;
414
+ receiverFiscalResidence?: string | undefined;
415
+ receiverTaxId?: string | undefined;
416
+ receiverEmail?: string | undefined;
417
+ serie?: string | undefined;
418
+ folio?: string | undefined;
419
+ satUuid?: string | undefined;
420
+ paymentMethod?: string | undefined;
421
+ paymentForm?: string | undefined;
422
+ exchangeRateDate?: string | undefined;
423
+ customerNotes?: string | undefined;
424
+ errorMessage?: string | undefined;
425
+ issuedAt?: string | undefined;
426
+ cancelledAt?: string | undefined;
427
+ }>;
428
+ removeDraftItem(draftId: string, itemId: string, options?: RequestOptions): Promise<{
429
+ id: string;
430
+ userId: string;
431
+ receiverRfc: string;
432
+ receiverLegalName: string;
433
+ receiverPostalCode: string;
434
+ receiverTaxRegime: string;
435
+ receiverInvoiceLanguage: "es" | "en";
436
+ status: "error" | "draft" | "issued" | "cancelled";
437
+ cfdiType: string;
438
+ cfdiUse: string;
439
+ currency: "MXN" | "USD" | "EUR";
440
+ exchangeRate: number;
441
+ subtotal: number;
442
+ vatRate: 0 | 0.1 | 0.16;
443
+ taxTotal: number;
444
+ total: number;
445
+ pdfLanguage: "es" | "en";
446
+ createdAt: string;
447
+ updatedAt: string;
448
+ items: {
449
+ id: string;
450
+ invoiceId: string;
451
+ position: number;
452
+ unitCode: string;
453
+ description: string;
454
+ quantity: number;
455
+ unitPrice: number;
456
+ amount: number;
457
+ vatRate: 0 | 0.1 | 0.16;
458
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
459
+ productCode?: string | undefined;
460
+ vatSource?: "default" | "manual" | "inferred" | undefined;
461
+ vatReason?: string | undefined;
462
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
463
+ isrWithholdingReason?: string | undefined;
464
+ suggestedProductCode?: string | undefined;
465
+ suggestionConfidence?: number | undefined;
466
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
467
+ }[];
468
+ customerId?: string | undefined;
469
+ receiverFiscalResidence?: string | undefined;
470
+ receiverTaxId?: string | undefined;
471
+ receiverEmail?: string | undefined;
472
+ serie?: string | undefined;
473
+ folio?: string | undefined;
474
+ satUuid?: string | undefined;
475
+ paymentMethod?: string | undefined;
476
+ paymentForm?: string | undefined;
477
+ exchangeRateDate?: string | undefined;
478
+ customerNotes?: string | undefined;
479
+ errorMessage?: string | undefined;
480
+ issuedAt?: string | undefined;
481
+ cancelledAt?: string | undefined;
482
+ }>;
483
+ discardDraft(id: string, options?: RequestOptions): Promise<{
484
+ id: string;
485
+ }>;
486
+ stampDraft(id: string, input?: DraftStampInput, options?: RequestOptions): Promise<{
487
+ id: string;
488
+ userId: string;
489
+ receiverRfc: string;
490
+ receiverLegalName: string;
491
+ receiverPostalCode: string;
492
+ receiverTaxRegime: string;
493
+ receiverInvoiceLanguage: "es" | "en";
494
+ status: "error" | "draft" | "issued" | "cancelled";
495
+ cfdiType: string;
496
+ cfdiUse: string;
497
+ currency: "MXN" | "USD" | "EUR";
498
+ exchangeRate: number;
499
+ subtotal: number;
500
+ vatRate: 0 | 0.1 | 0.16;
501
+ taxTotal: number;
502
+ total: number;
503
+ pdfLanguage: "es" | "en";
504
+ createdAt: string;
505
+ updatedAt: string;
506
+ items: {
507
+ id: string;
508
+ invoiceId: string;
509
+ position: number;
510
+ unitCode: string;
511
+ description: string;
512
+ quantity: number;
513
+ unitPrice: number;
514
+ amount: number;
515
+ vatRate: 0 | 0.1 | 0.16;
516
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
517
+ productCode?: string | undefined;
518
+ vatSource?: "default" | "manual" | "inferred" | undefined;
519
+ vatReason?: string | undefined;
520
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
521
+ isrWithholdingReason?: string | undefined;
522
+ suggestedProductCode?: string | undefined;
523
+ suggestionConfidence?: number | undefined;
524
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
525
+ }[];
526
+ customerId?: string | undefined;
527
+ receiverFiscalResidence?: string | undefined;
528
+ receiverTaxId?: string | undefined;
529
+ receiverEmail?: string | undefined;
530
+ serie?: string | undefined;
531
+ folio?: string | undefined;
532
+ satUuid?: string | undefined;
533
+ paymentMethod?: string | undefined;
534
+ paymentForm?: string | undefined;
535
+ exchangeRateDate?: string | undefined;
536
+ customerNotes?: string | undefined;
537
+ errorMessage?: string | undefined;
538
+ issuedAt?: string | undefined;
539
+ cancelledAt?: string | undefined;
540
+ }>;
541
+ listInvoices(input?: InvoiceListQuery, options?: RequestOptions): Promise<{
542
+ id: string;
543
+ folio: string;
544
+ status: "error" | "draft" | "issued" | "cancelled";
545
+ receiverLegalName: string;
546
+ currency: "MXN" | "USD" | "EUR";
547
+ total: number;
548
+ createdAt: string;
549
+ updatedAt: string;
550
+ receiverEmail?: string | undefined;
551
+ issuedAt?: string | undefined;
552
+ errorMessage?: string | undefined;
553
+ }[]>;
554
+ getInvoice(id: string, options?: RequestOptions): Promise<{
555
+ id: string;
556
+ userId: string;
557
+ receiverRfc: string;
558
+ receiverLegalName: string;
559
+ receiverPostalCode: string;
560
+ receiverTaxRegime: string;
561
+ receiverInvoiceLanguage: "es" | "en";
562
+ status: "error" | "draft" | "issued" | "cancelled";
563
+ cfdiType: string;
564
+ cfdiUse: string;
565
+ currency: "MXN" | "USD" | "EUR";
566
+ exchangeRate: number;
567
+ subtotal: number;
568
+ vatRate: 0 | 0.1 | 0.16;
569
+ taxTotal: number;
570
+ total: number;
571
+ pdfLanguage: "es" | "en";
572
+ createdAt: string;
573
+ updatedAt: string;
574
+ items: {
575
+ id: string;
576
+ invoiceId: string;
577
+ position: number;
578
+ unitCode: string;
579
+ description: string;
580
+ quantity: number;
581
+ unitPrice: number;
582
+ amount: number;
583
+ vatRate: 0 | 0.1 | 0.16;
584
+ isrWithholdingRate: 0 | 0.1 | 0.0125;
585
+ productCode?: string | undefined;
586
+ vatSource?: "default" | "manual" | "inferred" | undefined;
587
+ vatReason?: string | undefined;
588
+ isrWithholdingSource?: "default" | "manual" | "inferred" | undefined;
589
+ isrWithholdingReason?: string | undefined;
590
+ suggestedProductCode?: string | undefined;
591
+ suggestionConfidence?: number | undefined;
592
+ suggestionSource?: "manual" | "ai" | "memory" | "review" | undefined;
593
+ }[];
594
+ customerId?: string | undefined;
595
+ receiverFiscalResidence?: string | undefined;
596
+ receiverTaxId?: string | undefined;
597
+ receiverEmail?: string | undefined;
598
+ serie?: string | undefined;
599
+ folio?: string | undefined;
600
+ satUuid?: string | undefined;
601
+ paymentMethod?: string | undefined;
602
+ paymentForm?: string | undefined;
603
+ exchangeRateDate?: string | undefined;
604
+ customerNotes?: string | undefined;
605
+ errorMessage?: string | undefined;
606
+ issuedAt?: string | undefined;
607
+ cancelledAt?: string | undefined;
608
+ }>;
609
+ downloadInvoiceXml(id: string, options?: RequestOptions): Promise<{
610
+ fileName: string;
611
+ mimeType: "application/xml";
612
+ base64: string;
613
+ }>;
614
+ downloadInvoicePdf(id: string, options?: RequestOptions): Promise<{
615
+ fileName: string;
616
+ mimeType: "application/pdf";
617
+ base64: string;
618
+ }>;
619
+ private request;
620
+ }
621
+ export declare function createFactuCatSdk(options: FactuCatSdkOptions): FactuCatSdk;
622
+ export type { CustomerCreateInput, CustomerListQuery, CustomerRecord, DraftAddItemInput, DraftCreateInput, DraftListItem, DraftListQuery, DraftRecord, DraftSetMetaInput, DraftSetReceiverInput, DraftStampInput, DraftUpdateItemInput, InvoiceListItem, InvoiceListQuery, InvoicePdfOutput, InvoiceRecord, InvoiceXmlOutput, };
623
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,225 @@
1
+ import { z } from 'zod';
2
+ import { createPublicSuccessEnvelopeSchema, customerCreateInputSchema, customerListQuerySchema, customerRecordSchema, draftAddItemInputSchema, draftCreateInputSchema, draftListItemSchema, draftListQuerySchema, draftRecordSchema, draftSetMetaInputSchema, draftSetReceiverInputSchema, draftStampInputSchema, draftUpdateItemInputSchema, invoiceListItemSchema, invoiceListQuerySchema, invoicePdfOutputSchema, invoiceRecordSchema, invoiceXmlOutputSchema, publicErrorEnvelopeSchema, publicMeSchema, } from '@factucat/public-api-contracts';
3
+ export class FactuCatApiError extends Error {
4
+ code;
5
+ requestId;
6
+ retryable;
7
+ status;
8
+ constructor(input) {
9
+ super(input.message);
10
+ this.name = 'FactuCatApiError';
11
+ this.code = input.code;
12
+ this.requestId = input.requestId;
13
+ this.retryable = input.retryable;
14
+ this.status = input.status;
15
+ }
16
+ }
17
+ function buildQuery(params) {
18
+ const search = new URLSearchParams();
19
+ for (const [key, value] of Object.entries(params)) {
20
+ if (value === undefined) {
21
+ continue;
22
+ }
23
+ search.set(key, String(value));
24
+ }
25
+ const serialized = search.toString();
26
+ return serialized.length > 0 ? `?${serialized}` : '';
27
+ }
28
+ export class FactuCatSdk {
29
+ apiKey;
30
+ baseUrl;
31
+ fetchImpl;
32
+ timeoutMs;
33
+ userAgent;
34
+ constructor(options) {
35
+ this.apiKey = options.apiKey;
36
+ this.baseUrl = options.baseUrl.replace(/\/+$/, '');
37
+ this.fetchImpl = options.fetch ?? fetch;
38
+ this.timeoutMs = options.timeoutMs ?? 30_000;
39
+ this.userAgent = options.userAgent;
40
+ }
41
+ async getMe(options) {
42
+ return this.request('/api/v1/me', {
43
+ method: 'GET',
44
+ responseSchema: createPublicSuccessEnvelopeSchema(publicMeSchema),
45
+ ...options,
46
+ });
47
+ }
48
+ async listCustomers(input = {}, options) {
49
+ const query = customerListQuerySchema.parse(input);
50
+ return this.request(`/api/v1/customers${buildQuery(query)}`, {
51
+ method: 'GET',
52
+ responseSchema: createPublicSuccessEnvelopeSchema(z.array(customerRecordSchema)),
53
+ ...options,
54
+ });
55
+ }
56
+ async createCustomer(input, options) {
57
+ return this.request('/api/v1/customers', {
58
+ method: 'POST',
59
+ body: customerCreateInputSchema.parse(input),
60
+ responseSchema: createPublicSuccessEnvelopeSchema(customerRecordSchema),
61
+ ...options,
62
+ });
63
+ }
64
+ async getCustomer(id, options) {
65
+ return this.request(`/api/v1/customers/${id}`, {
66
+ method: 'GET',
67
+ responseSchema: createPublicSuccessEnvelopeSchema(customerRecordSchema),
68
+ ...options,
69
+ });
70
+ }
71
+ async listDrafts(input = {}, options) {
72
+ const query = draftListQuerySchema.parse(input);
73
+ return this.request(`/api/v1/invoice-drafts${buildQuery(query)}`, {
74
+ method: 'GET',
75
+ responseSchema: createPublicSuccessEnvelopeSchema(z.array(draftListItemSchema)),
76
+ ...options,
77
+ });
78
+ }
79
+ async createDraft(input = {}, options) {
80
+ return this.request('/api/v1/invoice-drafts', {
81
+ method: 'POST',
82
+ body: draftCreateInputSchema.parse(input),
83
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
84
+ ...options,
85
+ });
86
+ }
87
+ async getDraft(id, options) {
88
+ return this.request(`/api/v1/invoice-drafts/${id}`, {
89
+ method: 'GET',
90
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
91
+ ...options,
92
+ });
93
+ }
94
+ async setDraftReceiver(id, input, options) {
95
+ return this.request(`/api/v1/invoice-drafts/${id}/receiver`, {
96
+ method: 'PATCH',
97
+ body: draftSetReceiverInputSchema.parse(input),
98
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
99
+ ...options,
100
+ });
101
+ }
102
+ async setDraftMeta(id, input, options) {
103
+ return this.request(`/api/v1/invoice-drafts/${id}/meta`, {
104
+ method: 'PATCH',
105
+ body: draftSetMetaInputSchema.parse(input),
106
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
107
+ ...options,
108
+ });
109
+ }
110
+ async addDraftItem(id, input, options) {
111
+ return this.request(`/api/v1/invoice-drafts/${id}/items`, {
112
+ method: 'POST',
113
+ body: draftAddItemInputSchema.parse(input),
114
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
115
+ ...options,
116
+ });
117
+ }
118
+ async updateDraftItem(draftId, itemId, input, options) {
119
+ return this.request(`/api/v1/invoice-drafts/${draftId}/items/${itemId}`, {
120
+ method: 'PATCH',
121
+ body: draftUpdateItemInputSchema.parse(input),
122
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
123
+ ...options,
124
+ });
125
+ }
126
+ async removeDraftItem(draftId, itemId, options) {
127
+ return this.request(`/api/v1/invoice-drafts/${draftId}/items/${itemId}`, {
128
+ method: 'DELETE',
129
+ responseSchema: createPublicSuccessEnvelopeSchema(draftRecordSchema),
130
+ ...options,
131
+ });
132
+ }
133
+ async discardDraft(id, options) {
134
+ return this.request(`/api/v1/invoice-drafts/${id}`, {
135
+ method: 'DELETE',
136
+ responseSchema: createPublicSuccessEnvelopeSchema(z.object({ id: z.uuid() })),
137
+ ...options,
138
+ });
139
+ }
140
+ async stampDraft(id, input = {}, options) {
141
+ return this.request(`/api/v1/invoice-drafts/${id}/stamp`, {
142
+ method: 'POST',
143
+ body: draftStampInputSchema.parse(input),
144
+ responseSchema: createPublicSuccessEnvelopeSchema(invoiceRecordSchema),
145
+ ...options,
146
+ });
147
+ }
148
+ async listInvoices(input = {}, options) {
149
+ const query = invoiceListQuerySchema.parse(input);
150
+ return this.request(`/api/v1/invoices${buildQuery(query)}`, {
151
+ method: 'GET',
152
+ responseSchema: createPublicSuccessEnvelopeSchema(z.array(invoiceListItemSchema)),
153
+ ...options,
154
+ });
155
+ }
156
+ async getInvoice(id, options) {
157
+ return this.request(`/api/v1/invoices/${id}`, {
158
+ method: 'GET',
159
+ responseSchema: createPublicSuccessEnvelopeSchema(invoiceRecordSchema),
160
+ ...options,
161
+ });
162
+ }
163
+ async downloadInvoiceXml(id, options) {
164
+ return this.request(`/api/v1/invoices/${id}/xml`, {
165
+ method: 'GET',
166
+ responseSchema: createPublicSuccessEnvelopeSchema(invoiceXmlOutputSchema),
167
+ ...options,
168
+ });
169
+ }
170
+ async downloadInvoicePdf(id, options) {
171
+ return this.request(`/api/v1/invoices/${id}/pdf`, {
172
+ method: 'GET',
173
+ responseSchema: createPublicSuccessEnvelopeSchema(invoicePdfOutputSchema),
174
+ ...options,
175
+ });
176
+ }
177
+ async request(path, input) {
178
+ const controller = new AbortController();
179
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
180
+ const signal = input.signal
181
+ ? AbortSignal.any([input.signal, controller.signal])
182
+ : controller.signal;
183
+ try {
184
+ const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
185
+ method: input.method,
186
+ headers: {
187
+ 'content-type': 'application/json',
188
+ 'x-api-key': this.apiKey,
189
+ ...(this.userAgent ? { 'user-agent': this.userAgent } : {}),
190
+ ...(input.idempotencyKey
191
+ ? { 'idempotency-key': input.idempotencyKey }
192
+ : {}),
193
+ },
194
+ body: input.body === undefined ? undefined : JSON.stringify(input.body),
195
+ signal,
196
+ });
197
+ const json = await response.json().catch(() => ({}));
198
+ if (!response.ok) {
199
+ const parsed = publicErrorEnvelopeSchema.safeParse(json);
200
+ if (parsed.success) {
201
+ throw new FactuCatApiError({
202
+ ...parsed.data.error,
203
+ status: response.status,
204
+ });
205
+ }
206
+ throw new FactuCatApiError({
207
+ code: 'internal_error',
208
+ message: `Respuesta inválida del servidor (${response.status}).`,
209
+ requestId: 'unknown',
210
+ retryable: response.status >= 500,
211
+ status: response.status,
212
+ });
213
+ }
214
+ const parsed = input.responseSchema.parse(json);
215
+ return parsed.data;
216
+ }
217
+ finally {
218
+ clearTimeout(timeout);
219
+ }
220
+ }
221
+ }
222
+ export function createFactuCatSdk(options) {
223
+ return new FactuCatSdk(options);
224
+ }
225
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@factucat/sdk",
3
+ "version": "0.2.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "dependencies": {
21
+ "zod": "^4.3.6",
22
+ "@factucat/public-api-contracts": "0.2.0"
23
+ },
24
+ "scripts": {
25
+ "build": "tsc -p tsconfig.build.json",
26
+ "lint": "eslint \"src/**/*.ts\" --ignore-pattern \"src/**/*.d.ts\""
27
+ }
28
+ }