@fiado/type-kit 3.204.0 → 3.206.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/bin/loanCredit/dtos/LoanCredit.d.ts +2 -0
- package/bin/loanCredit/dtos/LoanCredit.js +6 -0
- package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.d.ts +7 -1
- package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.js +6 -0
- package/bin/loanCredit/dtos/responses/LoanCreditResponse.d.ts +1 -0
- package/bin/retailWizard/dtos/responses/KycPrepareResponse.d.ts +59 -0
- package/bin/retailWizard/dtos/responses/KycPrepareResponse.js +2 -0
- package/bin/retailWizard/index.d.ts +1 -0
- package/bin/retailWizard/index.js +2 -0
- package/package.json +1 -1
- package/src/loanCredit/dtos/LoanCredit.ts +6 -0
- package/src/loanCredit/dtos/requests/OriginateLoanCreditRequest.ts +11 -1
- package/src/loanCredit/dtos/responses/LoanCreditResponse.ts +1 -0
- package/src/retailWizard/dtos/responses/KycPrepareResponse.ts +61 -0
- package/src/retailWizard/index.ts +3 -0
|
@@ -32,6 +32,8 @@ export declare class LoanCredit {
|
|
|
32
32
|
totalToPayCents: number;
|
|
33
33
|
/** CAT decimal (`3.85` = 385%) — lo calcula el simulador de loan-offerings (C3/AS-01). */
|
|
34
34
|
catAnnual?: number;
|
|
35
|
+
/** Id de la evaluación SCI referenciada al originar (snapshot en LoanSciEvaluation_GT). */
|
|
36
|
+
sciEvaluationId?: string;
|
|
35
37
|
/** Sesión del wizard que originó — clave de idempotencia del originate (AS-07). */
|
|
36
38
|
wizardSessionId?: string;
|
|
37
39
|
/** IMEI del equipo financiado (se fija en el enrolamiento MDM). */
|
|
@@ -109,6 +109,12 @@ __decorate([
|
|
|
109
109
|
(0, class_validator_1.Min)(0),
|
|
110
110
|
__metadata("design:type", Number)
|
|
111
111
|
], LoanCredit.prototype, "catAnnual", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
(0, class_transformer_1.Expose)(),
|
|
114
|
+
(0, class_validator_1.IsOptional)(),
|
|
115
|
+
(0, class_validator_1.IsString)(),
|
|
116
|
+
__metadata("design:type", String)
|
|
117
|
+
], LoanCredit.prototype, "sciEvaluationId", void 0);
|
|
112
118
|
__decorate([
|
|
113
119
|
(0, class_transformer_1.Expose)(),
|
|
114
120
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -17,7 +17,13 @@ export declare class OriginateLoanCreditRequest {
|
|
|
17
17
|
termWeeks: number;
|
|
18
18
|
equipmentPriceCents: number;
|
|
19
19
|
downPaymentCents: number;
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Id de la evaluación SCI del paso 05 (snapshot inmutable en loan-scoring). Si viene, el
|
|
22
|
+
* motor LEE el snapshot (getSciEvaluation), valida la decisión (REJECTED → 422
|
|
23
|
+
* SCORE_ADVERSE) y persiste score/nivel DESDE el snapshot — ignora los campos sueltos.
|
|
24
|
+
*/
|
|
25
|
+
sciEvaluationId?: string;
|
|
26
|
+
/** SCI del cliente al originar (fallback informativo si NO viene sciEvaluationId). */
|
|
21
27
|
sciAtOrigination?: number;
|
|
22
28
|
clientLevelAtOrigination?: ClientLevelEnum;
|
|
23
29
|
/** IMEI del equipo si ya se conoce (también puede fijarse en el paso 09 vía activate-check). */
|
|
@@ -63,6 +63,12 @@ __decorate([
|
|
|
63
63
|
(0, class_validator_1.Min)(0),
|
|
64
64
|
__metadata("design:type", Number)
|
|
65
65
|
], OriginateLoanCreditRequest.prototype, "downPaymentCents", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, class_transformer_1.Expose)(),
|
|
68
|
+
(0, class_validator_1.IsOptional)(),
|
|
69
|
+
(0, class_validator_1.IsString)(),
|
|
70
|
+
__metadata("design:type", String)
|
|
71
|
+
], OriginateLoanCreditRequest.prototype, "sciEvaluationId", void 0);
|
|
66
72
|
__decorate([
|
|
67
73
|
(0, class_transformer_1.Expose)(),
|
|
68
74
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { KycModalityEnum } from '../../../retailCustomer/enums/KycModalityEnum';
|
|
2
|
+
/**
|
|
3
|
+
* Metadata que el wizard entrega al SDK de Metamap para que la verificación quede correlacionada
|
|
4
|
+
* con la identidad Fiado. Viaja base64 dentro de `KycPrepareResponse.metadata`.
|
|
5
|
+
*
|
|
6
|
+
* **La arma el wizard, no el front** (`loan-backoffice-webapp/.env.example`): el front no conoce
|
|
7
|
+
* `peopleId` ni `typeOfDirectoryId` — los resuelve el wizard al crear/reusar la identidad.
|
|
8
|
+
*
|
|
9
|
+
* Espeja `kyc-verifications-business/src/core/entities/Metadata.ts`. Es la ÚNICA correlación entre
|
|
10
|
+
* la verificación de Metamap y el cliente Fiado: el webhook crea la fila desde acá (D18/D19).
|
|
11
|
+
*
|
|
12
|
+
* ⚠️ `typeOfDocumentId` e `isPartial` van OPCIONALES a propósito: el tipo del productor los declara
|
|
13
|
+
* requeridos, pero están ausentes en el 100% de los 311 bloques de metadata observados en dev
|
|
14
|
+
* (spec KYC F2 §14.1). Todo indica que los completa el SDK/backend de Metamap. Marcarlos requeridos
|
|
15
|
+
* acá obligaría al wizard a inventar valores. Se cierra cuando el dueño del SDK lo confirme.
|
|
16
|
+
*/
|
|
17
|
+
export interface KycSdkMetadata {
|
|
18
|
+
directoryId: string;
|
|
19
|
+
typeOfDirectoryId: string;
|
|
20
|
+
peopleId: string;
|
|
21
|
+
countryId: string;
|
|
22
|
+
phoneNumber: string;
|
|
23
|
+
typeOfDocumentId?: string;
|
|
24
|
+
isPartial?: boolean;
|
|
25
|
+
customInput?: boolean;
|
|
26
|
+
userPhotoLink?: string;
|
|
27
|
+
userPhotoLinkHash?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* POST /wizard/sessions/:id/kyc/prepare — respuesta.
|
|
31
|
+
*
|
|
32
|
+
* **Bifurca por modalidad**, por eso todo es opcional salvo `modality`:
|
|
33
|
+
* - `STORE_DEVICE` → `clientId` + `flowId` + `metadata` para que el front monte el
|
|
34
|
+
* `<metamap-button>` en la tablet. Única excepción a la regla puente (D25): el widget es un SDK
|
|
35
|
+
* de un SaaS de terceros que corre en el dispositivo del cliente y habla con Metamap, no con Fiado.
|
|
36
|
+
* - `CUSTOMER_LINK` → `shortUrl` para el QR / SMS al teléfono del cliente.
|
|
37
|
+
*
|
|
38
|
+
* `alreadyVerified` corta el flujo antes de cualquiera de las dos: cuando la consolidación del spec
|
|
39
|
+
* KYC F2 §8.2 ya da `VERIFIED` para ese directorio, no hay identidad que capturar.
|
|
40
|
+
*
|
|
41
|
+
* SureKeep Fase 2 — pista Retail.
|
|
42
|
+
*/
|
|
43
|
+
export interface KycPrepareResponse {
|
|
44
|
+
/**
|
|
45
|
+
* `MANUAL` NO es una modalidad de `prepare`: la captura manual es su propio endpoint
|
|
46
|
+
* (`KycManualRequest`). Por eso el tipo se estrecha a las dos que el SDK puede ejecutar.
|
|
47
|
+
*/
|
|
48
|
+
modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
|
|
49
|
+
/** STORE_DEVICE — clientId de la cuenta Metamap (mismo valor en prod y dev). */
|
|
50
|
+
clientId?: string;
|
|
51
|
+
/** STORE_DEVICE — flow de Metamap por país; sale de la configuración del wizard. */
|
|
52
|
+
flowId?: string;
|
|
53
|
+
/** STORE_DEVICE — `KycSdkMetadata` serializada en base64. */
|
|
54
|
+
metadata?: string;
|
|
55
|
+
/** CUSTOMER_LINK — link corto para el QR o el SMS. */
|
|
56
|
+
shortUrl?: string;
|
|
57
|
+
/** El cliente ya tiene una identidad verificada vigente: no hay nada que capturar. */
|
|
58
|
+
alreadyVerified?: boolean;
|
|
59
|
+
}
|
|
@@ -49,6 +49,7 @@ export * from './dtos/requests/CreateProspectRequest';
|
|
|
49
49
|
export * from './dtos/requests/UpdateProspectRequest';
|
|
50
50
|
export * from './dtos/requests/MarkProspectLostRequest';
|
|
51
51
|
export * from './dtos/requests/CancelSaleRequest';
|
|
52
|
+
export * from './dtos/responses/KycPrepareResponse';
|
|
52
53
|
export * from './events/SaleCompletedV1';
|
|
53
54
|
export * from './events/SaleCancelledV1';
|
|
54
55
|
export * from './events/SessionExpiredV1';
|
|
@@ -70,6 +70,8 @@ __exportStar(require("./dtos/requests/CreateProspectRequest"), exports);
|
|
|
70
70
|
__exportStar(require("./dtos/requests/UpdateProspectRequest"), exports);
|
|
71
71
|
__exportStar(require("./dtos/requests/MarkProspectLostRequest"), exports);
|
|
72
72
|
__exportStar(require("./dtos/requests/CancelSaleRequest"), exports);
|
|
73
|
+
// Response DTOs (output tipado por endpoint)
|
|
74
|
+
__exportStar(require("./dtos/responses/KycPrepareResponse"), exports);
|
|
73
75
|
// Contratos de eventos (PascalCase + sufijo V1)
|
|
74
76
|
__exportStar(require("./events/SaleCompletedV1"), exports);
|
|
75
77
|
__exportStar(require("./events/SaleCancelledV1"), exports);
|
package/package.json
CHANGED
|
@@ -98,6 +98,12 @@ export class LoanCredit {
|
|
|
98
98
|
@Min(0)
|
|
99
99
|
catAnnual?: number;
|
|
100
100
|
|
|
101
|
+
/** Id de la evaluación SCI referenciada al originar (snapshot en LoanSciEvaluation_GT). */
|
|
102
|
+
@Expose()
|
|
103
|
+
@IsOptional()
|
|
104
|
+
@IsString()
|
|
105
|
+
sciEvaluationId?: string;
|
|
106
|
+
|
|
101
107
|
/** Sesión del wizard que originó — clave de idempotencia del originate (AS-07). */
|
|
102
108
|
@Expose()
|
|
103
109
|
@IsOptional()
|
|
@@ -53,7 +53,17 @@ export class OriginateLoanCreditRequest {
|
|
|
53
53
|
@Min(0)
|
|
54
54
|
downPaymentCents!: number;
|
|
55
55
|
|
|
56
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Id de la evaluación SCI del paso 05 (snapshot inmutable en loan-scoring). Si viene, el
|
|
58
|
+
* motor LEE el snapshot (getSciEvaluation), valida la decisión (REJECTED → 422
|
|
59
|
+
* SCORE_ADVERSE) y persiste score/nivel DESDE el snapshot — ignora los campos sueltos.
|
|
60
|
+
*/
|
|
61
|
+
@Expose()
|
|
62
|
+
@IsOptional()
|
|
63
|
+
@IsString()
|
|
64
|
+
sciEvaluationId?: string;
|
|
65
|
+
|
|
66
|
+
/** SCI del cliente al originar (fallback informativo si NO viene sciEvaluationId). */
|
|
57
67
|
@Expose()
|
|
58
68
|
@IsOptional()
|
|
59
69
|
@IsInt()
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { KycModalityEnum } from '../../../retailCustomer/enums/KycModalityEnum';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Metadata que el wizard entrega al SDK de Metamap para que la verificación quede correlacionada
|
|
5
|
+
* con la identidad Fiado. Viaja base64 dentro de `KycPrepareResponse.metadata`.
|
|
6
|
+
*
|
|
7
|
+
* **La arma el wizard, no el front** (`loan-backoffice-webapp/.env.example`): el front no conoce
|
|
8
|
+
* `peopleId` ni `typeOfDirectoryId` — los resuelve el wizard al crear/reusar la identidad.
|
|
9
|
+
*
|
|
10
|
+
* Espeja `kyc-verifications-business/src/core/entities/Metadata.ts`. Es la ÚNICA correlación entre
|
|
11
|
+
* la verificación de Metamap y el cliente Fiado: el webhook crea la fila desde acá (D18/D19).
|
|
12
|
+
*
|
|
13
|
+
* ⚠️ `typeOfDocumentId` e `isPartial` van OPCIONALES a propósito: el tipo del productor los declara
|
|
14
|
+
* requeridos, pero están ausentes en el 100% de los 311 bloques de metadata observados en dev
|
|
15
|
+
* (spec KYC F2 §14.1). Todo indica que los completa el SDK/backend de Metamap. Marcarlos requeridos
|
|
16
|
+
* acá obligaría al wizard a inventar valores. Se cierra cuando el dueño del SDK lo confirme.
|
|
17
|
+
*/
|
|
18
|
+
export interface KycSdkMetadata {
|
|
19
|
+
directoryId: string;
|
|
20
|
+
typeOfDirectoryId: string;
|
|
21
|
+
peopleId: string;
|
|
22
|
+
countryId: string;
|
|
23
|
+
phoneNumber: string;
|
|
24
|
+
typeOfDocumentId?: string;
|
|
25
|
+
isPartial?: boolean;
|
|
26
|
+
customInput?: boolean;
|
|
27
|
+
userPhotoLink?: string;
|
|
28
|
+
userPhotoLinkHash?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* POST /wizard/sessions/:id/kyc/prepare — respuesta.
|
|
33
|
+
*
|
|
34
|
+
* **Bifurca por modalidad**, por eso todo es opcional salvo `modality`:
|
|
35
|
+
* - `STORE_DEVICE` → `clientId` + `flowId` + `metadata` para que el front monte el
|
|
36
|
+
* `<metamap-button>` en la tablet. Única excepción a la regla puente (D25): el widget es un SDK
|
|
37
|
+
* de un SaaS de terceros que corre en el dispositivo del cliente y habla con Metamap, no con Fiado.
|
|
38
|
+
* - `CUSTOMER_LINK` → `shortUrl` para el QR / SMS al teléfono del cliente.
|
|
39
|
+
*
|
|
40
|
+
* `alreadyVerified` corta el flujo antes de cualquiera de las dos: cuando la consolidación del spec
|
|
41
|
+
* KYC F2 §8.2 ya da `VERIFIED` para ese directorio, no hay identidad que capturar.
|
|
42
|
+
*
|
|
43
|
+
* SureKeep Fase 2 — pista Retail.
|
|
44
|
+
*/
|
|
45
|
+
export interface KycPrepareResponse {
|
|
46
|
+
/**
|
|
47
|
+
* `MANUAL` NO es una modalidad de `prepare`: la captura manual es su propio endpoint
|
|
48
|
+
* (`KycManualRequest`). Por eso el tipo se estrecha a las dos que el SDK puede ejecutar.
|
|
49
|
+
*/
|
|
50
|
+
modality: KycModalityEnum.CUSTOMER_LINK | KycModalityEnum.STORE_DEVICE;
|
|
51
|
+
/** STORE_DEVICE — clientId de la cuenta Metamap (mismo valor en prod y dev). */
|
|
52
|
+
clientId?: string;
|
|
53
|
+
/** STORE_DEVICE — flow de Metamap por país; sale de la configuración del wizard. */
|
|
54
|
+
flowId?: string;
|
|
55
|
+
/** STORE_DEVICE — `KycSdkMetadata` serializada en base64. */
|
|
56
|
+
metadata?: string;
|
|
57
|
+
/** CUSTOMER_LINK — link corto para el QR o el SMS. */
|
|
58
|
+
shortUrl?: string;
|
|
59
|
+
/** El cliente ya tiene una identidad verificada vigente: no hay nada que capturar. */
|
|
60
|
+
alreadyVerified?: boolean;
|
|
61
|
+
}
|
|
@@ -59,6 +59,9 @@ export * from './dtos/requests/UpdateProspectRequest';
|
|
|
59
59
|
export * from './dtos/requests/MarkProspectLostRequest';
|
|
60
60
|
export * from './dtos/requests/CancelSaleRequest';
|
|
61
61
|
|
|
62
|
+
// Response DTOs (output tipado por endpoint)
|
|
63
|
+
export * from './dtos/responses/KycPrepareResponse';
|
|
64
|
+
|
|
62
65
|
// Contratos de eventos (PascalCase + sufijo V1)
|
|
63
66
|
export * from './events/SaleCompletedV1';
|
|
64
67
|
export * from './events/SaleCancelledV1';
|