@fiado/type-kit 3.243.0 → 3.246.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/index.d.ts +1 -0
- package/bin/index.js +5 -1
- package/bin/kyc/events/KycVerificationChangedV1.d.ts +11 -0
- package/bin/kyc/events/KycVerificationChangedV1.js +6 -0
- package/bin/onboarding/dtos/responses/OnboardingStepsResponse.d.ts +57 -0
- package/bin/onboarding/dtos/responses/OnboardingStepsResponse.js +31 -0
- package/bin/onboarding/enums/OnboardingAccountReasonEnum.d.ts +26 -0
- package/bin/onboarding/enums/OnboardingAccountReasonEnum.js +30 -0
- package/bin/onboarding/enums/OnboardingAccountStatusEnum.d.ts +22 -0
- package/bin/onboarding/enums/OnboardingAccountStatusEnum.js +26 -0
- package/bin/onboarding/enums/OnboardingStepIdEnum.d.ts +21 -0
- package/bin/onboarding/enums/OnboardingStepIdEnum.js +25 -0
- package/bin/onboarding/enums/OnboardingStepStatusEnum.d.ts +12 -0
- package/bin/onboarding/enums/OnboardingStepStatusEnum.js +16 -0
- package/bin/onboarding/index.d.ts +5 -0
- package/bin/onboarding/index.js +23 -0
- package/bin/platformRbac/dtos/CompleteMyProfileRequest.d.ts +9 -0
- package/bin/platformRbac/dtos/{ResendOtpRequest.js → CompleteMyProfileRequest.js} +12 -14
- package/bin/riskProfile/dtos/TransactionAlarmQueueMessage.d.ts +30 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +14 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.js +41 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +15 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +13 -0
- package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +3 -0
- package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +21 -0
- package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +7 -0
- package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +6 -0
- package/package.json +1 -1
- package/src/index.ts +4 -0
- package/src/kyc/events/KycVerificationChangedV1.ts +14 -1
- package/src/onboarding/dtos/responses/OnboardingStepsResponse.ts +61 -0
- package/src/onboarding/enums/OnboardingAccountReasonEnum.ts +26 -0
- package/src/onboarding/enums/OnboardingAccountStatusEnum.ts +22 -0
- package/src/onboarding/enums/OnboardingStepIdEnum.ts +21 -0
- package/src/onboarding/enums/OnboardingStepStatusEnum.ts +12 -0
- package/src/onboarding/index.ts +8 -0
- package/src/riskProfile/dtos/TransactionAlarmQueueMessage.ts +30 -0
- package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +0 -11
- package/bin/loanConfig/enums/ModifiableByRoleEnum.js +0 -15
- package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.js +0 -36
package/bin/index.d.ts
CHANGED
|
@@ -101,6 +101,7 @@ export * as LoanCollectorAssignment from './loanCollectorAssignment';
|
|
|
101
101
|
export * as LoanCredit from './loanCredit';
|
|
102
102
|
export * as LoanScoring from './loanScoring';
|
|
103
103
|
export * as Kyc from './kyc';
|
|
104
|
+
export * as Onboarding from './onboarding';
|
|
104
105
|
export * from './messaging';
|
|
105
106
|
export * from './complaint';
|
|
106
107
|
export * as PhoneSales from './phoneSales';
|
package/bin/index.js
CHANGED
|
@@ -38,7 +38,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.MetamapConnector = exports.Account = exports.Crypto = void 0;
|
|
40
40
|
exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.RetailWizard = exports.RetailCustomer = exports.RetailCards = exports.RetailCatalog = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = void 0;
|
|
41
|
-
exports.Shipping = exports.PhoneSales = exports.Kyc = exports.LoanScoring = exports.LoanCredit = void 0;
|
|
41
|
+
exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = void 0;
|
|
42
42
|
exports.Crypto = __importStar(require("./crypto"));
|
|
43
43
|
exports.Account = __importStar(require("./account"));
|
|
44
44
|
exports.MetamapConnector = __importStar(require("./metamapConnector"));
|
|
@@ -180,6 +180,10 @@ exports.LoanScoring = __importStar(require("./loanScoring"));
|
|
|
180
180
|
// consolidado + estados crudos + datos de persona. El consolidado reusa RetailKycStatusEnum
|
|
181
181
|
// (no hay enum consolidado propio — DEC-KYC-014). SureKeep Fase 2.
|
|
182
182
|
exports.Kyc = __importStar(require("./kyc"));
|
|
183
|
+
// Onboarding: contrato de los pasos del onboarding resueltos por SCOPE y no por país
|
|
184
|
+
// (onboarding-business, DEC-009 a DEC-021). Dos bloques: `steps` (qué le falta hacer al usuario) y
|
|
185
|
+
// `accounts` (cómo va el trámite de cada cuenta, por lado).
|
|
186
|
+
exports.Onboarding = __importStar(require("./onboarding"));
|
|
183
187
|
__exportStar(require("./messaging"), exports);
|
|
184
188
|
__exportStar(require("./complaint"), exports);
|
|
185
189
|
// PhoneSales: DTOs del lambda cell-phone-sales-business — variantes de dispositivo (modelo/color/
|
|
@@ -60,4 +60,15 @@ export declare class KycVerificationChangedV1 {
|
|
|
60
60
|
* ⚠️ PII: nunca loguear.
|
|
61
61
|
*/
|
|
62
62
|
address?: KycAddress;
|
|
63
|
+
/**
|
|
64
|
+
* ¿El webhook YA persistió este domicilio en `fiado-address-lambda`? Solo es `true` cuando el
|
|
65
|
+
* documento es mexicano (único caso en que el webhook escribe) y el POST aterrizó.
|
|
66
|
+
*
|
|
67
|
+
* El consumidor lo necesita para NO volver a escribirlo: el address-lambda APILA — un segundo
|
|
68
|
+
* create sobre el mismo domicilio deja una fila duplicada en el expediente.
|
|
69
|
+
*
|
|
70
|
+
* OPCIONAL y aditivo: ausente o `false` significan "nadie lo guardó todavía", que es la
|
|
71
|
+
* degradación segura (el consumidor lo pide y lo guarda él).
|
|
72
|
+
*/
|
|
73
|
+
addressPushedToFiado?: boolean;
|
|
63
74
|
}
|
|
@@ -98,3 +98,9 @@ __decorate([
|
|
|
98
98
|
(0, class_transformer_1.Type)(() => KycAddress_1.KycAddress),
|
|
99
99
|
__metadata("design:type", KycAddress_1.KycAddress)
|
|
100
100
|
], KycVerificationChangedV1.prototype, "address", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, class_transformer_1.Expose)(),
|
|
103
|
+
(0, class_validator_1.IsOptional)(),
|
|
104
|
+
(0, class_validator_1.IsBoolean)(),
|
|
105
|
+
__metadata("design:type", Boolean)
|
|
106
|
+
], KycVerificationChangedV1.prototype, "addressPushedToFiado", void 0);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Scope } from '../../../directory/enums/Scope';
|
|
2
|
+
import { OnboardingStepIdEnum } from '../../enums/OnboardingStepIdEnum';
|
|
3
|
+
import { OnboardingStepStatusEnum } from '../../enums/OnboardingStepStatusEnum';
|
|
4
|
+
import { OnboardingAccountStatusEnum } from '../../enums/OnboardingAccountStatusEnum';
|
|
5
|
+
import { OnboardingAccountReasonEnum } from '../../enums/OnboardingAccountReasonEnum';
|
|
6
|
+
/**
|
|
7
|
+
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
8
|
+
* onboarding-business).
|
|
9
|
+
*
|
|
10
|
+
* Para saber QUÉ documento pedir en `KYC_IDENTIFICATION`, el consumidor le pregunta a
|
|
11
|
+
* kyc-verifications-business, que es quien decide el workflow de Metamap (DEC-017).
|
|
12
|
+
*/
|
|
13
|
+
export declare class OnboardingStepDto {
|
|
14
|
+
id: OnboardingStepIdEnum;
|
|
15
|
+
status: OnboardingStepStatusEnum;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* El trámite de una cuenta, por lado. Es el único bloque que lleva motivo.
|
|
19
|
+
*/
|
|
20
|
+
export declare class OnboardingAccountDto {
|
|
21
|
+
/** Scope de onboarding al que corresponde la cuenta: `fiado.on_us` o `fiado.on_mx`. */
|
|
22
|
+
scope: Scope;
|
|
23
|
+
status: OnboardingAccountStatusEnum;
|
|
24
|
+
/** `null` cuando no hay nada que explicar. */
|
|
25
|
+
reason: OnboardingAccountReasonEnum | null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Respuesta de `GET /onboarding-business/steps`.
|
|
29
|
+
*
|
|
30
|
+
* Dos bloques que contestan preguntas DISTINTAS, y por eso no pueden contradecirse:
|
|
31
|
+
* - `steps` → qué le falta HACER al usuario.
|
|
32
|
+
* - `accounts` → cómo va el trámite de cada cuenta.
|
|
33
|
+
*
|
|
34
|
+
* No recibe `countryId`: los pasos salen de los scopes del usuario y el sujeto sale del token.
|
|
35
|
+
*/
|
|
36
|
+
export declare class OnboardingStepsResponse {
|
|
37
|
+
/**
|
|
38
|
+
* Solo los pasos aplicables al scope del usuario, **EN ORDEN DE PINTADO**. El consumidor pinta el
|
|
39
|
+
* array tal como llega: no reordena ni conoce las reglas de scope.
|
|
40
|
+
*
|
|
41
|
+
* El largo PUEDE CAMBIAR entre dos llamadas. Ejemplo real: en cuanto el usuario guarda una
|
|
42
|
+
* dirección, `MX_PROOF_OF_ADDRESS` deja de aplicar y sale de la lista.
|
|
43
|
+
*
|
|
44
|
+
* Vacío si la persona no tiene ningún scope de onboarding — eso NO es un error, significa que no
|
|
45
|
+
* tiene onboarding pendiente. Pasa justo después de firmar, cuando el scope pasa de `fiado.on_mx`
|
|
46
|
+
* a `fiado.mx`.
|
|
47
|
+
*/
|
|
48
|
+
steps: OnboardingStepDto[];
|
|
49
|
+
/**
|
|
50
|
+
* Un item por scope de onboarding que tenga el usuario. Vacío si no tiene ninguno.
|
|
51
|
+
*
|
|
52
|
+
* Cuando una cuenta viene en `REJECTED`, el consumidor tiene que darle PRIORIDAD sobre los pasos de
|
|
53
|
+
* esa cuenta: por diseño cinco de los siete pasos nunca se bloquean, así que un usuario rechazado
|
|
54
|
+
* igual va a recibir pasos abiertos.
|
|
55
|
+
*/
|
|
56
|
+
accounts: OnboardingAccountDto[];
|
|
57
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingStepsResponse = exports.OnboardingAccountDto = exports.OnboardingStepDto = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
6
|
+
* onboarding-business).
|
|
7
|
+
*
|
|
8
|
+
* Para saber QUÉ documento pedir en `KYC_IDENTIFICATION`, el consumidor le pregunta a
|
|
9
|
+
* kyc-verifications-business, que es quien decide el workflow de Metamap (DEC-017).
|
|
10
|
+
*/
|
|
11
|
+
class OnboardingStepDto {
|
|
12
|
+
}
|
|
13
|
+
exports.OnboardingStepDto = OnboardingStepDto;
|
|
14
|
+
/**
|
|
15
|
+
* El trámite de una cuenta, por lado. Es el único bloque que lleva motivo.
|
|
16
|
+
*/
|
|
17
|
+
class OnboardingAccountDto {
|
|
18
|
+
}
|
|
19
|
+
exports.OnboardingAccountDto = OnboardingAccountDto;
|
|
20
|
+
/**
|
|
21
|
+
* Respuesta de `GET /onboarding-business/steps`.
|
|
22
|
+
*
|
|
23
|
+
* Dos bloques que contestan preguntas DISTINTAS, y por eso no pueden contradecirse:
|
|
24
|
+
* - `steps` → qué le falta HACER al usuario.
|
|
25
|
+
* - `accounts` → cómo va el trámite de cada cuenta.
|
|
26
|
+
*
|
|
27
|
+
* No recibe `countryId`: los pasos salen de los scopes del usuario y el sujeto sale del token.
|
|
28
|
+
*/
|
|
29
|
+
class OnboardingStepsResponse {
|
|
30
|
+
}
|
|
31
|
+
exports.OnboardingStepsResponse = OnboardingStepsResponse;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motivo del estado de una cuenta. Solo viaja cuando hay algo que explicar (DEC-021 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* Las claves de texto de estos valores tienen que existir en Firebase Remote Config antes de que el
|
|
6
|
+
* backend empiece a mandarlos: el copy de la app vive ahí, así que un motivo sin clave deja la pantalla
|
|
7
|
+
* sin texto.
|
|
8
|
+
*
|
|
9
|
+
* `PROVIDER_DENIED` y `PROVIDER_REVIEW` aplican SOLO al lado USA, que es donde existe `CP_Status`. El
|
|
10
|
+
* lado mexicano no tiene señal propia de rechazo más allá de las banderas de verificación del
|
|
11
|
+
* documento: `authorizationNeededMXN` está en `NOT_REQUIRED` en el 100% de los registros de producción.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum OnboardingAccountReasonEnum {
|
|
14
|
+
/** Lista negra (`fiadoListApproved === false`). Afecta los dos lados. */
|
|
15
|
+
BLACKLIST = "BLACKLIST",
|
|
16
|
+
/** Detección de duplicados (`duplicateUserDetection === true`). Afecta los dos lados. */
|
|
17
|
+
DUPLICATE_USER = "DUPLICATE_USER",
|
|
18
|
+
/** Alguna verificación del documento de ese lado en `false`. */
|
|
19
|
+
DOCUMENT_INVALID = "DOCUMENT_INVALID",
|
|
20
|
+
/** Documento subido y verificaciones todavía sin resolver. */
|
|
21
|
+
DOCUMENT_VERIFICATION = "DOCUMENT_VERIFICATION",
|
|
22
|
+
/** Solo lado USA: el proveedor rechazó. */
|
|
23
|
+
PROVIDER_DENIED = "PROVIDER_DENIED",
|
|
24
|
+
/** Solo lado USA: el proveedor está revisando o pidiendo documento. */
|
|
25
|
+
PROVIDER_REVIEW = "PROVIDER_REVIEW"
|
|
26
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingAccountReasonEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Motivo del estado de una cuenta. Solo viaja cuando hay algo que explicar (DEC-021 de
|
|
6
|
+
* onboarding-business).
|
|
7
|
+
*
|
|
8
|
+
* Las claves de texto de estos valores tienen que existir en Firebase Remote Config antes de que el
|
|
9
|
+
* backend empiece a mandarlos: el copy de la app vive ahí, así que un motivo sin clave deja la pantalla
|
|
10
|
+
* sin texto.
|
|
11
|
+
*
|
|
12
|
+
* `PROVIDER_DENIED` y `PROVIDER_REVIEW` aplican SOLO al lado USA, que es donde existe `CP_Status`. El
|
|
13
|
+
* lado mexicano no tiene señal propia de rechazo más allá de las banderas de verificación del
|
|
14
|
+
* documento: `authorizationNeededMXN` está en `NOT_REQUIRED` en el 100% de los registros de producción.
|
|
15
|
+
*/
|
|
16
|
+
var OnboardingAccountReasonEnum;
|
|
17
|
+
(function (OnboardingAccountReasonEnum) {
|
|
18
|
+
/** Lista negra (`fiadoListApproved === false`). Afecta los dos lados. */
|
|
19
|
+
OnboardingAccountReasonEnum["BLACKLIST"] = "BLACKLIST";
|
|
20
|
+
/** Detección de duplicados (`duplicateUserDetection === true`). Afecta los dos lados. */
|
|
21
|
+
OnboardingAccountReasonEnum["DUPLICATE_USER"] = "DUPLICATE_USER";
|
|
22
|
+
/** Alguna verificación del documento de ese lado en `false`. */
|
|
23
|
+
OnboardingAccountReasonEnum["DOCUMENT_INVALID"] = "DOCUMENT_INVALID";
|
|
24
|
+
/** Documento subido y verificaciones todavía sin resolver. */
|
|
25
|
+
OnboardingAccountReasonEnum["DOCUMENT_VERIFICATION"] = "DOCUMENT_VERIFICATION";
|
|
26
|
+
/** Solo lado USA: el proveedor rechazó. */
|
|
27
|
+
OnboardingAccountReasonEnum["PROVIDER_DENIED"] = "PROVIDER_DENIED";
|
|
28
|
+
/** Solo lado USA: el proveedor está revisando o pidiendo documento. */
|
|
29
|
+
OnboardingAccountReasonEnum["PROVIDER_REVIEW"] = "PROVIDER_REVIEW";
|
|
30
|
+
})(OnboardingAccountReasonEnum || (exports.OnboardingAccountReasonEnum = OnboardingAccountReasonEnum = {}));
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado del trámite de UNA cuenta (DEC-021 de onboarding-business).
|
|
3
|
+
*
|
|
4
|
+
* Es un eje distinto del de los pasos: `steps` dice qué le falta HACER al usuario, `accounts` dice cómo
|
|
5
|
+
* va el trámite. Un paso en `DONE` junto a una cuenta en `UNDER_REVIEW` no es contradicción — la
|
|
6
|
+
* persona ya hizo su parte.
|
|
7
|
+
*
|
|
8
|
+
* Va por lado y no como valor global porque en producción hay 230 personas con problema solo del lado
|
|
9
|
+
* USA y 28 solo del mexicano: para esas 258 un valor único mentiría, diciéndoles que no se les puede
|
|
10
|
+
* abrir cuenta cuando una de las dos sí.
|
|
11
|
+
*
|
|
12
|
+
* `OPEN` se deriva de la bandera de la cuenta (`MEX_DebitAccount` / `USA_DebitAccount`) y NUNCA del
|
|
13
|
+
* scope: cuando el backend crea la cuenta el scope sigue siendo el de onboarding, y recién cambia
|
|
14
|
+
* cuando el usuario firma los documentos legales. Derivarlo del scope produce una circularidad que
|
|
15
|
+
* deja al usuario con la cuenta creada y el contrato sin firmar de forma permanente.
|
|
16
|
+
*/
|
|
17
|
+
export declare enum OnboardingAccountStatusEnum {
|
|
18
|
+
IN_PROGRESS = "IN_PROGRESS",
|
|
19
|
+
UNDER_REVIEW = "UNDER_REVIEW",
|
|
20
|
+
REJECTED = "REJECTED",
|
|
21
|
+
OPEN = "OPEN"
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingAccountStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado del trámite de UNA cuenta (DEC-021 de onboarding-business).
|
|
6
|
+
*
|
|
7
|
+
* Es un eje distinto del de los pasos: `steps` dice qué le falta HACER al usuario, `accounts` dice cómo
|
|
8
|
+
* va el trámite. Un paso en `DONE` junto a una cuenta en `UNDER_REVIEW` no es contradicción — la
|
|
9
|
+
* persona ya hizo su parte.
|
|
10
|
+
*
|
|
11
|
+
* Va por lado y no como valor global porque en producción hay 230 personas con problema solo del lado
|
|
12
|
+
* USA y 28 solo del mexicano: para esas 258 un valor único mentiría, diciéndoles que no se les puede
|
|
13
|
+
* abrir cuenta cuando una de las dos sí.
|
|
14
|
+
*
|
|
15
|
+
* `OPEN` se deriva de la bandera de la cuenta (`MEX_DebitAccount` / `USA_DebitAccount`) y NUNCA del
|
|
16
|
+
* scope: cuando el backend crea la cuenta el scope sigue siendo el de onboarding, y recién cambia
|
|
17
|
+
* cuando el usuario firma los documentos legales. Derivarlo del scope produce una circularidad que
|
|
18
|
+
* deja al usuario con la cuenta creada y el contrato sin firmar de forma permanente.
|
|
19
|
+
*/
|
|
20
|
+
var OnboardingAccountStatusEnum;
|
|
21
|
+
(function (OnboardingAccountStatusEnum) {
|
|
22
|
+
OnboardingAccountStatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
|
|
23
|
+
OnboardingAccountStatusEnum["UNDER_REVIEW"] = "UNDER_REVIEW";
|
|
24
|
+
OnboardingAccountStatusEnum["REJECTED"] = "REJECTED";
|
|
25
|
+
OnboardingAccountStatusEnum["OPEN"] = "OPEN";
|
|
26
|
+
})(OnboardingAccountStatusEnum || (exports.OnboardingAccountStatusEnum = OnboardingAccountStatusEnum = {}));
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Los 7 pasos del onboarding, resueltos por los scopes del usuario y NO por país (DEC-009, DEC-010 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* El orden de este enum no define el orden de pintado: la respuesta trae los pasos ya ordenados y la
|
|
6
|
+
* app pinta el array tal como llega.
|
|
7
|
+
*
|
|
8
|
+
* Los ids con prefijo de lado (`US_` / `MX_`) lo llevan porque **son** de un lado: lo que el rediseño
|
|
9
|
+
* elimina es el `countryId` de la entrada, no la realidad de que el comprobante de domicilio es un
|
|
10
|
+
* requisito mexicano. `DATA_CONFIRMATION` es el paso de "revisá y confirmá tus datos"; se llama así y
|
|
11
|
+
* no `INFO_SELF_VERIFY` para no confundirlo con la verificación de Metamap de `KYC_IDENTIFICATION`.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum OnboardingStepIdEnum {
|
|
14
|
+
KYC_IDENTIFICATION = "KYC_IDENTIFICATION",
|
|
15
|
+
INCOME_INFORMATION = "INCOME_INFORMATION",
|
|
16
|
+
US_ADDRESS = "US_ADDRESS",
|
|
17
|
+
MX_PROOF_OF_ADDRESS = "MX_PROOF_OF_ADDRESS",
|
|
18
|
+
MX_REGULATORY_QUESTIONS = "MX_REGULATORY_QUESTIONS",
|
|
19
|
+
MX_BENEFICIARIES = "MX_BENEFICIARIES",
|
|
20
|
+
DATA_CONFIRMATION = "DATA_CONFIRMATION"
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingStepIdEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Los 7 pasos del onboarding, resueltos por los scopes del usuario y NO por país (DEC-009, DEC-010 de
|
|
6
|
+
* onboarding-business).
|
|
7
|
+
*
|
|
8
|
+
* El orden de este enum no define el orden de pintado: la respuesta trae los pasos ya ordenados y la
|
|
9
|
+
* app pinta el array tal como llega.
|
|
10
|
+
*
|
|
11
|
+
* Los ids con prefijo de lado (`US_` / `MX_`) lo llevan porque **son** de un lado: lo que el rediseño
|
|
12
|
+
* elimina es el `countryId` de la entrada, no la realidad de que el comprobante de domicilio es un
|
|
13
|
+
* requisito mexicano. `DATA_CONFIRMATION` es el paso de "revisá y confirmá tus datos"; se llama así y
|
|
14
|
+
* no `INFO_SELF_VERIFY` para no confundirlo con la verificación de Metamap de `KYC_IDENTIFICATION`.
|
|
15
|
+
*/
|
|
16
|
+
var OnboardingStepIdEnum;
|
|
17
|
+
(function (OnboardingStepIdEnum) {
|
|
18
|
+
OnboardingStepIdEnum["KYC_IDENTIFICATION"] = "KYC_IDENTIFICATION";
|
|
19
|
+
OnboardingStepIdEnum["INCOME_INFORMATION"] = "INCOME_INFORMATION";
|
|
20
|
+
OnboardingStepIdEnum["US_ADDRESS"] = "US_ADDRESS";
|
|
21
|
+
OnboardingStepIdEnum["MX_PROOF_OF_ADDRESS"] = "MX_PROOF_OF_ADDRESS";
|
|
22
|
+
OnboardingStepIdEnum["MX_REGULATORY_QUESTIONS"] = "MX_REGULATORY_QUESTIONS";
|
|
23
|
+
OnboardingStepIdEnum["MX_BENEFICIARIES"] = "MX_BENEFICIARIES";
|
|
24
|
+
OnboardingStepIdEnum["DATA_CONFIRMATION"] = "DATA_CONFIRMATION";
|
|
25
|
+
})(OnboardingStepIdEnum || (exports.OnboardingStepIdEnum = OnboardingStepIdEnum = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de un paso. Mapea 1:1 a lo que pinta la app: caja cerrada / caja abierta / verde.
|
|
3
|
+
*
|
|
4
|
+
* Solo `KYC_IDENTIFICATION` (por veto o verificación en curso) y `DATA_CONFIRMATION` (porque agrega
|
|
5
|
+
* sobre los demás) pueden venir en `LOCKED`. Los otros cinco pasos son `UNLOCKED` o `DONE` — no existe
|
|
6
|
+
* insumo que los pueda bloquear (DEC-011 de onboarding-business).
|
|
7
|
+
*/
|
|
8
|
+
export declare enum OnboardingStepStatusEnum {
|
|
9
|
+
LOCKED = "LOCKED",
|
|
10
|
+
UNLOCKED = "UNLOCKED",
|
|
11
|
+
DONE = "DONE"
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingStepStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado de un paso. Mapea 1:1 a lo que pinta la app: caja cerrada / caja abierta / verde.
|
|
6
|
+
*
|
|
7
|
+
* Solo `KYC_IDENTIFICATION` (por veto o verificación en curso) y `DATA_CONFIRMATION` (porque agrega
|
|
8
|
+
* sobre los demás) pueden venir en `LOCKED`. Los otros cinco pasos son `UNLOCKED` o `DONE` — no existe
|
|
9
|
+
* insumo que los pueda bloquear (DEC-011 de onboarding-business).
|
|
10
|
+
*/
|
|
11
|
+
var OnboardingStepStatusEnum;
|
|
12
|
+
(function (OnboardingStepStatusEnum) {
|
|
13
|
+
OnboardingStepStatusEnum["LOCKED"] = "LOCKED";
|
|
14
|
+
OnboardingStepStatusEnum["UNLOCKED"] = "UNLOCKED";
|
|
15
|
+
OnboardingStepStatusEnum["DONE"] = "DONE";
|
|
16
|
+
})(OnboardingStepStatusEnum || (exports.OnboardingStepStatusEnum = OnboardingStepStatusEnum = {}));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Enums
|
|
18
|
+
__exportStar(require("./enums/OnboardingStepIdEnum"), exports);
|
|
19
|
+
__exportStar(require("./enums/OnboardingStepStatusEnum"), exports);
|
|
20
|
+
__exportStar(require("./enums/OnboardingAccountStatusEnum"), exports);
|
|
21
|
+
__exportStar(require("./enums/OnboardingAccountReasonEnum"), exports);
|
|
22
|
+
// Response DTOs
|
|
23
|
+
__exportStar(require("./dtos/responses/OnboardingStepsResponse"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body del PUT /me/profile/complete (autenticado, gate post-MFA del autoregistro). DEC-RBAC-034.
|
|
3
|
+
* Opera sobre el propio usuario (cognitoSub del token). Valida nombre + los `userFieldDefs` requeridos
|
|
4
|
+
* del tenant (422 MISSING_REQUIRED_FIELDS si faltan) y flipea `profileComplete=true`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class CompleteMyProfileRequest {
|
|
7
|
+
displayName: string;
|
|
8
|
+
customFields?: Record<string, string>;
|
|
9
|
+
}
|
|
@@ -9,28 +9,26 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.CompleteMyProfileRequest = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
/**
|
|
16
|
-
* Body del
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
20
|
-
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
16
|
+
* Body del PUT /me/profile/complete (autenticado, gate post-MFA del autoregistro). DEC-RBAC-034.
|
|
17
|
+
* Opera sobre el propio usuario (cognitoSub del token). Valida nombre + los `userFieldDefs` requeridos
|
|
18
|
+
* del tenant (422 MISSING_REQUIRED_FIELDS si faltan) y flipea `profileComplete=true`.
|
|
21
19
|
*/
|
|
22
|
-
class
|
|
20
|
+
class CompleteMyProfileRequest {
|
|
23
21
|
}
|
|
24
|
-
exports.
|
|
22
|
+
exports.CompleteMyProfileRequest = CompleteMyProfileRequest;
|
|
25
23
|
__decorate([
|
|
26
24
|
(0, class_transformer_1.Expose)(),
|
|
27
|
-
(0, class_validator_1.
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
28
26
|
(0, class_validator_1.IsNotEmpty)(),
|
|
29
27
|
__metadata("design:type", String)
|
|
30
|
-
],
|
|
28
|
+
], CompleteMyProfileRequest.prototype, "displayName", void 0);
|
|
31
29
|
__decorate([
|
|
32
30
|
(0, class_transformer_1.Expose)(),
|
|
33
|
-
(0, class_validator_1.
|
|
34
|
-
(0, class_validator_1.
|
|
35
|
-
__metadata("design:type",
|
|
36
|
-
],
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsObject)(),
|
|
33
|
+
__metadata("design:type", Object)
|
|
34
|
+
], CompleteMyProfileRequest.prototype, "customFields", void 0);
|
|
@@ -5,7 +5,37 @@ export declare class TransactionAlarmQueueMessage {
|
|
|
5
5
|
peopleId: string;
|
|
6
6
|
transactionNumber: string;
|
|
7
7
|
amount: number;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated NO usar como nombre del cliente titular.
|
|
10
|
+
*
|
|
11
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
12
|
+
* con `product.details.targetName` — es decir, el nombre del
|
|
13
|
+
* beneficiario/contraparte del transfer que registró el sistema
|
|
14
|
+
* originador, no el nombre del titular de la cuenta sobre la cual
|
|
15
|
+
* se genera la alerta.
|
|
16
|
+
*
|
|
17
|
+
* Fuente autoritativa del nombre del titular:
|
|
18
|
+
* identityApi.getPeopleByIds([peopleId])[0].indexName
|
|
19
|
+
*
|
|
20
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
21
|
+
* (post-fix 2026-07-29) para el pattern de resolución correcto.
|
|
22
|
+
* Bug histórico: TransactionAlert_GT.indexName mostraba
|
|
23
|
+
* "NO INGRESADO" u otro placeholder cuando este campo llegaba vacío.
|
|
24
|
+
*/
|
|
8
25
|
indexName: string;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated NO usar como teléfono del cliente titular.
|
|
28
|
+
*
|
|
29
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
30
|
+
* con `product.details.targetNumber` — es decir, el teléfono del
|
|
31
|
+
* beneficiario/contraparte del transfer, no del titular de la cuenta.
|
|
32
|
+
*
|
|
33
|
+
* Fuente autoritativa del teléfono del titular:
|
|
34
|
+
* directoryService.getById(directoryId).phoneNumber
|
|
35
|
+
*
|
|
36
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
37
|
+
* (post-fix 2026-07-29).
|
|
38
|
+
*/
|
|
9
39
|
phoneNumber: string;
|
|
10
40
|
transactionDate: string;
|
|
11
41
|
transactionType: string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body para cancelar una referencia de funding ya creada. La referencia/fundingId
|
|
3
|
+
* viaja en la URL (`/funding/{moduleName}/{fundingId}/cancel`); este body aporta
|
|
4
|
+
* el contexto del solicitante + idempotencia.
|
|
5
|
+
*
|
|
6
|
+
* NOTA: shape inferido desde el uso en `@fiado/api-invoker`
|
|
7
|
+
* (benefits-marketplace / equality-connector) — confirmar con el dueño del
|
|
8
|
+
* módulo walletFunding / el lambda equality-connector que implementa el cancel.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CancelFundingReferenceRequest {
|
|
11
|
+
directoryId: string;
|
|
12
|
+
reason?: string;
|
|
13
|
+
idempotencyKey: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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.CancelFundingReferenceRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
/**
|
|
15
|
+
* Body para cancelar una referencia de funding ya creada. La referencia/fundingId
|
|
16
|
+
* viaja en la URL (`/funding/{moduleName}/{fundingId}/cancel`); este body aporta
|
|
17
|
+
* el contexto del solicitante + idempotencia.
|
|
18
|
+
*
|
|
19
|
+
* NOTA: shape inferido desde el uso en `@fiado/api-invoker`
|
|
20
|
+
* (benefits-marketplace / equality-connector) — confirmar con el dueño del
|
|
21
|
+
* módulo walletFunding / el lambda equality-connector que implementa el cancel.
|
|
22
|
+
*/
|
|
23
|
+
class CancelFundingReferenceRequest {
|
|
24
|
+
}
|
|
25
|
+
exports.CancelFundingReferenceRequest = CancelFundingReferenceRequest;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsString)(),
|
|
28
|
+
(0, class_validator_1.MaxLength)(64),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], CancelFundingReferenceRequest.prototype, "directoryId", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
(0, class_validator_1.MaxLength)(256),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], CancelFundingReferenceRequest.prototype, "reason", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsString)(),
|
|
39
|
+
(0, class_validator_1.MaxLength)(64),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], CancelFundingReferenceRequest.prototype, "idempotencyKey", void 0);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
|
|
2
|
+
import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
|
|
3
|
+
/**
|
|
4
|
+
* Respuesta de la cancelación de una referencia de funding. Mismo estilo que
|
|
5
|
+
* CreateFundingReferenceResponse.
|
|
6
|
+
*
|
|
7
|
+
* NOTA: shape inferido desde el uso en `@fiado/api-invoker` — confirmar con el
|
|
8
|
+
* dueño del módulo walletFunding / el lambda equality-connector.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CancelFundingReferenceResponse {
|
|
11
|
+
/** Referencia cancelada (misma PK que se creó). */
|
|
12
|
+
reference: string;
|
|
13
|
+
status: BenefitPaymentStatusEnum;
|
|
14
|
+
errorCode?: WalletFundingErrorCodeEnum;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CancelFundingReferenceResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Respuesta de la cancelación de una referencia de funding. Mismo estilo que
|
|
6
|
+
* CreateFundingReferenceResponse.
|
|
7
|
+
*
|
|
8
|
+
* NOTA: shape inferido desde el uso en `@fiado/api-invoker` — confirmar con el
|
|
9
|
+
* dueño del módulo walletFunding / el lambda equality-connector.
|
|
10
|
+
*/
|
|
11
|
+
class CancelFundingReferenceResponse {
|
|
12
|
+
}
|
|
13
|
+
exports.CancelFundingReferenceResponse = CancelFundingReferenceResponse;
|
|
@@ -0,0 +1,21 @@
|
|
|
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.CancelWalletFundingRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class CancelWalletFundingRequest {
|
|
15
|
+
}
|
|
16
|
+
exports.CancelWalletFundingRequest = CancelWalletFundingRequest;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)(),
|
|
19
|
+
(0, class_validator_1.MaxLength)(64),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], CancelWalletFundingRequest.prototype, "idempotencyKey", void 0);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
|
|
2
|
+
import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
|
|
3
|
+
export declare class CancelWalletFundingResponse {
|
|
4
|
+
status: BenefitPaymentStatusEnum;
|
|
5
|
+
errorCode?: WalletFundingErrorCodeEnum;
|
|
6
|
+
fundingId?: string;
|
|
7
|
+
}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -139,6 +139,10 @@ export * as LoanScoring from './loanScoring';
|
|
|
139
139
|
// consolidado + estados crudos + datos de persona. El consolidado reusa RetailKycStatusEnum
|
|
140
140
|
// (no hay enum consolidado propio — DEC-KYC-014). SureKeep Fase 2.
|
|
141
141
|
export * as Kyc from './kyc';
|
|
142
|
+
// Onboarding: contrato de los pasos del onboarding resueltos por SCOPE y no por país
|
|
143
|
+
// (onboarding-business, DEC-009 a DEC-021). Dos bloques: `steps` (qué le falta hacer al usuario) y
|
|
144
|
+
// `accounts` (cómo va el trámite de cada cuenta, por lado).
|
|
145
|
+
export * as Onboarding from './onboarding';
|
|
142
146
|
export * from './messaging';
|
|
143
147
|
export * from './complaint';
|
|
144
148
|
// PhoneSales: DTOs del lambda cell-phone-sales-business — variantes de dispositivo (modelo/color/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expose, Type } from 'class-transformer';
|
|
2
|
-
import { IsEnum, IsISO8601, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
|
|
2
|
+
import { IsBoolean, IsEnum, IsISO8601, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
|
|
3
3
|
import { IdentificationDocumentStatus } from '../../identity/enums/IdentificationDocumentStatus';
|
|
4
4
|
import { KycVerificationStatusEnum } from '../enums/KycVerificationStatusEnum';
|
|
5
5
|
import { KycSubChecks } from '../dtos/KycSubChecks';
|
|
@@ -82,4 +82,17 @@ export class KycVerificationChangedV1 {
|
|
|
82
82
|
*/
|
|
83
83
|
@Expose() @IsOptional() @ValidateNested() @Type(() => KycAddress)
|
|
84
84
|
address?: KycAddress;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* ¿El webhook YA persistió este domicilio en `fiado-address-lambda`? Solo es `true` cuando el
|
|
88
|
+
* documento es mexicano (único caso en que el webhook escribe) y el POST aterrizó.
|
|
89
|
+
*
|
|
90
|
+
* El consumidor lo necesita para NO volver a escribirlo: el address-lambda APILA — un segundo
|
|
91
|
+
* create sobre el mismo domicilio deja una fila duplicada en el expediente.
|
|
92
|
+
*
|
|
93
|
+
* OPCIONAL y aditivo: ausente o `false` significan "nadie lo guardó todavía", que es la
|
|
94
|
+
* degradación segura (el consumidor lo pide y lo guarda él).
|
|
95
|
+
*/
|
|
96
|
+
@Expose() @IsOptional() @IsBoolean()
|
|
97
|
+
addressPushedToFiado?: boolean;
|
|
85
98
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Scope } from '../../../directory/enums/Scope';
|
|
2
|
+
import { OnboardingStepIdEnum } from '../../enums/OnboardingStepIdEnum';
|
|
3
|
+
import { OnboardingStepStatusEnum } from '../../enums/OnboardingStepStatusEnum';
|
|
4
|
+
import { OnboardingAccountStatusEnum } from '../../enums/OnboardingAccountStatusEnum';
|
|
5
|
+
import { OnboardingAccountReasonEnum } from '../../enums/OnboardingAccountReasonEnum';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
9
|
+
* onboarding-business).
|
|
10
|
+
*
|
|
11
|
+
* Para saber QUÉ documento pedir en `KYC_IDENTIFICATION`, el consumidor le pregunta a
|
|
12
|
+
* kyc-verifications-business, que es quien decide el workflow de Metamap (DEC-017).
|
|
13
|
+
*/
|
|
14
|
+
export class OnboardingStepDto {
|
|
15
|
+
id!: OnboardingStepIdEnum;
|
|
16
|
+
status!: OnboardingStepStatusEnum;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* El trámite de una cuenta, por lado. Es el único bloque que lleva motivo.
|
|
21
|
+
*/
|
|
22
|
+
export class OnboardingAccountDto {
|
|
23
|
+
/** Scope de onboarding al que corresponde la cuenta: `fiado.on_us` o `fiado.on_mx`. */
|
|
24
|
+
scope!: Scope;
|
|
25
|
+
status!: OnboardingAccountStatusEnum;
|
|
26
|
+
/** `null` cuando no hay nada que explicar. */
|
|
27
|
+
reason!: OnboardingAccountReasonEnum | null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Respuesta de `GET /onboarding-business/steps`.
|
|
32
|
+
*
|
|
33
|
+
* Dos bloques que contestan preguntas DISTINTAS, y por eso no pueden contradecirse:
|
|
34
|
+
* - `steps` → qué le falta HACER al usuario.
|
|
35
|
+
* - `accounts` → cómo va el trámite de cada cuenta.
|
|
36
|
+
*
|
|
37
|
+
* No recibe `countryId`: los pasos salen de los scopes del usuario y el sujeto sale del token.
|
|
38
|
+
*/
|
|
39
|
+
export class OnboardingStepsResponse {
|
|
40
|
+
/**
|
|
41
|
+
* Solo los pasos aplicables al scope del usuario, **EN ORDEN DE PINTADO**. El consumidor pinta el
|
|
42
|
+
* array tal como llega: no reordena ni conoce las reglas de scope.
|
|
43
|
+
*
|
|
44
|
+
* El largo PUEDE CAMBIAR entre dos llamadas. Ejemplo real: en cuanto el usuario guarda una
|
|
45
|
+
* dirección, `MX_PROOF_OF_ADDRESS` deja de aplicar y sale de la lista.
|
|
46
|
+
*
|
|
47
|
+
* Vacío si la persona no tiene ningún scope de onboarding — eso NO es un error, significa que no
|
|
48
|
+
* tiene onboarding pendiente. Pasa justo después de firmar, cuando el scope pasa de `fiado.on_mx`
|
|
49
|
+
* a `fiado.mx`.
|
|
50
|
+
*/
|
|
51
|
+
steps!: OnboardingStepDto[];
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Un item por scope de onboarding que tenga el usuario. Vacío si no tiene ninguno.
|
|
55
|
+
*
|
|
56
|
+
* Cuando una cuenta viene en `REJECTED`, el consumidor tiene que darle PRIORIDAD sobre los pasos de
|
|
57
|
+
* esa cuenta: por diseño cinco de los siete pasos nunca se bloquean, así que un usuario rechazado
|
|
58
|
+
* igual va a recibir pasos abiertos.
|
|
59
|
+
*/
|
|
60
|
+
accounts!: OnboardingAccountDto[];
|
|
61
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motivo del estado de una cuenta. Solo viaja cuando hay algo que explicar (DEC-021 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* Las claves de texto de estos valores tienen que existir en Firebase Remote Config antes de que el
|
|
6
|
+
* backend empiece a mandarlos: el copy de la app vive ahí, así que un motivo sin clave deja la pantalla
|
|
7
|
+
* sin texto.
|
|
8
|
+
*
|
|
9
|
+
* `PROVIDER_DENIED` y `PROVIDER_REVIEW` aplican SOLO al lado USA, que es donde existe `CP_Status`. El
|
|
10
|
+
* lado mexicano no tiene señal propia de rechazo más allá de las banderas de verificación del
|
|
11
|
+
* documento: `authorizationNeededMXN` está en `NOT_REQUIRED` en el 100% de los registros de producción.
|
|
12
|
+
*/
|
|
13
|
+
export enum OnboardingAccountReasonEnum {
|
|
14
|
+
/** Lista negra (`fiadoListApproved === false`). Afecta los dos lados. */
|
|
15
|
+
BLACKLIST = 'BLACKLIST',
|
|
16
|
+
/** Detección de duplicados (`duplicateUserDetection === true`). Afecta los dos lados. */
|
|
17
|
+
DUPLICATE_USER = 'DUPLICATE_USER',
|
|
18
|
+
/** Alguna verificación del documento de ese lado en `false`. */
|
|
19
|
+
DOCUMENT_INVALID = 'DOCUMENT_INVALID',
|
|
20
|
+
/** Documento subido y verificaciones todavía sin resolver. */
|
|
21
|
+
DOCUMENT_VERIFICATION = 'DOCUMENT_VERIFICATION',
|
|
22
|
+
/** Solo lado USA: el proveedor rechazó. */
|
|
23
|
+
PROVIDER_DENIED = 'PROVIDER_DENIED',
|
|
24
|
+
/** Solo lado USA: el proveedor está revisando o pidiendo documento. */
|
|
25
|
+
PROVIDER_REVIEW = 'PROVIDER_REVIEW',
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado del trámite de UNA cuenta (DEC-021 de onboarding-business).
|
|
3
|
+
*
|
|
4
|
+
* Es un eje distinto del de los pasos: `steps` dice qué le falta HACER al usuario, `accounts` dice cómo
|
|
5
|
+
* va el trámite. Un paso en `DONE` junto a una cuenta en `UNDER_REVIEW` no es contradicción — la
|
|
6
|
+
* persona ya hizo su parte.
|
|
7
|
+
*
|
|
8
|
+
* Va por lado y no como valor global porque en producción hay 230 personas con problema solo del lado
|
|
9
|
+
* USA y 28 solo del mexicano: para esas 258 un valor único mentiría, diciéndoles que no se les puede
|
|
10
|
+
* abrir cuenta cuando una de las dos sí.
|
|
11
|
+
*
|
|
12
|
+
* `OPEN` se deriva de la bandera de la cuenta (`MEX_DebitAccount` / `USA_DebitAccount`) y NUNCA del
|
|
13
|
+
* scope: cuando el backend crea la cuenta el scope sigue siendo el de onboarding, y recién cambia
|
|
14
|
+
* cuando el usuario firma los documentos legales. Derivarlo del scope produce una circularidad que
|
|
15
|
+
* deja al usuario con la cuenta creada y el contrato sin firmar de forma permanente.
|
|
16
|
+
*/
|
|
17
|
+
export enum OnboardingAccountStatusEnum {
|
|
18
|
+
IN_PROGRESS = 'IN_PROGRESS',
|
|
19
|
+
UNDER_REVIEW = 'UNDER_REVIEW',
|
|
20
|
+
REJECTED = 'REJECTED',
|
|
21
|
+
OPEN = 'OPEN',
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Los 7 pasos del onboarding, resueltos por los scopes del usuario y NO por país (DEC-009, DEC-010 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* El orden de este enum no define el orden de pintado: la respuesta trae los pasos ya ordenados y la
|
|
6
|
+
* app pinta el array tal como llega.
|
|
7
|
+
*
|
|
8
|
+
* Los ids con prefijo de lado (`US_` / `MX_`) lo llevan porque **son** de un lado: lo que el rediseño
|
|
9
|
+
* elimina es el `countryId` de la entrada, no la realidad de que el comprobante de domicilio es un
|
|
10
|
+
* requisito mexicano. `DATA_CONFIRMATION` es el paso de "revisá y confirmá tus datos"; se llama así y
|
|
11
|
+
* no `INFO_SELF_VERIFY` para no confundirlo con la verificación de Metamap de `KYC_IDENTIFICATION`.
|
|
12
|
+
*/
|
|
13
|
+
export enum OnboardingStepIdEnum {
|
|
14
|
+
KYC_IDENTIFICATION = 'KYC_IDENTIFICATION',
|
|
15
|
+
INCOME_INFORMATION = 'INCOME_INFORMATION',
|
|
16
|
+
US_ADDRESS = 'US_ADDRESS',
|
|
17
|
+
MX_PROOF_OF_ADDRESS = 'MX_PROOF_OF_ADDRESS',
|
|
18
|
+
MX_REGULATORY_QUESTIONS = 'MX_REGULATORY_QUESTIONS',
|
|
19
|
+
MX_BENEFICIARIES = 'MX_BENEFICIARIES',
|
|
20
|
+
DATA_CONFIRMATION = 'DATA_CONFIRMATION',
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de un paso. Mapea 1:1 a lo que pinta la app: caja cerrada / caja abierta / verde.
|
|
3
|
+
*
|
|
4
|
+
* Solo `KYC_IDENTIFICATION` (por veto o verificación en curso) y `DATA_CONFIRMATION` (porque agrega
|
|
5
|
+
* sobre los demás) pueden venir en `LOCKED`. Los otros cinco pasos son `UNLOCKED` o `DONE` — no existe
|
|
6
|
+
* insumo que los pueda bloquear (DEC-011 de onboarding-business).
|
|
7
|
+
*/
|
|
8
|
+
export enum OnboardingStepStatusEnum {
|
|
9
|
+
LOCKED = 'LOCKED',
|
|
10
|
+
UNLOCKED = 'UNLOCKED',
|
|
11
|
+
DONE = 'DONE',
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Enums
|
|
2
|
+
export * from './enums/OnboardingStepIdEnum';
|
|
3
|
+
export * from './enums/OnboardingStepStatusEnum';
|
|
4
|
+
export * from './enums/OnboardingAccountStatusEnum';
|
|
5
|
+
export * from './enums/OnboardingAccountReasonEnum';
|
|
6
|
+
|
|
7
|
+
// Response DTOs
|
|
8
|
+
export * from './dtos/responses/OnboardingStepsResponse';
|
|
@@ -22,10 +22,40 @@ export class TransactionAlarmQueueMessage {
|
|
|
22
22
|
@IsNotEmpty()
|
|
23
23
|
amount: number
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated NO usar como nombre del cliente titular.
|
|
27
|
+
*
|
|
28
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
29
|
+
* con `product.details.targetName` — es decir, el nombre del
|
|
30
|
+
* beneficiario/contraparte del transfer que registró el sistema
|
|
31
|
+
* originador, no el nombre del titular de la cuenta sobre la cual
|
|
32
|
+
* se genera la alerta.
|
|
33
|
+
*
|
|
34
|
+
* Fuente autoritativa del nombre del titular:
|
|
35
|
+
* identityApi.getPeopleByIds([peopleId])[0].indexName
|
|
36
|
+
*
|
|
37
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
38
|
+
* (post-fix 2026-07-29) para el pattern de resolución correcto.
|
|
39
|
+
* Bug histórico: TransactionAlert_GT.indexName mostraba
|
|
40
|
+
* "NO INGRESADO" u otro placeholder cuando este campo llegaba vacío.
|
|
41
|
+
*/
|
|
25
42
|
@IsString()
|
|
26
43
|
@IsNotEmpty()
|
|
27
44
|
indexName: string
|
|
28
45
|
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated NO usar como teléfono del cliente titular.
|
|
48
|
+
*
|
|
49
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
50
|
+
* con `product.details.targetNumber` — es decir, el teléfono del
|
|
51
|
+
* beneficiario/contraparte del transfer, no del titular de la cuenta.
|
|
52
|
+
*
|
|
53
|
+
* Fuente autoritativa del teléfono del titular:
|
|
54
|
+
* directoryService.getById(directoryId).phoneNumber
|
|
55
|
+
*
|
|
56
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
57
|
+
* (post-fix 2026-07-29).
|
|
58
|
+
*/
|
|
29
59
|
@IsString()
|
|
30
60
|
@IsNotEmpty()
|
|
31
61
|
phoneNumber: string
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
|
|
3
|
-
* `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
|
|
4
|
-
* TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
|
|
5
|
-
* @enum {string}
|
|
6
|
-
*/
|
|
7
|
-
export declare enum ModifiableByRoleEnum {
|
|
8
|
-
SUPER_ADMIN = "super_admin",
|
|
9
|
-
SOFOM_ADMIN = "sofom_admin",
|
|
10
|
-
RETAILER_ADMIN = "retailer_admin"
|
|
11
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModifiableByRoleEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
|
|
6
|
-
* `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
|
|
7
|
-
* TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
|
|
8
|
-
* @enum {string}
|
|
9
|
-
*/
|
|
10
|
-
var ModifiableByRoleEnum;
|
|
11
|
-
(function (ModifiableByRoleEnum) {
|
|
12
|
-
ModifiableByRoleEnum["SUPER_ADMIN"] = "super_admin";
|
|
13
|
-
ModifiableByRoleEnum["SOFOM_ADMIN"] = "sofom_admin";
|
|
14
|
-
ModifiableByRoleEnum["RETAILER_ADMIN"] = "retailer_admin";
|
|
15
|
-
})(ModifiableByRoleEnum || (exports.ModifiableByRoleEnum = ModifiableByRoleEnum = {}));
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { MfaMethodEnum } from '../enums/MfaMethodEnum';
|
|
2
|
-
/**
|
|
3
|
-
* Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
4
|
-
* Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
|
|
5
|
-
* identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
|
|
6
|
-
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
7
|
-
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
8
|
-
*/
|
|
9
|
-
export declare class ResendOtpRequest {
|
|
10
|
-
email: string;
|
|
11
|
-
tenantId: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Respuesta del resend-otp. `session`/`mfaMethod` frescos del nuevo challenge CUSTOM_AUTH.
|
|
15
|
-
* Plain sin validators (no validamos lo que mandamos al cliente — fiado-validation-and-dtos § 7).
|
|
16
|
-
* Ambos opcionales: en los caminos de rechazo silencioso (anti-enumeración) o ramas sin CUSTOM_AUTH
|
|
17
|
-
* el server responde 200 genérico sin session ni método.
|
|
18
|
-
*/
|
|
19
|
-
export interface ResendOtpResponse {
|
|
20
|
-
session?: string;
|
|
21
|
-
mfaMethod?: MfaMethodEnum;
|
|
22
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
3
|
-
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
4
|
-
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
5
|
-
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
6
|
-
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
7
|
-
*/
|
|
8
|
-
export declare class ResendSelfRegisterOtpRequest {
|
|
9
|
-
tenantId: string;
|
|
10
|
-
email: string;
|
|
11
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
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.ResendSelfRegisterOtpRequest = void 0;
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
14
|
-
const class_validator_1 = require("class-validator");
|
|
15
|
-
/**
|
|
16
|
-
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
17
|
-
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
18
|
-
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
19
|
-
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
20
|
-
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
21
|
-
*/
|
|
22
|
-
class ResendSelfRegisterOtpRequest {
|
|
23
|
-
}
|
|
24
|
-
exports.ResendSelfRegisterOtpRequest = ResendSelfRegisterOtpRequest;
|
|
25
|
-
__decorate([
|
|
26
|
-
(0, class_transformer_1.Expose)(),
|
|
27
|
-
(0, class_validator_1.IsString)(),
|
|
28
|
-
(0, class_validator_1.IsNotEmpty)(),
|
|
29
|
-
__metadata("design:type", String)
|
|
30
|
-
], ResendSelfRegisterOtpRequest.prototype, "tenantId", void 0);
|
|
31
|
-
__decorate([
|
|
32
|
-
(0, class_transformer_1.Expose)(),
|
|
33
|
-
(0, class_validator_1.IsEmail)(),
|
|
34
|
-
(0, class_validator_1.IsNotEmpty)(),
|
|
35
|
-
__metadata("design:type", String)
|
|
36
|
-
], ResendSelfRegisterOtpRequest.prototype, "email", void 0);
|