@fiado/api-invoker 5.134.0 → 5.136.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.
@@ -1,6 +1,6 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import type { StandardResponse } from "@fiado/gateway-adapter";
3
- import type { PrivateLatestClosedPayoutResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
3
+ import type { PrivateLatestClosedPayoutResponse, PrivateTriggerSellerPaymentResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
4
4
  import type { IRetailCommissionBusinessApi } from "./interfaces/IRetailCommissionBusinessApi.js";
5
5
  /** Publisher HTTP de `retail-commission-business`. Contrato → `IRetailCommissionBusinessApi`. */
6
6
  export declare class RetailCommissionBusinessApi implements IRetailCommissionBusinessApi {
@@ -9,4 +9,5 @@ export declare class RetailCommissionBusinessApi implements IRetailCommissionBus
9
9
  /** La URL del SSM termina en `/v1/`; se quita la barra final para no duplicarla. */
10
10
  private get baseUrl();
11
11
  getLatestClosedPayout(retailerId: string, tenantId: string): Promise<StandardResponse<PrivateLatestClosedPayoutResponse>>;
12
+ triggerSellerPayment(retailerId: string, sellerId: string, tenantId: string): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>>;
12
13
  }
@@ -26,6 +26,11 @@ let RetailCommissionBusinessApi = class RetailCommissionBusinessApi {
26
26
  const query = new URLSearchParams({ tenantId });
27
27
  return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
28
28
  }
29
+ async triggerSellerPayment(retailerId, sellerId, tenantId) {
30
+ const path = `/private/retailers/${encodeURIComponent(retailerId)}/sellers/${encodeURIComponent(sellerId)}/payments/trigger`;
31
+ const query = new URLSearchParams({ tenantId });
32
+ return await this.httpRequest.post(`${this.baseUrl}${path}?${query.toString()}`, {});
33
+ }
29
34
  };
30
35
  RetailCommissionBusinessApi = __decorate([
31
36
  injectable(),
@@ -1,5 +1,5 @@
1
1
  import type { StandardResponse } from "@fiado/gateway-adapter";
2
- import type { PrivateLatestClosedPayoutResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
2
+ import type { PrivateLatestClosedPayoutResponse, PrivateTriggerSellerPaymentResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
3
3
  /**
4
4
  * Publisher de los endpoints privados de `retail-commission-business` (motor de comisiones de
5
5
  * VentasLuga). No confundir con `commission-business`, que es otro servicio.
@@ -13,4 +13,10 @@ export interface IRetailCommissionBusinessApi {
13
13
  * de la cadena, con lo que le pagó a cada vendedor. Sin corte cerrado reciente: `period: null`.
14
14
  */
15
15
  getLatestClosedPayout(retailerId: string, tenantId: string): Promise<StandardResponse<PrivateLatestClosedPayoutResponse>>;
16
+ /**
17
+ * `POST /private/retailers/{retailerId}/sellers/{sellerId}/payments/trigger` — pide al motor
18
+ * intentar pagar el saldo pendiente del vendedor. Lo usa retail-org al vincular una wallet.
19
+ * Va con cuerpo vacío (`{}`) y responde 202 `{ enqueued }`; rechaza si el motor responde con error.
20
+ */
21
+ triggerSellerPayment(retailerId: string, sellerId: string, tenantId: string): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>>;
16
22
  }
@@ -1,6 +1,6 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { StandardResponse } from "@fiado/gateway-adapter";
3
- import { UpsertCustomerFromKycRequest, EnsureCustomerByPhoneRequest, EnsureCustomerByPhoneResponse, AccountResultRequest, CustomerResponse, PromotionBonusEntryResponse, UpsertPromotionBonusRequest, WelcomeAccreditationRequest, WelcomeAccreditationResponse, WelcomeAccreditationResultRequest, WelcomeBonusResponse } from "@fiado/type-kit/bin/retailCustomer/index.js";
3
+ import { UpsertCustomerFromKycRequest, AccountResultRequest, CustomerResponse, PromotionBonusEntryResponse, UpsertPromotionBonusRequest, WelcomeAccreditationRequest, WelcomeAccreditationResponse, WelcomeAccreditationResultRequest, WelcomeBonusResponse } from "@fiado/type-kit/bin/retailCustomer/index.js";
4
4
  import { CustomersBatchRequest, CustomersBatchResponse } from "./dtos/CustomersBatch.js";
5
5
  import { CustomersPageQuery, PrivateCustomerListItem } from "./dtos/CustomersPage.js";
6
6
  import { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
@@ -24,7 +24,6 @@ export default class RetailCustomerBusinessApi implements IRetailCustomerBusines
24
24
  private readonly baseUrl;
25
25
  constructor(httpRequest: IHttpRequest);
26
26
  upsertCustomerFromKyc(payload: UpsertCustomerFromKycRequest, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
27
- ensureCustomerByPhone(payload: EnsureCustomerByPhoneRequest, tenantId: string): Promise<StandardResponse<EnsureCustomerByPhoneResponse>>;
28
27
  setAccountResult(customerId: string, payload: AccountResultRequest, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
29
28
  getCustomerByPhone(phone: string, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
30
29
  getCustomer(customerId: string, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
@@ -35,10 +35,6 @@ let RetailCustomerBusinessApi = class RetailCustomerBusinessApi {
35
35
  const url = `${this.baseUrl}/private/customers/upsert-from-kyc?tenantId=${encodeURIComponent(tenantId)}`;
36
36
  return await this.httpRequest.post(url, payload);
37
37
  }
38
- async ensureCustomerByPhone(payload, tenantId) {
39
- const url = `${this.baseUrl}/private/customers/ensure-by-phone?tenantId=${encodeURIComponent(tenantId)}`;
40
- return await this.httpRequest.post(url, payload);
41
- }
42
38
  async setAccountResult(customerId, payload, tenantId) {
43
39
  const url = `${this.baseUrl}/private/customers/${encodeURIComponent(customerId)}/account-result?tenantId=${encodeURIComponent(tenantId)}`;
44
40
  return await this.httpRequest.put(url, payload);
@@ -1,5 +1,5 @@
1
1
  import { StandardResponse } from "@fiado/gateway-adapter";
2
- import { UpsertCustomerFromKycRequest, EnsureCustomerByPhoneRequest, EnsureCustomerByPhoneResponse, AccountResultRequest, CustomerResponse, PromotionBonusEntryResponse, UpsertPromotionBonusRequest, WelcomeAccreditationRequest, WelcomeAccreditationResponse, WelcomeAccreditationResultRequest, WelcomeBonusResponse } from "@fiado/type-kit/bin/retailCustomer/index.js";
2
+ import { UpsertCustomerFromKycRequest, AccountResultRequest, CustomerResponse, PromotionBonusEntryResponse, UpsertPromotionBonusRequest, WelcomeAccreditationRequest, WelcomeAccreditationResponse, WelcomeAccreditationResultRequest, WelcomeBonusResponse } from "@fiado/type-kit/bin/retailCustomer/index.js";
3
3
  import { CustomersBatchRequest, CustomersBatchResponse } from "../dtos/CustomersBatch.js";
4
4
  import { CustomersPageQuery, PrivateCustomerListItem } from "../dtos/CustomersPage.js";
5
5
  import { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
@@ -54,15 +54,6 @@ export interface IRetailCustomerBusinessApi {
54
54
  * aditivo al type-kit (backlog) — no acá.
55
55
  */
56
56
  upsertCustomerFromKyc(payload: UpsertCustomerFromKycRequest, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
57
- /**
58
- * POST /private/customers/ensure-by-phone?tenantId= — devuelve el cliente de ese celular o lo da
59
- * de alta solo con el celular (ya verificado por OTP). Idempotente: dos llamadas con el mismo
60
- * número devuelven el mismo cliente. `created=true` solo cuando esta llamada lo dio de alta.
61
- *
62
- * @throws `422 CUSTOMER_INACTIVE` si el número es de un cliente dado de baja.
63
- * @throws `400 VALIDATION_ERROR` si el celular no trae 10 dígitos o falta la tienda.
64
- */
65
- ensureCustomerByPhone(payload: EnsureCustomerByPhoneRequest, tenantId: string): Promise<StandardResponse<EnsureCustomerByPhoneResponse>>;
66
57
  /**
67
58
  * PUT /private/customers/{customerId}/account-result?tenantId= — aterriza el resultado terminal de
68
59
  * la apertura de cuenta async (D35). Solo acepta OPEN/FAILED (nunca el intermedio OPENING). OPEN
@@ -1,6 +1,6 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { StandardResponse } from "@fiado/gateway-adapter";
3
- import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum } from "@fiado/type-kit/bin/retailOrg/index.js";
3
+ import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum, PrivateRetailUserWalletResponse } from "@fiado/type-kit/bin/retailOrg/index.js";
4
4
  import type { ApplyRetailUserEventRequest, ApplyRetailUserEventResponse, ApplyStoreEventRequest, ApplyStoreEventResponse } from "@fiado/type-kit/bin/retailIntegration/index.js";
5
5
  import { IRetailOrgBusinessApi, RetailerRosterStatusFilter, StoreRosterStatusFilter } from "./interfaces/IRetailOrgBusinessApi.js";
6
6
  /**
@@ -52,6 +52,8 @@ export default class RetailOrgBusinessApi implements IRetailOrgBusinessApi {
52
52
  listSellers(retailerId: string, tenantId: string, callerService: string, status?: RetailUserStatusEnum, includePhone?: boolean): Promise<StandardResponse<PrivateSellerListResponse>>;
53
53
  /** Metas del periodo de una cadena. Contrato → `IRetailOrgBusinessApi.listGoals`. */
54
54
  listGoals(retailerId: string, tenantId: string, periodId: string, targetType?: GoalTargetTypeEnum): Promise<StandardResponse<PrivateGoalListResponse>>;
55
+ /** Wallet PCF del vendedor para el motor. Contrato → `IRetailOrgBusinessApi.getRetailUserWallet`. */
56
+ getRetailUserWallet(retailerId: string, retailUserId: string, tenantId: string): Promise<StandardResponse<PrivateRetailUserWalletResponse>>;
55
57
  privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>>;
56
58
  privateApplyRetailUserEvent(request: ApplyRetailUserEventRequest): Promise<StandardResponse<ApplyRetailUserEventResponse>>;
57
59
  private applyRetailEvent;
@@ -110,6 +110,14 @@ let RetailOrgBusinessApi = class RetailOrgBusinessApi {
110
110
  const path = `/private/retailers/${encodeURIComponent(retailerId)}/goals`;
111
111
  return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
112
112
  }
113
+ /** Wallet PCF del vendedor para el motor. Contrato → `IRetailOrgBusinessApi.getRetailUserWallet`. */
114
+ async getRetailUserWallet(retailerId, retailUserId, tenantId) {
115
+ // La URL del SSM termina en "/"; se quita para no duplicarla.
116
+ const base = this.baseUrl.replace(/\/+$/, "");
117
+ const path = `/private/retailers/${encodeURIComponent(retailerId)}/users/${encodeURIComponent(retailUserId)}/wallet`;
118
+ const query = new URLSearchParams({ tenantId });
119
+ return await this.httpRequest.get(`${base}${path}?${query.toString()}`);
120
+ }
113
121
  async privateApplyStoreEvent(request) {
114
122
  return await this.applyRetailEvent("/private/integration/store-events", request);
115
123
  }
@@ -1,5 +1,5 @@
1
1
  import { StandardResponse } from "@fiado/gateway-adapter";
2
- import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum, RetailerStatusEnum, StoreStatusEnum } from "@fiado/type-kit/bin/retailOrg/index.js";
2
+ import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum, RetailerStatusEnum, StoreStatusEnum, PrivateRetailUserWalletResponse } from "@fiado/type-kit/bin/retailOrg/index.js";
3
3
  import type { ApplyRetailUserEventRequest, ApplyRetailUserEventResponse, ApplyStoreEventRequest, ApplyStoreEventResponse } from "@fiado/type-kit/bin/retailIntegration/index.js";
4
4
  /**
5
5
  * Filtro de `listStoresByRetailer`. `"ALL"` no es un estado de tienda: es la ausencia de filtro, y
@@ -228,6 +228,15 @@ export interface IRetailOrgBusinessApi {
228
228
  * @throws `400 VALIDATION_ERROR` con un periodo o tipo inválido · `400 UNKNOWN_TENANT` sin tenant.
229
229
  */
230
230
  listGoals(retailerId: string, tenantId: string, periodId: string, targetType?: GoalTargetTypeEnum): Promise<StandardResponse<PrivateGoalListResponse>>;
231
+ /**
232
+ * `GET /private/retailers/{retailerId}/users/{retailUserId}/wallet` — la wallet PCF del vendedor
233
+ * para el motor de comisiones. `directoryId` y `pcfAccountId` vienen en `null` si no tiene; la
234
+ * CLABE no viaja.
235
+ *
236
+ * @throws `404 RETAIL_USER_NOT_FOUND` si el vendedor no existe o es de otra cadena ·
237
+ * `400 UNKNOWN_TENANT` sin `tenantId`.
238
+ */
239
+ getRetailUserWallet(retailerId: string, retailUserId: string, tenantId: string): Promise<StandardResponse<PrivateRetailUserWalletResponse>>;
231
240
  /** `POST /private/integration/store-events?tenantId=` — aplica un evento de tienda del retailer. */
232
241
  privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>>;
233
242
  /** `POST /private/integration/retail-user-events?tenantId=` — aplica un evento de usuario del retailer. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "5.134.0",
3
+ "version": "5.136.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.14.0",
35
35
  "@fiado/http-client": "^2.0.1",
36
36
  "@fiado/logger": "^1.1.3",
37
- "@fiado/type-kit": "^3.550.0",
37
+ "@fiado/type-kit": "^3.551.0",
38
38
  "dotenv": "^16.4.7"
39
39
  },
40
40
  "peerDependencies": {
@@ -1,7 +1,10 @@
1
1
  import { inject, injectable } from "inversify";
2
2
  import type { IHttpRequest } from "@fiado/http-client";
3
3
  import type { StandardResponse } from "@fiado/gateway-adapter";
4
- import type { PrivateLatestClosedPayoutResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
4
+ import type {
5
+ PrivateLatestClosedPayoutResponse,
6
+ PrivateTriggerSellerPaymentResponse,
7
+ } from "@fiado/type-kit/bin/retailCommission/index.js";
5
8
  import type { IRetailCommissionBusinessApi } from "./interfaces/IRetailCommissionBusinessApi.js";
6
9
 
7
10
  /** Publisher HTTP de `retail-commission-business`. Contrato → `IRetailCommissionBusinessApi`. */
@@ -22,4 +25,14 @@ export class RetailCommissionBusinessApi implements IRetailCommissionBusinessApi
22
25
  const query = new URLSearchParams({ tenantId });
23
26
  return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
24
27
  }
28
+
29
+ async triggerSellerPayment(
30
+ retailerId: string,
31
+ sellerId: string,
32
+ tenantId: string,
33
+ ): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>> {
34
+ const path = `/private/retailers/${encodeURIComponent(retailerId)}/sellers/${encodeURIComponent(sellerId)}/payments/trigger`;
35
+ const query = new URLSearchParams({ tenantId });
36
+ return await this.httpRequest.post(`${this.baseUrl}${path}?${query.toString()}`, {});
37
+ }
25
38
  }
@@ -1,5 +1,8 @@
1
1
  import type { StandardResponse } from "@fiado/gateway-adapter";
2
- import type { PrivateLatestClosedPayoutResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
2
+ import type {
3
+ PrivateLatestClosedPayoutResponse,
4
+ PrivateTriggerSellerPaymentResponse,
5
+ } from "@fiado/type-kit/bin/retailCommission/index.js";
3
6
 
4
7
  /**
5
8
  * Publisher de los endpoints privados de `retail-commission-business` (motor de comisiones de
@@ -17,4 +20,15 @@ export interface IRetailCommissionBusinessApi {
17
20
  retailerId: string,
18
21
  tenantId: string,
19
22
  ): Promise<StandardResponse<PrivateLatestClosedPayoutResponse>>;
23
+
24
+ /**
25
+ * `POST /private/retailers/{retailerId}/sellers/{sellerId}/payments/trigger` — pide al motor
26
+ * intentar pagar el saldo pendiente del vendedor. Lo usa retail-org al vincular una wallet.
27
+ * Va con cuerpo vacío (`{}`) y responde 202 `{ enqueued }`; rechaza si el motor responde con error.
28
+ */
29
+ triggerSellerPayment(
30
+ retailerId: string,
31
+ sellerId: string,
32
+ tenantId: string,
33
+ ): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>>;
20
34
  }
@@ -3,8 +3,6 @@ import type { IHttpRequest } from "@fiado/http-client";
3
3
  import { StandardResponse } from "@fiado/gateway-adapter";
4
4
  import {
5
5
  UpsertCustomerFromKycRequest,
6
- EnsureCustomerByPhoneRequest,
7
- EnsureCustomerByPhoneResponse,
8
6
  AccountResultRequest,
9
7
  CustomerResponse,
10
8
  PromotionBonusEntryResponse,
@@ -47,14 +45,6 @@ export default class RetailCustomerBusinessApi implements IRetailCustomerBusines
47
45
  return await this.httpRequest.post(url, payload);
48
46
  }
49
47
 
50
- async ensureCustomerByPhone(
51
- payload: EnsureCustomerByPhoneRequest,
52
- tenantId: string,
53
- ): Promise<StandardResponse<EnsureCustomerByPhoneResponse>> {
54
- const url = `${this.baseUrl}/private/customers/ensure-by-phone?tenantId=${encodeURIComponent(tenantId)}`;
55
- return await this.httpRequest.post(url, payload);
56
- }
57
-
58
48
  async setAccountResult(
59
49
  customerId: string,
60
50
  payload: AccountResultRequest,
@@ -1,8 +1,6 @@
1
1
  import { StandardResponse } from "@fiado/gateway-adapter";
2
2
  import {
3
3
  UpsertCustomerFromKycRequest,
4
- EnsureCustomerByPhoneRequest,
5
- EnsureCustomerByPhoneResponse,
6
4
  AccountResultRequest,
7
5
  CustomerResponse,
8
6
  PromotionBonusEntryResponse,
@@ -71,19 +69,6 @@ export interface IRetailCustomerBusinessApi {
71
69
  tenantId: string,
72
70
  ): Promise<StandardResponse<CustomerResponse>>;
73
71
 
74
- /**
75
- * POST /private/customers/ensure-by-phone?tenantId= — devuelve el cliente de ese celular o lo da
76
- * de alta solo con el celular (ya verificado por OTP). Idempotente: dos llamadas con el mismo
77
- * número devuelven el mismo cliente. `created=true` solo cuando esta llamada lo dio de alta.
78
- *
79
- * @throws `422 CUSTOMER_INACTIVE` si el número es de un cliente dado de baja.
80
- * @throws `400 VALIDATION_ERROR` si el celular no trae 10 dígitos o falta la tienda.
81
- */
82
- ensureCustomerByPhone(
83
- payload: EnsureCustomerByPhoneRequest,
84
- tenantId: string,
85
- ): Promise<StandardResponse<EnsureCustomerByPhoneResponse>>;
86
-
87
72
  /**
88
73
  * PUT /private/customers/{customerId}/account-result?tenantId= — aterriza el resultado terminal de
89
74
  * la apertura de cuenta async (D35). Solo acepta OPEN/FAILED (nunca el intermedio OPENING). OPEN
@@ -10,6 +10,7 @@ import {
10
10
  PrivateGoalListResponse,
11
11
  GoalTargetTypeEnum,
12
12
  RetailUserStatusEnum,
13
+ PrivateRetailUserWalletResponse,
13
14
  } from "@fiado/type-kit/bin/retailOrg/index.js";
14
15
  import type {
15
16
  ApplyRetailEventRequest,
@@ -167,6 +168,19 @@ export default class RetailOrgBusinessApi implements IRetailOrgBusinessApi {
167
168
  return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
168
169
  }
169
170
 
171
+ /** Wallet PCF del vendedor para el motor. Contrato → `IRetailOrgBusinessApi.getRetailUserWallet`. */
172
+ async getRetailUserWallet(
173
+ retailerId: string,
174
+ retailUserId: string,
175
+ tenantId: string,
176
+ ): Promise<StandardResponse<PrivateRetailUserWalletResponse>> {
177
+ // La URL del SSM termina en "/"; se quita para no duplicarla.
178
+ const base = this.baseUrl.replace(/\/+$/, "");
179
+ const path = `/private/retailers/${encodeURIComponent(retailerId)}/users/${encodeURIComponent(retailUserId)}/wallet`;
180
+ const query = new URLSearchParams({ tenantId });
181
+ return await this.httpRequest.get(`${base}${path}?${query.toString()}`);
182
+ }
183
+
170
184
  async privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>> {
171
185
  return await this.applyRetailEvent("/private/integration/store-events", request);
172
186
  }
@@ -10,6 +10,7 @@ import {
10
10
  RetailUserStatusEnum,
11
11
  RetailerStatusEnum,
12
12
  StoreStatusEnum,
13
+ PrivateRetailUserWalletResponse,
13
14
  } from "@fiado/type-kit/bin/retailOrg/index.js";
14
15
  import type {
15
16
  ApplyRetailUserEventRequest,
@@ -295,6 +296,20 @@ export interface IRetailOrgBusinessApi {
295
296
  targetType?: GoalTargetTypeEnum,
296
297
  ): Promise<StandardResponse<PrivateGoalListResponse>>;
297
298
 
299
+ /**
300
+ * `GET /private/retailers/{retailerId}/users/{retailUserId}/wallet` — la wallet PCF del vendedor
301
+ * para el motor de comisiones. `directoryId` y `pcfAccountId` vienen en `null` si no tiene; la
302
+ * CLABE no viaja.
303
+ *
304
+ * @throws `404 RETAIL_USER_NOT_FOUND` si el vendedor no existe o es de otra cadena ·
305
+ * `400 UNKNOWN_TENANT` sin `tenantId`.
306
+ */
307
+ getRetailUserWallet(
308
+ retailerId: string,
309
+ retailUserId: string,
310
+ tenantId: string,
311
+ ): Promise<StandardResponse<PrivateRetailUserWalletResponse>>;
312
+
298
313
  /** `POST /private/integration/store-events?tenantId=` — aplica un evento de tienda del retailer. */
299
314
  privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>>;
300
315