@firela/api-types 0.0.0-canary.19fa1e7e → 0.0.0-canary.1e4a714e
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/dist/index.d.mts +4575 -3383
- package/dist/index.d.ts +4575 -3383
- package/dist/index.js +35 -7
- package/dist/index.mjs +35 -7
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +2837 -1227
- package/src/generated/services.gen.ts +1237 -798
- package/src/generated/types.gen.ts +7925 -3781
|
@@ -17,6 +17,8 @@ import type {
|
|
|
17
17
|
AccountControllerCloseResponse,
|
|
18
18
|
AccountControllerReopenData,
|
|
19
19
|
AccountControllerReopenResponse,
|
|
20
|
+
AccountControllerAddOpeningBalanceData,
|
|
21
|
+
AccountControllerAddOpeningBalanceResponse,
|
|
20
22
|
AccountStandardsControllerGetTemplatesData,
|
|
21
23
|
AccountStandardsControllerGetTemplatesResponse,
|
|
22
24
|
AccountStandardsControllerGetTemplateMetadataData,
|
|
@@ -97,6 +99,48 @@ import type {
|
|
|
97
99
|
CommodityControllerGetOrCreateResponse,
|
|
98
100
|
CommodityControllerBulkCreateData,
|
|
99
101
|
CommodityControllerBulkCreateResponse,
|
|
102
|
+
ReportingControllerGetPortfolioTrendsData,
|
|
103
|
+
ReportingControllerGetPortfolioTrendsResponse,
|
|
104
|
+
ReportingControllerGetCashFlowTrendsData,
|
|
105
|
+
ReportingControllerGetCashFlowTrendsResponse,
|
|
106
|
+
ReportingControllerGenerateSnapshotData,
|
|
107
|
+
ReportingControllerGenerateSnapshotResponse,
|
|
108
|
+
ReportingControllerBackfillSnapshotsData,
|
|
109
|
+
ReportingControllerBackfillSnapshotsResponse,
|
|
110
|
+
PriceControllerCreateData,
|
|
111
|
+
PriceControllerCreateResponse,
|
|
112
|
+
PriceControllerFindAllData,
|
|
113
|
+
PriceControllerFindAllResponse,
|
|
114
|
+
PriceControllerFindOneData,
|
|
115
|
+
PriceControllerFindOneResponse,
|
|
116
|
+
PriceControllerUpdateData,
|
|
117
|
+
PriceControllerUpdateResponse,
|
|
118
|
+
PriceControllerDeleteData,
|
|
119
|
+
PriceControllerDeleteResponse,
|
|
120
|
+
PriceControllerBulkCreateData,
|
|
121
|
+
PriceControllerBulkCreateResponse,
|
|
122
|
+
UserControllerDeleteOwnUserData,
|
|
123
|
+
UserControllerDeleteOwnUserResponse,
|
|
124
|
+
UserControllerGetUserData,
|
|
125
|
+
UserControllerGetUserResponse,
|
|
126
|
+
UserControllerSignupUserData,
|
|
127
|
+
UserControllerSignupUserResponse,
|
|
128
|
+
UserControllerDeleteUserData,
|
|
129
|
+
UserControllerDeleteUserResponse,
|
|
130
|
+
UserControllerGetUserInfoData,
|
|
131
|
+
UserControllerGetUserInfoResponse,
|
|
132
|
+
UserControllerUpdateUserSettingData,
|
|
133
|
+
UserControllerUpdateUserSettingResponse,
|
|
134
|
+
UserControllerGetAllUserSettingsByPageData,
|
|
135
|
+
UserControllerGetAllUserSettingsByPageResponse,
|
|
136
|
+
UserControllerGetAssetLiabilitySummaryResponse,
|
|
137
|
+
PropertyControllerGetAllResponse,
|
|
138
|
+
PropertyControllerGetByKeyData,
|
|
139
|
+
PropertyControllerGetByKeyResponse,
|
|
140
|
+
PropertyControllerUpdateData,
|
|
141
|
+
PropertyControllerUpdateResponse,
|
|
142
|
+
PropertyControllerDeleteData,
|
|
143
|
+
PropertyControllerDeleteResponse,
|
|
100
144
|
RecurringRuleControllerCreateData,
|
|
101
145
|
RecurringRuleControllerCreateResponse,
|
|
102
146
|
RecurringRuleControllerFindAllData,
|
|
@@ -149,28 +193,8 @@ import type {
|
|
|
149
193
|
TransactionRuleControllerDeleteResponse,
|
|
150
194
|
TransactionRuleControllerTestData,
|
|
151
195
|
TransactionRuleControllerTestResponse,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
UserControllerGetUserData,
|
|
155
|
-
UserControllerGetUserResponse,
|
|
156
|
-
UserControllerSignupUserData,
|
|
157
|
-
UserControllerSignupUserResponse,
|
|
158
|
-
UserControllerDeleteUserData,
|
|
159
|
-
UserControllerDeleteUserResponse,
|
|
160
|
-
UserControllerGetUserInfoData,
|
|
161
|
-
UserControllerGetUserInfoResponse,
|
|
162
|
-
UserControllerUpdateUserSettingData,
|
|
163
|
-
UserControllerUpdateUserSettingResponse,
|
|
164
|
-
UserControllerGetAllUserSettingsByPageData,
|
|
165
|
-
UserControllerGetAllUserSettingsByPageResponse,
|
|
166
|
-
UserControllerGetAssetLiabilitySummaryResponse,
|
|
167
|
-
PropertyControllerGetAllResponse,
|
|
168
|
-
PropertyControllerGetByKeyData,
|
|
169
|
-
PropertyControllerGetByKeyResponse,
|
|
170
|
-
PropertyControllerUpdateData,
|
|
171
|
-
PropertyControllerUpdateResponse,
|
|
172
|
-
PropertyControllerDeleteData,
|
|
173
|
-
PropertyControllerDeleteResponse,
|
|
196
|
+
CategoryCatalogControllerListData,
|
|
197
|
+
CategoryCatalogControllerListResponse,
|
|
174
198
|
EventControllerCreateData,
|
|
175
199
|
EventControllerCreateResponse,
|
|
176
200
|
EventControllerFindAllData,
|
|
@@ -183,6 +207,16 @@ import type {
|
|
|
183
207
|
EventControllerDeleteResponse,
|
|
184
208
|
EventControllerGetSliceData,
|
|
185
209
|
EventControllerGetSliceResponse,
|
|
210
|
+
OnboardingControllerBootstrapData,
|
|
211
|
+
OnboardingControllerBootstrapResponse,
|
|
212
|
+
ReconciliationControllerComputeData,
|
|
213
|
+
ReconciliationControllerComputeResponse,
|
|
214
|
+
ReconciliationControllerAssertData,
|
|
215
|
+
ReconciliationControllerAssertResponse,
|
|
216
|
+
ReconciliationControllerPadData,
|
|
217
|
+
ReconciliationControllerPadResponse,
|
|
218
|
+
ReconciliationControllerHistoryData,
|
|
219
|
+
ReconciliationControllerHistoryResponse,
|
|
186
220
|
ExportControllerExportBeancountResponse,
|
|
187
221
|
FileImportControllerImportFileData,
|
|
188
222
|
FileImportControllerImportFileResponse,
|
|
@@ -196,22 +230,20 @@ import type {
|
|
|
196
230
|
ImporterConfigControllerUpdateConfigResponse,
|
|
197
231
|
ImporterConfigControllerResetConfigData,
|
|
198
232
|
ImporterConfigControllerResetConfigResponse,
|
|
199
|
-
PlatformControllerFindAllResponse,
|
|
200
|
-
PlatformControllerCreateData,
|
|
201
|
-
PlatformControllerCreateResponse,
|
|
202
|
-
PlatformControllerGetPlatformListResponse,
|
|
203
|
-
PlatformControllerMatchPlatformsData,
|
|
204
|
-
PlatformControllerMatchPlatformsResponse,
|
|
205
|
-
PlatformControllerUpdateData,
|
|
206
|
-
PlatformControllerUpdateResponse,
|
|
207
|
-
PlatformControllerDeleteData,
|
|
208
|
-
PlatformControllerDeleteResponse,
|
|
209
233
|
ProviderSyncControllerSyncData,
|
|
210
234
|
ProviderSyncControllerSyncResponse,
|
|
211
235
|
ProviderSyncControllerGetSupportedProvidersData,
|
|
212
236
|
ProviderSyncControllerGetSupportedProvidersResponse,
|
|
213
237
|
ProviderSyncControllerIsProviderSupportedData,
|
|
214
238
|
ProviderSyncControllerIsProviderSupportedResponse,
|
|
239
|
+
ExternalAccountLinkControllerCreateData,
|
|
240
|
+
ExternalAccountLinkControllerCreateResponse,
|
|
241
|
+
ExternalAccountLinkControllerFindAllData,
|
|
242
|
+
ExternalAccountLinkControllerFindAllResponse,
|
|
243
|
+
ExternalAccountLinkControllerFindOneData,
|
|
244
|
+
ExternalAccountLinkControllerFindOneResponse,
|
|
245
|
+
ExternalAccountLinkControllerRemoveData,
|
|
246
|
+
ExternalAccountLinkControllerRemoveResponse,
|
|
215
247
|
TelemetryControllerReportTelemetryData,
|
|
216
248
|
TelemetryControllerReportTelemetryResponse,
|
|
217
249
|
TelemetryControllerReportCoverageMissData,
|
|
@@ -224,6 +256,19 @@ import type {
|
|
|
224
256
|
NlpControllerClearSessionResponse,
|
|
225
257
|
NlpControllerGetSessionData,
|
|
226
258
|
NlpControllerGetSessionResponse,
|
|
259
|
+
PlatformControllerFindAllResponse,
|
|
260
|
+
PlatformControllerCreateData,
|
|
261
|
+
PlatformControllerCreateResponse,
|
|
262
|
+
PlatformControllerGetPlatformListData,
|
|
263
|
+
PlatformControllerGetPlatformListResponse,
|
|
264
|
+
PlatformControllerMatchPlatformsData,
|
|
265
|
+
PlatformControllerMatchPlatformsResponse,
|
|
266
|
+
PlatformControllerGetPlatformStandardsData,
|
|
267
|
+
PlatformControllerGetPlatformStandardsResponse,
|
|
268
|
+
PlatformControllerUpdateData,
|
|
269
|
+
PlatformControllerUpdateResponse,
|
|
270
|
+
PlatformControllerDeleteData,
|
|
271
|
+
PlatformControllerDeleteResponse,
|
|
227
272
|
DashboardControllerGetNetWorthData,
|
|
228
273
|
DashboardControllerGetNetWorthResponse,
|
|
229
274
|
DashboardControllerGetAccountsData,
|
|
@@ -234,29 +279,11 @@ import type {
|
|
|
234
279
|
DashboardControllerGetExpensesResponse,
|
|
235
280
|
HoldingPnlControllerGetHoldingPnlData,
|
|
236
281
|
HoldingPnlControllerGetHoldingPnlResponse,
|
|
237
|
-
PriceControllerCreateData,
|
|
238
|
-
PriceControllerCreateResponse,
|
|
239
|
-
PriceControllerFindAllData,
|
|
240
|
-
PriceControllerFindAllResponse,
|
|
241
|
-
PriceControllerFindOneData,
|
|
242
|
-
PriceControllerFindOneResponse,
|
|
243
|
-
PriceControllerUpdateData,
|
|
244
|
-
PriceControllerUpdateResponse,
|
|
245
|
-
PriceControllerDeleteData,
|
|
246
|
-
PriceControllerDeleteResponse,
|
|
247
|
-
PriceControllerBulkCreateData,
|
|
248
|
-
PriceControllerBulkCreateResponse,
|
|
249
|
-
ReportingControllerGetPortfolioTrendsData,
|
|
250
|
-
ReportingControllerGetPortfolioTrendsResponse,
|
|
251
|
-
ReportingControllerGetCashFlowTrendsData,
|
|
252
|
-
ReportingControllerGetCashFlowTrendsResponse,
|
|
253
|
-
ReportingControllerGenerateSnapshotData,
|
|
254
|
-
ReportingControllerGenerateSnapshotResponse,
|
|
255
|
-
ReportingControllerBackfillSnapshotsData,
|
|
256
|
-
ReportingControllerBackfillSnapshotsResponse,
|
|
257
282
|
ApiKeysControllerCreateApiKeyResponse,
|
|
258
283
|
AuthControllerAccessTokenLoginData,
|
|
259
284
|
AuthControllerAccessTokenLoginResponse,
|
|
285
|
+
ParserContributionControllerCreateData,
|
|
286
|
+
ParserContributionControllerCreateResponse,
|
|
260
287
|
CacheControllerFlushCacheResponse,
|
|
261
288
|
ExchangeRateControllerGetExchangeRateData,
|
|
262
289
|
ExchangeRateControllerGetExchangeRateResponse,
|
|
@@ -268,7 +295,11 @@ import type {
|
|
|
268
295
|
HealthControllerResetCircuitBreakerData,
|
|
269
296
|
HealthControllerResetCircuitBreakerResponse,
|
|
270
297
|
HealthControllerGetMetricsResponse,
|
|
271
|
-
InfoControllerGetInfoResponse
|
|
298
|
+
InfoControllerGetInfoResponse,
|
|
299
|
+
SymbolControllerSearchData,
|
|
300
|
+
SymbolControllerSearchResponse,
|
|
301
|
+
SymbolControllerGetQuoteData,
|
|
302
|
+
SymbolControllerGetQuoteResponse
|
|
272
303
|
} from './types.gen';
|
|
273
304
|
|
|
274
305
|
export class BeanAccountsService {
|
|
@@ -306,7 +337,7 @@ export class BeanAccountsService {
|
|
|
306
337
|
* @param data.type Filter by account type
|
|
307
338
|
* @param data.status Filter by status
|
|
308
339
|
* @param data.isCustom Filter by custom (user-created) accounts only
|
|
309
|
-
* @param data.search Search term for path
|
|
340
|
+
* @param data.search Search term for account path
|
|
310
341
|
* @param data.limit Maximum number of results
|
|
311
342
|
* @param data.offset Number of results to skip
|
|
312
343
|
* @returns AccountListResponseDto Accounts retrieved successfully
|
|
@@ -387,7 +418,7 @@ export class BeanAccountsService {
|
|
|
387
418
|
|
|
388
419
|
/**
|
|
389
420
|
* Delete account
|
|
390
|
-
* Deletes an account (only if no transactions)
|
|
421
|
+
* Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
|
|
391
422
|
* @param data The data for the request.
|
|
392
423
|
* @param data.id Account UUID
|
|
393
424
|
* @param data.region Region code for tenant context
|
|
@@ -406,7 +437,7 @@ export class BeanAccountsService {
|
|
|
406
437
|
},
|
|
407
438
|
errors: {
|
|
408
439
|
404: 'Account not found',
|
|
409
|
-
409: 'Account has transactions and cannot be deleted'
|
|
440
|
+
409: 'Account has active transactions and cannot be deleted'
|
|
410
441
|
}
|
|
411
442
|
});
|
|
412
443
|
}
|
|
@@ -468,6 +499,35 @@ export class BeanAccountsService {
|
|
|
468
499
|
}
|
|
469
500
|
});
|
|
470
501
|
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Post an opening-balance transaction
|
|
505
|
+
* Posts a double-entry opening-balance transaction against Equity:Opening-Balances for an existing Assets/Liabilities account. At most one active opening balance per account.
|
|
506
|
+
* @param data The data for the request.
|
|
507
|
+
* @param data.id Account UUID
|
|
508
|
+
* @param data.region Region code for tenant context
|
|
509
|
+
* @param data.requestBody
|
|
510
|
+
* @returns OpeningBalanceResultDto Opening-balance transaction created
|
|
511
|
+
* @throws ApiError
|
|
512
|
+
*/
|
|
513
|
+
public static accountControllerAddOpeningBalance(
|
|
514
|
+
data: AccountControllerAddOpeningBalanceData
|
|
515
|
+
): CancelablePromise<AccountControllerAddOpeningBalanceResponse> {
|
|
516
|
+
return __request(OpenAPI, {
|
|
517
|
+
method: 'POST',
|
|
518
|
+
url: '/api/v1/{region}/bean/accounts/{id}/opening-balance',
|
|
519
|
+
path: {
|
|
520
|
+
id: data.id,
|
|
521
|
+
region: data.region
|
|
522
|
+
},
|
|
523
|
+
body: data.requestBody,
|
|
524
|
+
mediaType: 'application/json',
|
|
525
|
+
errors: {
|
|
526
|
+
404: 'Account not found',
|
|
527
|
+
409: 'An opening balance already exists for this account'
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
}
|
|
471
531
|
}
|
|
472
532
|
|
|
473
533
|
export class BeanAccountStandardsService {
|
|
@@ -477,7 +537,7 @@ export class BeanAccountStandardsService {
|
|
|
477
537
|
* @param data The data for the request.
|
|
478
538
|
* @param data.region Region code (cn, us, de)
|
|
479
539
|
* @param data.type Filter by account type
|
|
480
|
-
* @param data.search Search term for path or
|
|
540
|
+
* @param data.search Search term for path, description, aliases, or localized display name
|
|
481
541
|
* @returns AccountStandardListResponseDto Account templates retrieved successfully
|
|
482
542
|
* @throws ApiError
|
|
483
543
|
*/
|
|
@@ -499,7 +559,7 @@ export class BeanAccountStandardsService {
|
|
|
499
559
|
|
|
500
560
|
/**
|
|
501
561
|
* Get template metadata for an account path
|
|
502
|
-
* Returns
|
|
562
|
+
* Returns root type for a template path.
|
|
503
563
|
* @param data The data for the request.
|
|
504
564
|
* @param data.region Region code for tenant context
|
|
505
565
|
* @param data.path Account path to check
|
|
@@ -582,10 +642,11 @@ export class BeanTransactionsService {
|
|
|
582
642
|
* @param data.offset Number of items to skip (default: 0)
|
|
583
643
|
* @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
|
|
584
644
|
* @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
|
|
585
|
-
* @param data.status Filter by transaction status
|
|
645
|
+
* @param data.status Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
|
|
586
646
|
* @param data.search Search in narration and payee fields (max 200 chars)
|
|
587
647
|
* @param data.accountId Filter by account ID (transactions with postings to this account)
|
|
588
|
-
* @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an
|
|
648
|
+
* @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
|
|
649
|
+
* @param data.flow Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
|
|
589
650
|
* @returns TransactionListResponseDto Transaction list
|
|
590
651
|
* @throws ApiError
|
|
591
652
|
*/
|
|
@@ -606,7 +667,8 @@ export class BeanTransactionsService {
|
|
|
606
667
|
status: data.status,
|
|
607
668
|
search: data.search,
|
|
608
669
|
accountId: data.accountId,
|
|
609
|
-
category: data.category
|
|
670
|
+
category: data.category,
|
|
671
|
+
flow: data.flow
|
|
610
672
|
},
|
|
611
673
|
errors: {
|
|
612
674
|
400: 'Validation failed',
|
|
@@ -794,7 +856,7 @@ export class BeanBalancesService {
|
|
|
794
856
|
* Query account balance
|
|
795
857
|
* Calculate account balance at a specific date for a single currency
|
|
796
858
|
* @param data The data for the request.
|
|
797
|
-
* @param data.account Account name (e.g., "Assets:
|
|
859
|
+
* @param data.account Account name (e.g., "Assets:Checking")
|
|
798
860
|
* @param data.region Region code for tenant context
|
|
799
861
|
* @param data.date Date to calculate balance at (ISO 8601 format)
|
|
800
862
|
* @param data.currency Currency to query (e.g., "USD", "CNY")
|
|
@@ -1319,7 +1381,7 @@ export class AdminPayeeProfilesService {
|
|
|
1319
1381
|
* Removes verification status by setting verifiedAt to null.
|
|
1320
1382
|
* @param data The data for the request.
|
|
1321
1383
|
* @param data.id Payee profile ID (UUID)
|
|
1322
|
-
* @returns
|
|
1384
|
+
* @returns void Payee profile unverified successfully
|
|
1323
1385
|
* @throws ApiError
|
|
1324
1386
|
*/
|
|
1325
1387
|
public static payeeProfileAdminControllerUnverify(
|
|
@@ -1515,101 +1577,680 @@ export class BeanCommoditiesService {
|
|
|
1515
1577
|
}
|
|
1516
1578
|
}
|
|
1517
1579
|
|
|
1518
|
-
export class
|
|
1580
|
+
export class ReportingService {
|
|
1519
1581
|
/**
|
|
1520
|
-
*
|
|
1521
|
-
*
|
|
1582
|
+
* Get portfolio value trends
|
|
1583
|
+
*
|
|
1584
|
+
* Returns time series data of portfolio net worth.
|
|
1585
|
+
*
|
|
1586
|
+
* **Multi-currency Support:**
|
|
1587
|
+
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
1588
|
+
* - `byCurrency` - Separate time series grouped by currency
|
|
1589
|
+
* - `warnings` - Exchange rate warnings if conversion failed
|
|
1590
|
+
*
|
|
1591
|
+
* **Parameters:**
|
|
1592
|
+
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
1593
|
+
* - `granularity`: Data granularity (day, week, month)
|
|
1594
|
+
*
|
|
1522
1595
|
* @param data The data for the request.
|
|
1523
1596
|
* @param data.region Region code for tenant context
|
|
1524
|
-
* @param data.
|
|
1525
|
-
* @
|
|
1597
|
+
* @param data.period Time period
|
|
1598
|
+
* @param data.granularity Data granularity
|
|
1599
|
+
* @returns PortfolioTrendsResponseDto Trends retrieved successfully
|
|
1526
1600
|
* @throws ApiError
|
|
1527
1601
|
*/
|
|
1528
|
-
public static
|
|
1529
|
-
data:
|
|
1530
|
-
): CancelablePromise<
|
|
1602
|
+
public static reportingControllerGetPortfolioTrends(
|
|
1603
|
+
data: ReportingControllerGetPortfolioTrendsData
|
|
1604
|
+
): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
|
|
1531
1605
|
return __request(OpenAPI, {
|
|
1532
|
-
method: '
|
|
1533
|
-
url: '/api/v1/{region}/
|
|
1606
|
+
method: 'GET',
|
|
1607
|
+
url: '/api/v1/{region}/reporting/portfolio/trends',
|
|
1534
1608
|
path: {
|
|
1535
1609
|
region: data.region
|
|
1536
1610
|
},
|
|
1537
|
-
|
|
1538
|
-
|
|
1611
|
+
query: {
|
|
1612
|
+
period: data.period,
|
|
1613
|
+
granularity: data.granularity
|
|
1614
|
+
},
|
|
1539
1615
|
errors: {
|
|
1540
|
-
|
|
1541
|
-
409: 'Rule with same name already exists'
|
|
1616
|
+
401: 'User not authenticated'
|
|
1542
1617
|
}
|
|
1543
1618
|
});
|
|
1544
1619
|
}
|
|
1545
1620
|
|
|
1546
1621
|
/**
|
|
1547
|
-
*
|
|
1548
|
-
*
|
|
1622
|
+
* Get cash-flow trends
|
|
1623
|
+
*
|
|
1624
|
+
* Monthly income / expense / netSavings over a fixed N-month window
|
|
1625
|
+
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
1626
|
+
*
|
|
1627
|
+
* **Parameters:**
|
|
1628
|
+
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
1629
|
+
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
1630
|
+
*
|
|
1549
1631
|
* @param data The data for the request.
|
|
1550
1632
|
* @param data.region Region code for tenant context
|
|
1551
|
-
* @param data.
|
|
1552
|
-
* @param data.
|
|
1553
|
-
* @
|
|
1554
|
-
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
1633
|
+
* @param data.period Time period
|
|
1634
|
+
* @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
1635
|
+
* @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
|
|
1555
1636
|
* @throws ApiError
|
|
1556
1637
|
*/
|
|
1557
|
-
public static
|
|
1558
|
-
data:
|
|
1559
|
-
): CancelablePromise<
|
|
1638
|
+
public static reportingControllerGetCashFlowTrends(
|
|
1639
|
+
data: ReportingControllerGetCashFlowTrendsData
|
|
1640
|
+
): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
|
|
1560
1641
|
return __request(OpenAPI, {
|
|
1561
1642
|
method: 'GET',
|
|
1562
|
-
url: '/api/v1/{region}/
|
|
1643
|
+
url: '/api/v1/{region}/reporting/cash-flow/trends',
|
|
1563
1644
|
path: {
|
|
1564
1645
|
region: data.region
|
|
1565
1646
|
},
|
|
1566
1647
|
query: {
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1648
|
+
period: data.period,
|
|
1649
|
+
granularity: data.granularity
|
|
1650
|
+
},
|
|
1651
|
+
errors: {
|
|
1652
|
+
401: 'User not authenticated'
|
|
1570
1653
|
}
|
|
1571
1654
|
});
|
|
1572
1655
|
}
|
|
1573
1656
|
|
|
1574
1657
|
/**
|
|
1575
|
-
*
|
|
1576
|
-
*
|
|
1658
|
+
* Generate portfolio snapshot
|
|
1659
|
+
*
|
|
1660
|
+
* Manually generate a portfolio snapshot for a specific date.
|
|
1661
|
+
*
|
|
1662
|
+
* **Multi-currency Support:**
|
|
1663
|
+
* - Fetches balances grouped by currency
|
|
1664
|
+
* - Uses user's baseCurrency setting for conversion
|
|
1665
|
+
* - Stores exchange rates and warnings
|
|
1666
|
+
*
|
|
1667
|
+
* **Use Cases:**
|
|
1668
|
+
* - Testing snapshot generation
|
|
1669
|
+
* - Force regeneration after data correction
|
|
1670
|
+
* - Initial setup for new users
|
|
1671
|
+
*
|
|
1577
1672
|
* @param data The data for the request.
|
|
1578
|
-
* @param data.transactionId Source transaction ID
|
|
1579
1673
|
* @param data.region Region code for tenant context
|
|
1580
|
-
* @param data.requestBody
|
|
1581
|
-
* @returns
|
|
1674
|
+
* @param data.requestBody Optional date (defaults to today)
|
|
1675
|
+
* @returns GenerateSnapshotResponse Snapshot generated successfully
|
|
1582
1676
|
* @throws ApiError
|
|
1583
1677
|
*/
|
|
1584
|
-
public static
|
|
1585
|
-
data:
|
|
1586
|
-
): CancelablePromise<
|
|
1678
|
+
public static reportingControllerGenerateSnapshot(
|
|
1679
|
+
data: ReportingControllerGenerateSnapshotData
|
|
1680
|
+
): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
|
|
1587
1681
|
return __request(OpenAPI, {
|
|
1588
1682
|
method: 'POST',
|
|
1589
|
-
url: '/api/v1/{region}/
|
|
1683
|
+
url: '/api/v1/{region}/reporting/snapshots/generate',
|
|
1590
1684
|
path: {
|
|
1591
|
-
transactionId: data.transactionId,
|
|
1592
1685
|
region: data.region
|
|
1593
1686
|
},
|
|
1594
1687
|
body: data.requestBody,
|
|
1595
1688
|
mediaType: 'application/json',
|
|
1596
1689
|
errors: {
|
|
1597
|
-
|
|
1598
|
-
|
|
1690
|
+
400: 'Invalid date format',
|
|
1691
|
+
401: 'User not authenticated'
|
|
1599
1692
|
}
|
|
1600
1693
|
});
|
|
1601
1694
|
}
|
|
1602
1695
|
|
|
1603
1696
|
/**
|
|
1604
|
-
*
|
|
1605
|
-
*
|
|
1697
|
+
* Backfill portfolio snapshots
|
|
1698
|
+
*
|
|
1699
|
+
* Generate snapshots for a date range (historical data backfill).
|
|
1700
|
+
*
|
|
1701
|
+
* **Multi-currency Support:**
|
|
1702
|
+
* - Each snapshot includes multi-currency data
|
|
1703
|
+
* - Uses exchange rates available at generation time
|
|
1704
|
+
* - Warnings stored for missing exchange rates
|
|
1705
|
+
*
|
|
1706
|
+
* **Best Practices:**
|
|
1707
|
+
* - Use for initial setup after account configuration
|
|
1708
|
+
* - Run during low-traffic periods for large date ranges
|
|
1709
|
+
* - Existing snapshots are skipped (not regenerated)
|
|
1710
|
+
*
|
|
1606
1711
|
* @param data The data for the request.
|
|
1607
|
-
* @param data.id Rule ID
|
|
1608
1712
|
* @param data.region Region code for tenant context
|
|
1609
|
-
* @
|
|
1713
|
+
* @param data.requestBody
|
|
1714
|
+
* @returns BackfillSnapshotsResponse Backfill completed successfully
|
|
1610
1715
|
* @throws ApiError
|
|
1611
1716
|
*/
|
|
1612
|
-
public static
|
|
1717
|
+
public static reportingControllerBackfillSnapshots(
|
|
1718
|
+
data: ReportingControllerBackfillSnapshotsData
|
|
1719
|
+
): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
|
|
1720
|
+
return __request(OpenAPI, {
|
|
1721
|
+
method: 'POST',
|
|
1722
|
+
url: '/api/v1/{region}/reporting/snapshots/backfill',
|
|
1723
|
+
path: {
|
|
1724
|
+
region: data.region
|
|
1725
|
+
},
|
|
1726
|
+
body: data.requestBody,
|
|
1727
|
+
mediaType: 'application/json',
|
|
1728
|
+
errors: {
|
|
1729
|
+
400: 'Invalid date format or range',
|
|
1730
|
+
401: 'User not authenticated',
|
|
1731
|
+
409: 'Backfill already in progress for this user'
|
|
1732
|
+
}
|
|
1733
|
+
});
|
|
1734
|
+
}
|
|
1735
|
+
}
|
|
1736
|
+
|
|
1737
|
+
export class BeanPricesService {
|
|
1738
|
+
/**
|
|
1739
|
+
* Create a new price
|
|
1740
|
+
* Creates a new price entry for the authenticated user
|
|
1741
|
+
* @param data The data for the request.
|
|
1742
|
+
* @param data.region Region code for tenant context
|
|
1743
|
+
* @param data.requestBody
|
|
1744
|
+
* @returns PriceResponseDto Price created successfully
|
|
1745
|
+
* @throws ApiError
|
|
1746
|
+
*/
|
|
1747
|
+
public static priceControllerCreate(
|
|
1748
|
+
data: PriceControllerCreateData
|
|
1749
|
+
): CancelablePromise<PriceControllerCreateResponse> {
|
|
1750
|
+
return __request(OpenAPI, {
|
|
1751
|
+
method: 'POST',
|
|
1752
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1753
|
+
path: {
|
|
1754
|
+
region: data.region
|
|
1755
|
+
},
|
|
1756
|
+
body: data.requestBody,
|
|
1757
|
+
mediaType: 'application/json',
|
|
1758
|
+
errors: {
|
|
1759
|
+
404: 'Currency or quoteCurrency commodity not found',
|
|
1760
|
+
409: 'Price already exists for this currency pair and date'
|
|
1761
|
+
}
|
|
1762
|
+
});
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
/**
|
|
1766
|
+
* List user prices
|
|
1767
|
+
* Returns all price entries for the authenticated user with optional filtering
|
|
1768
|
+
* @param data The data for the request.
|
|
1769
|
+
* @param data.region Region code for tenant context
|
|
1770
|
+
* @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
|
|
1771
|
+
* @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
1772
|
+
* @param data.dateFrom Filter prices from this date (ISO 8601 format)
|
|
1773
|
+
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
1774
|
+
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
1775
|
+
* @param data.page Page number for pagination (default: 1)
|
|
1776
|
+
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
1777
|
+
* @returns PriceListResponseDto Prices retrieved successfully
|
|
1778
|
+
* @throws ApiError
|
|
1779
|
+
*/
|
|
1780
|
+
public static priceControllerFindAll(
|
|
1781
|
+
data: PriceControllerFindAllData
|
|
1782
|
+
): CancelablePromise<PriceControllerFindAllResponse> {
|
|
1783
|
+
return __request(OpenAPI, {
|
|
1784
|
+
method: 'GET',
|
|
1785
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1786
|
+
path: {
|
|
1787
|
+
region: data.region
|
|
1788
|
+
},
|
|
1789
|
+
query: {
|
|
1790
|
+
currency: data.currency,
|
|
1791
|
+
quoteCurrency: data.quoteCurrency,
|
|
1792
|
+
dateFrom: data.dateFrom,
|
|
1793
|
+
dateTo: data.dateTo,
|
|
1794
|
+
search: data.search,
|
|
1795
|
+
page: data.page,
|
|
1796
|
+
limit: data.limit
|
|
1797
|
+
}
|
|
1798
|
+
});
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
/**
|
|
1802
|
+
* Get price by ID
|
|
1803
|
+
* Returns a single price entry by its ID
|
|
1804
|
+
* @param data The data for the request.
|
|
1805
|
+
* @param data.id Price ID
|
|
1806
|
+
* @param data.region Region code for tenant context
|
|
1807
|
+
* @returns PriceResponseDto Price retrieved successfully
|
|
1808
|
+
* @throws ApiError
|
|
1809
|
+
*/
|
|
1810
|
+
public static priceControllerFindOne(
|
|
1811
|
+
data: PriceControllerFindOneData
|
|
1812
|
+
): CancelablePromise<PriceControllerFindOneResponse> {
|
|
1813
|
+
return __request(OpenAPI, {
|
|
1814
|
+
method: 'GET',
|
|
1815
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1816
|
+
path: {
|
|
1817
|
+
id: data.id,
|
|
1818
|
+
region: data.region
|
|
1819
|
+
},
|
|
1820
|
+
errors: {
|
|
1821
|
+
404: 'Price not found'
|
|
1822
|
+
}
|
|
1823
|
+
});
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
/**
|
|
1827
|
+
* Update a price
|
|
1828
|
+
* Updates an existing price entry
|
|
1829
|
+
* @param data The data for the request.
|
|
1830
|
+
* @param data.id Price ID
|
|
1831
|
+
* @param data.region Region code for tenant context
|
|
1832
|
+
* @param data.requestBody
|
|
1833
|
+
* @returns PriceResponseDto Price updated successfully
|
|
1834
|
+
* @throws ApiError
|
|
1835
|
+
*/
|
|
1836
|
+
public static priceControllerUpdate(
|
|
1837
|
+
data: PriceControllerUpdateData
|
|
1838
|
+
): CancelablePromise<PriceControllerUpdateResponse> {
|
|
1839
|
+
return __request(OpenAPI, {
|
|
1840
|
+
method: 'PUT',
|
|
1841
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1842
|
+
path: {
|
|
1843
|
+
id: data.id,
|
|
1844
|
+
region: data.region
|
|
1845
|
+
},
|
|
1846
|
+
body: data.requestBody,
|
|
1847
|
+
mediaType: 'application/json',
|
|
1848
|
+
errors: {
|
|
1849
|
+
404: 'Price not found',
|
|
1850
|
+
409: 'Updated price conflicts with existing price'
|
|
1851
|
+
}
|
|
1852
|
+
});
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
/**
|
|
1856
|
+
* Delete a price
|
|
1857
|
+
* Deletes a price entry (hard delete)
|
|
1858
|
+
* @param data The data for the request.
|
|
1859
|
+
* @param data.id Price ID
|
|
1860
|
+
* @param data.region Region code for tenant context
|
|
1861
|
+
* @returns void Price deleted successfully
|
|
1862
|
+
* @throws ApiError
|
|
1863
|
+
*/
|
|
1864
|
+
public static priceControllerDelete(
|
|
1865
|
+
data: PriceControllerDeleteData
|
|
1866
|
+
): CancelablePromise<PriceControllerDeleteResponse> {
|
|
1867
|
+
return __request(OpenAPI, {
|
|
1868
|
+
method: 'DELETE',
|
|
1869
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1870
|
+
path: {
|
|
1871
|
+
id: data.id,
|
|
1872
|
+
region: data.region
|
|
1873
|
+
},
|
|
1874
|
+
errors: {
|
|
1875
|
+
404: 'Price not found'
|
|
1876
|
+
}
|
|
1877
|
+
});
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
/**
|
|
1881
|
+
* Bulk create prices
|
|
1882
|
+
* Creates multiple price entries at once (skips duplicates)
|
|
1883
|
+
* @param data The data for the request.
|
|
1884
|
+
* @param data.region Region code for tenant context
|
|
1885
|
+
* @param data.requestBody
|
|
1886
|
+
* @returns PriceResponseDto Prices created successfully
|
|
1887
|
+
* @throws ApiError
|
|
1888
|
+
*/
|
|
1889
|
+
public static priceControllerBulkCreate(
|
|
1890
|
+
data: PriceControllerBulkCreateData
|
|
1891
|
+
): CancelablePromise<PriceControllerBulkCreateResponse> {
|
|
1892
|
+
return __request(OpenAPI, {
|
|
1893
|
+
method: 'POST',
|
|
1894
|
+
url: '/api/v1/{region}/bean/prices/bulk',
|
|
1895
|
+
path: {
|
|
1896
|
+
region: data.region
|
|
1897
|
+
},
|
|
1898
|
+
body: data.requestBody,
|
|
1899
|
+
mediaType: 'application/json'
|
|
1900
|
+
});
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1903
|
+
|
|
1904
|
+
export class UsersService {
|
|
1905
|
+
/**
|
|
1906
|
+
* Delete own user account
|
|
1907
|
+
* @param data The data for the request.
|
|
1908
|
+
* @param data.requestBody
|
|
1909
|
+
* @returns void User deleted successfully
|
|
1910
|
+
* @throws ApiError
|
|
1911
|
+
*/
|
|
1912
|
+
public static userControllerDeleteOwnUser(
|
|
1913
|
+
data: UserControllerDeleteOwnUserData
|
|
1914
|
+
): CancelablePromise<UserControllerDeleteOwnUserResponse> {
|
|
1915
|
+
return __request(OpenAPI, {
|
|
1916
|
+
method: 'DELETE',
|
|
1917
|
+
url: '/api/v1/users',
|
|
1918
|
+
body: data.requestBody,
|
|
1919
|
+
mediaType: 'application/json',
|
|
1920
|
+
errors: {
|
|
1921
|
+
403: 'Invalid access token'
|
|
1922
|
+
}
|
|
1923
|
+
});
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1926
|
+
/**
|
|
1927
|
+
* Get current authenticated user
|
|
1928
|
+
* @param data The data for the request.
|
|
1929
|
+
* @param data.acceptLanguage
|
|
1930
|
+
* @returns UserResponseDto User retrieved successfully
|
|
1931
|
+
* @throws ApiError
|
|
1932
|
+
*/
|
|
1933
|
+
public static userControllerGetUser(
|
|
1934
|
+
data: UserControllerGetUserData
|
|
1935
|
+
): CancelablePromise<UserControllerGetUserResponse> {
|
|
1936
|
+
return __request(OpenAPI, {
|
|
1937
|
+
method: 'GET',
|
|
1938
|
+
url: '/api/v1/users',
|
|
1939
|
+
headers: {
|
|
1940
|
+
'accept-language': data.acceptLanguage
|
|
1941
|
+
}
|
|
1942
|
+
});
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
/**
|
|
1946
|
+
* Sign up new user
|
|
1947
|
+
* Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
|
|
1948
|
+
* @param data The data for the request.
|
|
1949
|
+
* @param data.requestBody
|
|
1950
|
+
* @returns SignupResponseDto User created successfully
|
|
1951
|
+
* @throws ApiError
|
|
1952
|
+
*/
|
|
1953
|
+
public static userControllerSignupUser(
|
|
1954
|
+
data: UserControllerSignupUserData
|
|
1955
|
+
): CancelablePromise<UserControllerSignupUserResponse> {
|
|
1956
|
+
return __request(OpenAPI, {
|
|
1957
|
+
method: 'POST',
|
|
1958
|
+
url: '/api/v1/users',
|
|
1959
|
+
body: data.requestBody,
|
|
1960
|
+
mediaType: 'application/json',
|
|
1961
|
+
errors: {
|
|
1962
|
+
400: 'Invalid Turnstile token (when Turnstile is enabled)',
|
|
1963
|
+
403: 'User signup is disabled'
|
|
1964
|
+
}
|
|
1965
|
+
});
|
|
1966
|
+
}
|
|
1967
|
+
|
|
1968
|
+
/**
|
|
1969
|
+
* Delete user by ID (admin only)
|
|
1970
|
+
* @param data The data for the request.
|
|
1971
|
+
* @param data.id User ID to delete
|
|
1972
|
+
* @returns void User deleted successfully
|
|
1973
|
+
* @throws ApiError
|
|
1974
|
+
*/
|
|
1975
|
+
public static userControllerDeleteUser(
|
|
1976
|
+
data: UserControllerDeleteUserData
|
|
1977
|
+
): CancelablePromise<UserControllerDeleteUserResponse> {
|
|
1978
|
+
return __request(OpenAPI, {
|
|
1979
|
+
method: 'DELETE',
|
|
1980
|
+
url: '/api/v1/users/{id}',
|
|
1981
|
+
path: {
|
|
1982
|
+
id: data.id
|
|
1983
|
+
},
|
|
1984
|
+
errors: {
|
|
1985
|
+
403: 'Cannot delete own account or insufficient permissions'
|
|
1986
|
+
}
|
|
1987
|
+
});
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1990
|
+
/**
|
|
1991
|
+
* Get user info by user ID
|
|
1992
|
+
* @param data The data for the request.
|
|
1993
|
+
* @param data.id User ID
|
|
1994
|
+
* @returns unknown User info retrieved successfully
|
|
1995
|
+
* @throws ApiError
|
|
1996
|
+
*/
|
|
1997
|
+
public static userControllerGetUserInfo(
|
|
1998
|
+
data: UserControllerGetUserInfoData
|
|
1999
|
+
): CancelablePromise<UserControllerGetUserInfoResponse> {
|
|
2000
|
+
return __request(OpenAPI, {
|
|
2001
|
+
method: 'GET',
|
|
2002
|
+
url: '/api/v1/users/{id}/info',
|
|
2003
|
+
path: {
|
|
2004
|
+
id: data.id
|
|
2005
|
+
},
|
|
2006
|
+
errors: {
|
|
2007
|
+
403: 'Cannot access other user info without admin permission'
|
|
2008
|
+
}
|
|
2009
|
+
});
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
/**
|
|
2013
|
+
* Update user settings
|
|
2014
|
+
* @param data The data for the request.
|
|
2015
|
+
* @param data.requestBody
|
|
2016
|
+
* @returns unknown Settings updated successfully
|
|
2017
|
+
* @throws ApiError
|
|
2018
|
+
*/
|
|
2019
|
+
public static userControllerUpdateUserSetting(
|
|
2020
|
+
data: UserControllerUpdateUserSettingData
|
|
2021
|
+
): CancelablePromise<UserControllerUpdateUserSettingResponse> {
|
|
2022
|
+
return __request(OpenAPI, {
|
|
2023
|
+
method: 'PUT',
|
|
2024
|
+
url: '/api/v1/users/setting',
|
|
2025
|
+
body: data.requestBody,
|
|
2026
|
+
mediaType: 'application/json',
|
|
2027
|
+
errors: {
|
|
2028
|
+
403: 'Insufficient permissions'
|
|
2029
|
+
}
|
|
2030
|
+
});
|
|
2031
|
+
}
|
|
2032
|
+
|
|
2033
|
+
/**
|
|
2034
|
+
* Get all user settings paginated (admin only)
|
|
2035
|
+
* @param data The data for the request.
|
|
2036
|
+
* @param data.pageNo Page number
|
|
2037
|
+
* @param data.pageSize Page size
|
|
2038
|
+
* @returns unknown Settings list retrieved successfully
|
|
2039
|
+
* @throws ApiError
|
|
2040
|
+
*/
|
|
2041
|
+
public static userControllerGetAllUserSettingsByPage(
|
|
2042
|
+
data: UserControllerGetAllUserSettingsByPageData
|
|
2043
|
+
): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
|
|
2044
|
+
return __request(OpenAPI, {
|
|
2045
|
+
method: 'GET',
|
|
2046
|
+
url: '/api/v1/users/settings-by-page',
|
|
2047
|
+
query: {
|
|
2048
|
+
pageNo: data.pageNo,
|
|
2049
|
+
pageSize: data.pageSize
|
|
2050
|
+
}
|
|
2051
|
+
});
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
/**
|
|
2055
|
+
* Get asset and liability summary for current user
|
|
2056
|
+
* @returns unknown Summary retrieved successfully
|
|
2057
|
+
* @throws ApiError
|
|
2058
|
+
*/
|
|
2059
|
+
public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
|
|
2060
|
+
return __request(OpenAPI, {
|
|
2061
|
+
method: 'GET',
|
|
2062
|
+
url: '/api/v1/users/asset-liability-summary'
|
|
2063
|
+
});
|
|
2064
|
+
}
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
export class PropertiesService {
|
|
2068
|
+
/**
|
|
2069
|
+
* Get all system properties
|
|
2070
|
+
* @returns unknown Properties retrieved successfully
|
|
2071
|
+
* @throws ApiError
|
|
2072
|
+
*/
|
|
2073
|
+
public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
|
|
2074
|
+
return __request(OpenAPI, {
|
|
2075
|
+
method: 'GET',
|
|
2076
|
+
url: '/api/v1/admin/properties',
|
|
2077
|
+
errors: {
|
|
2078
|
+
401: 'Unauthorized',
|
|
2079
|
+
403: 'Forbidden - insufficient permissions'
|
|
2080
|
+
}
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
/**
|
|
2085
|
+
* Get property by key
|
|
2086
|
+
* @param data The data for the request.
|
|
2087
|
+
* @param data.key Property key
|
|
2088
|
+
* @returns unknown Property retrieved successfully
|
|
2089
|
+
* @throws ApiError
|
|
2090
|
+
*/
|
|
2091
|
+
public static propertyControllerGetByKey(
|
|
2092
|
+
data: PropertyControllerGetByKeyData
|
|
2093
|
+
): CancelablePromise<PropertyControllerGetByKeyResponse> {
|
|
2094
|
+
return __request(OpenAPI, {
|
|
2095
|
+
method: 'GET',
|
|
2096
|
+
url: '/api/v1/admin/properties/{key}',
|
|
2097
|
+
path: {
|
|
2098
|
+
key: data.key
|
|
2099
|
+
},
|
|
2100
|
+
errors: {
|
|
2101
|
+
401: 'Unauthorized',
|
|
2102
|
+
403: 'Forbidden - insufficient permissions',
|
|
2103
|
+
404: 'Property not found'
|
|
2104
|
+
}
|
|
2105
|
+
});
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
/**
|
|
2109
|
+
* Update a system property
|
|
2110
|
+
* @param data The data for the request.
|
|
2111
|
+
* @param data.key Property key
|
|
2112
|
+
* @param data.requestBody
|
|
2113
|
+
* @returns unknown Property updated successfully
|
|
2114
|
+
* @throws ApiError
|
|
2115
|
+
*/
|
|
2116
|
+
public static propertyControllerUpdate(
|
|
2117
|
+
data: PropertyControllerUpdateData
|
|
2118
|
+
): CancelablePromise<PropertyControllerUpdateResponse> {
|
|
2119
|
+
return __request(OpenAPI, {
|
|
2120
|
+
method: 'PUT',
|
|
2121
|
+
url: '/api/v1/admin/properties/{key}',
|
|
2122
|
+
path: {
|
|
2123
|
+
key: data.key
|
|
2124
|
+
},
|
|
2125
|
+
body: data.requestBody,
|
|
2126
|
+
mediaType: 'application/json',
|
|
2127
|
+
errors: {
|
|
2128
|
+
401: 'Unauthorized',
|
|
2129
|
+
403: 'Forbidden - insufficient permissions'
|
|
2130
|
+
}
|
|
2131
|
+
});
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
/**
|
|
2135
|
+
* Delete a system property
|
|
2136
|
+
* @param data The data for the request.
|
|
2137
|
+
* @param data.key Property key
|
|
2138
|
+
* @returns void Property deleted successfully
|
|
2139
|
+
* @throws ApiError
|
|
2140
|
+
*/
|
|
2141
|
+
public static propertyControllerDelete(
|
|
2142
|
+
data: PropertyControllerDeleteData
|
|
2143
|
+
): CancelablePromise<PropertyControllerDeleteResponse> {
|
|
2144
|
+
return __request(OpenAPI, {
|
|
2145
|
+
method: 'DELETE',
|
|
2146
|
+
url: '/api/v1/admin/properties/{key}',
|
|
2147
|
+
path: {
|
|
2148
|
+
key: data.key
|
|
2149
|
+
},
|
|
2150
|
+
errors: {
|
|
2151
|
+
401: 'Unauthorized',
|
|
2152
|
+
403: 'Forbidden - insufficient permissions',
|
|
2153
|
+
404: 'Property not found'
|
|
2154
|
+
}
|
|
2155
|
+
});
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2159
|
+
export class RecurringRulesService {
|
|
2160
|
+
/**
|
|
2161
|
+
* Create a new recurring rule
|
|
2162
|
+
* Creates a new recurring transaction rule for the authenticated user
|
|
2163
|
+
* @param data The data for the request.
|
|
2164
|
+
* @param data.region Region code for tenant context
|
|
2165
|
+
* @param data.requestBody
|
|
2166
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
2167
|
+
* @throws ApiError
|
|
2168
|
+
*/
|
|
2169
|
+
public static recurringRuleControllerCreate(
|
|
2170
|
+
data: RecurringRuleControllerCreateData
|
|
2171
|
+
): CancelablePromise<RecurringRuleControllerCreateResponse> {
|
|
2172
|
+
return __request(OpenAPI, {
|
|
2173
|
+
method: 'POST',
|
|
2174
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
2175
|
+
path: {
|
|
2176
|
+
region: data.region
|
|
2177
|
+
},
|
|
2178
|
+
body: data.requestBody,
|
|
2179
|
+
mediaType: 'application/json',
|
|
2180
|
+
errors: {
|
|
2181
|
+
400: 'Invalid input data (e.g., autoCreate without accounts)',
|
|
2182
|
+
409: 'Rule with same name already exists'
|
|
2183
|
+
}
|
|
2184
|
+
});
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
/**
|
|
2188
|
+
* List recurring rules
|
|
2189
|
+
* Returns all recurring rules for the authenticated user with optional filtering
|
|
2190
|
+
* @param data The data for the request.
|
|
2191
|
+
* @param data.region Region code for tenant context
|
|
2192
|
+
* @param data.isActive Filter by active status
|
|
2193
|
+
* @param data.frequency Filter by frequency (WEEKLY, MONTHLY, etc.)
|
|
2194
|
+
* @param data.hasAutoCreate Filter by autoCreate enabled
|
|
2195
|
+
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
2196
|
+
* @throws ApiError
|
|
2197
|
+
*/
|
|
2198
|
+
public static recurringRuleControllerFindAll(
|
|
2199
|
+
data: RecurringRuleControllerFindAllData
|
|
2200
|
+
): CancelablePromise<RecurringRuleControllerFindAllResponse> {
|
|
2201
|
+
return __request(OpenAPI, {
|
|
2202
|
+
method: 'GET',
|
|
2203
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
2204
|
+
path: {
|
|
2205
|
+
region: data.region
|
|
2206
|
+
},
|
|
2207
|
+
query: {
|
|
2208
|
+
isActive: data.isActive,
|
|
2209
|
+
frequency: data.frequency,
|
|
2210
|
+
hasAutoCreate: data.hasAutoCreate
|
|
2211
|
+
}
|
|
2212
|
+
});
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
/**
|
|
2216
|
+
* Create recurring rule from transaction
|
|
2217
|
+
* Auto-creates a recurring rule using transaction data. User only confirms frequency.
|
|
2218
|
+
* @param data The data for the request.
|
|
2219
|
+
* @param data.transactionId Source transaction ID
|
|
2220
|
+
* @param data.region Region code for tenant context
|
|
2221
|
+
* @param data.requestBody
|
|
2222
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
2223
|
+
* @throws ApiError
|
|
2224
|
+
*/
|
|
2225
|
+
public static recurringRuleControllerCreateFromTransaction(
|
|
2226
|
+
data: RecurringRuleControllerCreateFromTransactionData
|
|
2227
|
+
): CancelablePromise<RecurringRuleControllerCreateFromTransactionResponse> {
|
|
2228
|
+
return __request(OpenAPI, {
|
|
2229
|
+
method: 'POST',
|
|
2230
|
+
url: '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}',
|
|
2231
|
+
path: {
|
|
2232
|
+
transactionId: data.transactionId,
|
|
2233
|
+
region: data.region
|
|
2234
|
+
},
|
|
2235
|
+
body: data.requestBody,
|
|
2236
|
+
mediaType: 'application/json',
|
|
2237
|
+
errors: {
|
|
2238
|
+
404: 'Transaction not found',
|
|
2239
|
+
409: 'Rule with same name already exists or transaction already linked'
|
|
2240
|
+
}
|
|
2241
|
+
});
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
/**
|
|
2245
|
+
* Get recurring rule by ID
|
|
2246
|
+
* Returns a specific recurring rule with its details
|
|
2247
|
+
* @param data The data for the request.
|
|
2248
|
+
* @param data.id Rule ID
|
|
2249
|
+
* @param data.region Region code for tenant context
|
|
2250
|
+
* @returns RecurringRuleResponseDto Rule retrieved successfully
|
|
2251
|
+
* @throws ApiError
|
|
2252
|
+
*/
|
|
2253
|
+
public static recurringRuleControllerFindOne(
|
|
1613
2254
|
data: RecurringRuleControllerFindOneData
|
|
1614
2255
|
): CancelablePromise<RecurringRuleControllerFindOneResponse> {
|
|
1615
2256
|
return __request(OpenAPI, {
|
|
@@ -1813,7 +2454,7 @@ export class ExpectedTransactionsService {
|
|
|
1813
2454
|
* @param data The data for the request.
|
|
1814
2455
|
* @param data.id Expected transaction ID
|
|
1815
2456
|
* @param data.region Region code for tenant context
|
|
1816
|
-
* @returns
|
|
2457
|
+
* @returns void Skip undone successfully
|
|
1817
2458
|
* @throws ApiError
|
|
1818
2459
|
*/
|
|
1819
2460
|
public static expectedTransactionControllerUndoSkip(
|
|
@@ -1869,7 +2510,7 @@ export class ExpectedTransactionsService {
|
|
|
1869
2510
|
* @param data The data for the request.
|
|
1870
2511
|
* @param data.id Expected transaction ID
|
|
1871
2512
|
* @param data.region Region code for tenant context
|
|
1872
|
-
* @returns
|
|
2513
|
+
* @returns void Match removed successfully
|
|
1873
2514
|
* @throws ApiError
|
|
1874
2515
|
*/
|
|
1875
2516
|
public static expectedTransactionControllerUnmatch(
|
|
@@ -2223,256 +2864,29 @@ export class BeanTransactionRulesService {
|
|
|
2223
2864
|
}
|
|
2224
2865
|
}
|
|
2225
2866
|
|
|
2226
|
-
export class
|
|
2227
|
-
/**
|
|
2228
|
-
* Delete own user account
|
|
2229
|
-
* @param data The data for the request.
|
|
2230
|
-
* @param data.requestBody
|
|
2231
|
-
* @returns void User deleted successfully
|
|
2232
|
-
* @throws ApiError
|
|
2233
|
-
*/
|
|
2234
|
-
public static userControllerDeleteOwnUser(
|
|
2235
|
-
data: UserControllerDeleteOwnUserData
|
|
2236
|
-
): CancelablePromise<UserControllerDeleteOwnUserResponse> {
|
|
2237
|
-
return __request(OpenAPI, {
|
|
2238
|
-
method: 'DELETE',
|
|
2239
|
-
url: '/api/v1/users',
|
|
2240
|
-
body: data.requestBody,
|
|
2241
|
-
mediaType: 'application/json',
|
|
2242
|
-
errors: {
|
|
2243
|
-
403: 'Invalid access token'
|
|
2244
|
-
}
|
|
2245
|
-
});
|
|
2246
|
-
}
|
|
2247
|
-
|
|
2248
|
-
/**
|
|
2249
|
-
* Get current authenticated user
|
|
2250
|
-
* @param data The data for the request.
|
|
2251
|
-
* @param data.acceptLanguage
|
|
2252
|
-
* @returns unknown User retrieved successfully
|
|
2253
|
-
* @throws ApiError
|
|
2254
|
-
*/
|
|
2255
|
-
public static userControllerGetUser(
|
|
2256
|
-
data: UserControllerGetUserData
|
|
2257
|
-
): CancelablePromise<UserControllerGetUserResponse> {
|
|
2258
|
-
return __request(OpenAPI, {
|
|
2259
|
-
method: 'GET',
|
|
2260
|
-
url: '/api/v1/users',
|
|
2261
|
-
headers: {
|
|
2262
|
-
'accept-language': data.acceptLanguage
|
|
2263
|
-
}
|
|
2264
|
-
});
|
|
2265
|
-
}
|
|
2266
|
-
|
|
2267
|
-
/**
|
|
2268
|
-
* Sign up new user
|
|
2269
|
-
* Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
|
|
2270
|
-
* @param data The data for the request.
|
|
2271
|
-
* @param data.requestBody
|
|
2272
|
-
* @returns unknown User created successfully
|
|
2273
|
-
* @throws ApiError
|
|
2274
|
-
*/
|
|
2275
|
-
public static userControllerSignupUser(
|
|
2276
|
-
data: UserControllerSignupUserData
|
|
2277
|
-
): CancelablePromise<UserControllerSignupUserResponse> {
|
|
2278
|
-
return __request(OpenAPI, {
|
|
2279
|
-
method: 'POST',
|
|
2280
|
-
url: '/api/v1/users',
|
|
2281
|
-
body: data.requestBody,
|
|
2282
|
-
mediaType: 'application/json',
|
|
2283
|
-
errors: {
|
|
2284
|
-
400: 'Invalid Turnstile token (when Turnstile is enabled)',
|
|
2285
|
-
403: 'User signup is disabled'
|
|
2286
|
-
}
|
|
2287
|
-
});
|
|
2288
|
-
}
|
|
2289
|
-
|
|
2290
|
-
/**
|
|
2291
|
-
* Delete user by ID (admin only)
|
|
2292
|
-
* @param data The data for the request.
|
|
2293
|
-
* @param data.id User ID to delete
|
|
2294
|
-
* @returns void User deleted successfully
|
|
2295
|
-
* @throws ApiError
|
|
2296
|
-
*/
|
|
2297
|
-
public static userControllerDeleteUser(
|
|
2298
|
-
data: UserControllerDeleteUserData
|
|
2299
|
-
): CancelablePromise<UserControllerDeleteUserResponse> {
|
|
2300
|
-
return __request(OpenAPI, {
|
|
2301
|
-
method: 'DELETE',
|
|
2302
|
-
url: '/api/v1/users/{id}',
|
|
2303
|
-
path: {
|
|
2304
|
-
id: data.id
|
|
2305
|
-
},
|
|
2306
|
-
errors: {
|
|
2307
|
-
403: 'Cannot delete own account or insufficient permissions'
|
|
2308
|
-
}
|
|
2309
|
-
});
|
|
2310
|
-
}
|
|
2311
|
-
|
|
2312
|
-
/**
|
|
2313
|
-
* Get user info by user ID
|
|
2314
|
-
* @param data The data for the request.
|
|
2315
|
-
* @param data.id User ID
|
|
2316
|
-
* @returns unknown User info retrieved successfully
|
|
2317
|
-
* @throws ApiError
|
|
2318
|
-
*/
|
|
2319
|
-
public static userControllerGetUserInfo(
|
|
2320
|
-
data: UserControllerGetUserInfoData
|
|
2321
|
-
): CancelablePromise<UserControllerGetUserInfoResponse> {
|
|
2322
|
-
return __request(OpenAPI, {
|
|
2323
|
-
method: 'GET',
|
|
2324
|
-
url: '/api/v1/users/{id}/info',
|
|
2325
|
-
path: {
|
|
2326
|
-
id: data.id
|
|
2327
|
-
},
|
|
2328
|
-
errors: {
|
|
2329
|
-
403: 'Cannot access other user info without admin permission'
|
|
2330
|
-
}
|
|
2331
|
-
});
|
|
2332
|
-
}
|
|
2333
|
-
|
|
2334
|
-
/**
|
|
2335
|
-
* Update user settings
|
|
2336
|
-
* @param data The data for the request.
|
|
2337
|
-
* @param data.requestBody
|
|
2338
|
-
* @returns unknown Settings updated successfully
|
|
2339
|
-
* @throws ApiError
|
|
2340
|
-
*/
|
|
2341
|
-
public static userControllerUpdateUserSetting(
|
|
2342
|
-
data: UserControllerUpdateUserSettingData
|
|
2343
|
-
): CancelablePromise<UserControllerUpdateUserSettingResponse> {
|
|
2344
|
-
return __request(OpenAPI, {
|
|
2345
|
-
method: 'PUT',
|
|
2346
|
-
url: '/api/v1/users/setting',
|
|
2347
|
-
body: data.requestBody,
|
|
2348
|
-
mediaType: 'application/json',
|
|
2349
|
-
errors: {
|
|
2350
|
-
403: 'Insufficient permissions'
|
|
2351
|
-
}
|
|
2352
|
-
});
|
|
2353
|
-
}
|
|
2354
|
-
|
|
2355
|
-
/**
|
|
2356
|
-
* Get all user settings paginated (admin only)
|
|
2357
|
-
* @param data The data for the request.
|
|
2358
|
-
* @param data.pageNo Page number
|
|
2359
|
-
* @param data.pageSize Page size
|
|
2360
|
-
* @returns unknown Settings list retrieved successfully
|
|
2361
|
-
* @throws ApiError
|
|
2362
|
-
*/
|
|
2363
|
-
public static userControllerGetAllUserSettingsByPage(
|
|
2364
|
-
data: UserControllerGetAllUserSettingsByPageData
|
|
2365
|
-
): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
|
|
2366
|
-
return __request(OpenAPI, {
|
|
2367
|
-
method: 'GET',
|
|
2368
|
-
url: '/api/v1/users/settings-by-page',
|
|
2369
|
-
query: {
|
|
2370
|
-
pageNo: data.pageNo,
|
|
2371
|
-
pageSize: data.pageSize
|
|
2372
|
-
}
|
|
2373
|
-
});
|
|
2374
|
-
}
|
|
2375
|
-
|
|
2376
|
-
/**
|
|
2377
|
-
* Get asset and liability summary for current user
|
|
2378
|
-
* @returns unknown Summary retrieved successfully
|
|
2379
|
-
* @throws ApiError
|
|
2380
|
-
*/
|
|
2381
|
-
public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
|
|
2382
|
-
return __request(OpenAPI, {
|
|
2383
|
-
method: 'GET',
|
|
2384
|
-
url: '/api/v1/users/asset-liability-summary'
|
|
2385
|
-
});
|
|
2386
|
-
}
|
|
2387
|
-
}
|
|
2388
|
-
|
|
2389
|
-
export class PropertiesService {
|
|
2390
|
-
/**
|
|
2391
|
-
* Get all system properties
|
|
2392
|
-
* @returns unknown Properties retrieved successfully
|
|
2393
|
-
* @throws ApiError
|
|
2394
|
-
*/
|
|
2395
|
-
public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
|
|
2396
|
-
return __request(OpenAPI, {
|
|
2397
|
-
method: 'GET',
|
|
2398
|
-
url: '/api/v1/admin/properties',
|
|
2399
|
-
errors: {
|
|
2400
|
-
401: 'Unauthorized',
|
|
2401
|
-
403: 'Forbidden - insufficient permissions'
|
|
2402
|
-
}
|
|
2403
|
-
});
|
|
2404
|
-
}
|
|
2405
|
-
|
|
2867
|
+
export class BeanCategoryCatalogService {
|
|
2406
2868
|
/**
|
|
2407
|
-
*
|
|
2869
|
+
* List category catalog for a region
|
|
2870
|
+
* Returns the region-scoped category slugs (expense/income/investment/banking/transfer/payment) for the NLP result picker. CN-exclusive payment instruments (huabei/baitiao) appear only under /cn.
|
|
2408
2871
|
* @param data The data for the request.
|
|
2409
|
-
* @param data.
|
|
2410
|
-
* @
|
|
2872
|
+
* @param data.region Region code for tenant context
|
|
2873
|
+
* @param data.scenario Filter by scenario
|
|
2874
|
+
* @param data.routeBearing Filter by routeBearing (entity-router route() consumes it)
|
|
2875
|
+
* @returns CategoryCatalogListResponseDto Category catalog retrieved successfully
|
|
2411
2876
|
* @throws ApiError
|
|
2412
2877
|
*/
|
|
2413
|
-
public static
|
|
2414
|
-
data:
|
|
2415
|
-
): CancelablePromise<
|
|
2878
|
+
public static categoryCatalogControllerList(
|
|
2879
|
+
data: CategoryCatalogControllerListData
|
|
2880
|
+
): CancelablePromise<CategoryCatalogControllerListResponse> {
|
|
2416
2881
|
return __request(OpenAPI, {
|
|
2417
2882
|
method: 'GET',
|
|
2418
|
-
url: '/api/v1/
|
|
2419
|
-
path: {
|
|
2420
|
-
|
|
2421
|
-
},
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
404: 'Property not found'
|
|
2426
|
-
}
|
|
2427
|
-
});
|
|
2428
|
-
}
|
|
2429
|
-
|
|
2430
|
-
/**
|
|
2431
|
-
* Update a system property
|
|
2432
|
-
* @param data The data for the request.
|
|
2433
|
-
* @param data.key Property key
|
|
2434
|
-
* @param data.requestBody
|
|
2435
|
-
* @returns unknown Property updated successfully
|
|
2436
|
-
* @throws ApiError
|
|
2437
|
-
*/
|
|
2438
|
-
public static propertyControllerUpdate(
|
|
2439
|
-
data: PropertyControllerUpdateData
|
|
2440
|
-
): CancelablePromise<PropertyControllerUpdateResponse> {
|
|
2441
|
-
return __request(OpenAPI, {
|
|
2442
|
-
method: 'PUT',
|
|
2443
|
-
url: '/api/v1/admin/properties/{key}',
|
|
2444
|
-
path: {
|
|
2445
|
-
key: data.key
|
|
2446
|
-
},
|
|
2447
|
-
body: data.requestBody,
|
|
2448
|
-
mediaType: 'application/json',
|
|
2449
|
-
errors: {
|
|
2450
|
-
401: 'Unauthorized',
|
|
2451
|
-
403: 'Forbidden - insufficient permissions'
|
|
2452
|
-
}
|
|
2453
|
-
});
|
|
2454
|
-
}
|
|
2455
|
-
|
|
2456
|
-
/**
|
|
2457
|
-
* Delete a system property
|
|
2458
|
-
* @param data The data for the request.
|
|
2459
|
-
* @param data.key Property key
|
|
2460
|
-
* @returns void Property deleted successfully
|
|
2461
|
-
* @throws ApiError
|
|
2462
|
-
*/
|
|
2463
|
-
public static propertyControllerDelete(
|
|
2464
|
-
data: PropertyControllerDeleteData
|
|
2465
|
-
): CancelablePromise<PropertyControllerDeleteResponse> {
|
|
2466
|
-
return __request(OpenAPI, {
|
|
2467
|
-
method: 'DELETE',
|
|
2468
|
-
url: '/api/v1/admin/properties/{key}',
|
|
2469
|
-
path: {
|
|
2470
|
-
key: data.key
|
|
2471
|
-
},
|
|
2472
|
-
errors: {
|
|
2473
|
-
401: 'Unauthorized',
|
|
2474
|
-
403: 'Forbidden - insufficient permissions',
|
|
2475
|
-
404: 'Property not found'
|
|
2883
|
+
url: '/api/v1/{region}/bean/categories',
|
|
2884
|
+
path: {
|
|
2885
|
+
region: data.region
|
|
2886
|
+
},
|
|
2887
|
+
query: {
|
|
2888
|
+
scenario: data.scenario,
|
|
2889
|
+
routeBearing: data.routeBearing
|
|
2476
2890
|
}
|
|
2477
2891
|
});
|
|
2478
2892
|
}
|
|
@@ -2653,11 +3067,144 @@ export class LifeEventsService {
|
|
|
2653
3067
|
}
|
|
2654
3068
|
}
|
|
2655
3069
|
|
|
3070
|
+
export class OnboardingService {
|
|
3071
|
+
/**
|
|
3072
|
+
* Bootstrap core accounts + register asset accounts with opening balances (ADR-0113)
|
|
3073
|
+
* @param data The data for the request.
|
|
3074
|
+
* @param data.region Region code for tenant context
|
|
3075
|
+
* @param data.requestBody
|
|
3076
|
+
* @returns unknown Onboarding bootstrap result.
|
|
3077
|
+
* @throws ApiError
|
|
3078
|
+
*/
|
|
3079
|
+
public static onboardingControllerBootstrap(
|
|
3080
|
+
data: OnboardingControllerBootstrapData
|
|
3081
|
+
): CancelablePromise<OnboardingControllerBootstrapResponse> {
|
|
3082
|
+
return __request(OpenAPI, {
|
|
3083
|
+
method: 'POST',
|
|
3084
|
+
url: '/api/v1/{region}/bean/onboarding',
|
|
3085
|
+
path: {
|
|
3086
|
+
region: data.region
|
|
3087
|
+
},
|
|
3088
|
+
body: data.requestBody,
|
|
3089
|
+
mediaType: 'application/json',
|
|
3090
|
+
errors: {
|
|
3091
|
+
422: 'Invalid region/account path/duplicate paths.'
|
|
3092
|
+
}
|
|
3093
|
+
});
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
3096
|
+
|
|
3097
|
+
export class BalanceReconciliationService {
|
|
3098
|
+
/**
|
|
3099
|
+
* Preview reconciliation (book vs actual)
|
|
3100
|
+
* Computes book balance, diff, Beancount-inferred tolerance, and suggested action without persisting.
|
|
3101
|
+
* @param data The data for the request.
|
|
3102
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3103
|
+
* @param data.requestBody
|
|
3104
|
+
* @returns ReconciliationComputeResultDto Reconciliation preview
|
|
3105
|
+
* @throws ApiError
|
|
3106
|
+
*/
|
|
3107
|
+
public static reconciliationControllerCompute(
|
|
3108
|
+
data: ReconciliationControllerComputeData
|
|
3109
|
+
): CancelablePromise<ReconciliationControllerComputeResponse> {
|
|
3110
|
+
return __request(OpenAPI, {
|
|
3111
|
+
method: 'POST',
|
|
3112
|
+
url: '/api/v1/{region}/bean/reconciliations',
|
|
3113
|
+
path: {
|
|
3114
|
+
region: data.region
|
|
3115
|
+
},
|
|
3116
|
+
body: data.requestBody,
|
|
3117
|
+
mediaType: 'application/json',
|
|
3118
|
+
errors: {
|
|
3119
|
+
404: 'Account not found'
|
|
3120
|
+
}
|
|
3121
|
+
});
|
|
3122
|
+
}
|
|
3123
|
+
|
|
3124
|
+
/**
|
|
3125
|
+
* Record a balance assertion
|
|
3126
|
+
* Persists the reconciliation as a BeanBalance assertion (amount = actual, diffAmount = book − actual). Re-reconciling the same day/currency upserts.
|
|
3127
|
+
* @param data The data for the request.
|
|
3128
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3129
|
+
* @param data.requestBody
|
|
3130
|
+
* @returns ReconciliationRecordDto Balance assertion recorded
|
|
3131
|
+
* @throws ApiError
|
|
3132
|
+
*/
|
|
3133
|
+
public static reconciliationControllerAssert(
|
|
3134
|
+
data: ReconciliationControllerAssertData
|
|
3135
|
+
): CancelablePromise<ReconciliationControllerAssertResponse> {
|
|
3136
|
+
return __request(OpenAPI, {
|
|
3137
|
+
method: 'POST',
|
|
3138
|
+
url: '/api/v1/{region}/bean/reconciliations/assert',
|
|
3139
|
+
path: {
|
|
3140
|
+
region: data.region
|
|
3141
|
+
},
|
|
3142
|
+
body: data.requestBody,
|
|
3143
|
+
mediaType: 'application/json',
|
|
3144
|
+
errors: {
|
|
3145
|
+
404: 'Account not found'
|
|
3146
|
+
}
|
|
3147
|
+
});
|
|
3148
|
+
}
|
|
3149
|
+
|
|
3150
|
+
/**
|
|
3151
|
+
* Generate a pad adjusting entry
|
|
3152
|
+
* When book is outside tolerance, synthesizes a Beancount pad transaction (flag P) booking the diff from source_account and persists it. Source defaults to Equity:Opening-Balances.
|
|
3153
|
+
* @param data The data for the request.
|
|
3154
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3155
|
+
* @param data.requestBody
|
|
3156
|
+
* @returns PadResultDto Pad adjusting entry generated
|
|
3157
|
+
* @throws ApiError
|
|
3158
|
+
*/
|
|
3159
|
+
public static reconciliationControllerPad(
|
|
3160
|
+
data: ReconciliationControllerPadData
|
|
3161
|
+
): CancelablePromise<ReconciliationControllerPadResponse> {
|
|
3162
|
+
return __request(OpenAPI, {
|
|
3163
|
+
method: 'POST',
|
|
3164
|
+
url: '/api/v1/{region}/bean/reconciliations/pad',
|
|
3165
|
+
path: {
|
|
3166
|
+
region: data.region
|
|
3167
|
+
},
|
|
3168
|
+
body: data.requestBody,
|
|
3169
|
+
mediaType: 'application/json',
|
|
3170
|
+
errors: {
|
|
3171
|
+
400: 'Book already within tolerance — no pad needed',
|
|
3172
|
+
404: 'Account not found'
|
|
3173
|
+
}
|
|
3174
|
+
});
|
|
3175
|
+
}
|
|
3176
|
+
|
|
3177
|
+
/**
|
|
3178
|
+
* List reconciliation history for an account
|
|
3179
|
+
* Returns recorded balance assertions (most recent first). The latest drives the account-detail "Last <date>" badge.
|
|
3180
|
+
* @param data The data for the request.
|
|
3181
|
+
* @param data.accountId BeanAccount id
|
|
3182
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3183
|
+
* @returns ReconciliationRecordDto Reconciliation history
|
|
3184
|
+
* @throws ApiError
|
|
3185
|
+
*/
|
|
3186
|
+
public static reconciliationControllerHistory(
|
|
3187
|
+
data: ReconciliationControllerHistoryData
|
|
3188
|
+
): CancelablePromise<ReconciliationControllerHistoryResponse> {
|
|
3189
|
+
return __request(OpenAPI, {
|
|
3190
|
+
method: 'GET',
|
|
3191
|
+
url: '/api/v1/{region}/bean/accounts/{accountId}/reconciliations',
|
|
3192
|
+
path: {
|
|
3193
|
+
accountId: data.accountId,
|
|
3194
|
+
region: data.region
|
|
3195
|
+
},
|
|
3196
|
+
errors: {
|
|
3197
|
+
404: 'Account not found'
|
|
3198
|
+
}
|
|
3199
|
+
});
|
|
3200
|
+
}
|
|
3201
|
+
}
|
|
3202
|
+
|
|
2656
3203
|
export class BeanExportService {
|
|
2657
3204
|
/**
|
|
2658
3205
|
* Export Beancount ledger as ZIP
|
|
2659
3206
|
* Export all user Beancount data as a ZIP file containing ledger.beancount and yearly files in community format.
|
|
2660
|
-
* @returns
|
|
3207
|
+
* @returns binary ZIP archive (application/zip) streamed as an attachment
|
|
2661
3208
|
* @throws ApiError
|
|
2662
3209
|
*/
|
|
2663
3210
|
public static exportControllerExportBeancount(): CancelablePromise<ExportControllerExportBeancountResponse> {
|
|
@@ -2831,216 +3378,196 @@ export class BeanImportService {
|
|
|
2831
3378
|
}
|
|
2832
3379
|
}
|
|
2833
3380
|
|
|
2834
|
-
export class
|
|
2835
|
-
/**
|
|
2836
|
-
* Get all platforms with statistics
|
|
2837
|
-
* @returns unknown List of platforms with binding and account counts
|
|
2838
|
-
* @throws ApiError
|
|
2839
|
-
*/
|
|
2840
|
-
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
2841
|
-
return __request(OpenAPI, {
|
|
2842
|
-
method: 'GET',
|
|
2843
|
-
url: '/api/v1/bean/platforms'
|
|
2844
|
-
});
|
|
2845
|
-
}
|
|
2846
|
-
|
|
3381
|
+
export class ProviderSyncService {
|
|
2847
3382
|
/**
|
|
2848
|
-
*
|
|
3383
|
+
* Sync transactions from financial data provider
|
|
3384
|
+
*
|
|
3385
|
+
* Accepts raw transactions from external financial data providers, transforms them to Beancount format, and processes them through the ingestion pipeline.
|
|
3386
|
+
*
|
|
3387
|
+
* **Supported Providers:**
|
|
3388
|
+
* - **plaid**: Plaid API (US, Canada, Europe)
|
|
3389
|
+
* - **teller**: Teller API (US)
|
|
3390
|
+
* - **truelayer**: TrueLayer Open Banking (UK, Europe)
|
|
3391
|
+
* - **gocardless**: GoCardless Bank Account Data (Europe)
|
|
3392
|
+
* - **simplefin**: SimpleFIN (Self-hosted)
|
|
3393
|
+
* - **yodlee**: Yodlee (Global)
|
|
3394
|
+
* - **beancount-direct**: Beancount format transactions
|
|
3395
|
+
* - **parsed-bill**: Client-side parsed bill transactions
|
|
3396
|
+
*
|
|
3397
|
+
* **Processing Flow:**
|
|
3398
|
+
* 1. Transform raw data via provider adapter
|
|
3399
|
+
* 2. Validate transaction format
|
|
3400
|
+
* 3. Deduplicate using originalId
|
|
3401
|
+
* 4. Classify using rule engine
|
|
3402
|
+
* 5. Route low-confidence to Review Center
|
|
3403
|
+
* 6. Persist validated transactions
|
|
3404
|
+
*
|
|
2849
3405
|
* @param data The data for the request.
|
|
3406
|
+
* @param data.providerName Provider name
|
|
3407
|
+
* @param data.region Region code for tenant context
|
|
2850
3408
|
* @param data.requestBody
|
|
2851
|
-
* @returns
|
|
3409
|
+
* @returns ProviderSyncResponseDto Sync completed successfully
|
|
2852
3410
|
* @throws ApiError
|
|
2853
3411
|
*/
|
|
2854
|
-
public static
|
|
2855
|
-
data:
|
|
2856
|
-
): CancelablePromise<
|
|
3412
|
+
public static providerSyncControllerSync(
|
|
3413
|
+
data: ProviderSyncControllerSyncData
|
|
3414
|
+
): CancelablePromise<ProviderSyncControllerSyncResponse> {
|
|
2857
3415
|
return __request(OpenAPI, {
|
|
2858
3416
|
method: 'POST',
|
|
2859
|
-
url: '/api/v1/bean/
|
|
3417
|
+
url: '/api/v1/{region}/bean/import/provider/{providerName}/sync',
|
|
3418
|
+
path: {
|
|
3419
|
+
providerName: data.providerName,
|
|
3420
|
+
region: data.region
|
|
3421
|
+
},
|
|
2860
3422
|
body: data.requestBody,
|
|
2861
3423
|
mediaType: 'application/json',
|
|
2862
3424
|
errors: {
|
|
2863
|
-
|
|
3425
|
+
400: 'Invalid request data',
|
|
3426
|
+
401: 'Missing or invalid authentication',
|
|
3427
|
+
404: 'Provider not supported'
|
|
2864
3428
|
}
|
|
2865
3429
|
});
|
|
2866
3430
|
}
|
|
2867
3431
|
|
|
2868
3432
|
/**
|
|
2869
|
-
* Get
|
|
2870
|
-
*
|
|
2871
|
-
* @throws ApiError
|
|
2872
|
-
*/
|
|
2873
|
-
public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
2874
|
-
return __request(OpenAPI, {
|
|
2875
|
-
method: 'GET',
|
|
2876
|
-
url: '/api/v1/bean/platforms/list'
|
|
2877
|
-
});
|
|
2878
|
-
}
|
|
2879
|
-
|
|
2880
|
-
/**
|
|
2881
|
-
* Match platforms by name or alias
|
|
3433
|
+
* Get supported providers
|
|
3434
|
+
* Returns a list of all providers supported by the sync endpoint.
|
|
2882
3435
|
* @param data The data for the request.
|
|
2883
|
-
* @param data.
|
|
2884
|
-
* @
|
|
2885
|
-
* @returns unknown List of matching platforms with suggested segment names
|
|
3436
|
+
* @param data.region Region code for tenant context
|
|
3437
|
+
* @returns SupportedProvidersResponseDto List of supported providers
|
|
2886
3438
|
* @throws ApiError
|
|
2887
3439
|
*/
|
|
2888
|
-
public static
|
|
2889
|
-
data:
|
|
2890
|
-
): CancelablePromise<
|
|
3440
|
+
public static providerSyncControllerGetSupportedProviders(
|
|
3441
|
+
data: ProviderSyncControllerGetSupportedProvidersData
|
|
3442
|
+
): CancelablePromise<ProviderSyncControllerGetSupportedProvidersResponse> {
|
|
2891
3443
|
return __request(OpenAPI, {
|
|
2892
3444
|
method: 'GET',
|
|
2893
|
-
url: '/api/v1/bean/
|
|
2894
|
-
|
|
2895
|
-
q: data.q,
|
|
3445
|
+
url: '/api/v1/{region}/bean/import/provider/supported',
|
|
3446
|
+
path: {
|
|
2896
3447
|
region: data.region
|
|
3448
|
+
},
|
|
3449
|
+
errors: {
|
|
3450
|
+
401: 'Missing or invalid authentication'
|
|
2897
3451
|
}
|
|
2898
3452
|
});
|
|
2899
3453
|
}
|
|
2900
3454
|
|
|
2901
3455
|
/**
|
|
2902
|
-
*
|
|
3456
|
+
* Check if provider is supported
|
|
3457
|
+
* Returns whether a specific provider is supported.
|
|
2903
3458
|
* @param data The data for the request.
|
|
2904
|
-
* @param data.
|
|
2905
|
-
* @param data.
|
|
2906
|
-
* @returns unknown
|
|
3459
|
+
* @param data.providerName Provider name to check
|
|
3460
|
+
* @param data.region Region code for tenant context
|
|
3461
|
+
* @returns unknown Provider support status
|
|
2907
3462
|
* @throws ApiError
|
|
2908
3463
|
*/
|
|
2909
|
-
public static
|
|
2910
|
-
data:
|
|
2911
|
-
): CancelablePromise<
|
|
3464
|
+
public static providerSyncControllerIsProviderSupported(
|
|
3465
|
+
data: ProviderSyncControllerIsProviderSupportedData
|
|
3466
|
+
): CancelablePromise<ProviderSyncControllerIsProviderSupportedResponse> {
|
|
2912
3467
|
return __request(OpenAPI, {
|
|
2913
|
-
method: '
|
|
2914
|
-
url: '/api/v1/bean/
|
|
3468
|
+
method: 'GET',
|
|
3469
|
+
url: '/api/v1/{region}/bean/import/provider/{providerName}/supported',
|
|
2915
3470
|
path: {
|
|
2916
|
-
|
|
3471
|
+
providerName: data.providerName,
|
|
3472
|
+
region: data.region
|
|
2917
3473
|
},
|
|
2918
|
-
body: data.requestBody,
|
|
2919
|
-
mediaType: 'application/json',
|
|
2920
3474
|
errors: {
|
|
2921
|
-
|
|
3475
|
+
401: 'Missing or invalid authentication'
|
|
2922
3476
|
}
|
|
2923
3477
|
});
|
|
2924
3478
|
}
|
|
3479
|
+
}
|
|
2925
3480
|
|
|
3481
|
+
export class ExternalAccountLinksService {
|
|
2926
3482
|
/**
|
|
2927
|
-
*
|
|
3483
|
+
* Create an external account → BeanAccount mapping (ADR-0113)
|
|
2928
3484
|
* @param data The data for the request.
|
|
2929
|
-
* @param data.
|
|
2930
|
-
* @
|
|
3485
|
+
* @param data.region Region code for tenant context
|
|
3486
|
+
* @param data.requestBody
|
|
3487
|
+
* @returns ExternalAccountLinkResponseDto Link created.
|
|
2931
3488
|
* @throws ApiError
|
|
2932
3489
|
*/
|
|
2933
|
-
public static
|
|
2934
|
-
data:
|
|
2935
|
-
): CancelablePromise<
|
|
3490
|
+
public static externalAccountLinkControllerCreate(
|
|
3491
|
+
data: ExternalAccountLinkControllerCreateData
|
|
3492
|
+
): CancelablePromise<ExternalAccountLinkControllerCreateResponse> {
|
|
2936
3493
|
return __request(OpenAPI, {
|
|
2937
|
-
method: '
|
|
2938
|
-
url: '/api/v1/bean/
|
|
3494
|
+
method: 'POST',
|
|
3495
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
2939
3496
|
path: {
|
|
2940
|
-
|
|
3497
|
+
region: data.region
|
|
2941
3498
|
},
|
|
3499
|
+
body: data.requestBody,
|
|
3500
|
+
mediaType: 'application/json',
|
|
2942
3501
|
errors: {
|
|
2943
|
-
|
|
3502
|
+
422: 'beanAccountId not owned, or an active link already exists.'
|
|
2944
3503
|
}
|
|
2945
3504
|
});
|
|
2946
3505
|
}
|
|
2947
|
-
}
|
|
2948
3506
|
|
|
2949
|
-
export class ProviderSyncService {
|
|
2950
3507
|
/**
|
|
2951
|
-
*
|
|
2952
|
-
*
|
|
2953
|
-
* Accepts raw transactions from external financial data providers, transforms them to Beancount format, and processes them through the ingestion pipeline.
|
|
2954
|
-
*
|
|
2955
|
-
* **Supported Providers:**
|
|
2956
|
-
* - **plaid**: Plaid API (US, Canada, Europe)
|
|
2957
|
-
* - **teller**: Teller API (US)
|
|
2958
|
-
* - **truelayer**: TrueLayer Open Banking (UK, Europe)
|
|
2959
|
-
* - **gocardless**: GoCardless Bank Account Data (Europe)
|
|
2960
|
-
* - **simplefin**: SimpleFIN (Self-hosted)
|
|
2961
|
-
* - **yodlee**: Yodlee (Global)
|
|
2962
|
-
* - **beancount-direct**: Beancount format transactions
|
|
2963
|
-
* - **parsed-bill**: Client-side parsed bill transactions
|
|
2964
|
-
*
|
|
2965
|
-
* **Processing Flow:**
|
|
2966
|
-
* 1. Transform raw data via provider adapter
|
|
2967
|
-
* 2. Validate transaction format
|
|
2968
|
-
* 3. Deduplicate using originalId
|
|
2969
|
-
* 4. Classify using rule engine
|
|
2970
|
-
* 5. Route low-confidence to Review Center
|
|
2971
|
-
* 6. Persist validated transactions
|
|
2972
|
-
*
|
|
3508
|
+
* List the user's active external account links
|
|
2973
3509
|
* @param data The data for the request.
|
|
2974
|
-
* @param data.
|
|
3510
|
+
* @param data.provider
|
|
2975
3511
|
* @param data.region Region code for tenant context
|
|
2976
|
-
* @
|
|
2977
|
-
* @returns ProviderSyncResponseDto Sync completed successfully
|
|
3512
|
+
* @returns ExternalAccountLinkListResponseDto Links retrieved.
|
|
2978
3513
|
* @throws ApiError
|
|
2979
3514
|
*/
|
|
2980
|
-
public static
|
|
2981
|
-
data:
|
|
2982
|
-
): CancelablePromise<
|
|
2983
|
-
return __request(OpenAPI, {
|
|
2984
|
-
method: '
|
|
2985
|
-
url: '/api/v1/{region}/bean/
|
|
3515
|
+
public static externalAccountLinkControllerFindAll(
|
|
3516
|
+
data: ExternalAccountLinkControllerFindAllData
|
|
3517
|
+
): CancelablePromise<ExternalAccountLinkControllerFindAllResponse> {
|
|
3518
|
+
return __request(OpenAPI, {
|
|
3519
|
+
method: 'GET',
|
|
3520
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
2986
3521
|
path: {
|
|
2987
|
-
providerName: data.providerName,
|
|
2988
3522
|
region: data.region
|
|
2989
3523
|
},
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
errors: {
|
|
2993
|
-
400: 'Invalid request data',
|
|
2994
|
-
401: 'Missing or invalid authentication',
|
|
2995
|
-
404: 'Provider not supported'
|
|
3524
|
+
query: {
|
|
3525
|
+
provider: data.provider
|
|
2996
3526
|
}
|
|
2997
3527
|
});
|
|
2998
3528
|
}
|
|
2999
3529
|
|
|
3000
3530
|
/**
|
|
3001
|
-
* Get
|
|
3002
|
-
* Returns a list of all providers supported by the sync endpoint.
|
|
3531
|
+
* Get a single external account link
|
|
3003
3532
|
* @param data The data for the request.
|
|
3533
|
+
* @param data.id
|
|
3004
3534
|
* @param data.region Region code for tenant context
|
|
3005
|
-
* @returns
|
|
3535
|
+
* @returns ExternalAccountLinkResponseDto Link retrieved.
|
|
3006
3536
|
* @throws ApiError
|
|
3007
3537
|
*/
|
|
3008
|
-
public static
|
|
3009
|
-
data:
|
|
3010
|
-
): CancelablePromise<
|
|
3538
|
+
public static externalAccountLinkControllerFindOne(
|
|
3539
|
+
data: ExternalAccountLinkControllerFindOneData
|
|
3540
|
+
): CancelablePromise<ExternalAccountLinkControllerFindOneResponse> {
|
|
3011
3541
|
return __request(OpenAPI, {
|
|
3012
3542
|
method: 'GET',
|
|
3013
|
-
url: '/api/v1/{region}/bean/
|
|
3543
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3014
3544
|
path: {
|
|
3545
|
+
id: data.id,
|
|
3015
3546
|
region: data.region
|
|
3016
3547
|
},
|
|
3017
3548
|
errors: {
|
|
3018
|
-
|
|
3549
|
+
422: 'Link not found or not owned by the user.'
|
|
3019
3550
|
}
|
|
3020
3551
|
});
|
|
3021
3552
|
}
|
|
3022
3553
|
|
|
3023
3554
|
/**
|
|
3024
|
-
*
|
|
3025
|
-
* Returns whether a specific provider is supported.
|
|
3555
|
+
* Soft-delete (disconnect) an external account link
|
|
3026
3556
|
* @param data The data for the request.
|
|
3027
|
-
* @param data.
|
|
3557
|
+
* @param data.id
|
|
3028
3558
|
* @param data.region Region code for tenant context
|
|
3029
|
-
* @returns
|
|
3559
|
+
* @returns void Link soft-deleted; historical transactions are unaffected.
|
|
3030
3560
|
* @throws ApiError
|
|
3031
3561
|
*/
|
|
3032
|
-
public static
|
|
3033
|
-
data:
|
|
3034
|
-
): CancelablePromise<
|
|
3562
|
+
public static externalAccountLinkControllerRemove(
|
|
3563
|
+
data: ExternalAccountLinkControllerRemoveData
|
|
3564
|
+
): CancelablePromise<ExternalAccountLinkControllerRemoveResponse> {
|
|
3035
3565
|
return __request(OpenAPI, {
|
|
3036
|
-
method: '
|
|
3037
|
-
url: '/api/v1/{region}/bean/
|
|
3566
|
+
method: 'DELETE',
|
|
3567
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3038
3568
|
path: {
|
|
3039
|
-
|
|
3569
|
+
id: data.id,
|
|
3040
3570
|
region: data.region
|
|
3041
|
-
},
|
|
3042
|
-
errors: {
|
|
3043
|
-
401: 'Missing or invalid authentication'
|
|
3044
3571
|
}
|
|
3045
3572
|
});
|
|
3046
3573
|
}
|
|
@@ -3204,359 +3731,205 @@ export class BeanNlpService {
|
|
|
3204
3731
|
}
|
|
3205
3732
|
}
|
|
3206
3733
|
|
|
3207
|
-
export class
|
|
3734
|
+
export class BeanPlatformsService {
|
|
3208
3735
|
/**
|
|
3209
|
-
* Get
|
|
3210
|
-
*
|
|
3211
|
-
* @param data The data for the request.
|
|
3212
|
-
* @param data.region Region code for tenant context
|
|
3213
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3214
|
-
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3736
|
+
* Get all platforms with statistics
|
|
3737
|
+
* @returns unknown List of platforms with binding and account counts
|
|
3215
3738
|
* @throws ApiError
|
|
3216
3739
|
*/
|
|
3217
|
-
public static
|
|
3218
|
-
data: DashboardControllerGetNetWorthData
|
|
3219
|
-
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3740
|
+
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
3220
3741
|
return __request(OpenAPI, {
|
|
3221
3742
|
method: 'GET',
|
|
3222
|
-
url: '/api/v1/
|
|
3223
|
-
path: {
|
|
3224
|
-
region: data.region
|
|
3225
|
-
},
|
|
3226
|
-
query: {
|
|
3227
|
-
date: data.date
|
|
3228
|
-
},
|
|
3229
|
-
errors: {
|
|
3230
|
-
401: 'User not authenticated'
|
|
3231
|
-
}
|
|
3743
|
+
url: '/api/v1/bean/platforms'
|
|
3232
3744
|
});
|
|
3233
3745
|
}
|
|
3234
3746
|
|
|
3235
3747
|
/**
|
|
3236
|
-
*
|
|
3237
|
-
* Returns accounts with balances grouped by financial platform
|
|
3748
|
+
* Create a new platform
|
|
3238
3749
|
* @param data The data for the request.
|
|
3239
|
-
* @param data.
|
|
3240
|
-
* @
|
|
3241
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3242
|
-
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3243
|
-
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3750
|
+
* @param data.requestBody
|
|
3751
|
+
* @returns unknown Platform created successfully
|
|
3244
3752
|
* @throws ApiError
|
|
3245
3753
|
*/
|
|
3246
|
-
public static
|
|
3247
|
-
data:
|
|
3248
|
-
): CancelablePromise<
|
|
3754
|
+
public static platformControllerCreate(
|
|
3755
|
+
data: PlatformControllerCreateData
|
|
3756
|
+
): CancelablePromise<PlatformControllerCreateResponse> {
|
|
3249
3757
|
return __request(OpenAPI, {
|
|
3250
|
-
method: '
|
|
3251
|
-
url: '/api/v1/
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
},
|
|
3255
|
-
query: {
|
|
3256
|
-
groupBy: data.groupBy,
|
|
3257
|
-
date: data.date,
|
|
3258
|
-
accountId: data.accountId
|
|
3259
|
-
},
|
|
3758
|
+
method: 'POST',
|
|
3759
|
+
url: '/api/v1/bean/platforms',
|
|
3760
|
+
body: data.requestBody,
|
|
3761
|
+
mediaType: 'application/json',
|
|
3260
3762
|
errors: {
|
|
3261
|
-
|
|
3763
|
+
409: 'Platform already exists'
|
|
3262
3764
|
}
|
|
3263
3765
|
});
|
|
3264
3766
|
}
|
|
3265
3767
|
|
|
3266
3768
|
/**
|
|
3267
|
-
* Get
|
|
3268
|
-
* Returns income, expenses, and savings for a monthly period
|
|
3769
|
+
* Get platform list for current user
|
|
3269
3770
|
* @param data The data for the request.
|
|
3270
|
-
* @param data.
|
|
3271
|
-
* @
|
|
3272
|
-
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3771
|
+
* @param data.region Region code (ISO 3166-1 alpha-2) that biases within-type-bucket ordering (local-region platforms first). Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
|
|
3772
|
+
* @returns PlatformListItemDto List of platforms with user binding status
|
|
3273
3773
|
* @throws ApiError
|
|
3274
3774
|
*/
|
|
3275
|
-
public static
|
|
3276
|
-
data:
|
|
3277
|
-
): CancelablePromise<
|
|
3775
|
+
public static platformControllerGetPlatformList(
|
|
3776
|
+
data: PlatformControllerGetPlatformListData = {}
|
|
3777
|
+
): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
3278
3778
|
return __request(OpenAPI, {
|
|
3279
3779
|
method: 'GET',
|
|
3280
|
-
url: '/api/v1/
|
|
3281
|
-
path: {
|
|
3282
|
-
region: data.region
|
|
3283
|
-
},
|
|
3780
|
+
url: '/api/v1/bean/platforms/list',
|
|
3284
3781
|
query: {
|
|
3285
|
-
period: data.period
|
|
3286
|
-
},
|
|
3287
|
-
errors: {
|
|
3288
|
-
400: 'Invalid period format',
|
|
3289
|
-
401: 'User not authenticated'
|
|
3290
|
-
}
|
|
3291
|
-
});
|
|
3292
|
-
}
|
|
3293
|
-
|
|
3294
|
-
/**
|
|
3295
|
-
* Get expenses grouped by functional category
|
|
3296
|
-
* Returns expenses pre-aggregated by functional category (account-path Group segment) with server-side multi-currency conversion
|
|
3297
|
-
* @param data The data for the request.
|
|
3298
|
-
* @param data.region Region code for tenant context
|
|
3299
|
-
* @param data.groupBy Grouping strategy
|
|
3300
|
-
* @param data.period Time window (1m = current calendar month)
|
|
3301
|
-
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3302
|
-
* @throws ApiError
|
|
3303
|
-
*/
|
|
3304
|
-
public static dashboardControllerGetExpenses(
|
|
3305
|
-
data: DashboardControllerGetExpensesData
|
|
3306
|
-
): CancelablePromise<DashboardControllerGetExpensesResponse> {
|
|
3307
|
-
return __request(OpenAPI, {
|
|
3308
|
-
method: 'GET',
|
|
3309
|
-
url: '/api/v1/{region}/dashboard/expenses',
|
|
3310
|
-
path: {
|
|
3311
3782
|
region: data.region
|
|
3312
|
-
},
|
|
3313
|
-
query: {
|
|
3314
|
-
groupBy: data.groupBy,
|
|
3315
|
-
period: data.period
|
|
3316
|
-
},
|
|
3317
|
-
errors: {
|
|
3318
|
-
400: 'Invalid groupBy or period',
|
|
3319
|
-
401: 'User not authenticated'
|
|
3320
3783
|
}
|
|
3321
3784
|
});
|
|
3322
3785
|
}
|
|
3323
|
-
}
|
|
3324
3786
|
|
|
3325
|
-
export class InvestmentService {
|
|
3326
3787
|
/**
|
|
3327
|
-
*
|
|
3328
|
-
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3788
|
+
* Match platforms by name or alias
|
|
3329
3789
|
* @param data The data for the request.
|
|
3330
|
-
* @param data.
|
|
3331
|
-
* @param data.
|
|
3332
|
-
* @
|
|
3333
|
-
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
3334
|
-
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3790
|
+
* @param data.q Search query — Chinese name, English name, or abbreviation
|
|
3791
|
+
* @param data.region Region code (ISO 3166-1 alpha-2) that biases within-tier ordering (local-region platforms first); also the intended categoryOverrides key. Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
|
|
3792
|
+
* @returns PlatformMatchResponseDto Matching platforms with overall match type and truncation flag
|
|
3335
3793
|
* @throws ApiError
|
|
3336
3794
|
*/
|
|
3337
|
-
public static
|
|
3338
|
-
data:
|
|
3339
|
-
): CancelablePromise<
|
|
3795
|
+
public static platformControllerMatchPlatforms(
|
|
3796
|
+
data: PlatformControllerMatchPlatformsData
|
|
3797
|
+
): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
|
|
3340
3798
|
return __request(OpenAPI, {
|
|
3341
3799
|
method: 'GET',
|
|
3342
|
-
url: '/api/v1/
|
|
3343
|
-
path: {
|
|
3344
|
-
region: data.region
|
|
3345
|
-
},
|
|
3800
|
+
url: '/api/v1/bean/platforms/match',
|
|
3346
3801
|
query: {
|
|
3347
|
-
|
|
3348
|
-
accountId: data.accountId,
|
|
3349
|
-
method: data.method
|
|
3350
|
-
},
|
|
3351
|
-
errors: {
|
|
3352
|
-
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
3353
|
-
401: 'User not authenticated'
|
|
3354
|
-
}
|
|
3355
|
-
});
|
|
3356
|
-
}
|
|
3357
|
-
}
|
|
3358
|
-
|
|
3359
|
-
export class BeanPricesService {
|
|
3360
|
-
/**
|
|
3361
|
-
* Create a new price
|
|
3362
|
-
* Creates a new price entry for the authenticated user
|
|
3363
|
-
* @param data The data for the request.
|
|
3364
|
-
* @param data.region Region code for tenant context
|
|
3365
|
-
* @param data.requestBody
|
|
3366
|
-
* @returns PriceResponseDto Price created successfully
|
|
3367
|
-
* @throws ApiError
|
|
3368
|
-
*/
|
|
3369
|
-
public static priceControllerCreate(
|
|
3370
|
-
data: PriceControllerCreateData
|
|
3371
|
-
): CancelablePromise<PriceControllerCreateResponse> {
|
|
3372
|
-
return __request(OpenAPI, {
|
|
3373
|
-
method: 'POST',
|
|
3374
|
-
url: '/api/v1/{region}/bean/prices',
|
|
3375
|
-
path: {
|
|
3802
|
+
q: data.q,
|
|
3376
3803
|
region: data.region
|
|
3377
|
-
},
|
|
3378
|
-
body: data.requestBody,
|
|
3379
|
-
mediaType: 'application/json',
|
|
3380
|
-
errors: {
|
|
3381
|
-
404: 'Currency or quoteCurrency commodity not found',
|
|
3382
|
-
409: 'Price already exists for this currency pair and date'
|
|
3383
3804
|
}
|
|
3384
3805
|
});
|
|
3385
3806
|
}
|
|
3386
3807
|
|
|
3387
3808
|
/**
|
|
3388
|
-
*
|
|
3389
|
-
* Returns all price entries for the authenticated user with optional filtering
|
|
3809
|
+
* Get the region and candidate account standards for a platform
|
|
3390
3810
|
* @param data The data for the request.
|
|
3391
|
-
* @param data.
|
|
3392
|
-
* @param data.
|
|
3393
|
-
* @param data.
|
|
3394
|
-
* @
|
|
3395
|
-
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
3396
|
-
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
3397
|
-
* @param data.page Page number for pagination (default: 1)
|
|
3398
|
-
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
3399
|
-
* @returns PriceListResponseDto Prices retrieved successfully
|
|
3811
|
+
* @param data.id Platform ID (from a match result)
|
|
3812
|
+
* @param data.region Region code (ISO 3166-1 alpha-2, case-insensitive). Required for global platforms (countryCode null) — resolved as their template region; ignored when the platform has its own countryCode.
|
|
3813
|
+
* @param data.type Filter templates by account type (path first segment)
|
|
3814
|
+
* @returns PlatformStandardsResponseDto Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
|
|
3400
3815
|
* @throws ApiError
|
|
3401
3816
|
*/
|
|
3402
|
-
public static
|
|
3403
|
-
data:
|
|
3404
|
-
): CancelablePromise<
|
|
3817
|
+
public static platformControllerGetPlatformStandards(
|
|
3818
|
+
data: PlatformControllerGetPlatformStandardsData
|
|
3819
|
+
): CancelablePromise<PlatformControllerGetPlatformStandardsResponse> {
|
|
3405
3820
|
return __request(OpenAPI, {
|
|
3406
3821
|
method: 'GET',
|
|
3407
|
-
url: '/api/v1/{
|
|
3822
|
+
url: '/api/v1/bean/platforms/{id}/standards',
|
|
3408
3823
|
path: {
|
|
3409
|
-
|
|
3824
|
+
id: data.id
|
|
3410
3825
|
},
|
|
3411
3826
|
query: {
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
dateFrom: data.dateFrom,
|
|
3415
|
-
dateTo: data.dateTo,
|
|
3416
|
-
search: data.search,
|
|
3417
|
-
page: data.page,
|
|
3418
|
-
limit: data.limit
|
|
3419
|
-
}
|
|
3420
|
-
});
|
|
3421
|
-
}
|
|
3422
|
-
|
|
3423
|
-
/**
|
|
3424
|
-
* Get price by ID
|
|
3425
|
-
* Returns a single price entry by its ID
|
|
3426
|
-
* @param data The data for the request.
|
|
3427
|
-
* @param data.id Price ID
|
|
3428
|
-
* @param data.region Region code for tenant context
|
|
3429
|
-
* @returns PriceResponseDto Price retrieved successfully
|
|
3430
|
-
* @throws ApiError
|
|
3431
|
-
*/
|
|
3432
|
-
public static priceControllerFindOne(
|
|
3433
|
-
data: PriceControllerFindOneData
|
|
3434
|
-
): CancelablePromise<PriceControllerFindOneResponse> {
|
|
3435
|
-
return __request(OpenAPI, {
|
|
3436
|
-
method: 'GET',
|
|
3437
|
-
url: '/api/v1/{region}/bean/prices/{id}',
|
|
3438
|
-
path: {
|
|
3439
|
-
id: data.id,
|
|
3440
|
-
region: data.region
|
|
3441
|
-
},
|
|
3442
|
-
errors: {
|
|
3443
|
-
404: 'Price not found'
|
|
3827
|
+
region: data.region,
|
|
3828
|
+
type: data.type
|
|
3444
3829
|
}
|
|
3445
3830
|
});
|
|
3446
3831
|
}
|
|
3447
3832
|
|
|
3448
3833
|
/**
|
|
3449
|
-
* Update a
|
|
3450
|
-
* Updates an existing price entry
|
|
3834
|
+
* Update a platform
|
|
3451
3835
|
* @param data The data for the request.
|
|
3452
|
-
* @param data.id
|
|
3453
|
-
* @param data.region Region code for tenant context
|
|
3836
|
+
* @param data.id Platform ID
|
|
3454
3837
|
* @param data.requestBody
|
|
3455
|
-
* @returns
|
|
3838
|
+
* @returns unknown Platform updated successfully
|
|
3456
3839
|
* @throws ApiError
|
|
3457
3840
|
*/
|
|
3458
|
-
public static
|
|
3459
|
-
data:
|
|
3460
|
-
): CancelablePromise<
|
|
3841
|
+
public static platformControllerUpdate(
|
|
3842
|
+
data: PlatformControllerUpdateData
|
|
3843
|
+
): CancelablePromise<PlatformControllerUpdateResponse> {
|
|
3461
3844
|
return __request(OpenAPI, {
|
|
3462
3845
|
method: 'PUT',
|
|
3463
|
-
url: '/api/v1/
|
|
3846
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3464
3847
|
path: {
|
|
3465
|
-
id: data.id
|
|
3466
|
-
region: data.region
|
|
3848
|
+
id: data.id
|
|
3467
3849
|
},
|
|
3468
3850
|
body: data.requestBody,
|
|
3469
3851
|
mediaType: 'application/json',
|
|
3470
3852
|
errors: {
|
|
3471
|
-
404: '
|
|
3472
|
-
409: 'Updated price conflicts with existing price'
|
|
3853
|
+
404: 'Platform not found'
|
|
3473
3854
|
}
|
|
3474
3855
|
});
|
|
3475
3856
|
}
|
|
3476
3857
|
|
|
3477
3858
|
/**
|
|
3478
|
-
* Delete a
|
|
3479
|
-
* Deletes a price entry (hard delete)
|
|
3859
|
+
* Delete a platform
|
|
3480
3860
|
* @param data The data for the request.
|
|
3481
|
-
* @param data.id
|
|
3482
|
-
* @
|
|
3483
|
-
* @returns void Price deleted successfully
|
|
3861
|
+
* @param data.id Platform ID
|
|
3862
|
+
* @returns void Platform deleted successfully
|
|
3484
3863
|
* @throws ApiError
|
|
3485
3864
|
*/
|
|
3486
|
-
public static
|
|
3487
|
-
data:
|
|
3488
|
-
): CancelablePromise<
|
|
3865
|
+
public static platformControllerDelete(
|
|
3866
|
+
data: PlatformControllerDeleteData
|
|
3867
|
+
): CancelablePromise<PlatformControllerDeleteResponse> {
|
|
3489
3868
|
return __request(OpenAPI, {
|
|
3490
3869
|
method: 'DELETE',
|
|
3491
|
-
url: '/api/v1/
|
|
3870
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3492
3871
|
path: {
|
|
3493
|
-
id: data.id
|
|
3494
|
-
region: data.region
|
|
3872
|
+
id: data.id
|
|
3495
3873
|
},
|
|
3496
3874
|
errors: {
|
|
3497
|
-
404: '
|
|
3875
|
+
404: 'Platform not found'
|
|
3498
3876
|
}
|
|
3499
3877
|
});
|
|
3500
3878
|
}
|
|
3879
|
+
}
|
|
3501
3880
|
|
|
3881
|
+
export class DashboardService {
|
|
3502
3882
|
/**
|
|
3503
|
-
*
|
|
3504
|
-
*
|
|
3883
|
+
* Get net worth overview
|
|
3884
|
+
* Returns total net worth with breakdown of assets and liabilities
|
|
3505
3885
|
* @param data The data for the request.
|
|
3506
3886
|
* @param data.region Region code for tenant context
|
|
3507
|
-
* @param data.
|
|
3508
|
-
* @returns
|
|
3887
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3888
|
+
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3509
3889
|
* @throws ApiError
|
|
3510
3890
|
*/
|
|
3511
|
-
public static
|
|
3512
|
-
data:
|
|
3513
|
-
): CancelablePromise<
|
|
3891
|
+
public static dashboardControllerGetNetWorth(
|
|
3892
|
+
data: DashboardControllerGetNetWorthData
|
|
3893
|
+
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3514
3894
|
return __request(OpenAPI, {
|
|
3515
|
-
method: '
|
|
3516
|
-
url: '/api/v1/{region}/
|
|
3895
|
+
method: 'GET',
|
|
3896
|
+
url: '/api/v1/{region}/dashboard/net-worth',
|
|
3517
3897
|
path: {
|
|
3518
3898
|
region: data.region
|
|
3519
3899
|
},
|
|
3520
|
-
|
|
3521
|
-
|
|
3900
|
+
query: {
|
|
3901
|
+
date: data.date
|
|
3902
|
+
},
|
|
3903
|
+
errors: {
|
|
3904
|
+
401: 'User not authenticated'
|
|
3905
|
+
}
|
|
3522
3906
|
});
|
|
3523
3907
|
}
|
|
3524
|
-
}
|
|
3525
3908
|
|
|
3526
|
-
export class ReportingService {
|
|
3527
3909
|
/**
|
|
3528
|
-
* Get
|
|
3529
|
-
*
|
|
3530
|
-
* Returns time series data of portfolio net worth.
|
|
3531
|
-
*
|
|
3532
|
-
* **Multi-currency Support:**
|
|
3533
|
-
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
3534
|
-
* - `byCurrency` - Separate time series grouped by currency
|
|
3535
|
-
* - `warnings` - Exchange rate warnings if conversion failed
|
|
3536
|
-
*
|
|
3537
|
-
* **Parameters:**
|
|
3538
|
-
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
3539
|
-
* - `granularity`: Data granularity (day, week, month)
|
|
3540
|
-
*
|
|
3910
|
+
* Get accounts grouped by platform
|
|
3911
|
+
* Returns accounts with balances grouped by financial platform
|
|
3541
3912
|
* @param data The data for the request.
|
|
3542
3913
|
* @param data.region Region code for tenant context
|
|
3543
|
-
* @param data.
|
|
3544
|
-
* @param data.
|
|
3545
|
-
* @
|
|
3914
|
+
* @param data.groupBy Grouping strategy
|
|
3915
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3916
|
+
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3917
|
+
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3546
3918
|
* @throws ApiError
|
|
3547
3919
|
*/
|
|
3548
|
-
public static
|
|
3549
|
-
data:
|
|
3550
|
-
): CancelablePromise<
|
|
3920
|
+
public static dashboardControllerGetAccounts(
|
|
3921
|
+
data: DashboardControllerGetAccountsData
|
|
3922
|
+
): CancelablePromise<DashboardControllerGetAccountsResponse> {
|
|
3551
3923
|
return __request(OpenAPI, {
|
|
3552
3924
|
method: 'GET',
|
|
3553
|
-
url: '/api/v1/{region}/
|
|
3925
|
+
url: '/api/v1/{region}/dashboard/accounts',
|
|
3554
3926
|
path: {
|
|
3555
3927
|
region: data.region
|
|
3556
3928
|
},
|
|
3557
3929
|
query: {
|
|
3558
|
-
|
|
3559
|
-
|
|
3930
|
+
groupBy: data.groupBy,
|
|
3931
|
+
date: data.date,
|
|
3932
|
+
accountId: data.accountId
|
|
3560
3933
|
},
|
|
3561
3934
|
errors: {
|
|
3562
3935
|
401: 'User not authenticated'
|
|
@@ -3565,116 +3938,95 @@ export class ReportingService {
|
|
|
3565
3938
|
}
|
|
3566
3939
|
|
|
3567
3940
|
/**
|
|
3568
|
-
* Get cash
|
|
3569
|
-
*
|
|
3570
|
-
* Monthly income / expense / netSavings over a fixed N-month window
|
|
3571
|
-
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
3572
|
-
*
|
|
3573
|
-
* **Parameters:**
|
|
3574
|
-
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
3575
|
-
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
3576
|
-
*
|
|
3941
|
+
* Get cash flow summary
|
|
3942
|
+
* Returns income, expenses, and savings for a monthly period
|
|
3577
3943
|
* @param data The data for the request.
|
|
3944
|
+
* @param data.period Period in YYYY-MM format
|
|
3578
3945
|
* @param data.region Region code for tenant context
|
|
3579
|
-
* @
|
|
3580
|
-
* @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
3581
|
-
* @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
|
|
3946
|
+
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3582
3947
|
* @throws ApiError
|
|
3583
3948
|
*/
|
|
3584
|
-
public static
|
|
3585
|
-
data:
|
|
3586
|
-
): CancelablePromise<
|
|
3949
|
+
public static dashboardControllerGetCashFlow(
|
|
3950
|
+
data: DashboardControllerGetCashFlowData
|
|
3951
|
+
): CancelablePromise<DashboardControllerGetCashFlowResponse> {
|
|
3587
3952
|
return __request(OpenAPI, {
|
|
3588
3953
|
method: 'GET',
|
|
3589
|
-
url: '/api/v1/{region}/
|
|
3954
|
+
url: '/api/v1/{region}/dashboard/cash-flow',
|
|
3590
3955
|
path: {
|
|
3591
3956
|
region: data.region
|
|
3592
3957
|
},
|
|
3593
3958
|
query: {
|
|
3594
|
-
period: data.period
|
|
3595
|
-
granularity: data.granularity
|
|
3959
|
+
period: data.period
|
|
3596
3960
|
},
|
|
3597
3961
|
errors: {
|
|
3962
|
+
400: 'Invalid period format',
|
|
3598
3963
|
401: 'User not authenticated'
|
|
3599
3964
|
}
|
|
3600
3965
|
});
|
|
3601
3966
|
}
|
|
3602
3967
|
|
|
3603
3968
|
/**
|
|
3604
|
-
*
|
|
3605
|
-
*
|
|
3606
|
-
* Manually generate a portfolio snapshot for a specific date.
|
|
3607
|
-
*
|
|
3608
|
-
* **Multi-currency Support:**
|
|
3609
|
-
* - Fetches balances grouped by currency
|
|
3610
|
-
* - Uses user's baseCurrency setting for conversion
|
|
3611
|
-
* - Stores exchange rates and warnings
|
|
3612
|
-
*
|
|
3613
|
-
* **Use Cases:**
|
|
3614
|
-
* - Testing snapshot generation
|
|
3615
|
-
* - Force regeneration after data correction
|
|
3616
|
-
* - Initial setup for new users
|
|
3617
|
-
*
|
|
3969
|
+
* Get expenses/income grouped by functional category
|
|
3970
|
+
* Returns amounts pre-aggregated by functional category (account-path Group segment) with server-side multi-currency conversion. flow=expense (default) aggregates ^Expenses: accounts; flow=income aggregates ^Income: accounts (issue #518)
|
|
3618
3971
|
* @param data The data for the request.
|
|
3619
3972
|
* @param data.region Region code for tenant context
|
|
3620
|
-
* @param data.
|
|
3621
|
-
* @
|
|
3973
|
+
* @param data.groupBy Grouping strategy
|
|
3974
|
+
* @param data.period Time window (1m = current calendar month)
|
|
3975
|
+
* @param data.flow Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
3976
|
+
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3622
3977
|
* @throws ApiError
|
|
3623
3978
|
*/
|
|
3624
|
-
public static
|
|
3625
|
-
data:
|
|
3626
|
-
): CancelablePromise<
|
|
3979
|
+
public static dashboardControllerGetExpenses(
|
|
3980
|
+
data: DashboardControllerGetExpensesData
|
|
3981
|
+
): CancelablePromise<DashboardControllerGetExpensesResponse> {
|
|
3627
3982
|
return __request(OpenAPI, {
|
|
3628
|
-
method: '
|
|
3629
|
-
url: '/api/v1/{region}/
|
|
3983
|
+
method: 'GET',
|
|
3984
|
+
url: '/api/v1/{region}/dashboard/expenses',
|
|
3630
3985
|
path: {
|
|
3631
3986
|
region: data.region
|
|
3632
3987
|
},
|
|
3633
|
-
|
|
3634
|
-
|
|
3988
|
+
query: {
|
|
3989
|
+
groupBy: data.groupBy,
|
|
3990
|
+
period: data.period,
|
|
3991
|
+
flow: data.flow
|
|
3992
|
+
},
|
|
3635
3993
|
errors: {
|
|
3636
|
-
400: 'Invalid
|
|
3994
|
+
400: 'Invalid groupBy or period',
|
|
3637
3995
|
401: 'User not authenticated'
|
|
3638
3996
|
}
|
|
3639
3997
|
});
|
|
3640
3998
|
}
|
|
3999
|
+
}
|
|
3641
4000
|
|
|
4001
|
+
export class InvestmentService {
|
|
3642
4002
|
/**
|
|
3643
|
-
*
|
|
3644
|
-
*
|
|
3645
|
-
* Generate snapshots for a date range (historical data backfill).
|
|
3646
|
-
*
|
|
3647
|
-
* **Multi-currency Support:**
|
|
3648
|
-
* - Each snapshot includes multi-currency data
|
|
3649
|
-
* - Uses exchange rates available at generation time
|
|
3650
|
-
* - Warnings stored for missing exchange rates
|
|
3651
|
-
*
|
|
3652
|
-
* **Best Practices:**
|
|
3653
|
-
* - Use for initial setup after account configuration
|
|
3654
|
-
* - Run during low-traffic periods for large date ranges
|
|
3655
|
-
* - Existing snapshots are skipped (not regenerated)
|
|
3656
|
-
*
|
|
4003
|
+
* Get per-holding unrealized + realized P&L
|
|
4004
|
+
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3657
4005
|
* @param data The data for the request.
|
|
3658
4006
|
* @param data.region Region code for tenant context
|
|
3659
|
-
* @param data.
|
|
3660
|
-
* @
|
|
4007
|
+
* @param data.asOf As-of date (ISO 8601), defaults to today
|
|
4008
|
+
* @param data.accountId Scope to a single account
|
|
4009
|
+
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
4010
|
+
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3661
4011
|
* @throws ApiError
|
|
3662
4012
|
*/
|
|
3663
|
-
public static
|
|
3664
|
-
data:
|
|
3665
|
-
): CancelablePromise<
|
|
4013
|
+
public static holdingPnlControllerGetHoldingPnl(
|
|
4014
|
+
data: HoldingPnlControllerGetHoldingPnlData
|
|
4015
|
+
): CancelablePromise<HoldingPnlControllerGetHoldingPnlResponse> {
|
|
3666
4016
|
return __request(OpenAPI, {
|
|
3667
|
-
method: '
|
|
3668
|
-
url: '/api/v1/{region}/
|
|
4017
|
+
method: 'GET',
|
|
4018
|
+
url: '/api/v1/{region}/investment/holdings/pnl',
|
|
3669
4019
|
path: {
|
|
3670
4020
|
region: data.region
|
|
3671
4021
|
},
|
|
3672
|
-
|
|
3673
|
-
|
|
4022
|
+
query: {
|
|
4023
|
+
asOf: data.asOf,
|
|
4024
|
+
accountId: data.accountId,
|
|
4025
|
+
method: data.method
|
|
4026
|
+
},
|
|
3674
4027
|
errors: {
|
|
3675
|
-
400: 'Invalid date format or
|
|
3676
|
-
401: 'User not authenticated'
|
|
3677
|
-
409: 'Backfill already in progress for this user'
|
|
4028
|
+
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
4029
|
+
401: 'User not authenticated'
|
|
3678
4030
|
}
|
|
3679
4031
|
});
|
|
3680
4032
|
}
|
|
@@ -3703,7 +4055,7 @@ export class AuthService {
|
|
|
3703
4055
|
* Anonymous login with access token
|
|
3704
4056
|
* @param data The data for the request.
|
|
3705
4057
|
* @param data.requestBody
|
|
3706
|
-
* @returns
|
|
4058
|
+
* @returns AnonymousLoginResponseDto Login successful
|
|
3707
4059
|
* @throws ApiError
|
|
3708
4060
|
*/
|
|
3709
4061
|
public static authControllerAccessTokenLogin(
|
|
@@ -3721,15 +4073,52 @@ export class AuthService {
|
|
|
3721
4073
|
}
|
|
3722
4074
|
}
|
|
3723
4075
|
|
|
3724
|
-
export class
|
|
4076
|
+
export class CommunityService {
|
|
4077
|
+
/**
|
|
4078
|
+
* Relay a sanitized parser-contribution payload
|
|
4079
|
+
* A server-side bot re-sanitizes the payload and opens an issue on the target repository; the issue URL is returned. The payload is never persisted or logged (forward-and-drop).
|
|
4080
|
+
* @param data The data for the request.
|
|
4081
|
+
* @param data.region Region code for tenant context (routing only; the institution region rides in the payload meta)
|
|
4082
|
+
* @param data.requestBody
|
|
4083
|
+
* @returns ParserContributionRelayResponseDto Issue created by the bot
|
|
4084
|
+
* @throws ApiError
|
|
4085
|
+
*/
|
|
4086
|
+
public static parserContributionControllerCreate(
|
|
4087
|
+
data: ParserContributionControllerCreateData
|
|
4088
|
+
): CancelablePromise<ParserContributionControllerCreateResponse> {
|
|
4089
|
+
return __request(OpenAPI, {
|
|
4090
|
+
method: 'POST',
|
|
4091
|
+
url: '/api/v1/{region}/community/parser-contributions',
|
|
4092
|
+
path: {
|
|
4093
|
+
region: data.region
|
|
4094
|
+
},
|
|
4095
|
+
body: data.requestBody,
|
|
4096
|
+
mediaType: 'application/json',
|
|
4097
|
+
errors: {
|
|
4098
|
+
401: 'Unauthorized',
|
|
4099
|
+
422: 'Validation failed (institution slug, empty samples, row/cell size limits)',
|
|
4100
|
+
429: 'Rate limited (5 submissions per user per hour)',
|
|
4101
|
+
501: 'Relay not configured on this deployment — clients fall back to the clipboard flow',
|
|
4102
|
+
502: 'GitHub bot failure (upstream), safe to retry'
|
|
4103
|
+
}
|
|
4104
|
+
});
|
|
4105
|
+
}
|
|
4106
|
+
}
|
|
4107
|
+
|
|
4108
|
+
export class AdminCacheService {
|
|
3725
4109
|
/**
|
|
3726
|
-
*
|
|
4110
|
+
* Flush entire cache (L1 + L2)
|
|
4111
|
+
* Clears ALL cache entries across ALL namespaces and users. Use only for emergency cache corruption recovery, maintenance-window refresh, or development resets.
|
|
4112
|
+
* @returns unknown Cache flushed successfully
|
|
3727
4113
|
* @throws ApiError
|
|
3728
4114
|
*/
|
|
3729
4115
|
public static cacheControllerFlushCache(): CancelablePromise<CacheControllerFlushCacheResponse> {
|
|
3730
4116
|
return __request(OpenAPI, {
|
|
3731
4117
|
method: 'POST',
|
|
3732
|
-
url: '/api/v1/cache/flush'
|
|
4118
|
+
url: '/api/v1/cache/flush',
|
|
4119
|
+
errors: {
|
|
4120
|
+
403: 'Admin access required'
|
|
4121
|
+
}
|
|
3733
4122
|
});
|
|
3734
4123
|
}
|
|
3735
4124
|
}
|
|
@@ -3890,3 +4279,53 @@ export class InfoService {
|
|
|
3890
4279
|
});
|
|
3891
4280
|
}
|
|
3892
4281
|
}
|
|
4282
|
+
|
|
4283
|
+
export class MarketDataService {
|
|
4284
|
+
/**
|
|
4285
|
+
* Search market symbols by name or code
|
|
4286
|
+
* Ranked search over the openbb catalog. Empty `q` returns [].
|
|
4287
|
+
* @param data The data for the request.
|
|
4288
|
+
* @param data.q Search term — matched against symbol and instrument name. Empty string returns [].
|
|
4289
|
+
* @param data.limit Maximum number of results (clamped 1..50)
|
|
4290
|
+
* @param data.exchange Filter by exchange code (e.g. US, HK, SS, SZ)
|
|
4291
|
+
* @param data.assetType Filter by OpenBB asset_type (e.g. stock, etf)
|
|
4292
|
+
* @returns SymbolSearchResultDto Ranked search results
|
|
4293
|
+
* @throws ApiError
|
|
4294
|
+
*/
|
|
4295
|
+
public static symbolControllerSearch(
|
|
4296
|
+
data: SymbolControllerSearchData
|
|
4297
|
+
): CancelablePromise<SymbolControllerSearchResponse> {
|
|
4298
|
+
return __request(OpenAPI, {
|
|
4299
|
+
method: 'GET',
|
|
4300
|
+
url: '/api/v1/market/symbols/search',
|
|
4301
|
+
query: {
|
|
4302
|
+
q: data.q,
|
|
4303
|
+
limit: data.limit,
|
|
4304
|
+
exchange: data.exchange,
|
|
4305
|
+
assetType: data.assetType
|
|
4306
|
+
}
|
|
4307
|
+
});
|
|
4308
|
+
}
|
|
4309
|
+
|
|
4310
|
+
/**
|
|
4311
|
+
* Get a market symbol quote
|
|
4312
|
+
* @param data The data for the request.
|
|
4313
|
+
* @param data.symbol
|
|
4314
|
+
* @returns SymbolQuoteDto Symbol quote
|
|
4315
|
+
* @throws ApiError
|
|
4316
|
+
*/
|
|
4317
|
+
public static symbolControllerGetQuote(
|
|
4318
|
+
data: SymbolControllerGetQuoteData
|
|
4319
|
+
): CancelablePromise<SymbolControllerGetQuoteResponse> {
|
|
4320
|
+
return __request(OpenAPI, {
|
|
4321
|
+
method: 'GET',
|
|
4322
|
+
url: '/api/v1/market/symbols/{symbol}/quote',
|
|
4323
|
+
path: {
|
|
4324
|
+
symbol: data.symbol
|
|
4325
|
+
},
|
|
4326
|
+
errors: {
|
|
4327
|
+
404: 'Symbol not found in the openbb catalog'
|
|
4328
|
+
}
|
|
4329
|
+
});
|
|
4330
|
+
}
|
|
4331
|
+
}
|