@firela/api-types 0.0.0-canary.45a6cc23 → 0.0.0-canary.4cf7f99a

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