@fiado/api-invoker 5.85.0 → 5.86.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.
@@ -2,6 +2,7 @@ import { IBenefitsMarketplaceApi } from "./interfaces/IBenefitsMarketplaceApi.js
2
2
  import { IHttpRequest } from "@fiado/http-client";
3
3
  import { BenefitPaymentRequest, BenefitPaymentResponse } from "@fiado/type-kit/bin/benefitCenter/index.js";
4
4
  import { ApiGatewayResponse } from "@fiado/gateway-adapter";
5
+ import { RemittanceOnboardingPrefillRequest, RemittanceOnboardingPrefillResponse } from "@fiado/type-kit/bin/remittance/index.js";
5
6
  import { BenefitLeafDisplayResponse } from "./dtos/BenefitLeafDisplayResponse.js";
6
7
  import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFundingReferencesResponse } from "@fiado/type-kit/bin/walletFunding/index.js";
7
8
  export default class BenefitsMarketplaceApi implements IBenefitsMarketplaceApi {
@@ -13,4 +14,5 @@ export default class BenefitsMarketplaceApi implements IBenefitsMarketplaceApi {
13
14
  getLeafDisplay(benefitId: string, leafId: string): Promise<ApiGatewayResponse<BenefitLeafDisplayResponse>>;
14
15
  fundingCreate(moduleName: string, request: CreateFundingReferenceRequest): Promise<ApiGatewayResponse<CreateFundingReferenceResponse>>;
15
16
  fundingList(moduleName: string, directoryId: string, status?: string): Promise<ApiGatewayResponse<ListFundingReferencesResponse>>;
17
+ remittanceOnboardingPrefill(request: RemittanceOnboardingPrefillRequest): Promise<ApiGatewayResponse<RemittanceOnboardingPrefillResponse>>;
16
18
  }
@@ -40,6 +40,10 @@ let BenefitsMarketplaceApi = class BenefitsMarketplaceApi {
40
40
  const url = `${this.baseUrl}/funding/${encodeURIComponent(moduleName)}/references?${params.toString()}`;
41
41
  return await this.httpRequest.get(url);
42
42
  }
43
+ async remittanceOnboardingPrefill(request) {
44
+ const url = `${this.baseUrl}/remittance/onboarding/prefill`;
45
+ return await this.httpRequest.post(url, request);
46
+ }
43
47
  };
44
48
  BenefitsMarketplaceApi = __decorate([
45
49
  injectable(),
@@ -1,5 +1,6 @@
1
1
  import { BenefitPaymentRequest, BenefitPaymentResponse } from "@fiado/type-kit/bin/benefitCenter/index.js";
2
2
  import { ApiGatewayResponse } from "@fiado/gateway-adapter";
3
+ import { RemittanceOnboardingPrefillRequest, RemittanceOnboardingPrefillResponse } from "@fiado/type-kit/bin/remittance/index.js";
3
4
  import { BenefitLeafDisplayResponse } from "../dtos/BenefitLeafDisplayResponse.js";
4
5
  import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFundingReferencesResponse } from "@fiado/type-kit/bin/walletFunding/index.js";
5
6
  /**
@@ -71,4 +72,11 @@ export interface IBenefitsMarketplaceApi {
71
72
  * Backend: GET /funding/{moduleName}/references?directoryId=&status=
72
73
  */
73
74
  fundingList(moduleName: string, directoryId: string, status?: string): Promise<ApiGatewayResponse<ListFundingReferencesResponse>>;
75
+ /**
76
+ * Composición del onboarding de remesas de un usuario SIN ejecutarla: lo que la app
77
+ * mandaría hoy (datos de Fiado) o el motivo de bloqueo + direcciones candidatas.
78
+ * Backend: POST /remittance/onboarding/prefill (privado VPC). Lo consume remittance-business
79
+ * para el reintento de registro desde el backoffice.
80
+ */
81
+ remittanceOnboardingPrefill(request: RemittanceOnboardingPrefillRequest): Promise<ApiGatewayResponse<RemittanceOnboardingPrefillResponse>>;
74
82
  }
@@ -1,7 +1,7 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { ApiGatewayResponse } from "@fiado/gateway-adapter";
3
3
  import { ConnectorCatalogItem } from "@fiado/type-kit/bin/benefitCenter/index.js";
4
- import { CohortCountRequest, CohortCountResponse, CohortUserMatchRequest, CohortUserMatchResponse, PricingMetricsRequest, PricingMetricsResponse, PromotionReachRequest, PromotionReachResponse, SegmentMetricsRequest, SegmentMetricsResponse, WholesaleRateRequest, WholesaleRateResponse, KycUserDetail, KycUsersListResponse, KycOnboardingAttemptsResponse, RefreshUserProfileResponse, RegisterOnboardingBlockRequest, RegisterOnboardingBlockResponse, RemittanceAddBeneficiaryRequest, RemittanceBackofficeDashboardSummary, RemittanceBackofficeStats, RemittanceBackofficeStatsPeriod, RemittanceBackofficeCancelCloseRequest, RemittanceBackofficeCancelCloseResponse, RemittanceBackofficeTransaction, RemittanceBackofficeTxListResponse, RemittanceBackofficeUserDetail, RemittanceBackofficeUserListResponse, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest, RemittanceUserLimits, RemittanceUserLimitsBatchResponse, RemittanceCorridor, PricingScheduleResponse } from "@fiado/type-kit/bin/remittance/index.js";
4
+ import { CohortCountRequest, CohortCountResponse, CohortUserMatchRequest, CohortUserMatchResponse, PricingMetricsRequest, PricingMetricsResponse, PromotionReachRequest, PromotionReachResponse, SegmentMetricsRequest, SegmentMetricsResponse, WholesaleRateRequest, WholesaleRateResponse, KycUserDetail, KycUsersListResponse, KycOnboardingAttemptsResponse, RefreshUserProfileResponse, RegisterOnboardingBlockRequest, RegisterOnboardingBlockResponse, RemittanceAddBeneficiaryRequest, RemittanceBackofficeDashboardSummary, RemittanceBackofficeStats, RemittanceBackofficeStatsRangeRequest, RemittanceBackofficeStatsPeriod, RemittanceBackofficeCancelCloseRequest, RemittanceBackofficeCancelCloseResponse, RemittanceBackofficeTransaction, RemittanceBackofficeTxListResponse, RemittanceBackofficeUserDetail, RemittanceBackofficeUserListResponse, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest, RemittanceUserLimits, RemittanceUserLimitsBatchResponse, RemittanceCorridor, PricingScheduleResponse } from "@fiado/type-kit/bin/remittance/index.js";
5
5
  import { IUnitellerConnectorApi } from "./interfaces/IUnitellerConnectorApi.js";
6
6
  export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
7
7
  private httpRequest;
@@ -27,9 +27,9 @@ export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
27
27
  }): Promise<ApiGatewayResponse<RemittancePayerAdditionalFieldDto[]>>;
28
28
  listBeneficiaries(directoryId: string, includeDeactivated?: boolean): Promise<ApiGatewayResponse<RemittanceListBeneficiariesResponse>>;
29
29
  getBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
30
- addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
31
- updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
32
- deactivateBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<{
30
+ addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
31
+ updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
32
+ deactivateBeneficiary(directoryId: string, beneficiaryId: string, actor?: string): Promise<ApiGatewayResponse<{
33
33
  deactivated: boolean;
34
34
  beneficiaryId: string;
35
35
  }>>;
@@ -70,6 +70,7 @@ export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
70
70
  backofficeSyncTransaction(txNumber: string): Promise<ApiGatewayResponse<RemittanceBackofficeTransaction>>;
71
71
  backofficeCloseCancellation(txNumber: string, request: RemittanceBackofficeCancelCloseRequest): Promise<ApiGatewayResponse<RemittanceBackofficeCancelCloseResponse>>;
72
72
  backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
73
+ backofficeStatsRange(request: RemittanceBackofficeStatsRangeRequest): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
73
74
  backofficeUserLimits(directoryId: string): Promise<ApiGatewayResponse<RemittanceUserLimits>>;
74
75
  backofficeUserLimitsBatch(directoryIds: string[]): Promise<ApiGatewayResponse<RemittanceUserLimitsBatchResponse>>;
75
76
  kycListUsers(filters?: {
@@ -65,17 +65,17 @@ let UnitellerConnectorApi = class UnitellerConnectorApi {
65
65
  const url = `${this.baseUrl}/beneficiaries/${encodeURIComponent(beneficiaryId)}`;
66
66
  return await this.httpRequest.post(url, { directoryId });
67
67
  }
68
- async addBeneficiary(directoryId, request) {
68
+ async addBeneficiary(directoryId, request, actor) {
69
69
  const url = `${this.baseUrl}/beneficiaries`;
70
- return await this.httpRequest.post(url, { directoryId, ...request });
70
+ return await this.httpRequest.post(url, { directoryId, ...request, ...(actor && { actor }) });
71
71
  }
72
- async updateBeneficiary(directoryId, beneficiaryId, request) {
72
+ async updateBeneficiary(directoryId, beneficiaryId, request, actor) {
73
73
  const url = `${this.baseUrl}/beneficiaries/${encodeURIComponent(beneficiaryId)}`;
74
- return await this.httpRequest.put(url, { directoryId, ...request });
74
+ return await this.httpRequest.put(url, { directoryId, ...request, ...(actor && { actor }) });
75
75
  }
76
- async deactivateBeneficiary(directoryId, beneficiaryId) {
76
+ async deactivateBeneficiary(directoryId, beneficiaryId, actor) {
77
77
  const url = `${this.baseUrl}/beneficiaries/${encodeURIComponent(beneficiaryId)}/deactivate`;
78
- return await this.httpRequest.post(url, { directoryId });
78
+ return await this.httpRequest.post(url, { directoryId, ...(actor && { actor }) });
79
79
  }
80
80
  async pricingSchedule(directoryId, corridor) {
81
81
  const url = `${this.baseUrl}/pricing/schedule`;
@@ -157,6 +157,14 @@ let UnitellerConnectorApi = class UnitellerConnectorApi {
157
157
  const url = `${this.baseUrl}/backoffice/stats`;
158
158
  return await this.httpRequest.get(url, { period });
159
159
  }
160
+ async backofficeStatsRange(request) {
161
+ const url = `${this.baseUrl}/backoffice/stats`;
162
+ return await this.httpRequest.get(url, {
163
+ from: request.from,
164
+ to: request.to,
165
+ ...(request.tzOffsetMinutes !== undefined && { tzOffsetMinutes: String(request.tzOffsetMinutes) }),
166
+ });
167
+ }
160
168
  async backofficeUserLimits(directoryId) {
161
169
  const url = `${this.baseUrl}/backoffice/users/${encodeURIComponent(directoryId)}/limits`;
162
170
  return await this.httpRequest.get(url);
@@ -1,6 +1,6 @@
1
1
  import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
2
  import { ConnectorCatalogItem } from "@fiado/type-kit/bin/benefitCenter/index.js";
3
- import { CohortCountRequest, CohortCountResponse, CohortUserMatchRequest, CohortUserMatchResponse, PricingMetricsRequest, PricingMetricsResponse, PromotionReachRequest, PromotionReachResponse, SegmentMetricsRequest, SegmentMetricsResponse, WholesaleRateRequest, WholesaleRateResponse, RemittanceCorridor, PricingScheduleResponse, KycUserDetail, KycUsersListResponse, KycOnboardingAttemptsResponse, RefreshUserProfileResponse, RegisterOnboardingBlockRequest, RegisterOnboardingBlockResponse, RemittanceAddBeneficiaryRequest, RemittanceBackofficeDashboardSummary, RemittanceBackofficeStats, RemittanceBackofficeStatsPeriod, RemittanceBackofficeCancelCloseRequest, RemittanceBackofficeCancelCloseResponse, RemittanceBackofficeTransaction, RemittanceBackofficeTxListResponse, RemittanceBackofficeUserDetail, RemittanceBackofficeUserListResponse, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest, RemittanceUserLimits, RemittanceUserLimitsBatchResponse } from "@fiado/type-kit/bin/remittance/index.js";
3
+ import { CohortCountRequest, CohortCountResponse, CohortUserMatchRequest, CohortUserMatchResponse, PricingMetricsRequest, PricingMetricsResponse, PromotionReachRequest, PromotionReachResponse, SegmentMetricsRequest, SegmentMetricsResponse, WholesaleRateRequest, WholesaleRateResponse, RemittanceCorridor, PricingScheduleResponse, KycUserDetail, KycUsersListResponse, KycOnboardingAttemptsResponse, RefreshUserProfileResponse, RegisterOnboardingBlockRequest, RegisterOnboardingBlockResponse, RemittanceAddBeneficiaryRequest, RemittanceBackofficeDashboardSummary, RemittanceBackofficeStats, RemittanceBackofficeStatsRangeRequest, RemittanceBackofficeStatsPeriod, RemittanceBackofficeCancelCloseRequest, RemittanceBackofficeCancelCloseResponse, RemittanceBackofficeTransaction, RemittanceBackofficeTxListResponse, RemittanceBackofficeUserDetail, RemittanceBackofficeUserListResponse, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest, RemittanceUserLimits, RemittanceUserLimitsBatchResponse } from "@fiado/type-kit/bin/remittance/index.js";
4
4
  export interface IUnitellerConnectorApi {
5
5
  /** Estado del módulo remesas para un directoryId. */
6
6
  getHome(directoryId: string): Promise<ApiGatewayResponse<RemittanceHomeResponse>>;
@@ -38,9 +38,10 @@ export interface IUnitellerConnectorApi {
38
38
  }): Promise<ApiGatewayResponse<RemittancePayerAdditionalFieldDto[]>>;
39
39
  listBeneficiaries(directoryId: string, includeDeactivated?: boolean): Promise<ApiGatewayResponse<RemittanceListBeneficiariesResponse>>;
40
40
  getBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
41
- addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
42
- updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
43
- deactivateBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<{
41
+ /** `actor` opcional ("BACKOFFICE:<email>") cuando la operación no la hace el usuario; queda en createdBy/updatedBy. */
42
+ addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
43
+ updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
44
+ deactivateBeneficiary(directoryId: string, beneficiaryId: string, actor?: string): Promise<ApiGatewayResponse<{
44
45
  deactivated: boolean;
45
46
  beneficiaryId: string;
46
47
  }>>;
@@ -122,6 +123,8 @@ export interface IUnitellerConnectorApi {
122
123
  /** Cierre manual de una cancelación: UPDATE a UniTeller + credit-back. */
123
124
  backofficeCloseCancellation(txNumber: string, request: RemittanceBackofficeCancelCloseRequest): Promise<ApiGatewayResponse<RemittanceBackofficeCancelCloseResponse>>;
124
125
  backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
126
+ /** Stats por rango explícito (from/to ISO) agrupando los días con el desfase del operador. GET /backoffice/stats. */
127
+ backofficeStatsRange(request: RemittanceBackofficeStatsRangeRequest): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
125
128
  /** Límites por usuario (Operación · read-only): ventanas (límite del provider + usage) + nivel + discrepancia. */
126
129
  backofficeUserLimits(directoryId: string): Promise<ApiGatewayResponse<RemittanceUserLimits>>;
127
130
  /** Batch de límites para la tabla de Límites (CSV de directoryIds). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "5.85.0",
3
+ "version": "5.86.0",
4
4
  "description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
5
5
  "type": "module",
6
6
  "main": "bin/index.js",
@@ -34,7 +34,7 @@
34
34
  "@fiado/gateway-adapter": "^3.9.0",
35
35
  "@fiado/http-client": "^2.0.1",
36
36
  "@fiado/logger": "^1.1.3",
37
- "@fiado/type-kit": "^3.435.0",
37
+ "@fiado/type-kit": "^3.441.0",
38
38
  "dotenv": "^16.4.7"
39
39
  },
40
40
  "peerDependencies": {
@@ -3,6 +3,7 @@ import {inject, injectable} from "inversify";
3
3
  import {IHttpRequest} from "@fiado/http-client";
4
4
  import {BenefitPaymentRequest, BenefitPaymentResponse} from "@fiado/type-kit/bin/benefitCenter/index.js";
5
5
  import {ApiGatewayResponse} from "@fiado/gateway-adapter";
6
+ import {RemittanceOnboardingPrefillRequest, RemittanceOnboardingPrefillResponse} from "@fiado/type-kit/bin/remittance/index.js";
6
7
  import {BenefitLeafDisplayResponse} from "./dtos/BenefitLeafDisplayResponse.js";
7
8
  import {
8
9
  CreateFundingReferenceRequest,
@@ -56,4 +57,11 @@ export default class BenefitsMarketplaceApi implements IBenefitsMarketplaceApi {
56
57
  const url = `${this.baseUrl}/funding/${encodeURIComponent(moduleName)}/references?${params.toString()}`;
57
58
  return await this.httpRequest.get(url);
58
59
  }
60
+
61
+ async remittanceOnboardingPrefill(
62
+ request: RemittanceOnboardingPrefillRequest,
63
+ ): Promise<ApiGatewayResponse<RemittanceOnboardingPrefillResponse>> {
64
+ const url = `${this.baseUrl}/remittance/onboarding/prefill`;
65
+ return await this.httpRequest.post(url, request);
66
+ }
59
67
  }
@@ -1,5 +1,6 @@
1
1
  import {BenefitPaymentRequest, BenefitPaymentResponse} from "@fiado/type-kit/bin/benefitCenter/index.js";
2
2
  import {ApiGatewayResponse} from "@fiado/gateway-adapter";
3
+ import {RemittanceOnboardingPrefillRequest, RemittanceOnboardingPrefillResponse} from "@fiado/type-kit/bin/remittance/index.js";
3
4
  import {BenefitLeafDisplayResponse} from "../dtos/BenefitLeafDisplayResponse.js";
4
5
  import {
5
6
  CreateFundingReferenceRequest,
@@ -90,4 +91,14 @@ export interface IBenefitsMarketplaceApi {
90
91
  directoryId: string,
91
92
  status?: string,
92
93
  ): Promise<ApiGatewayResponse<ListFundingReferencesResponse>>;
94
+
95
+ /**
96
+ * Composición del onboarding de remesas de un usuario SIN ejecutarla: lo que la app
97
+ * mandaría hoy (datos de Fiado) o el motivo de bloqueo + direcciones candidatas.
98
+ * Backend: POST /remittance/onboarding/prefill (privado VPC). Lo consume remittance-business
99
+ * para el reintento de registro desde el backoffice.
100
+ */
101
+ remittanceOnboardingPrefill(
102
+ request: RemittanceOnboardingPrefillRequest,
103
+ ): Promise<ApiGatewayResponse<RemittanceOnboardingPrefillResponse>>;
93
104
  }
@@ -24,6 +24,7 @@ import {
24
24
  RemittanceAddBeneficiaryRequest,
25
25
  RemittanceBackofficeDashboardSummary,
26
26
  RemittanceBackofficeStats,
27
+ RemittanceBackofficeStatsRangeRequest,
27
28
  RemittanceBackofficeStatsPeriod,
28
29
  RemittanceBackofficeCancelCloseRequest,
29
30
  RemittanceBackofficeCancelCloseResponse,
@@ -126,19 +127,19 @@ export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
126
127
  return await this.httpRequest.post(url, { directoryId });
127
128
  }
128
129
 
129
- async addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>> {
130
+ async addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>> {
130
131
  const url = `${this.baseUrl}/beneficiaries`;
131
- return await this.httpRequest.post(url, { directoryId, ...request });
132
+ return await this.httpRequest.post(url, { directoryId, ...request, ...(actor && { actor }) });
132
133
  }
133
134
 
134
- async updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>> {
135
+ async updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>> {
135
136
  const url = `${this.baseUrl}/beneficiaries/${encodeURIComponent(beneficiaryId)}`;
136
- return await this.httpRequest.put(url, { directoryId, ...request });
137
+ return await this.httpRequest.put(url, { directoryId, ...request, ...(actor && { actor }) });
137
138
  }
138
139
 
139
- async deactivateBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<{ deactivated: boolean; beneficiaryId: string }>> {
140
+ async deactivateBeneficiary(directoryId: string, beneficiaryId: string, actor?: string): Promise<ApiGatewayResponse<{ deactivated: boolean; beneficiaryId: string }>> {
140
141
  const url = `${this.baseUrl}/beneficiaries/${encodeURIComponent(beneficiaryId)}/deactivate`;
141
- return await this.httpRequest.post(url, { directoryId });
142
+ return await this.httpRequest.post(url, { directoryId, ...(actor && { actor }) });
142
143
  }
143
144
 
144
145
  async pricingSchedule(directoryId: string, corridor: RemittanceCorridor): Promise<ApiGatewayResponse<PricingScheduleResponse>> {
@@ -247,6 +248,15 @@ export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
247
248
  return await this.httpRequest.get(url, { period });
248
249
  }
249
250
 
251
+ async backofficeStatsRange(request: RemittanceBackofficeStatsRangeRequest): Promise<ApiGatewayResponse<RemittanceBackofficeStats>> {
252
+ const url = `${this.baseUrl}/backoffice/stats`;
253
+ return await this.httpRequest.get(url, {
254
+ from: request.from,
255
+ to: request.to,
256
+ ...(request.tzOffsetMinutes !== undefined && { tzOffsetMinutes: String(request.tzOffsetMinutes) }),
257
+ });
258
+ }
259
+
250
260
  async backofficeUserLimits(directoryId: string): Promise<ApiGatewayResponse<RemittanceUserLimits>> {
251
261
  const url = `${this.baseUrl}/backoffice/users/${encodeURIComponent(directoryId)}/limits`;
252
262
  return await this.httpRequest.get(url);
@@ -24,6 +24,7 @@ import {
24
24
  RemittanceAddBeneficiaryRequest,
25
25
  RemittanceBackofficeDashboardSummary,
26
26
  RemittanceBackofficeStats,
27
+ RemittanceBackofficeStatsRangeRequest,
27
28
  RemittanceBackofficeStatsPeriod,
28
29
  RemittanceBackofficeCancelCloseRequest,
29
30
  RemittanceBackofficeCancelCloseResponse,
@@ -108,9 +109,10 @@ export interface IUnitellerConnectorApi {
108
109
 
109
110
  listBeneficiaries(directoryId: string, includeDeactivated?: boolean): Promise<ApiGatewayResponse<RemittanceListBeneficiariesResponse>>;
110
111
  getBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
111
- addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
112
- updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
113
- deactivateBeneficiary(directoryId: string, beneficiaryId: string): Promise<ApiGatewayResponse<{ deactivated: boolean; beneficiaryId: string }>>;
112
+ /** `actor` opcional ("BACKOFFICE:<email>") cuando la operación no la hace el usuario; queda en createdBy/updatedBy. */
113
+ addBeneficiary(directoryId: string, request: RemittanceAddBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
114
+ updateBeneficiary(directoryId: string, beneficiaryId: string, request: RemittanceUpdateBeneficiaryRequest, actor?: string): Promise<ApiGatewayResponse<RemittanceBeneficiary>>;
115
+ deactivateBeneficiary(directoryId: string, beneficiaryId: string, actor?: string): Promise<ApiGatewayResponse<{ deactivated: boolean; beneficiaryId: string }>>;
114
116
  /** Schedule de tramos de service fee + promo automática por corredor (F2 app; passthrough a remittance-business). POST /pricing/schedule. */
115
117
  pricingSchedule(directoryId: string, corridor: RemittanceCorridor): Promise<ApiGatewayResponse<PricingScheduleResponse>>;
116
118
 
@@ -198,6 +200,8 @@ export interface IUnitellerConnectorApi {
198
200
  /** Cierre manual de una cancelación: UPDATE a UniTeller + credit-back. */
199
201
  backofficeCloseCancellation(txNumber: string, request: RemittanceBackofficeCancelCloseRequest): Promise<ApiGatewayResponse<RemittanceBackofficeCancelCloseResponse>>;
200
202
  backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
203
+ /** Stats por rango explícito (from/to ISO) agrupando los días con el desfase del operador. GET /backoffice/stats. */
204
+ backofficeStatsRange(request: RemittanceBackofficeStatsRangeRequest): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
201
205
  /** Límites por usuario (Operación · read-only): ventanas (límite del provider + usage) + nivel + discrepancia. */
202
206
  backofficeUserLimits(directoryId: string): Promise<ApiGatewayResponse<RemittanceUserLimits>>;
203
207
  /** Batch de límites para la tabla de Límites (CSV de directoryIds). */