@firela/api-types 0.0.0-canary.32edff08 → 0.0.0-canary.3550df41

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
  */
@@ -293,6 +293,50 @@ type RegionInfoDto = {
293
293
  type RegionsMetadataResponseDto = {
294
294
  regions: Array<RegionInfoDto>;
295
295
  };
296
+ type CostSpecDto = {
297
+ /**
298
+ * Cost specification mode (mirrors engine CostSpec)
299
+ */
300
+ mode: 'per-unit' | 'total' | 'date' | 'label' | 'auto';
301
+ /**
302
+ * Per-unit cost (required when mode is "per-unit")
303
+ */
304
+ numberPerUnit?: string;
305
+ /**
306
+ * Total cost for all units (required when mode is "total")
307
+ */
308
+ totalNumber?: string;
309
+ /**
310
+ * Cost currency (required in all modes)
311
+ */
312
+ currency: string;
313
+ /**
314
+ * Lot acquisition date, ISO 8601 (required when mode is "date")
315
+ */
316
+ date?: string;
317
+ /**
318
+ * Lot label (required when mode is "label"; optional tag in buy modes)
319
+ */
320
+ label?: string;
321
+ /**
322
+ * Merge lots for AVERAGE booking (mode: auto)
323
+ */
324
+ merge?: boolean;
325
+ };
326
+ /**
327
+ * Cost specification mode (mirrors engine CostSpec)
328
+ */
329
+ type mode = 'per-unit' | 'total' | 'date' | 'label' | 'auto';
330
+ type AmountDto = {
331
+ /**
332
+ * Amount as decimal string (max 15 integer + 15 decimal digits)
333
+ */
334
+ number: string;
335
+ /**
336
+ * Currency/commodity code
337
+ */
338
+ currency: string;
339
+ };
296
340
  type CreatePostingDto = {
297
341
  /**
298
342
  * Account name in Beancount format (must start with uppercase, colon-separated)
@@ -312,6 +356,14 @@ type CreatePostingDto = {
312
356
  meta?: {
313
357
  [key: string]: unknown;
314
358
  };
359
+ /**
360
+ * Cost basis (Beancount `{...}`). Maps to engine costSpec. Required for commodity holdings so they carry a monetary weight that can balance.
361
+ */
362
+ cost?: CostSpecDto;
363
+ /**
364
+ * Price annotation (Beancount `@...`). Maps to engine price. Used for valuation; cost takes priority for balance weight.
365
+ */
366
+ price?: AmountDto;
315
367
  };
316
368
  type CreateTransactionDto = {
317
369
  /**
@@ -361,6 +413,24 @@ type CreateTransactionDto = {
361
413
  * Transaction flag: * (cleared), ! (pending)
362
414
  */
363
415
  type flag = '*' | '!';
416
+ type CostDetailDto = {
417
+ /**
418
+ * Per-unit cost basis (mirrors engine Cost.number)
419
+ */
420
+ number?: string;
421
+ /**
422
+ * Cost currency
423
+ */
424
+ currency?: string;
425
+ /**
426
+ * Lot acquisition date (ISO yyyy-mm-dd)
427
+ */
428
+ date?: string;
429
+ /**
430
+ * Lot label
431
+ */
432
+ label?: string;
433
+ };
364
434
  type PostingResponseDto = {
365
435
  /**
366
436
  * Account name
@@ -374,6 +444,10 @@ type PostingResponseDto = {
374
444
  * Currency
375
445
  */
376
446
  currency?: string;
447
+ /**
448
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
449
+ */
450
+ cost?: CostDetailDto;
377
451
  };
378
452
  type RecurringSuggestionDto = {
379
453
  /**
@@ -513,6 +587,54 @@ type BatchTransactionResponseDto = {
513
587
  */
514
588
  failed: Array<BatchTransactionErrorDto>;
515
589
  };
590
+ type CorrectTransactionDto = {
591
+ /**
592
+ * Transaction date (ISO 8601 format)
593
+ */
594
+ date: string;
595
+ /**
596
+ * Transaction flag: * (cleared), ! (pending)
597
+ */
598
+ flag?: '*' | '!';
599
+ /**
600
+ * Payee name
601
+ */
602
+ payee?: string;
603
+ /**
604
+ * Transaction narration/description
605
+ */
606
+ narration: string;
607
+ /**
608
+ * Transaction tags (without # prefix)
609
+ */
610
+ tags?: Array<string>;
611
+ /**
612
+ * Transaction links (without ^ prefix)
613
+ */
614
+ links?: Array<string>;
615
+ /**
616
+ * Transaction postings (minimum 1, typically 2 for double-entry)
617
+ */
618
+ postings: Array<CreatePostingDto>;
619
+ /**
620
+ * Transaction-level metadata
621
+ */
622
+ meta?: {
623
+ [key: string]: unknown;
624
+ };
625
+ /**
626
+ * Unique key for idempotent transaction creation. If provided, duplicate requests with the same key will return the existing transaction.
627
+ */
628
+ idempotencyKey?: string;
629
+ /**
630
+ * Auto-create accounts if not found. When true, missing accounts will be automatically created. When false (default for API), missing accounts will cause a validation error. Set to true for quick entry scenarios where you want to create accounts on-the-fly.
631
+ */
632
+ autoCreateAccounts?: boolean;
633
+ /**
634
+ * Reason for correcting/superseding the original transaction
635
+ */
636
+ correctionReason?: string;
637
+ };
516
638
  type PostingDetailDto = {
517
639
  /**
518
640
  * Posting ID
@@ -523,9 +645,9 @@ type PostingDetailDto = {
523
645
  */
524
646
  accountId: string;
525
647
  /**
526
- * Account name
648
+ * Fully-qualified Beancount account path
527
649
  */
528
- accountName: string;
650
+ account: string;
529
651
  /**
530
652
  * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
531
653
  */
@@ -546,6 +668,10 @@ type PostingDetailDto = {
546
668
  * Cost date
547
669
  */
548
670
  costDate?: string;
671
+ /**
672
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
673
+ */
674
+ cost?: CostDetailDto;
549
675
  /**
550
676
  * Price amount
551
677
  */
@@ -636,6 +762,14 @@ type TransactionDetailDto = {
636
762
  * Correction reason (if voided or superseded)
637
763
  */
638
764
  correctionReason?: string;
765
+ /**
766
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
767
+ */
768
+ supersededBy?: string;
769
+ /**
770
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
771
+ */
772
+ originalTxn?: string;
639
773
  };
640
774
  /**
641
775
  * Transaction flag
@@ -645,6 +779,48 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
645
779
  * Transaction status
646
780
  */
647
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
+ };
648
824
  type TransactionListResponseDto = {
649
825
  /**
650
826
  * List of transactions
@@ -662,6 +838,10 @@ type TransactionListResponseDto = {
662
838
  * Number of items skipped
663
839
  */
664
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;
665
845
  };
666
846
  type TagSuggestionDto = {
667
847
  /**
@@ -1038,17 +1218,17 @@ type ResolveResultDto = {
1038
1218
  [key: string]: string;
1039
1219
  };
1040
1220
  /**
1041
- * Resolution ID for undo
1221
+ * Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
1042
1222
  */
1043
- resolutionId: string;
1223
+ resolutionId?: string;
1044
1224
  /**
1045
1225
  * Whether this decision can be undone
1046
1226
  */
1047
- canUndo: boolean;
1227
+ canUndo?: boolean;
1048
1228
  /**
1049
1229
  * Deadline for undo (24h from resolution)
1050
1230
  */
1051
- undoDeadline: string;
1231
+ undoDeadline?: string;
1052
1232
  /**
1053
1233
  * Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
1054
1234
  */
@@ -1508,6 +1688,104 @@ type UpdateCommodityDto = {
1508
1688
  [key: string]: unknown;
1509
1689
  };
1510
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
+ };
1511
1789
  type CreateRecurringRuleDto = {
1512
1790
  /**
1513
1791
  * Rule name (unique per user)
@@ -2105,11 +2383,303 @@ type ForecastResponseDto = {
2105
2383
  */
2106
2384
  periodEnd: string;
2107
2385
  };
2108
- type CreateTransactionRuleDto = {
2109
- name: string;
2110
- description?: string;
2111
- narrationKeywords?: Array<unknown[]>;
2112
- payeeKeywords?: Array<unknown[]>;
2386
+ type CurrencyBalanceDto = {
2387
+ /**
2388
+ * ISO 4217 currency code
2389
+ */
2390
+ currency: string;
2391
+ /**
2392
+ * Balance amount
2393
+ */
2394
+ balance: string;
2395
+ };
2396
+ type TimeSeriesPointDto = {
2397
+ /**
2398
+ * Date in YYYY-MM-DD format
2399
+ */
2400
+ date: string;
2401
+ /**
2402
+ * Value at this date (in base currency)
2403
+ */
2404
+ value: string;
2405
+ /**
2406
+ * Change from previous point
2407
+ */
2408
+ change?: {
2409
+ [key: string]: unknown;
2410
+ };
2411
+ /**
2412
+ * Total assets at this date (in base currency)
2413
+ */
2414
+ assets?: string;
2415
+ /**
2416
+ * Total liabilities at this date (in base currency)
2417
+ */
2418
+ liabilities?: string;
2419
+ /**
2420
+ * Multi-currency breakdown for this point
2421
+ */
2422
+ byCurrency?: Array<CurrencyBalanceDto>;
2423
+ };
2424
+ type TrendSummaryDto = {
2425
+ /**
2426
+ * Value at start of period
2427
+ */
2428
+ startValue: string;
2429
+ /**
2430
+ * Value at end of period
2431
+ */
2432
+ endValue: string;
2433
+ /**
2434
+ * Total change over period
2435
+ */
2436
+ totalChange: string;
2437
+ /**
2438
+ * Total change percentage
2439
+ */
2440
+ totalChangePercentage: string;
2441
+ };
2442
+ type MultiCurrencyPointDto = {
2443
+ /**
2444
+ * Date in YYYY-MM-DD format
2445
+ */
2446
+ date: string;
2447
+ /**
2448
+ * Balances by currency
2449
+ */
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[]>;
2113
2683
  categoryKeywords?: Array<unknown[]>;
2114
2684
  /**
2115
2685
  * Payment method keywords (e.g., HuaBei, YuEBao)
@@ -2443,117 +3013,235 @@ type TestRuleResponseDto = {
2443
3013
  [key: string]: unknown;
2444
3014
  };
2445
3015
  };
2446
- type DeleteOwnUserDto = {
3016
+ type CreateBeanEventDto = {
2447
3017
  /**
2448
- * Access token for user verification
3018
+ * Life event date (ISO 8601)
2449
3019
  */
2450
- accessToken: string;
3020
+ date: string;
3021
+ /**
3022
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
3023
+ */
3024
+ type: string;
3025
+ /**
3026
+ * Life event description. Empty string is a VALID value (distinct from absence).
3027
+ */
3028
+ description: string;
3029
+ /**
3030
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
3031
+ */
3032
+ meta?: {
3033
+ [key: string]: unknown;
3034
+ };
2451
3035
  };
2452
- type SignupDto = {
3036
+ type EventResponseDto = {
2453
3037
  /**
2454
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
3038
+ * Unique identifier
2455
3039
  */
2456
- turnstileToken?: string;
3040
+ id: string;
3041
+ /**
3042
+ * User ID (owner of the life event)
3043
+ */
3044
+ userId: string;
3045
+ /**
3046
+ * Life event date (ISO 8601 format)
3047
+ */
3048
+ date: string;
3049
+ /**
3050
+ * Life event type (user-defined, e.g., "employer", "location")
3051
+ */
3052
+ type: string;
3053
+ /**
3054
+ * Life event description. May be an empty string (a valid value distinct from absence).
3055
+ */
3056
+ description: string;
3057
+ /**
3058
+ * Product-side metadata (free-form JSON)
3059
+ */
3060
+ meta: {
3061
+ [key: string]: unknown;
3062
+ };
3063
+ /**
3064
+ * Creation timestamp
3065
+ */
3066
+ createdAt: string;
3067
+ /**
3068
+ * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
3069
+ */
3070
+ updatedAt: string;
2457
3071
  };
2458
- type UpdateUserSettingDto = {
3072
+ type EventListResponseDto = {
2459
3073
  /**
2460
- * Security ID
3074
+ * List of life events
2461
3075
  */
2462
- secId?: number;
3076
+ items: Array<EventResponseDto>;
2463
3077
  /**
2464
- * Annual interest rate
3078
+ * Total number of life events matching the query
2465
3079
  */
2466
- annualInterestRate?: number;
3080
+ total: number;
3081
+ };
3082
+ type UpdateBeanEventDto = {
2467
3083
  /**
2468
- * Currency code
3084
+ * Life event date (ISO 8601)
2469
3085
  */
2470
- currency?: string;
3086
+ date?: string;
2471
3087
  /**
2472
- * Base currency code
3088
+ * Life event type (user-defined)
2473
3089
  */
2474
- baseCurrency?: string;
3090
+ type?: string;
2475
3091
  /**
2476
- * Benchmark symbol
3092
+ * Life event description. Empty string is a VALID value (distinct from absence).
2477
3093
  */
2478
- benchmark?: string;
3094
+ description?: string;
2479
3095
  /**
2480
- * Color scheme
3096
+ * Product-side metadata (free-form JSON)
2481
3097
  */
2482
- colorScheme?: 'DARK' | 'LIGHT';
3098
+ meta?: {
3099
+ [key: string]: unknown;
3100
+ };
3101
+ };
3102
+ type OnboardingAccountDto = {
2483
3103
  /**
2484
- * Date range filter
3104
+ * Account path (Assets/Liabilities only; format validated by the account service)
2485
3105
  */
2486
- dateRange?: string;
3106
+ path: string;
2487
3107
  /**
2488
- * Emergency fund amount
3108
+ * ISO 4217 currency code (3 letters)
2489
3109
  */
2490
- emergencyFund?: number;
3110
+ currency: string;
2491
3111
  /**
2492
- * Account filter IDs
3112
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
2493
3113
  */
2494
- 'filters.accounts'?: Array<string>;
3114
+ openingBalance?: string;
2495
3115
  /**
2496
- * Asset class filters
3116
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
2497
3117
  */
2498
- 'filters.assetClasses'?: Array<string>;
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;
2499
3178
  /**
2500
- * Data source filter
3179
+ * Suggested next action: assert when within tolerance, pad otherwise.
2501
3180
  */
2502
- 'filters.dataSource'?: string;
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 = {
2503
3188
  /**
2504
- * Symbol filter
3189
+ * BeanAccount id to reconcile.
2505
3190
  */
2506
- 'filters.symbol'?: string;
3191
+ accountId: string;
2507
3192
  /**
2508
- * Tag filters
3193
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
2509
3194
  */
2510
- 'filters.tags'?: Array<string>;
3195
+ asOfDate: string;
2511
3196
  /**
2512
- * Enable experimental features
3197
+ * Actual balance from the external statement.
2513
3198
  */
2514
- isExperimentalFeatures?: boolean;
3199
+ actualBalance: ActualBalanceDto;
2515
3200
  /**
2516
- * Enable restricted view mode
3201
+ * Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
2517
3202
  */
2518
- isRestrictedView?: boolean;
3203
+ tolerance?: string;
3204
+ };
3205
+ type ReconciliationRecordDto = {
3206
+ id: string;
3207
+ accountId: string;
3208
+ date: string;
2519
3209
  /**
2520
- * Language code
3210
+ * Asserted (actual) amount.
2521
3211
  */
2522
- language?: string;
3212
+ amount: string;
3213
+ currency: string;
3214
+ tolerance?: string;
2523
3215
  /**
2524
- * Locale code
3216
+ * book − actual.
2525
3217
  */
2526
- locale?: string;
3218
+ diffAmount?: string;
3219
+ diffCurrency?: string;
3220
+ createdAt: string;
3221
+ };
3222
+ type PadReconciliationDto = {
2527
3223
  /**
2528
- * Projected total amount
3224
+ * BeanAccount id to reconcile.
2529
3225
  */
2530
- projectedTotalAmount?: number;
3226
+ accountId: string;
2531
3227
  /**
2532
- * Retirement date in ISO 8601 format
3228
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
2533
3229
  */
2534
- retirementDate?: string;
3230
+ asOfDate: string;
2535
3231
  /**
2536
- * Savings rate percentage
3232
+ * Actual balance from the external statement.
2537
3233
  */
2538
- savingsRate?: number;
3234
+ actualBalance: ActualBalanceDto;
2539
3235
  /**
2540
- * View mode
3236
+ * Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
2541
3237
  */
2542
- viewMode?: 'DEFAULT' | 'ZEN';
3238
+ sourceAccount?: string;
2543
3239
  };
2544
- /**
2545
- * Color scheme
2546
- */
2547
- type colorScheme = 'DARK' | 'LIGHT';
2548
- /**
2549
- * View mode
2550
- */
2551
- type viewMode = 'DEFAULT' | 'ZEN';
2552
- type UpdatePropertyDto = {
3240
+ type PadResultDto = {
2553
3241
  /**
2554
- * Property value
3242
+ * Created pad adjusting transaction id.
2555
3243
  */
2556
- value: string;
3244
+ transactionId: string;
2557
3245
  };
2558
3246
  type FileImportDto = {
2559
3247
  /**
@@ -2799,70 +3487,6 @@ type UpdateImporterConfigDto = {
2799
3487
  */
2800
3488
  data?: UpdateConfigDataDto;
2801
3489
  };
2802
- type CreatePlatformDto = {
2803
- /**
2804
- * Platform name
2805
- */
2806
- name: string;
2807
- /**
2808
- * Platform canonical identifier (lowercase, kebab-case)
2809
- */
2810
- canonical: string;
2811
- /**
2812
- * Platform aliases (multi-language names for lookup)
2813
- */
2814
- aliases: Array<string>;
2815
- /**
2816
- * Platform URL
2817
- */
2818
- url: string;
2819
- /**
2820
- * Platform type
2821
- */
2822
- type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2823
- /**
2824
- * Platform logo URL
2825
- */
2826
- logoUrl?: string;
2827
- /**
2828
- * Whether the platform is active
2829
- */
2830
- isActive?: boolean;
2831
- };
2832
- /**
2833
- * Platform type
2834
- */
2835
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2836
- type UpdatePlatformDto = {
2837
- /**
2838
- * Platform name
2839
- */
2840
- name?: string;
2841
- /**
2842
- * Platform canonical identifier (lowercase, kebab-case)
2843
- */
2844
- canonical?: string;
2845
- /**
2846
- * Platform aliases (multi-language names for lookup)
2847
- */
2848
- aliases?: Array<string>;
2849
- /**
2850
- * Platform URL
2851
- */
2852
- url?: string;
2853
- /**
2854
- * Platform type
2855
- */
2856
- type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2857
- /**
2858
- * Platform logo URL
2859
- */
2860
- logoUrl?: string;
2861
- /**
2862
- * Whether the platform is active
2863
- */
2864
- isActive?: boolean;
2865
- };
2866
3490
  type ProviderSyncConfigDto = {
2867
3491
  /**
2868
3492
  * Source account for the first posting
@@ -2884,6 +3508,10 @@ type ProviderSyncConfigDto = {
2884
3508
  * Filter pending transactions
2885
3509
  */
2886
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;
2887
3515
  };
2888
3516
  type ProviderSyncDto = {
2889
3517
  /**
@@ -2935,7 +3563,43 @@ type SupportedProvidersResponseDto = {
2935
3563
  */
2936
3564
  providers: Array<string>;
2937
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
+ };
2938
3601
  type ParserTelemetryReportDto = unknown;
3602
+ type UncoveredFormatMissDto = unknown;
2939
3603
  type ProcessNlpDto = {
2940
3604
  /**
2941
3605
  * Natural language text describing a transaction (Chinese)
@@ -2951,6 +3615,14 @@ type ProcessNlpDto = {
2951
3615
  parsedData?: {
2952
3616
  [key: string]: unknown;
2953
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;
2954
3626
  };
2955
3627
  type NlpTransactionInfoDto = {
2956
3628
  /**
@@ -3184,9 +3856,9 @@ type NlpAccountConfirmationDataDto = {
3184
3856
  */
3185
3857
  invalidAccount: string;
3186
3858
  /**
3187
- * Suggested replacement account
3859
+ * Suggested replacement account (omitted when no clear candidate)
3188
3860
  */
3189
- suggestedAccount: string;
3861
+ suggestedAccount?: string;
3190
3862
  /**
3191
3863
  * Similar accounts for user selection
3192
3864
  */
@@ -3308,7 +3980,7 @@ type NlpSuggestedAccountDto = {
3308
3980
  */
3309
3981
  account: string;
3310
3982
  /**
3311
- * Confidence score for this suggestion (0-1)
3983
+ * Confidence score for this suggestion (0-1). Present = predicted (confirm/confirm_rule/confirm_account); omitted = actual persisted account (created). (#586)
3312
3984
  */
3313
3985
  confidence?: number;
3314
3986
  };
@@ -3324,21 +3996,21 @@ type NlpSuggestedAccountsDto = {
3324
3996
  };
3325
3997
  type NlpDefaultAccountsDto = {
3326
3998
  /**
3327
- * Default asset account
3999
+ * Default OPEN asset account (MRU when multiple), or null when none/ambiguous
3328
4000
  */
3329
- asset: string;
4001
+ asset: string | null;
3330
4002
  /**
3331
- * Default expense account
4003
+ * Default OPEN expense account (MRU when multiple), or null when none/ambiguous
3332
4004
  */
3333
- expense: string;
4005
+ expense: string | null;
3334
4006
  /**
3335
- * Default income account
4007
+ * Default OPEN income account (MRU when multiple), or null when none/ambiguous
3336
4008
  */
3337
- income: string;
4009
+ income: string | null;
3338
4010
  /**
3339
- * Default liability account
4011
+ * Default OPEN liability account (MRU when multiple), or null when none/ambiguous
3340
4012
  */
3341
- liability: string;
4013
+ liability: string | null;
3342
4014
  };
3343
4015
  type NlpResponseDto = {
3344
4016
  /**
@@ -3348,7 +4020,7 @@ type NlpResponseDto = {
3348
4020
  /**
3349
4021
  * Action taken or requested
3350
4022
  */
3351
- 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';
3352
4024
  /**
3353
4025
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3354
4026
  */
@@ -3437,11 +4109,11 @@ type NlpResponseDto = {
3437
4109
  */
3438
4110
  recurringSuggestion?: RecurringSuggestionDto;
3439
4111
  /**
3440
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4112
+ * Suggested accounts for this transaction (#586). confirm/confirm_rule/confirm_account: predicted (source/destination carry confidence); created: actual persisted accounts (confidence omitted). confirm_account destination is the suggested replacement, never the invalid account.
3441
4113
  */
3442
4114
  suggestedAccounts?: NlpSuggestedAccountsDto;
3443
4115
  /**
3444
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4116
+ * Default fallback accounts for the user/region (#586). v1 returns universal constants; per-user personalization is planned.
3445
4117
  */
3446
4118
  defaultAccounts?: NlpDefaultAccountsDto;
3447
4119
  };
@@ -3452,7 +4124,7 @@ type status4 = 'success' | 'pending' | 'error';
3452
4124
  /**
3453
4125
  * Action taken or requested
3454
4126
  */
3455
- 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';
3456
4128
  /**
3457
4129
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3458
4130
  */
@@ -3469,15 +4141,159 @@ type liabilitySubType = 'borrow' | 'repay';
3469
4141
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3470
4142
  */
3471
4143
  type equitySubType = 'opening' | 'adjustment';
3472
- type BalanceByCurrencyDto = {
4144
+ type PlatformListItemDto = {
4145
+ /**
4146
+ * Global platform ID
4147
+ */
4148
+ id: string;
4149
+ /**
4150
+ * Platform name
4151
+ */
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';
3473
4289
  /**
3474
- * ISO 4217 currency code
4290
+ * Platform logo URL
3475
4291
  */
3476
- currency: string;
4292
+ logoUrl?: string;
3477
4293
  /**
3478
- * Balance amount
4294
+ * Whether the platform is active
3479
4295
  */
3480
- balance: string;
4296
+ isActive?: boolean;
3481
4297
  };
3482
4298
  type NetWorthByCurrencyDto = {
3483
4299
  /**
@@ -3517,20 +4333,6 @@ type ConvertedNetWorthDto = {
3517
4333
  [key: string]: unknown;
3518
4334
  };
3519
4335
  };
3520
- type ExchangeRateWarningDto = {
3521
- /**
3522
- * Warning type
3523
- */
3524
- type: string;
3525
- /**
3526
- * Currency without exchange rate
3527
- */
3528
- currency: string;
3529
- /**
3530
- * Total amount affected
3531
- */
3532
- totalAmount: string;
3533
- };
3534
4336
  type NetWorthResponseDto = {
3535
4337
  /**
3536
4338
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3594,6 +4396,10 @@ type AccountItemDto = {
3594
4396
  * Currency code
3595
4397
  */
3596
4398
  currency: string;
4399
+ /**
4400
+ * FX-converted balance in base currency; omitted when not convertible
4401
+ */
4402
+ convertedBalance?: string;
3597
4403
  };
3598
4404
  type PlatformGroupDto = {
3599
4405
  /**
@@ -3609,9 +4415,39 @@ type PlatformGroupDto = {
3609
4415
  */
3610
4416
  accounts: Array<AccountItemDto>;
3611
4417
  /**
3612
- * Total balance across all accounts in platform
4418
+ * FX-converted total balance in base currency
3613
4419
  */
3614
4420
  totalBalance: string;
4421
+ /**
4422
+ * Raw (unconverted) balances grouped by currency
4423
+ */
4424
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4425
+ /**
4426
+ * Converted balance in base currency (omitted when no currency is convertible)
4427
+ */
4428
+ convertedBalance?: string;
4429
+ /**
4430
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4431
+ */
4432
+ sharePct: number;
4433
+ };
4434
+ type AccountExchangeRateWarningDto = {
4435
+ /**
4436
+ * Warning type
4437
+ */
4438
+ type: string;
4439
+ /**
4440
+ * Currency without exchange rate
4441
+ */
4442
+ currency: string;
4443
+ /**
4444
+ * Affected account paths
4445
+ */
4446
+ accounts: Array<string>;
4447
+ /**
4448
+ * Total amount in this currency
4449
+ */
4450
+ totalAmount: string;
3615
4451
  };
3616
4452
  type AccountsSummaryDto = {
3617
4453
  /**
@@ -3622,6 +4458,14 @@ type AccountsSummaryDto = {
3622
4458
  * Total number of platforms
3623
4459
  */
3624
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>;
3625
4469
  };
3626
4470
  type AccountsResponseDto = {
3627
4471
  /**
@@ -3654,6 +4498,10 @@ type AccountItemWithAssetClassDto = {
3654
4498
  * Currency code
3655
4499
  */
3656
4500
  currency: string;
4501
+ /**
4502
+ * FX-converted balance in base currency; omitted when not convertible
4503
+ */
4504
+ convertedBalance?: string;
3657
4505
  /**
3658
4506
  * Asset class
3659
4507
  */
@@ -3670,7 +4518,15 @@ type AccountItemWithAssetClassDto = {
3670
4518
  * Risk level
3671
4519
  */
3672
4520
  riskLevel?: string;
4521
+ /**
4522
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4523
+ */
4524
+ source?: 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
3673
4525
  };
4526
+ /**
4527
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4528
+ */
4529
+ type source2 = 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
3674
4530
  type AssetClassGroupDto = {
3675
4531
  /**
3676
4532
  * Asset class name
@@ -3697,24 +4553,6 @@ type AssetClassGroupDto = {
3697
4553
  * Asset class name
3698
4554
  */
3699
4555
  type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
3700
- type AccountExchangeRateWarningDto = {
3701
- /**
3702
- * Warning type
3703
- */
3704
- type: string;
3705
- /**
3706
- * Currency without exchange rate
3707
- */
3708
- currency: string;
3709
- /**
3710
- * Affected account paths
3711
- */
3712
- accounts: Array<string>;
3713
- /**
3714
- * Total amount in this currency
3715
- */
3716
- totalAmount: string;
3717
- };
3718
4556
  type AssetClassSummaryDto = {
3719
4557
  /**
3720
4558
  * Total number of accounts
@@ -3732,6 +4570,12 @@ type AssetClassSummaryDto = {
3732
4570
  * Exchange rate warnings
3733
4571
  */
3734
4572
  warnings?: Array<AccountExchangeRateWarningDto>;
4573
+ /**
4574
+ * ADR-0105 §4 fallback provenance stats (holding level only). valueRatio is the grey-area share of total converted value; count is the number of source=FALLBACK holdings.
4575
+ */
4576
+ fallback?: {
4577
+ [key: string]: unknown;
4578
+ };
3735
4579
  };
3736
4580
  type AssetClassAccountsResponseDto = {
3737
4581
  /**
@@ -3742,6 +4586,54 @@ type AssetClassAccountsResponseDto = {
3742
4586
  * Summary statistics
3743
4587
  */
3744
4588
  summary: AssetClassSummaryDto;
4589
+ /**
4590
+ * ADR-0105 §6 holding-level grey-area bucket (source=FALLBACK holdings peeled out of groups). Present only for groupBy=holdingAssetClass when FALLBACK holdings exist.
4591
+ */
4592
+ uncategorized?: AssetClassGroupDto;
4593
+ };
4594
+ type HoldingAssetClassAccountSliceDto = {
4595
+ /**
4596
+ * Account ID
4597
+ */
4598
+ accountId: string;
4599
+ /**
4600
+ * Full account path
4601
+ */
4602
+ accountPath: string;
4603
+ /**
4604
+ * Currency of the holding with the largest converted base value; undefined when no holding is convertible
4605
+ */
4606
+ accountCurrency?: string;
4607
+ /**
4608
+ * Account's market value in base currency (Σ converted holdings; grey bucket included)
4609
+ */
4610
+ marketValueBase: string;
4611
+ /**
4612
+ * Share of the global total (0-100). 0 when globalTotal is zero (no NaN/Infinity).
4613
+ */
4614
+ shareOfTotalPct: number;
4615
+ /**
4616
+ * Per-account asset-class breakdown
4617
+ */
4618
+ groups: Array<AssetClassGroupDto>;
4619
+ /**
4620
+ * Per-account grey bucket (source=FALLBACK holdings, incl. broker cash)
4621
+ */
4622
+ uncategorized?: AssetClassGroupDto;
4623
+ /**
4624
+ * Every holding row for this account (account ID in each row’s `id` field)
4625
+ */
4626
+ holdings: Array<AccountItemWithAssetClassDto>;
4627
+ };
4628
+ type HoldingAssetClassCrossAccountResponseDto = {
4629
+ /**
4630
+ * Merged cross-account holding aggregation
4631
+ */
4632
+ global: AssetClassAccountsResponseDto;
4633
+ /**
4634
+ * Per-account slices
4635
+ */
4636
+ byAccount: Array<HoldingAssetClassAccountSliceDto>;
3745
4637
  };
3746
4638
  type CashFlowByCurrencyDto = {
3747
4639
  /**
@@ -3819,103 +4711,368 @@ type CashFlowResponseDto = {
3819
4711
  */
3820
4712
  warnings?: Array<ExchangeRateWarningDto>;
3821
4713
  };
3822
- type CurrencyBalanceDto = {
4714
+ type CategoryGroupDto = {
3823
4715
  /**
3824
- * ISO 4217 currency code
4716
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4717
+ */
4718
+ category: string;
4719
+ /**
4720
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4721
+ */
4722
+ totalExpense: string;
4723
+ /**
4724
+ * Share of grand total (0-100); 0 when grand total is 0
4725
+ */
4726
+ sharePct: number;
4727
+ /**
4728
+ * Raw (unconverted) expense per currency
4729
+ */
4730
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4731
+ /**
4732
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4733
+ */
4734
+ convertedBalance?: string;
4735
+ };
4736
+ type ExpensesByCategorySummaryDto = {
4737
+ /**
4738
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4739
+ */
4740
+ totalExpense: string;
4741
+ /**
4742
+ * Number of categories
4743
+ */
4744
+ categoryCount: number;
4745
+ };
4746
+ type ExpensesByCategoryResponseDto = {
4747
+ /**
4748
+ * Period requested
4749
+ */
4750
+ period: string;
4751
+ /**
4752
+ * Base currency for converted values
4753
+ */
4754
+ baseCurrency: string;
4755
+ /**
4756
+ * Expense groups by functional category, sorted by converted total desc
4757
+ */
4758
+ groups: Array<CategoryGroupDto>;
4759
+ /**
4760
+ * Summary statistics
4761
+ */
4762
+ summary: ExpensesByCategorySummaryDto;
4763
+ /**
4764
+ * Exchange rate warnings (e.g. missing rate for a currency)
4765
+ */
4766
+ warnings?: Array<ExchangeRateWarningDto>;
4767
+ };
4768
+ type MonetaryDto = {
4769
+ /**
4770
+ * Amount (Decimal string)
4771
+ */
4772
+ amount: string;
4773
+ /**
4774
+ * ISO 4217 currency
3825
4775
  */
3826
4776
  currency: string;
3827
4777
  /**
3828
- * Balance amount
4778
+ * Converted to user base currency (Decimal string)
3829
4779
  */
3830
- balance: string;
4780
+ baseCcyEquivalent?: {
4781
+ [key: string]: unknown;
4782
+ } | null;
3831
4783
  };
3832
- type TimeSeriesPointDto = {
4784
+ type CurrentPriceDto = {
4785
+ /**
4786
+ * Price amount (Decimal string)
4787
+ */
4788
+ amount: string;
4789
+ /**
4790
+ * Price currency (ISO 4217)
4791
+ */
4792
+ currency: string;
4793
+ /**
4794
+ * Price date (ISO 8601)
4795
+ */
4796
+ date: string;
4797
+ /**
4798
+ * Price source
4799
+ */
4800
+ source: 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4801
+ };
4802
+ /**
4803
+ * Price source
4804
+ */
4805
+ type source3 = 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4806
+ type FxRateDto = {
4807
+ from: string;
4808
+ to: string;
4809
+ /**
4810
+ * FX rate (Decimal string)
4811
+ */
4812
+ rate: string;
4813
+ /**
4814
+ * Rate date (ISO 8601)
4815
+ */
4816
+ date: string;
4817
+ };
4818
+ type HoldingPnlRowDto = {
4819
+ /**
4820
+ * Account UUID
4821
+ */
4822
+ accountId: string;
4823
+ /**
4824
+ * Full account path
4825
+ */
4826
+ accountPath: string;
4827
+ /**
4828
+ * Account settlement currency (ISO 4217), from cost currency
4829
+ */
4830
+ accountCcy?: {
4831
+ [key: string]: unknown;
4832
+ } | null;
4833
+ /**
4834
+ * Broker type derived from Platform.type
4835
+ */
4836
+ brokerType?: {
4837
+ [key: string]: unknown;
4838
+ } | null;
4839
+ /**
4840
+ * Commodity symbol
4841
+ */
4842
+ symbol: string;
4843
+ /**
4844
+ * Chart segment token (libs/common resolver)
4845
+ */
4846
+ chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4847
+ assetClass: string;
4848
+ assetSubClass?: {
4849
+ [key: string]: unknown;
4850
+ } | null;
4851
+ /**
4852
+ * Net held units (Decimal string)
4853
+ */
4854
+ units: string;
4855
+ /**
4856
+ * Average cost per unit; null when cost currency conflicts or no cost
4857
+ */
4858
+ averageCostPerUnit?: MonetaryDto | null;
4859
+ /**
4860
+ * Cost basis of held units
4861
+ */
4862
+ costBasis?: MonetaryDto | null;
4863
+ /**
4864
+ * Market value at asOf price
4865
+ */
4866
+ marketValue?: MonetaryDto | null;
4867
+ /**
4868
+ * Price used for market value
4869
+ */
4870
+ currentPrice?: CurrentPriceDto | null;
4871
+ /**
4872
+ * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4873
+ */
4874
+ unrealizedPnlBase?: {
4875
+ [key: string]: unknown;
4876
+ } | null;
4877
+ /**
4878
+ * Unrealized P&L % (Decimal string)
4879
+ */
4880
+ unrealizedPnlPct?: {
4881
+ [key: string]: unknown;
4882
+ } | null;
4883
+ /**
4884
+ * Historical FX rate applied to cost basis
4885
+ */
4886
+ costFxRate?: FxRateDto | null;
4887
+ /**
4888
+ * FX rate applied to market value
4889
+ */
4890
+ marketFxRate?: FxRateDto | null;
4891
+ /**
4892
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4893
+ */
4894
+ pctOfInvestedAssets?: {
4895
+ [key: string]: unknown;
4896
+ } | null;
4897
+ /**
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
4899
+ */
4900
+ realizedPnl?: MonetaryDto | null;
4901
+ };
4902
+ /**
4903
+ * Chart segment token (libs/common resolver)
4904
+ */
4905
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4906
+ type HoldingPnlWarningDto = {
4907
+ /**
4908
+ * Warning type
4909
+ */
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;
4928
+ /**
4929
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4930
+ */
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 = {
4940
+ /**
4941
+ * Access token for anonymous login
4942
+ */
4943
+ accessToken: string;
4944
+ };
4945
+ type AnonymousLoginResponseDto = {
4946
+ /**
4947
+ * JWT auth token
4948
+ */
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;
3833
4959
  /**
3834
- * Date in YYYY-MM-DD format
4960
+ * OpenBB asset_type (e.g. stock, etf)
3835
4961
  */
3836
- date: string;
4962
+ assetType?: {
4963
+ [key: string]: unknown;
4964
+ } | null;
3837
4965
  /**
3838
- * Value at this date (in base currency)
4966
+ * IGN asset class (region.types.ts ASSET_CLASSES)
3839
4967
  */
3840
- value: string;
4968
+ assetClass?: {
4969
+ [key: string]: unknown;
4970
+ } | null;
3841
4971
  /**
3842
- * Change from previous point
4972
+ * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
3843
4973
  */
3844
- change?: {
4974
+ assetSubClass?: {
3845
4975
  [key: string]: unknown;
3846
- };
4976
+ } | null;
3847
4977
  /**
3848
- * Multi-currency breakdown for this point
4978
+ * Trading currency (extra_data or inferred from exchange)
3849
4979
  */
3850
- byCurrency?: Array<CurrencyBalanceDto>;
4980
+ currency?: {
4981
+ [key: string]: unknown;
4982
+ } | null;
3851
4983
  };
3852
- type TrendSummaryDto = {
4984
+ type SymbolQuoteDto = {
4985
+ symbol?: string;
4986
+ name?: {
4987
+ [key: string]: unknown;
4988
+ } | null;
4989
+ exchange?: {
4990
+ [key: string]: unknown;
4991
+ } | null;
3853
4992
  /**
3854
- * Value at start of period
4993
+ * OpenBB asset_type
3855
4994
  */
3856
- startValue: string;
4995
+ assetType?: {
4996
+ [key: string]: unknown;
4997
+ } | null;
3857
4998
  /**
3858
- * Value at end of period
4999
+ * IGN asset class
3859
5000
  */
3860
- endValue: string;
5001
+ assetClass?: {
5002
+ [key: string]: unknown;
5003
+ } | null;
3861
5004
  /**
3862
- * Total change over period
5005
+ * IGN asset sub-class
3863
5006
  */
3864
- totalChange: string;
5007
+ assetSubClass?: {
5008
+ [key: string]: unknown;
5009
+ } | null;
3865
5010
  /**
3866
- * Total change percentage
5011
+ * Trading currency (extra_data or inferred from exchange)
3867
5012
  */
3868
- totalChangePercentage: string;
3869
- };
3870
- type MultiCurrencyPointDto = {
5013
+ currency?: {
5014
+ [key: string]: unknown;
5015
+ } | null;
3871
5016
  /**
3872
- * Date in YYYY-MM-DD format
5017
+ * Latest price (Decimal string)
3873
5018
  */
3874
- date: string;
5019
+ price?: {
5020
+ [key: string]: unknown;
5021
+ } | null;
3875
5022
  /**
3876
- * Balances by currency
5023
+ * Date the price was observed (ISO yyyy-MM-dd)
3877
5024
  */
3878
- byCurrency: Array<CurrencyBalanceDto>;
3879
- };
3880
- type PortfolioTrendsResponseDto = {
5025
+ priceDate?: {
5026
+ [key: string]: unknown;
5027
+ } | null;
3881
5028
  /**
3882
- * Time series data points
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.
3883
5030
  */
3884
- series: Array<TimeSeriesPointDto>;
5031
+ changePercent?: {
5032
+ [key: string]: unknown;
5033
+ } | null;
3885
5034
  /**
3886
- * Period summary
5035
+ * Previous close (Decimal string)
3887
5036
  */
3888
- summary: TrendSummaryDto;
5037
+ prevClose?: {
5038
+ [key: string]: unknown;
5039
+ } | null;
3889
5040
  /**
3890
- * Period requested
5041
+ * Day open (Decimal string)
3891
5042
  */
3892
- period: string;
5043
+ open?: {
5044
+ [key: string]: unknown;
5045
+ } | null;
3893
5046
  /**
3894
- * Data granularity
5047
+ * Day high (Decimal string)
3895
5048
  */
3896
- granularity: string;
5049
+ high?: {
5050
+ [key: string]: unknown;
5051
+ } | null;
3897
5052
  /**
3898
- * Base currency for converted values
5053
+ * Day low (Decimal string)
3899
5054
  */
3900
- currency: string;
5055
+ low?: {
5056
+ [key: string]: unknown;
5057
+ } | null;
3901
5058
  /**
3902
- * Multi-currency time series (each point has currency breakdown)
5059
+ * Day volume (Decimal string)
3903
5060
  */
3904
- byCurrency?: Array<MultiCurrencyPointDto>;
5061
+ volume?: {
5062
+ [key: string]: unknown;
5063
+ } | null;
3905
5064
  /**
3906
- * Exchange rate warnings
5065
+ * 52-week high (Decimal string)
3907
5066
  */
3908
- warnings?: Array<ExchangeRateWarningDto>;
3909
- };
3910
- type GenerateSnapshotBody = unknown;
3911
- type GenerateSnapshotResponse = unknown;
3912
- type BackfillSnapshotsBody = unknown;
3913
- type BackfillSnapshotsResponse = unknown;
3914
- type AnonymousLoginDto = {
5067
+ yearHigh?: {
5068
+ [key: string]: unknown;
5069
+ } | null;
3915
5070
  /**
3916
- * Access token for anonymous login
5071
+ * 52-week low (Decimal string)
3917
5072
  */
3918
- accessToken: string;
5073
+ yearLow?: {
5074
+ [key: string]: unknown;
5075
+ } | null;
3919
5076
  };
3920
5077
  type AccountControllerCreateData = {
3921
5078
  /**
@@ -3943,7 +5100,7 @@ type AccountControllerFindAllData = {
3943
5100
  */
3944
5101
  region: 'cn' | 'us' | 'de' | 'gb';
3945
5102
  /**
3946
- * Search term for path or i18nKey
5103
+ * Search term for account path
3947
5104
  */
3948
5105
  search?: string;
3949
5106
  /**
@@ -4014,6 +5171,18 @@ type AccountControllerReopenData = {
4014
5171
  requestBody: ReopenAccountDto;
4015
5172
  };
4016
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;
4017
5186
  type AccountStandardsControllerGetTemplatesData = {
4018
5187
  /**
4019
5188
  * Region code (cn, us, de)
@@ -4063,6 +5232,10 @@ type TransactionControllerListData = {
4063
5232
  * Filter by account ID (transactions with postings to this account)
4064
5233
  */
4065
5234
  accountId?: string;
5235
+ /**
5236
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5237
+ */
5238
+ category?: string;
4066
5239
  /**
4067
5240
  * Filter by start date (inclusive), format: YYYY-MM-DD
4068
5241
  */
@@ -4101,6 +5274,18 @@ type TransactionControllerCreateBatchData = {
4101
5274
  requestBody: BatchCreateTransactionDto;
4102
5275
  };
4103
5276
  type TransactionControllerCreateBatchResponse = BatchTransactionResponseDto;
5277
+ type TransactionControllerCorrectData = {
5278
+ /**
5279
+ * Original transaction ID to correct
5280
+ */
5281
+ id: string;
5282
+ /**
5283
+ * Region code for tenant context
5284
+ */
5285
+ region: 'cn' | 'us' | 'de' | 'gb';
5286
+ requestBody: CorrectTransactionDto;
5287
+ };
5288
+ type TransactionControllerCorrectResponse = TransactionDetailDto;
4104
5289
  type TransactionControllerSuggestTagsData = {
4105
5290
  /**
4106
5291
  * Max suggestions (1-100, default 10)
@@ -4159,7 +5344,7 @@ type TransactionControllerDeleteData = {
4159
5344
  type TransactionControllerDeleteResponse = void;
4160
5345
  type BalanceControllerGetBalanceData = {
4161
5346
  /**
4162
- * Account name (e.g., "Assets:Bank:Checking")
5347
+ * Account name (e.g., "Assets:Checking")
4163
5348
  */
4164
5349
  account: string;
4165
5350
  /**
@@ -4471,6 +5656,91 @@ type CommodityControllerBulkCreateData = {
4471
5656
  region: 'cn' | 'us' | 'de' | 'gb';
4472
5657
  };
4473
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;
5665
+ };
5666
+ type PriceControllerCreateResponse = PriceResponseDto;
5667
+ type PriceControllerFindAllData = {
5668
+ /**
5669
+ * Filter by currency (e.g., BTC, AAPL, USD)
5670
+ */
5671
+ currency?: string;
5672
+ /**
5673
+ * Filter prices from this date (ISO 8601 format)
5674
+ */
5675
+ dateFrom?: string;
5676
+ /**
5677
+ * Filter prices to this date (ISO 8601 format)
5678
+ */
5679
+ dateTo?: string;
5680
+ /**
5681
+ * Number of items per page (default: 20, max: 100)
5682
+ */
5683
+ limit?: number;
5684
+ /**
5685
+ * Page number for pagination (default: 1)
5686
+ */
5687
+ page?: number;
5688
+ /**
5689
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5690
+ */
5691
+ quoteCurrency?: string;
5692
+ /**
5693
+ * Region code for tenant context
5694
+ */
5695
+ region: 'cn' | 'us' | 'de' | 'gb';
5696
+ /**
5697
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5698
+ */
5699
+ search?: string;
5700
+ };
5701
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5702
+ type PriceControllerFindOneData = {
5703
+ /**
5704
+ * Price ID
5705
+ */
5706
+ id: string;
5707
+ /**
5708
+ * Region code for tenant context
5709
+ */
5710
+ region: 'cn' | 'us' | 'de' | 'gb';
5711
+ };
5712
+ type PriceControllerFindOneResponse = PriceResponseDto;
5713
+ type PriceControllerUpdateData = {
5714
+ /**
5715
+ * Price ID
5716
+ */
5717
+ id: string;
5718
+ /**
5719
+ * Region code for tenant context
5720
+ */
5721
+ region: 'cn' | 'us' | 'de' | 'gb';
5722
+ requestBody: UpdateBeanPriceDto;
5723
+ };
5724
+ type PriceControllerUpdateResponse = PriceResponseDto;
5725
+ type PriceControllerDeleteData = {
5726
+ /**
5727
+ * Price ID
5728
+ */
5729
+ id: string;
5730
+ /**
5731
+ * Region code for tenant context
5732
+ */
5733
+ region: 'cn' | 'us' | 'de' | 'gb';
5734
+ };
5735
+ type PriceControllerDeleteResponse = void;
5736
+ type PriceControllerBulkCreateData = {
5737
+ /**
5738
+ * Region code for tenant context
5739
+ */
5740
+ region: 'cn' | 'us' | 'de' | 'gb';
5741
+ requestBody: Array<string>;
5742
+ };
5743
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
4474
5744
  type RecurringRuleControllerCreateData = {
4475
5745
  /**
4476
5746
  * Region code for tenant context
@@ -4663,7 +5933,121 @@ type ForecastControllerGetForecastData = {
4663
5933
  */
4664
5934
  region: 'cn' | 'us' | 'de' | 'gb';
4665
5935
  };
4666
- type ForecastControllerGetForecastResponse = ForecastResponseDto;
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;
4667
6051
  type TransactionRuleControllerCreateData = {
4668
6052
  /**
4669
6053
  * Region code for tenant context
@@ -4783,71 +6167,135 @@ type TransactionRuleControllerTestData = {
4783
6167
  ruleId: string;
4784
6168
  };
4785
6169
  type TransactionRuleControllerTestResponse = TestRuleResponseDto;
4786
- type UserControllerDeleteOwnUserData = {
4787
- requestBody: DeleteOwnUserDto;
6170
+ type EventControllerCreateData = {
6171
+ /**
6172
+ * Region code for tenant context (decorative for life events)
6173
+ */
6174
+ region: 'cn' | 'us' | 'de' | 'gb';
6175
+ requestBody: CreateBeanEventDto;
4788
6176
  };
4789
- type UserControllerDeleteOwnUserResponse = void;
4790
- type UserControllerGetUserData = {
4791
- acceptLanguage: string;
6177
+ type EventControllerCreateResponse = EventResponseDto;
6178
+ type EventControllerFindAllData = {
6179
+ /**
6180
+ * Filter life events from this date (ISO 8601 format)
6181
+ */
6182
+ from?: string;
6183
+ /**
6184
+ * Number of items per page (default: 20, max: 100)
6185
+ */
6186
+ limit?: number;
6187
+ /**
6188
+ * Page number for pagination (default: 1)
6189
+ */
6190
+ page?: number;
6191
+ /**
6192
+ * Search term for description (case-insensitive partial match)
6193
+ */
6194
+ q?: string;
6195
+ /**
6196
+ * Region code for tenant context (decorative for life events)
6197
+ */
6198
+ region: 'cn' | 'us' | 'de' | 'gb';
6199
+ /**
6200
+ * Filter life events to this date (ISO 8601 format)
6201
+ */
6202
+ to?: string;
6203
+ /**
6204
+ * Filter by life event type (exact match)
6205
+ */
6206
+ type?: string;
4792
6207
  };
4793
- type UserControllerGetUserResponse = unknown;
4794
- type UserControllerSignupUserData = {
4795
- requestBody: SignupDto;
6208
+ type EventControllerFindAllResponse = EventListResponseDto;
6209
+ type EventControllerFindOneData = {
6210
+ /**
6211
+ * Life event ID
6212
+ */
6213
+ id: string;
6214
+ /**
6215
+ * Region code for tenant context (decorative for life events)
6216
+ */
6217
+ region: 'cn' | 'us' | 'de' | 'gb';
4796
6218
  };
4797
- type UserControllerSignupUserResponse = unknown;
4798
- type UserControllerDeleteUserData = {
6219
+ type EventControllerFindOneResponse = EventResponseDto;
6220
+ type EventControllerUpdateData = {
4799
6221
  /**
4800
- * User ID to delete
6222
+ * Life event ID
4801
6223
  */
4802
6224
  id: string;
6225
+ /**
6226
+ * Region code for tenant context (decorative for life events)
6227
+ */
6228
+ region: 'cn' | 'us' | 'de' | 'gb';
6229
+ requestBody: UpdateBeanEventDto;
4803
6230
  };
4804
- type UserControllerDeleteUserResponse = void;
4805
- type UserControllerGetUserInfoData = {
6231
+ type EventControllerUpdateResponse = EventResponseDto;
6232
+ type EventControllerDeleteData = {
4806
6233
  /**
4807
- * User ID
6234
+ * Life event ID
4808
6235
  */
4809
6236
  id: string;
6237
+ /**
6238
+ * Region code for tenant context (decorative for life events)
6239
+ */
6240
+ region: 'cn' | 'us' | 'de' | 'gb';
4810
6241
  };
4811
- type UserControllerGetUserInfoResponse = unknown;
4812
- type UserControllerUpdateUserSettingData = {
4813
- requestBody: UpdateUserSettingDto;
6242
+ type EventControllerDeleteResponse = void;
6243
+ type EventControllerGetSliceData = {
6244
+ accountPattern: string;
6245
+ granularity: string;
6246
+ /**
6247
+ * Life event ID
6248
+ */
6249
+ id: string;
6250
+ /**
6251
+ * Region code for tenant context (decorative for life events)
6252
+ */
6253
+ region: 'cn' | 'us' | 'de' | 'gb';
4814
6254
  };
4815
- type UserControllerUpdateUserSettingResponse = unknown;
4816
- type UserControllerGetAllUserSettingsByPageData = {
6255
+ type EventControllerGetSliceResponse = unknown;
6256
+ type OnboardingControllerBootstrapData = {
4817
6257
  /**
4818
- * Page number
6258
+ * Region code for tenant context
4819
6259
  */
4820
- pageNo: number;
6260
+ region: 'cn' | 'us' | 'de' | 'gb';
6261
+ requestBody: OnboardingDto;
6262
+ };
6263
+ type OnboardingControllerBootstrapResponse = unknown;
6264
+ type ReconciliationControllerComputeData = {
4821
6265
  /**
4822
- * Page size
6266
+ * Region code for tenant context (decorative for reconciliation)
4823
6267
  */
4824
- pageSize: number;
6268
+ region: 'cn' | 'us' | 'de' | 'gb';
6269
+ requestBody: ComputeReconciliationDto;
4825
6270
  };
4826
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
4827
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
4828
- type PropertyControllerGetAllResponse = unknown;
4829
- type PropertyControllerGetByKeyData = {
6271
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
6272
+ type ReconciliationControllerAssertData = {
4830
6273
  /**
4831
- * Property key
6274
+ * Region code for tenant context (decorative for reconciliation)
4832
6275
  */
4833
- key: string;
6276
+ region: 'cn' | 'us' | 'de' | 'gb';
6277
+ requestBody: AssertReconciliationDto;
4834
6278
  };
4835
- type PropertyControllerGetByKeyResponse = unknown;
4836
- type PropertyControllerUpdateData = {
6279
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
6280
+ type ReconciliationControllerPadData = {
4837
6281
  /**
4838
- * Property key
6282
+ * Region code for tenant context (decorative for reconciliation)
4839
6283
  */
4840
- key: string;
4841
- requestBody: UpdatePropertyDto;
6284
+ region: 'cn' | 'us' | 'de' | 'gb';
6285
+ requestBody: PadReconciliationDto;
4842
6286
  };
4843
- type PropertyControllerUpdateResponse = unknown;
4844
- type PropertyControllerDeleteData = {
6287
+ type ReconciliationControllerPadResponse = PadResultDto;
6288
+ type ReconciliationControllerHistoryData = {
4845
6289
  /**
4846
- * Property key
6290
+ * BeanAccount id
4847
6291
  */
4848
- key: string;
6292
+ accountId: string;
6293
+ /**
6294
+ * Region code for tenant context (decorative for reconciliation)
6295
+ */
6296
+ region: 'cn' | 'us' | 'de' | 'gb';
4849
6297
  };
4850
- type PropertyControllerDeleteResponse = void;
6298
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
4851
6299
  type ExportControllerExportBeancountResponse = unknown;
4852
6300
  type FileImportControllerImportFileData = {
4853
6301
  /**
@@ -4927,47 +6375,15 @@ type ImporterConfigControllerResetConfigData = {
4927
6375
  region: 'cn' | 'us' | 'de' | 'gb';
4928
6376
  };
4929
6377
  type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
4930
- type PlatformControllerFindAllResponse = unknown;
4931
- type PlatformControllerCreateData = {
4932
- requestBody: CreatePlatformDto;
4933
- };
4934
- type PlatformControllerCreateResponse = unknown;
4935
- type PlatformControllerGetPlatformListResponse = unknown;
4936
- type PlatformControllerMatchPlatformsData = {
4937
- /**
4938
- * Search query — Chinese name, English name, or abbreviation
4939
- */
4940
- q: string;
4941
- /**
4942
- * Region code for category override lookup
4943
- */
4944
- region?: string;
4945
- };
4946
- type PlatformControllerMatchPlatformsResponse = unknown;
4947
- type PlatformControllerUpdateData = {
4948
- /**
4949
- * Platform ID
4950
- */
4951
- id: string;
4952
- requestBody: UpdatePlatformDto;
4953
- };
4954
- type PlatformControllerUpdateResponse = unknown;
4955
- type PlatformControllerDeleteData = {
4956
- /**
4957
- * Platform ID
4958
- */
4959
- id: string;
4960
- };
4961
- type PlatformControllerDeleteResponse = void;
4962
6378
  type ProviderSyncControllerSyncData = {
4963
6379
  /**
4964
6380
  * Provider name
4965
6381
  */
4966
6382
  providerName: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
4967
6383
  /**
4968
- * Region code
6384
+ * Region code for tenant context
4969
6385
  */
4970
- region: unknown;
6386
+ region: 'cn' | 'us' | 'de' | 'gb';
4971
6387
  requestBody: ProviderSyncDto;
4972
6388
  };
4973
6389
  type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
@@ -4989,6 +6405,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
4989
6405
  region: 'cn' | 'us' | 'de' | 'gb';
4990
6406
  };
4991
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;
4992
6440
  type TelemetryControllerReportTelemetryData = {
4993
6441
  /**
4994
6442
  * Region code for tenant context
@@ -4997,6 +6445,25 @@ type TelemetryControllerReportTelemetryData = {
4997
6445
  requestBody: ParserTelemetryReportDto;
4998
6446
  };
4999
6447
  type TelemetryControllerReportTelemetryResponse = unknown;
6448
+ type TelemetryControllerReportCoverageMissData = {
6449
+ /**
6450
+ * Region code for tenant context
6451
+ */
6452
+ region: 'cn' | 'us' | 'de' | 'gb';
6453
+ requestBody: UncoveredFormatMissDto;
6454
+ };
6455
+ type TelemetryControllerReportCoverageMissResponse = unknown;
6456
+ type TelemetryControllerGetCoverageMetricsData = {
6457
+ /**
6458
+ * Region code for tenant context
6459
+ */
6460
+ region: 'cn' | 'us' | 'de' | 'gb';
6461
+ /**
6462
+ * Top-N uncovered formats (default 10)
6463
+ */
6464
+ topN?: unknown;
6465
+ };
6466
+ type TelemetryControllerGetCoverageMetricsResponse = unknown;
5000
6467
  type NlpControllerProcessNaturalLanguageData = {
5001
6468
  /**
5002
6469
  * Region code for tenant context
@@ -5030,6 +6497,38 @@ type NlpControllerGetSessionData = {
5030
6497
  sessionId?: string;
5031
6498
  };
5032
6499
  type NlpControllerGetSessionResponse = unknown;
6500
+ type PlatformControllerFindAllResponse = unknown;
6501
+ type PlatformControllerCreateData = {
6502
+ requestBody: CreatePlatformDto;
6503
+ };
6504
+ type PlatformControllerCreateResponse = unknown;
6505
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6506
+ type PlatformControllerMatchPlatformsData = {
6507
+ /**
6508
+ * Search query — Chinese name, English name, or abbreviation
6509
+ */
6510
+ q: string;
6511
+ /**
6512
+ * Region code for category override lookup
6513
+ */
6514
+ region?: string;
6515
+ };
6516
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6517
+ type PlatformControllerUpdateData = {
6518
+ /**
6519
+ * Platform ID
6520
+ */
6521
+ id: string;
6522
+ requestBody: UpdatePlatformDto;
6523
+ };
6524
+ type PlatformControllerUpdateResponse = unknown;
6525
+ type PlatformControllerDeleteData = {
6526
+ /**
6527
+ * Platform ID
6528
+ */
6529
+ id: string;
6530
+ };
6531
+ type PlatformControllerDeleteResponse = void;
5033
6532
  type DashboardControllerGetNetWorthData = {
5034
6533
  /**
5035
6534
  * Date for balance calculation (ISO 8601 format)
@@ -5042,6 +6541,10 @@ type DashboardControllerGetNetWorthData = {
5042
6541
  };
5043
6542
  type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
5044
6543
  type DashboardControllerGetAccountsData = {
6544
+ /**
6545
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
6546
+ */
6547
+ accountId?: string;
5045
6548
  /**
5046
6549
  * Date for balance calculation (ISO 8601 format)
5047
6550
  */
@@ -5049,13 +6552,13 @@ type DashboardControllerGetAccountsData = {
5049
6552
  /**
5050
6553
  * Grouping strategy
5051
6554
  */
5052
- groupBy?: 'platform' | 'assetClass';
6555
+ groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
5053
6556
  /**
5054
6557
  * Region code for tenant context
5055
6558
  */
5056
6559
  region: 'cn' | 'us' | 'de' | 'gb';
5057
6560
  };
5058
- type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto;
6561
+ type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
5059
6562
  type DashboardControllerGetCashFlowData = {
5060
6563
  /**
5061
6564
  * Period in YYYY-MM format
@@ -5067,13 +6570,17 @@ type DashboardControllerGetCashFlowData = {
5067
6570
  region: 'cn' | 'us' | 'de' | 'gb';
5068
6571
  };
5069
6572
  type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
5070
- type ReportingControllerGetPortfolioTrendsData = {
6573
+ type DashboardControllerGetExpensesData = {
5071
6574
  /**
5072
- * Data granularity
6575
+ * Account root to aggregate (expense → ^Expenses:, income → ^Income:)
5073
6576
  */
5074
- granularity?: 'day' | 'week' | 'month';
6577
+ flow?: 'expense' | 'income';
5075
6578
  /**
5076
- * Time period
6579
+ * Grouping strategy
6580
+ */
6581
+ groupBy?: 'category';
6582
+ /**
6583
+ * Time window (1m = current calendar month)
5077
6584
  */
5078
6585
  period?: '1m' | '3m' | '6m' | '1y';
5079
6586
  /**
@@ -5081,31 +6588,31 @@ type ReportingControllerGetPortfolioTrendsData = {
5081
6588
  */
5082
6589
  region: 'cn' | 'us' | 'de' | 'gb';
5083
6590
  };
5084
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5085
- type ReportingControllerGenerateSnapshotData = {
6591
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6592
+ type HoldingPnlControllerGetHoldingPnlData = {
5086
6593
  /**
5087
- * Region code for tenant context
6594
+ * Scope to a single account
5088
6595
  */
5089
- region: 'cn' | 'us' | 'de' | 'gb';
6596
+ accountId?: string;
5090
6597
  /**
5091
- * Optional date (defaults to today)
6598
+ * As-of date (ISO 8601), defaults to today
5092
6599
  */
5093
- requestBody: GenerateSnapshotBody;
5094
- };
5095
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5096
- 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';
5097
6605
  /**
5098
6606
  * Region code for tenant context
5099
6607
  */
5100
6608
  region: 'cn' | 'us' | 'de' | 'gb';
5101
- requestBody: BackfillSnapshotsBody;
5102
6609
  };
5103
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6610
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5104
6611
  type ApiKeysControllerCreateApiKeyResponse = unknown;
5105
6612
  type AuthControllerAccessTokenLoginData = {
5106
6613
  requestBody: AnonymousLoginDto;
5107
6614
  };
5108
- type AuthControllerAccessTokenLoginResponse = unknown;
6615
+ type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
5109
6616
  type CacheControllerFlushCacheResponse = unknown;
5110
6617
  type ExchangeRateControllerGetExchangeRateData = {
5111
6618
  /**
@@ -5132,6 +6639,29 @@ type HealthControllerResetCircuitBreakerData = {
5132
6639
  type HealthControllerResetCircuitBreakerResponse = unknown;
5133
6640
  type HealthControllerGetMetricsResponse = unknown;
5134
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;
5135
6665
  type $OpenApiTs = {
5136
6666
  '/api/v1/{region}/bean/accounts': {
5137
6667
  post: {
@@ -5196,7 +6726,7 @@ type $OpenApiTs = {
5196
6726
  */
5197
6727
  404: unknown;
5198
6728
  /**
5199
- * Account has transactions and cannot be deleted
6729
+ * Account has active transactions and cannot be deleted
5200
6730
  */
5201
6731
  409: unknown;
5202
6732
  };
@@ -5240,6 +6770,25 @@ type $OpenApiTs = {
5240
6770
  };
5241
6771
  };
5242
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
+ };
5243
6792
  '/api/v1/{region}/bean/account-standards': {
5244
6793
  get: {
5245
6794
  req: AccountStandardsControllerGetTemplatesData;
@@ -5322,17 +6871,40 @@ type $OpenApiTs = {
5322
6871
  req: TransactionControllerCreateBatchData;
5323
6872
  res: {
5324
6873
  /**
5325
- * Transactions processed
6874
+ * Transactions processed
6875
+ */
6876
+ 201: BatchTransactionResponseDto;
6877
+ /**
6878
+ * Invalid input
6879
+ */
6880
+ 400: ApiProblemResponseDto;
6881
+ /**
6882
+ * Authentication required
6883
+ */
6884
+ 401: ApiProblemResponseDto;
6885
+ };
6886
+ };
6887
+ };
6888
+ '/api/v1/{region}/bean/transactions/{id}/correct': {
6889
+ post: {
6890
+ req: TransactionControllerCorrectData;
6891
+ res: {
6892
+ /**
6893
+ * Corrected transaction created
5326
6894
  */
5327
- 201: BatchTransactionResponseDto;
6895
+ 201: TransactionDetailDto;
5328
6896
  /**
5329
- * Invalid input
6897
+ * Original transaction not found
5330
6898
  */
5331
- 400: ApiProblemResponseDto;
6899
+ 404: ApiProblemResponseDto;
5332
6900
  /**
5333
- * Authentication required
6901
+ * Original no longer ACTIVE (concurrent modification)
5334
6902
  */
5335
- 401: ApiProblemResponseDto;
6903
+ 409: ApiProblemResponseDto;
6904
+ /**
6905
+ * Pipeline validation failed (does not balance, invalid accounts)
6906
+ */
6907
+ 422: ApiProblemResponseDto;
5336
6908
  };
5337
6909
  };
5338
6910
  };
@@ -5720,358 +7292,700 @@ type $OpenApiTs = {
5720
7292
  */
5721
7293
  200: PayeeProfileResponseDto;
5722
7294
  /**
5723
- * Admin access required
7295
+ * Admin access required
7296
+ */
7297
+ 403: ApiProblemResponseDto;
7298
+ /**
7299
+ * Payee profile not found
7300
+ */
7301
+ 404: ApiProblemResponseDto;
7302
+ };
7303
+ };
7304
+ };
7305
+ '/api/v1/{region}/bean/commodities': {
7306
+ post: {
7307
+ req: CommodityControllerCreateData;
7308
+ res: {
7309
+ /**
7310
+ * Commodity created successfully
7311
+ */
7312
+ 201: CommodityResponseDto;
7313
+ /**
7314
+ * Invalid input data
7315
+ */
7316
+ 400: ApiProblemResponseDto;
7317
+ /**
7318
+ * Commodity already exists
7319
+ */
7320
+ 409: ApiProblemResponseDto;
7321
+ };
7322
+ };
7323
+ get: {
7324
+ req: CommodityControllerFindAllData;
7325
+ res: {
7326
+ /**
7327
+ * Commodities retrieved successfully
7328
+ */
7329
+ 200: CommodityListResponseDto;
7330
+ };
7331
+ };
7332
+ };
7333
+ '/api/v1/{region}/bean/commodities/{symbol}': {
7334
+ get: {
7335
+ req: CommodityControllerFindOneData;
7336
+ res: {
7337
+ /**
7338
+ * Commodity retrieved successfully
7339
+ */
7340
+ 200: CommodityResponseDto;
7341
+ /**
7342
+ * Commodity not found
7343
+ */
7344
+ 404: ApiProblemResponseDto;
7345
+ };
7346
+ };
7347
+ put: {
7348
+ req: CommodityControllerUpdateData;
7349
+ res: {
7350
+ /**
7351
+ * Commodity updated successfully
7352
+ */
7353
+ 200: CommodityResponseDto;
7354
+ /**
7355
+ * Invalid input data
7356
+ */
7357
+ 400: ApiProblemResponseDto;
7358
+ /**
7359
+ * Commodity not found
7360
+ */
7361
+ 404: ApiProblemResponseDto;
7362
+ };
7363
+ };
7364
+ delete: {
7365
+ req: CommodityControllerDeleteData;
7366
+ res: {
7367
+ /**
7368
+ * Commodity deleted successfully
7369
+ */
7370
+ 204: void;
7371
+ /**
7372
+ * Commodity not found
7373
+ */
7374
+ 404: ApiProblemResponseDto;
7375
+ };
7376
+ };
7377
+ };
7378
+ '/api/v1/{region}/bean/commodities/{symbol}/ensure': {
7379
+ post: {
7380
+ req: CommodityControllerGetOrCreateData;
7381
+ res: {
7382
+ /**
7383
+ * Commodity retrieved or created
7384
+ */
7385
+ 200: CommodityResponseDto;
7386
+ };
7387
+ };
7388
+ };
7389
+ '/api/v1/{region}/bean/commodities/bulk': {
7390
+ post: {
7391
+ req: CommodityControllerBulkCreateData;
7392
+ res: {
7393
+ /**
7394
+ * Commodities created successfully
7395
+ */
7396
+ 201: Array<CommodityResponseDto>;
7397
+ };
7398
+ };
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
+ };
7484
+ '/api/v1/{region}/bean/recurring-rules': {
7485
+ post: {
7486
+ req: RecurringRuleControllerCreateData;
7487
+ res: {
7488
+ /**
7489
+ * Rule created successfully
7490
+ */
7491
+ 201: RecurringRuleResponseDto;
7492
+ /**
7493
+ * Invalid input data (e.g., autoCreate without accounts)
7494
+ */
7495
+ 400: unknown;
7496
+ /**
7497
+ * Rule with same name already exists
7498
+ */
7499
+ 409: unknown;
7500
+ };
7501
+ };
7502
+ get: {
7503
+ req: RecurringRuleControllerFindAllData;
7504
+ res: {
7505
+ /**
7506
+ * Rules retrieved successfully
7507
+ */
7508
+ 200: Array<RecurringRuleResponseDto>;
7509
+ };
7510
+ };
7511
+ };
7512
+ '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
7513
+ post: {
7514
+ req: RecurringRuleControllerCreateFromTransactionData;
7515
+ res: {
7516
+ /**
7517
+ * Rule created successfully
7518
+ */
7519
+ 201: RecurringRuleResponseDto;
7520
+ /**
7521
+ * Transaction not found
7522
+ */
7523
+ 404: ApiProblemResponseDto;
7524
+ /**
7525
+ * Rule with same name already exists or transaction already linked
7526
+ */
7527
+ 409: ApiProblemResponseDto;
7528
+ };
7529
+ };
7530
+ };
7531
+ '/api/v1/{region}/bean/recurring-rules/{id}': {
7532
+ get: {
7533
+ req: RecurringRuleControllerFindOneData;
7534
+ res: {
7535
+ /**
7536
+ * Rule retrieved successfully
7537
+ */
7538
+ 200: RecurringRuleResponseDto;
7539
+ /**
7540
+ * Rule not found
7541
+ */
7542
+ 404: unknown;
7543
+ };
7544
+ };
7545
+ patch: {
7546
+ req: RecurringRuleControllerUpdateData;
7547
+ res: {
7548
+ /**
7549
+ * Rule updated successfully
7550
+ */
7551
+ 200: RecurringRuleResponseDto;
7552
+ /**
7553
+ * Invalid input data
7554
+ */
7555
+ 400: unknown;
7556
+ /**
7557
+ * Rule not found
7558
+ */
7559
+ 404: unknown;
7560
+ };
7561
+ };
7562
+ delete: {
7563
+ req: RecurringRuleControllerDeleteData;
7564
+ res: {
7565
+ /**
7566
+ * Rule deleted successfully
5724
7567
  */
5725
- 403: ApiProblemResponseDto;
7568
+ 204: void;
5726
7569
  /**
5727
- * Payee profile not found
7570
+ * Rule not found
5728
7571
  */
5729
- 404: ApiProblemResponseDto;
7572
+ 404: unknown;
5730
7573
  };
5731
7574
  };
5732
7575
  };
5733
- '/api/v1/{region}/bean/commodities': {
5734
- post: {
5735
- req: CommodityControllerCreateData;
7576
+ '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
7577
+ get: {
7578
+ req: RecurringRuleControllerGetWithStatsData;
5736
7579
  res: {
5737
7580
  /**
5738
- * Commodity created successfully
7581
+ * Rule with stats retrieved successfully
5739
7582
  */
5740
- 201: CommodityResponseDto;
7583
+ 200: RecurringRuleWithStatsResponseDto;
5741
7584
  /**
5742
- * Invalid input data
7585
+ * Rule not found
5743
7586
  */
5744
- 400: ApiProblemResponseDto;
7587
+ 404: unknown;
7588
+ };
7589
+ };
7590
+ };
7591
+ '/api/v1/{region}/bean/expected-transactions': {
7592
+ get: {
7593
+ req: ExpectedTransactionControllerFindAllData;
7594
+ res: {
5745
7595
  /**
5746
- * Commodity already exists
7596
+ * Expected transactions retrieved successfully
5747
7597
  */
5748
- 409: ApiProblemResponseDto;
7598
+ 200: ExpectedTransactionListResponseDto;
5749
7599
  };
5750
7600
  };
7601
+ };
7602
+ '/api/v1/{region}/bean/expected-transactions/overdue': {
5751
7603
  get: {
5752
- req: CommodityControllerFindAllData;
7604
+ req: ExpectedTransactionControllerFindOverdueData;
5753
7605
  res: {
5754
7606
  /**
5755
- * Commodities retrieved successfully
7607
+ * Overdue transactions retrieved successfully
5756
7608
  */
5757
- 200: CommodityListResponseDto;
7609
+ 200: ExpectedTransactionListResponseDto;
5758
7610
  };
5759
7611
  };
5760
7612
  };
5761
- '/api/v1/{region}/bean/commodities/{symbol}': {
7613
+ '/api/v1/{region}/bean/expected-transactions/{id}': {
5762
7614
  get: {
5763
- req: CommodityControllerFindOneData;
7615
+ req: ExpectedTransactionControllerFindOneData;
5764
7616
  res: {
5765
7617
  /**
5766
- * Commodity retrieved successfully
7618
+ * Expected transaction retrieved successfully
5767
7619
  */
5768
- 200: CommodityResponseDto;
7620
+ 200: ExpectedTransactionResponseDto;
5769
7621
  /**
5770
- * Commodity not found
7622
+ * Expected transaction not found
5771
7623
  */
5772
- 404: ApiProblemResponseDto;
7624
+ 404: unknown;
5773
7625
  };
5774
7626
  };
5775
- put: {
5776
- req: CommodityControllerUpdateData;
7627
+ };
7628
+ '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
7629
+ post: {
7630
+ req: ExpectedTransactionControllerSkipData;
5777
7631
  res: {
5778
7632
  /**
5779
- * Commodity updated successfully
7633
+ * Expected transaction skipped successfully
5780
7634
  */
5781
- 200: CommodityResponseDto;
7635
+ 200: ExpectedTransactionResponseDto;
5782
7636
  /**
5783
- * Invalid input data
7637
+ * Cannot skip - not in PENDING status
5784
7638
  */
5785
- 400: ApiProblemResponseDto;
7639
+ 400: unknown;
5786
7640
  /**
5787
- * Commodity not found
7641
+ * Expected transaction not found
5788
7642
  */
5789
- 404: ApiProblemResponseDto;
7643
+ 404: unknown;
5790
7644
  };
5791
7645
  };
5792
7646
  delete: {
5793
- req: CommodityControllerDeleteData;
7647
+ req: ExpectedTransactionControllerUndoSkipData;
5794
7648
  res: {
5795
7649
  /**
5796
- * Commodity deleted successfully
7650
+ * Skip undone successfully
5797
7651
  */
5798
- 204: void;
7652
+ 200: ExpectedTransactionResponseDto;
5799
7653
  /**
5800
- * Commodity not found
7654
+ * Cannot undo - not in SKIPPED status
5801
7655
  */
5802
- 404: ApiProblemResponseDto;
7656
+ 400: unknown;
7657
+ /**
7658
+ * Expected transaction not found
7659
+ */
7660
+ 404: unknown;
5803
7661
  };
5804
7662
  };
5805
7663
  };
5806
- '/api/v1/{region}/bean/commodities/{symbol}/ensure': {
7664
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
5807
7665
  post: {
5808
- req: CommodityControllerGetOrCreateData;
7666
+ req: ExpectedTransactionControllerConfirmMatchData;
5809
7667
  res: {
5810
7668
  /**
5811
- * Commodity retrieved or created
7669
+ * Match confirmed successfully
5812
7670
  */
5813
- 200: CommodityResponseDto;
7671
+ 200: unknown;
7672
+ /**
7673
+ * Cannot match - not in PENDING status
7674
+ */
7675
+ 400: unknown;
7676
+ /**
7677
+ * Expected or actual transaction not found
7678
+ */
7679
+ 404: unknown;
7680
+ /**
7681
+ * Actual transaction already matched to another rule
7682
+ */
7683
+ 409: unknown;
5814
7684
  };
5815
7685
  };
5816
- };
5817
- '/api/v1/{region}/bean/commodities/bulk': {
5818
- post: {
5819
- req: CommodityControllerBulkCreateData;
7686
+ delete: {
7687
+ req: ExpectedTransactionControllerUnmatchData;
5820
7688
  res: {
5821
7689
  /**
5822
- * Commodities created successfully
7690
+ * Match removed successfully
5823
7691
  */
5824
- 201: Array<CommodityResponseDto>;
7692
+ 200: unknown;
7693
+ /**
7694
+ * Cannot unmatch - not in COMPLETED status
7695
+ */
7696
+ 400: unknown;
7697
+ /**
7698
+ * Expected transaction not found
7699
+ */
7700
+ 404: unknown;
5825
7701
  };
5826
7702
  };
5827
7703
  };
5828
- '/api/v1/{region}/bean/recurring-rules': {
7704
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
5829
7705
  post: {
5830
- req: RecurringRuleControllerCreateData;
7706
+ req: ExpectedTransactionControllerEnterNowData;
5831
7707
  res: {
5832
7708
  /**
5833
- * Rule created successfully
7709
+ * Transaction created successfully
5834
7710
  */
5835
- 201: RecurringRuleResponseDto;
7711
+ 201: unknown;
5836
7712
  /**
5837
- * Invalid input data (e.g., autoCreate without accounts)
7713
+ * Cannot enter - not in PENDING status or missing accounts
5838
7714
  */
5839
7715
  400: unknown;
5840
7716
  /**
5841
- * Rule with same name already exists
7717
+ * Expected transaction or accounts not found
5842
7718
  */
5843
- 409: unknown;
7719
+ 404: unknown;
5844
7720
  };
5845
7721
  };
7722
+ };
7723
+ '/api/v1/{region}/bean/recurring/forecast': {
5846
7724
  get: {
5847
- req: RecurringRuleControllerFindAllData;
7725
+ req: ForecastControllerGetForecastData;
5848
7726
  res: {
5849
7727
  /**
5850
- * Rules retrieved successfully
7728
+ * Forecast retrieved successfully
5851
7729
  */
5852
- 200: Array<RecurringRuleResponseDto>;
7730
+ 200: ForecastResponseDto;
5853
7731
  };
5854
7732
  };
5855
7733
  };
5856
- '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
5857
- post: {
5858
- req: RecurringRuleControllerCreateFromTransactionData;
7734
+ '/api/v1/{region}/reporting/portfolio/trends': {
7735
+ get: {
7736
+ req: ReportingControllerGetPortfolioTrendsData;
5859
7737
  res: {
5860
7738
  /**
5861
- * Rule created successfully
7739
+ * Trends retrieved successfully
5862
7740
  */
5863
- 201: RecurringRuleResponseDto;
7741
+ 200: PortfolioTrendsResponseDto;
5864
7742
  /**
5865
- * Transaction not found
7743
+ * User not authenticated
5866
7744
  */
5867
- 404: ApiProblemResponseDto;
7745
+ 401: unknown;
7746
+ };
7747
+ };
7748
+ };
7749
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7750
+ get: {
7751
+ req: ReportingControllerGetCashFlowTrendsData;
7752
+ res: {
5868
7753
  /**
5869
- * Rule with same name already exists or transaction already linked
7754
+ * Cash-flow trends retrieved successfully
5870
7755
  */
5871
- 409: ApiProblemResponseDto;
7756
+ 200: CashFlowTrendsResponseDto;
7757
+ /**
7758
+ * User not authenticated
7759
+ */
7760
+ 401: unknown;
5872
7761
  };
5873
7762
  };
5874
7763
  };
5875
- '/api/v1/{region}/bean/recurring-rules/{id}': {
5876
- get: {
5877
- req: RecurringRuleControllerFindOneData;
7764
+ '/api/v1/{region}/reporting/snapshots/generate': {
7765
+ post: {
7766
+ req: ReportingControllerGenerateSnapshotData;
5878
7767
  res: {
5879
7768
  /**
5880
- * Rule retrieved successfully
7769
+ * Snapshot generated successfully
5881
7770
  */
5882
- 200: RecurringRuleResponseDto;
7771
+ 200: GenerateSnapshotResponse;
5883
7772
  /**
5884
- * Rule not found
7773
+ * Invalid date format
5885
7774
  */
5886
- 404: unknown;
7775
+ 400: unknown;
7776
+ /**
7777
+ * User not authenticated
7778
+ */
7779
+ 401: unknown;
5887
7780
  };
5888
7781
  };
5889
- patch: {
5890
- req: RecurringRuleControllerUpdateData;
7782
+ };
7783
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7784
+ post: {
7785
+ req: ReportingControllerBackfillSnapshotsData;
5891
7786
  res: {
5892
7787
  /**
5893
- * Rule updated successfully
7788
+ * Backfill completed successfully
5894
7789
  */
5895
- 200: RecurringRuleResponseDto;
7790
+ 200: BackfillSnapshotsResponse;
5896
7791
  /**
5897
- * Invalid input data
7792
+ * Invalid date format or range
5898
7793
  */
5899
7794
  400: unknown;
5900
7795
  /**
5901
- * Rule not found
7796
+ * User not authenticated
5902
7797
  */
5903
- 404: unknown;
7798
+ 401: unknown;
7799
+ /**
7800
+ * Backfill already in progress for this user
7801
+ */
7802
+ 409: unknown;
5904
7803
  };
5905
7804
  };
7805
+ };
7806
+ '/api/v1/users': {
5906
7807
  delete: {
5907
- req: RecurringRuleControllerDeleteData;
7808
+ req: UserControllerDeleteOwnUserData;
5908
7809
  res: {
5909
7810
  /**
5910
- * Rule deleted successfully
7811
+ * User deleted successfully
5911
7812
  */
5912
7813
  204: void;
5913
7814
  /**
5914
- * Rule not found
7815
+ * Invalid access token
5915
7816
  */
5916
- 404: unknown;
7817
+ 403: unknown;
5917
7818
  };
5918
7819
  };
5919
- };
5920
- '/api/v1/{region}/bean/recurring-rules/{id}/stats': {
5921
7820
  get: {
5922
- req: RecurringRuleControllerGetWithStatsData;
7821
+ req: UserControllerGetUserData;
5923
7822
  res: {
5924
7823
  /**
5925
- * Rule with stats retrieved successfully
7824
+ * User retrieved successfully
5926
7825
  */
5927
- 200: RecurringRuleWithStatsResponseDto;
7826
+ 200: unknown;
7827
+ };
7828
+ };
7829
+ post: {
7830
+ req: UserControllerSignupUserData;
7831
+ res: {
5928
7832
  /**
5929
- * Rule not found
7833
+ * User created successfully
5930
7834
  */
5931
- 404: unknown;
7835
+ 201: SignupResponseDto;
7836
+ /**
7837
+ * Invalid Turnstile token (when Turnstile is enabled)
7838
+ */
7839
+ 400: unknown;
7840
+ /**
7841
+ * User signup is disabled
7842
+ */
7843
+ 403: unknown;
5932
7844
  };
5933
7845
  };
5934
7846
  };
5935
- '/api/v1/{region}/bean/expected-transactions': {
5936
- get: {
5937
- req: ExpectedTransactionControllerFindAllData;
7847
+ '/api/v1/users/{id}': {
7848
+ delete: {
7849
+ req: UserControllerDeleteUserData;
5938
7850
  res: {
5939
7851
  /**
5940
- * Expected transactions retrieved successfully
7852
+ * User deleted successfully
5941
7853
  */
5942
- 200: ExpectedTransactionListResponseDto;
7854
+ 204: void;
7855
+ /**
7856
+ * Cannot delete own account or insufficient permissions
7857
+ */
7858
+ 403: unknown;
5943
7859
  };
5944
7860
  };
5945
7861
  };
5946
- '/api/v1/{region}/bean/expected-transactions/overdue': {
7862
+ '/api/v1/users/{id}/info': {
5947
7863
  get: {
5948
- req: ExpectedTransactionControllerFindOverdueData;
7864
+ req: UserControllerGetUserInfoData;
5949
7865
  res: {
5950
7866
  /**
5951
- * Overdue transactions retrieved successfully
7867
+ * User info retrieved successfully
5952
7868
  */
5953
- 200: ExpectedTransactionListResponseDto;
7869
+ 200: unknown;
7870
+ /**
7871
+ * Cannot access other user info without admin permission
7872
+ */
7873
+ 403: unknown;
5954
7874
  };
5955
7875
  };
5956
7876
  };
5957
- '/api/v1/{region}/bean/expected-transactions/{id}': {
5958
- get: {
5959
- req: ExpectedTransactionControllerFindOneData;
7877
+ '/api/v1/users/setting': {
7878
+ put: {
7879
+ req: UserControllerUpdateUserSettingData;
5960
7880
  res: {
5961
7881
  /**
5962
- * Expected transaction retrieved successfully
7882
+ * Settings updated successfully
5963
7883
  */
5964
- 200: ExpectedTransactionResponseDto;
7884
+ 200: unknown;
5965
7885
  /**
5966
- * Expected transaction not found
7886
+ * Insufficient permissions
5967
7887
  */
5968
- 404: unknown;
7888
+ 403: unknown;
5969
7889
  };
5970
7890
  };
5971
7891
  };
5972
- '/api/v1/{region}/bean/expected-transactions/{id}/skip': {
5973
- post: {
5974
- req: ExpectedTransactionControllerSkipData;
7892
+ '/api/v1/users/settings-by-page': {
7893
+ get: {
7894
+ req: UserControllerGetAllUserSettingsByPageData;
5975
7895
  res: {
5976
7896
  /**
5977
- * Expected transaction skipped successfully
5978
- */
5979
- 200: ExpectedTransactionResponseDto;
5980
- /**
5981
- * Cannot skip - not in PENDING status
7897
+ * Settings list retrieved successfully
5982
7898
  */
5983
- 400: unknown;
7899
+ 200: unknown;
7900
+ };
7901
+ };
7902
+ };
7903
+ '/api/v1/users/asset-liability-summary': {
7904
+ get: {
7905
+ res: {
5984
7906
  /**
5985
- * Expected transaction not found
7907
+ * Summary retrieved successfully
5986
7908
  */
5987
- 404: unknown;
7909
+ 200: unknown;
5988
7910
  };
5989
7911
  };
5990
- delete: {
5991
- req: ExpectedTransactionControllerUndoSkipData;
7912
+ };
7913
+ '/api/v1/admin/properties': {
7914
+ get: {
5992
7915
  res: {
5993
7916
  /**
5994
- * Skip undone successfully
7917
+ * Properties retrieved successfully
5995
7918
  */
5996
- 200: ExpectedTransactionResponseDto;
7919
+ 200: unknown;
5997
7920
  /**
5998
- * Cannot undo - not in SKIPPED status
7921
+ * Unauthorized
5999
7922
  */
6000
- 400: unknown;
7923
+ 401: unknown;
6001
7924
  /**
6002
- * Expected transaction not found
7925
+ * Forbidden - insufficient permissions
6003
7926
  */
6004
- 404: unknown;
7927
+ 403: unknown;
6005
7928
  };
6006
7929
  };
6007
7930
  };
6008
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
6009
- post: {
6010
- req: ExpectedTransactionControllerConfirmMatchData;
7931
+ '/api/v1/admin/properties/{key}': {
7932
+ get: {
7933
+ req: PropertyControllerGetByKeyData;
6011
7934
  res: {
6012
7935
  /**
6013
- * Match confirmed successfully
7936
+ * Property retrieved successfully
6014
7937
  */
6015
7938
  200: unknown;
6016
7939
  /**
6017
- * Cannot match - not in PENDING status
7940
+ * Unauthorized
6018
7941
  */
6019
- 400: unknown;
7942
+ 401: unknown;
6020
7943
  /**
6021
- * Expected or actual transaction not found
7944
+ * Forbidden - insufficient permissions
6022
7945
  */
6023
- 404: unknown;
7946
+ 403: unknown;
6024
7947
  /**
6025
- * Actual transaction already matched to another rule
7948
+ * Property not found
6026
7949
  */
6027
- 409: unknown;
7950
+ 404: unknown;
6028
7951
  };
6029
7952
  };
6030
- delete: {
6031
- req: ExpectedTransactionControllerUnmatchData;
7953
+ put: {
7954
+ req: PropertyControllerUpdateData;
6032
7955
  res: {
6033
7956
  /**
6034
- * Match removed successfully
7957
+ * Property updated successfully
6035
7958
  */
6036
7959
  200: unknown;
6037
7960
  /**
6038
- * Cannot unmatch - not in COMPLETED status
7961
+ * Unauthorized
6039
7962
  */
6040
- 400: unknown;
7963
+ 401: unknown;
6041
7964
  /**
6042
- * Expected transaction not found
7965
+ * Forbidden - insufficient permissions
6043
7966
  */
6044
- 404: unknown;
7967
+ 403: unknown;
6045
7968
  };
6046
7969
  };
6047
- };
6048
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
6049
- post: {
6050
- req: ExpectedTransactionControllerEnterNowData;
7970
+ delete: {
7971
+ req: PropertyControllerDeleteData;
6051
7972
  res: {
6052
7973
  /**
6053
- * Transaction created successfully
7974
+ * Property deleted successfully
6054
7975
  */
6055
- 201: unknown;
7976
+ 204: void;
6056
7977
  /**
6057
- * Cannot enter - not in PENDING status or missing accounts
7978
+ * Unauthorized
6058
7979
  */
6059
- 400: unknown;
7980
+ 401: unknown;
6060
7981
  /**
6061
- * Expected transaction or accounts not found
7982
+ * Forbidden - insufficient permissions
6062
7983
  */
6063
- 404: unknown;
6064
- };
6065
- };
6066
- };
6067
- '/api/v1/{region}/bean/recurring/forecast': {
6068
- get: {
6069
- req: ForecastControllerGetForecastData;
6070
- res: {
7984
+ 403: unknown;
6071
7985
  /**
6072
- * Forecast retrieved successfully
7986
+ * Property not found
6073
7987
  */
6074
- 200: ForecastResponseDto;
7988
+ 404: unknown;
6075
7989
  };
6076
7990
  };
6077
7991
  };
@@ -6283,187 +8197,176 @@ type $OpenApiTs = {
6283
8197
  };
6284
8198
  };
6285
8199
  };
6286
- '/api/v1/users': {
6287
- delete: {
6288
- req: UserControllerDeleteOwnUserData;
8200
+ '/api/v1/{region}/bean/events': {
8201
+ post: {
8202
+ req: EventControllerCreateData;
6289
8203
  res: {
6290
8204
  /**
6291
- * User deleted successfully
8205
+ * Life event created successfully
6292
8206
  */
6293
- 204: void;
8207
+ 201: EventResponseDto;
6294
8208
  /**
6295
- * Invalid access token
8209
+ * Life event already exists for this (userId, type, date) combination
6296
8210
  */
6297
- 403: unknown;
8211
+ 409: unknown;
6298
8212
  };
6299
8213
  };
6300
8214
  get: {
6301
- req: UserControllerGetUserData;
8215
+ req: EventControllerFindAllData;
6302
8216
  res: {
6303
8217
  /**
6304
- * User retrieved successfully
8218
+ * Life events retrieved successfully
6305
8219
  */
6306
- 200: unknown;
8220
+ 200: EventListResponseDto;
6307
8221
  };
6308
8222
  };
6309
- post: {
6310
- req: UserControllerSignupUserData;
8223
+ };
8224
+ '/api/v1/{region}/bean/events/{id}': {
8225
+ get: {
8226
+ req: EventControllerFindOneData;
6311
8227
  res: {
6312
8228
  /**
6313
- * User created successfully
6314
- */
6315
- 201: unknown;
6316
- /**
6317
- * Invalid Turnstile token (when Turnstile is enabled)
8229
+ * Life event retrieved successfully
6318
8230
  */
6319
- 400: unknown;
8231
+ 200: EventResponseDto;
6320
8232
  /**
6321
- * User signup is disabled
8233
+ * Life event not found
6322
8234
  */
6323
- 403: unknown;
8235
+ 404: unknown;
6324
8236
  };
6325
8237
  };
6326
- };
6327
- '/api/v1/users/{id}': {
6328
- delete: {
6329
- req: UserControllerDeleteUserData;
8238
+ put: {
8239
+ req: EventControllerUpdateData;
6330
8240
  res: {
6331
8241
  /**
6332
- * User deleted successfully
6333
- */
6334
- 204: void;
6335
- /**
6336
- * Cannot delete own account or insufficient permissions
8242
+ * Life event updated successfully
6337
8243
  */
6338
- 403: unknown;
6339
- };
6340
- };
6341
- };
6342
- '/api/v1/users/{id}/info': {
6343
- get: {
6344
- req: UserControllerGetUserInfoData;
6345
- res: {
8244
+ 200: EventResponseDto;
6346
8245
  /**
6347
- * User info retrieved successfully
8246
+ * If-Match header is not a valid ISO 8601 date
6348
8247
  */
6349
- 200: unknown;
8248
+ 400: unknown;
6350
8249
  /**
6351
- * Cannot access other user info without admin permission
8250
+ * Life event not found
6352
8251
  */
6353
- 403: unknown;
6354
- };
6355
- };
6356
- };
6357
- '/api/v1/users/setting': {
6358
- put: {
6359
- req: UserControllerUpdateUserSettingData;
6360
- res: {
8252
+ 404: unknown;
6361
8253
  /**
6362
- * Settings updated successfully
8254
+ * Updated event conflicts with an existing (userId, type, date) combination
6363
8255
  */
6364
- 200: unknown;
8256
+ 409: unknown;
6365
8257
  /**
6366
- * Insufficient permissions
8258
+ * If-Match precondition failed (updatedAt mismatch)
6367
8259
  */
6368
- 403: unknown;
8260
+ 412: unknown;
6369
8261
  };
6370
8262
  };
6371
- };
6372
- '/api/v1/users/settings-by-page': {
6373
- get: {
6374
- req: UserControllerGetAllUserSettingsByPageData;
8263
+ delete: {
8264
+ req: EventControllerDeleteData;
6375
8265
  res: {
6376
8266
  /**
6377
- * Settings list retrieved successfully
8267
+ * Life event deleted successfully
6378
8268
  */
6379
- 200: unknown;
6380
- };
6381
- };
6382
- };
6383
- '/api/v1/users/asset-liability-summary': {
6384
- get: {
6385
- res: {
8269
+ 204: void;
6386
8270
  /**
6387
- * Summary retrieved successfully
8271
+ * Life event not found
6388
8272
  */
6389
- 200: unknown;
8273
+ 404: unknown;
6390
8274
  };
6391
8275
  };
6392
8276
  };
6393
- '/api/v1/admin/properties': {
8277
+ '/api/v1/{region}/bean/events/{id}/slice': {
6394
8278
  get: {
8279
+ req: EventControllerGetSliceData;
6395
8280
  res: {
6396
8281
  /**
6397
- * Properties retrieved successfully
8282
+ * Time-series sliced by the life event range
6398
8283
  */
6399
8284
  200: unknown;
6400
8285
  /**
6401
- * Unauthorized
8286
+ * accountPattern query param is empty
6402
8287
  */
6403
- 401: unknown;
8288
+ 400: unknown;
6404
8289
  /**
6405
- * Forbidden - insufficient permissions
8290
+ * Life event not found
6406
8291
  */
6407
- 403: unknown;
8292
+ 404: unknown;
6408
8293
  };
6409
8294
  };
6410
8295
  };
6411
- '/api/v1/admin/properties/{key}': {
6412
- get: {
6413
- req: PropertyControllerGetByKeyData;
8296
+ '/api/v1/{region}/bean/onboarding': {
8297
+ post: {
8298
+ req: OnboardingControllerBootstrapData;
6414
8299
  res: {
6415
8300
  /**
6416
- * Property retrieved successfully
8301
+ * Onboarding bootstrap result.
6417
8302
  */
6418
- 200: unknown;
8303
+ 201: unknown;
6419
8304
  /**
6420
- * Unauthorized
8305
+ * Invalid region/account path/duplicate paths.
6421
8306
  */
6422
- 401: unknown;
8307
+ 422: unknown;
8308
+ };
8309
+ };
8310
+ };
8311
+ '/api/v1/{region}/bean/reconciliations': {
8312
+ post: {
8313
+ req: ReconciliationControllerComputeData;
8314
+ res: {
6423
8315
  /**
6424
- * Forbidden - insufficient permissions
8316
+ * Reconciliation preview
6425
8317
  */
6426
- 403: unknown;
8318
+ 200: ReconciliationComputeResultDto;
6427
8319
  /**
6428
- * Property not found
8320
+ * Account not found
6429
8321
  */
6430
8322
  404: unknown;
6431
8323
  };
6432
8324
  };
6433
- put: {
6434
- req: PropertyControllerUpdateData;
8325
+ };
8326
+ '/api/v1/{region}/bean/reconciliations/assert': {
8327
+ post: {
8328
+ req: ReconciliationControllerAssertData;
6435
8329
  res: {
6436
8330
  /**
6437
- * Property updated successfully
6438
- */
6439
- 200: unknown;
6440
- /**
6441
- * Unauthorized
8331
+ * Balance assertion recorded
6442
8332
  */
6443
- 401: unknown;
8333
+ 201: ReconciliationRecordDto;
6444
8334
  /**
6445
- * Forbidden - insufficient permissions
8335
+ * Account not found
6446
8336
  */
6447
- 403: unknown;
8337
+ 404: unknown;
6448
8338
  };
6449
8339
  };
6450
- delete: {
6451
- req: PropertyControllerDeleteData;
8340
+ };
8341
+ '/api/v1/{region}/bean/reconciliations/pad': {
8342
+ post: {
8343
+ req: ReconciliationControllerPadData;
6452
8344
  res: {
6453
8345
  /**
6454
- * Property deleted successfully
8346
+ * Pad adjusting entry generated
6455
8347
  */
6456
- 204: void;
8348
+ 201: PadResultDto;
8349
+ /**
8350
+ * Book already within tolerance — no pad needed
8351
+ */
8352
+ 400: unknown;
6457
8353
  /**
6458
- * Unauthorized
8354
+ * Account not found
6459
8355
  */
6460
- 401: unknown;
8356
+ 404: unknown;
8357
+ };
8358
+ };
8359
+ };
8360
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8361
+ get: {
8362
+ req: ReconciliationControllerHistoryData;
8363
+ res: {
6461
8364
  /**
6462
- * Forbidden - insufficient permissions
8365
+ * Reconciliation history
6463
8366
  */
6464
- 403: unknown;
8367
+ 200: Array<ReconciliationRecordDto>;
6465
8368
  /**
6466
- * Property not found
8369
+ * Account not found
6467
8370
  */
6468
8371
  404: unknown;
6469
8372
  };
@@ -6619,143 +8522,145 @@ type $OpenApiTs = {
6619
8522
  };
6620
8523
  };
6621
8524
  };
6622
- '/api/v1/bean/platforms': {
6623
- get: {
8525
+ '/api/v1/{region}/bean/import/provider/{providerName}/sync': {
8526
+ post: {
8527
+ req: ProviderSyncControllerSyncData;
6624
8528
  res: {
6625
8529
  /**
6626
- * List of platforms with binding and account counts
8530
+ * Sync completed successfully
6627
8531
  */
6628
- 200: unknown;
6629
- };
6630
- };
6631
- post: {
6632
- req: PlatformControllerCreateData;
6633
- res: {
8532
+ 200: ProviderSyncResponseDto;
6634
8533
  /**
6635
- * Platform created successfully
8534
+ * Invalid request data
6636
8535
  */
6637
- 201: unknown;
8536
+ 400: unknown;
6638
8537
  /**
6639
- * Platform already exists
8538
+ * Missing or invalid authentication
6640
8539
  */
6641
- 409: unknown;
8540
+ 401: unknown;
8541
+ /**
8542
+ * Provider not supported
8543
+ */
8544
+ 404: unknown;
6642
8545
  };
6643
8546
  };
6644
8547
  };
6645
- '/api/v1/bean/platforms/list': {
8548
+ '/api/v1/{region}/bean/import/provider/supported': {
6646
8549
  get: {
8550
+ req: ProviderSyncControllerGetSupportedProvidersData;
6647
8551
  res: {
6648
8552
  /**
6649
- * List of platforms with user binding status
8553
+ * List of supported providers
6650
8554
  */
6651
- 200: unknown;
8555
+ 200: SupportedProvidersResponseDto;
8556
+ /**
8557
+ * Missing or invalid authentication
8558
+ */
8559
+ 401: unknown;
6652
8560
  };
6653
8561
  };
6654
8562
  };
6655
- '/api/v1/bean/platforms/match': {
8563
+ '/api/v1/{region}/bean/import/provider/{providerName}/supported': {
6656
8564
  get: {
6657
- req: PlatformControllerMatchPlatformsData;
8565
+ req: ProviderSyncControllerIsProviderSupportedData;
6658
8566
  res: {
6659
8567
  /**
6660
- * List of matching platforms with suggested segment names
8568
+ * Provider support status
6661
8569
  */
6662
8570
  200: unknown;
8571
+ /**
8572
+ * Missing or invalid authentication
8573
+ */
8574
+ 401: unknown;
6663
8575
  };
6664
8576
  };
6665
8577
  };
6666
- '/api/v1/bean/platforms/{id}': {
6667
- put: {
6668
- req: PlatformControllerUpdateData;
8578
+ '/api/v1/{region}/bean/external-account-links': {
8579
+ post: {
8580
+ req: ExternalAccountLinkControllerCreateData;
6669
8581
  res: {
6670
8582
  /**
6671
- * Platform updated successfully
8583
+ * Link created.
6672
8584
  */
6673
- 200: unknown;
8585
+ 201: ExternalAccountLinkResponseDto;
6674
8586
  /**
6675
- * Platform not found
8587
+ * beanAccountId not owned, or an active link already exists.
6676
8588
  */
6677
- 404: unknown;
8589
+ 422: unknown;
6678
8590
  };
6679
8591
  };
6680
- delete: {
6681
- req: PlatformControllerDeleteData;
8592
+ get: {
8593
+ req: ExternalAccountLinkControllerFindAllData;
6682
8594
  res: {
6683
8595
  /**
6684
- * Platform deleted successfully
6685
- */
6686
- 204: void;
6687
- /**
6688
- * Platform not found
8596
+ * Links retrieved.
6689
8597
  */
6690
- 404: unknown;
8598
+ 200: ExternalAccountLinkListResponseDto;
6691
8599
  };
6692
8600
  };
6693
8601
  };
6694
- '/api/v1/{region}/bean/import/provider/{providerName}/sync': {
6695
- post: {
6696
- req: ProviderSyncControllerSyncData;
8602
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8603
+ get: {
8604
+ req: ExternalAccountLinkControllerFindOneData;
6697
8605
  res: {
6698
8606
  /**
6699
- * Sync completed successfully
6700
- */
6701
- 200: ProviderSyncResponseDto;
6702
- /**
6703
- * Invalid request data
8607
+ * Link retrieved.
6704
8608
  */
6705
- 400: unknown;
8609
+ 200: ExternalAccountLinkResponseDto;
6706
8610
  /**
6707
- * Missing or invalid authentication
8611
+ * Link not found or not owned by the user.
6708
8612
  */
6709
- 401: unknown;
8613
+ 422: unknown;
8614
+ };
8615
+ };
8616
+ delete: {
8617
+ req: ExternalAccountLinkControllerRemoveData;
8618
+ res: {
6710
8619
  /**
6711
- * Provider not supported
8620
+ * Link soft-deleted; historical transactions are unaffected.
6712
8621
  */
6713
- 404: unknown;
8622
+ 204: void;
6714
8623
  };
6715
8624
  };
6716
8625
  };
6717
- '/api/v1/{region}/bean/import/provider/supported': {
6718
- get: {
6719
- req: ProviderSyncControllerGetSupportedProvidersData;
8626
+ '/api/v1/{region}/bean/import/parser-telemetry': {
8627
+ post: {
8628
+ req: TelemetryControllerReportTelemetryData;
6720
8629
  res: {
6721
8630
  /**
6722
- * List of supported providers
8631
+ * Telemetry report received
6723
8632
  */
6724
- 200: SupportedProvidersResponseDto;
8633
+ 200: unknown;
6725
8634
  /**
6726
- * Missing or invalid authentication
8635
+ * Unauthorized
6727
8636
  */
6728
8637
  401: unknown;
6729
8638
  };
6730
8639
  };
6731
8640
  };
6732
- '/api/v1/{region}/bean/import/provider/{providerName}/supported': {
6733
- get: {
6734
- req: ProviderSyncControllerIsProviderSupportedData;
8641
+ '/api/v1/{region}/bean/import/parser-coverage-miss': {
8642
+ post: {
8643
+ req: TelemetryControllerReportCoverageMissData;
6735
8644
  res: {
6736
8645
  /**
6737
- * Provider support status
8646
+ * Coverage miss report received
6738
8647
  */
6739
8648
  200: unknown;
6740
8649
  /**
6741
- * Missing or invalid authentication
8650
+ * Unauthorized
6742
8651
  */
6743
8652
  401: unknown;
6744
8653
  };
6745
8654
  };
6746
8655
  };
6747
- '/api/v1/{region}/bean/import/parser-telemetry': {
6748
- post: {
6749
- req: TelemetryControllerReportTelemetryData;
8656
+ '/api/v1/{region}/bean/import/parser-coverage-metrics': {
8657
+ get: {
8658
+ req: TelemetryControllerGetCoverageMetricsData;
6750
8659
  res: {
6751
8660
  /**
6752
- * Telemetry report received
8661
+ * Coverage metrics
6753
8662
  */
6754
8663
  200: unknown;
6755
- /**
6756
- * Unauthorized
6757
- */
6758
- 401: unknown;
6759
8664
  };
6760
8665
  };
6761
8666
  };
@@ -6806,6 +8711,78 @@ type $OpenApiTs = {
6806
8711
  };
6807
8712
  };
6808
8713
  };
8714
+ '/api/v1/bean/platforms': {
8715
+ get: {
8716
+ res: {
8717
+ /**
8718
+ * List of platforms with binding and account counts
8719
+ */
8720
+ 200: unknown;
8721
+ };
8722
+ };
8723
+ post: {
8724
+ req: PlatformControllerCreateData;
8725
+ res: {
8726
+ /**
8727
+ * Platform created successfully
8728
+ */
8729
+ 201: unknown;
8730
+ /**
8731
+ * Platform already exists
8732
+ */
8733
+ 409: unknown;
8734
+ };
8735
+ };
8736
+ };
8737
+ '/api/v1/bean/platforms/list': {
8738
+ get: {
8739
+ res: {
8740
+ /**
8741
+ * List of platforms with user binding status
8742
+ */
8743
+ 200: Array<PlatformListItemDto>;
8744
+ };
8745
+ };
8746
+ };
8747
+ '/api/v1/bean/platforms/match': {
8748
+ get: {
8749
+ req: PlatformControllerMatchPlatformsData;
8750
+ res: {
8751
+ /**
8752
+ * Matching platforms with overall match type and truncation flag
8753
+ */
8754
+ 200: PlatformMatchResponseDto;
8755
+ };
8756
+ };
8757
+ };
8758
+ '/api/v1/bean/platforms/{id}': {
8759
+ put: {
8760
+ req: PlatformControllerUpdateData;
8761
+ res: {
8762
+ /**
8763
+ * Platform updated successfully
8764
+ */
8765
+ 200: unknown;
8766
+ /**
8767
+ * Platform not found
8768
+ */
8769
+ 404: unknown;
8770
+ };
8771
+ };
8772
+ delete: {
8773
+ req: PlatformControllerDeleteData;
8774
+ res: {
8775
+ /**
8776
+ * Platform deleted successfully
8777
+ */
8778
+ 204: void;
8779
+ /**
8780
+ * Platform not found
8781
+ */
8782
+ 404: unknown;
8783
+ };
8784
+ };
8785
+ };
6809
8786
  '/api/v1/{region}/dashboard/net-worth': {
6810
8787
  get: {
6811
8788
  req: DashboardControllerGetNetWorthData;
@@ -6828,7 +8805,7 @@ type $OpenApiTs = {
6828
8805
  /**
6829
8806
  * Accounts retrieved successfully. Response type depends on groupBy parameter.
6830
8807
  */
6831
- 200: AccountsResponseDto | AssetClassAccountsResponseDto;
8808
+ 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6832
8809
  /**
6833
8810
  * User not authenticated
6834
8811
  */
@@ -6855,31 +8832,16 @@ type $OpenApiTs = {
6855
8832
  };
6856
8833
  };
6857
8834
  };
6858
- '/api/v1/{region}/reporting/portfolio/trends': {
8835
+ '/api/v1/{region}/dashboard/expenses': {
6859
8836
  get: {
6860
- req: ReportingControllerGetPortfolioTrendsData;
6861
- res: {
6862
- /**
6863
- * Trends retrieved successfully
6864
- */
6865
- 200: PortfolioTrendsResponseDto;
6866
- /**
6867
- * User not authenticated
6868
- */
6869
- 401: unknown;
6870
- };
6871
- };
6872
- };
6873
- '/api/v1/{region}/reporting/snapshots/generate': {
6874
- post: {
6875
- req: ReportingControllerGenerateSnapshotData;
8837
+ req: DashboardControllerGetExpensesData;
6876
8838
  res: {
6877
8839
  /**
6878
- * Snapshot generated successfully
8840
+ * Expenses retrieved successfully
6879
8841
  */
6880
- 200: GenerateSnapshotResponse;
8842
+ 200: ExpensesByCategoryResponseDto;
6881
8843
  /**
6882
- * Invalid date format
8844
+ * Invalid groupBy or period
6883
8845
  */
6884
8846
  400: unknown;
6885
8847
  /**
@@ -6889,26 +8851,22 @@ type $OpenApiTs = {
6889
8851
  };
6890
8852
  };
6891
8853
  };
6892
- '/api/v1/{region}/reporting/snapshots/backfill': {
6893
- post: {
6894
- req: ReportingControllerBackfillSnapshotsData;
8854
+ '/api/v1/{region}/investment/holdings/pnl': {
8855
+ get: {
8856
+ req: HoldingPnlControllerGetHoldingPnlData;
6895
8857
  res: {
6896
8858
  /**
6897
- * Backfill completed successfully
8859
+ * Holding P&L retrieved successfully
6898
8860
  */
6899
- 200: BackfillSnapshotsResponse;
8861
+ 200: HoldingPnlResponseDto;
6900
8862
  /**
6901
- * Invalid date format or range
8863
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
6902
8864
  */
6903
8865
  400: unknown;
6904
8866
  /**
6905
8867
  * User not authenticated
6906
8868
  */
6907
8869
  401: unknown;
6908
- /**
6909
- * Backfill already in progress for this user
6910
- */
6911
- 409: unknown;
6912
8870
  };
6913
8871
  };
6914
8872
  };
@@ -6933,7 +8891,7 @@ type $OpenApiTs = {
6933
8891
  /**
6934
8892
  * Login successful
6935
8893
  */
6936
- 200: unknown;
8894
+ 200: AnonymousLoginResponseDto;
6937
8895
  /**
6938
8896
  * Invalid access token
6939
8897
  */
@@ -7080,6 +9038,32 @@ type $OpenApiTs = {
7080
9038
  };
7081
9039
  };
7082
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
+ };
7083
9067
  };
7084
9068
 
7085
9069
  declare class BeanAccountsService {
@@ -7101,7 +9085,7 @@ declare class BeanAccountsService {
7101
9085
  * @param data.type Filter by account type
7102
9086
  * @param data.status Filter by status
7103
9087
  * @param data.isCustom Filter by custom (user-created) accounts only
7104
- * @param data.search Search term for path or i18nKey
9088
+ * @param data.search Search term for account path
7105
9089
  * @param data.limit Maximum number of results
7106
9090
  * @param data.offset Number of results to skip
7107
9091
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -7131,7 +9115,7 @@ declare class BeanAccountsService {
7131
9115
  static accountControllerUpdate(data: AccountControllerUpdateData): CancelablePromise<AccountControllerUpdateResponse>;
7132
9116
  /**
7133
9117
  * Delete account
7134
- * Deletes an account (only if no transactions)
9118
+ * Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
7135
9119
  * @param data The data for the request.
7136
9120
  * @param data.id Account UUID
7137
9121
  * @param data.region Region code for tenant context
@@ -7161,6 +9145,17 @@ declare class BeanAccountsService {
7161
9145
  * @throws ApiError
7162
9146
  */
7163
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>;
7164
9159
  }
7165
9160
  declare class BeanTransactionsService {
7166
9161
  /**
@@ -7186,6 +9181,7 @@ declare class BeanTransactionsService {
7186
9181
  * @param data.status Filter by transaction status
7187
9182
  * @param data.search Search in narration and payee fields (max 200 chars)
7188
9183
  * @param data.accountId Filter by account ID (transactions with postings to this account)
9184
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
7189
9185
  * @returns TransactionListResponseDto Transaction list
7190
9186
  * @throws ApiError
7191
9187
  */
@@ -7201,6 +9197,17 @@ declare class BeanTransactionsService {
7201
9197
  * @throws ApiError
7202
9198
  */
7203
9199
  static transactionControllerCreateBatch(data: TransactionControllerCreateBatchData): CancelablePromise<TransactionControllerCreateBatchResponse>;
9200
+ /**
9201
+ * Correct (supersede) a transaction
9202
+ * Atomically voids the original (SUPERSEDED) and creates a replacement through the full validation pipeline.
9203
+ * @param data The data for the request.
9204
+ * @param data.id Original transaction ID to correct
9205
+ * @param data.region Region code for tenant context
9206
+ * @param data.requestBody
9207
+ * @returns TransactionDetailDto Corrected transaction created
9208
+ * @throws ApiError
9209
+ */
9210
+ static transactionControllerCorrect(data: TransactionControllerCorrectData): CancelablePromise<TransactionControllerCorrectResponse>;
7204
9211
  /**
7205
9212
  * Suggest transaction tags
7206
9213
  * Returns distinct tags from the user ACTIVE transactions, sorted by usage, for autocomplete. Optional q performs a case-insensitive prefix match.
@@ -7250,7 +9257,7 @@ declare class BeanBalancesService {
7250
9257
  * Query account balance
7251
9258
  * Calculate account balance at a specific date for a single currency
7252
9259
  * @param data The data for the request.
7253
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
9260
+ * @param data.account Account name (e.g., "Assets:Checking")
7254
9261
  * @param data.region Region code for tenant context
7255
9262
  * @param data.date Date to calculate balance at (ISO 8601 format)
7256
9263
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -7367,7 +9374,7 @@ declare class ProviderSyncService {
7367
9374
  *
7368
9375
  * @param data The data for the request.
7369
9376
  * @param data.providerName Provider name
7370
- * @param data.region Region code
9377
+ * @param data.region Region code for tenant context
7371
9378
  * @param data.requestBody
7372
9379
  * @returns ProviderSyncResponseDto Sync completed successfully
7373
9380
  * @throws ApiError
@@ -7480,4 +9487,4 @@ type OpenAPIConfig = {
7480
9487
  };
7481
9488
  declare const OpenAPI: OpenAPIConfig;
7482
9489
 
7483
- 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 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 CashFlowResponseDto, 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 CreateAccountDto, type CreateCommodityDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, 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 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 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 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 TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, 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 UndoResultDto, type UpdateAccountDto, 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 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 paymentSource, type period, type source, type status, type status2, type status3, type status4, type suggestedFrequency, type type, type type2, type type3, 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 };