@firela/api-types 0.0.0-canary.7b647d33 → 0.0.0-canary.824fea47

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 CHANGED
@@ -27,13 +27,9 @@ type CreateAccountDto = {
27
27
  */
28
28
  path: string;
29
29
  /**
30
- * Display name to distinguish accounts at the same path (default: "")
30
+ * Account open date (server defaults to today)
31
31
  */
32
- displayName?: string;
33
- /**
34
- * Account open date
35
- */
36
- openDate: string;
32
+ openDate?: string;
37
33
  /**
38
34
  * Allowed currencies (null = no restriction)
39
35
  */
@@ -50,18 +46,14 @@ type CreateAccountDto = {
50
46
  * Whether this is a custom (user-created) account
51
47
  */
52
48
  isCustom?: boolean;
53
- /**
54
- * i18n key for display name (overrides template)
55
- */
56
- i18nKey?: string;
57
49
  /**
58
50
  * Icon identifier (overrides template)
59
51
  */
60
52
  icon?: string;
61
53
  /**
62
- * Additional metadata
54
+ * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
63
55
  */
64
- openMeta?: {
56
+ openDirectiveMeta?: {
65
57
  [key: string]: unknown;
66
58
  };
67
59
  /**
@@ -82,14 +74,14 @@ type AccountResponseDto = {
82
74
  * Account path (hierarchical, colon-separated)
83
75
  */
84
76
  path: string;
85
- /**
86
- * Display name distinguishing multiple accounts at the same path
87
- */
88
- displayName: string;
89
77
  /**
90
78
  * Account type (root segment)
91
79
  */
92
80
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
81
+ /**
82
+ * Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
83
+ */
84
+ assetSubClass?: 'DEPOSIT' | 'CASH' | 'MONEY_MARKET_FUND' | 'STOCK' | 'ETF' | 'MUTUAL_FUND' | 'EQUITY_COMPENSATION' | 'GOVERNMENT_BOND' | 'CORPORATE_BOND' | 'BOND_FUND' | 'PRIMARY_RESIDENCE' | 'INVESTMENT_PROPERTY' | 'REIT' | 'GOLD' | 'SILVER' | 'PRECIOUS_METAL' | 'PRECIOUS_METAL_FUND' | 'COMMODITY' | 'COMMODITY_FUND' | 'CRYPTOCURRENCY' | 'RETIREMENT_ACCOUNT' | 'HEALTH_ACCOUNT' | 'EDUCATION_ACCOUNT' | 'INSURANCE' | 'PRIVATE_EQUITY' | 'HEDGE_FUND' | 'COLLECTIBLES' | 'MORTGAGE' | 'STUDENT_LOAN' | 'CREDIT_CARD' | 'PERSONAL_LOAN' | 'OTHER' | null;
93
85
  /**
94
86
  * Account status
95
87
  */
@@ -119,17 +111,17 @@ type AccountResponseDto = {
119
111
  */
120
112
  isCustom: boolean;
121
113
  /**
122
- * i18n key for display name
114
+ * Localized display name (ADR-0114, read-time projection)
123
115
  */
124
- i18nKey?: string;
116
+ displayName?: string;
125
117
  /**
126
118
  * Icon identifier
127
119
  */
128
120
  icon?: string;
129
121
  /**
130
- * Account metadata
122
+ * Open directive metadata (ADR-0115 Decision 9)
131
123
  */
132
- openMeta?: {
124
+ openDirectiveMeta?: {
133
125
  [key: string]: unknown;
134
126
  };
135
127
  /**
@@ -157,6 +149,10 @@ type AccountResponseDto = {
157
149
  * Account type (root segment)
158
150
  */
159
151
  type type = 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
152
+ /**
153
+ * Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
154
+ */
155
+ type assetSubClass = 'DEPOSIT' | 'CASH' | 'MONEY_MARKET_FUND' | 'STOCK' | 'ETF' | 'MUTUAL_FUND' | 'EQUITY_COMPENSATION' | 'GOVERNMENT_BOND' | 'CORPORATE_BOND' | 'BOND_FUND' | 'PRIMARY_RESIDENCE' | 'INVESTMENT_PROPERTY' | 'REIT' | 'GOLD' | 'SILVER' | 'PRECIOUS_METAL' | 'PRECIOUS_METAL_FUND' | 'COMMODITY' | 'COMMODITY_FUND' | 'CRYPTOCURRENCY' | 'RETIREMENT_ACCOUNT' | 'HEALTH_ACCOUNT' | 'EDUCATION_ACCOUNT' | 'INSURANCE' | 'PRIVATE_EQUITY' | 'HEDGE_FUND' | 'COLLECTIBLES' | 'MORTGAGE' | 'STUDENT_LOAN' | 'CREDIT_CARD' | 'PERSONAL_LOAN' | 'OTHER';
160
156
  /**
161
157
  * Account status
162
158
  */
@@ -172,10 +168,6 @@ type AccountListResponseDto = {
172
168
  total: number;
173
169
  };
174
170
  type UpdateAccountDto = {
175
- /**
176
- * Display name to distinguish accounts at the same path
177
- */
178
- displayName?: string;
179
171
  /**
180
172
  * Allowed currencies (null = no restriction)
181
173
  */
@@ -184,18 +176,14 @@ type UpdateAccountDto = {
184
176
  * Booking method for cost basis
185
177
  */
186
178
  bookingMethod?: 'FIFO' | 'LIFO' | 'HIFO' | 'AVERAGE' | 'STRICT' | 'STRICT_WITH_SIZE' | 'NONE';
187
- /**
188
- * i18n key for display name
189
- */
190
- i18nKey?: string;
191
179
  /**
192
180
  * Icon identifier
193
181
  */
194
182
  icon?: string;
195
183
  /**
196
- * Additional metadata (merged with existing)
184
+ * Open directive metadata (merged with existing; NOT an opening-balance amount)
197
185
  */
198
- openMeta?: {
186
+ openDirectiveMeta?: {
199
187
  [key: string]: unknown;
200
188
  };
201
189
  /**
@@ -221,6 +209,26 @@ type ReopenAccountDto = {
221
209
  */
222
210
  reopenDate?: string;
223
211
  };
212
+ type CreateOpeningBalanceDto = {
213
+ /**
214
+ * Opening balance amount (non-negative)
215
+ */
216
+ amount: number;
217
+ /**
218
+ * Currency code
219
+ */
220
+ currency: string;
221
+ /**
222
+ * Opening-balance date (defaults to now)
223
+ */
224
+ date?: string;
225
+ };
226
+ type OpeningBalanceResultDto = {
227
+ /**
228
+ * Created opening-balance transaction id.
229
+ */
230
+ transactionId: string;
231
+ };
224
232
  type AccountStandardResponseDto = {
225
233
  /**
226
234
  * Account path (hierarchical, colon-separated)
@@ -230,10 +238,6 @@ type AccountStandardResponseDto = {
230
238
  * Account type in Beancount hierarchy
231
239
  */
232
240
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
233
- /**
234
- * i18n key for localized display name
235
- */
236
- i18nKey: string;
237
241
  /**
238
242
  * Short localized display name
239
243
  */
@@ -266,10 +270,6 @@ type AccountStandardListResponseDto = {
266
270
  region: string;
267
271
  };
268
272
  type TemplateMetadataDto = {
269
- /**
270
- * Whether this path can be extended
271
- */
272
- extendable: boolean;
273
273
  /**
274
274
  * Root account type
275
275
  */
@@ -779,6 +779,48 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
779
779
  * Transaction status
780
780
  */
781
781
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
782
+ type BalanceByCurrencyDto = {
783
+ /**
784
+ * ISO 4217 currency code
785
+ */
786
+ currency: string;
787
+ /**
788
+ * Balance amount
789
+ */
790
+ balance: string;
791
+ };
792
+ type ExchangeRateWarningDto = {
793
+ /**
794
+ * Warning type
795
+ */
796
+ type: string;
797
+ /**
798
+ * Currency without exchange rate
799
+ */
800
+ currency: string;
801
+ /**
802
+ * Total amount affected
803
+ */
804
+ totalAmount: string;
805
+ };
806
+ type TransactionListSummaryDto = {
807
+ /**
808
+ * Partial converted total in base currency (rated currencies only, raw Beancount sign). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
809
+ */
810
+ totalAmount: string;
811
+ /**
812
+ * Base currency (ISO 4217)
813
+ */
814
+ currency: string;
815
+ /**
816
+ * Raw (unconverted) balance per currency
817
+ */
818
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
819
+ /**
820
+ * Currencies missing an FX rate (omitted when empty)
821
+ */
822
+ warnings?: Array<ExchangeRateWarningDto>;
823
+ };
782
824
  type TransactionListResponseDto = {
783
825
  /**
784
826
  * List of transactions
@@ -796,6 +838,10 @@ type TransactionListResponseDto = {
796
838
  * Number of items skipped
797
839
  */
798
840
  offset: number;
841
+ /**
842
+ * Amount summary for the full filtered set (#514). Present only when the request has a single account OR category viewpoint; omitted for search-only / plain-list / dual-perspective requests.
843
+ */
844
+ summary?: TransactionListSummaryDto;
799
845
  };
800
846
  type TagSuggestionDto = {
801
847
  /**
@@ -1642,6 +1688,104 @@ type UpdateCommodityDto = {
1642
1688
  [key: string]: unknown;
1643
1689
  };
1644
1690
  };
1691
+ type CreateBeanPriceDto = {
1692
+ /**
1693
+ * Currency being priced (e.g., USD, AAPL, BTC)
1694
+ */
1695
+ currency: string;
1696
+ /**
1697
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1698
+ */
1699
+ quoteCurrency: string;
1700
+ /**
1701
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1702
+ */
1703
+ amount: number;
1704
+ /**
1705
+ * Price date (ISO 8601 format)
1706
+ */
1707
+ date: string;
1708
+ /**
1709
+ * Metadata (validated by Zod schema, max field lengths enforced)
1710
+ */
1711
+ metadata?: {
1712
+ [key: string]: unknown;
1713
+ };
1714
+ };
1715
+ type PriceResponseDto = {
1716
+ /**
1717
+ * Unique identifier
1718
+ */
1719
+ id: string;
1720
+ /**
1721
+ * User ID (owner of the price)
1722
+ */
1723
+ userId: string;
1724
+ /**
1725
+ * Currency being priced (e.g., USD, AAPL, BTC)
1726
+ */
1727
+ currency: string;
1728
+ /**
1729
+ * Quote currency (pricing currency, e.g., USD, CNY)
1730
+ */
1731
+ quoteCurrency: string;
1732
+ /**
1733
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1734
+ */
1735
+ amount: number;
1736
+ /**
1737
+ * Price date (ISO 8601 format). Represents the date this price was valid.
1738
+ */
1739
+ date: string;
1740
+ /**
1741
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1742
+ */
1743
+ meta: {
1744
+ [key: string]: unknown;
1745
+ };
1746
+ /**
1747
+ * Creation timestamp
1748
+ */
1749
+ createdAt: string;
1750
+ /**
1751
+ * Last update timestamp
1752
+ */
1753
+ updatedAt: string;
1754
+ };
1755
+ type PriceListResponseDto = {
1756
+ /**
1757
+ * List of prices
1758
+ */
1759
+ items: Array<PriceResponseDto>;
1760
+ /**
1761
+ * Total number of prices
1762
+ */
1763
+ total: number;
1764
+ };
1765
+ type UpdateBeanPriceDto = {
1766
+ /**
1767
+ * Currency being priced
1768
+ */
1769
+ currency?: string;
1770
+ /**
1771
+ * Quote currency (pricing currency)
1772
+ */
1773
+ quoteCurrency?: string;
1774
+ /**
1775
+ * Price amount (MUST be >= 0 per Beancount spec)
1776
+ */
1777
+ amount?: number;
1778
+ /**
1779
+ * Price date (ISO 8601 format)
1780
+ */
1781
+ date?: string;
1782
+ /**
1783
+ * Metadata
1784
+ */
1785
+ metadata?: {
1786
+ [key: string]: unknown;
1787
+ };
1788
+ };
1645
1789
  type CreateRecurringRuleDto = {
1646
1790
  /**
1647
1791
  * Rule name (unique per user)
@@ -2239,77 +2383,369 @@ type ForecastResponseDto = {
2239
2383
  */
2240
2384
  periodEnd: string;
2241
2385
  };
2242
- type CreateTransactionRuleDto = {
2243
- name: string;
2244
- description?: string;
2245
- narrationKeywords?: Array<unknown[]>;
2246
- payeeKeywords?: Array<unknown[]>;
2247
- categoryKeywords?: Array<unknown[]>;
2386
+ type CurrencyBalanceDto = {
2248
2387
  /**
2249
- * Payment method keywords (e.g., HuaBei, YuEBao)
2388
+ * ISO 4217 currency code
2250
2389
  */
2251
- methodKeywords?: Array<unknown[]>;
2390
+ currency: string;
2252
2391
  /**
2253
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2392
+ * Balance amount
2254
2393
  */
2255
- categoryAccount?: string;
2256
- matchLogic: 'OR' | 'AND';
2394
+ balance: string;
2395
+ };
2396
+ type TimeSeriesPointDto = {
2257
2397
  /**
2258
- * Minimum transaction amount (inclusive)
2398
+ * Date in YYYY-MM-DD format
2259
2399
  */
2260
- amountMin?: number;
2400
+ date: string;
2261
2401
  /**
2262
- * Maximum transaction amount (inclusive)
2402
+ * Value at this date (in base currency)
2263
2403
  */
2264
- amountMax?: number;
2265
- priority: number;
2266
- additionalTags?: Array<unknown[]>;
2267
- additionalMetadata?: {
2404
+ value: string;
2405
+ /**
2406
+ * Change from previous point
2407
+ */
2408
+ change?: {
2268
2409
  [key: string]: unknown;
2269
2410
  };
2270
2411
  /**
2271
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2412
+ * Total assets at this date (in base currency)
2272
2413
  */
2273
- upsertByPayee?: boolean;
2274
- };
2275
- type matchLogic = 'OR' | 'AND';
2276
- type AmountRangeDto = {
2414
+ assets?: string;
2277
2415
  /**
2278
- * Minimum amount
2416
+ * Total liabilities at this date (in base currency)
2279
2417
  */
2280
- min?: number;
2418
+ liabilities?: string;
2281
2419
  /**
2282
- * Maximum amount
2420
+ * Multi-currency breakdown for this point
2283
2421
  */
2284
- max?: number;
2422
+ byCurrency?: Array<CurrencyBalanceDto>;
2285
2423
  };
2286
- type TransactionRuleResponseDto = {
2424
+ type TrendSummaryDto = {
2287
2425
  /**
2288
- * Rule ID
2426
+ * Value at start of period
2289
2427
  */
2290
- id: string;
2428
+ startValue: string;
2291
2429
  /**
2292
- * Rule name
2430
+ * Value at end of period
2293
2431
  */
2294
- name: string;
2432
+ endValue: string;
2295
2433
  /**
2296
- * Rule description
2434
+ * Total change over period
2297
2435
  */
2298
- description?: string;
2436
+ totalChange: string;
2299
2437
  /**
2300
- * Keywords to match in transaction narration
2438
+ * Total change percentage
2301
2439
  */
2302
- narrationKeywords: Array<string>;
2440
+ totalChangePercentage: string;
2441
+ };
2442
+ type MultiCurrencyPointDto = {
2303
2443
  /**
2304
- * Keywords to match in payee name
2444
+ * Date in YYYY-MM-DD format
2305
2445
  */
2306
- payeeKeywords: Array<string>;
2446
+ date: string;
2307
2447
  /**
2308
- * Keywords to match in category
2448
+ * Balances by currency
2309
2449
  */
2310
- categoryKeywords: Array<string>;
2450
+ byCurrency: Array<CurrencyBalanceDto>;
2451
+ };
2452
+ type PortfolioTrendsResponseDto = {
2311
2453
  /**
2312
- * Keywords to match in payment method
2454
+ * Time series data points
2455
+ */
2456
+ series: Array<TimeSeriesPointDto>;
2457
+ /**
2458
+ * Period summary
2459
+ */
2460
+ summary: TrendSummaryDto;
2461
+ /**
2462
+ * Period requested
2463
+ */
2464
+ period: string;
2465
+ /**
2466
+ * Data granularity
2467
+ */
2468
+ granularity: string;
2469
+ /**
2470
+ * Base currency for converted values
2471
+ */
2472
+ currency: string;
2473
+ /**
2474
+ * Multi-currency time series (each point has currency breakdown)
2475
+ */
2476
+ byCurrency?: Array<MultiCurrencyPointDto>;
2477
+ /**
2478
+ * Exchange rate warnings
2479
+ */
2480
+ warnings?: Array<ExchangeRateWarningDto>;
2481
+ };
2482
+ type CashFlowPointDto = {
2483
+ /**
2484
+ * Month key (YYYY-MM)
2485
+ */
2486
+ month: string;
2487
+ /**
2488
+ * Income in base currency (absolute, converted)
2489
+ */
2490
+ income: string;
2491
+ /**
2492
+ * Expense in base currency (absolute, converted)
2493
+ */
2494
+ expense: string;
2495
+ /**
2496
+ * netSavings = income − expense (savings positive)
2497
+ */
2498
+ netSavings: string;
2499
+ };
2500
+ type CashFlowTrendSummaryDto = {
2501
+ /**
2502
+ * Total income across the period
2503
+ */
2504
+ totalIncome: string;
2505
+ /**
2506
+ * Total expense across the period
2507
+ */
2508
+ totalExpense: string;
2509
+ /**
2510
+ * income − expense across the period
2511
+ */
2512
+ totalNetSavings: string;
2513
+ /**
2514
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
2515
+ */
2516
+ averageMonthlyNetSavings: string;
2517
+ };
2518
+ type CashFlowTrendsResponseDto = {
2519
+ /**
2520
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
2521
+ */
2522
+ series: Array<CashFlowPointDto>;
2523
+ /**
2524
+ * Period totals
2525
+ */
2526
+ summary: CashFlowTrendSummaryDto;
2527
+ /**
2528
+ * Period requested
2529
+ */
2530
+ period: string;
2531
+ /**
2532
+ * Data granularity (v1 returns month buckets)
2533
+ */
2534
+ granularity: string;
2535
+ /**
2536
+ * Base currency for converted values
2537
+ */
2538
+ currency: string;
2539
+ /**
2540
+ * Exchange rate warnings (e.g. missing rate for a currency)
2541
+ */
2542
+ warnings?: Array<ExchangeRateWarningDto>;
2543
+ };
2544
+ type GenerateSnapshotBody = unknown;
2545
+ type GenerateSnapshotResponse = unknown;
2546
+ type BackfillSnapshotsBody = unknown;
2547
+ type BackfillSnapshotsResponse = unknown;
2548
+ type DeleteOwnUserDto = {
2549
+ /**
2550
+ * Access token for user verification
2551
+ */
2552
+ accessToken: string;
2553
+ };
2554
+ type SignupDto = {
2555
+ /**
2556
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2557
+ */
2558
+ turnstileToken?: string;
2559
+ };
2560
+ type SignupResponseDto = {
2561
+ /**
2562
+ * JWT auth token
2563
+ */
2564
+ authToken: string;
2565
+ /**
2566
+ * Auto-generated access token
2567
+ */
2568
+ accessToken: string;
2569
+ /**
2570
+ * Assigned user role
2571
+ */
2572
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2573
+ };
2574
+ /**
2575
+ * Assigned user role
2576
+ */
2577
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2578
+ type UpdateUserSettingDto = {
2579
+ /**
2580
+ * Security ID
2581
+ */
2582
+ secId?: number;
2583
+ /**
2584
+ * Annual interest rate
2585
+ */
2586
+ annualInterestRate?: number;
2587
+ /**
2588
+ * Currency code
2589
+ */
2590
+ currency?: string;
2591
+ /**
2592
+ * Base currency code
2593
+ */
2594
+ baseCurrency?: string;
2595
+ /**
2596
+ * Benchmark symbol
2597
+ */
2598
+ benchmark?: string;
2599
+ /**
2600
+ * Color scheme
2601
+ */
2602
+ colorScheme?: 'DARK' | 'LIGHT';
2603
+ /**
2604
+ * Date range filter
2605
+ */
2606
+ dateRange?: string;
2607
+ /**
2608
+ * Emergency fund amount
2609
+ */
2610
+ emergencyFund?: number;
2611
+ /**
2612
+ * Account filter IDs
2613
+ */
2614
+ 'filters.accounts'?: Array<string>;
2615
+ /**
2616
+ * Asset class filters
2617
+ */
2618
+ 'filters.assetClasses'?: Array<string>;
2619
+ /**
2620
+ * Data source filter
2621
+ */
2622
+ 'filters.dataSource'?: string;
2623
+ /**
2624
+ * Symbol filter
2625
+ */
2626
+ 'filters.symbol'?: string;
2627
+ /**
2628
+ * Tag filters
2629
+ */
2630
+ 'filters.tags'?: Array<string>;
2631
+ /**
2632
+ * Enable experimental features
2633
+ */
2634
+ isExperimentalFeatures?: boolean;
2635
+ /**
2636
+ * Enable restricted view mode
2637
+ */
2638
+ isRestrictedView?: boolean;
2639
+ /**
2640
+ * Language code
2641
+ */
2642
+ language?: string;
2643
+ /**
2644
+ * Locale code
2645
+ */
2646
+ locale?: string;
2647
+ /**
2648
+ * Projected total amount
2649
+ */
2650
+ projectedTotalAmount?: number;
2651
+ /**
2652
+ * Retirement date in ISO 8601 format
2653
+ */
2654
+ retirementDate?: string;
2655
+ /**
2656
+ * Savings rate percentage
2657
+ */
2658
+ savingsRate?: number;
2659
+ /**
2660
+ * View mode
2661
+ */
2662
+ viewMode?: 'DEFAULT' | 'ZEN';
2663
+ };
2664
+ /**
2665
+ * Color scheme
2666
+ */
2667
+ type colorScheme = 'DARK' | 'LIGHT';
2668
+ /**
2669
+ * View mode
2670
+ */
2671
+ type viewMode = 'DEFAULT' | 'ZEN';
2672
+ type UpdatePropertyDto = {
2673
+ /**
2674
+ * Property value
2675
+ */
2676
+ value: string;
2677
+ };
2678
+ type CreateTransactionRuleDto = {
2679
+ name: string;
2680
+ description?: string;
2681
+ narrationKeywords?: Array<unknown[]>;
2682
+ payeeKeywords?: Array<unknown[]>;
2683
+ categoryKeywords?: Array<unknown[]>;
2684
+ /**
2685
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2686
+ */
2687
+ methodKeywords?: Array<unknown[]>;
2688
+ /**
2689
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2690
+ */
2691
+ categoryAccount?: string;
2692
+ matchLogic: 'OR' | 'AND';
2693
+ /**
2694
+ * Minimum transaction amount (inclusive)
2695
+ */
2696
+ amountMin?: number;
2697
+ /**
2698
+ * Maximum transaction amount (inclusive)
2699
+ */
2700
+ amountMax?: number;
2701
+ priority: number;
2702
+ additionalTags?: Array<unknown[]>;
2703
+ additionalMetadata?: {
2704
+ [key: string]: unknown;
2705
+ };
2706
+ /**
2707
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2708
+ */
2709
+ upsertByPayee?: boolean;
2710
+ };
2711
+ type matchLogic = 'OR' | 'AND';
2712
+ type AmountRangeDto = {
2713
+ /**
2714
+ * Minimum amount
2715
+ */
2716
+ min?: number;
2717
+ /**
2718
+ * Maximum amount
2719
+ */
2720
+ max?: number;
2721
+ };
2722
+ type TransactionRuleResponseDto = {
2723
+ /**
2724
+ * Rule ID
2725
+ */
2726
+ id: string;
2727
+ /**
2728
+ * Rule name
2729
+ */
2730
+ name: string;
2731
+ /**
2732
+ * Rule description
2733
+ */
2734
+ description?: string;
2735
+ /**
2736
+ * Keywords to match in transaction narration
2737
+ */
2738
+ narrationKeywords: Array<string>;
2739
+ /**
2740
+ * Keywords to match in payee name
2741
+ */
2742
+ payeeKeywords: Array<string>;
2743
+ /**
2744
+ * Keywords to match in category
2745
+ */
2746
+ categoryKeywords: Array<string>;
2747
+ /**
2748
+ * Keywords to match in payment method
2313
2749
  */
2314
2750
  methodKeywords: Array<string>;
2315
2751
  /**
@@ -2490,204 +2926,92 @@ type RuleStatisticsResponseDto = {
2490
2926
  /**
2491
2927
  * Total number of rules
2492
2928
  */
2493
- totalRules: number;
2494
- /**
2495
- * Number of rules with at least one match
2496
- */
2497
- rulesWithMatches: number;
2498
- /**
2499
- * Total number of matches across all rules
2500
- */
2501
- totalMatches: number;
2502
- /**
2503
- * Average confidence score across all matches
2504
- */
2505
- averageConfidence: number;
2506
- /**
2507
- * Per-rule statistics
2508
- */
2509
- ruleStats: Array<{
2510
- ruleId?: string;
2511
- ruleName?: string;
2512
- matchCount?: number;
2513
- averageConfidence?: number;
2514
- }>;
2515
- };
2516
- /**
2517
- * Statistics time period
2518
- */
2519
- type period = '7d' | '30d' | '90d';
2520
- type UpdateTransactionRuleDto = {
2521
- name?: string;
2522
- description?: string;
2523
- narrationKeywords?: Array<unknown[]>;
2524
- payeeKeywords?: Array<unknown[]>;
2525
- categoryKeywords?: Array<unknown[]>;
2526
- /**
2527
- * Payment method keywords (e.g., HuaBei, YuEBao)
2528
- */
2529
- methodKeywords?: Array<unknown[]>;
2530
- /**
2531
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2532
- */
2533
- categoryAccount?: string;
2534
- matchLogic?: 'OR' | 'AND';
2535
- /**
2536
- * Minimum transaction amount (inclusive)
2537
- */
2538
- amountMin?: number;
2539
- /**
2540
- * Maximum transaction amount (inclusive)
2541
- */
2542
- amountMax?: number;
2543
- priority?: number;
2544
- /**
2545
- * Enable or disable the rule
2546
- */
2547
- enabled?: boolean;
2548
- additionalTags?: Array<unknown[]>;
2549
- additionalMetadata?: {
2550
- [key: string]: unknown;
2551
- };
2552
- };
2553
- type TestRuleDto = {
2554
- narration: string;
2555
- payee?: string;
2556
- categoryAccount?: string;
2557
- amount?: number;
2558
- currency?: string;
2559
- };
2560
- type TestRuleResponseDto = {
2561
- /**
2562
- * Rule ID that was tested
2563
- */
2564
- ruleId: string;
2565
- /**
2566
- * Whether the rule matched the test data
2567
- */
2568
- matches: boolean;
2569
- /**
2570
- * Match confidence score (0-1)
2571
- */
2572
- confidence: number;
2573
- /**
2574
- * Details of which fields matched
2575
- */
2576
- matchDetails: {
2577
- [key: string]: unknown;
2578
- };
2579
- };
2580
- type DeleteOwnUserDto = {
2581
- /**
2582
- * Access token for user verification
2583
- */
2584
- accessToken: string;
2585
- };
2586
- type SignupDto = {
2587
- /**
2588
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2589
- */
2590
- turnstileToken?: string;
2591
- };
2592
- type UpdateUserSettingDto = {
2593
- /**
2594
- * Security ID
2595
- */
2596
- secId?: number;
2597
- /**
2598
- * Annual interest rate
2599
- */
2600
- annualInterestRate?: number;
2601
- /**
2602
- * Currency code
2603
- */
2604
- currency?: string;
2605
- /**
2606
- * Base currency code
2607
- */
2608
- baseCurrency?: string;
2609
- /**
2610
- * Benchmark symbol
2611
- */
2612
- benchmark?: string;
2613
- /**
2614
- * Color scheme
2615
- */
2616
- colorScheme?: 'DARK' | 'LIGHT';
2617
- /**
2618
- * Date range filter
2619
- */
2620
- dateRange?: string;
2621
- /**
2622
- * Emergency fund amount
2623
- */
2624
- emergencyFund?: number;
2625
- /**
2626
- * Account filter IDs
2627
- */
2628
- 'filters.accounts'?: Array<string>;
2929
+ totalRules: number;
2629
2930
  /**
2630
- * Asset class filters
2931
+ * Number of rules with at least one match
2631
2932
  */
2632
- 'filters.assetClasses'?: Array<string>;
2933
+ rulesWithMatches: number;
2633
2934
  /**
2634
- * Data source filter
2935
+ * Total number of matches across all rules
2635
2936
  */
2636
- 'filters.dataSource'?: string;
2937
+ totalMatches: number;
2637
2938
  /**
2638
- * Symbol filter
2939
+ * Average confidence score across all matches
2639
2940
  */
2640
- 'filters.symbol'?: string;
2941
+ averageConfidence: number;
2641
2942
  /**
2642
- * Tag filters
2943
+ * Per-rule statistics
2643
2944
  */
2644
- 'filters.tags'?: Array<string>;
2945
+ ruleStats: Array<{
2946
+ ruleId?: string;
2947
+ ruleName?: string;
2948
+ matchCount?: number;
2949
+ averageConfidence?: number;
2950
+ }>;
2951
+ };
2952
+ /**
2953
+ * Statistics time period
2954
+ */
2955
+ type period = '7d' | '30d' | '90d';
2956
+ type UpdateTransactionRuleDto = {
2957
+ name?: string;
2958
+ description?: string;
2959
+ narrationKeywords?: Array<unknown[]>;
2960
+ payeeKeywords?: Array<unknown[]>;
2961
+ categoryKeywords?: Array<unknown[]>;
2645
2962
  /**
2646
- * Enable experimental features
2963
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2647
2964
  */
2648
- isExperimentalFeatures?: boolean;
2965
+ methodKeywords?: Array<unknown[]>;
2649
2966
  /**
2650
- * Enable restricted view mode
2967
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2651
2968
  */
2652
- isRestrictedView?: boolean;
2969
+ categoryAccount?: string;
2970
+ matchLogic?: 'OR' | 'AND';
2653
2971
  /**
2654
- * Language code
2972
+ * Minimum transaction amount (inclusive)
2655
2973
  */
2656
- language?: string;
2974
+ amountMin?: number;
2657
2975
  /**
2658
- * Locale code
2976
+ * Maximum transaction amount (inclusive)
2659
2977
  */
2660
- locale?: string;
2978
+ amountMax?: number;
2979
+ priority?: number;
2661
2980
  /**
2662
- * Projected total amount
2981
+ * Enable or disable the rule
2663
2982
  */
2664
- projectedTotalAmount?: number;
2983
+ enabled?: boolean;
2984
+ additionalTags?: Array<unknown[]>;
2985
+ additionalMetadata?: {
2986
+ [key: string]: unknown;
2987
+ };
2988
+ };
2989
+ type TestRuleDto = {
2990
+ narration: string;
2991
+ payee?: string;
2992
+ categoryAccount?: string;
2993
+ amount?: number;
2994
+ currency?: string;
2995
+ };
2996
+ type TestRuleResponseDto = {
2665
2997
  /**
2666
- * Retirement date in ISO 8601 format
2998
+ * Rule ID that was tested
2667
2999
  */
2668
- retirementDate?: string;
3000
+ ruleId: string;
2669
3001
  /**
2670
- * Savings rate percentage
3002
+ * Whether the rule matched the test data
2671
3003
  */
2672
- savingsRate?: number;
3004
+ matches: boolean;
2673
3005
  /**
2674
- * View mode
3006
+ * Match confidence score (0-1)
2675
3007
  */
2676
- viewMode?: 'DEFAULT' | 'ZEN';
2677
- };
2678
- /**
2679
- * Color scheme
2680
- */
2681
- type colorScheme = 'DARK' | 'LIGHT';
2682
- /**
2683
- * View mode
2684
- */
2685
- type viewMode = 'DEFAULT' | 'ZEN';
2686
- type UpdatePropertyDto = {
3008
+ confidence: number;
2687
3009
  /**
2688
- * Property value
3010
+ * Details of which fields matched
2689
3011
  */
2690
- value: string;
3012
+ matchDetails: {
3013
+ [key: string]: unknown;
3014
+ };
2691
3015
  };
2692
3016
  type CreateBeanEventDto = {
2693
3017
  /**
@@ -2775,6 +3099,150 @@ type UpdateBeanEventDto = {
2775
3099
  [key: string]: unknown;
2776
3100
  };
2777
3101
  };
3102
+ type OnboardingAccountDto = {
3103
+ /**
3104
+ * Account path (Assets/Liabilities only; format validated by the account service)
3105
+ */
3106
+ path: string;
3107
+ /**
3108
+ * ISO 4217 currency code (3 letters)
3109
+ */
3110
+ currency: string;
3111
+ /**
3112
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
3113
+ */
3114
+ openingBalance?: string;
3115
+ /**
3116
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
3117
+ */
3118
+ platformId?: string;
3119
+ };
3120
+ type OnboardingDto = {
3121
+ /**
3122
+ * Asset/Liability accounts to register with opening balances
3123
+ */
3124
+ accounts?: Array<OnboardingAccountDto>;
3125
+ /**
3126
+ * Skip asset registration; only bootstrap the core account set
3127
+ */
3128
+ skipAssetRegistration?: boolean;
3129
+ };
3130
+ type ActualBalanceDto = {
3131
+ /**
3132
+ * Actual balance amount as a decimal string (preserves precision for tolerance inference).
3133
+ */
3134
+ amount: string;
3135
+ /**
3136
+ * Currency code (ISO 4217 or commodity ticker).
3137
+ */
3138
+ ccy: string;
3139
+ };
3140
+ type ComputeReconciliationDto = {
3141
+ /**
3142
+ * BeanAccount id to reconcile.
3143
+ */
3144
+ accountId: string;
3145
+ /**
3146
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3147
+ */
3148
+ asOfDate: string;
3149
+ /**
3150
+ * Actual balance from the external statement.
3151
+ */
3152
+ actualBalance: ActualBalanceDto;
3153
+ };
3154
+ type ReconciliationComputeResultDto = {
3155
+ accountId: string;
3156
+ asOfDate: string;
3157
+ /**
3158
+ * System-computed book balance (decimal string).
3159
+ */
3160
+ bookBalance: string;
3161
+ /**
3162
+ * User-entered actual balance (decimal string).
3163
+ */
3164
+ actualBalance: string;
3165
+ currency: string;
3166
+ /**
3167
+ * Diff = book − actual (decimal string).
3168
+ */
3169
+ diff: string;
3170
+ /**
3171
+ * Applied tolerance (decimal string).
3172
+ */
3173
+ tolerance: string;
3174
+ /**
3175
+ * true when |diff| ≤ tolerance.
3176
+ */
3177
+ withinTolerance: boolean;
3178
+ /**
3179
+ * Suggested next action: assert when within tolerance, pad otherwise.
3180
+ */
3181
+ suggestedAction: 'assert' | 'pad';
3182
+ };
3183
+ /**
3184
+ * Suggested next action: assert when within tolerance, pad otherwise.
3185
+ */
3186
+ type suggestedAction = 'assert' | 'pad';
3187
+ type AssertReconciliationDto = {
3188
+ /**
3189
+ * BeanAccount id to reconcile.
3190
+ */
3191
+ accountId: string;
3192
+ /**
3193
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3194
+ */
3195
+ asOfDate: string;
3196
+ /**
3197
+ * Actual balance from the external statement.
3198
+ */
3199
+ actualBalance: ActualBalanceDto;
3200
+ /**
3201
+ * Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
3202
+ */
3203
+ tolerance?: string;
3204
+ };
3205
+ type ReconciliationRecordDto = {
3206
+ id: string;
3207
+ accountId: string;
3208
+ date: string;
3209
+ /**
3210
+ * Asserted (actual) amount.
3211
+ */
3212
+ amount: string;
3213
+ currency: string;
3214
+ tolerance?: string;
3215
+ /**
3216
+ * book − actual.
3217
+ */
3218
+ diffAmount?: string;
3219
+ diffCurrency?: string;
3220
+ createdAt: string;
3221
+ };
3222
+ type PadReconciliationDto = {
3223
+ /**
3224
+ * BeanAccount id to reconcile.
3225
+ */
3226
+ accountId: string;
3227
+ /**
3228
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3229
+ */
3230
+ asOfDate: string;
3231
+ /**
3232
+ * Actual balance from the external statement.
3233
+ */
3234
+ actualBalance: ActualBalanceDto;
3235
+ /**
3236
+ * Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
3237
+ */
3238
+ sourceAccount?: string;
3239
+ };
3240
+ type PadResultDto = {
3241
+ /**
3242
+ * Created pad adjusting transaction id.
3243
+ */
3244
+ transactionId: string;
3245
+ };
2778
3246
  type FileImportDto = {
2779
3247
  /**
2780
3248
  * Bill file to import (CSV, PDF, OFX, etc.)
@@ -2963,125 +3431,61 @@ type ImporterConfigDto = {
2963
3431
  */
2964
3432
  version: string;
2965
3433
  /**
2966
- * Configuration schema identifier
2967
- */
2968
- schema: string;
2969
- /**
2970
- * Configuration data (validated against Zod schema)
2971
- */
2972
- config: VersionedConfigDto;
2973
- /**
2974
- * Creation timestamp
2975
- */
2976
- createdAt: string;
2977
- /**
2978
- * Last update timestamp
2979
- */
2980
- updatedAt: string;
2981
- };
2982
- /**
2983
- * Importer identifier
2984
- */
2985
- type importerId = 'alipay' | 'alipay-web' | 'alipay-yuebao' | 'wechat' | 'wechat-xlsx' | 'boc' | 'boc-credit' | 'ccb' | 'cmb' | 'cmbc' | 'cmbc-credit' | 'icbc' | 'icbc-credit' | 'hsbc-hk-credit' | 'hsbc-hk-debit';
2986
- type UpdateMapperDefaultsDto = {
2987
- /**
2988
- * Source account for transactions (Beancount format)
2989
- */
2990
- sourceAccount?: string;
2991
- /**
2992
- * Default currency (ISO 4217 code)
2993
- */
2994
- currency?: string;
2995
- /**
2996
- * Default expense account (optional)
2997
- */
2998
- expenseAccount?: string;
2999
- /**
3000
- * Default income account (optional)
3001
- */
3002
- incomeAccount?: string;
3003
- /**
3004
- * Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
3005
- */
3006
- methodAccountMapping?: {
3007
- [key: string]: unknown;
3008
- };
3009
- };
3010
- type UpdateConfigDataDto = {
3011
- /**
3012
- * Mapper defaults configuration
3013
- */
3014
- defaults?: UpdateMapperDefaultsDto;
3015
- };
3016
- type UpdateImporterConfigDto = {
3017
- /**
3018
- * Configuration data (v1 schema)
3019
- */
3020
- data?: UpdateConfigDataDto;
3021
- };
3022
- type CreatePlatformDto = {
3023
- /**
3024
- * Platform name
3025
- */
3026
- name: string;
3027
- /**
3028
- * Platform canonical identifier (lowercase, kebab-case)
3029
- */
3030
- canonical: string;
3031
- /**
3032
- * Platform aliases (multi-language names for lookup)
3033
- */
3034
- aliases: Array<string>;
3035
- /**
3036
- * Platform URL
3434
+ * Configuration schema identifier
3037
3435
  */
3038
- url: string;
3436
+ schema: string;
3039
3437
  /**
3040
- * Platform type
3438
+ * Configuration data (validated against Zod schema)
3041
3439
  */
3042
- type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3440
+ config: VersionedConfigDto;
3043
3441
  /**
3044
- * Platform logo URL
3442
+ * Creation timestamp
3045
3443
  */
3046
- logoUrl?: string;
3444
+ createdAt: string;
3047
3445
  /**
3048
- * Whether the platform is active
3446
+ * Last update timestamp
3049
3447
  */
3050
- isActive?: boolean;
3448
+ updatedAt: string;
3051
3449
  };
3052
3450
  /**
3053
- * Platform type
3451
+ * Importer identifier
3054
3452
  */
3055
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3056
- type UpdatePlatformDto = {
3453
+ type importerId = 'alipay' | 'alipay-web' | 'alipay-yuebao' | 'wechat' | 'wechat-xlsx' | 'boc' | 'boc-credit' | 'ccb' | 'cmb' | 'cmbc' | 'cmbc-credit' | 'icbc' | 'icbc-credit' | 'hsbc-hk-credit' | 'hsbc-hk-debit';
3454
+ type UpdateMapperDefaultsDto = {
3057
3455
  /**
3058
- * Platform name
3456
+ * Source account for transactions (Beancount format)
3059
3457
  */
3060
- name?: string;
3458
+ sourceAccount?: string;
3061
3459
  /**
3062
- * Platform canonical identifier (lowercase, kebab-case)
3460
+ * Default currency (ISO 4217 code)
3063
3461
  */
3064
- canonical?: string;
3462
+ currency?: string;
3065
3463
  /**
3066
- * Platform aliases (multi-language names for lookup)
3464
+ * Default expense account (optional)
3067
3465
  */
3068
- aliases?: Array<string>;
3466
+ expenseAccount?: string;
3069
3467
  /**
3070
- * Platform URL
3468
+ * Default income account (optional)
3071
3469
  */
3072
- url?: string;
3470
+ incomeAccount?: string;
3073
3471
  /**
3074
- * Platform type
3472
+ * Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
3075
3473
  */
3076
- type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3474
+ methodAccountMapping?: {
3475
+ [key: string]: unknown;
3476
+ };
3477
+ };
3478
+ type UpdateConfigDataDto = {
3077
3479
  /**
3078
- * Platform logo URL
3480
+ * Mapper defaults configuration
3079
3481
  */
3080
- logoUrl?: string;
3482
+ defaults?: UpdateMapperDefaultsDto;
3483
+ };
3484
+ type UpdateImporterConfigDto = {
3081
3485
  /**
3082
- * Whether the platform is active
3486
+ * Configuration data (v1 schema)
3083
3487
  */
3084
- isActive?: boolean;
3488
+ data?: UpdateConfigDataDto;
3085
3489
  };
3086
3490
  type ProviderSyncConfigDto = {
3087
3491
  /**
@@ -3104,6 +3508,10 @@ type ProviderSyncConfigDto = {
3104
3508
  * Filter pending transactions
3105
3509
  */
3106
3510
  filterPending?: boolean;
3511
+ /**
3512
+ * External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
3513
+ */
3514
+ externalAccountId?: string;
3107
3515
  };
3108
3516
  type ProviderSyncDto = {
3109
3517
  /**
@@ -3155,6 +3563,41 @@ type SupportedProvidersResponseDto = {
3155
3563
  */
3156
3564
  providers: Array<string>;
3157
3565
  };
3566
+ type CreateExternalAccountLinkDto = {
3567
+ /**
3568
+ * Open Banking provider (whitelist)
3569
+ */
3570
+ provider: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3571
+ /**
3572
+ * External account ID from the provider
3573
+ */
3574
+ externalAccountId: string;
3575
+ /**
3576
+ * Target BeanAccount ID (must belong to the JWT user)
3577
+ */
3578
+ beanAccountId: string;
3579
+ };
3580
+ /**
3581
+ * Open Banking provider (whitelist)
3582
+ */
3583
+ type provider = 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3584
+ type ExternalAccountLinkResponseDto = {
3585
+ id: string;
3586
+ provider: string;
3587
+ externalAccountId: string;
3588
+ beanAccountId: string;
3589
+ isActive: boolean;
3590
+ createdAt: string;
3591
+ updatedAt: string;
3592
+ };
3593
+ type ExternalAccountLinkListResponseDto = {
3594
+ items: Array<ExternalAccountLinkResponseDto>;
3595
+ total: number;
3596
+ /**
3597
+ * Filter by provider (query param)
3598
+ */
3599
+ provider?: string;
3600
+ };
3158
3601
  type ParserTelemetryReportDto = unknown;
3159
3602
  type UncoveredFormatMissDto = unknown;
3160
3603
  type ProcessNlpDto = {
@@ -3172,6 +3615,14 @@ type ProcessNlpDto = {
3172
3615
  parsedData?: {
3173
3616
  [key: string]: unknown;
3174
3617
  };
3618
+ /**
3619
+ * confirm_rule echo-back: rule id selected from the prior confirm_rule response (matchedRule.id or alternatives[i].ruleId). Applied directly when the session is confirming_rule — no NL re-parse.
3620
+ */
3621
+ selectedRuleId?: string;
3622
+ /**
3623
+ * confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i], or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
3624
+ */
3625
+ selectedAccount?: string;
3175
3626
  };
3176
3627
  type NlpTransactionInfoDto = {
3177
3628
  /**
@@ -3405,9 +3856,9 @@ type NlpAccountConfirmationDataDto = {
3405
3856
  */
3406
3857
  invalidAccount: string;
3407
3858
  /**
3408
- * Suggested replacement account
3859
+ * Suggested replacement account (omitted when no clear candidate)
3409
3860
  */
3410
- suggestedAccount: string;
3861
+ suggestedAccount?: string;
3411
3862
  /**
3412
3863
  * Similar accounts for user selection
3413
3864
  */
@@ -3569,7 +4020,7 @@ type NlpResponseDto = {
3569
4020
  /**
3570
4021
  * Action taken or requested
3571
4022
  */
3572
- action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4023
+ action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3573
4024
  /**
3574
4025
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3575
4026
  */
@@ -3673,7 +4124,7 @@ type status4 = 'success' | 'pending' | 'error';
3673
4124
  /**
3674
4125
  * Action taken or requested
3675
4126
  */
3676
- type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4127
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3677
4128
  /**
3678
4129
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3679
4130
  */
@@ -3690,15 +4141,159 @@ type liabilitySubType = 'borrow' | 'repay';
3690
4141
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3691
4142
  */
3692
4143
  type equitySubType = 'opening' | 'adjustment';
3693
- type BalanceByCurrencyDto = {
4144
+ type PlatformListItemDto = {
3694
4145
  /**
3695
- * ISO 4217 currency code
4146
+ * Global platform ID
3696
4147
  */
3697
- currency: string;
4148
+ id: string;
3698
4149
  /**
3699
- * Balance amount
4150
+ * Platform name
3700
4151
  */
3701
- balance: string;
4152
+ name: string;
4153
+ /**
4154
+ * Platform URL
4155
+ */
4156
+ url: string;
4157
+ /**
4158
+ * Platform type
4159
+ */
4160
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4161
+ /**
4162
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4163
+ */
4164
+ canonical: string;
4165
+ /**
4166
+ * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
4167
+ */
4168
+ suggestedSegment: string;
4169
+ /**
4170
+ * Logo URL
4171
+ */
4172
+ logoUrl: string | null;
4173
+ /**
4174
+ * Whether user has accounts using this platform
4175
+ */
4176
+ isBound: boolean;
4177
+ };
4178
+ /**
4179
+ * Platform type
4180
+ */
4181
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4182
+ type PlatformMatchResultDto = {
4183
+ /**
4184
+ * Global platform ID
4185
+ */
4186
+ id: string;
4187
+ /**
4188
+ * Platform name (e.g., "ICBC")
4189
+ */
4190
+ name: string;
4191
+ /**
4192
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4193
+ */
4194
+ canonical: string;
4195
+ /**
4196
+ * Platform type
4197
+ */
4198
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4199
+ /**
4200
+ * Suggested path segment — canonical, already in ACCOUNT_RE format
4201
+ */
4202
+ suggestedSegment: string;
4203
+ /**
4204
+ * Logo URL
4205
+ */
4206
+ logoUrl: string | null;
4207
+ /**
4208
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4209
+ */
4210
+ matchType: 'exact' | 'prefix' | 'substring';
4211
+ };
4212
+ /**
4213
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4214
+ */
4215
+ type matchType = 'exact' | 'prefix' | 'substring';
4216
+ type PlatformMatchResponseDto = {
4217
+ /**
4218
+ * Ranked matches, best tier first (at most 10 rows)
4219
+ */
4220
+ platforms: Array<PlatformMatchResultDto>;
4221
+ /**
4222
+ * Overall match quality — top row's tier, or 'none' when no hits
4223
+ */
4224
+ matchType: 'none' | 'exact' | 'prefix' | 'substring';
4225
+ /**
4226
+ * Total matches before LIMIT (truncation transparency)
4227
+ */
4228
+ total: number;
4229
+ /**
4230
+ * true when total > platforms.length (more matches exist)
4231
+ */
4232
+ hasMore: boolean;
4233
+ };
4234
+ /**
4235
+ * Overall match quality — top row's tier, or 'none' when no hits
4236
+ */
4237
+ type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4238
+ type CreatePlatformDto = {
4239
+ /**
4240
+ * Platform name
4241
+ */
4242
+ name: string;
4243
+ /**
4244
+ * Platform canonical identifier (lowercase, kebab-case)
4245
+ */
4246
+ canonical: string;
4247
+ /**
4248
+ * Platform aliases (multi-language names for lookup)
4249
+ */
4250
+ aliases: Array<string>;
4251
+ /**
4252
+ * Platform URL
4253
+ */
4254
+ url: string;
4255
+ /**
4256
+ * Platform type
4257
+ */
4258
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4259
+ /**
4260
+ * Platform logo URL
4261
+ */
4262
+ logoUrl?: string;
4263
+ /**
4264
+ * Whether the platform is active
4265
+ */
4266
+ isActive?: boolean;
4267
+ };
4268
+ type UpdatePlatformDto = {
4269
+ /**
4270
+ * Platform name
4271
+ */
4272
+ name?: string;
4273
+ /**
4274
+ * Platform canonical identifier (lowercase, kebab-case)
4275
+ */
4276
+ canonical?: string;
4277
+ /**
4278
+ * Platform aliases (multi-language names for lookup)
4279
+ */
4280
+ aliases?: Array<string>;
4281
+ /**
4282
+ * Platform URL
4283
+ */
4284
+ url?: string;
4285
+ /**
4286
+ * Platform type
4287
+ */
4288
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4289
+ /**
4290
+ * Platform logo URL
4291
+ */
4292
+ logoUrl?: string;
4293
+ /**
4294
+ * Whether the platform is active
4295
+ */
4296
+ isActive?: boolean;
3702
4297
  };
3703
4298
  type NetWorthByCurrencyDto = {
3704
4299
  /**
@@ -3738,20 +4333,6 @@ type ConvertedNetWorthDto = {
3738
4333
  [key: string]: unknown;
3739
4334
  };
3740
4335
  };
3741
- type ExchangeRateWarningDto = {
3742
- /**
3743
- * Warning type
3744
- */
3745
- type: string;
3746
- /**
3747
- * Currency without exchange rate
3748
- */
3749
- currency: string;
3750
- /**
3751
- * Total amount affected
3752
- */
3753
- totalAmount: string;
3754
- };
3755
4336
  type NetWorthResponseDto = {
3756
4337
  /**
3757
4338
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3815,6 +4396,10 @@ type AccountItemDto = {
3815
4396
  * Currency code
3816
4397
  */
3817
4398
  currency: string;
4399
+ /**
4400
+ * FX-converted balance in base currency; omitted when not convertible
4401
+ */
4402
+ convertedBalance?: string;
3818
4403
  };
3819
4404
  type PlatformGroupDto = {
3820
4405
  /**
@@ -3830,9 +4415,39 @@ type PlatformGroupDto = {
3830
4415
  */
3831
4416
  accounts: Array<AccountItemDto>;
3832
4417
  /**
3833
- * Total balance across all accounts in platform
4418
+ * FX-converted total balance in base currency
3834
4419
  */
3835
4420
  totalBalance: string;
4421
+ /**
4422
+ * Raw (unconverted) balances grouped by currency
4423
+ */
4424
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4425
+ /**
4426
+ * Converted balance in base currency (omitted when no currency is convertible)
4427
+ */
4428
+ convertedBalance?: string;
4429
+ /**
4430
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4431
+ */
4432
+ sharePct: number;
4433
+ };
4434
+ type AccountExchangeRateWarningDto = {
4435
+ /**
4436
+ * Warning type
4437
+ */
4438
+ type: string;
4439
+ /**
4440
+ * Currency without exchange rate
4441
+ */
4442
+ currency: string;
4443
+ /**
4444
+ * Affected account paths
4445
+ */
4446
+ accounts: Array<string>;
4447
+ /**
4448
+ * Total amount in this currency
4449
+ */
4450
+ totalAmount: string;
3836
4451
  };
3837
4452
  type AccountsSummaryDto = {
3838
4453
  /**
@@ -3843,6 +4458,14 @@ type AccountsSummaryDto = {
3843
4458
  * Total number of platforms
3844
4459
  */
3845
4460
  totalPlatforms: number;
4461
+ /**
4462
+ * Base currency for conversion
4463
+ */
4464
+ baseCurrency: string;
4465
+ /**
4466
+ * Per-account exchange rate warnings
4467
+ */
4468
+ warnings?: Array<AccountExchangeRateWarningDto>;
3846
4469
  };
3847
4470
  type AccountsResponseDto = {
3848
4471
  /**
@@ -3875,6 +4498,10 @@ type AccountItemWithAssetClassDto = {
3875
4498
  * Currency code
3876
4499
  */
3877
4500
  currency: string;
4501
+ /**
4502
+ * FX-converted balance in base currency; omitted when not convertible
4503
+ */
4504
+ convertedBalance?: string;
3878
4505
  /**
3879
4506
  * Asset class
3880
4507
  */
@@ -3926,24 +4553,6 @@ type AssetClassGroupDto = {
3926
4553
  * Asset class name
3927
4554
  */
3928
4555
  type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
3929
- type AccountExchangeRateWarningDto = {
3930
- /**
3931
- * Warning type
3932
- */
3933
- type: string;
3934
- /**
3935
- * Currency without exchange rate
3936
- */
3937
- currency: string;
3938
- /**
3939
- * Affected account paths
3940
- */
3941
- accounts: Array<string>;
3942
- /**
3943
- * Total amount in this currency
3944
- */
3945
- totalAmount: string;
3946
- };
3947
4556
  type AssetClassSummaryDto = {
3948
4557
  /**
3949
4558
  * Total number of accounts
@@ -4102,6 +4711,60 @@ type CashFlowResponseDto = {
4102
4711
  */
4103
4712
  warnings?: Array<ExchangeRateWarningDto>;
4104
4713
  };
4714
+ type CategoryGroupDto = {
4715
+ /**
4716
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4717
+ */
4718
+ category: string;
4719
+ /**
4720
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4721
+ */
4722
+ totalExpense: string;
4723
+ /**
4724
+ * Share of grand total (0-100); 0 when grand total is 0
4725
+ */
4726
+ sharePct: number;
4727
+ /**
4728
+ * Raw (unconverted) expense per currency
4729
+ */
4730
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4731
+ /**
4732
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4733
+ */
4734
+ convertedBalance?: string;
4735
+ };
4736
+ type ExpensesByCategorySummaryDto = {
4737
+ /**
4738
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4739
+ */
4740
+ totalExpense: string;
4741
+ /**
4742
+ * Number of categories
4743
+ */
4744
+ categoryCount: number;
4745
+ };
4746
+ type ExpensesByCategoryResponseDto = {
4747
+ /**
4748
+ * Period requested
4749
+ */
4750
+ period: string;
4751
+ /**
4752
+ * Base currency for converted values
4753
+ */
4754
+ baseCurrency: string;
4755
+ /**
4756
+ * Expense groups by functional category, sorted by converted total desc
4757
+ */
4758
+ groups: Array<CategoryGroupDto>;
4759
+ /**
4760
+ * Summary statistics
4761
+ */
4762
+ summary: ExpensesByCategorySummaryDto;
4763
+ /**
4764
+ * Exchange rate warnings (e.g. missing rate for a currency)
4765
+ */
4766
+ warnings?: Array<ExchangeRateWarningDto>;
4767
+ };
4105
4768
  type MonetaryDto = {
4106
4769
  /**
4107
4770
  * Amount (Decimal string)
@@ -4208,328 +4871,208 @@ type HoldingPnlRowDto = {
4208
4871
  /**
4209
4872
  * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4210
4873
  */
4211
- unrealizedPnlBase?: {
4212
- [key: string]: unknown;
4213
- } | null;
4214
- /**
4215
- * Unrealized P&L % (Decimal string)
4216
- */
4217
- unrealizedPnlPct?: {
4218
- [key: string]: unknown;
4219
- } | null;
4220
- /**
4221
- * Historical FX rate applied to cost basis
4222
- */
4223
- costFxRate?: FxRateDto | null;
4224
- /**
4225
- * FX rate applied to market value
4226
- */
4227
- marketFxRate?: FxRateDto | null;
4228
- /**
4229
- * Share of invested assets % (Decimal string); only for invested chartTokens
4230
- */
4231
- pctOfInvestedAssets?: {
4232
- [key: string]: unknown;
4233
- } | null;
4234
- /**
4235
- * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
4236
- */
4237
- realizedPnl?: MonetaryDto | null;
4238
- };
4239
- /**
4240
- * Chart segment token (libs/common resolver)
4241
- */
4242
- type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4243
- type HoldingPnlWarningDto = {
4244
- /**
4245
- * Warning type
4246
- */
4247
- type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4248
- symbol?: {
4249
- [key: string]: unknown;
4250
- } | null;
4251
- accountId?: {
4252
- [key: string]: unknown;
4253
- } | null;
4254
- currency?: {
4255
- [key: string]: unknown;
4256
- } | null;
4257
- };
4258
- /**
4259
- * Warning type
4260
- */
4261
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4262
- type HoldingPnlResponseDto = {
4263
- asOfDate: string;
4264
- baseCurrency: string;
4265
- /**
4266
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4267
- */
4268
- method: 'average' | 'FIFO';
4269
- rows: Array<HoldingPnlRowDto>;
4270
- warnings: Array<HoldingPnlWarningDto>;
4271
- };
4272
- /**
4273
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4274
- */
4275
- type method = 'average' | 'FIFO';
4276
- type CreateBeanPriceDto = {
4277
- /**
4278
- * Currency being priced (e.g., USD, AAPL, BTC)
4279
- */
4280
- currency: string;
4281
- /**
4282
- * Quote currency (pricing currency, e.g., CNY, EUR)
4283
- */
4284
- quoteCurrency: string;
4285
- /**
4286
- * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
4287
- */
4288
- amount: number;
4289
- /**
4290
- * Price date (ISO 8601 format)
4291
- */
4292
- date: string;
4293
- /**
4294
- * Metadata (validated by Zod schema, max field lengths enforced)
4295
- */
4296
- metadata?: {
4297
- [key: string]: unknown;
4298
- };
4299
- };
4300
- type PriceResponseDto = {
4301
- /**
4302
- * Unique identifier
4303
- */
4304
- id: string;
4305
- /**
4306
- * User ID (owner of the price)
4307
- */
4308
- userId: string;
4309
- /**
4310
- * Currency being priced (e.g., USD, AAPL, BTC)
4311
- */
4312
- currency: string;
4313
- /**
4314
- * Quote currency (pricing currency, e.g., USD, CNY)
4315
- */
4316
- quoteCurrency: string;
4317
- /**
4318
- * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
4319
- */
4320
- amount: number;
4321
- /**
4322
- * Price date (ISO 8601 format). Represents the date this price was valid.
4323
- */
4324
- date: string;
4325
- /**
4326
- * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
4327
- */
4328
- meta: {
4329
- [key: string]: unknown;
4330
- };
4331
- /**
4332
- * Creation timestamp
4333
- */
4334
- createdAt: string;
4335
- /**
4336
- * Last update timestamp
4337
- */
4338
- updatedAt: string;
4339
- };
4340
- type PriceListResponseDto = {
4341
- /**
4342
- * List of prices
4343
- */
4344
- items: Array<PriceResponseDto>;
4345
- /**
4346
- * Total number of prices
4347
- */
4348
- total: number;
4349
- };
4350
- type UpdateBeanPriceDto = {
4351
- /**
4352
- * Currency being priced
4353
- */
4354
- currency?: string;
4355
- /**
4356
- * Quote currency (pricing currency)
4357
- */
4358
- quoteCurrency?: string;
4359
- /**
4360
- * Price amount (MUST be >= 0 per Beancount spec)
4361
- */
4362
- amount?: number;
4363
- /**
4364
- * Price date (ISO 8601 format)
4365
- */
4366
- date?: string;
4367
- /**
4368
- * Metadata
4369
- */
4370
- metadata?: {
4371
- [key: string]: unknown;
4372
- };
4373
- };
4374
- type CurrencyBalanceDto = {
4375
- /**
4376
- * ISO 4217 currency code
4377
- */
4378
- currency: string;
4379
- /**
4380
- * Balance amount
4381
- */
4382
- balance: string;
4383
- };
4384
- type TimeSeriesPointDto = {
4385
- /**
4386
- * Date in YYYY-MM-DD format
4387
- */
4388
- date: string;
4389
- /**
4390
- * Value at this date (in base currency)
4391
- */
4392
- value: string;
4393
- /**
4394
- * Change from previous point
4395
- */
4396
- change?: {
4397
- [key: string]: unknown;
4398
- };
4399
- /**
4400
- * Multi-currency breakdown for this point
4401
- */
4402
- byCurrency?: Array<CurrencyBalanceDto>;
4403
- };
4404
- type TrendSummaryDto = {
4405
- /**
4406
- * Value at start of period
4407
- */
4408
- startValue: string;
4874
+ unrealizedPnlBase?: {
4875
+ [key: string]: unknown;
4876
+ } | null;
4409
4877
  /**
4410
- * Value at end of period
4878
+ * Unrealized P&L % (Decimal string)
4411
4879
  */
4412
- endValue: string;
4880
+ unrealizedPnlPct?: {
4881
+ [key: string]: unknown;
4882
+ } | null;
4413
4883
  /**
4414
- * Total change over period
4884
+ * Historical FX rate applied to cost basis
4415
4885
  */
4416
- totalChange: string;
4886
+ costFxRate?: FxRateDto | null;
4417
4887
  /**
4418
- * Total change percentage
4888
+ * FX rate applied to market value
4419
4889
  */
4420
- totalChangePercentage: string;
4421
- };
4422
- type MultiCurrencyPointDto = {
4890
+ marketFxRate?: FxRateDto | null;
4423
4891
  /**
4424
- * Date in YYYY-MM-DD format
4892
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4425
4893
  */
4426
- date: string;
4894
+ pctOfInvestedAssets?: {
4895
+ [key: string]: unknown;
4896
+ } | null;
4427
4897
  /**
4428
- * Balances by currency
4898
+ * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
4429
4899
  */
4430
- byCurrency: Array<CurrencyBalanceDto>;
4900
+ realizedPnl?: MonetaryDto | null;
4431
4901
  };
4432
- type PortfolioTrendsResponseDto = {
4902
+ /**
4903
+ * Chart segment token (libs/common resolver)
4904
+ */
4905
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4906
+ type HoldingPnlWarningDto = {
4433
4907
  /**
4434
- * Time series data points
4908
+ * Warning type
4435
4909
  */
4436
- series: Array<TimeSeriesPointDto>;
4910
+ type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4911
+ symbol?: {
4912
+ [key: string]: unknown;
4913
+ } | null;
4914
+ accountId?: {
4915
+ [key: string]: unknown;
4916
+ } | null;
4917
+ currency?: {
4918
+ [key: string]: unknown;
4919
+ } | null;
4920
+ };
4921
+ /**
4922
+ * Warning type
4923
+ */
4924
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4925
+ type HoldingPnlResponseDto = {
4926
+ asOfDate: string;
4927
+ baseCurrency: string;
4437
4928
  /**
4438
- * Period summary
4929
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4439
4930
  */
4440
- summary: TrendSummaryDto;
4931
+ method: 'average' | 'FIFO';
4932
+ rows: Array<HoldingPnlRowDto>;
4933
+ warnings: Array<HoldingPnlWarningDto>;
4934
+ };
4935
+ /**
4936
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4937
+ */
4938
+ type method = 'average' | 'FIFO';
4939
+ type AnonymousLoginDto = {
4441
4940
  /**
4442
- * Period requested
4941
+ * Access token for anonymous login
4443
4942
  */
4444
- period: string;
4943
+ accessToken: string;
4944
+ };
4945
+ type AnonymousLoginResponseDto = {
4445
4946
  /**
4446
- * Data granularity
4947
+ * JWT auth token
4447
4948
  */
4448
- granularity: string;
4949
+ authToken: string;
4950
+ };
4951
+ type SymbolSearchResultDto = {
4952
+ symbol: string;
4953
+ name?: {
4954
+ [key: string]: unknown;
4955
+ } | null;
4956
+ exchange?: {
4957
+ [key: string]: unknown;
4958
+ } | null;
4449
4959
  /**
4450
- * Base currency for converted values
4960
+ * OpenBB asset_type (e.g. stock, etf)
4451
4961
  */
4452
- currency: string;
4962
+ assetType?: {
4963
+ [key: string]: unknown;
4964
+ } | null;
4453
4965
  /**
4454
- * Multi-currency time series (each point has currency breakdown)
4966
+ * IGN asset class (region.types.ts ASSET_CLASSES)
4455
4967
  */
4456
- byCurrency?: Array<MultiCurrencyPointDto>;
4968
+ assetClass?: {
4969
+ [key: string]: unknown;
4970
+ } | null;
4457
4971
  /**
4458
- * Exchange rate warnings
4972
+ * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
4459
4973
  */
4460
- warnings?: Array<ExchangeRateWarningDto>;
4461
- };
4462
- type CashFlowPointDto = {
4974
+ assetSubClass?: {
4975
+ [key: string]: unknown;
4976
+ } | null;
4463
4977
  /**
4464
- * Month key (YYYY-MM)
4978
+ * Trading currency (extra_data or inferred from exchange)
4465
4979
  */
4466
- month: string;
4980
+ currency?: {
4981
+ [key: string]: unknown;
4982
+ } | null;
4983
+ };
4984
+ type SymbolQuoteDto = {
4985
+ symbol?: string;
4986
+ name?: {
4987
+ [key: string]: unknown;
4988
+ } | null;
4989
+ exchange?: {
4990
+ [key: string]: unknown;
4991
+ } | null;
4467
4992
  /**
4468
- * Income in base currency (absolute, converted)
4993
+ * OpenBB asset_type
4469
4994
  */
4470
- income: string;
4995
+ assetType?: {
4996
+ [key: string]: unknown;
4997
+ } | null;
4471
4998
  /**
4472
- * Expense in base currency (absolute, converted)
4999
+ * IGN asset class
4473
5000
  */
4474
- expense: string;
5001
+ assetClass?: {
5002
+ [key: string]: unknown;
5003
+ } | null;
4475
5004
  /**
4476
- * netSavings = income − expense (savings positive)
5005
+ * IGN asset sub-class
4477
5006
  */
4478
- netSavings: string;
4479
- };
4480
- type CashFlowTrendSummaryDto = {
5007
+ assetSubClass?: {
5008
+ [key: string]: unknown;
5009
+ } | null;
4481
5010
  /**
4482
- * Total income across the period
5011
+ * Trading currency (extra_data or inferred from exchange)
4483
5012
  */
4484
- totalIncome: string;
5013
+ currency?: {
5014
+ [key: string]: unknown;
5015
+ } | null;
4485
5016
  /**
4486
- * Total expense across the period
5017
+ * Latest price (Decimal string)
4487
5018
  */
4488
- totalExpense: string;
5019
+ price?: {
5020
+ [key: string]: unknown;
5021
+ } | null;
4489
5022
  /**
4490
- * income expense across the period
5023
+ * Date the price was observed (ISO yyyy-MM-dd)
4491
5024
  */
4492
- totalNetSavings: string;
5025
+ priceDate?: {
5026
+ [key: string]: unknown;
5027
+ } | null;
4493
5028
  /**
4494
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
5029
+ * Change vs previous close, in percentage points (1.7 == 1.7%). openbb stores change_percent as a normalized decimal; this exposes percentage points for frontend convenience.
4495
5030
  */
4496
- averageMonthlyNetSavings: string;
4497
- };
4498
- type CashFlowTrendsResponseDto = {
5031
+ changePercent?: {
5032
+ [key: string]: unknown;
5033
+ } | null;
4499
5034
  /**
4500
- * Monthly cash-flow series (fixed N-month window, zero-filled)
5035
+ * Previous close (Decimal string)
4501
5036
  */
4502
- series: Array<CashFlowPointDto>;
5037
+ prevClose?: {
5038
+ [key: string]: unknown;
5039
+ } | null;
4503
5040
  /**
4504
- * Period totals
5041
+ * Day open (Decimal string)
4505
5042
  */
4506
- summary: CashFlowTrendSummaryDto;
5043
+ open?: {
5044
+ [key: string]: unknown;
5045
+ } | null;
4507
5046
  /**
4508
- * Period requested
5047
+ * Day high (Decimal string)
4509
5048
  */
4510
- period: string;
5049
+ high?: {
5050
+ [key: string]: unknown;
5051
+ } | null;
4511
5052
  /**
4512
- * Data granularity (v1 returns month buckets)
5053
+ * Day low (Decimal string)
4513
5054
  */
4514
- granularity: string;
5055
+ low?: {
5056
+ [key: string]: unknown;
5057
+ } | null;
4515
5058
  /**
4516
- * Base currency for converted values
5059
+ * Day volume (Decimal string)
4517
5060
  */
4518
- currency: string;
5061
+ volume?: {
5062
+ [key: string]: unknown;
5063
+ } | null;
4519
5064
  /**
4520
- * Exchange rate warnings (e.g. missing rate for a currency)
5065
+ * 52-week high (Decimal string)
4521
5066
  */
4522
- warnings?: Array<ExchangeRateWarningDto>;
4523
- };
4524
- type GenerateSnapshotBody = unknown;
4525
- type GenerateSnapshotResponse = unknown;
4526
- type BackfillSnapshotsBody = unknown;
4527
- type BackfillSnapshotsResponse = unknown;
4528
- type AnonymousLoginDto = {
5067
+ yearHigh?: {
5068
+ [key: string]: unknown;
5069
+ } | null;
4529
5070
  /**
4530
- * Access token for anonymous login
5071
+ * 52-week low (Decimal string)
4531
5072
  */
4532
- accessToken: string;
5073
+ yearLow?: {
5074
+ [key: string]: unknown;
5075
+ } | null;
4533
5076
  };
4534
5077
  type AccountControllerCreateData = {
4535
5078
  /**
@@ -4557,7 +5100,7 @@ type AccountControllerFindAllData = {
4557
5100
  */
4558
5101
  region: 'cn' | 'us' | 'de' | 'gb';
4559
5102
  /**
4560
- * Search term for path or i18nKey
5103
+ * Search term for account path
4561
5104
  */
4562
5105
  search?: string;
4563
5106
  /**
@@ -4628,6 +5171,18 @@ type AccountControllerReopenData = {
4628
5171
  requestBody: ReopenAccountDto;
4629
5172
  };
4630
5173
  type AccountControllerReopenResponse = AccountResponseDto;
5174
+ type AccountControllerAddOpeningBalanceData = {
5175
+ /**
5176
+ * Account UUID
5177
+ */
5178
+ id: string;
5179
+ /**
5180
+ * Region code for tenant context
5181
+ */
5182
+ region: 'cn' | 'us' | 'de' | 'gb';
5183
+ requestBody: CreateOpeningBalanceDto;
5184
+ };
5185
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4631
5186
  type AccountStandardsControllerGetTemplatesData = {
4632
5187
  /**
4633
5188
  * Region code (cn, us, de)
@@ -4677,6 +5232,10 @@ type TransactionControllerListData = {
4677
5232
  * Filter by account ID (transactions with postings to this account)
4678
5233
  */
4679
5234
  accountId?: string;
5235
+ /**
5236
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5237
+ */
5238
+ category?: string;
4680
5239
  /**
4681
5240
  * Filter by start date (inclusive), format: YYYY-MM-DD
4682
5241
  */
@@ -4785,7 +5344,7 @@ type TransactionControllerDeleteData = {
4785
5344
  type TransactionControllerDeleteResponse = void;
4786
5345
  type BalanceControllerGetBalanceData = {
4787
5346
  /**
4788
- * Account name (e.g., "Assets:Bank:Checking")
5347
+ * Account name (e.g., "Assets:Checking")
4789
5348
  */
4790
5349
  account: string;
4791
5350
  /**
@@ -5027,76 +5586,161 @@ type CommodityControllerCreateData = {
5027
5586
  * Region code for tenant context
5028
5587
  */
5029
5588
  region: 'cn' | 'us' | 'de' | 'gb';
5030
- requestBody: CreateCommodityDto;
5589
+ requestBody: CreateCommodityDto;
5590
+ };
5591
+ type CommodityControllerCreateResponse = CommodityResponseDto;
5592
+ type CommodityControllerFindAllData = {
5593
+ /**
5594
+ * Region code for tenant context
5595
+ */
5596
+ region: 'cn' | 'us' | 'de' | 'gb';
5597
+ /**
5598
+ * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
5599
+ */
5600
+ search?: string;
5601
+ /**
5602
+ * Filter by exact symbol match
5603
+ */
5604
+ symbol?: string;
5605
+ };
5606
+ type CommodityControllerFindAllResponse = CommodityListResponseDto;
5607
+ type CommodityControllerFindOneData = {
5608
+ /**
5609
+ * Region code for tenant context
5610
+ */
5611
+ region: 'cn' | 'us' | 'de' | 'gb';
5612
+ /**
5613
+ * Commodity symbol
5614
+ */
5615
+ symbol: string;
5616
+ };
5617
+ type CommodityControllerFindOneResponse = CommodityResponseDto;
5618
+ type CommodityControllerUpdateData = {
5619
+ /**
5620
+ * Region code for tenant context
5621
+ */
5622
+ region: 'cn' | 'us' | 'de' | 'gb';
5623
+ requestBody: UpdateCommodityDto;
5624
+ /**
5625
+ * Commodity symbol
5626
+ */
5627
+ symbol: string;
5628
+ };
5629
+ type CommodityControllerUpdateResponse = CommodityResponseDto;
5630
+ type CommodityControllerDeleteData = {
5631
+ /**
5632
+ * Region code for tenant context
5633
+ */
5634
+ region: 'cn' | 'us' | 'de' | 'gb';
5635
+ /**
5636
+ * Commodity symbol
5637
+ */
5638
+ symbol: string;
5639
+ };
5640
+ type CommodityControllerDeleteResponse = void;
5641
+ type CommodityControllerGetOrCreateData = {
5642
+ /**
5643
+ * Region code for tenant context
5644
+ */
5645
+ region: 'cn' | 'us' | 'de' | 'gb';
5646
+ /**
5647
+ * Commodity symbol
5648
+ */
5649
+ symbol: string;
5650
+ };
5651
+ type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
5652
+ type CommodityControllerBulkCreateData = {
5653
+ /**
5654
+ * Region code for tenant context
5655
+ */
5656
+ region: 'cn' | 'us' | 'de' | 'gb';
5031
5657
  };
5032
- type CommodityControllerCreateResponse = CommodityResponseDto;
5033
- type CommodityControllerFindAllData = {
5658
+ type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5659
+ type PriceControllerCreateData = {
5034
5660
  /**
5035
5661
  * Region code for tenant context
5036
5662
  */
5037
5663
  region: 'cn' | 'us' | 'de' | 'gb';
5664
+ requestBody: CreateBeanPriceDto;
5665
+ };
5666
+ type PriceControllerCreateResponse = PriceResponseDto;
5667
+ type PriceControllerFindAllData = {
5038
5668
  /**
5039
- * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
5669
+ * Filter by currency (e.g., BTC, AAPL, USD)
5040
5670
  */
5041
- search?: string;
5671
+ currency?: string;
5042
5672
  /**
5043
- * Filter by exact symbol match
5673
+ * Filter prices from this date (ISO 8601 format)
5044
5674
  */
5045
- symbol?: string;
5046
- };
5047
- type CommodityControllerFindAllResponse = CommodityListResponseDto;
5048
- type CommodityControllerFindOneData = {
5675
+ dateFrom?: string;
5049
5676
  /**
5050
- * Region code for tenant context
5677
+ * Filter prices to this date (ISO 8601 format)
5051
5678
  */
5052
- region: 'cn' | 'us' | 'de' | 'gb';
5679
+ dateTo?: string;
5053
5680
  /**
5054
- * Commodity symbol
5681
+ * Number of items per page (default: 20, max: 100)
5055
5682
  */
5056
- symbol: string;
5057
- };
5058
- type CommodityControllerFindOneResponse = CommodityResponseDto;
5059
- type CommodityControllerUpdateData = {
5683
+ limit?: number;
5684
+ /**
5685
+ * Page number for pagination (default: 1)
5686
+ */
5687
+ page?: number;
5688
+ /**
5689
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5690
+ */
5691
+ quoteCurrency?: string;
5060
5692
  /**
5061
5693
  * Region code for tenant context
5062
5694
  */
5063
5695
  region: 'cn' | 'us' | 'de' | 'gb';
5064
- requestBody: UpdateCommodityDto;
5065
5696
  /**
5066
- * Commodity symbol
5697
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5067
5698
  */
5068
- symbol: string;
5699
+ search?: string;
5069
5700
  };
5070
- type CommodityControllerUpdateResponse = CommodityResponseDto;
5071
- type CommodityControllerDeleteData = {
5701
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5702
+ type PriceControllerFindOneData = {
5703
+ /**
5704
+ * Price ID
5705
+ */
5706
+ id: string;
5072
5707
  /**
5073
5708
  * Region code for tenant context
5074
5709
  */
5075
5710
  region: 'cn' | 'us' | 'de' | 'gb';
5711
+ };
5712
+ type PriceControllerFindOneResponse = PriceResponseDto;
5713
+ type PriceControllerUpdateData = {
5076
5714
  /**
5077
- * Commodity symbol
5715
+ * Price ID
5078
5716
  */
5079
- symbol: string;
5080
- };
5081
- type CommodityControllerDeleteResponse = void;
5082
- type CommodityControllerGetOrCreateData = {
5717
+ id: string;
5083
5718
  /**
5084
5719
  * Region code for tenant context
5085
5720
  */
5086
5721
  region: 'cn' | 'us' | 'de' | 'gb';
5722
+ requestBody: UpdateBeanPriceDto;
5723
+ };
5724
+ type PriceControllerUpdateResponse = PriceResponseDto;
5725
+ type PriceControllerDeleteData = {
5087
5726
  /**
5088
- * Commodity symbol
5727
+ * Price ID
5089
5728
  */
5090
- symbol: string;
5729
+ id: string;
5730
+ /**
5731
+ * Region code for tenant context
5732
+ */
5733
+ region: 'cn' | 'us' | 'de' | 'gb';
5091
5734
  };
5092
- type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
5093
- type CommodityControllerBulkCreateData = {
5735
+ type PriceControllerDeleteResponse = void;
5736
+ type PriceControllerBulkCreateData = {
5094
5737
  /**
5095
5738
  * Region code for tenant context
5096
5739
  */
5097
5740
  region: 'cn' | 'us' | 'de' | 'gb';
5741
+ requestBody: Array<string>;
5098
5742
  };
5099
- type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5743
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
5100
5744
  type RecurringRuleControllerCreateData = {
5101
5745
  /**
5102
5746
  * Region code for tenant context
@@ -5290,6 +5934,120 @@ type ForecastControllerGetForecastData = {
5290
5934
  region: 'cn' | 'us' | 'de' | 'gb';
5291
5935
  };
5292
5936
  type ForecastControllerGetForecastResponse = ForecastResponseDto;
5937
+ type ReportingControllerGetPortfolioTrendsData = {
5938
+ /**
5939
+ * Data granularity
5940
+ */
5941
+ granularity?: 'day' | 'week' | 'month';
5942
+ /**
5943
+ * Time period
5944
+ */
5945
+ period?: '1m' | '3m' | '6m' | '1y';
5946
+ /**
5947
+ * Region code for tenant context
5948
+ */
5949
+ region: 'cn' | 'us' | 'de' | 'gb';
5950
+ };
5951
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5952
+ type ReportingControllerGetCashFlowTrendsData = {
5953
+ /**
5954
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5955
+ */
5956
+ granularity?: 'day' | 'week' | 'month';
5957
+ /**
5958
+ * Time period
5959
+ */
5960
+ period?: '1m' | '3m' | '6m' | '1y';
5961
+ /**
5962
+ * Region code for tenant context
5963
+ */
5964
+ region: 'cn' | 'us' | 'de' | 'gb';
5965
+ };
5966
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5967
+ type ReportingControllerGenerateSnapshotData = {
5968
+ /**
5969
+ * Region code for tenant context
5970
+ */
5971
+ region: 'cn' | 'us' | 'de' | 'gb';
5972
+ /**
5973
+ * Optional date (defaults to today)
5974
+ */
5975
+ requestBody: GenerateSnapshotBody;
5976
+ };
5977
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5978
+ type ReportingControllerBackfillSnapshotsData = {
5979
+ /**
5980
+ * Region code for tenant context
5981
+ */
5982
+ region: 'cn' | 'us' | 'de' | 'gb';
5983
+ requestBody: BackfillSnapshotsBody;
5984
+ };
5985
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5986
+ type UserControllerDeleteOwnUserData = {
5987
+ requestBody: DeleteOwnUserDto;
5988
+ };
5989
+ type UserControllerDeleteOwnUserResponse = void;
5990
+ type UserControllerGetUserData = {
5991
+ acceptLanguage: string;
5992
+ };
5993
+ type UserControllerGetUserResponse = unknown;
5994
+ type UserControllerSignupUserData = {
5995
+ requestBody: SignupDto;
5996
+ };
5997
+ type UserControllerSignupUserResponse = SignupResponseDto;
5998
+ type UserControllerDeleteUserData = {
5999
+ /**
6000
+ * User ID to delete
6001
+ */
6002
+ id: string;
6003
+ };
6004
+ type UserControllerDeleteUserResponse = void;
6005
+ type UserControllerGetUserInfoData = {
6006
+ /**
6007
+ * User ID
6008
+ */
6009
+ id: string;
6010
+ };
6011
+ type UserControllerGetUserInfoResponse = unknown;
6012
+ type UserControllerUpdateUserSettingData = {
6013
+ requestBody: UpdateUserSettingDto;
6014
+ };
6015
+ type UserControllerUpdateUserSettingResponse = unknown;
6016
+ type UserControllerGetAllUserSettingsByPageData = {
6017
+ /**
6018
+ * Page number
6019
+ */
6020
+ pageNo: number;
6021
+ /**
6022
+ * Page size
6023
+ */
6024
+ pageSize: number;
6025
+ };
6026
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6027
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6028
+ type PropertyControllerGetAllResponse = unknown;
6029
+ type PropertyControllerGetByKeyData = {
6030
+ /**
6031
+ * Property key
6032
+ */
6033
+ key: string;
6034
+ };
6035
+ type PropertyControllerGetByKeyResponse = unknown;
6036
+ type PropertyControllerUpdateData = {
6037
+ /**
6038
+ * Property key
6039
+ */
6040
+ key: string;
6041
+ requestBody: UpdatePropertyDto;
6042
+ };
6043
+ type PropertyControllerUpdateResponse = unknown;
6044
+ type PropertyControllerDeleteData = {
6045
+ /**
6046
+ * Property key
6047
+ */
6048
+ key: string;
6049
+ };
6050
+ type PropertyControllerDeleteResponse = void;
5293
6051
  type TransactionRuleControllerCreateData = {
5294
6052
  /**
5295
6053
  * Region code for tenant context
@@ -5366,114 +6124,49 @@ type TransactionRuleControllerGetStatisticsResponse = RuleStatisticsResponseDto;
5366
6124
  type TransactionRuleControllerGetDetailData = {
5367
6125
  /**
5368
6126
  * Region code for tenant context
5369
- */
5370
- region: 'cn' | 'us' | 'de' | 'gb';
5371
- /**
5372
- * Rule ID
5373
- */
5374
- ruleId: string;
5375
- };
5376
- type TransactionRuleControllerGetDetailResponse = TransactionRuleResponseDto;
5377
- type TransactionRuleControllerUpdateData = {
5378
- /**
5379
- * Region code for tenant context
5380
- */
5381
- region: 'cn' | 'us' | 'de' | 'gb';
5382
- requestBody: UpdateTransactionRuleDto;
5383
- /**
5384
- * Rule ID to update
5385
- */
5386
- ruleId: string;
5387
- };
5388
- type TransactionRuleControllerUpdateResponse = TransactionRuleResponseDto;
5389
- type TransactionRuleControllerDeleteData = {
5390
- /**
5391
- * Region code for tenant context
5392
- */
5393
- region: 'cn' | 'us' | 'de' | 'gb';
5394
- /**
5395
- * Rule ID to delete
5396
- */
5397
- ruleId: string;
5398
- };
5399
- type TransactionRuleControllerDeleteResponse = void;
5400
- type TransactionRuleControllerTestData = {
5401
- /**
5402
- * Region code for tenant context
5403
- */
5404
- region: 'cn' | 'us' | 'de' | 'gb';
5405
- requestBody: TestRuleDto;
5406
- /**
5407
- * Rule ID to test
5408
- */
5409
- ruleId: string;
5410
- };
5411
- type TransactionRuleControllerTestResponse = TestRuleResponseDto;
5412
- type UserControllerDeleteOwnUserData = {
5413
- requestBody: DeleteOwnUserDto;
5414
- };
5415
- type UserControllerDeleteOwnUserResponse = void;
5416
- type UserControllerGetUserData = {
5417
- acceptLanguage: string;
5418
- };
5419
- type UserControllerGetUserResponse = unknown;
5420
- type UserControllerSignupUserData = {
5421
- requestBody: SignupDto;
5422
- };
5423
- type UserControllerSignupUserResponse = unknown;
5424
- type UserControllerDeleteUserData = {
5425
- /**
5426
- * User ID to delete
5427
- */
5428
- id: string;
5429
- };
5430
- type UserControllerDeleteUserResponse = void;
5431
- type UserControllerGetUserInfoData = {
6127
+ */
6128
+ region: 'cn' | 'us' | 'de' | 'gb';
5432
6129
  /**
5433
- * User ID
6130
+ * Rule ID
5434
6131
  */
5435
- id: string;
5436
- };
5437
- type UserControllerGetUserInfoResponse = unknown;
5438
- type UserControllerUpdateUserSettingData = {
5439
- requestBody: UpdateUserSettingDto;
6132
+ ruleId: string;
5440
6133
  };
5441
- type UserControllerUpdateUserSettingResponse = unknown;
5442
- type UserControllerGetAllUserSettingsByPageData = {
6134
+ type TransactionRuleControllerGetDetailResponse = TransactionRuleResponseDto;
6135
+ type TransactionRuleControllerUpdateData = {
5443
6136
  /**
5444
- * Page number
6137
+ * Region code for tenant context
5445
6138
  */
5446
- pageNo: number;
6139
+ region: 'cn' | 'us' | 'de' | 'gb';
6140
+ requestBody: UpdateTransactionRuleDto;
5447
6141
  /**
5448
- * Page size
6142
+ * Rule ID to update
5449
6143
  */
5450
- pageSize: number;
6144
+ ruleId: string;
5451
6145
  };
5452
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
5453
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
5454
- type PropertyControllerGetAllResponse = unknown;
5455
- type PropertyControllerGetByKeyData = {
6146
+ type TransactionRuleControllerUpdateResponse = TransactionRuleResponseDto;
6147
+ type TransactionRuleControllerDeleteData = {
5456
6148
  /**
5457
- * Property key
6149
+ * Region code for tenant context
5458
6150
  */
5459
- key: string;
5460
- };
5461
- type PropertyControllerGetByKeyResponse = unknown;
5462
- type PropertyControllerUpdateData = {
6151
+ region: 'cn' | 'us' | 'de' | 'gb';
5463
6152
  /**
5464
- * Property key
6153
+ * Rule ID to delete
5465
6154
  */
5466
- key: string;
5467
- requestBody: UpdatePropertyDto;
6155
+ ruleId: string;
5468
6156
  };
5469
- type PropertyControllerUpdateResponse = unknown;
5470
- type PropertyControllerDeleteData = {
6157
+ type TransactionRuleControllerDeleteResponse = void;
6158
+ type TransactionRuleControllerTestData = {
5471
6159
  /**
5472
- * Property key
6160
+ * Region code for tenant context
5473
6161
  */
5474
- key: string;
6162
+ region: 'cn' | 'us' | 'de' | 'gb';
6163
+ requestBody: TestRuleDto;
6164
+ /**
6165
+ * Rule ID to test
6166
+ */
6167
+ ruleId: string;
5475
6168
  };
5476
- type PropertyControllerDeleteResponse = void;
6169
+ type TransactionRuleControllerTestResponse = TestRuleResponseDto;
5477
6170
  type EventControllerCreateData = {
5478
6171
  /**
5479
6172
  * Region code for tenant context (decorative for life events)
@@ -5560,6 +6253,49 @@ type EventControllerGetSliceData = {
5560
6253
  region: 'cn' | 'us' | 'de' | 'gb';
5561
6254
  };
5562
6255
  type EventControllerGetSliceResponse = unknown;
6256
+ type OnboardingControllerBootstrapData = {
6257
+ /**
6258
+ * Region code for tenant context
6259
+ */
6260
+ region: 'cn' | 'us' | 'de' | 'gb';
6261
+ requestBody: OnboardingDto;
6262
+ };
6263
+ type OnboardingControllerBootstrapResponse = unknown;
6264
+ type ReconciliationControllerComputeData = {
6265
+ /**
6266
+ * Region code for tenant context (decorative for reconciliation)
6267
+ */
6268
+ region: 'cn' | 'us' | 'de' | 'gb';
6269
+ requestBody: ComputeReconciliationDto;
6270
+ };
6271
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
6272
+ type ReconciliationControllerAssertData = {
6273
+ /**
6274
+ * Region code for tenant context (decorative for reconciliation)
6275
+ */
6276
+ region: 'cn' | 'us' | 'de' | 'gb';
6277
+ requestBody: AssertReconciliationDto;
6278
+ };
6279
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
6280
+ type ReconciliationControllerPadData = {
6281
+ /**
6282
+ * Region code for tenant context (decorative for reconciliation)
6283
+ */
6284
+ region: 'cn' | 'us' | 'de' | 'gb';
6285
+ requestBody: PadReconciliationDto;
6286
+ };
6287
+ type ReconciliationControllerPadResponse = PadResultDto;
6288
+ type ReconciliationControllerHistoryData = {
6289
+ /**
6290
+ * BeanAccount id
6291
+ */
6292
+ accountId: string;
6293
+ /**
6294
+ * Region code for tenant context (decorative for reconciliation)
6295
+ */
6296
+ region: 'cn' | 'us' | 'de' | 'gb';
6297
+ };
6298
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
5563
6299
  type ExportControllerExportBeancountResponse = unknown;
5564
6300
  type FileImportControllerImportFileData = {
5565
6301
  /**
@@ -5639,38 +6375,6 @@ type ImporterConfigControllerResetConfigData = {
5639
6375
  region: 'cn' | 'us' | 'de' | 'gb';
5640
6376
  };
5641
6377
  type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
5642
- type PlatformControllerFindAllResponse = unknown;
5643
- type PlatformControllerCreateData = {
5644
- requestBody: CreatePlatformDto;
5645
- };
5646
- type PlatformControllerCreateResponse = unknown;
5647
- type PlatformControllerGetPlatformListResponse = unknown;
5648
- type PlatformControllerMatchPlatformsData = {
5649
- /**
5650
- * Search query — Chinese name, English name, or abbreviation
5651
- */
5652
- q: string;
5653
- /**
5654
- * Region code for category override lookup
5655
- */
5656
- region?: string;
5657
- };
5658
- type PlatformControllerMatchPlatformsResponse = unknown;
5659
- type PlatformControllerUpdateData = {
5660
- /**
5661
- * Platform ID
5662
- */
5663
- id: string;
5664
- requestBody: UpdatePlatformDto;
5665
- };
5666
- type PlatformControllerUpdateResponse = unknown;
5667
- type PlatformControllerDeleteData = {
5668
- /**
5669
- * Platform ID
5670
- */
5671
- id: string;
5672
- };
5673
- type PlatformControllerDeleteResponse = void;
5674
6378
  type ProviderSyncControllerSyncData = {
5675
6379
  /**
5676
6380
  * Provider name
@@ -5701,6 +6405,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
5701
6405
  region: 'cn' | 'us' | 'de' | 'gb';
5702
6406
  };
5703
6407
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6408
+ type ExternalAccountLinkControllerCreateData = {
6409
+ /**
6410
+ * Region code for tenant context
6411
+ */
6412
+ region: 'cn' | 'us' | 'de' | 'gb';
6413
+ requestBody: CreateExternalAccountLinkDto;
6414
+ };
6415
+ type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
6416
+ type ExternalAccountLinkControllerFindAllData = {
6417
+ provider: string;
6418
+ /**
6419
+ * Region code for tenant context
6420
+ */
6421
+ region: 'cn' | 'us' | 'de' | 'gb';
6422
+ };
6423
+ type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6424
+ type ExternalAccountLinkControllerFindOneData = {
6425
+ id: string;
6426
+ /**
6427
+ * Region code for tenant context
6428
+ */
6429
+ region: 'cn' | 'us' | 'de' | 'gb';
6430
+ };
6431
+ type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6432
+ type ExternalAccountLinkControllerRemoveData = {
6433
+ id: string;
6434
+ /**
6435
+ * Region code for tenant context
6436
+ */
6437
+ region: 'cn' | 'us' | 'de' | 'gb';
6438
+ };
6439
+ type ExternalAccountLinkControllerRemoveResponse = void;
5704
6440
  type TelemetryControllerReportTelemetryData = {
5705
6441
  /**
5706
6442
  * Region code for tenant context
@@ -5761,173 +6497,90 @@ type NlpControllerGetSessionData = {
5761
6497
  sessionId?: string;
5762
6498
  };
5763
6499
  type NlpControllerGetSessionResponse = unknown;
5764
- type DashboardControllerGetNetWorthData = {
5765
- /**
5766
- * Date for balance calculation (ISO 8601 format)
5767
- */
5768
- date?: string;
5769
- /**
5770
- * Region code for tenant context
5771
- */
5772
- region: 'cn' | 'us' | 'de' | 'gb';
5773
- };
5774
- type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
5775
- type DashboardControllerGetAccountsData = {
5776
- /**
5777
- * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
5778
- */
5779
- accountId?: string;
5780
- /**
5781
- * Date for balance calculation (ISO 8601 format)
5782
- */
5783
- date?: string;
5784
- /**
5785
- * Grouping strategy
5786
- */
5787
- groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
5788
- /**
5789
- * Region code for tenant context
5790
- */
5791
- region: 'cn' | 'us' | 'de' | 'gb';
5792
- };
5793
- type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
5794
- type DashboardControllerGetCashFlowData = {
5795
- /**
5796
- * Period in YYYY-MM format
5797
- */
5798
- period: string;
5799
- /**
5800
- * Region code for tenant context
5801
- */
5802
- region: 'cn' | 'us' | 'de' | 'gb';
6500
+ type PlatformControllerFindAllResponse = unknown;
6501
+ type PlatformControllerCreateData = {
6502
+ requestBody: CreatePlatformDto;
5803
6503
  };
5804
- type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
5805
- type HoldingPnlControllerGetHoldingPnlData = {
5806
- /**
5807
- * Scope to a single account
5808
- */
5809
- accountId?: string;
5810
- /**
5811
- * As-of date (ISO 8601), defaults to today
5812
- */
5813
- asOf?: string;
5814
- /**
5815
- * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
5816
- */
5817
- method?: 'FIFO' | 'average';
6504
+ type PlatformControllerCreateResponse = unknown;
6505
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6506
+ type PlatformControllerMatchPlatformsData = {
5818
6507
  /**
5819
- * Region code for tenant context
6508
+ * Search query Chinese name, English name, or abbreviation
5820
6509
  */
5821
- region: 'cn' | 'us' | 'de' | 'gb';
5822
- };
5823
- type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5824
- type PriceControllerCreateData = {
6510
+ q: string;
5825
6511
  /**
5826
- * Region code for tenant context
6512
+ * Region code for category override lookup
5827
6513
  */
5828
- region: 'cn' | 'us' | 'de' | 'gb';
5829
- requestBody: CreateBeanPriceDto;
6514
+ region?: string;
5830
6515
  };
5831
- type PriceControllerCreateResponse = PriceResponseDto;
5832
- type PriceControllerFindAllData = {
5833
- /**
5834
- * Filter by currency (e.g., BTC, AAPL, USD)
5835
- */
5836
- currency?: string;
5837
- /**
5838
- * Filter prices from this date (ISO 8601 format)
5839
- */
5840
- dateFrom?: string;
5841
- /**
5842
- * Filter prices to this date (ISO 8601 format)
5843
- */
5844
- dateTo?: string;
5845
- /**
5846
- * Number of items per page (default: 20, max: 100)
5847
- */
5848
- limit?: number;
5849
- /**
5850
- * Page number for pagination (default: 1)
5851
- */
5852
- page?: number;
5853
- /**
5854
- * Filter by quote currency (pricing currency, e.g., USD, CNY)
5855
- */
5856
- quoteCurrency?: string;
5857
- /**
5858
- * Region code for tenant context
5859
- */
5860
- region: 'cn' | 'us' | 'de' | 'gb';
6516
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6517
+ type PlatformControllerUpdateData = {
5861
6518
  /**
5862
- * Search term for currency or quoteCurrency (case-insensitive partial match)
6519
+ * Platform ID
5863
6520
  */
5864
- search?: string;
6521
+ id: string;
6522
+ requestBody: UpdatePlatformDto;
5865
6523
  };
5866
- type PriceControllerFindAllResponse = PriceListResponseDto;
5867
- type PriceControllerFindOneData = {
6524
+ type PlatformControllerUpdateResponse = unknown;
6525
+ type PlatformControllerDeleteData = {
5868
6526
  /**
5869
- * Price ID
6527
+ * Platform ID
5870
6528
  */
5871
6529
  id: string;
5872
- /**
5873
- * Region code for tenant context
5874
- */
5875
- region: 'cn' | 'us' | 'de' | 'gb';
5876
6530
  };
5877
- type PriceControllerFindOneResponse = PriceResponseDto;
5878
- type PriceControllerUpdateData = {
6531
+ type PlatformControllerDeleteResponse = void;
6532
+ type DashboardControllerGetNetWorthData = {
5879
6533
  /**
5880
- * Price ID
6534
+ * Date for balance calculation (ISO 8601 format)
5881
6535
  */
5882
- id: string;
6536
+ date?: string;
5883
6537
  /**
5884
6538
  * Region code for tenant context
5885
6539
  */
5886
6540
  region: 'cn' | 'us' | 'de' | 'gb';
5887
- requestBody: UpdateBeanPriceDto;
5888
6541
  };
5889
- type PriceControllerUpdateResponse = PriceResponseDto;
5890
- type PriceControllerDeleteData = {
6542
+ type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
6543
+ type DashboardControllerGetAccountsData = {
5891
6544
  /**
5892
- * Price ID
6545
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
5893
6546
  */
5894
- id: string;
6547
+ accountId?: string;
5895
6548
  /**
5896
- * Region code for tenant context
6549
+ * Date for balance calculation (ISO 8601 format)
5897
6550
  */
5898
- region: 'cn' | 'us' | 'de' | 'gb';
5899
- };
5900
- type PriceControllerDeleteResponse = void;
5901
- type PriceControllerBulkCreateData = {
6551
+ date?: string;
6552
+ /**
6553
+ * Grouping strategy
6554
+ */
6555
+ groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
5902
6556
  /**
5903
6557
  * Region code for tenant context
5904
6558
  */
5905
6559
  region: 'cn' | 'us' | 'de' | 'gb';
5906
- requestBody: Array<string>;
5907
6560
  };
5908
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
5909
- type ReportingControllerGetPortfolioTrendsData = {
5910
- /**
5911
- * Data granularity
5912
- */
5913
- granularity?: 'day' | 'week' | 'month';
6561
+ type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6562
+ type DashboardControllerGetCashFlowData = {
5914
6563
  /**
5915
- * Time period
6564
+ * Period in YYYY-MM format
5916
6565
  */
5917
- period?: '1m' | '3m' | '6m' | '1y';
6566
+ period: string;
5918
6567
  /**
5919
6568
  * Region code for tenant context
5920
6569
  */
5921
6570
  region: 'cn' | 'us' | 'de' | 'gb';
5922
6571
  };
5923
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5924
- type ReportingControllerGetCashFlowTrendsData = {
6572
+ type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
6573
+ type DashboardControllerGetExpensesData = {
5925
6574
  /**
5926
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
6575
+ * Account root to aggregate (expense ^Expenses:, income ^Income:)
5927
6576
  */
5928
- granularity?: 'day' | 'week' | 'month';
6577
+ flow?: 'expense' | 'income';
5929
6578
  /**
5930
- * Time period
6579
+ * Grouping strategy
6580
+ */
6581
+ groupBy?: 'category';
6582
+ /**
6583
+ * Time window (1m = current calendar month)
5931
6584
  */
5932
6585
  period?: '1m' | '3m' | '6m' | '1y';
5933
6586
  /**
@@ -5935,31 +6588,31 @@ type ReportingControllerGetCashFlowTrendsData = {
5935
6588
  */
5936
6589
  region: 'cn' | 'us' | 'de' | 'gb';
5937
6590
  };
5938
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5939
- type ReportingControllerGenerateSnapshotData = {
6591
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6592
+ type HoldingPnlControllerGetHoldingPnlData = {
5940
6593
  /**
5941
- * Region code for tenant context
6594
+ * Scope to a single account
5942
6595
  */
5943
- region: 'cn' | 'us' | 'de' | 'gb';
6596
+ accountId?: string;
5944
6597
  /**
5945
- * Optional date (defaults to today)
6598
+ * As-of date (ISO 8601), defaults to today
5946
6599
  */
5947
- requestBody: GenerateSnapshotBody;
5948
- };
5949
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5950
- type ReportingControllerBackfillSnapshotsData = {
6600
+ asOf?: string;
6601
+ /**
6602
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
6603
+ */
6604
+ method?: 'FIFO' | 'average';
5951
6605
  /**
5952
6606
  * Region code for tenant context
5953
6607
  */
5954
6608
  region: 'cn' | 'us' | 'de' | 'gb';
5955
- requestBody: BackfillSnapshotsBody;
5956
6609
  };
5957
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6610
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5958
6611
  type ApiKeysControllerCreateApiKeyResponse = unknown;
5959
6612
  type AuthControllerAccessTokenLoginData = {
5960
6613
  requestBody: AnonymousLoginDto;
5961
6614
  };
5962
- type AuthControllerAccessTokenLoginResponse = unknown;
6615
+ type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
5963
6616
  type CacheControllerFlushCacheResponse = unknown;
5964
6617
  type ExchangeRateControllerGetExchangeRateData = {
5965
6618
  /**
@@ -5986,6 +6639,29 @@ type HealthControllerResetCircuitBreakerData = {
5986
6639
  type HealthControllerResetCircuitBreakerResponse = unknown;
5987
6640
  type HealthControllerGetMetricsResponse = unknown;
5988
6641
  type InfoControllerGetInfoResponse = unknown;
6642
+ type SymbolControllerSearchData = {
6643
+ /**
6644
+ * Filter by OpenBB asset_type (e.g. stock, etf)
6645
+ */
6646
+ assetType?: string;
6647
+ /**
6648
+ * Filter by exchange code (e.g. US, HK, SS, SZ)
6649
+ */
6650
+ exchange?: string;
6651
+ /**
6652
+ * Maximum number of results (clamped 1..50)
6653
+ */
6654
+ limit?: number;
6655
+ /**
6656
+ * Search term — matched against symbol and instrument name. Empty string returns [].
6657
+ */
6658
+ q: string;
6659
+ };
6660
+ type SymbolControllerSearchResponse = Array<SymbolSearchResultDto>;
6661
+ type SymbolControllerGetQuoteData = {
6662
+ symbol: string;
6663
+ };
6664
+ type SymbolControllerGetQuoteResponse = SymbolQuoteDto;
5989
6665
  type $OpenApiTs = {
5990
6666
  '/api/v1/{region}/bean/accounts': {
5991
6667
  post: {
@@ -6094,6 +6770,25 @@ type $OpenApiTs = {
6094
6770
  };
6095
6771
  };
6096
6772
  };
6773
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6774
+ post: {
6775
+ req: AccountControllerAddOpeningBalanceData;
6776
+ res: {
6777
+ /**
6778
+ * Opening-balance transaction created
6779
+ */
6780
+ 201: OpeningBalanceResultDto;
6781
+ /**
6782
+ * Account not found
6783
+ */
6784
+ 404: unknown;
6785
+ /**
6786
+ * An opening balance already exists for this account
6787
+ */
6788
+ 409: unknown;
6789
+ };
6790
+ };
6791
+ };
6097
6792
  '/api/v1/{region}/bean/account-standards': {
6098
6793
  get: {
6099
6794
  req: AccountStandardsControllerGetTemplatesData;
@@ -6702,6 +7397,90 @@ type $OpenApiTs = {
6702
7397
  };
6703
7398
  };
6704
7399
  };
7400
+ '/api/v1/{region}/bean/prices': {
7401
+ post: {
7402
+ req: PriceControllerCreateData;
7403
+ res: {
7404
+ /**
7405
+ * Price created successfully
7406
+ */
7407
+ 201: PriceResponseDto;
7408
+ /**
7409
+ * Currency or quoteCurrency commodity not found
7410
+ */
7411
+ 404: unknown;
7412
+ /**
7413
+ * Price already exists for this currency pair and date
7414
+ */
7415
+ 409: unknown;
7416
+ };
7417
+ };
7418
+ get: {
7419
+ req: PriceControllerFindAllData;
7420
+ res: {
7421
+ /**
7422
+ * Prices retrieved successfully
7423
+ */
7424
+ 200: PriceListResponseDto;
7425
+ };
7426
+ };
7427
+ };
7428
+ '/api/v1/{region}/bean/prices/{id}': {
7429
+ get: {
7430
+ req: PriceControllerFindOneData;
7431
+ res: {
7432
+ /**
7433
+ * Price retrieved successfully
7434
+ */
7435
+ 200: PriceResponseDto;
7436
+ /**
7437
+ * Price not found
7438
+ */
7439
+ 404: unknown;
7440
+ };
7441
+ };
7442
+ put: {
7443
+ req: PriceControllerUpdateData;
7444
+ res: {
7445
+ /**
7446
+ * Price updated successfully
7447
+ */
7448
+ 200: PriceResponseDto;
7449
+ /**
7450
+ * Price not found
7451
+ */
7452
+ 404: unknown;
7453
+ /**
7454
+ * Updated price conflicts with existing price
7455
+ */
7456
+ 409: unknown;
7457
+ };
7458
+ };
7459
+ delete: {
7460
+ req: PriceControllerDeleteData;
7461
+ res: {
7462
+ /**
7463
+ * Price deleted successfully
7464
+ */
7465
+ 204: void;
7466
+ /**
7467
+ * Price not found
7468
+ */
7469
+ 404: unknown;
7470
+ };
7471
+ };
7472
+ };
7473
+ '/api/v1/{region}/bean/prices/bulk': {
7474
+ post: {
7475
+ req: PriceControllerBulkCreateData;
7476
+ res: {
7477
+ /**
7478
+ * Prices created successfully
7479
+ */
7480
+ 201: Array<PriceResponseDto>;
7481
+ };
7482
+ };
7483
+ };
6705
7484
  '/api/v1/{region}/bean/recurring-rules': {
6706
7485
  post: {
6707
7486
  req: RecurringRuleControllerCreateData;
@@ -6952,397 +7731,469 @@ type $OpenApiTs = {
6952
7731
  };
6953
7732
  };
6954
7733
  };
6955
- '/api/v1/{region}/bean/transaction-rules': {
7734
+ '/api/v1/{region}/reporting/portfolio/trends': {
7735
+ get: {
7736
+ req: ReportingControllerGetPortfolioTrendsData;
7737
+ res: {
7738
+ /**
7739
+ * Trends retrieved successfully
7740
+ */
7741
+ 200: PortfolioTrendsResponseDto;
7742
+ /**
7743
+ * User not authenticated
7744
+ */
7745
+ 401: unknown;
7746
+ };
7747
+ };
7748
+ };
7749
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7750
+ get: {
7751
+ req: ReportingControllerGetCashFlowTrendsData;
7752
+ res: {
7753
+ /**
7754
+ * Cash-flow trends retrieved successfully
7755
+ */
7756
+ 200: CashFlowTrendsResponseDto;
7757
+ /**
7758
+ * User not authenticated
7759
+ */
7760
+ 401: unknown;
7761
+ };
7762
+ };
7763
+ };
7764
+ '/api/v1/{region}/reporting/snapshots/generate': {
6956
7765
  post: {
6957
- req: TransactionRuleControllerCreateData;
7766
+ req: ReportingControllerGenerateSnapshotData;
6958
7767
  res: {
6959
7768
  /**
6960
- * Rule updated successfully (upsert mode)
7769
+ * Snapshot generated successfully
6961
7770
  */
6962
- 200: TransactionRuleResponseDto;
7771
+ 200: GenerateSnapshotResponse;
6963
7772
  /**
6964
- * Validation failed
7773
+ * Invalid date format
6965
7774
  */
6966
- 400: ApiProblemResponseDto;
7775
+ 400: unknown;
6967
7776
  /**
6968
- * Unauthorized
7777
+ * User not authenticated
6969
7778
  */
6970
- 401: ApiProblemResponseDto;
7779
+ 401: unknown;
7780
+ };
7781
+ };
7782
+ };
7783
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7784
+ post: {
7785
+ req: ReportingControllerBackfillSnapshotsData;
7786
+ res: {
6971
7787
  /**
6972
- * Resource conflict - another process is updating this rule
7788
+ * Backfill completed successfully
7789
+ */
7790
+ 200: BackfillSnapshotsResponse;
7791
+ /**
7792
+ * Invalid date format or range
7793
+ */
7794
+ 400: unknown;
7795
+ /**
7796
+ * User not authenticated
7797
+ */
7798
+ 401: unknown;
7799
+ /**
7800
+ * Backfill already in progress for this user
7801
+ */
7802
+ 409: unknown;
7803
+ };
7804
+ };
7805
+ };
7806
+ '/api/v1/users': {
7807
+ delete: {
7808
+ req: UserControllerDeleteOwnUserData;
7809
+ res: {
7810
+ /**
7811
+ * User deleted successfully
7812
+ */
7813
+ 204: void;
7814
+ /**
7815
+ * Invalid access token
6973
7816
  */
6974
- 409: ApiProblemResponseDto;
7817
+ 403: unknown;
6975
7818
  };
6976
7819
  };
6977
7820
  get: {
6978
- req: TransactionRuleControllerListData;
7821
+ req: UserControllerGetUserData;
6979
7822
  res: {
6980
7823
  /**
6981
- * List of rules
6982
- */
6983
- 200: TransactionRuleListResponseDto;
6984
- /**
6985
- * Unauthorized
7824
+ * User retrieved successfully
6986
7825
  */
6987
- 401: ApiProblemResponseDto;
7826
+ 200: unknown;
6988
7827
  };
6989
7828
  };
6990
- };
6991
- '/api/v1/{region}/bean/transaction-rules/validate': {
6992
7829
  post: {
6993
- req: TransactionRuleControllerValidateData;
7830
+ req: UserControllerSignupUserData;
6994
7831
  res: {
6995
7832
  /**
6996
- * Validation result
7833
+ * User created successfully
6997
7834
  */
6998
- 200: ValidateRuleResponseDto;
7835
+ 201: SignupResponseDto;
6999
7836
  /**
7000
- * Validation failed
7837
+ * Invalid Turnstile token (when Turnstile is enabled)
7001
7838
  */
7002
- 400: ApiProblemResponseDto;
7839
+ 400: unknown;
7003
7840
  /**
7004
- * Unauthorized
7841
+ * User signup is disabled
7005
7842
  */
7006
- 401: ApiProblemResponseDto;
7843
+ 403: unknown;
7007
7844
  };
7008
7845
  };
7009
7846
  };
7010
- '/api/v1/{region}/bean/transaction-rules/bulk': {
7011
- post: {
7012
- req: TransactionRuleControllerBulkCreateData;
7847
+ '/api/v1/users/{id}': {
7848
+ delete: {
7849
+ req: UserControllerDeleteUserData;
7013
7850
  res: {
7014
7851
  /**
7015
- * Bulk create completed
7016
- */
7017
- 201: BulkCreateRulesResponseDto;
7018
- /**
7019
- * Invalid bulk create data
7852
+ * User deleted successfully
7020
7853
  */
7021
- 400: ApiProblemResponseDto;
7854
+ 204: void;
7022
7855
  /**
7023
- * Unauthorized
7856
+ * Cannot delete own account or insufficient permissions
7024
7857
  */
7025
- 401: ApiProblemResponseDto;
7858
+ 403: unknown;
7026
7859
  };
7027
7860
  };
7028
7861
  };
7029
- '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7862
+ '/api/v1/users/{id}/info': {
7030
7863
  get: {
7031
- req: TransactionRuleControllerExportData;
7864
+ req: UserControllerGetUserInfoData;
7032
7865
  res: {
7033
7866
  /**
7034
- * Exported rules
7035
- */
7036
- 200: ExportRulesResponseDto;
7037
- /**
7038
- * Unsupported format
7867
+ * User info retrieved successfully
7039
7868
  */
7040
- 400: ApiProblemResponseDto;
7869
+ 200: unknown;
7041
7870
  /**
7042
- * Unauthorized
7871
+ * Cannot access other user info without admin permission
7043
7872
  */
7044
- 401: ApiProblemResponseDto;
7873
+ 403: unknown;
7045
7874
  };
7046
7875
  };
7047
7876
  };
7048
- '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7049
- get: {
7050
- req: TransactionRuleControllerGetStatisticsData;
7877
+ '/api/v1/users/setting': {
7878
+ put: {
7879
+ req: UserControllerUpdateUserSettingData;
7051
7880
  res: {
7052
7881
  /**
7053
- * Rule statistics
7882
+ * Settings updated successfully
7054
7883
  */
7055
- 200: RuleStatisticsResponseDto;
7884
+ 200: unknown;
7056
7885
  /**
7057
- * Unauthorized
7886
+ * Insufficient permissions
7058
7887
  */
7059
- 401: ApiProblemResponseDto;
7888
+ 403: unknown;
7060
7889
  };
7061
7890
  };
7062
7891
  };
7063
- '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7892
+ '/api/v1/users/settings-by-page': {
7064
7893
  get: {
7065
- req: TransactionRuleControllerGetDetailData;
7894
+ req: UserControllerGetAllUserSettingsByPageData;
7066
7895
  res: {
7067
7896
  /**
7068
- * Rule details
7069
- */
7070
- 200: TransactionRuleResponseDto;
7071
- /**
7072
- * Unauthorized
7073
- */
7074
- 401: ApiProblemResponseDto;
7075
- /**
7076
- * Forbidden - not owner of rule
7077
- */
7078
- 403: ApiProblemResponseDto;
7079
- /**
7080
- * Rule not found
7897
+ * Settings list retrieved successfully
7081
7898
  */
7082
- 404: ApiProblemResponseDto;
7899
+ 200: unknown;
7083
7900
  };
7084
7901
  };
7085
- put: {
7086
- req: TransactionRuleControllerUpdateData;
7902
+ };
7903
+ '/api/v1/users/asset-liability-summary': {
7904
+ get: {
7087
7905
  res: {
7088
7906
  /**
7089
- * Rule updated successfully
7907
+ * Summary retrieved successfully
7090
7908
  */
7091
- 200: TransactionRuleResponseDto;
7909
+ 200: unknown;
7910
+ };
7911
+ };
7912
+ };
7913
+ '/api/v1/admin/properties': {
7914
+ get: {
7915
+ res: {
7092
7916
  /**
7093
- * Validation failed
7917
+ * Properties retrieved successfully
7094
7918
  */
7095
- 400: ApiProblemResponseDto;
7919
+ 200: unknown;
7096
7920
  /**
7097
7921
  * Unauthorized
7098
7922
  */
7099
- 401: ApiProblemResponseDto;
7100
- /**
7101
- * Forbidden - not owner of rule
7102
- */
7103
- 403: ApiProblemResponseDto;
7104
- /**
7105
- * Rule not found
7106
- */
7107
- 404: ApiProblemResponseDto;
7923
+ 401: unknown;
7108
7924
  /**
7109
- * Resource conflict - rule is being modified by another process
7925
+ * Forbidden - insufficient permissions
7110
7926
  */
7111
- 409: ApiProblemResponseDto;
7927
+ 403: unknown;
7112
7928
  };
7113
7929
  };
7114
- delete: {
7115
- req: TransactionRuleControllerDeleteData;
7930
+ };
7931
+ '/api/v1/admin/properties/{key}': {
7932
+ get: {
7933
+ req: PropertyControllerGetByKeyData;
7116
7934
  res: {
7117
7935
  /**
7118
- * Rule deleted successfully
7936
+ * Property retrieved successfully
7119
7937
  */
7120
- 204: void;
7938
+ 200: unknown;
7121
7939
  /**
7122
7940
  * Unauthorized
7123
7941
  */
7124
- 401: ApiProblemResponseDto;
7125
- /**
7126
- * Forbidden - not owner of rule
7127
- */
7128
- 403: ApiProblemResponseDto;
7942
+ 401: unknown;
7129
7943
  /**
7130
- * Rule not found
7944
+ * Forbidden - insufficient permissions
7131
7945
  */
7132
- 404: ApiProblemResponseDto;
7946
+ 403: unknown;
7133
7947
  /**
7134
- * Resource conflict - rule is being modified by another process
7948
+ * Property not found
7135
7949
  */
7136
- 409: ApiProblemResponseDto;
7950
+ 404: unknown;
7137
7951
  };
7138
7952
  };
7139
- };
7140
- '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
7141
- post: {
7142
- req: TransactionRuleControllerTestData;
7953
+ put: {
7954
+ req: PropertyControllerUpdateData;
7143
7955
  res: {
7144
7956
  /**
7145
- * Test result
7957
+ * Property updated successfully
7146
7958
  */
7147
- 200: TestRuleResponseDto;
7959
+ 200: unknown;
7148
7960
  /**
7149
7961
  * Unauthorized
7150
7962
  */
7151
- 401: ApiProblemResponseDto;
7152
- /**
7153
- * Forbidden - not owner of rule
7154
- */
7155
- 403: ApiProblemResponseDto;
7963
+ 401: unknown;
7156
7964
  /**
7157
- * Rule not found
7965
+ * Forbidden - insufficient permissions
7158
7966
  */
7159
- 404: ApiProblemResponseDto;
7967
+ 403: unknown;
7160
7968
  };
7161
7969
  };
7162
- };
7163
- '/api/v1/users': {
7164
7970
  delete: {
7165
- req: UserControllerDeleteOwnUserData;
7971
+ req: PropertyControllerDeleteData;
7166
7972
  res: {
7167
7973
  /**
7168
- * User deleted successfully
7974
+ * Property deleted successfully
7169
7975
  */
7170
7976
  204: void;
7171
7977
  /**
7172
- * Invalid access token
7978
+ * Unauthorized
7979
+ */
7980
+ 401: unknown;
7981
+ /**
7982
+ * Forbidden - insufficient permissions
7173
7983
  */
7174
7984
  403: unknown;
7175
- };
7176
- };
7177
- get: {
7178
- req: UserControllerGetUserData;
7179
- res: {
7180
7985
  /**
7181
- * User retrieved successfully
7986
+ * Property not found
7182
7987
  */
7183
- 200: unknown;
7988
+ 404: unknown;
7184
7989
  };
7185
7990
  };
7991
+ };
7992
+ '/api/v1/{region}/bean/transaction-rules': {
7186
7993
  post: {
7187
- req: UserControllerSignupUserData;
7994
+ req: TransactionRuleControllerCreateData;
7188
7995
  res: {
7189
7996
  /**
7190
- * User created successfully
7997
+ * Rule updated successfully (upsert mode)
7191
7998
  */
7192
- 201: unknown;
7999
+ 200: TransactionRuleResponseDto;
7193
8000
  /**
7194
- * Invalid Turnstile token (when Turnstile is enabled)
8001
+ * Validation failed
7195
8002
  */
7196
- 400: unknown;
8003
+ 400: ApiProblemResponseDto;
7197
8004
  /**
7198
- * User signup is disabled
8005
+ * Unauthorized
7199
8006
  */
7200
- 403: unknown;
8007
+ 401: ApiProblemResponseDto;
8008
+ /**
8009
+ * Resource conflict - another process is updating this rule
8010
+ */
8011
+ 409: ApiProblemResponseDto;
7201
8012
  };
7202
8013
  };
7203
- };
7204
- '/api/v1/users/{id}': {
7205
- delete: {
7206
- req: UserControllerDeleteUserData;
8014
+ get: {
8015
+ req: TransactionRuleControllerListData;
7207
8016
  res: {
7208
8017
  /**
7209
- * User deleted successfully
8018
+ * List of rules
7210
8019
  */
7211
- 204: void;
8020
+ 200: TransactionRuleListResponseDto;
7212
8021
  /**
7213
- * Cannot delete own account or insufficient permissions
8022
+ * Unauthorized
7214
8023
  */
7215
- 403: unknown;
8024
+ 401: ApiProblemResponseDto;
7216
8025
  };
7217
8026
  };
7218
8027
  };
7219
- '/api/v1/users/{id}/info': {
7220
- get: {
7221
- req: UserControllerGetUserInfoData;
8028
+ '/api/v1/{region}/bean/transaction-rules/validate': {
8029
+ post: {
8030
+ req: TransactionRuleControllerValidateData;
7222
8031
  res: {
7223
8032
  /**
7224
- * User info retrieved successfully
8033
+ * Validation result
7225
8034
  */
7226
- 200: unknown;
8035
+ 200: ValidateRuleResponseDto;
7227
8036
  /**
7228
- * Cannot access other user info without admin permission
8037
+ * Validation failed
7229
8038
  */
7230
- 403: unknown;
8039
+ 400: ApiProblemResponseDto;
8040
+ /**
8041
+ * Unauthorized
8042
+ */
8043
+ 401: ApiProblemResponseDto;
7231
8044
  };
7232
8045
  };
7233
8046
  };
7234
- '/api/v1/users/setting': {
7235
- put: {
7236
- req: UserControllerUpdateUserSettingData;
8047
+ '/api/v1/{region}/bean/transaction-rules/bulk': {
8048
+ post: {
8049
+ req: TransactionRuleControllerBulkCreateData;
7237
8050
  res: {
7238
8051
  /**
7239
- * Settings updated successfully
8052
+ * Bulk create completed
8053
+ */
8054
+ 201: BulkCreateRulesResponseDto;
8055
+ /**
8056
+ * Invalid bulk create data
7240
8057
  */
7241
- 200: unknown;
8058
+ 400: ApiProblemResponseDto;
7242
8059
  /**
7243
- * Insufficient permissions
8060
+ * Unauthorized
7244
8061
  */
7245
- 403: unknown;
8062
+ 401: ApiProblemResponseDto;
7246
8063
  };
7247
8064
  };
7248
8065
  };
7249
- '/api/v1/users/settings-by-page': {
8066
+ '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7250
8067
  get: {
7251
- req: UserControllerGetAllUserSettingsByPageData;
8068
+ req: TransactionRuleControllerExportData;
7252
8069
  res: {
7253
8070
  /**
7254
- * Settings list retrieved successfully
8071
+ * Exported rules
7255
8072
  */
7256
- 200: unknown;
8073
+ 200: ExportRulesResponseDto;
8074
+ /**
8075
+ * Unsupported format
8076
+ */
8077
+ 400: ApiProblemResponseDto;
8078
+ /**
8079
+ * Unauthorized
8080
+ */
8081
+ 401: ApiProblemResponseDto;
7257
8082
  };
7258
8083
  };
7259
8084
  };
7260
- '/api/v1/users/asset-liability-summary': {
8085
+ '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7261
8086
  get: {
8087
+ req: TransactionRuleControllerGetStatisticsData;
7262
8088
  res: {
7263
8089
  /**
7264
- * Summary retrieved successfully
8090
+ * Rule statistics
7265
8091
  */
7266
- 200: unknown;
8092
+ 200: RuleStatisticsResponseDto;
8093
+ /**
8094
+ * Unauthorized
8095
+ */
8096
+ 401: ApiProblemResponseDto;
7267
8097
  };
7268
8098
  };
7269
8099
  };
7270
- '/api/v1/admin/properties': {
8100
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7271
8101
  get: {
8102
+ req: TransactionRuleControllerGetDetailData;
7272
8103
  res: {
7273
8104
  /**
7274
- * Properties retrieved successfully
8105
+ * Rule details
7275
8106
  */
7276
- 200: unknown;
8107
+ 200: TransactionRuleResponseDto;
7277
8108
  /**
7278
8109
  * Unauthorized
7279
8110
  */
7280
- 401: unknown;
8111
+ 401: ApiProblemResponseDto;
7281
8112
  /**
7282
- * Forbidden - insufficient permissions
8113
+ * Forbidden - not owner of rule
7283
8114
  */
7284
- 403: unknown;
8115
+ 403: ApiProblemResponseDto;
8116
+ /**
8117
+ * Rule not found
8118
+ */
8119
+ 404: ApiProblemResponseDto;
7285
8120
  };
7286
8121
  };
7287
- };
7288
- '/api/v1/admin/properties/{key}': {
7289
- get: {
7290
- req: PropertyControllerGetByKeyData;
8122
+ put: {
8123
+ req: TransactionRuleControllerUpdateData;
7291
8124
  res: {
7292
8125
  /**
7293
- * Property retrieved successfully
8126
+ * Rule updated successfully
7294
8127
  */
7295
- 200: unknown;
8128
+ 200: TransactionRuleResponseDto;
8129
+ /**
8130
+ * Validation failed
8131
+ */
8132
+ 400: ApiProblemResponseDto;
7296
8133
  /**
7297
8134
  * Unauthorized
7298
8135
  */
7299
- 401: unknown;
8136
+ 401: ApiProblemResponseDto;
7300
8137
  /**
7301
- * Forbidden - insufficient permissions
8138
+ * Forbidden - not owner of rule
7302
8139
  */
7303
- 403: unknown;
8140
+ 403: ApiProblemResponseDto;
7304
8141
  /**
7305
- * Property not found
8142
+ * Rule not found
7306
8143
  */
7307
- 404: unknown;
8144
+ 404: ApiProblemResponseDto;
8145
+ /**
8146
+ * Resource conflict - rule is being modified by another process
8147
+ */
8148
+ 409: ApiProblemResponseDto;
7308
8149
  };
7309
8150
  };
7310
- put: {
7311
- req: PropertyControllerUpdateData;
8151
+ delete: {
8152
+ req: TransactionRuleControllerDeleteData;
7312
8153
  res: {
7313
8154
  /**
7314
- * Property updated successfully
8155
+ * Rule deleted successfully
7315
8156
  */
7316
- 200: unknown;
8157
+ 204: void;
7317
8158
  /**
7318
8159
  * Unauthorized
7319
8160
  */
7320
- 401: unknown;
8161
+ 401: ApiProblemResponseDto;
7321
8162
  /**
7322
- * Forbidden - insufficient permissions
8163
+ * Forbidden - not owner of rule
7323
8164
  */
7324
- 403: unknown;
8165
+ 403: ApiProblemResponseDto;
8166
+ /**
8167
+ * Rule not found
8168
+ */
8169
+ 404: ApiProblemResponseDto;
8170
+ /**
8171
+ * Resource conflict - rule is being modified by another process
8172
+ */
8173
+ 409: ApiProblemResponseDto;
7325
8174
  };
7326
8175
  };
7327
- delete: {
7328
- req: PropertyControllerDeleteData;
8176
+ };
8177
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8178
+ post: {
8179
+ req: TransactionRuleControllerTestData;
7329
8180
  res: {
7330
8181
  /**
7331
- * Property deleted successfully
8182
+ * Test result
7332
8183
  */
7333
- 204: void;
8184
+ 200: TestRuleResponseDto;
7334
8185
  /**
7335
8186
  * Unauthorized
7336
8187
  */
7337
- 401: unknown;
8188
+ 401: ApiProblemResponseDto;
7338
8189
  /**
7339
- * Forbidden - insufficient permissions
8190
+ * Forbidden - not owner of rule
7340
8191
  */
7341
- 403: unknown;
8192
+ 403: ApiProblemResponseDto;
7342
8193
  /**
7343
- * Property not found
8194
+ * Rule not found
7344
8195
  */
7345
- 404: unknown;
8196
+ 404: ApiProblemResponseDto;
7346
8197
  };
7347
8198
  };
7348
8199
  };
@@ -7442,6 +8293,85 @@ type $OpenApiTs = {
7442
8293
  };
7443
8294
  };
7444
8295
  };
8296
+ '/api/v1/{region}/bean/onboarding': {
8297
+ post: {
8298
+ req: OnboardingControllerBootstrapData;
8299
+ res: {
8300
+ /**
8301
+ * Onboarding bootstrap result.
8302
+ */
8303
+ 201: unknown;
8304
+ /**
8305
+ * Invalid region/account path/duplicate paths.
8306
+ */
8307
+ 422: unknown;
8308
+ };
8309
+ };
8310
+ };
8311
+ '/api/v1/{region}/bean/reconciliations': {
8312
+ post: {
8313
+ req: ReconciliationControllerComputeData;
8314
+ res: {
8315
+ /**
8316
+ * Reconciliation preview
8317
+ */
8318
+ 200: ReconciliationComputeResultDto;
8319
+ /**
8320
+ * Account not found
8321
+ */
8322
+ 404: unknown;
8323
+ };
8324
+ };
8325
+ };
8326
+ '/api/v1/{region}/bean/reconciliations/assert': {
8327
+ post: {
8328
+ req: ReconciliationControllerAssertData;
8329
+ res: {
8330
+ /**
8331
+ * Balance assertion recorded
8332
+ */
8333
+ 201: ReconciliationRecordDto;
8334
+ /**
8335
+ * Account not found
8336
+ */
8337
+ 404: unknown;
8338
+ };
8339
+ };
8340
+ };
8341
+ '/api/v1/{region}/bean/reconciliations/pad': {
8342
+ post: {
8343
+ req: ReconciliationControllerPadData;
8344
+ res: {
8345
+ /**
8346
+ * Pad adjusting entry generated
8347
+ */
8348
+ 201: PadResultDto;
8349
+ /**
8350
+ * Book already within tolerance — no pad needed
8351
+ */
8352
+ 400: unknown;
8353
+ /**
8354
+ * Account not found
8355
+ */
8356
+ 404: unknown;
8357
+ };
8358
+ };
8359
+ };
8360
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8361
+ get: {
8362
+ req: ReconciliationControllerHistoryData;
8363
+ res: {
8364
+ /**
8365
+ * Reconciliation history
8366
+ */
8367
+ 200: Array<ReconciliationRecordDto>;
8368
+ /**
8369
+ * Account not found
8370
+ */
8371
+ 404: unknown;
8372
+ };
8373
+ };
8374
+ };
7445
8375
  '/api/v1/{region}/bean/export/beancount': {
7446
8376
  get: {
7447
8377
  res: {
@@ -7558,109 +8488,37 @@ type $OpenApiTs = {
7558
8488
  */
7559
8489
  401: ApiProblemResponseDto;
7560
8490
  };
7561
- };
7562
- put: {
7563
- req: ImporterConfigControllerUpdateConfigData;
7564
- res: {
7565
- /**
7566
- * Configuration updated successfully
7567
- */
7568
- 200: ImporterConfigDto;
7569
- /**
7570
- * Invalid input - Validation failed
7571
- */
7572
- 400: ApiProblemResponseDto;
7573
- /**
7574
- * Configuration not found
7575
- */
7576
- 404: ApiProblemResponseDto;
7577
- };
7578
- };
7579
- };
7580
- '/api/v1/{region}/bean/import/config/{importerId}/reset': {
7581
- post: {
7582
- req: ImporterConfigControllerResetConfigData;
7583
- res: {
7584
- /**
7585
- * Configuration reset successfully
7586
- */
7587
- 200: ImporterConfigDto;
7588
- /**
7589
- * Invalid input - Unsupported importer
7590
- */
7591
- 400: ApiProblemResponseDto;
7592
- };
7593
- };
7594
- };
7595
- '/api/v1/bean/platforms': {
7596
- get: {
7597
- res: {
7598
- /**
7599
- * List of platforms with binding and account counts
7600
- */
7601
- 200: unknown;
7602
- };
7603
- };
7604
- post: {
7605
- req: PlatformControllerCreateData;
7606
- res: {
7607
- /**
7608
- * Platform created successfully
7609
- */
7610
- 201: unknown;
7611
- /**
7612
- * Platform already exists
7613
- */
7614
- 409: unknown;
7615
- };
7616
- };
7617
- };
7618
- '/api/v1/bean/platforms/list': {
7619
- get: {
7620
- res: {
7621
- /**
7622
- * List of platforms with user binding status
7623
- */
7624
- 200: unknown;
7625
- };
7626
- };
7627
- };
7628
- '/api/v1/bean/platforms/match': {
7629
- get: {
7630
- req: PlatformControllerMatchPlatformsData;
7631
- res: {
7632
- /**
7633
- * List of matching platforms with suggested segment names
7634
- */
7635
- 200: unknown;
7636
- };
7637
- };
7638
- };
7639
- '/api/v1/bean/platforms/{id}': {
8491
+ };
7640
8492
  put: {
7641
- req: PlatformControllerUpdateData;
8493
+ req: ImporterConfigControllerUpdateConfigData;
7642
8494
  res: {
7643
8495
  /**
7644
- * Platform updated successfully
8496
+ * Configuration updated successfully
7645
8497
  */
7646
- 200: unknown;
8498
+ 200: ImporterConfigDto;
7647
8499
  /**
7648
- * Platform not found
8500
+ * Invalid input - Validation failed
7649
8501
  */
7650
- 404: unknown;
8502
+ 400: ApiProblemResponseDto;
8503
+ /**
8504
+ * Configuration not found
8505
+ */
8506
+ 404: ApiProblemResponseDto;
7651
8507
  };
7652
8508
  };
7653
- delete: {
7654
- req: PlatformControllerDeleteData;
8509
+ };
8510
+ '/api/v1/{region}/bean/import/config/{importerId}/reset': {
8511
+ post: {
8512
+ req: ImporterConfigControllerResetConfigData;
7655
8513
  res: {
7656
8514
  /**
7657
- * Platform deleted successfully
8515
+ * Configuration reset successfully
7658
8516
  */
7659
- 204: void;
8517
+ 200: ImporterConfigDto;
7660
8518
  /**
7661
- * Platform not found
8519
+ * Invalid input - Unsupported importer
7662
8520
  */
7663
- 404: unknown;
8521
+ 400: ApiProblemResponseDto;
7664
8522
  };
7665
8523
  };
7666
8524
  };
@@ -7717,6 +8575,54 @@ type $OpenApiTs = {
7717
8575
  };
7718
8576
  };
7719
8577
  };
8578
+ '/api/v1/{region}/bean/external-account-links': {
8579
+ post: {
8580
+ req: ExternalAccountLinkControllerCreateData;
8581
+ res: {
8582
+ /**
8583
+ * Link created.
8584
+ */
8585
+ 201: ExternalAccountLinkResponseDto;
8586
+ /**
8587
+ * beanAccountId not owned, or an active link already exists.
8588
+ */
8589
+ 422: unknown;
8590
+ };
8591
+ };
8592
+ get: {
8593
+ req: ExternalAccountLinkControllerFindAllData;
8594
+ res: {
8595
+ /**
8596
+ * Links retrieved.
8597
+ */
8598
+ 200: ExternalAccountLinkListResponseDto;
8599
+ };
8600
+ };
8601
+ };
8602
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8603
+ get: {
8604
+ req: ExternalAccountLinkControllerFindOneData;
8605
+ res: {
8606
+ /**
8607
+ * Link retrieved.
8608
+ */
8609
+ 200: ExternalAccountLinkResponseDto;
8610
+ /**
8611
+ * Link not found or not owned by the user.
8612
+ */
8613
+ 422: unknown;
8614
+ };
8615
+ };
8616
+ delete: {
8617
+ req: ExternalAccountLinkControllerRemoveData;
8618
+ res: {
8619
+ /**
8620
+ * Link soft-deleted; historical transactions are unaffected.
8621
+ */
8622
+ 204: void;
8623
+ };
8624
+ };
8625
+ };
7720
8626
  '/api/v1/{region}/bean/import/parser-telemetry': {
7721
8627
  post: {
7722
8628
  req: TelemetryControllerReportTelemetryData;
@@ -7805,166 +8711,101 @@ type $OpenApiTs = {
7805
8711
  };
7806
8712
  };
7807
8713
  };
7808
- '/api/v1/{region}/dashboard/net-worth': {
7809
- get: {
7810
- req: DashboardControllerGetNetWorthData;
7811
- res: {
7812
- /**
7813
- * Net worth retrieved successfully
7814
- */
7815
- 200: NetWorthResponseDto;
7816
- /**
7817
- * User not authenticated
7818
- */
7819
- 401: unknown;
7820
- };
7821
- };
7822
- };
7823
- '/api/v1/{region}/dashboard/accounts': {
7824
- get: {
7825
- req: DashboardControllerGetAccountsData;
7826
- res: {
7827
- /**
7828
- * Accounts retrieved successfully. Response type depends on groupBy parameter.
7829
- */
7830
- 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
7831
- /**
7832
- * User not authenticated
7833
- */
7834
- 401: unknown;
7835
- };
7836
- };
7837
- };
7838
- '/api/v1/{region}/dashboard/cash-flow': {
7839
- get: {
7840
- req: DashboardControllerGetCashFlowData;
7841
- res: {
7842
- /**
7843
- * Cash flow retrieved successfully
7844
- */
7845
- 200: CashFlowResponseDto;
7846
- /**
7847
- * Invalid period format
7848
- */
7849
- 400: unknown;
7850
- /**
7851
- * User not authenticated
7852
- */
7853
- 401: unknown;
7854
- };
7855
- };
7856
- };
7857
- '/api/v1/{region}/investment/holdings/pnl': {
8714
+ '/api/v1/bean/platforms': {
7858
8715
  get: {
7859
- req: HoldingPnlControllerGetHoldingPnlData;
7860
8716
  res: {
7861
8717
  /**
7862
- * Holding P&L retrieved successfully
7863
- */
7864
- 200: HoldingPnlResponseDto;
7865
- /**
7866
- * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
7867
- */
7868
- 400: unknown;
7869
- /**
7870
- * User not authenticated
8718
+ * List of platforms with binding and account counts
7871
8719
  */
7872
- 401: unknown;
8720
+ 200: unknown;
7873
8721
  };
7874
8722
  };
7875
- };
7876
- '/api/v1/{region}/bean/prices': {
7877
8723
  post: {
7878
- req: PriceControllerCreateData;
8724
+ req: PlatformControllerCreateData;
7879
8725
  res: {
7880
8726
  /**
7881
- * Price created successfully
7882
- */
7883
- 201: PriceResponseDto;
7884
- /**
7885
- * Currency or quoteCurrency commodity not found
8727
+ * Platform created successfully
7886
8728
  */
7887
- 404: unknown;
8729
+ 201: unknown;
7888
8730
  /**
7889
- * Price already exists for this currency pair and date
8731
+ * Platform already exists
7890
8732
  */
7891
8733
  409: unknown;
7892
8734
  };
7893
8735
  };
8736
+ };
8737
+ '/api/v1/bean/platforms/list': {
7894
8738
  get: {
7895
- req: PriceControllerFindAllData;
7896
8739
  res: {
7897
8740
  /**
7898
- * Prices retrieved successfully
8741
+ * List of platforms with user binding status
7899
8742
  */
7900
- 200: PriceListResponseDto;
8743
+ 200: Array<PlatformListItemDto>;
7901
8744
  };
7902
8745
  };
7903
8746
  };
7904
- '/api/v1/{region}/bean/prices/{id}': {
8747
+ '/api/v1/bean/platforms/match': {
7905
8748
  get: {
7906
- req: PriceControllerFindOneData;
8749
+ req: PlatformControllerMatchPlatformsData;
7907
8750
  res: {
7908
8751
  /**
7909
- * Price retrieved successfully
7910
- */
7911
- 200: PriceResponseDto;
7912
- /**
7913
- * Price not found
8752
+ * Matching platforms with overall match type and truncation flag
7914
8753
  */
7915
- 404: unknown;
8754
+ 200: PlatformMatchResponseDto;
7916
8755
  };
7917
8756
  };
8757
+ };
8758
+ '/api/v1/bean/platforms/{id}': {
7918
8759
  put: {
7919
- req: PriceControllerUpdateData;
8760
+ req: PlatformControllerUpdateData;
7920
8761
  res: {
7921
8762
  /**
7922
- * Price updated successfully
8763
+ * Platform updated successfully
7923
8764
  */
7924
- 200: PriceResponseDto;
8765
+ 200: unknown;
7925
8766
  /**
7926
- * Price not found
8767
+ * Platform not found
7927
8768
  */
7928
8769
  404: unknown;
7929
- /**
7930
- * Updated price conflicts with existing price
7931
- */
7932
- 409: unknown;
7933
8770
  };
7934
8771
  };
7935
8772
  delete: {
7936
- req: PriceControllerDeleteData;
8773
+ req: PlatformControllerDeleteData;
7937
8774
  res: {
7938
8775
  /**
7939
- * Price deleted successfully
8776
+ * Platform deleted successfully
7940
8777
  */
7941
8778
  204: void;
7942
8779
  /**
7943
- * Price not found
8780
+ * Platform not found
7944
8781
  */
7945
8782
  404: unknown;
7946
8783
  };
7947
8784
  };
7948
8785
  };
7949
- '/api/v1/{region}/bean/prices/bulk': {
7950
- post: {
7951
- req: PriceControllerBulkCreateData;
8786
+ '/api/v1/{region}/dashboard/net-worth': {
8787
+ get: {
8788
+ req: DashboardControllerGetNetWorthData;
7952
8789
  res: {
7953
8790
  /**
7954
- * Prices created successfully
8791
+ * Net worth retrieved successfully
7955
8792
  */
7956
- 201: Array<PriceResponseDto>;
8793
+ 200: NetWorthResponseDto;
8794
+ /**
8795
+ * User not authenticated
8796
+ */
8797
+ 401: unknown;
7957
8798
  };
7958
8799
  };
7959
8800
  };
7960
- '/api/v1/{region}/reporting/portfolio/trends': {
8801
+ '/api/v1/{region}/dashboard/accounts': {
7961
8802
  get: {
7962
- req: ReportingControllerGetPortfolioTrendsData;
8803
+ req: DashboardControllerGetAccountsData;
7963
8804
  res: {
7964
8805
  /**
7965
- * Trends retrieved successfully
8806
+ * Accounts retrieved successfully. Response type depends on groupBy parameter.
7966
8807
  */
7967
- 200: PortfolioTrendsResponseDto;
8808
+ 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
7968
8809
  /**
7969
8810
  * User not authenticated
7970
8811
  */
@@ -7972,14 +8813,18 @@ type $OpenApiTs = {
7972
8813
  };
7973
8814
  };
7974
8815
  };
7975
- '/api/v1/{region}/reporting/cash-flow/trends': {
8816
+ '/api/v1/{region}/dashboard/cash-flow': {
7976
8817
  get: {
7977
- req: ReportingControllerGetCashFlowTrendsData;
8818
+ req: DashboardControllerGetCashFlowData;
7978
8819
  res: {
7979
8820
  /**
7980
- * Cash-flow trends retrieved successfully
8821
+ * Cash flow retrieved successfully
7981
8822
  */
7982
- 200: CashFlowTrendsResponseDto;
8823
+ 200: CashFlowResponseDto;
8824
+ /**
8825
+ * Invalid period format
8826
+ */
8827
+ 400: unknown;
7983
8828
  /**
7984
8829
  * User not authenticated
7985
8830
  */
@@ -7987,16 +8832,16 @@ type $OpenApiTs = {
7987
8832
  };
7988
8833
  };
7989
8834
  };
7990
- '/api/v1/{region}/reporting/snapshots/generate': {
7991
- post: {
7992
- req: ReportingControllerGenerateSnapshotData;
8835
+ '/api/v1/{region}/dashboard/expenses': {
8836
+ get: {
8837
+ req: DashboardControllerGetExpensesData;
7993
8838
  res: {
7994
8839
  /**
7995
- * Snapshot generated successfully
8840
+ * Expenses retrieved successfully
7996
8841
  */
7997
- 200: GenerateSnapshotResponse;
8842
+ 200: ExpensesByCategoryResponseDto;
7998
8843
  /**
7999
- * Invalid date format
8844
+ * Invalid groupBy or period
8000
8845
  */
8001
8846
  400: unknown;
8002
8847
  /**
@@ -8006,26 +8851,22 @@ type $OpenApiTs = {
8006
8851
  };
8007
8852
  };
8008
8853
  };
8009
- '/api/v1/{region}/reporting/snapshots/backfill': {
8010
- post: {
8011
- req: ReportingControllerBackfillSnapshotsData;
8854
+ '/api/v1/{region}/investment/holdings/pnl': {
8855
+ get: {
8856
+ req: HoldingPnlControllerGetHoldingPnlData;
8012
8857
  res: {
8013
8858
  /**
8014
- * Backfill completed successfully
8859
+ * Holding P&L retrieved successfully
8015
8860
  */
8016
- 200: BackfillSnapshotsResponse;
8861
+ 200: HoldingPnlResponseDto;
8017
8862
  /**
8018
- * Invalid date format or range
8863
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8019
8864
  */
8020
8865
  400: unknown;
8021
8866
  /**
8022
8867
  * User not authenticated
8023
8868
  */
8024
8869
  401: unknown;
8025
- /**
8026
- * Backfill already in progress for this user
8027
- */
8028
- 409: unknown;
8029
8870
  };
8030
8871
  };
8031
8872
  };
@@ -8050,7 +8891,7 @@ type $OpenApiTs = {
8050
8891
  /**
8051
8892
  * Login successful
8052
8893
  */
8053
- 200: unknown;
8894
+ 200: AnonymousLoginResponseDto;
8054
8895
  /**
8055
8896
  * Invalid access token
8056
8897
  */
@@ -8197,6 +9038,32 @@ type $OpenApiTs = {
8197
9038
  };
8198
9039
  };
8199
9040
  };
9041
+ '/api/v1/market/symbols/search': {
9042
+ get: {
9043
+ req: SymbolControllerSearchData;
9044
+ res: {
9045
+ /**
9046
+ * Ranked search results
9047
+ */
9048
+ 200: Array<SymbolSearchResultDto>;
9049
+ };
9050
+ };
9051
+ };
9052
+ '/api/v1/market/symbols/{symbol}/quote': {
9053
+ get: {
9054
+ req: SymbolControllerGetQuoteData;
9055
+ res: {
9056
+ /**
9057
+ * Symbol quote
9058
+ */
9059
+ 200: SymbolQuoteDto;
9060
+ /**
9061
+ * Symbol not found in the openbb catalog
9062
+ */
9063
+ 404: unknown;
9064
+ };
9065
+ };
9066
+ };
8200
9067
  };
8201
9068
 
8202
9069
  declare class BeanAccountsService {
@@ -8218,7 +9085,7 @@ declare class BeanAccountsService {
8218
9085
  * @param data.type Filter by account type
8219
9086
  * @param data.status Filter by status
8220
9087
  * @param data.isCustom Filter by custom (user-created) accounts only
8221
- * @param data.search Search term for path or i18nKey
9088
+ * @param data.search Search term for account path
8222
9089
  * @param data.limit Maximum number of results
8223
9090
  * @param data.offset Number of results to skip
8224
9091
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -8278,6 +9145,17 @@ declare class BeanAccountsService {
8278
9145
  * @throws ApiError
8279
9146
  */
8280
9147
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
9148
+ /**
9149
+ * Post an opening-balance transaction
9150
+ * 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.
9151
+ * @param data The data for the request.
9152
+ * @param data.id Account UUID
9153
+ * @param data.region Region code for tenant context
9154
+ * @param data.requestBody
9155
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
9156
+ * @throws ApiError
9157
+ */
9158
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
8281
9159
  }
8282
9160
  declare class BeanTransactionsService {
8283
9161
  /**
@@ -8303,6 +9181,7 @@ declare class BeanTransactionsService {
8303
9181
  * @param data.status Filter by transaction status
8304
9182
  * @param data.search Search in narration and payee fields (max 200 chars)
8305
9183
  * @param data.accountId Filter by account ID (transactions with postings to this account)
9184
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
8306
9185
  * @returns TransactionListResponseDto Transaction list
8307
9186
  * @throws ApiError
8308
9187
  */
@@ -8378,7 +9257,7 @@ declare class BeanBalancesService {
8378
9257
  * Query account balance
8379
9258
  * Calculate account balance at a specific date for a single currency
8380
9259
  * @param data The data for the request.
8381
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
9260
+ * @param data.account Account name (e.g., "Assets:Checking")
8382
9261
  * @param data.region Region code for tenant context
8383
9262
  * @param data.date Date to calculate balance at (ISO 8601 format)
8384
9263
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -8608,4 +9487,4 @@ type OpenAPIConfig = {
8608
9487
  };
8609
9488
  declare const OpenAPI: OpenAPIConfig;
8610
9489
 
8611
- export { type $OpenApiTs, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, OpenAPI, type OpenAPIConfig, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type method, type mode, type paymentSource, type period, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };
9490
+ export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type AnonymousLoginResponseDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryGroupDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SignupResponseDto, type SupportedProvidersResponseDto, type SymbolControllerGetQuoteData, type SymbolControllerGetQuoteResponse, type SymbolControllerSearchData, type SymbolControllerSearchResponse, type SymbolQuoteDto, type SymbolSearchResultDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type provider, type role, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };