@fiado/type-kit 3.609.0 → 3.611.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/_test_/unit/biometrics/BiometricEventTypeEnum.test.ts +35 -0
  2. package/_test_/unit/biometrics/BiometricVerificationResponse.test.ts +19 -0
  3. package/_test_/unit/kyc/KycProgressEnums.test.ts +20 -0
  4. package/_test_/unit/kyc/KycProofOfAddressCompletedV1.test.ts +24 -0
  5. package/_test_/unit/kyc/KycStepCompletedV1.test.ts +34 -0
  6. package/_test_/unit/kyc/KycVerificationChangedV1.test.ts +30 -0
  7. package/_test_/unit/kyc/KycVerificationProgressV1.test.ts +144 -0
  8. package/_test_/unit/loanCredit/customerReadDtos.test.ts +22 -0
  9. package/_test_/unit/retailLoan/contract.test.ts +5 -0
  10. package/_test_/unit/retailWizard/kycAttemptProgress.test.ts +131 -0
  11. package/bin/biometrics/dtos/responses/BiometricVerificationResponse.d.ts +2 -0
  12. package/bin/biometrics/dtos/responses/BiometricVerificationResponse.js +6 -0
  13. package/bin/biometrics/enums/BiometricEventTypeEnum.d.ts +7 -3
  14. package/bin/biometrics/enums/BiometricEventTypeEnum.js +6 -2
  15. package/bin/kyc/enums/KycFlowEnum.d.ts +5 -0
  16. package/bin/kyc/enums/KycFlowEnum.js +9 -0
  17. package/bin/kyc/enums/KycProgressStageEnum.d.ts +6 -0
  18. package/bin/kyc/enums/KycProgressStageEnum.js +10 -0
  19. package/bin/kyc/events/KycProofOfAddressCompletedV1.d.ts +2 -0
  20. package/bin/kyc/events/KycProofOfAddressCompletedV1.js +7 -0
  21. package/bin/kyc/events/KycStepCompletedV1.d.ts +5 -0
  22. package/bin/kyc/events/KycStepCompletedV1.js +14 -0
  23. package/bin/kyc/events/KycVerificationChangedV1.d.ts +2 -0
  24. package/bin/kyc/events/KycVerificationChangedV1.js +7 -0
  25. package/bin/kyc/events/KycVerificationProgressV1.d.ts +14 -0
  26. package/bin/kyc/events/KycVerificationProgressV1.js +63 -0
  27. package/bin/kyc/index.d.ts +3 -0
  28. package/bin/kyc/index.js +3 -0
  29. package/bin/loanCredit/dtos/responses/LoanCustomerCreditDocument.d.ts +9 -0
  30. package/bin/loanCredit/dtos/responses/LoanCustomerCreditDocument.js +2 -0
  31. package/bin/loanCredit/dtos/responses/LoanCustomerCreditDocumentUrl.d.ts +9 -0
  32. package/bin/loanCredit/dtos/responses/LoanCustomerCreditDocumentUrl.js +2 -0
  33. package/bin/loanCredit/index.d.ts +2 -0
  34. package/bin/loanCredit/index.js +2 -0
  35. package/bin/retailLoan/dtos/MyDocument.d.ts +2 -1
  36. package/bin/retailLoan/enums/MyDocumentGroupIdEnum.d.ts +2 -1
  37. package/bin/retailLoan/enums/MyDocumentGroupIdEnum.js +1 -0
  38. package/bin/retailLoan/enums/MyDocumentKindEnum.d.ts +2 -1
  39. package/bin/retailLoan/enums/MyDocumentKindEnum.js +1 -0
  40. package/bin/retailWizard/dtos/KycAttemptProgress.d.ts +14 -0
  41. package/bin/retailWizard/dtos/KycAttemptProgress.js +2 -0
  42. package/bin/retailWizard/dtos/KycStatusProgress.d.ts +7 -0
  43. package/bin/retailWizard/dtos/KycStatusProgress.js +2 -0
  44. package/bin/retailWizard/dtos/responses/KycPrepareResponse.d.ts +4 -0
  45. package/bin/retailWizard/dtos/responses/ProofOfAddressPrepareResponse.d.ts +2 -0
  46. package/bin/retailWizard/enums/KycAttemptStageEnum.d.ts +8 -0
  47. package/bin/retailWizard/enums/KycAttemptStageEnum.js +12 -0
  48. package/bin/retailWizard/index.d.ts +3 -0
  49. package/bin/retailWizard/index.js +3 -0
  50. package/package.json +1 -1
  51. package/src/biometrics/dtos/responses/BiometricVerificationResponse.ts +4 -0
  52. package/src/biometrics/enums/BiometricEventTypeEnum.ts +8 -2
  53. package/src/kyc/enums/KycFlowEnum.ts +5 -0
  54. package/src/kyc/enums/KycProgressStageEnum.ts +6 -0
  55. package/src/kyc/events/KycProofOfAddressCompletedV1.ts +4 -0
  56. package/src/kyc/events/KycStepCompletedV1.ts +9 -0
  57. package/src/kyc/events/KycVerificationChangedV1.ts +4 -0
  58. package/src/kyc/events/KycVerificationProgressV1.ts +33 -0
  59. package/src/kyc/index.ts +3 -0
  60. package/src/loanCredit/dtos/responses/LoanCustomerCreditDocument.ts +10 -0
  61. package/src/loanCredit/dtos/responses/LoanCustomerCreditDocumentUrl.ts +10 -0
  62. package/src/loanCredit/index.ts +2 -0
  63. package/src/retailLoan/dtos/MyDocument.ts +2 -1
  64. package/src/retailLoan/enums/MyDocumentGroupIdEnum.ts +1 -0
  65. package/src/retailLoan/enums/MyDocumentKindEnum.ts +1 -0
  66. package/src/retailWizard/dtos/KycAttemptProgress.ts +15 -0
  67. package/src/retailWizard/dtos/KycStatusProgress.ts +8 -0
  68. package/src/retailWizard/dtos/responses/KycPrepareResponse.ts +4 -0
  69. package/src/retailWizard/dtos/responses/ProofOfAddressPrepareResponse.ts +2 -0
  70. package/src/retailWizard/enums/KycAttemptStageEnum.ts +8 -0
  71. package/src/retailWizard/index.ts +3 -0
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.KycStepCompletedV1 = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const KycFlowEnum_1 = require("../enums/KycFlowEnum");
15
16
  const KycSubCheckNameEnum_1 = require("../enums/KycSubCheckNameEnum");
16
17
  const IsKycStepStatusByStep_1 = require("../validators/IsKycStepStatusByStep");
17
18
  /**
@@ -91,3 +92,16 @@ __decorate([
91
92
  (0, class_validator_1.IsString)(),
92
93
  __metadata("design:type", String)
93
94
  ], KycStepCompletedV1.prototype, "metamapFlowId", void 0);
95
+ __decorate([
96
+ (0, class_transformer_1.Expose)(),
97
+ (0, class_validator_1.IsOptional)(),
98
+ (0, class_validator_1.IsString)(),
99
+ (0, class_validator_1.IsNotEmpty)(),
100
+ __metadata("design:type", String)
101
+ ], KycStepCompletedV1.prototype, "attemptId", void 0);
102
+ __decorate([
103
+ (0, class_transformer_1.Expose)(),
104
+ (0, class_validator_1.IsOptional)(),
105
+ (0, class_validator_1.IsEnum)(KycFlowEnum_1.KycFlowEnum),
106
+ __metadata("design:type", String)
107
+ ], KycStepCompletedV1.prototype, "flow", void 0);
@@ -71,4 +71,6 @@ export declare class KycVerificationChangedV1 {
71
71
  * degradación segura (el consumidor lo pide y lo guarda él).
72
72
  */
73
73
  addressPushedToFiado?: boolean;
74
+ /** Intento del wizard que originó la verificación; el consumidor descarta los que no son el vigente. */
75
+ attemptId?: string;
74
76
  }
@@ -104,3 +104,10 @@ __decorate([
104
104
  (0, class_validator_1.IsBoolean)(),
105
105
  __metadata("design:type", Boolean)
106
106
  ], KycVerificationChangedV1.prototype, "addressPushedToFiado", void 0);
107
+ __decorate([
108
+ (0, class_transformer_1.Expose)(),
109
+ (0, class_validator_1.IsOptional)(),
110
+ (0, class_validator_1.IsString)(),
111
+ (0, class_validator_1.IsNotEmpty)(),
112
+ __metadata("design:type", String)
113
+ ], KycVerificationChangedV1.prototype, "attemptId", void 0);
@@ -0,0 +1,14 @@
1
+ import { KycFlowEnum } from '../enums/KycFlowEnum';
2
+ import { KycProgressStageEnum } from '../enums/KycProgressStageEnum';
3
+ /** Avance de una verificación de Metamap (started, inputs_completed, expired) que publica `kyc-metamap-webhook`. */
4
+ export declare class KycVerificationProgressV1 {
5
+ eventType: 'KycVerificationProgressV1';
6
+ stage: KycProgressStageEnum;
7
+ flow: KycFlowEnum;
8
+ verificationId: string;
9
+ directoryId: string;
10
+ /** Intento del wizard que originó la verificación; ausente en sesiones previas al despliegue. */
11
+ attemptId?: string;
12
+ /** ISO-8601 en UTC con `Z`, igual que los demás eventos de la cola. */
13
+ occurredAt: string;
14
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KycVerificationProgressV1 = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const KycFlowEnum_1 = require("../enums/KycFlowEnum");
16
+ const KycProgressStageEnum_1 = require("../enums/KycProgressStageEnum");
17
+ /** Avance de una verificación de Metamap (started, inputs_completed, expired) que publica `kyc-metamap-webhook`. */
18
+ class KycVerificationProgressV1 {
19
+ }
20
+ exports.KycVerificationProgressV1 = KycVerificationProgressV1;
21
+ __decorate([
22
+ (0, class_transformer_1.Expose)(),
23
+ (0, class_validator_1.IsIn)(['KycVerificationProgressV1']),
24
+ __metadata("design:type", String)
25
+ ], KycVerificationProgressV1.prototype, "eventType", void 0);
26
+ __decorate([
27
+ (0, class_transformer_1.Expose)(),
28
+ (0, class_validator_1.IsEnum)(KycProgressStageEnum_1.KycProgressStageEnum),
29
+ __metadata("design:type", String)
30
+ ], KycVerificationProgressV1.prototype, "stage", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsEnum)(KycFlowEnum_1.KycFlowEnum),
34
+ __metadata("design:type", String)
35
+ ], KycVerificationProgressV1.prototype, "flow", void 0);
36
+ __decorate([
37
+ (0, class_transformer_1.Expose)(),
38
+ (0, class_validator_1.IsString)(),
39
+ (0, class_validator_1.IsNotEmpty)(),
40
+ __metadata("design:type", String)
41
+ ], KycVerificationProgressV1.prototype, "verificationId", void 0);
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ (0, class_validator_1.IsString)(),
45
+ (0, class_validator_1.IsNotEmpty)(),
46
+ __metadata("design:type", String)
47
+ ], KycVerificationProgressV1.prototype, "directoryId", void 0);
48
+ __decorate([
49
+ (0, class_transformer_1.Expose)(),
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ (0, class_validator_1.IsNotEmpty)(),
53
+ __metadata("design:type", String)
54
+ ], KycVerificationProgressV1.prototype, "attemptId", void 0);
55
+ __decorate([
56
+ (0, class_transformer_1.Expose)(),
57
+ (0, class_validator_1.IsString)(),
58
+ (0, class_validator_1.IsISO8601)({ strict: true }),
59
+ (0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, {
60
+ message: 'occurredAt debe ser ISO-8601 en UTC con Z (ej. 2026-10-28T10:05:00.000Z)',
61
+ }),
62
+ __metadata("design:type", String)
63
+ ], KycVerificationProgressV1.prototype, "occurredAt", void 0);
@@ -3,6 +3,8 @@ export * from './enums/KycSubCheckStatusEnum';
3
3
  export * from './enums/KycWatchlistStatusEnum';
4
4
  export * from './enums/KycSubCheckNameEnum';
5
5
  export * from './enums/ProofAddressStatusEnum';
6
+ export * from './enums/KycProgressStageEnum';
7
+ export * from './enums/KycFlowEnum';
6
8
  export * from './dtos/KycSubChecks';
7
9
  export * from './validators/IsKycStepStatusByStep';
8
10
  export * from './helpers/applyKycStep';
@@ -12,3 +14,4 @@ export * from './dtos/responses/KycByDirectoryResponse';
12
14
  export * from './events/KycVerificationChangedV1';
13
15
  export * from './events/KycStepCompletedV1';
14
16
  export * from './events/KycProofOfAddressCompletedV1';
17
+ export * from './events/KycVerificationProgressV1';
package/bin/kyc/index.js CHANGED
@@ -21,6 +21,8 @@ __exportStar(require("./enums/KycSubCheckStatusEnum"), exports);
21
21
  __exportStar(require("./enums/KycWatchlistStatusEnum"), exports);
22
22
  __exportStar(require("./enums/KycSubCheckNameEnum"), exports);
23
23
  __exportStar(require("./enums/ProofAddressStatusEnum"), exports);
24
+ __exportStar(require("./enums/KycProgressStageEnum"), exports);
25
+ __exportStar(require("./enums/KycFlowEnum"), exports);
24
26
  // Sub-pasos descompuestos (SureKeep F2)
25
27
  __exportStar(require("./dtos/KycSubChecks"), exports);
26
28
  // Validators
@@ -36,3 +38,4 @@ __exportStar(require("./dtos/responses/KycByDirectoryResponse"), exports);
36
38
  __exportStar(require("./events/KycVerificationChangedV1"), exports);
37
39
  __exportStar(require("./events/KycStepCompletedV1"), exports);
38
40
  __exportStar(require("./events/KycProofOfAddressCompletedV1"), exports);
41
+ __exportStar(require("./events/KycVerificationProgressV1"), exports);
@@ -0,0 +1,9 @@
1
+ import { ContractTypeEnum } from '../../enums/ContractTypeEnum';
2
+ /** Documento del ciclo de vida de un crédito, visto por su acreditado. */
3
+ export interface LoanCustomerCreditDocument {
4
+ documentType: ContractTypeEnum;
5
+ /** Llave del documento: el paymentId en un comprobante, el periodo `YYYY-MM` en un estado de cuenta. */
6
+ documentKey: string;
7
+ /** ISO-8601; `null` mientras el PDF no se haya generado. */
8
+ generatedAt: string | null;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { ContractTypeEnum } from '../../enums/ContractTypeEnum';
2
+ /** Enlace prefirmado y temporal del PDF de un documento del ciclo de vida. `expiresAt` en ISO-8601. */
3
+ export interface LoanCustomerCreditDocumentUrl {
4
+ creditId: string;
5
+ documentType: ContractTypeEnum;
6
+ documentKey: string;
7
+ url: string;
8
+ expiresAt: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -42,6 +42,8 @@ export * from './dtos/responses/LoanPaymentListItem';
42
42
  export * from './dtos/responses/LoanContractDownloadUrl';
43
43
  export * from './dtos/responses/LoanContractPreview';
44
44
  export * from './dtos/responses/LoanContractResponse';
45
+ export * from './dtos/responses/LoanCustomerCreditDocument';
46
+ export * from './dtos/responses/LoanCustomerCreditDocumentUrl';
45
47
  export * from './dtos/responses/OriginateLoanCreditResponse';
46
48
  export * from './dtos/responses/QuoteLoanCreditResponse';
47
49
  export * from './dtos/responses/SignLoanCreditResponse';
@@ -66,6 +66,8 @@ __exportStar(require("./dtos/responses/LoanPaymentListItem"), exports);
66
66
  __exportStar(require("./dtos/responses/LoanContractDownloadUrl"), exports);
67
67
  __exportStar(require("./dtos/responses/LoanContractPreview"), exports);
68
68
  __exportStar(require("./dtos/responses/LoanContractResponse"), exports);
69
+ __exportStar(require("./dtos/responses/LoanCustomerCreditDocument"), exports);
70
+ __exportStar(require("./dtos/responses/LoanCustomerCreditDocumentUrl"), exports);
69
71
  __exportStar(require("./dtos/responses/OriginateLoanCreditResponse"), exports);
70
72
  __exportStar(require("./dtos/responses/QuoteLoanCreditResponse"), exports);
71
73
  __exportStar(require("./dtos/responses/SignLoanCreditResponse"), exports);
@@ -4,7 +4,8 @@ import { MyDocumentKindEnum } from '../enums/MyDocumentKindEnum';
4
4
  import { MyDocumentStatusEnum } from '../enums/MyDocumentStatusEnum';
5
5
  /**
6
6
  * Un documento del crédito. `documentRef` sigue la convención del módulo de la app:
7
- * `doc-contract-<contractId>` para contratos y `doc-stmt-YYYY-MM` para estados de cuenta.
7
+ * `doc-contract-<contractId>` para contratos, `doc-stmt-YYYY-MM` para estados de cuenta y
8
+ * `doc-receipt-<paymentId>` para comprobantes de pago.
8
9
  */
9
10
  export interface MyDocument {
10
11
  documentRef: string;
@@ -1,5 +1,6 @@
1
1
  /** Ids de grupo que exige el módulo de la app (`DocumentGroupList`): minúsculas a propósito. */
2
2
  export declare enum MyDocumentGroupIdEnum {
3
3
  CONTRACT = "contract",
4
- MONTHLY = "monthly"
4
+ MONTHLY = "monthly",
5
+ PAYMENT_RECEIPTS = "receipts"
5
6
  }
@@ -6,4 +6,5 @@ var MyDocumentGroupIdEnum;
6
6
  (function (MyDocumentGroupIdEnum) {
7
7
  MyDocumentGroupIdEnum["CONTRACT"] = "contract";
8
8
  MyDocumentGroupIdEnum["MONTHLY"] = "monthly";
9
+ MyDocumentGroupIdEnum["PAYMENT_RECEIPTS"] = "receipts";
9
10
  })(MyDocumentGroupIdEnum || (exports.MyDocumentGroupIdEnum = MyDocumentGroupIdEnum = {}));
@@ -1,4 +1,5 @@
1
1
  export declare enum MyDocumentKindEnum {
2
2
  CONTRACT = "CONTRACT",
3
- MONTHLY_STATEMENT = "MONTHLY_STATEMENT"
3
+ MONTHLY_STATEMENT = "MONTHLY_STATEMENT",
4
+ PAYMENT_RECEIPT = "PAYMENT_RECEIPT"
4
5
  }
@@ -5,4 +5,5 @@ var MyDocumentKindEnum;
5
5
  (function (MyDocumentKindEnum) {
6
6
  MyDocumentKindEnum["CONTRACT"] = "CONTRACT";
7
7
  MyDocumentKindEnum["MONTHLY_STATEMENT"] = "MONTHLY_STATEMENT";
8
+ MyDocumentKindEnum["PAYMENT_RECEIPT"] = "PAYMENT_RECEIPT";
8
9
  })(MyDocumentKindEnum || (exports.MyDocumentKindEnum = MyDocumentKindEnum = {}));
@@ -0,0 +1,14 @@
1
+ import { KycModalityEnum } from '../../retailCustomer/enums/KycModalityEnum';
2
+ import { KycAttemptStageEnum } from '../enums/KycAttemptStageEnum';
3
+ /** Avance del intento vigente de un flujo KYC, tal como lo devuelve `GET kyc/status`. */
4
+ export interface KycAttemptProgress {
5
+ attemptId: string;
6
+ modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
7
+ /** `shortUrl` del QR; ausente en `STORE_DEVICE`. */
8
+ link?: string;
9
+ stage: KycAttemptStageEnum;
10
+ /** Cuándo entró a la etapa actual, ISO-8601 UTC. */
11
+ stageAt: string;
12
+ /** Fecha del prepare, ISO-8601 UTC; el front mide contra ella el tope de 25 min. */
13
+ attemptStartedAt: string;
14
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import type { KycAttemptProgress } from './KycAttemptProgress';
2
+ /** Bloque `progress` de `GET kyc/status`: el intento vigente de cada flujo, o `null` si no hay. */
3
+ export interface KycStatusProgress {
4
+ identity: KycAttemptProgress | null;
5
+ facematch: KycAttemptProgress | null;
6
+ proofOfAddress: KycAttemptProgress | null;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -52,6 +52,8 @@ export interface KycSdkMetadata {
52
52
  * domicilio del documento de identidad: `kyc-metamap-webhook` rutea por este campo.
53
53
  */
54
54
  kycStep?: KycMetadataStepEnum;
55
+ /** Intento del wizard que originó la verificación; el webhook lo copia a cada evento. */
56
+ attemptId?: string;
55
57
  }
56
58
  /**
57
59
  * Paso del onboarding que originó una verificación, tal como viaja en `KycSdkMetadata.kycStep`.
@@ -94,6 +96,8 @@ export interface KycPrepareResponse {
94
96
  * (`KycManualRequest`). Por eso el tipo se estrecha a las dos que el SDK puede ejecutar.
95
97
  */
96
98
  modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
99
+ /** Intento que abrió este prepare; ausente cuando no se crea intento: alreadyVerified o bypass de dev. */
100
+ attemptId?: string;
97
101
  /** STORE_DEVICE — clientId de la cuenta Metamap (mismo valor en prod y dev). */
98
102
  clientId?: string;
99
103
  /** STORE_DEVICE — flow de Metamap por país; sale de la configuración del wizard. */
@@ -13,6 +13,8 @@ import { KycModalityEnum } from '../../../retailCustomer/enums/KycModalityEnum';
13
13
  export interface ProofOfAddressPrepareResponse {
14
14
  /** `MANUAL` no es una modalidad de `prepare`: la captura manual es su propio endpoint. */
15
15
  modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
16
+ /** Intento que abrió este prepare; ausente cuando alreadyHasAddress. */
17
+ attemptId?: string;
16
18
  /** STORE_DEVICE — clientId de la cuenta Metamap (mismo valor en prod y dev). */
17
19
  clientId?: string;
18
20
  /** STORE_DEVICE — flow de Metamap del comprobante de domicilio. */
@@ -0,0 +1,8 @@
1
+ /** Etapa del intento vigente de un flujo KYC del wizard; el rango de monotonía vive en el wizard. */
2
+ export declare enum KycAttemptStageEnum {
3
+ AWAITING_START = "AWAITING_START",
4
+ STARTED = "STARTED",
5
+ INPUTS_COMPLETED = "INPUTS_COMPLETED",
6
+ EXPIRED = "EXPIRED",
7
+ RESULT = "RESULT"
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KycAttemptStageEnum = void 0;
4
+ /** Etapa del intento vigente de un flujo KYC del wizard; el rango de monotonía vive en el wizard. */
5
+ var KycAttemptStageEnum;
6
+ (function (KycAttemptStageEnum) {
7
+ KycAttemptStageEnum["AWAITING_START"] = "AWAITING_START";
8
+ KycAttemptStageEnum["STARTED"] = "STARTED";
9
+ KycAttemptStageEnum["INPUTS_COMPLETED"] = "INPUTS_COMPLETED";
10
+ KycAttemptStageEnum["EXPIRED"] = "EXPIRED";
11
+ KycAttemptStageEnum["RESULT"] = "RESULT";
12
+ })(KycAttemptStageEnum || (exports.KycAttemptStageEnum = KycAttemptStageEnum = {}));
@@ -33,6 +33,7 @@ export * from './enums/LinePaymentTypeEnum';
33
33
  export * from './enums/WizardLineRoleEnum';
34
34
  export * from './enums/EmailStateEnum';
35
35
  export * from './enums/SaleChannelEnum';
36
+ export * from './enums/KycAttemptStageEnum';
36
37
  export * from './dtos/WizardConsents';
37
38
  export * from './dtos/WizardPayment';
38
39
  export * from './dtos/WizardProduct';
@@ -57,6 +58,8 @@ export * from './dtos/WizardReservedLine';
57
58
  export * from './dtos/WizardGiftLine';
58
59
  export * from './dtos/SaleLine';
59
60
  export * from './dtos/AccessorySaleLine';
61
+ export * from './dtos/KycAttemptProgress';
62
+ export * from './dtos/KycStatusProgress';
60
63
  export * from './dtos/WizardSession';
61
64
  export * from './dtos/OtpVerification';
62
65
  export * from './dtos/Sale';
@@ -52,6 +52,7 @@ __exportStar(require("./enums/LinePaymentTypeEnum"), exports);
52
52
  __exportStar(require("./enums/WizardLineRoleEnum"), exports);
53
53
  __exportStar(require("./enums/EmailStateEnum"), exports);
54
54
  __exportStar(require("./enums/SaleChannelEnum"), exports);
55
+ __exportStar(require("./enums/KycAttemptStageEnum"), exports);
55
56
  // DTOs anidados
56
57
  __exportStar(require("./dtos/WizardConsents"), exports);
57
58
  __exportStar(require("./dtos/WizardPayment"), exports);
@@ -79,6 +80,8 @@ __exportStar(require("./dtos/WizardReservedLine"), exports);
79
80
  __exportStar(require("./dtos/WizardGiftLine"), exports);
80
81
  __exportStar(require("./dtos/SaleLine"), exports);
81
82
  __exportStar(require("./dtos/AccessorySaleLine"), exports);
83
+ __exportStar(require("./dtos/KycAttemptProgress"), exports);
84
+ __exportStar(require("./dtos/KycStatusProgress"), exports);
82
85
  // Entidades principales (shapes de estado/persistencia — planas)
83
86
  __exportStar(require("./dtos/WizardSession"), exports);
84
87
  __exportStar(require("./dtos/OtpVerification"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.609.0",
3
+ "version": "3.611.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -138,6 +138,10 @@ export class BiometricVerificationResponse {
138
138
  @Expose() @IsISO8601({ strict: true })
139
139
  expiresAt!: string;
140
140
 
141
+ /** Cuándo el usuario terminó de subir su información. ISO-8601 UTC con `Z`; ausente si aún no. */
142
+ @Expose() @IsOptional() @IsISO8601({ strict: true })
143
+ inputsCompletedAt?: string;
144
+
141
145
  /** Cuándo alcanzó un estado terminal. Ausente mientras siga viva. */
142
146
  @Expose() @IsOptional() @IsISO8601({ strict: true })
143
147
  completedAt?: string;
@@ -3,8 +3,8 @@
3
3
  * lo que el consumer usa para decidir la transición de estado.
4
4
  *
5
5
  * Es el vocabulario NUESTRO, no el de Metamap: `kyc-metamap-webhook` traduce sus `eventName` a
6
- * estos cuatro antes de publicar. Así el consumer no aprende el catálogo de un proveedor externo, y
7
- * el día que entre otro proveedor traduce a los mismos cuatro.
6
+ * estos valores antes de publicar. Así el consumer no aprende el catálogo de un proveedor externo, y
7
+ * el día que entre otro proveedor traduce a los mismos valores.
8
8
  *
9
9
  * `biometrics-business` — Entrega 1.
10
10
  */
@@ -28,4 +28,10 @@ export enum BiometricEventTypeEnum {
28
28
  * contra `expiresAt` (DEC-015), así que una verificación vence aunque este evento nunca llegue.
29
29
  */
30
30
  VERIFICATION_EXPIRED = 'VERIFICATION_EXPIRED',
31
+
32
+ /** El usuario terminó de subir su información. Sigue en `IN_PROGRESS` y graba `inputsCompletedAt`. */
33
+ INPUTS_COMPLETED = 'INPUTS_COMPLETED',
34
+
35
+ /** El proveedor cambió el veredicto (revisión manual). Se trata igual que `VERIFICATION_COMPLETED`. */
36
+ UPDATED = 'UPDATED',
31
37
  }
@@ -0,0 +1,5 @@
1
+ /** Flujo de Metamap al que pertenece un evento; el webhook lo deriva de `metadata.kycStep`. */
2
+ export enum KycFlowEnum {
3
+ IDENTITY = 'IDENTITY',
4
+ PROOF_OF_ADDRESS = 'PROOF_OF_ADDRESS',
5
+ }
@@ -0,0 +1,6 @@
1
+ /** Etapa de avance de una verificación de Metamap, tal como la publica `kyc-metamap-webhook`. */
2
+ export enum KycProgressStageEnum {
3
+ STARTED = 'STARTED',
4
+ INPUTS_COMPLETED = 'INPUTS_COMPLETED',
5
+ EXPIRED = 'EXPIRED',
6
+ }
@@ -65,4 +65,8 @@ export class KycProofOfAddressCompletedV1 {
65
65
  message: 'occurredAt debe ser ISO-8601 en UTC con Z (ej. 2026-08-11T10:05:00.000Z): un offset rompe el orden léxico',
66
66
  })
67
67
  occurredAt!: string;
68
+
69
+ /** Intento del wizard que originó el comprobante; el consumidor descarta los que no son el vigente. */
70
+ @Expose() @IsOptional() @IsString() @IsNotEmpty()
71
+ attemptId?: string;
68
72
  }
@@ -1,5 +1,6 @@
1
1
  import { Expose } from 'class-transformer';
2
2
  import { IsEnum, IsIn, IsISO8601, IsNotEmpty, IsOptional, IsString, Matches, Validate } from 'class-validator';
3
+ import { KycFlowEnum } from '../enums/KycFlowEnum';
3
4
  import { KycSubCheckNameEnum } from '../enums/KycSubCheckNameEnum';
4
5
  import { KycSubCheckStatusEnum } from '../enums/KycSubCheckStatusEnum';
5
6
  import { KycWatchlistStatusEnum } from '../enums/KycWatchlistStatusEnum';
@@ -102,4 +103,12 @@ export class KycStepCompletedV1 {
102
103
  /** El flujo de Metamap que corrió. Solo para diagnóstico — nadie ramifica por él. */
103
104
  @Expose() @IsOptional() @IsString()
104
105
  metamapFlowId?: string;
106
+
107
+ /** Intento del wizard que originó la verificación; el consumidor descarta los que no son el vigente. */
108
+ @Expose() @IsOptional() @IsString() @IsNotEmpty()
109
+ attemptId?: string;
110
+
111
+ /** Flujo al que pertenece la estación, derivado de `metadata.kycStep`. */
112
+ @Expose() @IsOptional() @IsEnum(KycFlowEnum)
113
+ flow?: KycFlowEnum;
105
114
  }
@@ -95,4 +95,8 @@ export class KycVerificationChangedV1 {
95
95
  */
96
96
  @Expose() @IsOptional() @IsBoolean()
97
97
  addressPushedToFiado?: boolean;
98
+
99
+ /** Intento del wizard que originó la verificación; el consumidor descarta los que no son el vigente. */
100
+ @Expose() @IsOptional() @IsString() @IsNotEmpty()
101
+ attemptId?: string;
98
102
  }
@@ -0,0 +1,33 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsEnum, IsIn, IsISO8601, IsNotEmpty, IsOptional, IsString, Matches } from 'class-validator';
3
+ import { KycFlowEnum } from '../enums/KycFlowEnum';
4
+ import { KycProgressStageEnum } from '../enums/KycProgressStageEnum';
5
+
6
+ /** Avance de una verificación de Metamap (started, inputs_completed, expired) que publica `kyc-metamap-webhook`. */
7
+ export class KycVerificationProgressV1 {
8
+ @Expose() @IsIn(['KycVerificationProgressV1'])
9
+ eventType!: 'KycVerificationProgressV1';
10
+
11
+ @Expose() @IsEnum(KycProgressStageEnum)
12
+ stage!: KycProgressStageEnum;
13
+
14
+ @Expose() @IsEnum(KycFlowEnum)
15
+ flow!: KycFlowEnum;
16
+
17
+ @Expose() @IsString() @IsNotEmpty()
18
+ verificationId!: string;
19
+
20
+ @Expose() @IsString() @IsNotEmpty()
21
+ directoryId!: string;
22
+
23
+ /** Intento del wizard que originó la verificación; ausente en sesiones previas al despliegue. */
24
+ @Expose() @IsOptional() @IsString() @IsNotEmpty()
25
+ attemptId?: string;
26
+
27
+ /** ISO-8601 en UTC con `Z`, igual que los demás eventos de la cola. */
28
+ @Expose() @IsString() @IsISO8601({ strict: true })
29
+ @Matches(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, {
30
+ message: 'occurredAt debe ser ISO-8601 en UTC con Z (ej. 2026-10-28T10:05:00.000Z)',
31
+ })
32
+ occurredAt!: string;
33
+ }
package/src/kyc/index.ts CHANGED
@@ -5,6 +5,8 @@ export * from './enums/KycSubCheckStatusEnum';
5
5
  export * from './enums/KycWatchlistStatusEnum';
6
6
  export * from './enums/KycSubCheckNameEnum';
7
7
  export * from './enums/ProofAddressStatusEnum';
8
+ export * from './enums/KycProgressStageEnum';
9
+ export * from './enums/KycFlowEnum';
8
10
 
9
11
  // Sub-pasos descompuestos (SureKeep F2)
10
12
  export * from './dtos/KycSubChecks';
@@ -26,3 +28,4 @@ export * from './dtos/responses/KycByDirectoryResponse';
26
28
  export * from './events/KycVerificationChangedV1';
27
29
  export * from './events/KycStepCompletedV1';
28
30
  export * from './events/KycProofOfAddressCompletedV1';
31
+ export * from './events/KycVerificationProgressV1';
@@ -0,0 +1,10 @@
1
+ import { ContractTypeEnum } from '../../enums/ContractTypeEnum';
2
+
3
+ /** Documento del ciclo de vida de un crédito, visto por su acreditado. */
4
+ export interface LoanCustomerCreditDocument {
5
+ documentType: ContractTypeEnum;
6
+ /** Llave del documento: el paymentId en un comprobante, el periodo `YYYY-MM` en un estado de cuenta. */
7
+ documentKey: string;
8
+ /** ISO-8601; `null` mientras el PDF no se haya generado. */
9
+ generatedAt: string | null;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { ContractTypeEnum } from '../../enums/ContractTypeEnum';
2
+
3
+ /** Enlace prefirmado y temporal del PDF de un documento del ciclo de vida. `expiresAt` en ISO-8601. */
4
+ export interface LoanCustomerCreditDocumentUrl {
5
+ creditId: string;
6
+ documentType: ContractTypeEnum;
7
+ documentKey: string;
8
+ url: string;
9
+ expiresAt: string;
10
+ }
@@ -51,6 +51,8 @@ export * from './dtos/responses/LoanPaymentListItem';
51
51
  export * from './dtos/responses/LoanContractDownloadUrl';
52
52
  export * from './dtos/responses/LoanContractPreview';
53
53
  export * from './dtos/responses/LoanContractResponse';
54
+ export * from './dtos/responses/LoanCustomerCreditDocument';
55
+ export * from './dtos/responses/LoanCustomerCreditDocumentUrl';
54
56
  export * from './dtos/responses/OriginateLoanCreditResponse';
55
57
  export * from './dtos/responses/QuoteLoanCreditResponse';
56
58
  export * from './dtos/responses/SignLoanCreditResponse';
@@ -5,7 +5,8 @@ import { MyDocumentStatusEnum } from '../enums/MyDocumentStatusEnum';
5
5
 
6
6
  /**
7
7
  * Un documento del crédito. `documentRef` sigue la convención del módulo de la app:
8
- * `doc-contract-<contractId>` para contratos y `doc-stmt-YYYY-MM` para estados de cuenta.
8
+ * `doc-contract-<contractId>` para contratos, `doc-stmt-YYYY-MM` para estados de cuenta y
9
+ * `doc-receipt-<paymentId>` para comprobantes de pago.
9
10
  */
10
11
  export interface MyDocument {
11
12
  documentRef: string;
@@ -2,4 +2,5 @@
2
2
  export enum MyDocumentGroupIdEnum {
3
3
  CONTRACT = 'contract',
4
4
  MONTHLY = 'monthly',
5
+ PAYMENT_RECEIPTS = 'receipts',
5
6
  }
@@ -1,4 +1,5 @@
1
1
  export enum MyDocumentKindEnum {
2
2
  CONTRACT = 'CONTRACT',
3
3
  MONTHLY_STATEMENT = 'MONTHLY_STATEMENT',
4
+ PAYMENT_RECEIPT = 'PAYMENT_RECEIPT',
4
5
  }
@@ -0,0 +1,15 @@
1
+ import { KycModalityEnum } from '../../retailCustomer/enums/KycModalityEnum';
2
+ import { KycAttemptStageEnum } from '../enums/KycAttemptStageEnum';
3
+
4
+ /** Avance del intento vigente de un flujo KYC, tal como lo devuelve `GET kyc/status`. */
5
+ export interface KycAttemptProgress {
6
+ attemptId: string;
7
+ modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
8
+ /** `shortUrl` del QR; ausente en `STORE_DEVICE`. */
9
+ link?: string;
10
+ stage: KycAttemptStageEnum;
11
+ /** Cuándo entró a la etapa actual, ISO-8601 UTC. */
12
+ stageAt: string;
13
+ /** Fecha del prepare, ISO-8601 UTC; el front mide contra ella el tope de 25 min. */
14
+ attemptStartedAt: string;
15
+ }
@@ -0,0 +1,8 @@
1
+ import type { KycAttemptProgress } from './KycAttemptProgress';
2
+
3
+ /** Bloque `progress` de `GET kyc/status`: el intento vigente de cada flujo, o `null` si no hay. */
4
+ export interface KycStatusProgress {
5
+ identity: KycAttemptProgress | null;
6
+ facematch: KycAttemptProgress | null;
7
+ proofOfAddress: KycAttemptProgress | null;
8
+ }
@@ -53,6 +53,8 @@ export interface KycSdkMetadata {
53
53
  * domicilio del documento de identidad: `kyc-metamap-webhook` rutea por este campo.
54
54
  */
55
55
  kycStep?: KycMetadataStepEnum;
56
+ /** Intento del wizard que originó la verificación; el webhook lo copia a cada evento. */
57
+ attemptId?: string;
56
58
  }
57
59
 
58
60
  /**
@@ -98,6 +100,8 @@ export interface KycPrepareResponse {
98
100
  * (`KycManualRequest`). Por eso el tipo se estrecha a las dos que el SDK puede ejecutar.
99
101
  */
100
102
  modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
103
+ /** Intento que abrió este prepare; ausente cuando no se crea intento: alreadyVerified o bypass de dev. */
104
+ attemptId?: string;
101
105
  /** STORE_DEVICE — clientId de la cuenta Metamap (mismo valor en prod y dev). */
102
106
  clientId?: string;
103
107
  /** STORE_DEVICE — flow de Metamap por país; sale de la configuración del wizard. */