@firela/api-types 0.0.0-canary.9d0af796 → 0.0.0-canary.a2f3885d

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' | 'ACCOUNTS_PAYABLE' | 'TAX_PAYABLE' | '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' | 'ACCOUNTS_PAYABLE' | 'TAX_PAYABLE' | '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
  */
@@ -250,7 +254,27 @@ type AccountStandardResponseDto = {
250
254
  * Icon identifier for UI display
251
255
  */
252
256
  icon: string;
257
+ /**
258
+ * Onboarding product category (coarse grouping derived from assetSubClass)
259
+ */
260
+ productCategory: 'cash' | 'investment' | 'credit_card' | 'loan' | 'payable_tax' | 'other';
261
+ /**
262
+ * Asset class (LIQUIDITY/EQUITY/.../LIABILITY), derived at read time from classification rules
263
+ */
264
+ assetClass?: 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
265
+ /**
266
+ * Asset sub-class (product type, derived at read time from classification rules)
267
+ */
268
+ assetSubClass?: string;
253
269
  };
270
+ /**
271
+ * Onboarding product category (coarse grouping derived from assetSubClass)
272
+ */
273
+ type productCategory = 'cash' | 'investment' | 'credit_card' | 'loan' | 'payable_tax' | 'other';
274
+ /**
275
+ * Asset class (LIQUIDITY/EQUITY/.../LIABILITY), derived at read time from classification rules
276
+ */
277
+ type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
254
278
  type AccountStandardListResponseDto = {
255
279
  /**
256
280
  * Array of account templates
@@ -266,10 +290,6 @@ type AccountStandardListResponseDto = {
266
290
  region: string;
267
291
  };
268
292
  type TemplateMetadataDto = {
269
- /**
270
- * Whether this path can be extended
271
- */
272
- extendable: boolean;
273
293
  /**
274
294
  * Root account type
275
295
  */
@@ -779,6 +799,48 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
779
799
  * Transaction status
780
800
  */
781
801
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
802
+ type BalanceByCurrencyDto = {
803
+ /**
804
+ * ISO 4217 currency code
805
+ */
806
+ currency: string;
807
+ /**
808
+ * Balance amount
809
+ */
810
+ balance: string;
811
+ };
812
+ type ExchangeRateWarningDto = {
813
+ /**
814
+ * Warning type
815
+ */
816
+ type: string;
817
+ /**
818
+ * Currency without exchange rate
819
+ */
820
+ currency: string;
821
+ /**
822
+ * Total amount affected
823
+ */
824
+ totalAmount: string;
825
+ };
826
+ type TransactionListSummaryDto = {
827
+ /**
828
+ * 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.
829
+ */
830
+ totalAmount: string;
831
+ /**
832
+ * Base currency (ISO 4217)
833
+ */
834
+ currency: string;
835
+ /**
836
+ * Raw (unconverted) balance per currency
837
+ */
838
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
839
+ /**
840
+ * Currencies missing an FX rate (omitted when empty)
841
+ */
842
+ warnings?: Array<ExchangeRateWarningDto>;
843
+ };
782
844
  type TransactionListResponseDto = {
783
845
  /**
784
846
  * List of transactions
@@ -796,6 +858,10 @@ type TransactionListResponseDto = {
796
858
  * Number of items skipped
797
859
  */
798
860
  offset: number;
861
+ /**
862
+ * 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.
863
+ */
864
+ summary?: TransactionListSummaryDto;
799
865
  };
800
866
  type TagSuggestionDto = {
801
867
  /**
@@ -1642,6 +1708,104 @@ type UpdateCommodityDto = {
1642
1708
  [key: string]: unknown;
1643
1709
  };
1644
1710
  };
1711
+ type CreateBeanPriceDto = {
1712
+ /**
1713
+ * Currency being priced (e.g., USD, AAPL, BTC)
1714
+ */
1715
+ currency: string;
1716
+ /**
1717
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1718
+ */
1719
+ quoteCurrency: string;
1720
+ /**
1721
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1722
+ */
1723
+ amount: number;
1724
+ /**
1725
+ * Price date (ISO 8601 format)
1726
+ */
1727
+ date: string;
1728
+ /**
1729
+ * Metadata (validated by Zod schema, max field lengths enforced)
1730
+ */
1731
+ metadata?: {
1732
+ [key: string]: unknown;
1733
+ };
1734
+ };
1735
+ type PriceResponseDto = {
1736
+ /**
1737
+ * Unique identifier
1738
+ */
1739
+ id: string;
1740
+ /**
1741
+ * User ID (owner of the price)
1742
+ */
1743
+ userId: string;
1744
+ /**
1745
+ * Currency being priced (e.g., USD, AAPL, BTC)
1746
+ */
1747
+ currency: string;
1748
+ /**
1749
+ * Quote currency (pricing currency, e.g., USD, CNY)
1750
+ */
1751
+ quoteCurrency: string;
1752
+ /**
1753
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1754
+ */
1755
+ amount: number;
1756
+ /**
1757
+ * Price date (ISO 8601 format). Represents the date this price was valid.
1758
+ */
1759
+ date: string;
1760
+ /**
1761
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1762
+ */
1763
+ meta: {
1764
+ [key: string]: unknown;
1765
+ };
1766
+ /**
1767
+ * Creation timestamp
1768
+ */
1769
+ createdAt: string;
1770
+ /**
1771
+ * Last update timestamp
1772
+ */
1773
+ updatedAt: string;
1774
+ };
1775
+ type PriceListResponseDto = {
1776
+ /**
1777
+ * List of prices
1778
+ */
1779
+ items: Array<PriceResponseDto>;
1780
+ /**
1781
+ * Total number of prices
1782
+ */
1783
+ total: number;
1784
+ };
1785
+ type UpdateBeanPriceDto = {
1786
+ /**
1787
+ * Currency being priced
1788
+ */
1789
+ currency?: string;
1790
+ /**
1791
+ * Quote currency (pricing currency)
1792
+ */
1793
+ quoteCurrency?: string;
1794
+ /**
1795
+ * Price amount (MUST be >= 0 per Beancount spec)
1796
+ */
1797
+ amount?: number;
1798
+ /**
1799
+ * Price date (ISO 8601 format)
1800
+ */
1801
+ date?: string;
1802
+ /**
1803
+ * Metadata
1804
+ */
1805
+ metadata?: {
1806
+ [key: string]: unknown;
1807
+ };
1808
+ };
1645
1809
  type CreateRecurringRuleDto = {
1646
1810
  /**
1647
1811
  * Rule name (unique per user)
@@ -2239,67 +2403,359 @@ type ForecastResponseDto = {
2239
2403
  */
2240
2404
  periodEnd: string;
2241
2405
  };
2242
- type CreateTransactionRuleDto = {
2243
- name: string;
2244
- description?: string;
2245
- narrationKeywords?: Array<unknown[]>;
2246
- payeeKeywords?: Array<unknown[]>;
2247
- categoryKeywords?: Array<unknown[]>;
2406
+ type CurrencyBalanceDto = {
2248
2407
  /**
2249
- * Payment method keywords (e.g., HuaBei, YuEBao)
2408
+ * ISO 4217 currency code
2250
2409
  */
2251
- methodKeywords?: Array<unknown[]>;
2410
+ currency: string;
2252
2411
  /**
2253
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2412
+ * Balance amount
2254
2413
  */
2255
- categoryAccount?: string;
2256
- matchLogic: 'OR' | 'AND';
2414
+ balance: string;
2415
+ };
2416
+ type TimeSeriesPointDto = {
2257
2417
  /**
2258
- * Minimum transaction amount (inclusive)
2418
+ * Date in YYYY-MM-DD format
2259
2419
  */
2260
- amountMin?: number;
2420
+ date: string;
2261
2421
  /**
2262
- * Maximum transaction amount (inclusive)
2422
+ * Value at this date (in base currency)
2263
2423
  */
2264
- amountMax?: number;
2265
- priority: number;
2266
- additionalTags?: Array<unknown[]>;
2267
- additionalMetadata?: {
2424
+ value: string;
2425
+ /**
2426
+ * Change from previous point
2427
+ */
2428
+ change?: {
2268
2429
  [key: string]: unknown;
2269
2430
  };
2270
2431
  /**
2271
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2432
+ * Total assets at this date (in base currency)
2272
2433
  */
2273
- upsertByPayee?: boolean;
2274
- };
2275
- type matchLogic = 'OR' | 'AND';
2276
- type AmountRangeDto = {
2434
+ assets?: string;
2277
2435
  /**
2278
- * Minimum amount
2436
+ * Total liabilities at this date (in base currency)
2279
2437
  */
2280
- min?: number;
2438
+ liabilities?: string;
2281
2439
  /**
2282
- * Maximum amount
2440
+ * Multi-currency breakdown for this point
2283
2441
  */
2284
- max?: number;
2442
+ byCurrency?: Array<CurrencyBalanceDto>;
2285
2443
  };
2286
- type TransactionRuleResponseDto = {
2444
+ type TrendSummaryDto = {
2287
2445
  /**
2288
- * Rule ID
2446
+ * Value at start of period
2289
2447
  */
2290
- id: string;
2448
+ startValue: string;
2291
2449
  /**
2292
- * Rule name
2450
+ * Value at end of period
2293
2451
  */
2294
- name: string;
2452
+ endValue: string;
2295
2453
  /**
2296
- * Rule description
2454
+ * Total change over period
2297
2455
  */
2298
- description?: string;
2456
+ totalChange: string;
2299
2457
  /**
2300
- * Keywords to match in transaction narration
2458
+ * Total change percentage
2301
2459
  */
2302
- narrationKeywords: Array<string>;
2460
+ totalChangePercentage: string;
2461
+ };
2462
+ type MultiCurrencyPointDto = {
2463
+ /**
2464
+ * Date in YYYY-MM-DD format
2465
+ */
2466
+ date: string;
2467
+ /**
2468
+ * Balances by currency
2469
+ */
2470
+ byCurrency: Array<CurrencyBalanceDto>;
2471
+ };
2472
+ type PortfolioTrendsResponseDto = {
2473
+ /**
2474
+ * Time series data points
2475
+ */
2476
+ series: Array<TimeSeriesPointDto>;
2477
+ /**
2478
+ * Period summary
2479
+ */
2480
+ summary: TrendSummaryDto;
2481
+ /**
2482
+ * Period requested
2483
+ */
2484
+ period: string;
2485
+ /**
2486
+ * Data granularity
2487
+ */
2488
+ granularity: string;
2489
+ /**
2490
+ * Base currency for converted values
2491
+ */
2492
+ currency: string;
2493
+ /**
2494
+ * Multi-currency time series (each point has currency breakdown)
2495
+ */
2496
+ byCurrency?: Array<MultiCurrencyPointDto>;
2497
+ /**
2498
+ * Exchange rate warnings
2499
+ */
2500
+ warnings?: Array<ExchangeRateWarningDto>;
2501
+ };
2502
+ type CashFlowPointDto = {
2503
+ /**
2504
+ * Month key (YYYY-MM)
2505
+ */
2506
+ month: string;
2507
+ /**
2508
+ * Income in base currency (absolute, converted)
2509
+ */
2510
+ income: string;
2511
+ /**
2512
+ * Expense in base currency (absolute, converted)
2513
+ */
2514
+ expense: string;
2515
+ /**
2516
+ * netSavings = income − expense (savings positive)
2517
+ */
2518
+ netSavings: string;
2519
+ };
2520
+ type CashFlowTrendSummaryDto = {
2521
+ /**
2522
+ * Total income across the period
2523
+ */
2524
+ totalIncome: string;
2525
+ /**
2526
+ * Total expense across the period
2527
+ */
2528
+ totalExpense: string;
2529
+ /**
2530
+ * income − expense across the period
2531
+ */
2532
+ totalNetSavings: string;
2533
+ /**
2534
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
2535
+ */
2536
+ averageMonthlyNetSavings: string;
2537
+ };
2538
+ type CashFlowTrendsResponseDto = {
2539
+ /**
2540
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
2541
+ */
2542
+ series: Array<CashFlowPointDto>;
2543
+ /**
2544
+ * Period totals
2545
+ */
2546
+ summary: CashFlowTrendSummaryDto;
2547
+ /**
2548
+ * Period requested
2549
+ */
2550
+ period: string;
2551
+ /**
2552
+ * Data granularity (v1 returns month buckets)
2553
+ */
2554
+ granularity: string;
2555
+ /**
2556
+ * Base currency for converted values
2557
+ */
2558
+ currency: string;
2559
+ /**
2560
+ * Exchange rate warnings (e.g. missing rate for a currency)
2561
+ */
2562
+ warnings?: Array<ExchangeRateWarningDto>;
2563
+ };
2564
+ type GenerateSnapshotBody = unknown;
2565
+ type GenerateSnapshotResponse = unknown;
2566
+ type BackfillSnapshotsBody = unknown;
2567
+ type BackfillSnapshotsResponse = unknown;
2568
+ type DeleteOwnUserDto = {
2569
+ /**
2570
+ * Access token for user verification
2571
+ */
2572
+ accessToken: string;
2573
+ };
2574
+ type SignupDto = {
2575
+ /**
2576
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2577
+ */
2578
+ turnstileToken?: string;
2579
+ };
2580
+ type SignupResponseDto = {
2581
+ /**
2582
+ * JWT auth token
2583
+ */
2584
+ authToken: string;
2585
+ /**
2586
+ * Auto-generated access token
2587
+ */
2588
+ accessToken: string;
2589
+ /**
2590
+ * Assigned user role
2591
+ */
2592
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2593
+ };
2594
+ /**
2595
+ * Assigned user role
2596
+ */
2597
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2598
+ type UpdateUserSettingDto = {
2599
+ /**
2600
+ * Security ID
2601
+ */
2602
+ secId?: number;
2603
+ /**
2604
+ * Annual interest rate
2605
+ */
2606
+ annualInterestRate?: number;
2607
+ /**
2608
+ * Currency code
2609
+ */
2610
+ currency?: string;
2611
+ /**
2612
+ * Base currency code
2613
+ */
2614
+ baseCurrency?: string;
2615
+ /**
2616
+ * Benchmark symbol
2617
+ */
2618
+ benchmark?: string;
2619
+ /**
2620
+ * Color scheme
2621
+ */
2622
+ colorScheme?: 'DARK' | 'LIGHT';
2623
+ /**
2624
+ * Date range filter
2625
+ */
2626
+ dateRange?: string;
2627
+ /**
2628
+ * Emergency fund amount
2629
+ */
2630
+ emergencyFund?: number;
2631
+ /**
2632
+ * Account filter IDs
2633
+ */
2634
+ 'filters.accounts'?: Array<string>;
2635
+ /**
2636
+ * Asset class filters
2637
+ */
2638
+ 'filters.assetClasses'?: Array<string>;
2639
+ /**
2640
+ * Data source filter
2641
+ */
2642
+ 'filters.dataSource'?: string;
2643
+ /**
2644
+ * Symbol filter
2645
+ */
2646
+ 'filters.symbol'?: string;
2647
+ /**
2648
+ * Tag filters
2649
+ */
2650
+ 'filters.tags'?: Array<string>;
2651
+ /**
2652
+ * Enable experimental features
2653
+ */
2654
+ isExperimentalFeatures?: boolean;
2655
+ /**
2656
+ * Enable restricted view mode
2657
+ */
2658
+ isRestrictedView?: boolean;
2659
+ /**
2660
+ * Language code
2661
+ */
2662
+ language?: string;
2663
+ /**
2664
+ * Locale code
2665
+ */
2666
+ locale?: string;
2667
+ /**
2668
+ * Projected total amount
2669
+ */
2670
+ projectedTotalAmount?: number;
2671
+ /**
2672
+ * Retirement date in ISO 8601 format
2673
+ */
2674
+ retirementDate?: string;
2675
+ /**
2676
+ * Savings rate percentage
2677
+ */
2678
+ savingsRate?: number;
2679
+ /**
2680
+ * View mode
2681
+ */
2682
+ viewMode?: 'DEFAULT' | 'ZEN';
2683
+ };
2684
+ /**
2685
+ * Color scheme
2686
+ */
2687
+ type colorScheme = 'DARK' | 'LIGHT';
2688
+ /**
2689
+ * View mode
2690
+ */
2691
+ type viewMode = 'DEFAULT' | 'ZEN';
2692
+ type UpdatePropertyDto = {
2693
+ /**
2694
+ * Property value
2695
+ */
2696
+ value: string;
2697
+ };
2698
+ type CreateTransactionRuleDto = {
2699
+ name: string;
2700
+ description?: string;
2701
+ narrationKeywords?: Array<unknown[]>;
2702
+ payeeKeywords?: Array<unknown[]>;
2703
+ categoryKeywords?: Array<unknown[]>;
2704
+ /**
2705
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2706
+ */
2707
+ methodKeywords?: Array<unknown[]>;
2708
+ /**
2709
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2710
+ */
2711
+ categoryAccount?: string;
2712
+ matchLogic: 'OR' | 'AND';
2713
+ /**
2714
+ * Minimum transaction amount (inclusive)
2715
+ */
2716
+ amountMin?: number;
2717
+ /**
2718
+ * Maximum transaction amount (inclusive)
2719
+ */
2720
+ amountMax?: number;
2721
+ priority: number;
2722
+ additionalTags?: Array<unknown[]>;
2723
+ additionalMetadata?: {
2724
+ [key: string]: unknown;
2725
+ };
2726
+ /**
2727
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2728
+ */
2729
+ upsertByPayee?: boolean;
2730
+ };
2731
+ type matchLogic = 'OR' | 'AND';
2732
+ type AmountRangeDto = {
2733
+ /**
2734
+ * Minimum amount
2735
+ */
2736
+ min?: number;
2737
+ /**
2738
+ * Maximum amount
2739
+ */
2740
+ max?: number;
2741
+ };
2742
+ type TransactionRuleResponseDto = {
2743
+ /**
2744
+ * Rule ID
2745
+ */
2746
+ id: string;
2747
+ /**
2748
+ * Rule name
2749
+ */
2750
+ name: string;
2751
+ /**
2752
+ * Rule description
2753
+ */
2754
+ description?: string;
2755
+ /**
2756
+ * Keywords to match in transaction narration
2757
+ */
2758
+ narrationKeywords: Array<string>;
2303
2759
  /**
2304
2760
  * Keywords to match in payee name
2305
2761
  */
@@ -2488,206 +2944,94 @@ type RuleStatisticsResponseDto = {
2488
2944
  */
2489
2945
  period: '7d' | '30d' | '90d';
2490
2946
  /**
2491
- * Total number of rules
2492
- */
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
2947
+ * Total number of rules
2627
2948
  */
2628
- 'filters.accounts'?: Array<string>;
2949
+ totalRules: number;
2629
2950
  /**
2630
- * Asset class filters
2951
+ * Number of rules with at least one match
2631
2952
  */
2632
- 'filters.assetClasses'?: Array<string>;
2953
+ rulesWithMatches: number;
2633
2954
  /**
2634
- * Data source filter
2955
+ * Total number of matches across all rules
2635
2956
  */
2636
- 'filters.dataSource'?: string;
2957
+ totalMatches: number;
2637
2958
  /**
2638
- * Symbol filter
2959
+ * Average confidence score across all matches
2639
2960
  */
2640
- 'filters.symbol'?: string;
2961
+ averageConfidence: number;
2641
2962
  /**
2642
- * Tag filters
2963
+ * Per-rule statistics
2643
2964
  */
2644
- 'filters.tags'?: Array<string>;
2965
+ ruleStats: Array<{
2966
+ ruleId?: string;
2967
+ ruleName?: string;
2968
+ matchCount?: number;
2969
+ averageConfidence?: number;
2970
+ }>;
2971
+ };
2972
+ /**
2973
+ * Statistics time period
2974
+ */
2975
+ type period = '7d' | '30d' | '90d';
2976
+ type UpdateTransactionRuleDto = {
2977
+ name?: string;
2978
+ description?: string;
2979
+ narrationKeywords?: Array<unknown[]>;
2980
+ payeeKeywords?: Array<unknown[]>;
2981
+ categoryKeywords?: Array<unknown[]>;
2645
2982
  /**
2646
- * Enable experimental features
2983
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2647
2984
  */
2648
- isExperimentalFeatures?: boolean;
2985
+ methodKeywords?: Array<unknown[]>;
2649
2986
  /**
2650
- * Enable restricted view mode
2987
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2651
2988
  */
2652
- isRestrictedView?: boolean;
2989
+ categoryAccount?: string;
2990
+ matchLogic?: 'OR' | 'AND';
2653
2991
  /**
2654
- * Language code
2992
+ * Minimum transaction amount (inclusive)
2655
2993
  */
2656
- language?: string;
2994
+ amountMin?: number;
2657
2995
  /**
2658
- * Locale code
2996
+ * Maximum transaction amount (inclusive)
2659
2997
  */
2660
- locale?: string;
2998
+ amountMax?: number;
2999
+ priority?: number;
2661
3000
  /**
2662
- * Projected total amount
3001
+ * Enable or disable the rule
2663
3002
  */
2664
- projectedTotalAmount?: number;
3003
+ enabled?: boolean;
3004
+ additionalTags?: Array<unknown[]>;
3005
+ additionalMetadata?: {
3006
+ [key: string]: unknown;
3007
+ };
3008
+ };
3009
+ type TestRuleDto = {
3010
+ narration: string;
3011
+ payee?: string;
3012
+ categoryAccount?: string;
3013
+ amount?: number;
3014
+ currency?: string;
3015
+ };
3016
+ type TestRuleResponseDto = {
2665
3017
  /**
2666
- * Retirement date in ISO 8601 format
3018
+ * Rule ID that was tested
2667
3019
  */
2668
- retirementDate?: string;
3020
+ ruleId: string;
2669
3021
  /**
2670
- * Savings rate percentage
3022
+ * Whether the rule matched the test data
2671
3023
  */
2672
- savingsRate?: number;
3024
+ matches: boolean;
2673
3025
  /**
2674
- * View mode
3026
+ * Match confidence score (0-1)
2675
3027
  */
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 = {
3028
+ confidence: number;
2687
3029
  /**
2688
- * Property value
3030
+ * Details of which fields matched
2689
3031
  */
2690
- value: string;
3032
+ matchDetails: {
3033
+ [key: string]: unknown;
3034
+ };
2691
3035
  };
2692
3036
  type CreateBeanEventDto = {
2693
3037
  /**
@@ -2775,6 +3119,150 @@ type UpdateBeanEventDto = {
2775
3119
  [key: string]: unknown;
2776
3120
  };
2777
3121
  };
3122
+ type OnboardingAccountDto = {
3123
+ /**
3124
+ * Account path (Assets/Liabilities only; format validated by the account service)
3125
+ */
3126
+ path: string;
3127
+ /**
3128
+ * ISO 4217 currency code (3 letters)
3129
+ */
3130
+ currency: string;
3131
+ /**
3132
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
3133
+ */
3134
+ openingBalance?: string;
3135
+ /**
3136
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
3137
+ */
3138
+ platformId?: string;
3139
+ };
3140
+ type OnboardingDto = {
3141
+ /**
3142
+ * Asset/Liability accounts to register with opening balances
3143
+ */
3144
+ accounts?: Array<OnboardingAccountDto>;
3145
+ /**
3146
+ * Skip asset registration; only bootstrap the core account set
3147
+ */
3148
+ skipAssetRegistration?: boolean;
3149
+ };
3150
+ type ActualBalanceDto = {
3151
+ /**
3152
+ * Actual balance amount as a decimal string (preserves precision for tolerance inference).
3153
+ */
3154
+ amount: string;
3155
+ /**
3156
+ * Currency code (ISO 4217 or commodity ticker).
3157
+ */
3158
+ ccy: string;
3159
+ };
3160
+ type ComputeReconciliationDto = {
3161
+ /**
3162
+ * BeanAccount id to reconcile.
3163
+ */
3164
+ accountId: string;
3165
+ /**
3166
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3167
+ */
3168
+ asOfDate: string;
3169
+ /**
3170
+ * Actual balance from the external statement.
3171
+ */
3172
+ actualBalance: ActualBalanceDto;
3173
+ };
3174
+ type ReconciliationComputeResultDto = {
3175
+ accountId: string;
3176
+ asOfDate: string;
3177
+ /**
3178
+ * System-computed book balance (decimal string).
3179
+ */
3180
+ bookBalance: string;
3181
+ /**
3182
+ * User-entered actual balance (decimal string).
3183
+ */
3184
+ actualBalance: string;
3185
+ currency: string;
3186
+ /**
3187
+ * Diff = book − actual (decimal string).
3188
+ */
3189
+ diff: string;
3190
+ /**
3191
+ * Applied tolerance (decimal string).
3192
+ */
3193
+ tolerance: string;
3194
+ /**
3195
+ * true when |diff| ≤ tolerance.
3196
+ */
3197
+ withinTolerance: boolean;
3198
+ /**
3199
+ * Suggested next action: assert when within tolerance, pad otherwise.
3200
+ */
3201
+ suggestedAction: 'assert' | 'pad';
3202
+ };
3203
+ /**
3204
+ * Suggested next action: assert when within tolerance, pad otherwise.
3205
+ */
3206
+ type suggestedAction = 'assert' | 'pad';
3207
+ type AssertReconciliationDto = {
3208
+ /**
3209
+ * BeanAccount id to reconcile.
3210
+ */
3211
+ accountId: string;
3212
+ /**
3213
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3214
+ */
3215
+ asOfDate: string;
3216
+ /**
3217
+ * Actual balance from the external statement.
3218
+ */
3219
+ actualBalance: ActualBalanceDto;
3220
+ /**
3221
+ * Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
3222
+ */
3223
+ tolerance?: string;
3224
+ };
3225
+ type ReconciliationRecordDto = {
3226
+ id: string;
3227
+ accountId: string;
3228
+ date: string;
3229
+ /**
3230
+ * Asserted (actual) amount.
3231
+ */
3232
+ amount: string;
3233
+ currency: string;
3234
+ tolerance?: string;
3235
+ /**
3236
+ * book − actual.
3237
+ */
3238
+ diffAmount?: string;
3239
+ diffCurrency?: string;
3240
+ createdAt: string;
3241
+ };
3242
+ type PadReconciliationDto = {
3243
+ /**
3244
+ * BeanAccount id to reconcile.
3245
+ */
3246
+ accountId: string;
3247
+ /**
3248
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3249
+ */
3250
+ asOfDate: string;
3251
+ /**
3252
+ * Actual balance from the external statement.
3253
+ */
3254
+ actualBalance: ActualBalanceDto;
3255
+ /**
3256
+ * Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
3257
+ */
3258
+ sourceAccount?: string;
3259
+ };
3260
+ type PadResultDto = {
3261
+ /**
3262
+ * Created pad adjusting transaction id.
3263
+ */
3264
+ transactionId: string;
3265
+ };
2778
3266
  type FileImportDto = {
2779
3267
  /**
2780
3268
  * Bill file to import (CSV, PDF, OFX, etc.)
@@ -2971,117 +3459,53 @@ type ImporterConfigDto = {
2971
3459
  */
2972
3460
  config: VersionedConfigDto;
2973
3461
  /**
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
3037
- */
3038
- url: string;
3039
- /**
3040
- * Platform type
3041
- */
3042
- type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3043
- /**
3044
- * Platform logo URL
3462
+ * Creation timestamp
3045
3463
  */
3046
- logoUrl?: string;
3464
+ createdAt: string;
3047
3465
  /**
3048
- * Whether the platform is active
3466
+ * Last update timestamp
3049
3467
  */
3050
- isActive?: boolean;
3468
+ updatedAt: string;
3051
3469
  };
3052
3470
  /**
3053
- * Platform type
3471
+ * Importer identifier
3054
3472
  */
3055
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3056
- type UpdatePlatformDto = {
3473
+ 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';
3474
+ type UpdateMapperDefaultsDto = {
3057
3475
  /**
3058
- * Platform name
3476
+ * Source account for transactions (Beancount format)
3059
3477
  */
3060
- name?: string;
3478
+ sourceAccount?: string;
3061
3479
  /**
3062
- * Platform canonical identifier (lowercase, kebab-case)
3480
+ * Default currency (ISO 4217 code)
3063
3481
  */
3064
- canonical?: string;
3482
+ currency?: string;
3065
3483
  /**
3066
- * Platform aliases (multi-language names for lookup)
3484
+ * Default expense account (optional)
3067
3485
  */
3068
- aliases?: Array<string>;
3486
+ expenseAccount?: string;
3069
3487
  /**
3070
- * Platform URL
3488
+ * Default income account (optional)
3071
3489
  */
3072
- url?: string;
3490
+ incomeAccount?: string;
3073
3491
  /**
3074
- * Platform type
3492
+ * 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
3493
  */
3076
- type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3494
+ methodAccountMapping?: {
3495
+ [key: string]: unknown;
3496
+ };
3497
+ };
3498
+ type UpdateConfigDataDto = {
3077
3499
  /**
3078
- * Platform logo URL
3500
+ * Mapper defaults configuration
3079
3501
  */
3080
- logoUrl?: string;
3502
+ defaults?: UpdateMapperDefaultsDto;
3503
+ };
3504
+ type UpdateImporterConfigDto = {
3081
3505
  /**
3082
- * Whether the platform is active
3506
+ * Configuration data (v1 schema)
3083
3507
  */
3084
- isActive?: boolean;
3508
+ data?: UpdateConfigDataDto;
3085
3509
  };
3086
3510
  type ProviderSyncConfigDto = {
3087
3511
  /**
@@ -3104,6 +3528,10 @@ type ProviderSyncConfigDto = {
3104
3528
  * Filter pending transactions
3105
3529
  */
3106
3530
  filterPending?: boolean;
3531
+ /**
3532
+ * External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
3533
+ */
3534
+ externalAccountId?: string;
3107
3535
  };
3108
3536
  type ProviderSyncDto = {
3109
3537
  /**
@@ -3155,6 +3583,41 @@ type SupportedProvidersResponseDto = {
3155
3583
  */
3156
3584
  providers: Array<string>;
3157
3585
  };
3586
+ type CreateExternalAccountLinkDto = {
3587
+ /**
3588
+ * Open Banking provider (whitelist)
3589
+ */
3590
+ provider: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3591
+ /**
3592
+ * External account ID from the provider
3593
+ */
3594
+ externalAccountId: string;
3595
+ /**
3596
+ * Target BeanAccount ID (must belong to the JWT user)
3597
+ */
3598
+ beanAccountId: string;
3599
+ };
3600
+ /**
3601
+ * Open Banking provider (whitelist)
3602
+ */
3603
+ type provider = 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3604
+ type ExternalAccountLinkResponseDto = {
3605
+ id: string;
3606
+ provider: string;
3607
+ externalAccountId: string;
3608
+ beanAccountId: string;
3609
+ isActive: boolean;
3610
+ createdAt: string;
3611
+ updatedAt: string;
3612
+ };
3613
+ type ExternalAccountLinkListResponseDto = {
3614
+ items: Array<ExternalAccountLinkResponseDto>;
3615
+ total: number;
3616
+ /**
3617
+ * Filter by provider (query param)
3618
+ */
3619
+ provider?: string;
3620
+ };
3158
3621
  type ParserTelemetryReportDto = unknown;
3159
3622
  type UncoveredFormatMissDto = unknown;
3160
3623
  type ProcessNlpDto = {
@@ -3172,6 +3635,14 @@ type ProcessNlpDto = {
3172
3635
  parsedData?: {
3173
3636
  [key: string]: unknown;
3174
3637
  };
3638
+ /**
3639
+ * 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.
3640
+ */
3641
+ selectedRuleId?: string;
3642
+ /**
3643
+ * 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.
3644
+ */
3645
+ selectedAccount?: string;
3175
3646
  };
3176
3647
  type NlpTransactionInfoDto = {
3177
3648
  /**
@@ -3405,9 +3876,9 @@ type NlpAccountConfirmationDataDto = {
3405
3876
  */
3406
3877
  invalidAccount: string;
3407
3878
  /**
3408
- * Suggested replacement account
3879
+ * Suggested replacement account (omitted when no clear candidate)
3409
3880
  */
3410
- suggestedAccount: string;
3881
+ suggestedAccount?: string;
3411
3882
  /**
3412
3883
  * Similar accounts for user selection
3413
3884
  */
@@ -3529,7 +4000,7 @@ type NlpSuggestedAccountDto = {
3529
4000
  */
3530
4001
  account: string;
3531
4002
  /**
3532
- * Confidence score for this suggestion (0-1)
4003
+ * Confidence score for this suggestion (0-1). Present = predicted (confirm/confirm_rule/confirm_account); omitted = actual persisted account (created). (#586)
3533
4004
  */
3534
4005
  confidence?: number;
3535
4006
  };
@@ -3545,21 +4016,21 @@ type NlpSuggestedAccountsDto = {
3545
4016
  };
3546
4017
  type NlpDefaultAccountsDto = {
3547
4018
  /**
3548
- * Default asset account
4019
+ * Default OPEN asset account (MRU when multiple), or null when none/ambiguous
3549
4020
  */
3550
- asset: string;
4021
+ asset: string | null;
3551
4022
  /**
3552
- * Default expense account
4023
+ * Default OPEN expense account (MRU when multiple), or null when none/ambiguous
3553
4024
  */
3554
- expense: string;
4025
+ expense: string | null;
3555
4026
  /**
3556
- * Default income account
4027
+ * Default OPEN income account (MRU when multiple), or null when none/ambiguous
3557
4028
  */
3558
- income: string;
4029
+ income: string | null;
3559
4030
  /**
3560
- * Default liability account
4031
+ * Default OPEN liability account (MRU when multiple), or null when none/ambiguous
3561
4032
  */
3562
- liability: string;
4033
+ liability: string | null;
3563
4034
  };
3564
4035
  type NlpResponseDto = {
3565
4036
  /**
@@ -3569,7 +4040,7 @@ type NlpResponseDto = {
3569
4040
  /**
3570
4041
  * Action taken or requested
3571
4042
  */
3572
- action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4043
+ action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3573
4044
  /**
3574
4045
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3575
4046
  */
@@ -3658,11 +4129,11 @@ type NlpResponseDto = {
3658
4129
  */
3659
4130
  recurringSuggestion?: RecurringSuggestionDto;
3660
4131
  /**
3661
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4132
+ * Suggested accounts for this transaction (#586). confirm/confirm_rule/confirm_account: predicted (source/destination carry confidence); created: actual persisted accounts (confidence omitted). confirm_account destination is the suggested replacement, never the invalid account.
3662
4133
  */
3663
4134
  suggestedAccounts?: NlpSuggestedAccountsDto;
3664
4135
  /**
3665
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4136
+ * Default fallback accounts for the user/region (#586). v1 returns universal constants; per-user personalization is planned.
3666
4137
  */
3667
4138
  defaultAccounts?: NlpDefaultAccountsDto;
3668
4139
  };
@@ -3673,7 +4144,7 @@ type status4 = 'success' | 'pending' | 'error';
3673
4144
  /**
3674
4145
  * Action taken or requested
3675
4146
  */
3676
- type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4147
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3677
4148
  /**
3678
4149
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3679
4150
  */
@@ -3690,15 +4161,159 @@ type liabilitySubType = 'borrow' | 'repay';
3690
4161
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3691
4162
  */
3692
4163
  type equitySubType = 'opening' | 'adjustment';
3693
- type BalanceByCurrencyDto = {
4164
+ type PlatformListItemDto = {
3694
4165
  /**
3695
- * ISO 4217 currency code
4166
+ * Global platform ID
3696
4167
  */
3697
- currency: string;
4168
+ id: string;
3698
4169
  /**
3699
- * Balance amount
4170
+ * Platform name
3700
4171
  */
3701
- balance: string;
4172
+ name: string;
4173
+ /**
4174
+ * Platform URL
4175
+ */
4176
+ url: string;
4177
+ /**
4178
+ * Platform type
4179
+ */
4180
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4181
+ /**
4182
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4183
+ */
4184
+ canonical: string;
4185
+ /**
4186
+ * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
4187
+ */
4188
+ suggestedSegment: string;
4189
+ /**
4190
+ * Logo URL
4191
+ */
4192
+ logoUrl: string | null;
4193
+ /**
4194
+ * Whether user has accounts using this platform
4195
+ */
4196
+ isBound: boolean;
4197
+ };
4198
+ /**
4199
+ * Platform type
4200
+ */
4201
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4202
+ type PlatformMatchResultDto = {
4203
+ /**
4204
+ * Global platform ID
4205
+ */
4206
+ id: string;
4207
+ /**
4208
+ * Platform name (e.g., "ICBC")
4209
+ */
4210
+ name: string;
4211
+ /**
4212
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4213
+ */
4214
+ canonical: string;
4215
+ /**
4216
+ * Platform type
4217
+ */
4218
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4219
+ /**
4220
+ * Suggested path segment — canonical, already in ACCOUNT_RE format
4221
+ */
4222
+ suggestedSegment: string;
4223
+ /**
4224
+ * Logo URL
4225
+ */
4226
+ logoUrl: string | null;
4227
+ /**
4228
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4229
+ */
4230
+ matchType: 'exact' | 'prefix' | 'substring';
4231
+ };
4232
+ /**
4233
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4234
+ */
4235
+ type matchType = 'exact' | 'prefix' | 'substring';
4236
+ type PlatformMatchResponseDto = {
4237
+ /**
4238
+ * Ranked matches, best tier first (at most 10 rows)
4239
+ */
4240
+ platforms: Array<PlatformMatchResultDto>;
4241
+ /**
4242
+ * Overall match quality — top row's tier, or 'none' when no hits
4243
+ */
4244
+ matchType: 'none' | 'exact' | 'prefix' | 'substring';
4245
+ /**
4246
+ * Total matches before LIMIT (truncation transparency)
4247
+ */
4248
+ total: number;
4249
+ /**
4250
+ * true when total > platforms.length (more matches exist)
4251
+ */
4252
+ hasMore: boolean;
4253
+ };
4254
+ /**
4255
+ * Overall match quality — top row's tier, or 'none' when no hits
4256
+ */
4257
+ type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4258
+ type CreatePlatformDto = {
4259
+ /**
4260
+ * Platform name
4261
+ */
4262
+ name: string;
4263
+ /**
4264
+ * Platform canonical identifier (lowercase, kebab-case)
4265
+ */
4266
+ canonical: string;
4267
+ /**
4268
+ * Platform aliases (multi-language names for lookup)
4269
+ */
4270
+ aliases: Array<string>;
4271
+ /**
4272
+ * Platform URL
4273
+ */
4274
+ url: string;
4275
+ /**
4276
+ * Platform type
4277
+ */
4278
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4279
+ /**
4280
+ * Platform logo URL
4281
+ */
4282
+ logoUrl?: string;
4283
+ /**
4284
+ * Whether the platform is active
4285
+ */
4286
+ isActive?: boolean;
4287
+ };
4288
+ type UpdatePlatformDto = {
4289
+ /**
4290
+ * Platform name
4291
+ */
4292
+ name?: string;
4293
+ /**
4294
+ * Platform canonical identifier (lowercase, kebab-case)
4295
+ */
4296
+ canonical?: string;
4297
+ /**
4298
+ * Platform aliases (multi-language names for lookup)
4299
+ */
4300
+ aliases?: Array<string>;
4301
+ /**
4302
+ * Platform URL
4303
+ */
4304
+ url?: string;
4305
+ /**
4306
+ * Platform type
4307
+ */
4308
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4309
+ /**
4310
+ * Platform logo URL
4311
+ */
4312
+ logoUrl?: string;
4313
+ /**
4314
+ * Whether the platform is active
4315
+ */
4316
+ isActive?: boolean;
3702
4317
  };
3703
4318
  type NetWorthByCurrencyDto = {
3704
4319
  /**
@@ -3738,20 +4353,6 @@ type ConvertedNetWorthDto = {
3738
4353
  [key: string]: unknown;
3739
4354
  };
3740
4355
  };
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
4356
  type NetWorthResponseDto = {
3756
4357
  /**
3757
4358
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3815,6 +4416,10 @@ type AccountItemDto = {
3815
4416
  * Currency code
3816
4417
  */
3817
4418
  currency: string;
4419
+ /**
4420
+ * FX-converted balance in base currency; omitted when not convertible
4421
+ */
4422
+ convertedBalance?: string;
3818
4423
  };
3819
4424
  type PlatformGroupDto = {
3820
4425
  /**
@@ -3830,9 +4435,39 @@ type PlatformGroupDto = {
3830
4435
  */
3831
4436
  accounts: Array<AccountItemDto>;
3832
4437
  /**
3833
- * Total balance across all accounts in platform
4438
+ * FX-converted total balance in base currency
3834
4439
  */
3835
4440
  totalBalance: string;
4441
+ /**
4442
+ * Raw (unconverted) balances grouped by currency
4443
+ */
4444
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4445
+ /**
4446
+ * Converted balance in base currency (omitted when no currency is convertible)
4447
+ */
4448
+ convertedBalance?: string;
4449
+ /**
4450
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4451
+ */
4452
+ sharePct: number;
4453
+ };
4454
+ type AccountExchangeRateWarningDto = {
4455
+ /**
4456
+ * Warning type
4457
+ */
4458
+ type: string;
4459
+ /**
4460
+ * Currency without exchange rate
4461
+ */
4462
+ currency: string;
4463
+ /**
4464
+ * Affected account paths
4465
+ */
4466
+ accounts: Array<string>;
4467
+ /**
4468
+ * Total amount in this currency
4469
+ */
4470
+ totalAmount: string;
3836
4471
  };
3837
4472
  type AccountsSummaryDto = {
3838
4473
  /**
@@ -3843,6 +4478,14 @@ type AccountsSummaryDto = {
3843
4478
  * Total number of platforms
3844
4479
  */
3845
4480
  totalPlatforms: number;
4481
+ /**
4482
+ * Base currency for conversion
4483
+ */
4484
+ baseCurrency: string;
4485
+ /**
4486
+ * Per-account exchange rate warnings
4487
+ */
4488
+ warnings?: Array<AccountExchangeRateWarningDto>;
3846
4489
  };
3847
4490
  type AccountsResponseDto = {
3848
4491
  /**
@@ -3875,6 +4518,10 @@ type AccountItemWithAssetClassDto = {
3875
4518
  * Currency code
3876
4519
  */
3877
4520
  currency: string;
4521
+ /**
4522
+ * FX-converted balance in base currency; omitted when not convertible
4523
+ */
4524
+ convertedBalance?: string;
3878
4525
  /**
3879
4526
  * Asset class
3880
4527
  */
@@ -3922,28 +4569,6 @@ type AssetClassGroupDto = {
3922
4569
  */
3923
4570
  convertedBalance?: string;
3924
4571
  };
3925
- /**
3926
- * Asset class name
3927
- */
3928
- 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
4572
  type AssetClassSummaryDto = {
3948
4573
  /**
3949
4574
  * Total number of accounts
@@ -4102,6 +4727,60 @@ type CashFlowResponseDto = {
4102
4727
  */
4103
4728
  warnings?: Array<ExchangeRateWarningDto>;
4104
4729
  };
4730
+ type CategoryGroupDto = {
4731
+ /**
4732
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4733
+ */
4734
+ category: string;
4735
+ /**
4736
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4737
+ */
4738
+ totalExpense: string;
4739
+ /**
4740
+ * Share of grand total (0-100); 0 when grand total is 0
4741
+ */
4742
+ sharePct: number;
4743
+ /**
4744
+ * Raw (unconverted) expense per currency
4745
+ */
4746
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4747
+ /**
4748
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4749
+ */
4750
+ convertedBalance?: string;
4751
+ };
4752
+ type ExpensesByCategorySummaryDto = {
4753
+ /**
4754
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4755
+ */
4756
+ totalExpense: string;
4757
+ /**
4758
+ * Number of categories
4759
+ */
4760
+ categoryCount: number;
4761
+ };
4762
+ type ExpensesByCategoryResponseDto = {
4763
+ /**
4764
+ * Period requested
4765
+ */
4766
+ period: string;
4767
+ /**
4768
+ * Base currency for converted values
4769
+ */
4770
+ baseCurrency: string;
4771
+ /**
4772
+ * Expense groups by functional category, sorted by converted total desc
4773
+ */
4774
+ groups: Array<CategoryGroupDto>;
4775
+ /**
4776
+ * Summary statistics
4777
+ */
4778
+ summary: ExpensesByCategorySummaryDto;
4779
+ /**
4780
+ * Exchange rate warnings (e.g. missing rate for a currency)
4781
+ */
4782
+ warnings?: Array<ExchangeRateWarningDto>;
4783
+ };
4105
4784
  type MonetaryDto = {
4106
4785
  /**
4107
4786
  * Amount (Decimal string)
@@ -4208,328 +4887,208 @@ type HoldingPnlRowDto = {
4208
4887
  /**
4209
4888
  * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4210
4889
  */
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;
4890
+ unrealizedPnlBase?: {
4891
+ [key: string]: unknown;
4892
+ } | null;
4409
4893
  /**
4410
- * Value at end of period
4894
+ * Unrealized P&L % (Decimal string)
4411
4895
  */
4412
- endValue: string;
4896
+ unrealizedPnlPct?: {
4897
+ [key: string]: unknown;
4898
+ } | null;
4413
4899
  /**
4414
- * Total change over period
4900
+ * Historical FX rate applied to cost basis
4415
4901
  */
4416
- totalChange: string;
4902
+ costFxRate?: FxRateDto | null;
4417
4903
  /**
4418
- * Total change percentage
4904
+ * FX rate applied to market value
4419
4905
  */
4420
- totalChangePercentage: string;
4421
- };
4422
- type MultiCurrencyPointDto = {
4906
+ marketFxRate?: FxRateDto | null;
4423
4907
  /**
4424
- * Date in YYYY-MM-DD format
4908
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4425
4909
  */
4426
- date: string;
4910
+ pctOfInvestedAssets?: {
4911
+ [key: string]: unknown;
4912
+ } | null;
4427
4913
  /**
4428
- * Balances by currency
4914
+ * 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
4915
  */
4430
- byCurrency: Array<CurrencyBalanceDto>;
4916
+ realizedPnl?: MonetaryDto | null;
4431
4917
  };
4432
- type PortfolioTrendsResponseDto = {
4918
+ /**
4919
+ * Chart segment token (libs/common resolver)
4920
+ */
4921
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4922
+ type HoldingPnlWarningDto = {
4433
4923
  /**
4434
- * Time series data points
4924
+ * Warning type
4435
4925
  */
4436
- series: Array<TimeSeriesPointDto>;
4926
+ type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4927
+ symbol?: {
4928
+ [key: string]: unknown;
4929
+ } | null;
4930
+ accountId?: {
4931
+ [key: string]: unknown;
4932
+ } | null;
4933
+ currency?: {
4934
+ [key: string]: unknown;
4935
+ } | null;
4936
+ };
4937
+ /**
4938
+ * Warning type
4939
+ */
4940
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4941
+ type HoldingPnlResponseDto = {
4942
+ asOfDate: string;
4943
+ baseCurrency: string;
4437
4944
  /**
4438
- * Period summary
4945
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4439
4946
  */
4440
- summary: TrendSummaryDto;
4947
+ method: 'average' | 'FIFO';
4948
+ rows: Array<HoldingPnlRowDto>;
4949
+ warnings: Array<HoldingPnlWarningDto>;
4950
+ };
4951
+ /**
4952
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4953
+ */
4954
+ type method = 'average' | 'FIFO';
4955
+ type AnonymousLoginDto = {
4441
4956
  /**
4442
- * Period requested
4957
+ * Access token for anonymous login
4443
4958
  */
4444
- period: string;
4959
+ accessToken: string;
4960
+ };
4961
+ type AnonymousLoginResponseDto = {
4445
4962
  /**
4446
- * Data granularity
4963
+ * JWT auth token
4447
4964
  */
4448
- granularity: string;
4965
+ authToken: string;
4966
+ };
4967
+ type SymbolSearchResultDto = {
4968
+ symbol: string;
4969
+ name?: {
4970
+ [key: string]: unknown;
4971
+ } | null;
4972
+ exchange?: {
4973
+ [key: string]: unknown;
4974
+ } | null;
4449
4975
  /**
4450
- * Base currency for converted values
4976
+ * OpenBB asset_type (e.g. stock, etf)
4451
4977
  */
4452
- currency: string;
4978
+ assetType?: {
4979
+ [key: string]: unknown;
4980
+ } | null;
4453
4981
  /**
4454
- * Multi-currency time series (each point has currency breakdown)
4982
+ * IGN asset class (region.types.ts ASSET_CLASSES)
4455
4983
  */
4456
- byCurrency?: Array<MultiCurrencyPointDto>;
4984
+ assetClass?: {
4985
+ [key: string]: unknown;
4986
+ } | null;
4457
4987
  /**
4458
- * Exchange rate warnings
4988
+ * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
4459
4989
  */
4460
- warnings?: Array<ExchangeRateWarningDto>;
4461
- };
4462
- type CashFlowPointDto = {
4990
+ assetSubClass?: {
4991
+ [key: string]: unknown;
4992
+ } | null;
4463
4993
  /**
4464
- * Month key (YYYY-MM)
4994
+ * Trading currency (extra_data or inferred from exchange)
4465
4995
  */
4466
- month: string;
4996
+ currency?: {
4997
+ [key: string]: unknown;
4998
+ } | null;
4999
+ };
5000
+ type SymbolQuoteDto = {
5001
+ symbol?: string;
5002
+ name?: {
5003
+ [key: string]: unknown;
5004
+ } | null;
5005
+ exchange?: {
5006
+ [key: string]: unknown;
5007
+ } | null;
4467
5008
  /**
4468
- * Income in base currency (absolute, converted)
5009
+ * OpenBB asset_type
4469
5010
  */
4470
- income: string;
5011
+ assetType?: {
5012
+ [key: string]: unknown;
5013
+ } | null;
4471
5014
  /**
4472
- * Expense in base currency (absolute, converted)
5015
+ * IGN asset class
4473
5016
  */
4474
- expense: string;
5017
+ assetClass?: {
5018
+ [key: string]: unknown;
5019
+ } | null;
4475
5020
  /**
4476
- * netSavings = income − expense (savings positive)
5021
+ * IGN asset sub-class
4477
5022
  */
4478
- netSavings: string;
4479
- };
4480
- type CashFlowTrendSummaryDto = {
5023
+ assetSubClass?: {
5024
+ [key: string]: unknown;
5025
+ } | null;
4481
5026
  /**
4482
- * Total income across the period
5027
+ * Trading currency (extra_data or inferred from exchange)
4483
5028
  */
4484
- totalIncome: string;
5029
+ currency?: {
5030
+ [key: string]: unknown;
5031
+ } | null;
4485
5032
  /**
4486
- * Total expense across the period
5033
+ * Latest price (Decimal string)
4487
5034
  */
4488
- totalExpense: string;
5035
+ price?: {
5036
+ [key: string]: unknown;
5037
+ } | null;
4489
5038
  /**
4490
- * income expense across the period
5039
+ * Date the price was observed (ISO yyyy-MM-dd)
4491
5040
  */
4492
- totalNetSavings: string;
5041
+ priceDate?: {
5042
+ [key: string]: unknown;
5043
+ } | null;
4493
5044
  /**
4494
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
5045
+ * 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
5046
  */
4496
- averageMonthlyNetSavings: string;
4497
- };
4498
- type CashFlowTrendsResponseDto = {
5047
+ changePercent?: {
5048
+ [key: string]: unknown;
5049
+ } | null;
4499
5050
  /**
4500
- * Monthly cash-flow series (fixed N-month window, zero-filled)
5051
+ * Previous close (Decimal string)
4501
5052
  */
4502
- series: Array<CashFlowPointDto>;
5053
+ prevClose?: {
5054
+ [key: string]: unknown;
5055
+ } | null;
4503
5056
  /**
4504
- * Period totals
5057
+ * Day open (Decimal string)
4505
5058
  */
4506
- summary: CashFlowTrendSummaryDto;
5059
+ open?: {
5060
+ [key: string]: unknown;
5061
+ } | null;
4507
5062
  /**
4508
- * Period requested
5063
+ * Day high (Decimal string)
4509
5064
  */
4510
- period: string;
5065
+ high?: {
5066
+ [key: string]: unknown;
5067
+ } | null;
4511
5068
  /**
4512
- * Data granularity (v1 returns month buckets)
5069
+ * Day low (Decimal string)
4513
5070
  */
4514
- granularity: string;
5071
+ low?: {
5072
+ [key: string]: unknown;
5073
+ } | null;
4515
5074
  /**
4516
- * Base currency for converted values
5075
+ * Day volume (Decimal string)
4517
5076
  */
4518
- currency: string;
5077
+ volume?: {
5078
+ [key: string]: unknown;
5079
+ } | null;
4519
5080
  /**
4520
- * Exchange rate warnings (e.g. missing rate for a currency)
5081
+ * 52-week high (Decimal string)
4521
5082
  */
4522
- warnings?: Array<ExchangeRateWarningDto>;
4523
- };
4524
- type GenerateSnapshotBody = unknown;
4525
- type GenerateSnapshotResponse = unknown;
4526
- type BackfillSnapshotsBody = unknown;
4527
- type BackfillSnapshotsResponse = unknown;
4528
- type AnonymousLoginDto = {
5083
+ yearHigh?: {
5084
+ [key: string]: unknown;
5085
+ } | null;
4529
5086
  /**
4530
- * Access token for anonymous login
5087
+ * 52-week low (Decimal string)
4531
5088
  */
4532
- accessToken: string;
5089
+ yearLow?: {
5090
+ [key: string]: unknown;
5091
+ } | null;
4533
5092
  };
4534
5093
  type AccountControllerCreateData = {
4535
5094
  /**
@@ -4557,7 +5116,7 @@ type AccountControllerFindAllData = {
4557
5116
  */
4558
5117
  region: 'cn' | 'us' | 'de' | 'gb';
4559
5118
  /**
4560
- * Search term for path or i18nKey
5119
+ * Search term for account path
4561
5120
  */
4562
5121
  search?: string;
4563
5122
  /**
@@ -4628,6 +5187,18 @@ type AccountControllerReopenData = {
4628
5187
  requestBody: ReopenAccountDto;
4629
5188
  };
4630
5189
  type AccountControllerReopenResponse = AccountResponseDto;
5190
+ type AccountControllerAddOpeningBalanceData = {
5191
+ /**
5192
+ * Account UUID
5193
+ */
5194
+ id: string;
5195
+ /**
5196
+ * Region code for tenant context
5197
+ */
5198
+ region: 'cn' | 'us' | 'de' | 'gb';
5199
+ requestBody: CreateOpeningBalanceDto;
5200
+ };
5201
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4631
5202
  type AccountStandardsControllerGetTemplatesData = {
4632
5203
  /**
4633
5204
  * Region code (cn, us, de)
@@ -4677,6 +5248,10 @@ type TransactionControllerListData = {
4677
5248
  * Filter by account ID (transactions with postings to this account)
4678
5249
  */
4679
5250
  accountId?: string;
5251
+ /**
5252
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5253
+ */
5254
+ category?: string;
4680
5255
  /**
4681
5256
  * Filter by start date (inclusive), format: YYYY-MM-DD
4682
5257
  */
@@ -4785,7 +5360,7 @@ type TransactionControllerDeleteData = {
4785
5360
  type TransactionControllerDeleteResponse = void;
4786
5361
  type BalanceControllerGetBalanceData = {
4787
5362
  /**
4788
- * Account name (e.g., "Assets:Bank:Checking")
5363
+ * Account name (e.g., "Assets:Checking")
4789
5364
  */
4790
5365
  account: string;
4791
5366
  /**
@@ -5027,76 +5602,161 @@ type CommodityControllerCreateData = {
5027
5602
  * Region code for tenant context
5028
5603
  */
5029
5604
  region: 'cn' | 'us' | 'de' | 'gb';
5030
- requestBody: CreateCommodityDto;
5605
+ requestBody: CreateCommodityDto;
5606
+ };
5607
+ type CommodityControllerCreateResponse = CommodityResponseDto;
5608
+ type CommodityControllerFindAllData = {
5609
+ /**
5610
+ * Region code for tenant context
5611
+ */
5612
+ region: 'cn' | 'us' | 'de' | 'gb';
5613
+ /**
5614
+ * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
5615
+ */
5616
+ search?: string;
5617
+ /**
5618
+ * Filter by exact symbol match
5619
+ */
5620
+ symbol?: string;
5621
+ };
5622
+ type CommodityControllerFindAllResponse = CommodityListResponseDto;
5623
+ type CommodityControllerFindOneData = {
5624
+ /**
5625
+ * Region code for tenant context
5626
+ */
5627
+ region: 'cn' | 'us' | 'de' | 'gb';
5628
+ /**
5629
+ * Commodity symbol
5630
+ */
5631
+ symbol: string;
5632
+ };
5633
+ type CommodityControllerFindOneResponse = CommodityResponseDto;
5634
+ type CommodityControllerUpdateData = {
5635
+ /**
5636
+ * Region code for tenant context
5637
+ */
5638
+ region: 'cn' | 'us' | 'de' | 'gb';
5639
+ requestBody: UpdateCommodityDto;
5640
+ /**
5641
+ * Commodity symbol
5642
+ */
5643
+ symbol: string;
5644
+ };
5645
+ type CommodityControllerUpdateResponse = CommodityResponseDto;
5646
+ type CommodityControllerDeleteData = {
5647
+ /**
5648
+ * Region code for tenant context
5649
+ */
5650
+ region: 'cn' | 'us' | 'de' | 'gb';
5651
+ /**
5652
+ * Commodity symbol
5653
+ */
5654
+ symbol: string;
5655
+ };
5656
+ type CommodityControllerDeleteResponse = void;
5657
+ type CommodityControllerGetOrCreateData = {
5658
+ /**
5659
+ * Region code for tenant context
5660
+ */
5661
+ region: 'cn' | 'us' | 'de' | 'gb';
5662
+ /**
5663
+ * Commodity symbol
5664
+ */
5665
+ symbol: string;
5666
+ };
5667
+ type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
5668
+ type CommodityControllerBulkCreateData = {
5669
+ /**
5670
+ * Region code for tenant context
5671
+ */
5672
+ region: 'cn' | 'us' | 'de' | 'gb';
5031
5673
  };
5032
- type CommodityControllerCreateResponse = CommodityResponseDto;
5033
- type CommodityControllerFindAllData = {
5674
+ type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5675
+ type PriceControllerCreateData = {
5034
5676
  /**
5035
5677
  * Region code for tenant context
5036
5678
  */
5037
5679
  region: 'cn' | 'us' | 'de' | 'gb';
5680
+ requestBody: CreateBeanPriceDto;
5681
+ };
5682
+ type PriceControllerCreateResponse = PriceResponseDto;
5683
+ type PriceControllerFindAllData = {
5038
5684
  /**
5039
- * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
5685
+ * Filter by currency (e.g., BTC, AAPL, USD)
5040
5686
  */
5041
- search?: string;
5687
+ currency?: string;
5042
5688
  /**
5043
- * Filter by exact symbol match
5689
+ * Filter prices from this date (ISO 8601 format)
5044
5690
  */
5045
- symbol?: string;
5046
- };
5047
- type CommodityControllerFindAllResponse = CommodityListResponseDto;
5048
- type CommodityControllerFindOneData = {
5691
+ dateFrom?: string;
5049
5692
  /**
5050
- * Region code for tenant context
5693
+ * Filter prices to this date (ISO 8601 format)
5051
5694
  */
5052
- region: 'cn' | 'us' | 'de' | 'gb';
5695
+ dateTo?: string;
5053
5696
  /**
5054
- * Commodity symbol
5697
+ * Number of items per page (default: 20, max: 100)
5055
5698
  */
5056
- symbol: string;
5057
- };
5058
- type CommodityControllerFindOneResponse = CommodityResponseDto;
5059
- type CommodityControllerUpdateData = {
5699
+ limit?: number;
5700
+ /**
5701
+ * Page number for pagination (default: 1)
5702
+ */
5703
+ page?: number;
5704
+ /**
5705
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5706
+ */
5707
+ quoteCurrency?: string;
5060
5708
  /**
5061
5709
  * Region code for tenant context
5062
5710
  */
5063
5711
  region: 'cn' | 'us' | 'de' | 'gb';
5064
- requestBody: UpdateCommodityDto;
5065
5712
  /**
5066
- * Commodity symbol
5713
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5067
5714
  */
5068
- symbol: string;
5715
+ search?: string;
5069
5716
  };
5070
- type CommodityControllerUpdateResponse = CommodityResponseDto;
5071
- type CommodityControllerDeleteData = {
5717
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5718
+ type PriceControllerFindOneData = {
5719
+ /**
5720
+ * Price ID
5721
+ */
5722
+ id: string;
5072
5723
  /**
5073
5724
  * Region code for tenant context
5074
5725
  */
5075
5726
  region: 'cn' | 'us' | 'de' | 'gb';
5727
+ };
5728
+ type PriceControllerFindOneResponse = PriceResponseDto;
5729
+ type PriceControllerUpdateData = {
5076
5730
  /**
5077
- * Commodity symbol
5731
+ * Price ID
5078
5732
  */
5079
- symbol: string;
5080
- };
5081
- type CommodityControllerDeleteResponse = void;
5082
- type CommodityControllerGetOrCreateData = {
5733
+ id: string;
5083
5734
  /**
5084
5735
  * Region code for tenant context
5085
5736
  */
5086
5737
  region: 'cn' | 'us' | 'de' | 'gb';
5738
+ requestBody: UpdateBeanPriceDto;
5739
+ };
5740
+ type PriceControllerUpdateResponse = PriceResponseDto;
5741
+ type PriceControllerDeleteData = {
5087
5742
  /**
5088
- * Commodity symbol
5743
+ * Price ID
5089
5744
  */
5090
- symbol: string;
5745
+ id: string;
5746
+ /**
5747
+ * Region code for tenant context
5748
+ */
5749
+ region: 'cn' | 'us' | 'de' | 'gb';
5091
5750
  };
5092
- type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
5093
- type CommodityControllerBulkCreateData = {
5751
+ type PriceControllerDeleteResponse = void;
5752
+ type PriceControllerBulkCreateData = {
5094
5753
  /**
5095
5754
  * Region code for tenant context
5096
5755
  */
5097
5756
  region: 'cn' | 'us' | 'de' | 'gb';
5757
+ requestBody: Array<string>;
5098
5758
  };
5099
- type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5759
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
5100
5760
  type RecurringRuleControllerCreateData = {
5101
5761
  /**
5102
5762
  * Region code for tenant context
@@ -5290,6 +5950,120 @@ type ForecastControllerGetForecastData = {
5290
5950
  region: 'cn' | 'us' | 'de' | 'gb';
5291
5951
  };
5292
5952
  type ForecastControllerGetForecastResponse = ForecastResponseDto;
5953
+ type ReportingControllerGetPortfolioTrendsData = {
5954
+ /**
5955
+ * Data granularity
5956
+ */
5957
+ granularity?: 'day' | 'week' | 'month';
5958
+ /**
5959
+ * Time period
5960
+ */
5961
+ period?: '1m' | '3m' | '6m' | '1y';
5962
+ /**
5963
+ * Region code for tenant context
5964
+ */
5965
+ region: 'cn' | 'us' | 'de' | 'gb';
5966
+ };
5967
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5968
+ type ReportingControllerGetCashFlowTrendsData = {
5969
+ /**
5970
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5971
+ */
5972
+ granularity?: 'day' | 'week' | 'month';
5973
+ /**
5974
+ * Time period
5975
+ */
5976
+ period?: '1m' | '3m' | '6m' | '1y';
5977
+ /**
5978
+ * Region code for tenant context
5979
+ */
5980
+ region: 'cn' | 'us' | 'de' | 'gb';
5981
+ };
5982
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5983
+ type ReportingControllerGenerateSnapshotData = {
5984
+ /**
5985
+ * Region code for tenant context
5986
+ */
5987
+ region: 'cn' | 'us' | 'de' | 'gb';
5988
+ /**
5989
+ * Optional date (defaults to today)
5990
+ */
5991
+ requestBody: GenerateSnapshotBody;
5992
+ };
5993
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5994
+ type ReportingControllerBackfillSnapshotsData = {
5995
+ /**
5996
+ * Region code for tenant context
5997
+ */
5998
+ region: 'cn' | 'us' | 'de' | 'gb';
5999
+ requestBody: BackfillSnapshotsBody;
6000
+ };
6001
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6002
+ type UserControllerDeleteOwnUserData = {
6003
+ requestBody: DeleteOwnUserDto;
6004
+ };
6005
+ type UserControllerDeleteOwnUserResponse = void;
6006
+ type UserControllerGetUserData = {
6007
+ acceptLanguage: string;
6008
+ };
6009
+ type UserControllerGetUserResponse = unknown;
6010
+ type UserControllerSignupUserData = {
6011
+ requestBody: SignupDto;
6012
+ };
6013
+ type UserControllerSignupUserResponse = SignupResponseDto;
6014
+ type UserControllerDeleteUserData = {
6015
+ /**
6016
+ * User ID to delete
6017
+ */
6018
+ id: string;
6019
+ };
6020
+ type UserControllerDeleteUserResponse = void;
6021
+ type UserControllerGetUserInfoData = {
6022
+ /**
6023
+ * User ID
6024
+ */
6025
+ id: string;
6026
+ };
6027
+ type UserControllerGetUserInfoResponse = unknown;
6028
+ type UserControllerUpdateUserSettingData = {
6029
+ requestBody: UpdateUserSettingDto;
6030
+ };
6031
+ type UserControllerUpdateUserSettingResponse = unknown;
6032
+ type UserControllerGetAllUserSettingsByPageData = {
6033
+ /**
6034
+ * Page number
6035
+ */
6036
+ pageNo: number;
6037
+ /**
6038
+ * Page size
6039
+ */
6040
+ pageSize: number;
6041
+ };
6042
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6043
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6044
+ type PropertyControllerGetAllResponse = unknown;
6045
+ type PropertyControllerGetByKeyData = {
6046
+ /**
6047
+ * Property key
6048
+ */
6049
+ key: string;
6050
+ };
6051
+ type PropertyControllerGetByKeyResponse = unknown;
6052
+ type PropertyControllerUpdateData = {
6053
+ /**
6054
+ * Property key
6055
+ */
6056
+ key: string;
6057
+ requestBody: UpdatePropertyDto;
6058
+ };
6059
+ type PropertyControllerUpdateResponse = unknown;
6060
+ type PropertyControllerDeleteData = {
6061
+ /**
6062
+ * Property key
6063
+ */
6064
+ key: string;
6065
+ };
6066
+ type PropertyControllerDeleteResponse = void;
5293
6067
  type TransactionRuleControllerCreateData = {
5294
6068
  /**
5295
6069
  * Region code for tenant context
@@ -5366,114 +6140,49 @@ type TransactionRuleControllerGetStatisticsResponse = RuleStatisticsResponseDto;
5366
6140
  type TransactionRuleControllerGetDetailData = {
5367
6141
  /**
5368
6142
  * 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 = {
6143
+ */
6144
+ region: 'cn' | 'us' | 'de' | 'gb';
5432
6145
  /**
5433
- * User ID
6146
+ * Rule ID
5434
6147
  */
5435
- id: string;
5436
- };
5437
- type UserControllerGetUserInfoResponse = unknown;
5438
- type UserControllerUpdateUserSettingData = {
5439
- requestBody: UpdateUserSettingDto;
6148
+ ruleId: string;
5440
6149
  };
5441
- type UserControllerUpdateUserSettingResponse = unknown;
5442
- type UserControllerGetAllUserSettingsByPageData = {
6150
+ type TransactionRuleControllerGetDetailResponse = TransactionRuleResponseDto;
6151
+ type TransactionRuleControllerUpdateData = {
5443
6152
  /**
5444
- * Page number
6153
+ * Region code for tenant context
5445
6154
  */
5446
- pageNo: number;
6155
+ region: 'cn' | 'us' | 'de' | 'gb';
6156
+ requestBody: UpdateTransactionRuleDto;
5447
6157
  /**
5448
- * Page size
6158
+ * Rule ID to update
5449
6159
  */
5450
- pageSize: number;
6160
+ ruleId: string;
5451
6161
  };
5452
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
5453
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
5454
- type PropertyControllerGetAllResponse = unknown;
5455
- type PropertyControllerGetByKeyData = {
6162
+ type TransactionRuleControllerUpdateResponse = TransactionRuleResponseDto;
6163
+ type TransactionRuleControllerDeleteData = {
5456
6164
  /**
5457
- * Property key
6165
+ * Region code for tenant context
5458
6166
  */
5459
- key: string;
5460
- };
5461
- type PropertyControllerGetByKeyResponse = unknown;
5462
- type PropertyControllerUpdateData = {
6167
+ region: 'cn' | 'us' | 'de' | 'gb';
5463
6168
  /**
5464
- * Property key
6169
+ * Rule ID to delete
5465
6170
  */
5466
- key: string;
5467
- requestBody: UpdatePropertyDto;
6171
+ ruleId: string;
5468
6172
  };
5469
- type PropertyControllerUpdateResponse = unknown;
5470
- type PropertyControllerDeleteData = {
6173
+ type TransactionRuleControllerDeleteResponse = void;
6174
+ type TransactionRuleControllerTestData = {
5471
6175
  /**
5472
- * Property key
6176
+ * Region code for tenant context
5473
6177
  */
5474
- key: string;
6178
+ region: 'cn' | 'us' | 'de' | 'gb';
6179
+ requestBody: TestRuleDto;
6180
+ /**
6181
+ * Rule ID to test
6182
+ */
6183
+ ruleId: string;
5475
6184
  };
5476
- type PropertyControllerDeleteResponse = void;
6185
+ type TransactionRuleControllerTestResponse = TestRuleResponseDto;
5477
6186
  type EventControllerCreateData = {
5478
6187
  /**
5479
6188
  * Region code for tenant context (decorative for life events)
@@ -5560,6 +6269,49 @@ type EventControllerGetSliceData = {
5560
6269
  region: 'cn' | 'us' | 'de' | 'gb';
5561
6270
  };
5562
6271
  type EventControllerGetSliceResponse = unknown;
6272
+ type OnboardingControllerBootstrapData = {
6273
+ /**
6274
+ * Region code for tenant context
6275
+ */
6276
+ region: 'cn' | 'us' | 'de' | 'gb';
6277
+ requestBody: OnboardingDto;
6278
+ };
6279
+ type OnboardingControllerBootstrapResponse = unknown;
6280
+ type ReconciliationControllerComputeData = {
6281
+ /**
6282
+ * Region code for tenant context (decorative for reconciliation)
6283
+ */
6284
+ region: 'cn' | 'us' | 'de' | 'gb';
6285
+ requestBody: ComputeReconciliationDto;
6286
+ };
6287
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
6288
+ type ReconciliationControllerAssertData = {
6289
+ /**
6290
+ * Region code for tenant context (decorative for reconciliation)
6291
+ */
6292
+ region: 'cn' | 'us' | 'de' | 'gb';
6293
+ requestBody: AssertReconciliationDto;
6294
+ };
6295
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
6296
+ type ReconciliationControllerPadData = {
6297
+ /**
6298
+ * Region code for tenant context (decorative for reconciliation)
6299
+ */
6300
+ region: 'cn' | 'us' | 'de' | 'gb';
6301
+ requestBody: PadReconciliationDto;
6302
+ };
6303
+ type ReconciliationControllerPadResponse = PadResultDto;
6304
+ type ReconciliationControllerHistoryData = {
6305
+ /**
6306
+ * BeanAccount id
6307
+ */
6308
+ accountId: string;
6309
+ /**
6310
+ * Region code for tenant context (decorative for reconciliation)
6311
+ */
6312
+ region: 'cn' | 'us' | 'de' | 'gb';
6313
+ };
6314
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
5563
6315
  type ExportControllerExportBeancountResponse = unknown;
5564
6316
  type FileImportControllerImportFileData = {
5565
6317
  /**
@@ -5639,38 +6391,6 @@ type ImporterConfigControllerResetConfigData = {
5639
6391
  region: 'cn' | 'us' | 'de' | 'gb';
5640
6392
  };
5641
6393
  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
6394
  type ProviderSyncControllerSyncData = {
5675
6395
  /**
5676
6396
  * Provider name
@@ -5701,6 +6421,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
5701
6421
  region: 'cn' | 'us' | 'de' | 'gb';
5702
6422
  };
5703
6423
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6424
+ type ExternalAccountLinkControllerCreateData = {
6425
+ /**
6426
+ * Region code for tenant context
6427
+ */
6428
+ region: 'cn' | 'us' | 'de' | 'gb';
6429
+ requestBody: CreateExternalAccountLinkDto;
6430
+ };
6431
+ type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
6432
+ type ExternalAccountLinkControllerFindAllData = {
6433
+ provider: string;
6434
+ /**
6435
+ * Region code for tenant context
6436
+ */
6437
+ region: 'cn' | 'us' | 'de' | 'gb';
6438
+ };
6439
+ type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6440
+ type ExternalAccountLinkControllerFindOneData = {
6441
+ id: string;
6442
+ /**
6443
+ * Region code for tenant context
6444
+ */
6445
+ region: 'cn' | 'us' | 'de' | 'gb';
6446
+ };
6447
+ type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6448
+ type ExternalAccountLinkControllerRemoveData = {
6449
+ id: string;
6450
+ /**
6451
+ * Region code for tenant context
6452
+ */
6453
+ region: 'cn' | 'us' | 'de' | 'gb';
6454
+ };
6455
+ type ExternalAccountLinkControllerRemoveResponse = void;
5704
6456
  type TelemetryControllerReportTelemetryData = {
5705
6457
  /**
5706
6458
  * Region code for tenant context
@@ -5761,173 +6513,90 @@ type NlpControllerGetSessionData = {
5761
6513
  sessionId?: string;
5762
6514
  };
5763
6515
  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';
6516
+ type PlatformControllerFindAllResponse = unknown;
6517
+ type PlatformControllerCreateData = {
6518
+ requestBody: CreatePlatformDto;
5803
6519
  };
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';
6520
+ type PlatformControllerCreateResponse = unknown;
6521
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6522
+ type PlatformControllerMatchPlatformsData = {
5818
6523
  /**
5819
- * Region code for tenant context
6524
+ * Search query Chinese name, English name, or abbreviation
5820
6525
  */
5821
- region: 'cn' | 'us' | 'de' | 'gb';
5822
- };
5823
- type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5824
- type PriceControllerCreateData = {
6526
+ q: string;
5825
6527
  /**
5826
- * Region code for tenant context
6528
+ * Region code for category override lookup
5827
6529
  */
5828
- region: 'cn' | 'us' | 'de' | 'gb';
5829
- requestBody: CreateBeanPriceDto;
6530
+ region?: string;
5830
6531
  };
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';
6532
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6533
+ type PlatformControllerUpdateData = {
5861
6534
  /**
5862
- * Search term for currency or quoteCurrency (case-insensitive partial match)
6535
+ * Platform ID
5863
6536
  */
5864
- search?: string;
6537
+ id: string;
6538
+ requestBody: UpdatePlatformDto;
5865
6539
  };
5866
- type PriceControllerFindAllResponse = PriceListResponseDto;
5867
- type PriceControllerFindOneData = {
6540
+ type PlatformControllerUpdateResponse = unknown;
6541
+ type PlatformControllerDeleteData = {
5868
6542
  /**
5869
- * Price ID
6543
+ * Platform ID
5870
6544
  */
5871
6545
  id: string;
5872
- /**
5873
- * Region code for tenant context
5874
- */
5875
- region: 'cn' | 'us' | 'de' | 'gb';
5876
6546
  };
5877
- type PriceControllerFindOneResponse = PriceResponseDto;
5878
- type PriceControllerUpdateData = {
6547
+ type PlatformControllerDeleteResponse = void;
6548
+ type DashboardControllerGetNetWorthData = {
5879
6549
  /**
5880
- * Price ID
6550
+ * Date for balance calculation (ISO 8601 format)
5881
6551
  */
5882
- id: string;
6552
+ date?: string;
5883
6553
  /**
5884
6554
  * Region code for tenant context
5885
6555
  */
5886
6556
  region: 'cn' | 'us' | 'de' | 'gb';
5887
- requestBody: UpdateBeanPriceDto;
5888
6557
  };
5889
- type PriceControllerUpdateResponse = PriceResponseDto;
5890
- type PriceControllerDeleteData = {
6558
+ type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
6559
+ type DashboardControllerGetAccountsData = {
5891
6560
  /**
5892
- * Price ID
6561
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
5893
6562
  */
5894
- id: string;
6563
+ accountId?: string;
5895
6564
  /**
5896
- * Region code for tenant context
6565
+ * Date for balance calculation (ISO 8601 format)
5897
6566
  */
5898
- region: 'cn' | 'us' | 'de' | 'gb';
5899
- };
5900
- type PriceControllerDeleteResponse = void;
5901
- type PriceControllerBulkCreateData = {
6567
+ date?: string;
6568
+ /**
6569
+ * Grouping strategy
6570
+ */
6571
+ groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
5902
6572
  /**
5903
6573
  * Region code for tenant context
5904
6574
  */
5905
6575
  region: 'cn' | 'us' | 'de' | 'gb';
5906
- requestBody: Array<string>;
5907
6576
  };
5908
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
5909
- type ReportingControllerGetPortfolioTrendsData = {
5910
- /**
5911
- * Data granularity
5912
- */
5913
- granularity?: 'day' | 'week' | 'month';
6577
+ type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6578
+ type DashboardControllerGetCashFlowData = {
5914
6579
  /**
5915
- * Time period
6580
+ * Period in YYYY-MM format
5916
6581
  */
5917
- period?: '1m' | '3m' | '6m' | '1y';
6582
+ period: string;
5918
6583
  /**
5919
6584
  * Region code for tenant context
5920
6585
  */
5921
6586
  region: 'cn' | 'us' | 'de' | 'gb';
5922
6587
  };
5923
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5924
- type ReportingControllerGetCashFlowTrendsData = {
6588
+ type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
6589
+ type DashboardControllerGetExpensesData = {
5925
6590
  /**
5926
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
6591
+ * Account root to aggregate (expense ^Expenses:, income ^Income:)
5927
6592
  */
5928
- granularity?: 'day' | 'week' | 'month';
6593
+ flow?: 'expense' | 'income';
5929
6594
  /**
5930
- * Time period
6595
+ * Grouping strategy
6596
+ */
6597
+ groupBy?: 'category';
6598
+ /**
6599
+ * Time window (1m = current calendar month)
5931
6600
  */
5932
6601
  period?: '1m' | '3m' | '6m' | '1y';
5933
6602
  /**
@@ -5935,31 +6604,31 @@ type ReportingControllerGetCashFlowTrendsData = {
5935
6604
  */
5936
6605
  region: 'cn' | 'us' | 'de' | 'gb';
5937
6606
  };
5938
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5939
- type ReportingControllerGenerateSnapshotData = {
6607
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6608
+ type HoldingPnlControllerGetHoldingPnlData = {
5940
6609
  /**
5941
- * Region code for tenant context
6610
+ * Scope to a single account
5942
6611
  */
5943
- region: 'cn' | 'us' | 'de' | 'gb';
6612
+ accountId?: string;
5944
6613
  /**
5945
- * Optional date (defaults to today)
6614
+ * As-of date (ISO 8601), defaults to today
5946
6615
  */
5947
- requestBody: GenerateSnapshotBody;
5948
- };
5949
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5950
- type ReportingControllerBackfillSnapshotsData = {
6616
+ asOf?: string;
6617
+ /**
6618
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
6619
+ */
6620
+ method?: 'FIFO' | 'average';
5951
6621
  /**
5952
6622
  * Region code for tenant context
5953
6623
  */
5954
6624
  region: 'cn' | 'us' | 'de' | 'gb';
5955
- requestBody: BackfillSnapshotsBody;
5956
6625
  };
5957
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6626
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5958
6627
  type ApiKeysControllerCreateApiKeyResponse = unknown;
5959
6628
  type AuthControllerAccessTokenLoginData = {
5960
6629
  requestBody: AnonymousLoginDto;
5961
6630
  };
5962
- type AuthControllerAccessTokenLoginResponse = unknown;
6631
+ type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
5963
6632
  type CacheControllerFlushCacheResponse = unknown;
5964
6633
  type ExchangeRateControllerGetExchangeRateData = {
5965
6634
  /**
@@ -5986,6 +6655,29 @@ type HealthControllerResetCircuitBreakerData = {
5986
6655
  type HealthControllerResetCircuitBreakerResponse = unknown;
5987
6656
  type HealthControllerGetMetricsResponse = unknown;
5988
6657
  type InfoControllerGetInfoResponse = unknown;
6658
+ type SymbolControllerSearchData = {
6659
+ /**
6660
+ * Filter by OpenBB asset_type (e.g. stock, etf)
6661
+ */
6662
+ assetType?: string;
6663
+ /**
6664
+ * Filter by exchange code (e.g. US, HK, SS, SZ)
6665
+ */
6666
+ exchange?: string;
6667
+ /**
6668
+ * Maximum number of results (clamped 1..50)
6669
+ */
6670
+ limit?: number;
6671
+ /**
6672
+ * Search term — matched against symbol and instrument name. Empty string returns [].
6673
+ */
6674
+ q: string;
6675
+ };
6676
+ type SymbolControllerSearchResponse = Array<SymbolSearchResultDto>;
6677
+ type SymbolControllerGetQuoteData = {
6678
+ symbol: string;
6679
+ };
6680
+ type SymbolControllerGetQuoteResponse = SymbolQuoteDto;
5989
6681
  type $OpenApiTs = {
5990
6682
  '/api/v1/{region}/bean/accounts': {
5991
6683
  post: {
@@ -6050,7 +6742,7 @@ type $OpenApiTs = {
6050
6742
  */
6051
6743
  404: unknown;
6052
6744
  /**
6053
- * Account has transactions and cannot be deleted
6745
+ * Account has active transactions and cannot be deleted
6054
6746
  */
6055
6747
  409: unknown;
6056
6748
  };
@@ -6094,6 +6786,25 @@ type $OpenApiTs = {
6094
6786
  };
6095
6787
  };
6096
6788
  };
6789
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6790
+ post: {
6791
+ req: AccountControllerAddOpeningBalanceData;
6792
+ res: {
6793
+ /**
6794
+ * Opening-balance transaction created
6795
+ */
6796
+ 201: OpeningBalanceResultDto;
6797
+ /**
6798
+ * Account not found
6799
+ */
6800
+ 404: unknown;
6801
+ /**
6802
+ * An opening balance already exists for this account
6803
+ */
6804
+ 409: unknown;
6805
+ };
6806
+ };
6807
+ };
6097
6808
  '/api/v1/{region}/bean/account-standards': {
6098
6809
  get: {
6099
6810
  req: AccountStandardsControllerGetTemplatesData;
@@ -6702,6 +7413,90 @@ type $OpenApiTs = {
6702
7413
  };
6703
7414
  };
6704
7415
  };
7416
+ '/api/v1/{region}/bean/prices': {
7417
+ post: {
7418
+ req: PriceControllerCreateData;
7419
+ res: {
7420
+ /**
7421
+ * Price created successfully
7422
+ */
7423
+ 201: PriceResponseDto;
7424
+ /**
7425
+ * Currency or quoteCurrency commodity not found
7426
+ */
7427
+ 404: unknown;
7428
+ /**
7429
+ * Price already exists for this currency pair and date
7430
+ */
7431
+ 409: unknown;
7432
+ };
7433
+ };
7434
+ get: {
7435
+ req: PriceControllerFindAllData;
7436
+ res: {
7437
+ /**
7438
+ * Prices retrieved successfully
7439
+ */
7440
+ 200: PriceListResponseDto;
7441
+ };
7442
+ };
7443
+ };
7444
+ '/api/v1/{region}/bean/prices/{id}': {
7445
+ get: {
7446
+ req: PriceControllerFindOneData;
7447
+ res: {
7448
+ /**
7449
+ * Price retrieved successfully
7450
+ */
7451
+ 200: PriceResponseDto;
7452
+ /**
7453
+ * Price not found
7454
+ */
7455
+ 404: unknown;
7456
+ };
7457
+ };
7458
+ put: {
7459
+ req: PriceControllerUpdateData;
7460
+ res: {
7461
+ /**
7462
+ * Price updated successfully
7463
+ */
7464
+ 200: PriceResponseDto;
7465
+ /**
7466
+ * Price not found
7467
+ */
7468
+ 404: unknown;
7469
+ /**
7470
+ * Updated price conflicts with existing price
7471
+ */
7472
+ 409: unknown;
7473
+ };
7474
+ };
7475
+ delete: {
7476
+ req: PriceControllerDeleteData;
7477
+ res: {
7478
+ /**
7479
+ * Price deleted successfully
7480
+ */
7481
+ 204: void;
7482
+ /**
7483
+ * Price not found
7484
+ */
7485
+ 404: unknown;
7486
+ };
7487
+ };
7488
+ };
7489
+ '/api/v1/{region}/bean/prices/bulk': {
7490
+ post: {
7491
+ req: PriceControllerBulkCreateData;
7492
+ res: {
7493
+ /**
7494
+ * Prices created successfully
7495
+ */
7496
+ 201: Array<PriceResponseDto>;
7497
+ };
7498
+ };
7499
+ };
6705
7500
  '/api/v1/{region}/bean/recurring-rules': {
6706
7501
  post: {
6707
7502
  req: RecurringRuleControllerCreateData;
@@ -6952,397 +7747,469 @@ type $OpenApiTs = {
6952
7747
  };
6953
7748
  };
6954
7749
  };
6955
- '/api/v1/{region}/bean/transaction-rules': {
7750
+ '/api/v1/{region}/reporting/portfolio/trends': {
7751
+ get: {
7752
+ req: ReportingControllerGetPortfolioTrendsData;
7753
+ res: {
7754
+ /**
7755
+ * Trends retrieved successfully
7756
+ */
7757
+ 200: PortfolioTrendsResponseDto;
7758
+ /**
7759
+ * User not authenticated
7760
+ */
7761
+ 401: unknown;
7762
+ };
7763
+ };
7764
+ };
7765
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7766
+ get: {
7767
+ req: ReportingControllerGetCashFlowTrendsData;
7768
+ res: {
7769
+ /**
7770
+ * Cash-flow trends retrieved successfully
7771
+ */
7772
+ 200: CashFlowTrendsResponseDto;
7773
+ /**
7774
+ * User not authenticated
7775
+ */
7776
+ 401: unknown;
7777
+ };
7778
+ };
7779
+ };
7780
+ '/api/v1/{region}/reporting/snapshots/generate': {
6956
7781
  post: {
6957
- req: TransactionRuleControllerCreateData;
7782
+ req: ReportingControllerGenerateSnapshotData;
6958
7783
  res: {
6959
7784
  /**
6960
- * Rule updated successfully (upsert mode)
7785
+ * Snapshot generated successfully
6961
7786
  */
6962
- 200: TransactionRuleResponseDto;
7787
+ 200: GenerateSnapshotResponse;
6963
7788
  /**
6964
- * Validation failed
7789
+ * Invalid date format
6965
7790
  */
6966
- 400: ApiProblemResponseDto;
7791
+ 400: unknown;
6967
7792
  /**
6968
- * Unauthorized
7793
+ * User not authenticated
6969
7794
  */
6970
- 401: ApiProblemResponseDto;
7795
+ 401: unknown;
7796
+ };
7797
+ };
7798
+ };
7799
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7800
+ post: {
7801
+ req: ReportingControllerBackfillSnapshotsData;
7802
+ res: {
6971
7803
  /**
6972
- * Resource conflict - another process is updating this rule
7804
+ * Backfill completed successfully
7805
+ */
7806
+ 200: BackfillSnapshotsResponse;
7807
+ /**
7808
+ * Invalid date format or range
7809
+ */
7810
+ 400: unknown;
7811
+ /**
7812
+ * User not authenticated
7813
+ */
7814
+ 401: unknown;
7815
+ /**
7816
+ * Backfill already in progress for this user
7817
+ */
7818
+ 409: unknown;
7819
+ };
7820
+ };
7821
+ };
7822
+ '/api/v1/users': {
7823
+ delete: {
7824
+ req: UserControllerDeleteOwnUserData;
7825
+ res: {
7826
+ /**
7827
+ * User deleted successfully
7828
+ */
7829
+ 204: void;
7830
+ /**
7831
+ * Invalid access token
6973
7832
  */
6974
- 409: ApiProblemResponseDto;
7833
+ 403: unknown;
6975
7834
  };
6976
7835
  };
6977
7836
  get: {
6978
- req: TransactionRuleControllerListData;
7837
+ req: UserControllerGetUserData;
6979
7838
  res: {
6980
7839
  /**
6981
- * List of rules
6982
- */
6983
- 200: TransactionRuleListResponseDto;
6984
- /**
6985
- * Unauthorized
7840
+ * User retrieved successfully
6986
7841
  */
6987
- 401: ApiProblemResponseDto;
7842
+ 200: unknown;
6988
7843
  };
6989
7844
  };
6990
- };
6991
- '/api/v1/{region}/bean/transaction-rules/validate': {
6992
7845
  post: {
6993
- req: TransactionRuleControllerValidateData;
7846
+ req: UserControllerSignupUserData;
6994
7847
  res: {
6995
7848
  /**
6996
- * Validation result
7849
+ * User created successfully
6997
7850
  */
6998
- 200: ValidateRuleResponseDto;
7851
+ 201: SignupResponseDto;
6999
7852
  /**
7000
- * Validation failed
7853
+ * Invalid Turnstile token (when Turnstile is enabled)
7001
7854
  */
7002
- 400: ApiProblemResponseDto;
7855
+ 400: unknown;
7003
7856
  /**
7004
- * Unauthorized
7857
+ * User signup is disabled
7005
7858
  */
7006
- 401: ApiProblemResponseDto;
7859
+ 403: unknown;
7007
7860
  };
7008
7861
  };
7009
7862
  };
7010
- '/api/v1/{region}/bean/transaction-rules/bulk': {
7011
- post: {
7012
- req: TransactionRuleControllerBulkCreateData;
7863
+ '/api/v1/users/{id}': {
7864
+ delete: {
7865
+ req: UserControllerDeleteUserData;
7013
7866
  res: {
7014
7867
  /**
7015
- * Bulk create completed
7016
- */
7017
- 201: BulkCreateRulesResponseDto;
7018
- /**
7019
- * Invalid bulk create data
7868
+ * User deleted successfully
7020
7869
  */
7021
- 400: ApiProblemResponseDto;
7870
+ 204: void;
7022
7871
  /**
7023
- * Unauthorized
7872
+ * Cannot delete own account or insufficient permissions
7024
7873
  */
7025
- 401: ApiProblemResponseDto;
7874
+ 403: unknown;
7026
7875
  };
7027
7876
  };
7028
7877
  };
7029
- '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7878
+ '/api/v1/users/{id}/info': {
7030
7879
  get: {
7031
- req: TransactionRuleControllerExportData;
7880
+ req: UserControllerGetUserInfoData;
7032
7881
  res: {
7033
7882
  /**
7034
- * Exported rules
7035
- */
7036
- 200: ExportRulesResponseDto;
7037
- /**
7038
- * Unsupported format
7883
+ * User info retrieved successfully
7039
7884
  */
7040
- 400: ApiProblemResponseDto;
7885
+ 200: unknown;
7041
7886
  /**
7042
- * Unauthorized
7887
+ * Cannot access other user info without admin permission
7043
7888
  */
7044
- 401: ApiProblemResponseDto;
7889
+ 403: unknown;
7045
7890
  };
7046
7891
  };
7047
7892
  };
7048
- '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7049
- get: {
7050
- req: TransactionRuleControllerGetStatisticsData;
7893
+ '/api/v1/users/setting': {
7894
+ put: {
7895
+ req: UserControllerUpdateUserSettingData;
7051
7896
  res: {
7052
7897
  /**
7053
- * Rule statistics
7898
+ * Settings updated successfully
7054
7899
  */
7055
- 200: RuleStatisticsResponseDto;
7900
+ 200: unknown;
7056
7901
  /**
7057
- * Unauthorized
7902
+ * Insufficient permissions
7058
7903
  */
7059
- 401: ApiProblemResponseDto;
7904
+ 403: unknown;
7060
7905
  };
7061
7906
  };
7062
7907
  };
7063
- '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7908
+ '/api/v1/users/settings-by-page': {
7064
7909
  get: {
7065
- req: TransactionRuleControllerGetDetailData;
7910
+ req: UserControllerGetAllUserSettingsByPageData;
7066
7911
  res: {
7067
7912
  /**
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
7913
+ * Settings list retrieved successfully
7081
7914
  */
7082
- 404: ApiProblemResponseDto;
7915
+ 200: unknown;
7083
7916
  };
7084
7917
  };
7085
- put: {
7086
- req: TransactionRuleControllerUpdateData;
7918
+ };
7919
+ '/api/v1/users/asset-liability-summary': {
7920
+ get: {
7087
7921
  res: {
7088
7922
  /**
7089
- * Rule updated successfully
7923
+ * Summary retrieved successfully
7090
7924
  */
7091
- 200: TransactionRuleResponseDto;
7925
+ 200: unknown;
7926
+ };
7927
+ };
7928
+ };
7929
+ '/api/v1/admin/properties': {
7930
+ get: {
7931
+ res: {
7092
7932
  /**
7093
- * Validation failed
7933
+ * Properties retrieved successfully
7094
7934
  */
7095
- 400: ApiProblemResponseDto;
7935
+ 200: unknown;
7096
7936
  /**
7097
7937
  * Unauthorized
7098
7938
  */
7099
- 401: ApiProblemResponseDto;
7100
- /**
7101
- * Forbidden - not owner of rule
7102
- */
7103
- 403: ApiProblemResponseDto;
7104
- /**
7105
- * Rule not found
7106
- */
7107
- 404: ApiProblemResponseDto;
7939
+ 401: unknown;
7108
7940
  /**
7109
- * Resource conflict - rule is being modified by another process
7941
+ * Forbidden - insufficient permissions
7110
7942
  */
7111
- 409: ApiProblemResponseDto;
7943
+ 403: unknown;
7112
7944
  };
7113
7945
  };
7114
- delete: {
7115
- req: TransactionRuleControllerDeleteData;
7946
+ };
7947
+ '/api/v1/admin/properties/{key}': {
7948
+ get: {
7949
+ req: PropertyControllerGetByKeyData;
7116
7950
  res: {
7117
7951
  /**
7118
- * Rule deleted successfully
7952
+ * Property retrieved successfully
7119
7953
  */
7120
- 204: void;
7954
+ 200: unknown;
7121
7955
  /**
7122
7956
  * Unauthorized
7123
7957
  */
7124
- 401: ApiProblemResponseDto;
7125
- /**
7126
- * Forbidden - not owner of rule
7127
- */
7128
- 403: ApiProblemResponseDto;
7958
+ 401: unknown;
7129
7959
  /**
7130
- * Rule not found
7960
+ * Forbidden - insufficient permissions
7131
7961
  */
7132
- 404: ApiProblemResponseDto;
7962
+ 403: unknown;
7133
7963
  /**
7134
- * Resource conflict - rule is being modified by another process
7964
+ * Property not found
7135
7965
  */
7136
- 409: ApiProblemResponseDto;
7966
+ 404: unknown;
7137
7967
  };
7138
7968
  };
7139
- };
7140
- '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
7141
- post: {
7142
- req: TransactionRuleControllerTestData;
7969
+ put: {
7970
+ req: PropertyControllerUpdateData;
7143
7971
  res: {
7144
7972
  /**
7145
- * Test result
7973
+ * Property updated successfully
7146
7974
  */
7147
- 200: TestRuleResponseDto;
7975
+ 200: unknown;
7148
7976
  /**
7149
7977
  * Unauthorized
7150
7978
  */
7151
- 401: ApiProblemResponseDto;
7152
- /**
7153
- * Forbidden - not owner of rule
7154
- */
7155
- 403: ApiProblemResponseDto;
7979
+ 401: unknown;
7156
7980
  /**
7157
- * Rule not found
7981
+ * Forbidden - insufficient permissions
7158
7982
  */
7159
- 404: ApiProblemResponseDto;
7983
+ 403: unknown;
7160
7984
  };
7161
7985
  };
7162
- };
7163
- '/api/v1/users': {
7164
7986
  delete: {
7165
- req: UserControllerDeleteOwnUserData;
7987
+ req: PropertyControllerDeleteData;
7166
7988
  res: {
7167
7989
  /**
7168
- * User deleted successfully
7990
+ * Property deleted successfully
7169
7991
  */
7170
7992
  204: void;
7171
7993
  /**
7172
- * Invalid access token
7994
+ * Unauthorized
7995
+ */
7996
+ 401: unknown;
7997
+ /**
7998
+ * Forbidden - insufficient permissions
7173
7999
  */
7174
8000
  403: unknown;
7175
- };
7176
- };
7177
- get: {
7178
- req: UserControllerGetUserData;
7179
- res: {
7180
8001
  /**
7181
- * User retrieved successfully
8002
+ * Property not found
7182
8003
  */
7183
- 200: unknown;
8004
+ 404: unknown;
7184
8005
  };
7185
8006
  };
8007
+ };
8008
+ '/api/v1/{region}/bean/transaction-rules': {
7186
8009
  post: {
7187
- req: UserControllerSignupUserData;
8010
+ req: TransactionRuleControllerCreateData;
7188
8011
  res: {
7189
8012
  /**
7190
- * User created successfully
8013
+ * Rule updated successfully (upsert mode)
7191
8014
  */
7192
- 201: unknown;
8015
+ 200: TransactionRuleResponseDto;
7193
8016
  /**
7194
- * Invalid Turnstile token (when Turnstile is enabled)
8017
+ * Validation failed
7195
8018
  */
7196
- 400: unknown;
8019
+ 400: ApiProblemResponseDto;
7197
8020
  /**
7198
- * User signup is disabled
8021
+ * Unauthorized
7199
8022
  */
7200
- 403: unknown;
8023
+ 401: ApiProblemResponseDto;
8024
+ /**
8025
+ * Resource conflict - another process is updating this rule
8026
+ */
8027
+ 409: ApiProblemResponseDto;
7201
8028
  };
7202
8029
  };
7203
- };
7204
- '/api/v1/users/{id}': {
7205
- delete: {
7206
- req: UserControllerDeleteUserData;
8030
+ get: {
8031
+ req: TransactionRuleControllerListData;
7207
8032
  res: {
7208
8033
  /**
7209
- * User deleted successfully
8034
+ * List of rules
7210
8035
  */
7211
- 204: void;
8036
+ 200: TransactionRuleListResponseDto;
7212
8037
  /**
7213
- * Cannot delete own account or insufficient permissions
8038
+ * Unauthorized
7214
8039
  */
7215
- 403: unknown;
8040
+ 401: ApiProblemResponseDto;
7216
8041
  };
7217
8042
  };
7218
8043
  };
7219
- '/api/v1/users/{id}/info': {
7220
- get: {
7221
- req: UserControllerGetUserInfoData;
8044
+ '/api/v1/{region}/bean/transaction-rules/validate': {
8045
+ post: {
8046
+ req: TransactionRuleControllerValidateData;
7222
8047
  res: {
7223
8048
  /**
7224
- * User info retrieved successfully
8049
+ * Validation result
7225
8050
  */
7226
- 200: unknown;
8051
+ 200: ValidateRuleResponseDto;
7227
8052
  /**
7228
- * Cannot access other user info without admin permission
8053
+ * Validation failed
7229
8054
  */
7230
- 403: unknown;
8055
+ 400: ApiProblemResponseDto;
8056
+ /**
8057
+ * Unauthorized
8058
+ */
8059
+ 401: ApiProblemResponseDto;
7231
8060
  };
7232
8061
  };
7233
8062
  };
7234
- '/api/v1/users/setting': {
7235
- put: {
7236
- req: UserControllerUpdateUserSettingData;
8063
+ '/api/v1/{region}/bean/transaction-rules/bulk': {
8064
+ post: {
8065
+ req: TransactionRuleControllerBulkCreateData;
7237
8066
  res: {
7238
8067
  /**
7239
- * Settings updated successfully
8068
+ * Bulk create completed
8069
+ */
8070
+ 201: BulkCreateRulesResponseDto;
8071
+ /**
8072
+ * Invalid bulk create data
7240
8073
  */
7241
- 200: unknown;
8074
+ 400: ApiProblemResponseDto;
7242
8075
  /**
7243
- * Insufficient permissions
8076
+ * Unauthorized
7244
8077
  */
7245
- 403: unknown;
8078
+ 401: ApiProblemResponseDto;
7246
8079
  };
7247
8080
  };
7248
8081
  };
7249
- '/api/v1/users/settings-by-page': {
8082
+ '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7250
8083
  get: {
7251
- req: UserControllerGetAllUserSettingsByPageData;
8084
+ req: TransactionRuleControllerExportData;
7252
8085
  res: {
7253
8086
  /**
7254
- * Settings list retrieved successfully
8087
+ * Exported rules
7255
8088
  */
7256
- 200: unknown;
8089
+ 200: ExportRulesResponseDto;
8090
+ /**
8091
+ * Unsupported format
8092
+ */
8093
+ 400: ApiProblemResponseDto;
8094
+ /**
8095
+ * Unauthorized
8096
+ */
8097
+ 401: ApiProblemResponseDto;
7257
8098
  };
7258
8099
  };
7259
8100
  };
7260
- '/api/v1/users/asset-liability-summary': {
8101
+ '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7261
8102
  get: {
8103
+ req: TransactionRuleControllerGetStatisticsData;
7262
8104
  res: {
7263
8105
  /**
7264
- * Summary retrieved successfully
8106
+ * Rule statistics
7265
8107
  */
7266
- 200: unknown;
8108
+ 200: RuleStatisticsResponseDto;
8109
+ /**
8110
+ * Unauthorized
8111
+ */
8112
+ 401: ApiProblemResponseDto;
7267
8113
  };
7268
8114
  };
7269
8115
  };
7270
- '/api/v1/admin/properties': {
8116
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7271
8117
  get: {
8118
+ req: TransactionRuleControllerGetDetailData;
7272
8119
  res: {
7273
8120
  /**
7274
- * Properties retrieved successfully
8121
+ * Rule details
7275
8122
  */
7276
- 200: unknown;
8123
+ 200: TransactionRuleResponseDto;
7277
8124
  /**
7278
8125
  * Unauthorized
7279
8126
  */
7280
- 401: unknown;
8127
+ 401: ApiProblemResponseDto;
7281
8128
  /**
7282
- * Forbidden - insufficient permissions
8129
+ * Forbidden - not owner of rule
7283
8130
  */
7284
- 403: unknown;
8131
+ 403: ApiProblemResponseDto;
8132
+ /**
8133
+ * Rule not found
8134
+ */
8135
+ 404: ApiProblemResponseDto;
7285
8136
  };
7286
8137
  };
7287
- };
7288
- '/api/v1/admin/properties/{key}': {
7289
- get: {
7290
- req: PropertyControllerGetByKeyData;
8138
+ put: {
8139
+ req: TransactionRuleControllerUpdateData;
7291
8140
  res: {
7292
8141
  /**
7293
- * Property retrieved successfully
8142
+ * Rule updated successfully
7294
8143
  */
7295
- 200: unknown;
8144
+ 200: TransactionRuleResponseDto;
8145
+ /**
8146
+ * Validation failed
8147
+ */
8148
+ 400: ApiProblemResponseDto;
7296
8149
  /**
7297
8150
  * Unauthorized
7298
8151
  */
7299
- 401: unknown;
8152
+ 401: ApiProblemResponseDto;
7300
8153
  /**
7301
- * Forbidden - insufficient permissions
8154
+ * Forbidden - not owner of rule
7302
8155
  */
7303
- 403: unknown;
8156
+ 403: ApiProblemResponseDto;
7304
8157
  /**
7305
- * Property not found
8158
+ * Rule not found
7306
8159
  */
7307
- 404: unknown;
8160
+ 404: ApiProblemResponseDto;
8161
+ /**
8162
+ * Resource conflict - rule is being modified by another process
8163
+ */
8164
+ 409: ApiProblemResponseDto;
7308
8165
  };
7309
8166
  };
7310
- put: {
7311
- req: PropertyControllerUpdateData;
8167
+ delete: {
8168
+ req: TransactionRuleControllerDeleteData;
7312
8169
  res: {
7313
8170
  /**
7314
- * Property updated successfully
8171
+ * Rule deleted successfully
7315
8172
  */
7316
- 200: unknown;
8173
+ 204: void;
7317
8174
  /**
7318
8175
  * Unauthorized
7319
8176
  */
7320
- 401: unknown;
8177
+ 401: ApiProblemResponseDto;
7321
8178
  /**
7322
- * Forbidden - insufficient permissions
8179
+ * Forbidden - not owner of rule
7323
8180
  */
7324
- 403: unknown;
8181
+ 403: ApiProblemResponseDto;
8182
+ /**
8183
+ * Rule not found
8184
+ */
8185
+ 404: ApiProblemResponseDto;
8186
+ /**
8187
+ * Resource conflict - rule is being modified by another process
8188
+ */
8189
+ 409: ApiProblemResponseDto;
7325
8190
  };
7326
8191
  };
7327
- delete: {
7328
- req: PropertyControllerDeleteData;
8192
+ };
8193
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8194
+ post: {
8195
+ req: TransactionRuleControllerTestData;
7329
8196
  res: {
7330
8197
  /**
7331
- * Property deleted successfully
8198
+ * Test result
7332
8199
  */
7333
- 204: void;
8200
+ 200: TestRuleResponseDto;
7334
8201
  /**
7335
8202
  * Unauthorized
7336
8203
  */
7337
- 401: unknown;
8204
+ 401: ApiProblemResponseDto;
7338
8205
  /**
7339
- * Forbidden - insufficient permissions
8206
+ * Forbidden - not owner of rule
7340
8207
  */
7341
- 403: unknown;
8208
+ 403: ApiProblemResponseDto;
7342
8209
  /**
7343
- * Property not found
8210
+ * Rule not found
7344
8211
  */
7345
- 404: unknown;
8212
+ 404: ApiProblemResponseDto;
7346
8213
  };
7347
8214
  };
7348
8215
  };
@@ -7442,6 +8309,85 @@ type $OpenApiTs = {
7442
8309
  };
7443
8310
  };
7444
8311
  };
8312
+ '/api/v1/{region}/bean/onboarding': {
8313
+ post: {
8314
+ req: OnboardingControllerBootstrapData;
8315
+ res: {
8316
+ /**
8317
+ * Onboarding bootstrap result.
8318
+ */
8319
+ 201: unknown;
8320
+ /**
8321
+ * Invalid region/account path/duplicate paths.
8322
+ */
8323
+ 422: unknown;
8324
+ };
8325
+ };
8326
+ };
8327
+ '/api/v1/{region}/bean/reconciliations': {
8328
+ post: {
8329
+ req: ReconciliationControllerComputeData;
8330
+ res: {
8331
+ /**
8332
+ * Reconciliation preview
8333
+ */
8334
+ 200: ReconciliationComputeResultDto;
8335
+ /**
8336
+ * Account not found
8337
+ */
8338
+ 404: unknown;
8339
+ };
8340
+ };
8341
+ };
8342
+ '/api/v1/{region}/bean/reconciliations/assert': {
8343
+ post: {
8344
+ req: ReconciliationControllerAssertData;
8345
+ res: {
8346
+ /**
8347
+ * Balance assertion recorded
8348
+ */
8349
+ 201: ReconciliationRecordDto;
8350
+ /**
8351
+ * Account not found
8352
+ */
8353
+ 404: unknown;
8354
+ };
8355
+ };
8356
+ };
8357
+ '/api/v1/{region}/bean/reconciliations/pad': {
8358
+ post: {
8359
+ req: ReconciliationControllerPadData;
8360
+ res: {
8361
+ /**
8362
+ * Pad adjusting entry generated
8363
+ */
8364
+ 201: PadResultDto;
8365
+ /**
8366
+ * Book already within tolerance — no pad needed
8367
+ */
8368
+ 400: unknown;
8369
+ /**
8370
+ * Account not found
8371
+ */
8372
+ 404: unknown;
8373
+ };
8374
+ };
8375
+ };
8376
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8377
+ get: {
8378
+ req: ReconciliationControllerHistoryData;
8379
+ res: {
8380
+ /**
8381
+ * Reconciliation history
8382
+ */
8383
+ 200: Array<ReconciliationRecordDto>;
8384
+ /**
8385
+ * Account not found
8386
+ */
8387
+ 404: unknown;
8388
+ };
8389
+ };
8390
+ };
7445
8391
  '/api/v1/{region}/bean/export/beancount': {
7446
8392
  get: {
7447
8393
  res: {
@@ -7558,109 +8504,37 @@ type $OpenApiTs = {
7558
8504
  */
7559
8505
  401: ApiProblemResponseDto;
7560
8506
  };
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}': {
8507
+ };
7640
8508
  put: {
7641
- req: PlatformControllerUpdateData;
8509
+ req: ImporterConfigControllerUpdateConfigData;
7642
8510
  res: {
7643
8511
  /**
7644
- * Platform updated successfully
8512
+ * Configuration updated successfully
7645
8513
  */
7646
- 200: unknown;
8514
+ 200: ImporterConfigDto;
7647
8515
  /**
7648
- * Platform not found
8516
+ * Invalid input - Validation failed
7649
8517
  */
7650
- 404: unknown;
8518
+ 400: ApiProblemResponseDto;
8519
+ /**
8520
+ * Configuration not found
8521
+ */
8522
+ 404: ApiProblemResponseDto;
7651
8523
  };
7652
8524
  };
7653
- delete: {
7654
- req: PlatformControllerDeleteData;
8525
+ };
8526
+ '/api/v1/{region}/bean/import/config/{importerId}/reset': {
8527
+ post: {
8528
+ req: ImporterConfigControllerResetConfigData;
7655
8529
  res: {
7656
8530
  /**
7657
- * Platform deleted successfully
8531
+ * Configuration reset successfully
7658
8532
  */
7659
- 204: void;
8533
+ 200: ImporterConfigDto;
7660
8534
  /**
7661
- * Platform not found
8535
+ * Invalid input - Unsupported importer
7662
8536
  */
7663
- 404: unknown;
8537
+ 400: ApiProblemResponseDto;
7664
8538
  };
7665
8539
  };
7666
8540
  };
@@ -7717,6 +8591,54 @@ type $OpenApiTs = {
7717
8591
  };
7718
8592
  };
7719
8593
  };
8594
+ '/api/v1/{region}/bean/external-account-links': {
8595
+ post: {
8596
+ req: ExternalAccountLinkControllerCreateData;
8597
+ res: {
8598
+ /**
8599
+ * Link created.
8600
+ */
8601
+ 201: ExternalAccountLinkResponseDto;
8602
+ /**
8603
+ * beanAccountId not owned, or an active link already exists.
8604
+ */
8605
+ 422: unknown;
8606
+ };
8607
+ };
8608
+ get: {
8609
+ req: ExternalAccountLinkControllerFindAllData;
8610
+ res: {
8611
+ /**
8612
+ * Links retrieved.
8613
+ */
8614
+ 200: ExternalAccountLinkListResponseDto;
8615
+ };
8616
+ };
8617
+ };
8618
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8619
+ get: {
8620
+ req: ExternalAccountLinkControllerFindOneData;
8621
+ res: {
8622
+ /**
8623
+ * Link retrieved.
8624
+ */
8625
+ 200: ExternalAccountLinkResponseDto;
8626
+ /**
8627
+ * Link not found or not owned by the user.
8628
+ */
8629
+ 422: unknown;
8630
+ };
8631
+ };
8632
+ delete: {
8633
+ req: ExternalAccountLinkControllerRemoveData;
8634
+ res: {
8635
+ /**
8636
+ * Link soft-deleted; historical transactions are unaffected.
8637
+ */
8638
+ 204: void;
8639
+ };
8640
+ };
8641
+ };
7720
8642
  '/api/v1/{region}/bean/import/parser-telemetry': {
7721
8643
  post: {
7722
8644
  req: TelemetryControllerReportTelemetryData;
@@ -7805,166 +8727,101 @@ type $OpenApiTs = {
7805
8727
  };
7806
8728
  };
7807
8729
  };
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': {
8730
+ '/api/v1/bean/platforms': {
7858
8731
  get: {
7859
- req: HoldingPnlControllerGetHoldingPnlData;
7860
8732
  res: {
7861
8733
  /**
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
8734
+ * List of platforms with binding and account counts
7871
8735
  */
7872
- 401: unknown;
8736
+ 200: unknown;
7873
8737
  };
7874
8738
  };
7875
- };
7876
- '/api/v1/{region}/bean/prices': {
7877
8739
  post: {
7878
- req: PriceControllerCreateData;
8740
+ req: PlatformControllerCreateData;
7879
8741
  res: {
7880
8742
  /**
7881
- * Price created successfully
7882
- */
7883
- 201: PriceResponseDto;
7884
- /**
7885
- * Currency or quoteCurrency commodity not found
8743
+ * Platform created successfully
7886
8744
  */
7887
- 404: unknown;
8745
+ 201: unknown;
7888
8746
  /**
7889
- * Price already exists for this currency pair and date
8747
+ * Platform already exists
7890
8748
  */
7891
8749
  409: unknown;
7892
8750
  };
7893
8751
  };
8752
+ };
8753
+ '/api/v1/bean/platforms/list': {
7894
8754
  get: {
7895
- req: PriceControllerFindAllData;
7896
8755
  res: {
7897
8756
  /**
7898
- * Prices retrieved successfully
8757
+ * List of platforms with user binding status
7899
8758
  */
7900
- 200: PriceListResponseDto;
8759
+ 200: Array<PlatformListItemDto>;
7901
8760
  };
7902
8761
  };
7903
8762
  };
7904
- '/api/v1/{region}/bean/prices/{id}': {
8763
+ '/api/v1/bean/platforms/match': {
7905
8764
  get: {
7906
- req: PriceControllerFindOneData;
8765
+ req: PlatformControllerMatchPlatformsData;
7907
8766
  res: {
7908
8767
  /**
7909
- * Price retrieved successfully
7910
- */
7911
- 200: PriceResponseDto;
7912
- /**
7913
- * Price not found
8768
+ * Matching platforms with overall match type and truncation flag
7914
8769
  */
7915
- 404: unknown;
8770
+ 200: PlatformMatchResponseDto;
7916
8771
  };
7917
8772
  };
8773
+ };
8774
+ '/api/v1/bean/platforms/{id}': {
7918
8775
  put: {
7919
- req: PriceControllerUpdateData;
8776
+ req: PlatformControllerUpdateData;
7920
8777
  res: {
7921
8778
  /**
7922
- * Price updated successfully
8779
+ * Platform updated successfully
7923
8780
  */
7924
- 200: PriceResponseDto;
8781
+ 200: unknown;
7925
8782
  /**
7926
- * Price not found
8783
+ * Platform not found
7927
8784
  */
7928
8785
  404: unknown;
7929
- /**
7930
- * Updated price conflicts with existing price
7931
- */
7932
- 409: unknown;
7933
8786
  };
7934
8787
  };
7935
8788
  delete: {
7936
- req: PriceControllerDeleteData;
8789
+ req: PlatformControllerDeleteData;
7937
8790
  res: {
7938
8791
  /**
7939
- * Price deleted successfully
8792
+ * Platform deleted successfully
7940
8793
  */
7941
8794
  204: void;
7942
8795
  /**
7943
- * Price not found
8796
+ * Platform not found
7944
8797
  */
7945
8798
  404: unknown;
7946
8799
  };
7947
8800
  };
7948
8801
  };
7949
- '/api/v1/{region}/bean/prices/bulk': {
7950
- post: {
7951
- req: PriceControllerBulkCreateData;
8802
+ '/api/v1/{region}/dashboard/net-worth': {
8803
+ get: {
8804
+ req: DashboardControllerGetNetWorthData;
7952
8805
  res: {
7953
8806
  /**
7954
- * Prices created successfully
8807
+ * Net worth retrieved successfully
7955
8808
  */
7956
- 201: Array<PriceResponseDto>;
8809
+ 200: NetWorthResponseDto;
8810
+ /**
8811
+ * User not authenticated
8812
+ */
8813
+ 401: unknown;
7957
8814
  };
7958
8815
  };
7959
8816
  };
7960
- '/api/v1/{region}/reporting/portfolio/trends': {
8817
+ '/api/v1/{region}/dashboard/accounts': {
7961
8818
  get: {
7962
- req: ReportingControllerGetPortfolioTrendsData;
8819
+ req: DashboardControllerGetAccountsData;
7963
8820
  res: {
7964
8821
  /**
7965
- * Trends retrieved successfully
8822
+ * Accounts retrieved successfully. Response type depends on groupBy parameter.
7966
8823
  */
7967
- 200: PortfolioTrendsResponseDto;
8824
+ 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
7968
8825
  /**
7969
8826
  * User not authenticated
7970
8827
  */
@@ -7972,14 +8829,18 @@ type $OpenApiTs = {
7972
8829
  };
7973
8830
  };
7974
8831
  };
7975
- '/api/v1/{region}/reporting/cash-flow/trends': {
8832
+ '/api/v1/{region}/dashboard/cash-flow': {
7976
8833
  get: {
7977
- req: ReportingControllerGetCashFlowTrendsData;
8834
+ req: DashboardControllerGetCashFlowData;
7978
8835
  res: {
7979
8836
  /**
7980
- * Cash-flow trends retrieved successfully
8837
+ * Cash flow retrieved successfully
7981
8838
  */
7982
- 200: CashFlowTrendsResponseDto;
8839
+ 200: CashFlowResponseDto;
8840
+ /**
8841
+ * Invalid period format
8842
+ */
8843
+ 400: unknown;
7983
8844
  /**
7984
8845
  * User not authenticated
7985
8846
  */
@@ -7987,16 +8848,16 @@ type $OpenApiTs = {
7987
8848
  };
7988
8849
  };
7989
8850
  };
7990
- '/api/v1/{region}/reporting/snapshots/generate': {
7991
- post: {
7992
- req: ReportingControllerGenerateSnapshotData;
8851
+ '/api/v1/{region}/dashboard/expenses': {
8852
+ get: {
8853
+ req: DashboardControllerGetExpensesData;
7993
8854
  res: {
7994
8855
  /**
7995
- * Snapshot generated successfully
8856
+ * Expenses retrieved successfully
7996
8857
  */
7997
- 200: GenerateSnapshotResponse;
8858
+ 200: ExpensesByCategoryResponseDto;
7998
8859
  /**
7999
- * Invalid date format
8860
+ * Invalid groupBy or period
8000
8861
  */
8001
8862
  400: unknown;
8002
8863
  /**
@@ -8006,26 +8867,22 @@ type $OpenApiTs = {
8006
8867
  };
8007
8868
  };
8008
8869
  };
8009
- '/api/v1/{region}/reporting/snapshots/backfill': {
8010
- post: {
8011
- req: ReportingControllerBackfillSnapshotsData;
8870
+ '/api/v1/{region}/investment/holdings/pnl': {
8871
+ get: {
8872
+ req: HoldingPnlControllerGetHoldingPnlData;
8012
8873
  res: {
8013
8874
  /**
8014
- * Backfill completed successfully
8875
+ * Holding P&L retrieved successfully
8015
8876
  */
8016
- 200: BackfillSnapshotsResponse;
8877
+ 200: HoldingPnlResponseDto;
8017
8878
  /**
8018
- * Invalid date format or range
8879
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8019
8880
  */
8020
8881
  400: unknown;
8021
8882
  /**
8022
8883
  * User not authenticated
8023
8884
  */
8024
8885
  401: unknown;
8025
- /**
8026
- * Backfill already in progress for this user
8027
- */
8028
- 409: unknown;
8029
8886
  };
8030
8887
  };
8031
8888
  };
@@ -8050,7 +8907,7 @@ type $OpenApiTs = {
8050
8907
  /**
8051
8908
  * Login successful
8052
8909
  */
8053
- 200: unknown;
8910
+ 200: AnonymousLoginResponseDto;
8054
8911
  /**
8055
8912
  * Invalid access token
8056
8913
  */
@@ -8197,6 +9054,32 @@ type $OpenApiTs = {
8197
9054
  };
8198
9055
  };
8199
9056
  };
9057
+ '/api/v1/market/symbols/search': {
9058
+ get: {
9059
+ req: SymbolControllerSearchData;
9060
+ res: {
9061
+ /**
9062
+ * Ranked search results
9063
+ */
9064
+ 200: Array<SymbolSearchResultDto>;
9065
+ };
9066
+ };
9067
+ };
9068
+ '/api/v1/market/symbols/{symbol}/quote': {
9069
+ get: {
9070
+ req: SymbolControllerGetQuoteData;
9071
+ res: {
9072
+ /**
9073
+ * Symbol quote
9074
+ */
9075
+ 200: SymbolQuoteDto;
9076
+ /**
9077
+ * Symbol not found in the openbb catalog
9078
+ */
9079
+ 404: unknown;
9080
+ };
9081
+ };
9082
+ };
8200
9083
  };
8201
9084
 
8202
9085
  declare class BeanAccountsService {
@@ -8218,7 +9101,7 @@ declare class BeanAccountsService {
8218
9101
  * @param data.type Filter by account type
8219
9102
  * @param data.status Filter by status
8220
9103
  * @param data.isCustom Filter by custom (user-created) accounts only
8221
- * @param data.search Search term for path or i18nKey
9104
+ * @param data.search Search term for account path
8222
9105
  * @param data.limit Maximum number of results
8223
9106
  * @param data.offset Number of results to skip
8224
9107
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -8248,7 +9131,7 @@ declare class BeanAccountsService {
8248
9131
  static accountControllerUpdate(data: AccountControllerUpdateData): CancelablePromise<AccountControllerUpdateResponse>;
8249
9132
  /**
8250
9133
  * Delete account
8251
- * Deletes an account (only if no transactions)
9134
+ * Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
8252
9135
  * @param data The data for the request.
8253
9136
  * @param data.id Account UUID
8254
9137
  * @param data.region Region code for tenant context
@@ -8278,6 +9161,17 @@ declare class BeanAccountsService {
8278
9161
  * @throws ApiError
8279
9162
  */
8280
9163
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
9164
+ /**
9165
+ * Post an opening-balance transaction
9166
+ * 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.
9167
+ * @param data The data for the request.
9168
+ * @param data.id Account UUID
9169
+ * @param data.region Region code for tenant context
9170
+ * @param data.requestBody
9171
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
9172
+ * @throws ApiError
9173
+ */
9174
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
8281
9175
  }
8282
9176
  declare class BeanTransactionsService {
8283
9177
  /**
@@ -8303,6 +9197,7 @@ declare class BeanTransactionsService {
8303
9197
  * @param data.status Filter by transaction status
8304
9198
  * @param data.search Search in narration and payee fields (max 200 chars)
8305
9199
  * @param data.accountId Filter by account ID (transactions with postings to this account)
9200
+ * @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
9201
  * @returns TransactionListResponseDto Transaction list
8307
9202
  * @throws ApiError
8308
9203
  */
@@ -8378,7 +9273,7 @@ declare class BeanBalancesService {
8378
9273
  * Query account balance
8379
9274
  * Calculate account balance at a specific date for a single currency
8380
9275
  * @param data The data for the request.
8381
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
9276
+ * @param data.account Account name (e.g., "Assets:Checking")
8382
9277
  * @param data.region Region code for tenant context
8383
9278
  * @param data.date Date to calculate balance at (ISO 8601 format)
8384
9279
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -8608,4 +9503,4 @@ type OpenAPIConfig = {
8608
9503
  };
8609
9504
  declare const OpenAPI: OpenAPIConfig;
8610
9505
 
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 };
9506
+ 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 productCategory, 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 };