intifact 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.
package/dist/types.d.ts CHANGED
@@ -37,6 +37,78 @@ export interface paths {
37
37
  patch?: never;
38
38
  trace?: never;
39
39
  };
40
+ "/internal/certificates/expiring": {
41
+ parameters: {
42
+ query?: never;
43
+ header?: never;
44
+ path?: never;
45
+ cookie?: never;
46
+ };
47
+ /** List certificates expiring within N days (internal) */
48
+ get: {
49
+ parameters: {
50
+ query?: {
51
+ days?: number;
52
+ };
53
+ header?: never;
54
+ path?: never;
55
+ cookie?: never;
56
+ };
57
+ requestBody?: never;
58
+ responses: {
59
+ /** @description Default Response */
60
+ 200: {
61
+ headers: {
62
+ [name: string]: unknown;
63
+ };
64
+ content?: never;
65
+ };
66
+ };
67
+ };
68
+ put?: never;
69
+ post?: never;
70
+ delete?: never;
71
+ options?: never;
72
+ head?: never;
73
+ patch?: never;
74
+ trace?: never;
75
+ };
76
+ "/internal/webhooks/stats": {
77
+ parameters: {
78
+ query?: never;
79
+ header?: never;
80
+ path?: never;
81
+ cookie?: never;
82
+ };
83
+ /** Webhook delivery statistics (internal) */
84
+ get: {
85
+ parameters: {
86
+ query?: {
87
+ days?: number;
88
+ };
89
+ header?: never;
90
+ path?: never;
91
+ cookie?: never;
92
+ };
93
+ requestBody?: never;
94
+ responses: {
95
+ /** @description Default Response */
96
+ 200: {
97
+ headers: {
98
+ [name: string]: unknown;
99
+ };
100
+ content?: never;
101
+ };
102
+ };
103
+ };
104
+ put?: never;
105
+ post?: never;
106
+ delete?: never;
107
+ options?: never;
108
+ head?: never;
109
+ patch?: never;
110
+ trace?: never;
111
+ };
40
112
  "/api/v1/invoice/send": {
41
113
  parameters: {
42
114
  query?: never;
@@ -89,11 +161,14 @@ export interface paths {
89
161
  valorVenta: number;
90
162
  subTotal: number;
91
163
  montoImpVenta: number;
164
+ descuentoGlobal?: number;
165
+ descuentoGlobalBase?: number;
92
166
  detalle: {
93
167
  unidad: string;
94
168
  cantidad: number;
95
169
  codProducto: string;
96
170
  descripcion: string;
171
+ marca?: string;
97
172
  montoValorUnitario: number;
98
173
  montoBaseIgv: number;
99
174
  /** @default 18 */
@@ -104,6 +179,8 @@ export interface paths {
104
179
  totalImpuestos: number;
105
180
  montoPrecioUnitario: number;
106
181
  montoValorVenta: number;
182
+ descuento?: number;
183
+ descuentoItem?: number;
107
184
  /** @default 0 */
108
185
  factorIcbper?: number;
109
186
  codProdSunat?: string;
@@ -120,6 +197,14 @@ export interface paths {
120
197
  legendCode: string;
121
198
  legendValue: string;
122
199
  }[];
200
+ detraccion?: {
201
+ codBienServicio: string;
202
+ cuentaBanco: string;
203
+ porcentaje: number;
204
+ monto: number;
205
+ /** @default 001 */
206
+ medioPago?: string;
207
+ };
123
208
  };
124
209
  };
125
210
  };
@@ -188,6 +273,120 @@ export interface paths {
188
273
  patch?: never;
189
274
  trace?: never;
190
275
  };
276
+ "/api/v1/invoice/compute": {
277
+ parameters: {
278
+ query?: never;
279
+ header?: never;
280
+ path?: never;
281
+ cookie?: never;
282
+ };
283
+ get?: never;
284
+ put?: never;
285
+ /**
286
+ * Calcular importes (IGV, descuentos, totales) sin emitir
287
+ * @description Motor de cálculo: recibe ítems crudos (cantidad, valorUnitario sin IGV, afectación, descuento) y un descuento global opcional, y devuelve TODOS los importes fiscales calculados (bases, IGV, descuentos, totales, monto en letras). No emite ni persiste nada — úsalo para previsualizar o para alimentar POST /invoice/send.
288
+ */
289
+ post: {
290
+ parameters: {
291
+ query?: never;
292
+ header?: never;
293
+ path?: never;
294
+ cookie?: never;
295
+ };
296
+ requestBody: {
297
+ content: {
298
+ "application/json": {
299
+ /** @default PEN */
300
+ tipoMoneda?: string;
301
+ items: {
302
+ descripcion: string;
303
+ cantidad: number;
304
+ valorUnitario: number;
305
+ /** @default NIU */
306
+ unidad?: string;
307
+ codProducto?: string;
308
+ /** @default 10 */
309
+ afectacion?: string;
310
+ /** @default 18 */
311
+ igvPorcentaje?: number;
312
+ descuento?: {
313
+ porcentaje?: number;
314
+ monto?: number;
315
+ };
316
+ /** @default 0 */
317
+ factorIcbper?: number;
318
+ marca?: string;
319
+ codProdSunat?: string;
320
+ }[];
321
+ descuentoGlobal?: {
322
+ porcentaje?: number;
323
+ monto?: number;
324
+ };
325
+ /** @default false */
326
+ preciosIncluyenIgv?: boolean;
327
+ };
328
+ };
329
+ };
330
+ responses: {
331
+ /** @description Default Response */
332
+ 200: {
333
+ headers: {
334
+ [name: string]: unknown;
335
+ };
336
+ content: {
337
+ "application/json": {
338
+ success: boolean;
339
+ message: string;
340
+ data: {
341
+ tipoMoneda: string;
342
+ items: {
343
+ unidad: string;
344
+ cantidad: number;
345
+ codProducto: string;
346
+ descripcion: string;
347
+ marca?: string;
348
+ tipAfeIgv: string;
349
+ porcentajeIgv: number;
350
+ montoValorUnitario: number;
351
+ descuento: number;
352
+ descuentoItem: number;
353
+ descuentoGlobalLinea: number;
354
+ montoBruto: number;
355
+ montoValorVenta: number;
356
+ montoBaseIgv: number;
357
+ igv: number;
358
+ totalImpuestos: number;
359
+ montoPrecioUnitario: number;
360
+ factorIcbper: number;
361
+ codProdSunat?: string;
362
+ }[];
363
+ montoOperGravadas: number;
364
+ montoOperExoneradas: number;
365
+ montoOperInafectas: number;
366
+ montoOperGratuitas: number;
367
+ montoOperExportacion: number;
368
+ montoIgv: number;
369
+ montoIcbper: number;
370
+ descuentoGlobal: number;
371
+ descuentoGlobalBase: number;
372
+ totalDescuentos: number;
373
+ totalImpuestos: number;
374
+ valorVenta: number;
375
+ subTotal: number;
376
+ montoImpVenta: number;
377
+ montoEnLetras: string;
378
+ };
379
+ };
380
+ };
381
+ };
382
+ };
383
+ };
384
+ delete?: never;
385
+ options?: never;
386
+ head?: never;
387
+ patch?: never;
388
+ trace?: never;
389
+ };
191
390
  "/api/v1/invoice/{id}/pdf": {
192
391
  parameters: {
193
392
  query?: never;
@@ -353,11 +552,14 @@ export interface paths {
353
552
  valorVenta: number;
354
553
  subTotal: number;
355
554
  montoImpVenta: number;
555
+ descuentoGlobal?: number;
556
+ descuentoGlobalBase?: number;
356
557
  detalle: {
357
558
  unidad: string;
358
559
  cantidad: number;
359
560
  codProducto: string;
360
561
  descripcion: string;
562
+ marca?: string;
361
563
  montoValorUnitario: number;
362
564
  montoBaseIgv: number;
363
565
  /** @default 18 */
@@ -368,6 +570,8 @@ export interface paths {
368
570
  totalImpuestos: number;
369
571
  montoPrecioUnitario: number;
370
572
  montoValorVenta: number;
573
+ descuento?: number;
574
+ descuentoItem?: number;
371
575
  /** @default 0 */
372
576
  factorIcbper?: number;
373
577
  codProdSunat?: string;
@@ -445,6 +649,120 @@ export interface paths {
445
649
  patch?: never;
446
650
  trace?: never;
447
651
  };
652
+ "/api/v1/note/compute": {
653
+ parameters: {
654
+ query?: never;
655
+ header?: never;
656
+ path?: never;
657
+ cookie?: never;
658
+ };
659
+ get?: never;
660
+ put?: never;
661
+ /**
662
+ * Calcular importes (IGV, descuentos, totales) sin emitir
663
+ * @description Motor de cálculo para notas: recibe ítems crudos (cantidad, valorUnitario sin IGV, afectación, descuento) y un descuento global opcional, y devuelve TODOS los importes fiscales calculados. No emite ni persiste nada — úsalo para previsualizar o para alimentar POST /note/send (agrega tú el documento afectado y el motivo).
664
+ */
665
+ post: {
666
+ parameters: {
667
+ query?: never;
668
+ header?: never;
669
+ path?: never;
670
+ cookie?: never;
671
+ };
672
+ requestBody: {
673
+ content: {
674
+ "application/json": {
675
+ /** @default PEN */
676
+ tipoMoneda?: string;
677
+ items: {
678
+ descripcion: string;
679
+ cantidad: number;
680
+ valorUnitario: number;
681
+ /** @default NIU */
682
+ unidad?: string;
683
+ codProducto?: string;
684
+ /** @default 10 */
685
+ afectacion?: string;
686
+ /** @default 18 */
687
+ igvPorcentaje?: number;
688
+ descuento?: {
689
+ porcentaje?: number;
690
+ monto?: number;
691
+ };
692
+ /** @default 0 */
693
+ factorIcbper?: number;
694
+ marca?: string;
695
+ codProdSunat?: string;
696
+ }[];
697
+ descuentoGlobal?: {
698
+ porcentaje?: number;
699
+ monto?: number;
700
+ };
701
+ /** @default false */
702
+ preciosIncluyenIgv?: boolean;
703
+ };
704
+ };
705
+ };
706
+ responses: {
707
+ /** @description Default Response */
708
+ 200: {
709
+ headers: {
710
+ [name: string]: unknown;
711
+ };
712
+ content: {
713
+ "application/json": {
714
+ success: boolean;
715
+ message: string;
716
+ data: {
717
+ tipoMoneda: string;
718
+ items: {
719
+ unidad: string;
720
+ cantidad: number;
721
+ codProducto: string;
722
+ descripcion: string;
723
+ marca?: string;
724
+ tipAfeIgv: string;
725
+ porcentajeIgv: number;
726
+ montoValorUnitario: number;
727
+ descuento: number;
728
+ descuentoItem: number;
729
+ descuentoGlobalLinea: number;
730
+ montoBruto: number;
731
+ montoValorVenta: number;
732
+ montoBaseIgv: number;
733
+ igv: number;
734
+ totalImpuestos: number;
735
+ montoPrecioUnitario: number;
736
+ factorIcbper: number;
737
+ codProdSunat?: string;
738
+ }[];
739
+ montoOperGravadas: number;
740
+ montoOperExoneradas: number;
741
+ montoOperInafectas: number;
742
+ montoOperGratuitas: number;
743
+ montoOperExportacion: number;
744
+ montoIgv: number;
745
+ montoIcbper: number;
746
+ descuentoGlobal: number;
747
+ descuentoGlobalBase: number;
748
+ totalDescuentos: number;
749
+ totalImpuestos: number;
750
+ valorVenta: number;
751
+ subTotal: number;
752
+ montoImpVenta: number;
753
+ montoEnLetras: string;
754
+ };
755
+ };
756
+ };
757
+ };
758
+ };
759
+ };
760
+ delete?: never;
761
+ options?: never;
762
+ head?: never;
763
+ patch?: never;
764
+ trace?: never;
765
+ };
448
766
  "/api/v1/note/{id}/pdf": {
449
767
  parameters: {
450
768
  query?: never;
@@ -553,6 +871,10 @@ export interface paths {
553
871
  clienteNumDoc: string;
554
872
  clienteRazonSocial: string;
555
873
  clienteDireccion?: string;
874
+ destinatarioContacto?: string;
875
+ destinatarioTelefono?: string;
876
+ destinatarioEmail?: string;
877
+ entregaReferencia?: string;
556
878
  guiaCodTraslado: string;
557
879
  /** @enum {string} */
558
880
  guiaModTraslado: "01" | "02";
@@ -564,6 +886,7 @@ export interface paths {
564
886
  transportistaTipoDoc?: string;
565
887
  transportistaNumDoc?: string;
566
888
  transportistaRazonSocial?: string;
889
+ transportistaNroMtc?: string;
567
890
  guiaPartidaUbigeo: string;
568
891
  guiaPartidaDireccion: string;
569
892
  guiaLlegadaUbigeo: string;
@@ -577,6 +900,64 @@ export interface paths {
577
900
  nombres: string;
578
901
  apellidos: string;
579
902
  }[];
903
+ guiaFecEntrega?: string;
904
+ guiaDesTraslado?: string;
905
+ guiaPesoNeto?: number;
906
+ guiaSustentoPeso?: string;
907
+ guiaNumBultos?: number;
908
+ indicadores?: {
909
+ transbordoProgramado?: boolean;
910
+ vehiculoM1L?: boolean;
911
+ retornoVehiculoEnvaseVacio?: boolean;
912
+ retornoVehiculoVacio?: boolean;
913
+ trasladoTotalDamDs?: boolean;
914
+ registroTransportista?: boolean;
915
+ trasladoContenedorManifiesto?: boolean;
916
+ };
917
+ contenedores?: {
918
+ numero: string;
919
+ precinto?: string;
920
+ }[];
921
+ guiaVehiculoTuc?: string;
922
+ guiaVehiculoAutorizacion?: string;
923
+ guiaVehiculoAutorizacionEntidad?: string;
924
+ vehiculosSecundarios?: {
925
+ placa: string;
926
+ tuc?: string;
927
+ autorizacion?: string;
928
+ autorizacionEntidad?: string;
929
+ }[];
930
+ transportistaAutorizacion?: string;
931
+ transportistaAutorizacionEntidad?: string;
932
+ guiaPartidaRuc?: string;
933
+ guiaPartidaCodLocal?: string;
934
+ guiaPartidaGeo?: {
935
+ lat: string;
936
+ lon: string;
937
+ };
938
+ guiaLlegadaRuc?: string;
939
+ guiaLlegadaCodLocal?: string;
940
+ guiaLlegadaGeo?: {
941
+ lat: string;
942
+ lon: string;
943
+ };
944
+ documentosRelacionados?: {
945
+ codTipo: string;
946
+ numero: string;
947
+ tipoDesc?: string;
948
+ emisorRuc?: string;
949
+ }[];
950
+ remitenteAutorizacion?: string;
951
+ remitenteAutorizacionEntidad?: string;
952
+ proveedorTipoDoc?: string;
953
+ proveedorNumDoc?: string;
954
+ proveedorRazonSocial?: string;
955
+ compradorTipoDoc?: string;
956
+ compradorNumDoc?: string;
957
+ compradorRazonSocial?: string;
958
+ puertoCodigo?: string;
959
+ puertoNombre?: string;
960
+ puertoTipo?: string;
580
961
  detalle: {
581
962
  unidad: string;
582
963
  cantidad: number;
@@ -651,34 +1032,374 @@ export interface paths {
651
1032
  patch?: never;
652
1033
  trace?: never;
653
1034
  };
654
- "/api/v1/despatch/{id}/xml": {
1035
+ "/api/v1/despatch/send-multi": {
655
1036
  parameters: {
656
1037
  query?: never;
657
1038
  header?: never;
658
1039
  path?: never;
659
1040
  cookie?: never;
660
1041
  };
661
- /** Descargar XML firmado de la guía */
662
- get: {
1042
+ get?: never;
1043
+ put?: never;
1044
+ /**
1045
+ * Enviar múltiples guías de remisión por destino
1046
+ * @description Recibe datos comunes de transporte + array de destinos. Genera una guía por cada destino con correlativo auto-asignado. Cada guía se encola independientemente para envío a SUNAT GRE.
1047
+ */
1048
+ post: {
663
1049
  parameters: {
664
1050
  query?: never;
665
1051
  header?: never;
666
- path: {
667
- id: string;
668
- };
1052
+ path?: never;
669
1053
  cookie?: never;
670
1054
  };
671
- requestBody?: never;
1055
+ requestBody: {
1056
+ content: {
1057
+ "application/json": {
1058
+ /** @enum {string} */
1059
+ tipoDoc: "09";
1060
+ serie: string;
1061
+ observacion?: string;
1062
+ fechaEmision: string;
1063
+ empresaRuc: string;
1064
+ /** @default 0000 */
1065
+ establecimientoCodigo?: string;
1066
+ guiaCodTraslado: string;
1067
+ /** @enum {string} */
1068
+ guiaModTraslado: "01" | "02";
1069
+ guiaFecTraslado: string;
1070
+ guiaVehiculoPlaca?: string;
1071
+ transportistaTipoDoc?: string;
1072
+ transportistaNumDoc?: string;
1073
+ transportistaRazonSocial?: string;
1074
+ transportistaNroMtc?: string;
1075
+ guiaPartidaUbigeo: string;
1076
+ guiaPartidaDireccion: string;
1077
+ chofer?: {
1078
+ /** @enum {string} */
1079
+ tipo: "Principal" | "Secundario";
1080
+ tipoDoc: string;
1081
+ nroDoc: string;
1082
+ licencia: string;
1083
+ nombres: string;
1084
+ apellidos: string;
1085
+ }[];
1086
+ guiaFecEntrega?: string;
1087
+ guiaDesTraslado?: string;
1088
+ guiaPesoNeto?: number;
1089
+ guiaSustentoPeso?: string;
1090
+ guiaNumBultos?: number;
1091
+ indicadores?: {
1092
+ transbordoProgramado?: boolean;
1093
+ vehiculoM1L?: boolean;
1094
+ retornoVehiculoEnvaseVacio?: boolean;
1095
+ retornoVehiculoVacio?: boolean;
1096
+ trasladoTotalDamDs?: boolean;
1097
+ registroTransportista?: boolean;
1098
+ trasladoContenedorManifiesto?: boolean;
1099
+ };
1100
+ contenedores?: {
1101
+ numero: string;
1102
+ precinto?: string;
1103
+ }[];
1104
+ guiaVehiculoTuc?: string;
1105
+ guiaVehiculoAutorizacion?: string;
1106
+ guiaVehiculoAutorizacionEntidad?: string;
1107
+ vehiculosSecundarios?: {
1108
+ placa: string;
1109
+ tuc?: string;
1110
+ autorizacion?: string;
1111
+ autorizacionEntidad?: string;
1112
+ }[];
1113
+ transportistaAutorizacion?: string;
1114
+ transportistaAutorizacionEntidad?: string;
1115
+ guiaPartidaRuc?: string;
1116
+ guiaPartidaCodLocal?: string;
1117
+ guiaPartidaGeo?: {
1118
+ lat: string;
1119
+ lon: string;
1120
+ };
1121
+ guiaLlegadaRuc?: string;
1122
+ guiaLlegadaCodLocal?: string;
1123
+ guiaLlegadaGeo?: {
1124
+ lat: string;
1125
+ lon: string;
1126
+ };
1127
+ documentosRelacionados?: {
1128
+ codTipo: string;
1129
+ numero: string;
1130
+ tipoDesc?: string;
1131
+ emisorRuc?: string;
1132
+ }[];
1133
+ remitenteAutorizacion?: string;
1134
+ remitenteAutorizacionEntidad?: string;
1135
+ proveedorTipoDoc?: string;
1136
+ proveedorNumDoc?: string;
1137
+ proveedorRazonSocial?: string;
1138
+ compradorTipoDoc?: string;
1139
+ compradorNumDoc?: string;
1140
+ compradorRazonSocial?: string;
1141
+ puertoCodigo?: string;
1142
+ puertoNombre?: string;
1143
+ puertoTipo?: string;
1144
+ destinos: {
1145
+ clienteTipoDoc: string;
1146
+ clienteNumDoc: string;
1147
+ clienteRazonSocial: string;
1148
+ clienteDireccion?: string;
1149
+ destinatarioContacto?: string;
1150
+ destinatarioTelefono?: string;
1151
+ destinatarioEmail?: string;
1152
+ entregaReferencia?: string;
1153
+ guiaLlegadaUbigeo: string;
1154
+ guiaLlegadaDireccion: string;
1155
+ guiaPesoTotal: number;
1156
+ /** @default KGM */
1157
+ guiaUndPesoTotal?: string;
1158
+ detalle: {
1159
+ unidad: string;
1160
+ cantidad: number;
1161
+ codProducto: string;
1162
+ descripcion: string;
1163
+ }[];
1164
+ }[];
1165
+ };
1166
+ };
1167
+ };
672
1168
  responses: {
673
1169
  /** @description Default Response */
674
- 200: {
1170
+ 202: {
675
1171
  headers: {
676
1172
  [name: string]: unknown;
677
1173
  };
678
- content?: never;
679
- };
680
- };
681
- };
1174
+ content: {
1175
+ "application/json": {
1176
+ success: boolean;
1177
+ message: string;
1178
+ data?: {
1179
+ total: number;
1180
+ emitidas: number;
1181
+ fallidas: number;
1182
+ guias: {
1183
+ success: boolean;
1184
+ message: string;
1185
+ code?: string;
1186
+ destino: number;
1187
+ data?: {
1188
+ /** Format: uuid */
1189
+ id: string;
1190
+ estado: string;
1191
+ hash: string | null;
1192
+ signatureValue: string | null;
1193
+ jobId?: string;
1194
+ };
1195
+ }[];
1196
+ };
1197
+ };
1198
+ };
1199
+ };
1200
+ /** @description Default Response */
1201
+ 400: {
1202
+ headers: {
1203
+ [name: string]: unknown;
1204
+ };
1205
+ content: {
1206
+ "application/json": {
1207
+ /** @enum {boolean} */
1208
+ success: false;
1209
+ message: string;
1210
+ code?: string;
1211
+ errors?: {
1212
+ path: string;
1213
+ message: string;
1214
+ }[];
1215
+ };
1216
+ };
1217
+ };
1218
+ };
1219
+ };
1220
+ delete?: never;
1221
+ options?: never;
1222
+ head?: never;
1223
+ patch?: never;
1224
+ trace?: never;
1225
+ };
1226
+ "/api/v1/despatch-transportista/send": {
1227
+ parameters: {
1228
+ query?: never;
1229
+ header?: never;
1230
+ path?: never;
1231
+ cookie?: never;
1232
+ };
1233
+ get?: never;
1234
+ put?: never;
1235
+ /**
1236
+ * Enviar guía de remisión TRANSPORTISTA (31) via API GRE REST
1237
+ * @description Guía emitida por la empresa de transporte (emisor=transportista). Incluye remitente (dueño de los bienes) y destinatario. Genera XML UBL 2.1, firma y encola para envío a SUNAT GRE.
1238
+ */
1239
+ post: {
1240
+ parameters: {
1241
+ query?: never;
1242
+ header?: never;
1243
+ path?: never;
1244
+ cookie?: never;
1245
+ };
1246
+ requestBody: {
1247
+ content: {
1248
+ "application/json": {
1249
+ /** @enum {string} */
1250
+ tipoDoc: "31";
1251
+ serie: string;
1252
+ correlativo: string;
1253
+ observacion?: string;
1254
+ fechaEmision: string;
1255
+ empresaRuc: string;
1256
+ /** @default 0000 */
1257
+ establecimientoCodigo?: string;
1258
+ transportistaNroMtc?: string;
1259
+ destinatarioTipoDoc: string;
1260
+ destinatarioNumDoc: string;
1261
+ destinatarioRazonSocial: string;
1262
+ destinatarioContacto?: string;
1263
+ destinatarioTelefono?: string;
1264
+ destinatarioEmail?: string;
1265
+ entregaReferencia?: string;
1266
+ remitenteTipoDoc: string;
1267
+ remitenteNumDoc: string;
1268
+ remitenteRazonSocial: string;
1269
+ guiaCodTraslado: string;
1270
+ guiaDesTraslado?: string;
1271
+ guiaPesoTotal: number;
1272
+ /** @default KGM */
1273
+ guiaUndPesoTotal?: string;
1274
+ guiaNumBultos?: number;
1275
+ guiaFecTraslado: string;
1276
+ chofer: {
1277
+ /** @enum {string} */
1278
+ tipo: "Principal" | "Secundario";
1279
+ tipoDoc: string;
1280
+ nroDoc: string;
1281
+ licencia: string;
1282
+ nombres: string;
1283
+ apellidos: string;
1284
+ }[];
1285
+ guiaVehiculoPlaca: string;
1286
+ guiaVehiculoTuc?: string;
1287
+ vehiculosSecundarios?: {
1288
+ placa: string;
1289
+ tuc?: string;
1290
+ }[];
1291
+ guiaPartidaUbigeo: string;
1292
+ guiaPartidaDireccion: string;
1293
+ guiaLlegadaUbigeo: string;
1294
+ guiaLlegadaDireccion: string;
1295
+ documentosRelacionados?: {
1296
+ codTipo: string;
1297
+ numero: string;
1298
+ tipoDesc?: string;
1299
+ emisorRuc?: string;
1300
+ }[];
1301
+ detalle: {
1302
+ unidad: string;
1303
+ cantidad: number;
1304
+ codProducto: string;
1305
+ descripcion: string;
1306
+ }[];
1307
+ };
1308
+ };
1309
+ };
1310
+ responses: {
1311
+ /** @description Default Response */
1312
+ 202: {
1313
+ headers: {
1314
+ [name: string]: unknown;
1315
+ };
1316
+ content: {
1317
+ "application/json": {
1318
+ success: boolean;
1319
+ message: string;
1320
+ data?: {
1321
+ /** Format: uuid */
1322
+ id: string;
1323
+ estado: string;
1324
+ hash: string | null;
1325
+ signatureValue: string | null;
1326
+ jobId?: string;
1327
+ };
1328
+ };
1329
+ };
1330
+ };
1331
+ /** @description Default Response */
1332
+ 400: {
1333
+ headers: {
1334
+ [name: string]: unknown;
1335
+ };
1336
+ content: {
1337
+ "application/json": {
1338
+ /** @enum {boolean} */
1339
+ success: false;
1340
+ message: string;
1341
+ code?: string;
1342
+ errors?: {
1343
+ path: string;
1344
+ message: string;
1345
+ }[];
1346
+ };
1347
+ };
1348
+ };
1349
+ /** @description Default Response */
1350
+ 409: {
1351
+ headers: {
1352
+ [name: string]: unknown;
1353
+ };
1354
+ content: {
1355
+ "application/json": {
1356
+ /** @enum {boolean} */
1357
+ success: false;
1358
+ message: string;
1359
+ code?: string;
1360
+ errors?: {
1361
+ path: string;
1362
+ message: string;
1363
+ }[];
1364
+ };
1365
+ };
1366
+ };
1367
+ };
1368
+ };
1369
+ delete?: never;
1370
+ options?: never;
1371
+ head?: never;
1372
+ patch?: never;
1373
+ trace?: never;
1374
+ };
1375
+ "/api/v1/despatch/{id}/xml": {
1376
+ parameters: {
1377
+ query?: never;
1378
+ header?: never;
1379
+ path?: never;
1380
+ cookie?: never;
1381
+ };
1382
+ /** Descargar XML firmado de la guía */
1383
+ get: {
1384
+ parameters: {
1385
+ query?: never;
1386
+ header?: never;
1387
+ path: {
1388
+ id: string;
1389
+ };
1390
+ cookie?: never;
1391
+ };
1392
+ requestBody?: never;
1393
+ responses: {
1394
+ /** @description Default Response */
1395
+ 200: {
1396
+ headers: {
1397
+ [name: string]: unknown;
1398
+ };
1399
+ content?: never;
1400
+ };
1401
+ };
1402
+ };
682
1403
  put?: never;
683
1404
  post?: never;
684
1405
  delete?: never;
@@ -694,10 +1415,12 @@ export interface paths {
694
1415
  path?: never;
695
1416
  cookie?: never;
696
1417
  };
697
- /** Obtener PDF de la guía de remisión */
1418
+ /** Obtener PDF de la guía (A4 oficina, ticket 80mm o 58mm POS) */
698
1419
  get: {
699
1420
  parameters: {
700
- query?: never;
1421
+ query?: {
1422
+ format?: "a4" | "ticket" | "ticket80" | "ticket58";
1423
+ };
701
1424
  header?: never;
702
1425
  path: {
703
1426
  id: string;
@@ -778,7 +1501,7 @@ export interface paths {
778
1501
  };
779
1502
  responses: {
780
1503
  /** @description Default Response */
781
- 200: {
1504
+ 202: {
782
1505
  headers: {
783
1506
  [name: string]: unknown;
784
1507
  };
@@ -787,6 +1510,8 @@ export interface paths {
787
1510
  success: boolean;
788
1511
  message: string;
789
1512
  data?: {
1513
+ id?: string;
1514
+ estado?: string;
790
1515
  ticket?: string;
791
1516
  hash?: string | null;
792
1517
  };
@@ -854,7 +1579,7 @@ export interface paths {
854
1579
  };
855
1580
  responses: {
856
1581
  /** @description Default Response */
857
- 200: {
1582
+ 202: {
858
1583
  headers: {
859
1584
  [name: string]: unknown;
860
1585
  };
@@ -863,6 +1588,8 @@ export interface paths {
863
1588
  success: boolean;
864
1589
  message: string;
865
1590
  data?: {
1591
+ id?: string;
1592
+ estado?: string;
866
1593
  ticket?: string;
867
1594
  hash?: string | null;
868
1595
  };
@@ -996,7 +1723,7 @@ export interface paths {
996
1723
  };
997
1724
  responses: {
998
1725
  /** @description Default Response */
999
- 200: {
1726
+ 202: {
1000
1727
  headers: {
1001
1728
  [name: string]: unknown;
1002
1729
  };
@@ -1005,6 +1732,8 @@ export interface paths {
1005
1732
  success: boolean;
1006
1733
  message: string;
1007
1734
  data?: {
1735
+ id?: string;
1736
+ estado?: string;
1008
1737
  ticket?: string;
1009
1738
  hash?: string | null;
1010
1739
  };
@@ -1067,7 +1796,7 @@ export interface paths {
1067
1796
  };
1068
1797
  responses: {
1069
1798
  /** @description Default Response */
1070
- 200: {
1799
+ 202: {
1071
1800
  headers: {
1072
1801
  [name: string]: unknown;
1073
1802
  };
@@ -1076,6 +1805,8 @@ export interface paths {
1076
1805
  success: boolean;
1077
1806
  message: string;
1078
1807
  data?: {
1808
+ id?: string;
1809
+ estado?: string;
1079
1810
  ticket?: string;
1080
1811
  hash?: string | null;
1081
1812
  };
@@ -1450,45 +2181,7 @@ export interface paths {
1450
2181
  };
1451
2182
  };
1452
2183
  put?: never;
1453
- /** Crear empresa emisora */
1454
- post: {
1455
- parameters: {
1456
- query?: never;
1457
- header?: never;
1458
- path?: never;
1459
- cookie?: never;
1460
- };
1461
- requestBody: {
1462
- content: {
1463
- "application/json": {
1464
- ruc: string;
1465
- razonSocial: string;
1466
- nombreComercial?: string;
1467
- ubigeo?: string;
1468
- direccion?: string;
1469
- departamento?: string;
1470
- provincia?: string;
1471
- distrito?: string;
1472
- urbanizacion?: string;
1473
- solUser?: string;
1474
- solPassword?: string;
1475
- /** Format: uuid */
1476
- tenantId?: string;
1477
- greClientId?: string;
1478
- greClientSecret?: string;
1479
- };
1480
- };
1481
- };
1482
- responses: {
1483
- /** @description Default Response */
1484
- 200: {
1485
- headers: {
1486
- [name: string]: unknown;
1487
- };
1488
- content?: never;
1489
- };
1490
- };
1491
- };
2184
+ post?: never;
1492
2185
  delete?: never;
1493
2186
  options?: never;
1494
2187
  head?: never;
@@ -1523,8 +2216,23 @@ export interface paths {
1523
2216
  };
1524
2217
  };
1525
2218
  };
1526
- /** Actualizar empresa */
1527
- put: {
2219
+ put?: never;
2220
+ post?: never;
2221
+ delete?: never;
2222
+ options?: never;
2223
+ head?: never;
2224
+ patch?: never;
2225
+ trace?: never;
2226
+ };
2227
+ "/api/v1/companies/{id}/logo": {
2228
+ parameters: {
2229
+ query?: never;
2230
+ header?: never;
2231
+ path?: never;
2232
+ cookie?: never;
2233
+ };
2234
+ /** Obtener logo de la empresa (PNG/JPG) */
2235
+ get: {
1528
2236
  parameters: {
1529
2237
  query?: never;
1530
2238
  header?: never;
@@ -1533,27 +2241,7 @@ export interface paths {
1533
2241
  };
1534
2242
  cookie?: never;
1535
2243
  };
1536
- requestBody: {
1537
- content: {
1538
- "application/json": {
1539
- ruc?: string;
1540
- razonSocial?: string;
1541
- nombreComercial?: string;
1542
- ubigeo?: string;
1543
- direccion?: string;
1544
- departamento?: string;
1545
- provincia?: string;
1546
- distrito?: string;
1547
- urbanizacion?: string;
1548
- solUser?: string;
1549
- solPassword?: string;
1550
- /** Format: uuid */
1551
- tenantId?: string;
1552
- greClientId?: string;
1553
- greClientSecret?: string;
1554
- };
1555
- };
1556
- };
2244
+ requestBody?: never;
1557
2245
  responses: {
1558
2246
  /** @description Default Response */
1559
2247
  200: {
@@ -1564,6 +2252,7 @@ export interface paths {
1564
2252
  };
1565
2253
  };
1566
2254
  };
2255
+ put?: never;
1567
2256
  post?: never;
1568
2257
  delete?: never;
1569
2258
  options?: never;
@@ -1571,542 +2260,24 @@ export interface paths {
1571
2260
  patch?: never;
1572
2261
  trace?: never;
1573
2262
  };
1574
- "/api/v1/companies/{id}/certificate": {
2263
+ "/api/v1/webhooks": {
1575
2264
  parameters: {
1576
2265
  query?: never;
1577
2266
  header?: never;
1578
2267
  path?: never;
1579
2268
  cookie?: never;
1580
2269
  };
1581
- get?: never;
1582
- put?: never;
1583
- /** Subir certificado digital (.p12/.pfx en base64) */
1584
- post: {
2270
+ /** Listar webhooks (filtra por RUC opcional) */
2271
+ get: {
1585
2272
  parameters: {
1586
- query?: never;
1587
- header?: never;
1588
- path: {
1589
- id: string;
1590
- };
1591
- cookie?: never;
1592
- };
1593
- requestBody: {
1594
- content: {
1595
- "application/json": {
1596
- name: string;
1597
- password: string;
1598
- /** @description Base64 del .p12/.pfx */
1599
- content: string;
1600
- };
1601
- };
1602
- };
1603
- responses: {
1604
- /** @description Default Response */
1605
- 200: {
1606
- headers: {
1607
- [name: string]: unknown;
1608
- };
1609
- content?: never;
1610
- };
1611
- };
1612
- };
1613
- delete?: never;
1614
- options?: never;
1615
- head?: never;
1616
- patch?: never;
1617
- trace?: never;
1618
- };
1619
- "/api/v1/companies/{id}/logo": {
1620
- parameters: {
1621
- query?: never;
1622
- header?: never;
1623
- path?: never;
1624
- cookie?: never;
1625
- };
1626
- /** Obtener logo de la empresa (PNG/JPG) */
1627
- get: {
1628
- parameters: {
1629
- query?: never;
1630
- header?: never;
1631
- path: {
1632
- id: string;
1633
- };
1634
- cookie?: never;
1635
- };
1636
- requestBody?: never;
1637
- responses: {
1638
- /** @description Default Response */
1639
- 200: {
1640
- headers: {
1641
- [name: string]: unknown;
1642
- };
1643
- content?: never;
1644
- };
1645
- };
1646
- };
1647
- put?: never;
1648
- /**
1649
- * Subir logo de la empresa (PNG/JPG, max 200KB)
1650
- * @description El logo aparecerá en los PDFs (A4 y ticket). Reemplaza el anterior.
1651
- */
1652
- post: {
1653
- parameters: {
1654
- query?: never;
1655
- header?: never;
1656
- path: {
1657
- id: string;
1658
- };
1659
- cookie?: never;
1660
- };
1661
- requestBody?: never;
1662
- responses: {
1663
- /** @description Default Response */
1664
- 200: {
1665
- headers: {
1666
- [name: string]: unknown;
1667
- };
1668
- content?: never;
1669
- };
1670
- };
1671
- };
1672
- /** Eliminar logo de la empresa */
1673
- delete: {
1674
- parameters: {
1675
- query?: never;
1676
- header?: never;
1677
- path: {
1678
- id: string;
1679
- };
1680
- cookie?: never;
1681
- };
1682
- requestBody?: never;
1683
- responses: {
1684
- /** @description Default Response */
1685
- 200: {
1686
- headers: {
1687
- [name: string]: unknown;
1688
- };
1689
- content?: never;
1690
- };
1691
- };
1692
- };
1693
- options?: never;
1694
- head?: never;
1695
- patch?: never;
1696
- trace?: never;
1697
- };
1698
- "/api/v1/webhooks": {
1699
- parameters: {
1700
- query?: never;
1701
- header?: never;
1702
- path?: never;
1703
- cookie?: never;
1704
- };
1705
- /** Listar webhooks (filtra por RUC opcional) */
1706
- get: {
1707
- parameters: {
1708
- query?: {
1709
- ruc?: string;
1710
- };
1711
- header?: never;
1712
- path?: never;
1713
- cookie?: never;
1714
- };
1715
- requestBody?: never;
1716
- responses: {
1717
- /** @description Default Response */
1718
- 200: {
1719
- headers: {
1720
- [name: string]: unknown;
1721
- };
1722
- content?: never;
1723
- };
1724
- };
1725
- };
1726
- put?: never;
1727
- /**
1728
- * Crear endpoint webhook
1729
- * @description Registra una URL que recibirá POSTs cuando ocurran los eventos suscritos. La respuesta incluye el `secret` (mostrado UNA sola vez) — guárdalo para verificar las firmas HMAC-SHA256.
1730
- */
1731
- post: {
1732
- parameters: {
1733
- query?: never;
1734
- header?: never;
1735
- path?: never;
1736
- cookie?: never;
1737
- };
1738
- requestBody: {
1739
- content: {
1740
- "application/json": {
1741
- empresaRuc: string;
1742
- /** Format: uri */
1743
- url: string;
1744
- events: ("document.accepted" | "document.rejected" | "document.queue_failed" | "document.retried" | "ticket.resolved")[];
1745
- description?: string;
1746
- };
1747
- };
1748
- };
1749
- responses: {
1750
- /** @description Default Response */
1751
- 200: {
1752
- headers: {
1753
- [name: string]: unknown;
1754
- };
1755
- content?: never;
1756
- };
1757
- };
1758
- };
1759
- delete?: never;
1760
- options?: never;
1761
- head?: never;
1762
- patch?: never;
1763
- trace?: never;
1764
- };
1765
- "/api/v1/webhooks/{id}": {
1766
- parameters: {
1767
- query?: never;
1768
- header?: never;
1769
- path?: never;
1770
- cookie?: never;
1771
- };
1772
- /** Detalle de webhook (sin secret) */
1773
- get: {
1774
- parameters: {
1775
- query?: never;
1776
- header?: never;
1777
- path: {
1778
- id: string;
1779
- };
1780
- cookie?: never;
1781
- };
1782
- requestBody?: never;
1783
- responses: {
1784
- /** @description Default Response */
1785
- 200: {
1786
- headers: {
1787
- [name: string]: unknown;
1788
- };
1789
- content?: never;
1790
- };
1791
- };
1792
- };
1793
- /** Actualizar webhook (url, eventos, activación) */
1794
- put: {
1795
- parameters: {
1796
- query?: never;
1797
- header?: never;
1798
- path: {
1799
- id: string;
1800
- };
1801
- cookie?: never;
1802
- };
1803
- requestBody: {
1804
- content: {
1805
- "application/json": {
1806
- /** Format: uri */
1807
- url?: string;
1808
- events?: ("document.accepted" | "document.rejected" | "document.queue_failed" | "document.retried" | "ticket.resolved")[];
1809
- description?: string;
1810
- isActive?: boolean;
1811
- };
1812
- };
1813
- };
1814
- responses: {
1815
- /** @description Default Response */
1816
- 200: {
1817
- headers: {
1818
- [name: string]: unknown;
1819
- };
1820
- content?: never;
1821
- };
1822
- };
1823
- };
1824
- post?: never;
1825
- /** Eliminar webhook (también elimina su historial de deliveries) */
1826
- delete: {
1827
- parameters: {
1828
- query?: never;
1829
- header?: never;
1830
- path: {
1831
- id: string;
1832
- };
1833
- cookie?: never;
1834
- };
1835
- requestBody?: never;
1836
- responses: {
1837
- /** @description Default Response */
1838
- 200: {
1839
- headers: {
1840
- [name: string]: unknown;
1841
- };
1842
- content?: never;
1843
- };
1844
- };
1845
- };
1846
- options?: never;
1847
- head?: never;
1848
- patch?: never;
1849
- trace?: never;
1850
- };
1851
- "/api/v1/webhooks/{id}/deliveries": {
1852
- parameters: {
1853
- query?: never;
1854
- header?: never;
1855
- path?: never;
1856
- cookie?: never;
1857
- };
1858
- /** Log de entregas del webhook */
1859
- get: {
1860
- parameters: {
1861
- query?: {
1862
- limit?: number;
1863
- success?: "true" | "false";
1864
- };
1865
- header?: never;
1866
- path: {
1867
- id: string;
1868
- };
1869
- cookie?: never;
1870
- };
1871
- requestBody?: never;
1872
- responses: {
1873
- /** @description Default Response */
1874
- 200: {
1875
- headers: {
1876
- [name: string]: unknown;
1877
- };
1878
- content?: never;
1879
- };
1880
- };
1881
- };
1882
- put?: never;
1883
- post?: never;
1884
- delete?: never;
1885
- options?: never;
1886
- head?: never;
1887
- patch?: never;
1888
- trace?: never;
1889
- };
1890
- "/api/v1/webhooks/{id}/deliveries/{deliveryId}/redeliver": {
1891
- parameters: {
1892
- query?: never;
1893
- header?: never;
1894
- path?: never;
1895
- cookie?: never;
1896
- };
1897
- get?: never;
1898
- put?: never;
1899
- /** Reintentar manualmente una entrega */
1900
- post: {
1901
- parameters: {
1902
- query?: never;
1903
- header?: never;
1904
- path: {
1905
- id: string;
1906
- deliveryId: string;
1907
- };
1908
- cookie?: never;
1909
- };
1910
- requestBody?: never;
1911
- responses: {
1912
- /** @description Default Response */
1913
- 200: {
1914
- headers: {
1915
- [name: string]: unknown;
1916
- };
1917
- content?: never;
1918
- };
1919
- };
1920
- };
1921
- delete?: never;
1922
- options?: never;
1923
- head?: never;
1924
- patch?: never;
1925
- trace?: never;
1926
- };
1927
- "/api/v1/webhooks/{id}/test": {
1928
- parameters: {
1929
- query?: never;
1930
- header?: never;
1931
- path?: never;
1932
- cookie?: never;
1933
- };
1934
- get?: never;
1935
- put?: never;
1936
- /** Enviar un evento de prueba (webhook.test) */
1937
- post: {
1938
- parameters: {
1939
- query?: never;
1940
- header?: never;
1941
- path: {
1942
- id: string;
1943
- };
1944
- cookie?: never;
1945
- };
1946
- requestBody?: never;
1947
- responses: {
1948
- /** @description Default Response */
1949
- 200: {
1950
- headers: {
1951
- [name: string]: unknown;
1952
- };
1953
- content?: never;
1954
- };
1955
- };
1956
- };
1957
- delete?: never;
1958
- options?: never;
1959
- head?: never;
1960
- patch?: never;
1961
- trace?: never;
1962
- };
1963
- "/api/v1/webhooks/{id}/rotate-secret": {
1964
- parameters: {
1965
- query?: never;
1966
- header?: never;
1967
- path?: never;
1968
- cookie?: never;
1969
- };
1970
- get?: never;
1971
- put?: never;
1972
- /**
1973
- * Rotar el secret de firma (devuelto UNA sola vez)
1974
- * @description Genera un nuevo secret HMAC y lo devuelve una única vez. Las firmas de entregas posteriores usarán el nuevo secret; actualiza tu receptor antes de rotar.
1975
- */
1976
- post: {
1977
- parameters: {
1978
- query?: never;
1979
- header?: never;
1980
- path: {
1981
- id: string;
1982
- };
1983
- cookie?: never;
1984
- };
1985
- requestBody?: never;
1986
- responses: {
1987
- /** @description Default Response */
1988
- 200: {
1989
- headers: {
1990
- [name: string]: unknown;
1991
- };
1992
- content?: never;
1993
- };
1994
- };
1995
- };
1996
- delete?: never;
1997
- options?: never;
1998
- head?: never;
1999
- patch?: never;
2000
- trace?: never;
2001
- };
2002
- "/api/v1/companies/{id}/branches": {
2003
- parameters: {
2004
- query?: never;
2005
- header?: never;
2006
- path?: never;
2007
- cookie?: never;
2008
- };
2009
- /** Listar establecimientos (sucursales) de una empresa */
2010
- get: {
2011
- parameters: {
2012
- query?: never;
2013
- header?: never;
2014
- path: {
2015
- id: string;
2016
- };
2017
- cookie?: never;
2018
- };
2019
- requestBody?: never;
2020
- responses: {
2021
- /** @description Default Response */
2022
- 200: {
2023
- headers: {
2024
- [name: string]: unknown;
2025
- };
2026
- content?: never;
2027
- };
2028
- };
2029
- };
2030
- put?: never;
2031
- /**
2032
- * Crear establecimiento (sucursal)
2033
- * @description El código debe coincidir con el que SUNAT asignó a la sucursal al registrarla en el portal SOL (Mis Trámites > Establecimientos Anexos).
2034
- */
2035
- post: {
2036
- parameters: {
2037
- query?: never;
2038
- header?: never;
2039
- path: {
2040
- id: string;
2041
- };
2042
- cookie?: never;
2043
- };
2044
- requestBody: {
2045
- content: {
2046
- "application/json": {
2047
- codigo: string;
2048
- nombre?: string;
2049
- ubigeo?: string;
2050
- direccion?: string;
2051
- departamento?: string;
2052
- provincia?: string;
2053
- distrito?: string;
2054
- urbanizacion?: string;
2055
- /** @default true */
2056
- isActive?: boolean;
2057
- };
2058
- };
2059
- };
2060
- responses: {
2061
- /** @description Default Response */
2062
- 200: {
2063
- headers: {
2064
- [name: string]: unknown;
2065
- };
2066
- content?: never;
2067
- };
2068
- };
2069
- };
2070
- delete?: never;
2071
- options?: never;
2072
- head?: never;
2073
- patch?: never;
2074
- trace?: never;
2075
- };
2076
- "/api/v1/companies/{id}/branches/{branchId}": {
2077
- parameters: {
2078
- query?: never;
2079
- header?: never;
2080
- path?: never;
2081
- cookie?: never;
2082
- };
2083
- get?: never;
2084
- /** Actualizar establecimiento */
2085
- put: {
2086
- parameters: {
2087
- query?: never;
2088
- header?: never;
2089
- path: {
2090
- id: string;
2091
- branchId: string;
2092
- };
2093
- cookie?: never;
2094
- };
2095
- requestBody: {
2096
- content: {
2097
- "application/json": {
2098
- nombre?: string;
2099
- ubigeo?: string;
2100
- direccion?: string;
2101
- departamento?: string;
2102
- provincia?: string;
2103
- distrito?: string;
2104
- urbanizacion?: string;
2105
- /** @default true */
2106
- isActive?: boolean;
2107
- };
2273
+ query?: {
2274
+ ruc?: string;
2108
2275
  };
2276
+ header?: never;
2277
+ path?: never;
2278
+ cookie?: never;
2109
2279
  };
2280
+ requestBody?: never;
2110
2281
  responses: {
2111
2282
  /** @description Default Response */
2112
2283
  200: {
@@ -2117,22 +2288,30 @@ export interface paths {
2117
2288
  };
2118
2289
  };
2119
2290
  };
2120
- post?: never;
2291
+ put?: never;
2121
2292
  /**
2122
- * Desactivar establecimiento (soft-delete)
2123
- * @description No se elimina físicamente porque puede haber documentos emitidos desde ahí. Solo se desactiva (isActive=false).
2293
+ * Crear endpoint webhook
2294
+ * @description Registra una URL que recibirá POSTs cuando ocurran los eventos suscritos. La respuesta incluye el `secret` (mostrado UNA sola vez) — guárdalo para verificar las firmas HMAC-SHA256.
2124
2295
  */
2125
- delete: {
2296
+ post: {
2126
2297
  parameters: {
2127
2298
  query?: never;
2128
2299
  header?: never;
2129
- path: {
2130
- id: string;
2131
- branchId: string;
2132
- };
2300
+ path?: never;
2133
2301
  cookie?: never;
2134
2302
  };
2135
- requestBody?: never;
2303
+ requestBody: {
2304
+ content: {
2305
+ "application/json": {
2306
+ empresaRuc: string;
2307
+ /** Format: uri */
2308
+ url: string;
2309
+ events: ("document.accepted" | "document.rejected" | "document.queue_failed" | "document.retried" | "ticket.resolved")[];
2310
+ description?: string;
2311
+ secret?: string;
2312
+ };
2313
+ };
2314
+ };
2136
2315
  responses: {
2137
2316
  /** @description Default Response */
2138
2317
  200: {
@@ -2143,24 +2322,27 @@ export interface paths {
2143
2322
  };
2144
2323
  };
2145
2324
  };
2325
+ delete?: never;
2146
2326
  options?: never;
2147
2327
  head?: never;
2148
2328
  patch?: never;
2149
2329
  trace?: never;
2150
2330
  };
2151
- "/api/v1/api-keys": {
2331
+ "/api/v1/webhooks/{id}": {
2152
2332
  parameters: {
2153
2333
  query?: never;
2154
2334
  header?: never;
2155
2335
  path?: never;
2156
2336
  cookie?: never;
2157
2337
  };
2158
- /** Listar API keys (solo master, sin mostrar el secret) */
2338
+ /** Detalle de webhook (sin secret) */
2159
2339
  get: {
2160
2340
  parameters: {
2161
2341
  query?: never;
2162
2342
  header?: never;
2163
- path?: never;
2343
+ path: {
2344
+ id: string;
2345
+ };
2164
2346
  cookie?: never;
2165
2347
  };
2166
2348
  requestBody?: never;
@@ -2174,30 +2356,24 @@ export interface paths {
2174
2356
  };
2175
2357
  };
2176
2358
  };
2177
- put?: never;
2178
- /**
2179
- * Crear API key (solo master)
2180
- * @description El campo `key` (fact_live_...) se muestra UNA sola vez. Guárdalo. No se puede recuperar.
2181
- */
2182
- post: {
2359
+ /** Actualizar webhook (url, eventos, activación) */
2360
+ put: {
2183
2361
  parameters: {
2184
2362
  query?: never;
2185
2363
  header?: never;
2186
- path?: never;
2364
+ path: {
2365
+ id: string;
2366
+ };
2187
2367
  cookie?: never;
2188
2368
  };
2189
2369
  requestBody: {
2190
2370
  content: {
2191
2371
  "application/json": {
2192
- name: string;
2193
- empresaRuc?: string;
2194
- /** Format: date-time */
2195
- expiresAt?: string;
2196
- /**
2197
- * @default live
2198
- * @enum {string}
2199
- */
2200
- env?: "live" | "test";
2372
+ /** Format: uri */
2373
+ url?: string;
2374
+ events?: ("document.accepted" | "document.rejected" | "document.queue_failed" | "document.retried" | "ticket.resolved")[];
2375
+ description?: string;
2376
+ isActive?: boolean;
2201
2377
  };
2202
2378
  };
2203
2379
  };
@@ -2211,23 +2387,8 @@ export interface paths {
2211
2387
  };
2212
2388
  };
2213
2389
  };
2214
- delete?: never;
2215
- options?: never;
2216
- head?: never;
2217
- patch?: never;
2218
- trace?: never;
2219
- };
2220
- "/api/v1/api-keys/{id}": {
2221
- parameters: {
2222
- query?: never;
2223
- header?: never;
2224
- path?: never;
2225
- cookie?: never;
2226
- };
2227
- get?: never;
2228
- put?: never;
2229
2390
  post?: never;
2230
- /** Revocar API key (soft delete) */
2391
+ /** Eliminar webhook (también elimina su historial de deliveries) */
2231
2392
  delete: {
2232
2393
  parameters: {
2233
2394
  query?: never;
@@ -2253,29 +2414,24 @@ export interface paths {
2253
2414
  patch?: never;
2254
2415
  trace?: never;
2255
2416
  };
2256
- "/api/v1/audit-logs": {
2417
+ "/api/v1/webhooks/{id}/deliveries": {
2257
2418
  parameters: {
2258
2419
  query?: never;
2259
2420
  header?: never;
2260
2421
  path?: never;
2261
2422
  cookie?: never;
2262
2423
  };
2263
- /**
2264
- * Consultar audit log (solo master)
2265
- * @description Lista de acciones mutantes (POST/PUT/PATCH/DELETE) ejecutadas en la API.
2266
- */
2424
+ /** Log de entregas del webhook */
2267
2425
  get: {
2268
2426
  parameters: {
2269
2427
  query?: {
2270
- actor?: string;
2271
- resourceId?: string;
2272
- method?: "POST" | "PUT" | "PATCH" | "DELETE";
2273
- fechaDesde?: string;
2274
- fechaHasta?: string;
2275
2428
  limit?: number;
2429
+ success?: "true" | "false";
2276
2430
  };
2277
2431
  header?: never;
2278
- path?: never;
2432
+ path: {
2433
+ id: string;
2434
+ };
2279
2435
  cookie?: never;
2280
2436
  };
2281
2437
  requestBody?: never;
@@ -2297,55 +2453,27 @@ export interface paths {
2297
2453
  patch?: never;
2298
2454
  trace?: never;
2299
2455
  };
2300
- "/api/v1/tenants": {
2456
+ "/api/v1/webhooks/{id}/deliveries/{deliveryId}/redeliver": {
2301
2457
  parameters: {
2302
2458
  query?: never;
2303
2459
  header?: never;
2304
2460
  path?: never;
2305
2461
  cookie?: never;
2306
2462
  };
2307
- /** Listar tenants (solo master) */
2308
- get: {
2309
- parameters: {
2310
- query?: never;
2311
- header?: never;
2312
- path?: never;
2313
- cookie?: never;
2314
- };
2315
- requestBody?: never;
2316
- responses: {
2317
- /** @description Default Response */
2318
- 200: {
2319
- headers: {
2320
- [name: string]: unknown;
2321
- };
2322
- content?: never;
2323
- };
2324
- };
2325
- };
2463
+ get?: never;
2326
2464
  put?: never;
2327
- /** Crear tenant (cuenta cliente) */
2465
+ /** Reintentar manualmente una entrega */
2328
2466
  post: {
2329
2467
  parameters: {
2330
2468
  query?: never;
2331
2469
  header?: never;
2332
- path?: never;
2333
- cookie?: never;
2334
- };
2335
- requestBody: {
2336
- content: {
2337
- "application/json": {
2338
- name: string;
2339
- /** Format: email */
2340
- email?: string;
2341
- /**
2342
- * @default free
2343
- * @enum {string}
2344
- */
2345
- plan?: "free" | "starter" | "pro" | "enterprise";
2346
- };
2470
+ path: {
2471
+ id: string;
2472
+ deliveryId: string;
2347
2473
  };
2474
+ cookie?: never;
2348
2475
  };
2476
+ requestBody?: never;
2349
2477
  responses: {
2350
2478
  /** @description Default Response */
2351
2479
  200: {
@@ -2362,15 +2490,17 @@ export interface paths {
2362
2490
  patch?: never;
2363
2491
  trace?: never;
2364
2492
  };
2365
- "/api/v1/tenants/{id}": {
2493
+ "/api/v1/webhooks/{id}/test": {
2366
2494
  parameters: {
2367
2495
  query?: never;
2368
2496
  header?: never;
2369
2497
  path?: never;
2370
2498
  cookie?: never;
2371
2499
  };
2372
- /** Detalle de tenant */
2373
- get: {
2500
+ get?: never;
2501
+ put?: never;
2502
+ /** Enviar un evento de prueba (webhook.test) */
2503
+ post: {
2374
2504
  parameters: {
2375
2505
  query?: never;
2376
2506
  header?: never;
@@ -2390,8 +2520,26 @@ export interface paths {
2390
2520
  };
2391
2521
  };
2392
2522
  };
2393
- /** Actualizar tenant */
2394
- put: {
2523
+ delete?: never;
2524
+ options?: never;
2525
+ head?: never;
2526
+ patch?: never;
2527
+ trace?: never;
2528
+ };
2529
+ "/api/v1/webhooks/{id}/rotate-secret": {
2530
+ parameters: {
2531
+ query?: never;
2532
+ header?: never;
2533
+ path?: never;
2534
+ cookie?: never;
2535
+ };
2536
+ get?: never;
2537
+ put?: never;
2538
+ /**
2539
+ * Rotar el secret de firma (devuelto UNA sola vez)
2540
+ * @description Genera un nuevo secret HMAC y lo devuelve una única vez. Las firmas de entregas posteriores usarán el nuevo secret; actualiza tu receptor antes de rotar.
2541
+ */
2542
+ post: {
2395
2543
  parameters: {
2396
2544
  query?: never;
2397
2545
  header?: never;
@@ -2400,18 +2548,7 @@ export interface paths {
2400
2548
  };
2401
2549
  cookie?: never;
2402
2550
  };
2403
- requestBody: {
2404
- content: {
2405
- "application/json": {
2406
- name?: string;
2407
- /** Format: email */
2408
- email?: string;
2409
- /** @enum {string} */
2410
- plan?: "free" | "starter" | "pro" | "enterprise";
2411
- isActive?: boolean;
2412
- };
2413
- };
2414
- };
2551
+ requestBody?: never;
2415
2552
  responses: {
2416
2553
  /** @description Default Response */
2417
2554
  200: {
@@ -2422,7 +2559,6 @@ export interface paths {
2422
2559
  };
2423
2560
  };
2424
2561
  };
2425
- post?: never;
2426
2562
  delete?: never;
2427
2563
  options?: never;
2428
2564
  head?: never;
@@ -2570,40 +2706,6 @@ export interface paths {
2570
2706
  patch?: never;
2571
2707
  trace?: never;
2572
2708
  };
2573
- "/api/v1/usage": {
2574
- parameters: {
2575
- query?: never;
2576
- header?: never;
2577
- path?: never;
2578
- cookie?: never;
2579
- };
2580
- /** Consumo del tenant actual (docs emitidos / límite del plan) */
2581
- get: {
2582
- parameters: {
2583
- query?: never;
2584
- header?: never;
2585
- path?: never;
2586
- cookie?: never;
2587
- };
2588
- requestBody?: never;
2589
- responses: {
2590
- /** @description Default Response */
2591
- 200: {
2592
- headers: {
2593
- [name: string]: unknown;
2594
- };
2595
- content?: never;
2596
- };
2597
- };
2598
- };
2599
- put?: never;
2600
- post?: never;
2601
- delete?: never;
2602
- options?: never;
2603
- head?: never;
2604
- patch?: never;
2605
- trace?: never;
2606
- };
2607
2709
  "/api/v1/auth/signup": {
2608
2710
  parameters: {
2609
2711
  query?: never;
@@ -3056,6 +3158,91 @@ export interface paths {
3056
3158
  patch?: never;
3057
3159
  trace?: never;
3058
3160
  };
3161
+ "/api/v1/catalogs": {
3162
+ parameters: {
3163
+ query?: never;
3164
+ header?: never;
3165
+ path?: never;
3166
+ cookie?: never;
3167
+ };
3168
+ /**
3169
+ * Listar catálogos SUNAT (código → descripción)
3170
+ * @description Devuelve los catálogos SUNAT más usados y los específicos de guías de remisión (01 tipo doc, 06 doc identidad, 18 modalidad, 20 motivo traslado, 61 doc relacionado, 07 afectación IGV, 25 unidad, etc.).
3171
+ */
3172
+ get: {
3173
+ parameters: {
3174
+ query?: never;
3175
+ header?: never;
3176
+ path?: never;
3177
+ cookie?: never;
3178
+ };
3179
+ requestBody?: never;
3180
+ responses: {
3181
+ /** @description Default Response */
3182
+ 200: {
3183
+ headers: {
3184
+ [name: string]: unknown;
3185
+ };
3186
+ content: {
3187
+ "application/json": {
3188
+ success: boolean;
3189
+ data: {
3190
+ key: string;
3191
+ name: string;
3192
+ items: {
3193
+ code: string;
3194
+ label: string;
3195
+ }[];
3196
+ }[];
3197
+ };
3198
+ };
3199
+ };
3200
+ };
3201
+ };
3202
+ put?: never;
3203
+ post?: never;
3204
+ delete?: never;
3205
+ options?: never;
3206
+ head?: never;
3207
+ patch?: never;
3208
+ trace?: never;
3209
+ };
3210
+ "/api/v1/catalogs/{key}": {
3211
+ parameters: {
3212
+ query?: never;
3213
+ header?: never;
3214
+ path?: never;
3215
+ cookie?: never;
3216
+ };
3217
+ /** Obtener un catálogo por clave */
3218
+ get: {
3219
+ parameters: {
3220
+ query?: never;
3221
+ header?: never;
3222
+ path: {
3223
+ key: string;
3224
+ };
3225
+ cookie?: never;
3226
+ };
3227
+ requestBody?: never;
3228
+ responses: {
3229
+ /** @description Default Response */
3230
+ 200: {
3231
+ headers: {
3232
+ [name: string]: unknown;
3233
+ };
3234
+ content?: never;
3235
+ };
3236
+ };
3237
+ };
3238
+ put?: never;
3239
+ post?: never;
3240
+ delete?: never;
3241
+ options?: never;
3242
+ head?: never;
3243
+ patch?: never;
3244
+ trace?: never;
3245
+ };
3059
3246
  }
3060
3247
  export type webhooks = Record<string, never>;
3061
3248
  export interface components {
@@ -3068,3 +3255,4 @@ export interface components {
3068
3255
  }
3069
3256
  export type $defs = Record<string, never>;
3070
3257
  export type operations = Record<string, never>;
3258
+ //# sourceMappingURL=types.d.ts.map