@factucat/public-api-contracts 0.2.1 → 0.4.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.
@@ -5,7 +5,21 @@ export declare const invoiceStatusSchema: z.ZodEnum<{
5
5
  issued: "issued";
6
6
  cancelled: "cancelled";
7
7
  }>;
8
- export declare const invoiceVatRateSchema: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
8
+ export declare const cfdiExportacionSchema: z.ZodEnum<{
9
+ "01": "01";
10
+ "02": "02";
11
+ "03": "03";
12
+ "04": "04";
13
+ }>;
14
+ export declare const invoiceVatTreatmentSchema: z.ZodEnum<{
15
+ iva_16: "iva_16";
16
+ iva_8: "iva_8";
17
+ tasa_0: "tasa_0";
18
+ exento: "exento";
19
+ no_objeto: "no_objeto";
20
+ }>;
21
+ export declare const invoiceVatTreatmentLabels: Record<z.infer<typeof invoiceVatTreatmentSchema>, string>;
22
+ export declare const invoiceVatRateSchema: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
9
23
  export declare const invoiceIsrWithholdingRateSchema: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.0125>, z.ZodLiteral<0.1>]>;
10
24
  export declare const invoiceItemTaxSourceSchema: z.ZodEnum<{
11
25
  default: "default";
@@ -27,10 +41,12 @@ export declare const invoiceListQuerySchema: z.ZodObject<{
27
41
  cancelled: "cancelled";
28
42
  }>>;
29
43
  limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
44
+ offset: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
30
45
  }, z.core.$strip>;
31
46
  export declare const draftListQuerySchema: z.ZodObject<{
32
47
  query: z.ZodOptional<z.ZodString>;
33
48
  limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
49
+ offset: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
34
50
  }, z.core.$strip>;
35
51
  export declare const invoiceItemRecordSchema: z.ZodObject<{
36
52
  id: z.ZodUUID;
@@ -42,7 +58,29 @@ export declare const invoiceItemRecordSchema: z.ZodObject<{
42
58
  quantity: z.ZodNumber;
43
59
  unitPrice: z.ZodNumber;
44
60
  amount: z.ZodNumber;
45
- vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
61
+ objetoImp: z.ZodOptional<z.ZodEnum<{
62
+ "01": "01";
63
+ "02": "02";
64
+ "03": "03";
65
+ "04": "04";
66
+ "05": "05";
67
+ "06": "06";
68
+ "07": "07";
69
+ "08": "08";
70
+ }>>;
71
+ vatKind: z.ZodOptional<z.ZodEnum<{
72
+ exento: "exento";
73
+ none: "none";
74
+ tasa: "tasa";
75
+ }>>;
76
+ vatTreatment: z.ZodOptional<z.ZodEnum<{
77
+ iva_16: "iva_16";
78
+ iva_8: "iva_8";
79
+ tasa_0: "tasa_0";
80
+ exento: "exento";
81
+ no_objeto: "no_objeto";
82
+ }>>;
83
+ vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
46
84
  vatSource: z.ZodOptional<z.ZodEnum<{
47
85
  default: "default";
48
86
  manual: "manual";
@@ -65,12 +103,14 @@ export declare const invoiceItemRecordSchema: z.ZodObject<{
65
103
  review: "review";
66
104
  }>>;
67
105
  }, z.core.$strip>;
106
+ export declare const invoiceIssueDateInputSchema: z.ZodString;
68
107
  export declare const draftCreateInputSchema: z.ZodObject<{
108
+ issueDate: z.ZodOptional<z.ZodString>;
69
109
  customerId: z.ZodOptional<z.ZodUUID>;
70
110
  receiverRfc: z.ZodOptional<z.ZodString>;
71
111
  receiverLegalName: z.ZodOptional<z.ZodString>;
72
- receiverPostalCode: z.ZodOptional<z.ZodString>;
73
- receiverTaxRegime: z.ZodOptional<z.ZodString>;
112
+ receiverPostalCode: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<string, string | number>>, z.ZodString>>;
113
+ receiverTaxRegime: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<string, string | number>>, z.ZodString>>;
74
114
  receiverFiscalResidence: z.ZodOptional<z.ZodString>;
75
115
  receiverTaxId: z.ZodOptional<z.ZodString>;
76
116
  receiverEmail: z.ZodOptional<z.ZodEmail>;
@@ -83,14 +123,22 @@ export declare const draftCreateInputSchema: z.ZodObject<{
83
123
  USD: "USD";
84
124
  EUR: "EUR";
85
125
  }>>;
126
+ exchangeRate: z.ZodOptional<z.ZodNumber>;
127
+ exchangeRateDate: z.ZodOptional<z.ZodISODateTime>;
86
128
  cfdiUse: z.ZodOptional<z.ZodString>;
129
+ exportacion: z.ZodOptional<z.ZodEnum<{
130
+ "01": "01";
131
+ "02": "02";
132
+ "03": "03";
133
+ "04": "04";
134
+ }>>;
87
135
  }, z.core.$strip>;
88
136
  export declare const draftSetReceiverInputSchema: z.ZodObject<{
89
137
  customerId: z.ZodNullable<z.ZodOptional<z.ZodUUID>>;
90
138
  receiverRfc: z.ZodOptional<z.ZodString>;
91
139
  receiverLegalName: z.ZodOptional<z.ZodString>;
92
- receiverPostalCode: z.ZodOptional<z.ZodString>;
93
- receiverTaxRegime: z.ZodOptional<z.ZodString>;
140
+ receiverPostalCode: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<string, string | number>>, z.ZodString>>;
141
+ receiverTaxRegime: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<string, string | number>>, z.ZodString>>;
94
142
  receiverFiscalResidence: z.ZodNullable<z.ZodOptional<z.ZodString>>;
95
143
  receiverTaxId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
96
144
  receiverEmail: z.ZodNullable<z.ZodOptional<z.ZodEmail>>;
@@ -100,9 +148,16 @@ export declare const draftSetReceiverInputSchema: z.ZodObject<{
100
148
  }>>;
101
149
  }, z.core.$strip>;
102
150
  export declare const draftSetMetaInputSchema: z.ZodObject<{
151
+ issueDate: z.ZodOptional<z.ZodString>;
103
152
  cfdiUse: z.ZodOptional<z.ZodString>;
153
+ exportacion: z.ZodOptional<z.ZodEnum<{
154
+ "01": "01";
155
+ "02": "02";
156
+ "03": "03";
157
+ "04": "04";
158
+ }>>;
104
159
  paymentMethod: z.ZodOptional<z.ZodString>;
105
- paymentForm: z.ZodOptional<z.ZodString>;
160
+ paymentForm: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<string, string | number>>, z.ZodString>>;
106
161
  currency: z.ZodOptional<z.ZodEnum<{
107
162
  MXN: "MXN";
108
163
  USD: "USD";
@@ -110,7 +165,7 @@ export declare const draftSetMetaInputSchema: z.ZodObject<{
110
165
  }>>;
111
166
  exchangeRate: z.ZodOptional<z.ZodNumber>;
112
167
  exchangeRateDate: z.ZodOptional<z.ZodISODateTime>;
113
- vatRate: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>>;
168
+ vatRate: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>>;
114
169
  customerNotes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
115
170
  pdfLanguage: z.ZodOptional<z.ZodEnum<{
116
171
  es: "es";
@@ -124,7 +179,14 @@ export declare const draftAddItemInputSchema: z.ZodObject<{
124
179
  description: z.ZodString;
125
180
  quantity: z.ZodDefault<z.ZodNumber>;
126
181
  unitPrice: z.ZodNumber;
127
- vatRate: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>>;
182
+ vatTreatment: z.ZodOptional<z.ZodEnum<{
183
+ iva_16: "iva_16";
184
+ iva_8: "iva_8";
185
+ tasa_0: "tasa_0";
186
+ exento: "exento";
187
+ no_objeto: "no_objeto";
188
+ }>>;
189
+ vatRate: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>>;
128
190
  vatSource: z.ZodOptional<z.ZodEnum<{
129
191
  default: "default";
130
192
  manual: "manual";
@@ -152,7 +214,14 @@ export declare const draftUpdateItemInputSchema: z.ZodObject<{
152
214
  description: z.ZodOptional<z.ZodString>;
153
215
  quantity: z.ZodOptional<z.ZodNumber>;
154
216
  unitPrice: z.ZodOptional<z.ZodNumber>;
155
- vatRate: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>>;
217
+ vatTreatment: z.ZodOptional<z.ZodEnum<{
218
+ iva_16: "iva_16";
219
+ iva_8: "iva_8";
220
+ tasa_0: "tasa_0";
221
+ exento: "exento";
222
+ no_objeto: "no_objeto";
223
+ }>>;
224
+ vatRate: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>>;
156
225
  vatSource: z.ZodOptional<z.ZodEnum<{
157
226
  default: "default";
158
227
  manual: "manual";
@@ -173,12 +242,80 @@ export declare const draftUpdateItemInputSchema: z.ZodObject<{
173
242
  review: "review";
174
243
  }>>;
175
244
  }, z.core.$strip>;
245
+ export declare const draftStampCfdiRelacionadosSchema: z.ZodObject<{
246
+ tipo_relacion: z.ZodString;
247
+ cfdi_relacionado: z.ZodArray<z.ZodUUID>;
248
+ }, z.core.$strip>;
249
+ export declare const draftStampSubstitutionSchema: z.ZodObject<{
250
+ cancel_original: z.ZodLiteral<true>;
251
+ original_invoice_id: z.ZodOptional<z.ZodUUID>;
252
+ external_original_sat_uuid: z.ZodOptional<z.ZodUUID>;
253
+ external_original_receiver_rfc: z.ZodOptional<z.ZodString>;
254
+ external_original_total: z.ZodOptional<z.ZodString>;
255
+ }, z.core.$strip>;
176
256
  export declare const draftStampInputSchema: z.ZodObject<{
257
+ issueDate: z.ZodOptional<z.ZodString>;
177
258
  skipIssuedEmailSend: z.ZodOptional<z.ZodBoolean>;
178
259
  sendToCustomerContacts: z.ZodOptional<z.ZodBoolean>;
179
260
  sendCustomerEmail: z.ZodOptional<z.ZodBoolean>;
180
261
  sendCustomerWhatsApp: z.ZodOptional<z.ZodBoolean>;
181
262
  allowPaidStampOverdraft: z.ZodOptional<z.ZodBoolean>;
263
+ cfdi_relacionados: z.ZodOptional<z.ZodObject<{
264
+ tipo_relacion: z.ZodString;
265
+ cfdi_relacionado: z.ZodArray<z.ZodUUID>;
266
+ }, z.core.$strip>>;
267
+ substitution: z.ZodOptional<z.ZodObject<{
268
+ cancel_original: z.ZodLiteral<true>;
269
+ original_invoice_id: z.ZodOptional<z.ZodUUID>;
270
+ external_original_sat_uuid: z.ZodOptional<z.ZodUUID>;
271
+ external_original_receiver_rfc: z.ZodOptional<z.ZodString>;
272
+ external_original_total: z.ZodOptional<z.ZodString>;
273
+ }, z.core.$strip>>;
274
+ }, z.core.$strip>;
275
+ export declare const invoiceCancelReasonSchema: z.ZodEnum<{
276
+ "01": "01";
277
+ "02": "02";
278
+ "03": "03";
279
+ "04": "04";
280
+ }>;
281
+ export declare const invoiceCancelInputSchema: z.ZodObject<{
282
+ reason: z.ZodEnum<{
283
+ "01": "01";
284
+ "02": "02";
285
+ "03": "03";
286
+ "04": "04";
287
+ }>;
288
+ replacementInvoiceId: z.ZodOptional<z.ZodUUID>;
289
+ }, z.core.$strip>;
290
+ export declare const externalInvoiceCancelInputSchema: z.ZodObject<{
291
+ satUuid: z.ZodUUID;
292
+ reason: z.ZodEnum<{
293
+ "01": "01";
294
+ "02": "02";
295
+ "03": "03";
296
+ "04": "04";
297
+ }>;
298
+ receiverRfc: z.ZodString;
299
+ total: z.ZodString;
300
+ replacementInvoiceId: z.ZodOptional<z.ZodUUID>;
301
+ replacementSatUuid: z.ZodOptional<z.ZodUUID>;
302
+ }, z.core.$strip>;
303
+ export declare const invoiceCancelOutputSchema: z.ZodObject<{
304
+ status: z.ZodEnum<{
305
+ cancelled: "cancelled";
306
+ not_confirmed: "not_confirmed";
307
+ }>;
308
+ evidence: z.ZodUnknown;
309
+ invoice: z.ZodOptional<z.ZodUnknown>;
310
+ }, z.core.$strip>;
311
+ export declare const externalInvoiceCancelOutputSchema: z.ZodObject<{
312
+ status: z.ZodEnum<{
313
+ cancelled: "cancelled";
314
+ not_confirmed: "not_confirmed";
315
+ }>;
316
+ satUuid: z.ZodString;
317
+ replacementSatUuid: z.ZodOptional<z.ZodString>;
318
+ evidence: z.ZodUnknown;
182
319
  }, z.core.$strip>;
183
320
  export declare const invoiceRecordSchema: z.ZodObject<{
184
321
  id: z.ZodUUID;
@@ -206,6 +343,12 @@ export declare const invoiceRecordSchema: z.ZodObject<{
206
343
  }>;
207
344
  cfdiType: z.ZodString;
208
345
  cfdiUse: z.ZodString;
346
+ exportacion: z.ZodEnum<{
347
+ "01": "01";
348
+ "02": "02";
349
+ "03": "03";
350
+ "04": "04";
351
+ }>;
209
352
  paymentMethod: z.ZodOptional<z.ZodString>;
210
353
  paymentForm: z.ZodOptional<z.ZodString>;
211
354
  currency: z.ZodEnum<{
@@ -216,7 +359,7 @@ export declare const invoiceRecordSchema: z.ZodObject<{
216
359
  exchangeRate: z.ZodNumber;
217
360
  exchangeRateDate: z.ZodOptional<z.ZodISODateTime>;
218
361
  subtotal: z.ZodNumber;
219
- vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
362
+ vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
220
363
  taxTotal: z.ZodNumber;
221
364
  total: z.ZodNumber;
222
365
  customerNotes: z.ZodOptional<z.ZodString>;
@@ -225,6 +368,7 @@ export declare const invoiceRecordSchema: z.ZodObject<{
225
368
  en: "en";
226
369
  }>;
227
370
  errorMessage: z.ZodOptional<z.ZodString>;
371
+ issueDate: z.ZodOptional<z.ZodISODateTime>;
228
372
  issuedAt: z.ZodOptional<z.ZodISODateTime>;
229
373
  cancelledAt: z.ZodOptional<z.ZodISODateTime>;
230
374
  createdAt: z.ZodISODateTime;
@@ -239,7 +383,29 @@ export declare const invoiceRecordSchema: z.ZodObject<{
239
383
  quantity: z.ZodNumber;
240
384
  unitPrice: z.ZodNumber;
241
385
  amount: z.ZodNumber;
242
- vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
386
+ objetoImp: z.ZodOptional<z.ZodEnum<{
387
+ "01": "01";
388
+ "02": "02";
389
+ "03": "03";
390
+ "04": "04";
391
+ "05": "05";
392
+ "06": "06";
393
+ "07": "07";
394
+ "08": "08";
395
+ }>>;
396
+ vatKind: z.ZodOptional<z.ZodEnum<{
397
+ exento: "exento";
398
+ none: "none";
399
+ tasa: "tasa";
400
+ }>>;
401
+ vatTreatment: z.ZodOptional<z.ZodEnum<{
402
+ iva_16: "iva_16";
403
+ iva_8: "iva_8";
404
+ tasa_0: "tasa_0";
405
+ exento: "exento";
406
+ no_objeto: "no_objeto";
407
+ }>>;
408
+ vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
243
409
  vatSource: z.ZodOptional<z.ZodEnum<{
244
410
  default: "default";
245
411
  manual: "manual";
@@ -289,6 +455,12 @@ export declare const draftRecordSchema: z.ZodObject<{
289
455
  }>;
290
456
  cfdiType: z.ZodString;
291
457
  cfdiUse: z.ZodString;
458
+ exportacion: z.ZodEnum<{
459
+ "01": "01";
460
+ "02": "02";
461
+ "03": "03";
462
+ "04": "04";
463
+ }>;
292
464
  paymentMethod: z.ZodOptional<z.ZodString>;
293
465
  paymentForm: z.ZodOptional<z.ZodString>;
294
466
  currency: z.ZodEnum<{
@@ -299,7 +471,7 @@ export declare const draftRecordSchema: z.ZodObject<{
299
471
  exchangeRate: z.ZodNumber;
300
472
  exchangeRateDate: z.ZodOptional<z.ZodISODateTime>;
301
473
  subtotal: z.ZodNumber;
302
- vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
474
+ vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
303
475
  taxTotal: z.ZodNumber;
304
476
  total: z.ZodNumber;
305
477
  customerNotes: z.ZodOptional<z.ZodString>;
@@ -308,6 +480,7 @@ export declare const draftRecordSchema: z.ZodObject<{
308
480
  en: "en";
309
481
  }>;
310
482
  errorMessage: z.ZodOptional<z.ZodString>;
483
+ issueDate: z.ZodOptional<z.ZodISODateTime>;
311
484
  issuedAt: z.ZodOptional<z.ZodISODateTime>;
312
485
  cancelledAt: z.ZodOptional<z.ZodISODateTime>;
313
486
  createdAt: z.ZodISODateTime;
@@ -322,7 +495,29 @@ export declare const draftRecordSchema: z.ZodObject<{
322
495
  quantity: z.ZodNumber;
323
496
  unitPrice: z.ZodNumber;
324
497
  amount: z.ZodNumber;
325
- vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
498
+ objetoImp: z.ZodOptional<z.ZodEnum<{
499
+ "01": "01";
500
+ "02": "02";
501
+ "03": "03";
502
+ "04": "04";
503
+ "05": "05";
504
+ "06": "06";
505
+ "07": "07";
506
+ "08": "08";
507
+ }>>;
508
+ vatKind: z.ZodOptional<z.ZodEnum<{
509
+ exento: "exento";
510
+ none: "none";
511
+ tasa: "tasa";
512
+ }>>;
513
+ vatTreatment: z.ZodOptional<z.ZodEnum<{
514
+ iva_16: "iva_16";
515
+ iva_8: "iva_8";
516
+ tasa_0: "tasa_0";
517
+ exento: "exento";
518
+ no_objeto: "no_objeto";
519
+ }>>;
520
+ vatRate: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<0.08>, z.ZodLiteral<0.1>, z.ZodLiteral<0.16>]>;
326
521
  vatSource: z.ZodOptional<z.ZodEnum<{
327
522
  default: "default";
328
523
  manual: "manual";
@@ -406,6 +601,10 @@ export type DraftSetMetaInput = z.infer<typeof draftSetMetaInputSchema>;
406
601
  export type DraftAddItemInput = z.infer<typeof draftAddItemInputSchema>;
407
602
  export type DraftUpdateItemInput = z.infer<typeof draftUpdateItemInputSchema>;
408
603
  export type DraftStampInput = z.infer<typeof draftStampInputSchema>;
604
+ export type InvoiceCancelInput = z.infer<typeof invoiceCancelInputSchema>;
605
+ export type ExternalInvoiceCancelInput = z.infer<typeof externalInvoiceCancelInputSchema>;
606
+ export type InvoiceCancelOutput = z.infer<typeof invoiceCancelOutputSchema>;
607
+ export type ExternalInvoiceCancelOutput = z.infer<typeof externalInvoiceCancelOutputSchema>;
409
608
  export type DraftRecord = z.infer<typeof draftRecordSchema>;
410
609
  export type DraftListItem = z.infer<typeof draftListItemSchema>;
411
610
  export type InvoiceRecord = z.infer<typeof invoiceRecordSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"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"}
package/dist/invoices.js CHANGED
@@ -1,13 +1,29 @@
1
1
  import { z } from 'zod';
2
- import { customerCurrencySchema, customerInvoiceLanguageSchema, } from './customers.js';
2
+ import { customerCurrencySchema, customerInvoiceLanguageSchema, paymentFormInputSchema, postalCodeInputSchema, taxRegimeInputSchema, } from './customers.js';
3
3
  export const invoiceStatusSchema = z.enum([
4
4
  'draft',
5
5
  'issued',
6
6
  'error',
7
7
  'cancelled',
8
8
  ]);
9
+ export const cfdiExportacionSchema = z.enum(['01', '02', '03', '04']);
10
+ export const invoiceVatTreatmentSchema = z.enum([
11
+ 'iva_16',
12
+ 'iva_8',
13
+ 'tasa_0',
14
+ 'exento',
15
+ 'no_objeto',
16
+ ]);
17
+ export const invoiceVatTreatmentLabels = {
18
+ iva_16: 'IVA 16%',
19
+ iva_8: 'IVA 8% (frontera)',
20
+ tasa_0: 'Tasa 0%',
21
+ exento: 'Exento',
22
+ no_objeto: 'No objeto de impuesto',
23
+ };
9
24
  export const invoiceVatRateSchema = z.union([
10
25
  z.literal(0),
26
+ z.literal(0.08),
11
27
  z.literal(0.1),
12
28
  z.literal(0.16),
13
29
  ]);
@@ -31,10 +47,12 @@ export const invoiceListQuerySchema = z.object({
31
47
  query: z.string().trim().min(1).max(120).optional(),
32
48
  status: invoiceStatusSchema.optional(),
33
49
  limit: z.coerce.number().int().min(1).max(100).optional(),
50
+ offset: z.coerce.number().int().min(0).max(1000000).optional(),
34
51
  });
35
52
  export const draftListQuerySchema = z.object({
36
53
  query: z.string().trim().min(1).max(120).optional(),
37
54
  limit: z.coerce.number().int().min(1).max(100).optional(),
55
+ offset: z.coerce.number().int().min(0).max(1000000).optional(),
38
56
  });
39
57
  export const invoiceItemRecordSchema = z.object({
40
58
  id: z.uuid(),
@@ -46,6 +64,9 @@ export const invoiceItemRecordSchema = z.object({
46
64
  quantity: z.number(),
47
65
  unitPrice: z.number(),
48
66
  amount: z.number(),
67
+ objetoImp: z.enum(['01', '02', '03', '04', '05', '06', '07', '08']).optional(),
68
+ vatKind: z.enum(['none', 'tasa', 'exento']).optional(),
69
+ vatTreatment: invoiceVatTreatmentSchema.optional(),
49
70
  vatRate: invoiceVatRateSchema,
50
71
  vatSource: invoiceItemTaxSourceSchema.optional(),
51
72
  vatReason: z.string().optional(),
@@ -56,41 +77,55 @@ export const invoiceItemRecordSchema = z.object({
56
77
  suggestionConfidence: z.number().optional(),
57
78
  suggestionSource: invoiceSuggestionSourceSchema.optional(),
58
79
  });
80
+ // Syntax and the moving SAT window are validated by the server so all clients
81
+ // receive the stable INVALID_ISSUE_DATE error code.
82
+ export const invoiceIssueDateInputSchema = z.string().describe('Fecha de emisión: YYYY-MM-DD o datetime ISO (día en la zona horaria del emisor). Hoy o hasta 2 días atrás para respetar las 72 horas del SAT. INVALID_ISSUE_DATE si no es válida.');
59
83
  export const draftCreateInputSchema = z.object({
84
+ issueDate: invoiceIssueDateInputSchema.optional(),
60
85
  customerId: z.uuid().optional(),
61
86
  receiverRfc: z.string().trim().optional(),
62
87
  receiverLegalName: z.string().trim().optional(),
63
- receiverPostalCode: z.string().trim().optional(),
64
- receiverTaxRegime: z.string().trim().optional(),
88
+ receiverPostalCode: postalCodeInputSchema.optional(),
89
+ receiverTaxRegime: taxRegimeInputSchema.optional(),
65
90
  receiverFiscalResidence: z.string().trim().toUpperCase().optional(),
66
91
  receiverTaxId: z.string().trim().optional(),
67
92
  receiverEmail: z.email().optional(),
68
93
  receiverInvoiceLanguage: customerInvoiceLanguageSchema.optional(),
69
94
  currency: customerCurrencySchema.optional(),
95
+ exchangeRate: z.number().optional(),
96
+ exchangeRateDate: z.iso.datetime().optional(),
70
97
  cfdiUse: z.string().trim().optional(),
71
- });
98
+ exportacion: cfdiExportacionSchema.optional(),
99
+ }).refine((value) => value.exchangeRateDate === undefined || value.exchangeRate !== undefined, { path: ['exchangeRate'], message: 'Envía exchangeRate junto con exchangeRateDate.' });
72
100
  export const draftSetReceiverInputSchema = z.object({
73
101
  customerId: z.uuid().optional().nullable(),
74
102
  receiverRfc: z.string().trim().optional(),
75
103
  receiverLegalName: z.string().trim().optional(),
76
- receiverPostalCode: z.string().trim().optional(),
77
- receiverTaxRegime: z.string().trim().optional(),
78
- receiverFiscalResidence: z.string().trim().toUpperCase().optional().nullable(),
104
+ receiverPostalCode: postalCodeInputSchema.optional(),
105
+ receiverTaxRegime: taxRegimeInputSchema.optional(),
106
+ receiverFiscalResidence: z
107
+ .string()
108
+ .trim()
109
+ .toUpperCase()
110
+ .optional()
111
+ .nullable(),
79
112
  receiverTaxId: z.string().trim().optional().nullable(),
80
113
  receiverEmail: z.email().optional().nullable(),
81
114
  receiverInvoiceLanguage: customerInvoiceLanguageSchema.optional(),
82
115
  });
83
116
  export const draftSetMetaInputSchema = z.object({
117
+ issueDate: invoiceIssueDateInputSchema.optional(),
84
118
  cfdiUse: z.string().trim().optional(),
119
+ exportacion: cfdiExportacionSchema.optional(),
85
120
  paymentMethod: z.string().trim().optional(),
86
- paymentForm: z.string().trim().optional(),
121
+ paymentForm: paymentFormInputSchema.optional(),
87
122
  currency: customerCurrencySchema.optional(),
88
- exchangeRate: z.number().positive().optional(),
123
+ exchangeRate: z.number().optional(),
89
124
  exchangeRateDate: z.iso.datetime().optional(),
90
125
  vatRate: invoiceVatRateSchema.optional(),
91
126
  customerNotes: z.string().trim().max(4000).optional().nullable(),
92
127
  pdfLanguage: customerInvoiceLanguageSchema.optional(),
93
- });
128
+ }).refine((value) => value.exchangeRateDate === undefined || value.exchangeRate !== undefined, { path: ['exchangeRate'], message: 'Envía exchangeRate junto con exchangeRateDate.' });
94
129
  export const draftAddItemInputSchema = z.object({
95
130
  position: z.number().int().nonnegative().optional(),
96
131
  productCode: z.string().trim().optional(),
@@ -98,6 +133,7 @@ export const draftAddItemInputSchema = z.object({
98
133
  description: z.string().trim().min(1),
99
134
  quantity: z.number().positive().default(1),
100
135
  unitPrice: z.number().nonnegative(),
136
+ vatTreatment: invoiceVatTreatmentSchema.optional().describe('Tratamiento explícito del IVA. Omitido: inferencia automática. vatRate por sí solo conserva el comportamiento anterior; 0 significa Tasa 0%. Si se envían ambos, deben coincidir.'),
101
137
  vatRate: invoiceVatRateSchema.optional(),
102
138
  vatSource: invoiceItemTaxSourceSchema.optional(),
103
139
  isrWithholdingRate: invoiceIsrWithholdingRateSchema.optional(),
@@ -113,6 +149,7 @@ export const draftUpdateItemInputSchema = z.object({
113
149
  description: z.string().trim().optional(),
114
150
  quantity: z.number().positive().optional(),
115
151
  unitPrice: z.number().nonnegative().optional(),
152
+ vatTreatment: invoiceVatTreatmentSchema.optional().describe('Tratamiento explícito del IVA. Omitido: inferencia automática. vatRate por sí solo conserva el comportamiento anterior; 0 significa Tasa 0%. Si se envían ambos, deben coincidir.'),
116
153
  vatRate: invoiceVatRateSchema.optional(),
117
154
  vatSource: invoiceItemTaxSourceSchema.optional(),
118
155
  isrWithholdingRate: invoiceIsrWithholdingRateSchema.optional(),
@@ -121,12 +158,83 @@ export const draftUpdateItemInputSchema = z.object({
121
158
  suggestionConfidence: z.number().min(0).max(1).optional(),
122
159
  suggestionSource: invoiceSuggestionSourceSchema.optional(),
123
160
  });
161
+ export const draftStampCfdiRelacionadosSchema = z.object({
162
+ tipo_relacion: z
163
+ .string()
164
+ .trim()
165
+ .regex(/^\d{2}$/),
166
+ cfdi_relacionado: z.array(z.uuid()).min(1),
167
+ });
168
+ export const draftStampSubstitutionSchema = z
169
+ .object({
170
+ cancel_original: z.literal(true),
171
+ original_invoice_id: z.uuid().optional(),
172
+ external_original_sat_uuid: z.uuid().optional(),
173
+ external_original_receiver_rfc: z.string().trim().min(1).optional(),
174
+ external_original_total: z.string().trim().min(1).optional(),
175
+ })
176
+ .superRefine((value, context) => {
177
+ const sources = [
178
+ value.original_invoice_id,
179
+ value.external_original_sat_uuid,
180
+ ].filter(Boolean);
181
+ if (sources.length !== 1) {
182
+ context.addIssue({
183
+ code: 'custom',
184
+ path: ['original_invoice_id'],
185
+ message: 'Envía original_invoice_id o external_original_sat_uuid, pero no ambos.',
186
+ });
187
+ }
188
+ if (value.external_original_sat_uuid) {
189
+ if (!value.external_original_receiver_rfc) {
190
+ context.addIssue({
191
+ code: 'custom',
192
+ path: ['external_original_receiver_rfc'],
193
+ message: 'Para UUID externo indica external_original_receiver_rfc (requerido por cancelación tercero).',
194
+ });
195
+ }
196
+ if (!value.external_original_total) {
197
+ context.addIssue({
198
+ code: 'custom',
199
+ path: ['external_original_total'],
200
+ message: 'Para UUID externo indica external_original_total (requerido por cancelación tercero).',
201
+ });
202
+ }
203
+ }
204
+ });
124
205
  export const draftStampInputSchema = z.object({
206
+ issueDate: invoiceIssueDateInputSchema.optional(),
125
207
  skipIssuedEmailSend: z.boolean().optional(),
126
208
  sendToCustomerContacts: z.boolean().optional(),
127
209
  sendCustomerEmail: z.boolean().optional(),
128
210
  sendCustomerWhatsApp: z.boolean().optional(),
129
211
  allowPaidStampOverdraft: z.boolean().optional(),
212
+ cfdi_relacionados: draftStampCfdiRelacionadosSchema.optional(),
213
+ substitution: draftStampSubstitutionSchema.optional(),
214
+ });
215
+ export const invoiceCancelReasonSchema = z.enum(['01', '02', '03', '04']);
216
+ export const invoiceCancelInputSchema = z.object({
217
+ reason: invoiceCancelReasonSchema,
218
+ replacementInvoiceId: z.uuid().optional(),
219
+ });
220
+ export const externalInvoiceCancelInputSchema = z.object({
221
+ satUuid: z.uuid(),
222
+ reason: invoiceCancelReasonSchema,
223
+ receiverRfc: z.string().trim().min(1),
224
+ total: z.string().trim().min(1),
225
+ replacementInvoiceId: z.uuid().optional(),
226
+ replacementSatUuid: z.uuid().optional(),
227
+ });
228
+ export const invoiceCancelOutputSchema = z.object({
229
+ status: z.enum(['cancelled', 'not_confirmed']),
230
+ evidence: z.unknown(),
231
+ invoice: z.unknown().optional(),
232
+ });
233
+ export const externalInvoiceCancelOutputSchema = z.object({
234
+ status: z.enum(['cancelled', 'not_confirmed']),
235
+ satUuid: z.string(),
236
+ replacementSatUuid: z.string().optional(),
237
+ evidence: z.unknown(),
130
238
  });
131
239
  export const invoiceRecordSchema = z.object({
132
240
  id: z.uuid(),
@@ -146,6 +254,7 @@ export const invoiceRecordSchema = z.object({
146
254
  status: invoiceStatusSchema,
147
255
  cfdiType: z.string(),
148
256
  cfdiUse: z.string(),
257
+ exportacion: cfdiExportacionSchema,
149
258
  paymentMethod: z.string().optional(),
150
259
  paymentForm: z.string().optional(),
151
260
  currency: customerCurrencySchema,
@@ -158,6 +267,7 @@ export const invoiceRecordSchema = z.object({
158
267
  customerNotes: z.string().optional(),
159
268
  pdfLanguage: customerInvoiceLanguageSchema,
160
269
  errorMessage: z.string().optional(),
270
+ issueDate: z.iso.datetime().optional().describe('Fecha de emisión seleccionada, en formato ISO 8601.'),
161
271
  issuedAt: z.iso.datetime().optional(),
162
272
  cancelledAt: z.iso.datetime().optional(),
163
273
  createdAt: z.iso.datetime(),