@fiado/type-kit 3.392.0 → 3.393.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.
@@ -31,9 +31,10 @@ export declare class RemittanceAddBeneficiaryRequest {
31
31
  payerBranchCode?: string;
32
32
  address: RemittanceBeneficiaryAddressDTO;
33
33
  /**
34
- * Additional fields requeridos por algunos payers (ej. `accountType` para Account Credit).
35
- * Se pasan tal cual a UNIR como `additionalFieldInfo`. Los nombres/valores válidos vienen de
36
- * GET /payers/{code}/fields (fieldName + fieldOptions). Opcional: Cash Pickup no los necesita.
34
+ * Additional fields de beneficiario requeridos por algunos payers (ej. `accountType` en
35
+ * Account Credit, identificación del remitente en algunos Cash Pickup). Se pasan tal cual
36
+ * a UNIR como `additionalFieldInfo`. Los nombres/valores válidos vienen de
37
+ * GET /payers/{code}/fields (fieldName + fieldOptions; para dropdowns se envía el `key`).
37
38
  */
38
39
  additionalFields?: RemittanceBeneficiaryAdditionalFieldDTO[];
39
40
  }
@@ -1,11 +1,13 @@
1
+ import { RemittanceFieldBelongsTo } from "../enums/RemittanceFieldBelongsTo";
1
2
  /**
2
3
  * Campo adicional requerido por un payer/receptionMethod, devuelto por el
3
4
  * endpoint público `GET /remittance/payers/{code}/fields?...`.
4
5
  *
5
6
  * El frontend renderiza un control según `fieldType` y valida con `regex` /
6
7
  * `minLen`/`maxLen` antes de submit. El valor capturado se envía al backend
7
- * como `additionalFieldInfo: [{ name, value }, ...]` en la request de
8
- * AddBeneficiary o SendMoneyPreview.
8
+ * como `additionalFields: [{ name, value }, ...]` en AddBeneficiary si
9
+ * `belongsTo` es BENEFICIARY, en SendPreview si es TRANSACTION. Para dropdowns
10
+ * el `value` enviado es el `key` de la opción, nunca el label.
9
11
  *
10
12
  * Ejemplo real (Banco Industrial GTQ Account Credit): 1 field `accountType`
11
13
  * dropdown con opciones { key:"01", value:"Checking" }, { key:"02", value:"Savings" }.
@@ -15,7 +17,10 @@ export interface RemittancePayerAdditionalFieldDto {
15
17
  fieldLabel: string;
16
18
  /** "dropdown" | "text" | "number" | etc. — UI elige control según este valor. */
17
19
  fieldType: string;
20
+ /** UNIR no manda flag: un campo presente en el catálogo del payer es requerido. */
18
21
  required: boolean;
22
+ /** Entidad a la que pertenece el campo. Ausente = BENEFICIARY (compat). */
23
+ belongsTo?: RemittanceFieldBelongsTo;
19
24
  /** Solo si `fieldType === "dropdown"`. */
20
25
  fieldOptions?: Array<{
21
26
  key: string;
@@ -12,6 +12,22 @@ import { ReceptionMethod } from "../enums/ReceptionMethod";
12
12
  * 3. Valide el `accNumber` del lado del cliente con `accNumberRegex` antes
13
13
  * de hacer submit (mejor UX que esperar 400 del backend).
14
14
  */
15
+ /**
16
+ * Detalle por reception method de un payer. UNIR reporta los flags, el regex de
17
+ * cuenta y el límite POR MÉTODO; los campos planos de `RemittancePayerDto` son
18
+ * un agregado payer-level que puede sobre-reportar (ej. `requiresAdditionalFields`
19
+ * es el OR entre métodos). La UI debe preferir este detalle cuando esté presente.
20
+ */
21
+ export interface RemittancePayerReceptionMethodDetailDto {
22
+ method: ReceptionMethod;
23
+ requiresAdditionalFields: boolean;
24
+ requiresBranch: boolean;
25
+ /** Regex de validación del `accNumber` para este método (UNIR solo lo define en ACCOUNT_CREDIT). */
26
+ accNumberRegex?: string;
27
+ accNumberHelperText?: string;
28
+ /** Límite USD por transacción reportado por UNIR para este payer+método. */
29
+ txnLimit?: number;
30
+ }
15
31
  export interface RemittancePayerDto {
16
32
  /** Código UNIR del payer (ej. "GCA10" Banrural). Usado como `payerCode` en AddBeneficiary. */
17
33
  payerCode: string;
@@ -31,4 +47,6 @@ export interface RemittancePayerDto {
31
47
  logoUrl?: string;
32
48
  /** Orden de aparición sugerido por UNIR (asc). */
33
49
  sortOrder?: number;
50
+ /** Detalle por método (flags/regex/límite reales de UNIR). Preferir sobre los campos planos. */
51
+ receptionMethodDetails?: RemittancePayerReceptionMethodDetailDto[];
34
52
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A qué entidad pertenece un additional field del payer (UNIR `fieldBelongsTo`).
3
+ * BENEFICIARY viaja en AddBeneficiary; TRANSACTION viaja en el SendPreview de la transacción.
4
+ */
5
+ export declare enum RemittanceFieldBelongsTo {
6
+ BENEFICIARY = "BENEFICIARY",
7
+ TRANSACTION = "TRANSACTION"
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RemittanceFieldBelongsTo = void 0;
4
+ /**
5
+ * A qué entidad pertenece un additional field del payer (UNIR `fieldBelongsTo`).
6
+ * BENEFICIARY viaja en AddBeneficiary; TRANSACTION viaja en el SendPreview de la transacción.
7
+ */
8
+ var RemittanceFieldBelongsTo;
9
+ (function (RemittanceFieldBelongsTo) {
10
+ RemittanceFieldBelongsTo["BENEFICIARY"] = "BENEFICIARY";
11
+ RemittanceFieldBelongsTo["TRANSACTION"] = "TRANSACTION";
12
+ })(RemittanceFieldBelongsTo || (exports.RemittanceFieldBelongsTo = RemittanceFieldBelongsTo = {}));
@@ -23,3 +23,4 @@ export * from "./RuleOperator";
23
23
  export * from "./RuleActionType";
24
24
  export * from "./AuditResult";
25
25
  export * from "./RemittanceExceptionCode";
26
+ export * from "./RemittanceFieldBelongsTo";
@@ -39,3 +39,4 @@ __exportStar(require("./RuleOperator"), exports);
39
39
  __exportStar(require("./RuleActionType"), exports);
40
40
  __exportStar(require("./AuditResult"), exports);
41
41
  __exportStar(require("./RemittanceExceptionCode"), exports);
42
+ __exportStar(require("./RemittanceFieldBelongsTo"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.392.0",
3
+ "version": "3.393.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -92,9 +92,10 @@ export class RemittanceAddBeneficiaryRequest {
92
92
  address!: RemittanceBeneficiaryAddressDTO;
93
93
 
94
94
  /**
95
- * Additional fields requeridos por algunos payers (ej. `accountType` para Account Credit).
96
- * Se pasan tal cual a UNIR como `additionalFieldInfo`. Los nombres/valores válidos vienen de
97
- * GET /payers/{code}/fields (fieldName + fieldOptions). Opcional: Cash Pickup no los necesita.
95
+ * Additional fields de beneficiario requeridos por algunos payers (ej. `accountType` en
96
+ * Account Credit, identificación del remitente en algunos Cash Pickup). Se pasan tal cual
97
+ * a UNIR como `additionalFieldInfo`. Los nombres/valores válidos vienen de
98
+ * GET /payers/{code}/fields (fieldName + fieldOptions; para dropdowns se envía el `key`).
98
99
  */
99
100
  @IsOptional()
100
101
  @ValidateNested({ each: true })
@@ -1,11 +1,14 @@
1
+ import { RemittanceFieldBelongsTo } from "../enums/RemittanceFieldBelongsTo";
2
+
1
3
  /**
2
4
  * Campo adicional requerido por un payer/receptionMethod, devuelto por el
3
5
  * endpoint público `GET /remittance/payers/{code}/fields?...`.
4
6
  *
5
7
  * El frontend renderiza un control según `fieldType` y valida con `regex` /
6
8
  * `minLen`/`maxLen` antes de submit. El valor capturado se envía al backend
7
- * como `additionalFieldInfo: [{ name, value }, ...]` en la request de
8
- * AddBeneficiary o SendMoneyPreview.
9
+ * como `additionalFields: [{ name, value }, ...]` en AddBeneficiary si
10
+ * `belongsTo` es BENEFICIARY, en SendPreview si es TRANSACTION. Para dropdowns
11
+ * el `value` enviado es el `key` de la opción, nunca el label.
9
12
  *
10
13
  * Ejemplo real (Banco Industrial GTQ Account Credit): 1 field `accountType`
11
14
  * dropdown con opciones { key:"01", value:"Checking" }, { key:"02", value:"Savings" }.
@@ -15,7 +18,10 @@ export interface RemittancePayerAdditionalFieldDto {
15
18
  fieldLabel: string;
16
19
  /** "dropdown" | "text" | "number" | etc. — UI elige control según este valor. */
17
20
  fieldType: string;
21
+ /** UNIR no manda flag: un campo presente en el catálogo del payer es requerido. */
18
22
  required: boolean;
23
+ /** Entidad a la que pertenece el campo. Ausente = BENEFICIARY (compat). */
24
+ belongsTo?: RemittanceFieldBelongsTo;
19
25
  /** Solo si `fieldType === "dropdown"`. */
20
26
  fieldOptions?: Array<{ key: string; value: string }>;
21
27
  regex?: string;
@@ -13,6 +13,23 @@ import { ReceptionMethod } from "../enums/ReceptionMethod";
13
13
  * 3. Valide el `accNumber` del lado del cliente con `accNumberRegex` antes
14
14
  * de hacer submit (mejor UX que esperar 400 del backend).
15
15
  */
16
+ /**
17
+ * Detalle por reception method de un payer. UNIR reporta los flags, el regex de
18
+ * cuenta y el límite POR MÉTODO; los campos planos de `RemittancePayerDto` son
19
+ * un agregado payer-level que puede sobre-reportar (ej. `requiresAdditionalFields`
20
+ * es el OR entre métodos). La UI debe preferir este detalle cuando esté presente.
21
+ */
22
+ export interface RemittancePayerReceptionMethodDetailDto {
23
+ method: ReceptionMethod;
24
+ requiresAdditionalFields: boolean;
25
+ requiresBranch: boolean;
26
+ /** Regex de validación del `accNumber` para este método (UNIR solo lo define en ACCOUNT_CREDIT). */
27
+ accNumberRegex?: string;
28
+ accNumberHelperText?: string;
29
+ /** Límite USD por transacción reportado por UNIR para este payer+método. */
30
+ txnLimit?: number;
31
+ }
32
+
16
33
  export interface RemittancePayerDto {
17
34
  /** Código UNIR del payer (ej. "GCA10" Banrural). Usado como `payerCode` en AddBeneficiary. */
18
35
  payerCode: string;
@@ -32,4 +49,6 @@ export interface RemittancePayerDto {
32
49
  logoUrl?: string;
33
50
  /** Orden de aparición sugerido por UNIR (asc). */
34
51
  sortOrder?: number;
52
+ /** Detalle por método (flags/regex/límite reales de UNIR). Preferir sobre los campos planos. */
53
+ receptionMethodDetails?: RemittancePayerReceptionMethodDetailDto[];
35
54
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A qué entidad pertenece un additional field del payer (UNIR `fieldBelongsTo`).
3
+ * BENEFICIARY viaja en AddBeneficiary; TRANSACTION viaja en el SendPreview de la transacción.
4
+ */
5
+ export enum RemittanceFieldBelongsTo {
6
+ BENEFICIARY = "BENEFICIARY",
7
+ TRANSACTION = "TRANSACTION",
8
+ }
@@ -23,3 +23,4 @@ export * from "./RuleOperator";
23
23
  export * from "./RuleActionType";
24
24
  export * from "./AuditResult";
25
25
  export * from "./RemittanceExceptionCode";
26
+ export * from "./RemittanceFieldBelongsTo";