@firela/api-types 0.0.0-canary.2fbeefe9 → 0.0.0-canary.30542238

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,9 +27,9 @@ type CreateAccountDto = {
27
27
  */
28
28
  path: string;
29
29
  /**
30
- * Account open date
30
+ * Account open date (server defaults to today)
31
31
  */
32
- openDate: string;
32
+ openDate?: string;
33
33
  /**
34
34
  * Allowed currencies (null = no restriction)
35
35
  */
@@ -51,9 +51,9 @@ type CreateAccountDto = {
51
51
  */
52
52
  icon?: string;
53
53
  /**
54
- * Additional metadata
54
+ * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
55
55
  */
56
- openMeta?: {
56
+ openDirectiveMeta?: {
57
57
  [key: string]: unknown;
58
58
  };
59
59
  /**
@@ -78,6 +78,10 @@ type AccountResponseDto = {
78
78
  * Account type (root segment)
79
79
  */
80
80
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
81
+ /**
82
+ * Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
83
+ */
84
+ assetSubClass?: 'DEPOSIT' | 'CASH' | 'MONEY_MARKET_FUND' | 'STOCK' | 'ETF' | 'MUTUAL_FUND' | 'EQUITY_COMPENSATION' | 'GOVERNMENT_BOND' | 'CORPORATE_BOND' | 'BOND_FUND' | 'PRIMARY_RESIDENCE' | 'INVESTMENT_PROPERTY' | 'REIT' | 'GOLD' | 'SILVER' | 'PRECIOUS_METAL' | 'PRECIOUS_METAL_FUND' | 'COMMODITY' | 'COMMODITY_FUND' | 'CRYPTOCURRENCY' | 'RETIREMENT_ACCOUNT' | 'HEALTH_ACCOUNT' | 'EDUCATION_ACCOUNT' | 'INSURANCE' | 'PRIVATE_EQUITY' | 'HEDGE_FUND' | 'COLLECTIBLES' | 'MORTGAGE' | 'STUDENT_LOAN' | 'CREDIT_CARD' | 'PERSONAL_LOAN' | 'ACCOUNTS_PAYABLE' | 'TAX_PAYABLE' | 'OTHER' | null;
81
85
  /**
82
86
  * Account status
83
87
  */
@@ -115,9 +119,9 @@ type AccountResponseDto = {
115
119
  */
116
120
  icon?: string;
117
121
  /**
118
- * Account metadata
122
+ * Open directive metadata (ADR-0115 Decision 9)
119
123
  */
120
- openMeta?: {
124
+ openDirectiveMeta?: {
121
125
  [key: string]: unknown;
122
126
  };
123
127
  /**
@@ -145,6 +149,10 @@ type AccountResponseDto = {
145
149
  * Account type (root segment)
146
150
  */
147
151
  type type = 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
152
+ /**
153
+ * Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
154
+ */
155
+ type assetSubClass = 'DEPOSIT' | 'CASH' | 'MONEY_MARKET_FUND' | 'STOCK' | 'ETF' | 'MUTUAL_FUND' | 'EQUITY_COMPENSATION' | 'GOVERNMENT_BOND' | 'CORPORATE_BOND' | 'BOND_FUND' | 'PRIMARY_RESIDENCE' | 'INVESTMENT_PROPERTY' | 'REIT' | 'GOLD' | 'SILVER' | 'PRECIOUS_METAL' | 'PRECIOUS_METAL_FUND' | 'COMMODITY' | 'COMMODITY_FUND' | 'CRYPTOCURRENCY' | 'RETIREMENT_ACCOUNT' | 'HEALTH_ACCOUNT' | 'EDUCATION_ACCOUNT' | 'INSURANCE' | 'PRIVATE_EQUITY' | 'HEDGE_FUND' | 'COLLECTIBLES' | 'MORTGAGE' | 'STUDENT_LOAN' | 'CREDIT_CARD' | 'PERSONAL_LOAN' | 'ACCOUNTS_PAYABLE' | 'TAX_PAYABLE' | 'OTHER';
148
156
  /**
149
157
  * Account status
150
158
  */
@@ -173,9 +181,9 @@ type UpdateAccountDto = {
173
181
  */
174
182
  icon?: string;
175
183
  /**
176
- * Additional metadata (merged with existing)
184
+ * Open directive metadata (merged with existing; NOT an opening-balance amount)
177
185
  */
178
- openMeta?: {
186
+ openDirectiveMeta?: {
179
187
  [key: string]: unknown;
180
188
  };
181
189
  /**
@@ -201,6 +209,26 @@ type ReopenAccountDto = {
201
209
  */
202
210
  reopenDate?: string;
203
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
+ };
204
232
  type AccountStandardResponseDto = {
205
233
  /**
206
234
  * Account path (hierarchical, colon-separated)
@@ -226,7 +254,27 @@ type AccountStandardResponseDto = {
226
254
  * Icon identifier for UI display
227
255
  */
228
256
  icon: string;
257
+ /**
258
+ * Onboarding product category (coarse grouping derived from assetSubClass)
259
+ */
260
+ productCategory: 'cash' | 'investment' | 'credit_card' | 'loan' | 'payable_tax' | 'other';
261
+ /**
262
+ * Asset class (LIQUIDITY/EQUITY/.../LIABILITY), derived at read time from classification rules
263
+ */
264
+ assetClass?: 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
265
+ /**
266
+ * Asset sub-class (product type, derived at read time from classification rules)
267
+ */
268
+ assetSubClass?: string;
229
269
  };
270
+ /**
271
+ * Onboarding product category (coarse grouping derived from assetSubClass)
272
+ */
273
+ type productCategory = 'cash' | 'investment' | 'credit_card' | 'loan' | 'payable_tax' | 'other';
274
+ /**
275
+ * Asset class (LIQUIDITY/EQUITY/.../LIABILITY), derived at read time from classification rules
276
+ */
277
+ type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
230
278
  type AccountStandardListResponseDto = {
231
279
  /**
232
280
  * Array of account templates
@@ -409,7 +457,7 @@ type PostingResponseDto = {
409
457
  */
410
458
  account: string;
411
459
  /**
412
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
460
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned. Carries the raw Beancount sign (credit-normal accounts such as Income post negative — the accounting truth, ADR-0126); renderers must not infer economic semantics from this sign.
413
461
  */
414
462
  units?: string;
415
463
  /**
@@ -621,7 +669,7 @@ type PostingDetailDto = {
621
669
  */
622
670
  account: string;
623
671
  /**
624
- * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
672
+ * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned. Carries the raw Beancount sign (credit-normal accounts such as Income post negative — the accounting truth, ADR-0126); renderers must not infer economic semantics from this sign.
625
673
  */
626
674
  units?: string;
627
675
  /**
@@ -751,6 +799,94 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
751
799
  * Transaction status
752
800
  */
753
801
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
802
+ type TransactionListItemDto = {
803
+ /**
804
+ * Transaction ID
805
+ */
806
+ id: string;
807
+ /**
808
+ * Transaction date
809
+ */
810
+ date: string;
811
+ /**
812
+ * Transaction flag
813
+ */
814
+ flag?: 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CONVERSIONS';
815
+ /**
816
+ * Custom flag (if not using standard flags)
817
+ */
818
+ customFlag?: string;
819
+ /**
820
+ * Payee name
821
+ */
822
+ payee?: string;
823
+ /**
824
+ * Transaction narration
825
+ */
826
+ narration: string;
827
+ /**
828
+ * Transaction tags
829
+ */
830
+ tags: Array<string>;
831
+ /**
832
+ * Transaction links
833
+ */
834
+ links: Array<string>;
835
+ /**
836
+ * Transaction metadata
837
+ */
838
+ meta?: {
839
+ [key: string]: unknown;
840
+ };
841
+ /**
842
+ * Transaction status
843
+ */
844
+ status: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
845
+ /**
846
+ * Source type (free-form string from transaction metadata, e.g. import, api)
847
+ */
848
+ sourceType?: string;
849
+ /**
850
+ * Source platform (e.g., alipay, wechat)
851
+ */
852
+ sourcePlatform?: string;
853
+ /**
854
+ * Transaction postings
855
+ */
856
+ postings: Array<PostingDetailDto>;
857
+ /**
858
+ * Created at timestamp
859
+ */
860
+ createdAt: string;
861
+ /**
862
+ * Voided at timestamp (if voided)
863
+ */
864
+ voidedAt?: string;
865
+ /**
866
+ * User ID who voided this transaction
867
+ */
868
+ voidedBy?: string;
869
+ /**
870
+ * Correction reason (if voided or superseded)
871
+ */
872
+ correctionReason?: string;
873
+ /**
874
+ * ID of the transaction that supersedes this one (set when status=SUPERSEDED)
875
+ */
876
+ supersededBy?: string;
877
+ /**
878
+ * ID of the transaction this one corrected/replaced (back-link on the replacement)
879
+ */
880
+ originalTxn?: string;
881
+ /**
882
+ * Row amount under the request viewpoint (ADR-0126). Category viewpoint (category + flow): per-leg sign-normalized sum over the category account set (Income-root legs negated, Expenses-root identity) — positive under normal booking but NOT clamped (explicit negative expense legs and net-flip refund months stay negative). No viewpoint (plain list / search, no accountId): wallet money-flow net = raw-sign sum over cost-less Assets/Liabilities legs (income positive, expenses negative, transfers net ~0); color cue is the wallet sign (net < 0 = wealth-decreasing). Status-orthogonal: audit views match too (ADR-0128 amount-as-matching-key). Omitted under the account viewpoint (incl. dual) and for rows with no wallet leg.
883
+ */
884
+ viewpointAmount?: string;
885
+ /**
886
+ * Currency of viewpointAmount. A row spanning multiple currencies takes the largest-magnitude currency group (known simplification, ADR-0126).
887
+ */
888
+ viewpointCurrency?: string;
889
+ };
754
890
  type BalanceByCurrencyDto = {
755
891
  /**
756
892
  * ISO 4217 currency code
@@ -777,7 +913,7 @@ type ExchangeRateWarningDto = {
777
913
  };
778
914
  type TransactionListSummaryDto = {
779
915
  /**
780
- * 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.
916
+ * Partial converted total in base currency (rated currencies only). Sign by viewpoint (ADR-0126): account viewpoint keeps the raw Beancount sign (income negative); category viewpoint is per-leg sign-normalized (Income legs negated, Expenses legs identity — positive under normal booking, not clamped). 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.
781
917
  */
782
918
  totalAmount: string;
783
919
  /**
@@ -793,11 +929,29 @@ type TransactionListSummaryDto = {
793
929
  */
794
930
  warnings?: Array<ExchangeRateWarningDto>;
795
931
  };
932
+ type TransactionListViewpointDto = {
933
+ /**
934
+ * Viewpoint type (only category drill-down carries a viewpoint today)
935
+ */
936
+ type: 'category';
937
+ /**
938
+ * Flow root the category account set is restricted to
939
+ */
940
+ flow: 'income' | 'expense';
941
+ };
942
+ /**
943
+ * Viewpoint type (only category drill-down carries a viewpoint today)
944
+ */
945
+ type type2 = 'category';
946
+ /**
947
+ * Flow root the category account set is restricted to
948
+ */
949
+ type flow = 'income' | 'expense';
796
950
  type TransactionListResponseDto = {
797
951
  /**
798
952
  * List of transactions
799
953
  */
800
- data: Array<TransactionDetailDto>;
954
+ data: Array<TransactionListItemDto>;
801
955
  /**
802
956
  * Total count of matching transactions
803
957
  */
@@ -814,6 +968,10 @@ type TransactionListResponseDto = {
814
968
  * 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.
815
969
  */
816
970
  summary?: TransactionListSummaryDto;
971
+ /**
972
+ * Viewpoint metadata (ADR-0126). Present only for a single category filter (category + flow, no accountId); dual-perspective requests are viewpoint-less (raw signs, no viewpointAmount).
973
+ */
974
+ viewpoint?: TransactionListViewpointDto;
817
975
  };
818
976
  type TagSuggestionDto = {
819
977
  /**
@@ -1006,7 +1164,7 @@ type ReviewSummaryDto = {
1006
1164
  /**
1007
1165
  * Review type
1008
1166
  */
1009
- type type2 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1167
+ type type3 = 'DUPLICATE' | 'RULE_MATCH' | 'PAYEE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
1010
1168
  /**
1011
1169
  * Review status
1012
1170
  */
@@ -2355,356 +2513,222 @@ type ForecastResponseDto = {
2355
2513
  */
2356
2514
  periodEnd: string;
2357
2515
  };
2358
- type CreateTransactionRuleDto = {
2359
- name: string;
2360
- description?: string;
2361
- narrationKeywords?: Array<unknown[]>;
2362
- payeeKeywords?: Array<unknown[]>;
2363
- categoryKeywords?: Array<unknown[]>;
2516
+ type CurrencyBalanceDto = {
2364
2517
  /**
2365
- * Payment method keywords (e.g., HuaBei, YuEBao)
2518
+ * ISO 4217 currency code
2366
2519
  */
2367
- methodKeywords?: Array<unknown[]>;
2520
+ currency: string;
2368
2521
  /**
2369
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2522
+ * Balance amount
2370
2523
  */
2371
- categoryAccount?: string;
2372
- matchLogic: 'OR' | 'AND';
2524
+ balance: string;
2525
+ };
2526
+ type TimeSeriesPointDto = {
2373
2527
  /**
2374
- * Minimum transaction amount (inclusive)
2528
+ * Date in YYYY-MM-DD format
2375
2529
  */
2376
- amountMin?: number;
2530
+ date: string;
2377
2531
  /**
2378
- * Maximum transaction amount (inclusive)
2532
+ * Value at this date (in base currency)
2379
2533
  */
2380
- amountMax?: number;
2381
- priority: number;
2382
- additionalTags?: Array<unknown[]>;
2383
- additionalMetadata?: {
2534
+ value: string;
2535
+ /**
2536
+ * Change from previous point
2537
+ */
2538
+ change?: {
2384
2539
  [key: string]: unknown;
2385
2540
  };
2386
2541
  /**
2387
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2542
+ * Total assets at this date (in base currency)
2388
2543
  */
2389
- upsertByPayee?: boolean;
2390
- };
2391
- type matchLogic = 'OR' | 'AND';
2392
- type AmountRangeDto = {
2544
+ assets?: string;
2393
2545
  /**
2394
- * Minimum amount
2546
+ * Total liabilities at this date (in base currency)
2395
2547
  */
2396
- min?: number;
2548
+ liabilities?: string;
2397
2549
  /**
2398
- * Maximum amount
2550
+ * Multi-currency breakdown for this point
2399
2551
  */
2400
- max?: number;
2552
+ byCurrency?: Array<CurrencyBalanceDto>;
2401
2553
  };
2402
- type TransactionRuleResponseDto = {
2554
+ type TrendSummaryDto = {
2403
2555
  /**
2404
- * Rule ID
2556
+ * Value at start of period
2405
2557
  */
2406
- id: string;
2558
+ startValue: string;
2407
2559
  /**
2408
- * Rule name
2560
+ * Value at end of period
2409
2561
  */
2410
- name: string;
2562
+ endValue: string;
2411
2563
  /**
2412
- * Rule description
2564
+ * Total change over period
2413
2565
  */
2414
- description?: string;
2566
+ totalChange: string;
2415
2567
  /**
2416
- * Keywords to match in transaction narration
2568
+ * Total change percentage
2417
2569
  */
2418
- narrationKeywords: Array<string>;
2570
+ totalChangePercentage: string;
2571
+ };
2572
+ type MultiCurrencyPointDto = {
2419
2573
  /**
2420
- * Keywords to match in payee name
2574
+ * Date in YYYY-MM-DD format
2421
2575
  */
2422
- payeeKeywords: Array<string>;
2576
+ date: string;
2423
2577
  /**
2424
- * Keywords to match in category
2578
+ * Balances by currency
2425
2579
  */
2426
- categoryKeywords: Array<string>;
2580
+ byCurrency: Array<CurrencyBalanceDto>;
2581
+ };
2582
+ type PortfolioTrendsResponseDto = {
2427
2583
  /**
2428
- * Keywords to match in payment method
2584
+ * Time series data points
2429
2585
  */
2430
- methodKeywords: Array<string>;
2586
+ series: Array<TimeSeriesPointDto>;
2431
2587
  /**
2432
- * Destination account for categorization
2588
+ * Period summary
2433
2589
  */
2434
- categoryAccount?: string;
2590
+ summary: TrendSummaryDto;
2435
2591
  /**
2436
- * Keyword matching logic
2592
+ * Period requested
2437
2593
  */
2438
- matchLogic: 'OR' | 'AND';
2594
+ period: string;
2439
2595
  /**
2440
- * Amount range for matching
2596
+ * Data granularity
2441
2597
  */
2442
- amountRange?: AmountRangeDto;
2598
+ granularity: string;
2443
2599
  /**
2444
- * Rule priority (0-1000, higher = first match)
2600
+ * Base currency for converted values
2445
2601
  */
2446
- priority: number;
2602
+ currency: string;
2447
2603
  /**
2448
- * Whether the rule is enabled
2604
+ * Multi-currency time series (each point has currency breakdown)
2449
2605
  */
2450
- enabled: boolean;
2606
+ byCurrency?: Array<MultiCurrencyPointDto>;
2451
2607
  /**
2452
- * Learning source: NLP, REVIEW_CENTER, or null for manual
2608
+ * Exchange rate warnings
2453
2609
  */
2454
- learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
2610
+ warnings?: Array<ExchangeRateWarningDto>;
2611
+ };
2612
+ type CashFlowPointDto = {
2455
2613
  /**
2456
- * Whether auto-apply is enabled for this rule
2614
+ * Month key (YYYY-MM)
2457
2615
  */
2458
- autoApplyEnabled: boolean;
2616
+ month: string;
2459
2617
  /**
2460
- * Number of confirmations for NLP-learned rules
2618
+ * Income in base currency (absolute, converted)
2461
2619
  */
2462
- confirmationCount: number;
2620
+ income: string;
2463
2621
  /**
2464
- * Additional tags
2622
+ * Expense in base currency (absolute, converted)
2465
2623
  */
2466
- additionalTags: Array<string>;
2624
+ expense: string;
2467
2625
  /**
2468
- * Additional metadata
2626
+ * netSavings = income − expense (savings positive)
2469
2627
  */
2470
- additionalMetadata?: {
2471
- [key: string]: string;
2472
- };
2628
+ netSavings: string;
2629
+ };
2630
+ type CashFlowTrendSummaryDto = {
2473
2631
  /**
2474
- * Created timestamp
2475
- */
2476
- createdAt: string;
2477
- /**
2478
- * Updated timestamp
2632
+ * Total income across the period
2479
2633
  */
2480
- updatedAt: string;
2481
- };
2482
- /**
2483
- * Learning source: NLP, REVIEW_CENTER, or null for manual
2484
- */
2485
- type learningSource = 'NLP' | 'REVIEW_CENTER';
2486
- type TransactionRuleListResponseDto = {
2487
- data: Array<TransactionRuleResponseDto>;
2634
+ totalIncome: string;
2488
2635
  /**
2489
- * Total count of rules
2636
+ * Total expense across the period
2490
2637
  */
2491
- total: number;
2638
+ totalExpense: string;
2492
2639
  /**
2493
- * Results per page
2640
+ * income expense across the period
2494
2641
  */
2495
- limit: number;
2642
+ totalNetSavings: string;
2496
2643
  /**
2497
- * Pagination offset
2644
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
2498
2645
  */
2499
- offset: number;
2646
+ averageMonthlyNetSavings: string;
2500
2647
  };
2501
- type ValidateRuleDto = {
2502
- name: string;
2503
- description?: string;
2504
- narrationKeywords?: Array<unknown[]>;
2505
- payeeKeywords?: Array<unknown[]>;
2506
- categoryKeywords?: Array<unknown[]>;
2507
- /**
2508
- * Payment method keywords (e.g., HuaBei, YuEBao)
2509
- */
2510
- methodKeywords?: Array<unknown[]>;
2511
- /**
2512
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2513
- */
2514
- categoryAccount?: string;
2515
- matchLogic: 'OR' | 'AND';
2648
+ type CashFlowTrendsResponseDto = {
2516
2649
  /**
2517
- * Minimum transaction amount (inclusive)
2650
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
2518
2651
  */
2519
- amountMin?: number;
2652
+ series: Array<CashFlowPointDto>;
2520
2653
  /**
2521
- * Maximum transaction amount (inclusive)
2654
+ * Period totals
2522
2655
  */
2523
- amountMax?: number;
2524
- priority: number;
2525
- additionalTags?: Array<unknown[]>;
2526
- additionalMetadata?: {
2527
- [key: string]: unknown;
2528
- };
2656
+ summary: CashFlowTrendSummaryDto;
2529
2657
  /**
2530
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2658
+ * Period requested
2531
2659
  */
2532
- upsertByPayee?: boolean;
2533
- };
2534
- type ValidateRuleResponseDto = {
2660
+ period: string;
2535
2661
  /**
2536
- * Whether the rule configuration is valid
2662
+ * Data granularity (v1 returns month buckets)
2537
2663
  */
2538
- valid: boolean;
2664
+ granularity: string;
2539
2665
  /**
2540
- * List of validation errors (empty if valid)
2666
+ * Base currency for converted values
2541
2667
  */
2542
- errors: Array<unknown[]>;
2668
+ currency: string;
2543
2669
  /**
2544
- * List of validation warnings (non-blocking issues)
2670
+ * Exchange rate warnings (e.g. missing rate for a currency)
2545
2671
  */
2546
- warnings: Array<unknown[]>;
2672
+ warnings?: Array<ExchangeRateWarningDto>;
2547
2673
  };
2548
- type BulkCreateRulesDto = {
2549
- /**
2550
- * Array of rules to import
2551
- */
2552
- rules: Array<unknown[]>;
2674
+ type GenerateSnapshotBody = unknown;
2675
+ type GenerateSnapshotResponse = unknown;
2676
+ type BackfillSnapshotsBody = unknown;
2677
+ type BackfillSnapshotsResponse = unknown;
2678
+ type DeleteOwnUserDto = {
2553
2679
  /**
2554
- * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2680
+ * Access token for user verification
2555
2681
  */
2556
- conflictStrategy: 'replace' | 'skip';
2682
+ accessToken: string;
2557
2683
  };
2558
- /**
2559
- * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2560
- */
2561
- type conflictStrategy = 'replace' | 'skip';
2562
- type BulkCreateRulesResponseDto = {
2563
- /**
2564
- * Number of successfully created rules
2565
- */
2566
- successCount: number;
2567
- /**
2568
- * Number of failed rules
2569
- */
2570
- failureCount: number;
2571
- /**
2572
- * Error details for failed rules
2573
- */
2574
- errors: Array<{
2575
- index?: number;
2576
- message?: string;
2577
- }>;
2684
+ type UserSettingsResponseDto = {
2578
2685
  /**
2579
- * IDs of successfully created rules
2686
+ * Base currency (ISO 4217) for net-worth/report aggregation. Independent of region (ADR-0006).
2580
2687
  */
2581
- createdRuleIds: Array<string>;
2688
+ baseCurrency: string | null;
2582
2689
  };
2583
- type ExportRulesResponseDto = {
2584
- /**
2585
- * Export timestamp
2586
- */
2587
- exportedAt: string;
2690
+ type UserResponseDto = {
2588
2691
  /**
2589
2692
  * User ID
2590
2693
  */
2591
- userId: string;
2592
- /**
2593
- * Number of exported rules
2594
- */
2595
- ruleCount: number;
2596
- /**
2597
- * Exported rules
2598
- */
2599
- rules: unknown[];
2600
- };
2601
- type RuleStatisticsResponseDto = {
2602
- /**
2603
- * Statistics time period
2604
- */
2605
- period: '7d' | '30d' | '90d';
2606
- /**
2607
- * Total number of rules
2608
- */
2609
- totalRules: number;
2610
- /**
2611
- * Number of rules with at least one match
2612
- */
2613
- rulesWithMatches: number;
2694
+ id: string;
2614
2695
  /**
2615
- * Total number of matches across all rules
2696
+ * Assigned user role
2616
2697
  */
2617
- totalMatches: number;
2698
+ role: string;
2618
2699
  /**
2619
- * Average confidence score across all matches
2700
+ * Permission strings
2620
2701
  */
2621
- averageConfidence: number;
2702
+ permissions: Array<string>;
2622
2703
  /**
2623
- * Per-rule statistics
2704
+ * User settings
2624
2705
  */
2625
- ruleStats: Array<{
2626
- ruleId?: string;
2627
- ruleName?: string;
2628
- matchCount?: number;
2629
- averageConfidence?: number;
2630
- }>;
2706
+ settings: UserSettingsResponseDto;
2631
2707
  };
2632
- /**
2633
- * Statistics time period
2634
- */
2635
- type period = '7d' | '30d' | '90d';
2636
- type UpdateTransactionRuleDto = {
2637
- name?: string;
2638
- description?: string;
2639
- narrationKeywords?: Array<unknown[]>;
2640
- payeeKeywords?: Array<unknown[]>;
2641
- categoryKeywords?: Array<unknown[]>;
2642
- /**
2643
- * Payment method keywords (e.g., HuaBei, YuEBao)
2644
- */
2645
- methodKeywords?: Array<unknown[]>;
2646
- /**
2647
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2648
- */
2649
- categoryAccount?: string;
2650
- matchLogic?: 'OR' | 'AND';
2651
- /**
2652
- * Minimum transaction amount (inclusive)
2653
- */
2654
- amountMin?: number;
2655
- /**
2656
- * Maximum transaction amount (inclusive)
2657
- */
2658
- amountMax?: number;
2659
- priority?: number;
2708
+ type SignupDto = {
2660
2709
  /**
2661
- * Enable or disable the rule
2710
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2662
2711
  */
2663
- enabled?: boolean;
2664
- additionalTags?: Array<unknown[]>;
2665
- additionalMetadata?: {
2666
- [key: string]: unknown;
2667
- };
2668
- };
2669
- type TestRuleDto = {
2670
- narration: string;
2671
- payee?: string;
2672
- categoryAccount?: string;
2673
- amount?: number;
2674
- currency?: string;
2712
+ turnstileToken?: string;
2675
2713
  };
2676
- type TestRuleResponseDto = {
2677
- /**
2678
- * Rule ID that was tested
2679
- */
2680
- ruleId: string;
2681
- /**
2682
- * Whether the rule matched the test data
2683
- */
2684
- matches: boolean;
2685
- /**
2686
- * Match confidence score (0-1)
2687
- */
2688
- confidence: number;
2714
+ type SignupResponseDto = {
2689
2715
  /**
2690
- * Details of which fields matched
2716
+ * JWT auth token
2691
2717
  */
2692
- matchDetails: {
2693
- [key: string]: unknown;
2694
- };
2695
- };
2696
- type DeleteOwnUserDto = {
2718
+ authToken: string;
2697
2719
  /**
2698
- * Access token for user verification
2720
+ * Auto-generated access token
2699
2721
  */
2700
2722
  accessToken: string;
2701
- };
2702
- type SignupDto = {
2703
2723
  /**
2704
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2724
+ * Assigned user role
2705
2725
  */
2706
- turnstileToken?: string;
2726
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2707
2727
  };
2728
+ /**
2729
+ * Assigned user role
2730
+ */
2731
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2708
2732
  type UpdateUserSettingDto = {
2709
2733
  /**
2710
2734
  * Security ID
@@ -2805,31 +2829,405 @@ type UpdatePropertyDto = {
2805
2829
  */
2806
2830
  value: string;
2807
2831
  };
2808
- type CreateBeanEventDto = {
2832
+ type CreateTransactionRuleDto = {
2833
+ name: string;
2834
+ description?: string;
2835
+ narrationKeywords?: Array<unknown[]>;
2836
+ payeeKeywords?: Array<unknown[]>;
2837
+ categoryKeywords?: Array<unknown[]>;
2809
2838
  /**
2810
- * Life event date (ISO 8601)
2839
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2811
2840
  */
2812
- date: string;
2841
+ methodKeywords?: Array<unknown[]>;
2813
2842
  /**
2814
- * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
2843
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2815
2844
  */
2816
- type: string;
2845
+ categoryAccount?: string;
2846
+ matchLogic: 'OR' | 'AND';
2817
2847
  /**
2818
- * Life event description. Empty string is a VALID value (distinct from absence).
2848
+ * Minimum transaction amount (inclusive)
2819
2849
  */
2820
- description: string;
2850
+ amountMin?: number;
2821
2851
  /**
2822
- * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
2852
+ * Maximum transaction amount (inclusive)
2823
2853
  */
2824
- meta?: {
2854
+ amountMax?: number;
2855
+ priority: number;
2856
+ additionalTags?: Array<unknown[]>;
2857
+ additionalMetadata?: {
2825
2858
  [key: string]: unknown;
2826
2859
  };
2827
- };
2828
- type EventResponseDto = {
2829
2860
  /**
2830
- * Unique identifier
2861
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2831
2862
  */
2832
- id: string;
2863
+ upsertByPayee?: boolean;
2864
+ };
2865
+ type matchLogic = 'OR' | 'AND';
2866
+ type AmountRangeDto = {
2867
+ /**
2868
+ * Minimum amount
2869
+ */
2870
+ min?: number;
2871
+ /**
2872
+ * Maximum amount
2873
+ */
2874
+ max?: number;
2875
+ };
2876
+ type TransactionRuleResponseDto = {
2877
+ /**
2878
+ * Rule ID
2879
+ */
2880
+ id: string;
2881
+ /**
2882
+ * Rule name
2883
+ */
2884
+ name: string;
2885
+ /**
2886
+ * Rule description
2887
+ */
2888
+ description?: string;
2889
+ /**
2890
+ * Keywords to match in transaction narration
2891
+ */
2892
+ narrationKeywords: Array<string>;
2893
+ /**
2894
+ * Keywords to match in payee name
2895
+ */
2896
+ payeeKeywords: Array<string>;
2897
+ /**
2898
+ * Keywords to match in category
2899
+ */
2900
+ categoryKeywords: Array<string>;
2901
+ /**
2902
+ * Keywords to match in payment method
2903
+ */
2904
+ methodKeywords: Array<string>;
2905
+ /**
2906
+ * Destination account for categorization
2907
+ */
2908
+ categoryAccount?: string;
2909
+ /**
2910
+ * Keyword matching logic
2911
+ */
2912
+ matchLogic: 'OR' | 'AND';
2913
+ /**
2914
+ * Amount range for matching
2915
+ */
2916
+ amountRange?: AmountRangeDto;
2917
+ /**
2918
+ * Rule priority (0-1000, higher = first match)
2919
+ */
2920
+ priority: number;
2921
+ /**
2922
+ * Whether the rule is enabled
2923
+ */
2924
+ enabled: boolean;
2925
+ /**
2926
+ * Learning source: NLP, REVIEW_CENTER, or null for manual
2927
+ */
2928
+ learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
2929
+ /**
2930
+ * Whether auto-apply is enabled for this rule
2931
+ */
2932
+ autoApplyEnabled: boolean;
2933
+ /**
2934
+ * Number of confirmations for NLP-learned rules
2935
+ */
2936
+ confirmationCount: number;
2937
+ /**
2938
+ * Additional tags
2939
+ */
2940
+ additionalTags: Array<string>;
2941
+ /**
2942
+ * Additional metadata
2943
+ */
2944
+ additionalMetadata?: {
2945
+ [key: string]: string;
2946
+ };
2947
+ /**
2948
+ * Created timestamp
2949
+ */
2950
+ createdAt: string;
2951
+ /**
2952
+ * Updated timestamp
2953
+ */
2954
+ updatedAt: string;
2955
+ };
2956
+ /**
2957
+ * Learning source: NLP, REVIEW_CENTER, or null for manual
2958
+ */
2959
+ type learningSource = 'NLP' | 'REVIEW_CENTER';
2960
+ type TransactionRuleListResponseDto = {
2961
+ data: Array<TransactionRuleResponseDto>;
2962
+ /**
2963
+ * Total count of rules
2964
+ */
2965
+ total: number;
2966
+ /**
2967
+ * Results per page
2968
+ */
2969
+ limit: number;
2970
+ /**
2971
+ * Pagination offset
2972
+ */
2973
+ offset: number;
2974
+ };
2975
+ type ValidateRuleDto = {
2976
+ name: string;
2977
+ description?: string;
2978
+ narrationKeywords?: Array<unknown[]>;
2979
+ payeeKeywords?: Array<unknown[]>;
2980
+ categoryKeywords?: Array<unknown[]>;
2981
+ /**
2982
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2983
+ */
2984
+ methodKeywords?: Array<unknown[]>;
2985
+ /**
2986
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2987
+ */
2988
+ categoryAccount?: string;
2989
+ matchLogic: 'OR' | 'AND';
2990
+ /**
2991
+ * Minimum transaction amount (inclusive)
2992
+ */
2993
+ amountMin?: number;
2994
+ /**
2995
+ * Maximum transaction amount (inclusive)
2996
+ */
2997
+ amountMax?: number;
2998
+ priority: number;
2999
+ additionalTags?: Array<unknown[]>;
3000
+ additionalMetadata?: {
3001
+ [key: string]: unknown;
3002
+ };
3003
+ /**
3004
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
3005
+ */
3006
+ upsertByPayee?: boolean;
3007
+ };
3008
+ type ValidateRuleResponseDto = {
3009
+ /**
3010
+ * Whether the rule configuration is valid
3011
+ */
3012
+ valid: boolean;
3013
+ /**
3014
+ * List of validation errors (empty if valid)
3015
+ */
3016
+ errors: Array<unknown[]>;
3017
+ /**
3018
+ * List of validation warnings (non-blocking issues)
3019
+ */
3020
+ warnings: Array<unknown[]>;
3021
+ };
3022
+ type BulkCreateRulesDto = {
3023
+ /**
3024
+ * Array of rules to import
3025
+ */
3026
+ rules: Array<unknown[]>;
3027
+ /**
3028
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
3029
+ */
3030
+ conflictStrategy: 'replace' | 'skip';
3031
+ };
3032
+ /**
3033
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
3034
+ */
3035
+ type conflictStrategy = 'replace' | 'skip';
3036
+ type BulkCreateRulesResponseDto = {
3037
+ /**
3038
+ * Number of successfully created rules
3039
+ */
3040
+ successCount: number;
3041
+ /**
3042
+ * Number of failed rules
3043
+ */
3044
+ failureCount: number;
3045
+ /**
3046
+ * Error details for failed rules
3047
+ */
3048
+ errors: Array<{
3049
+ index?: number;
3050
+ message?: string;
3051
+ }>;
3052
+ /**
3053
+ * IDs of successfully created rules
3054
+ */
3055
+ createdRuleIds: Array<string>;
3056
+ };
3057
+ type ExportRulesResponseDto = {
3058
+ /**
3059
+ * Export timestamp
3060
+ */
3061
+ exportedAt: string;
3062
+ /**
3063
+ * User ID
3064
+ */
3065
+ userId: string;
3066
+ /**
3067
+ * Number of exported rules
3068
+ */
3069
+ ruleCount: number;
3070
+ /**
3071
+ * Exported rules
3072
+ */
3073
+ rules: unknown[];
3074
+ };
3075
+ type RuleStatisticsResponseDto = {
3076
+ /**
3077
+ * Statistics time period
3078
+ */
3079
+ period: '7d' | '30d' | '90d';
3080
+ /**
3081
+ * Total number of rules
3082
+ */
3083
+ totalRules: number;
3084
+ /**
3085
+ * Number of rules with at least one match
3086
+ */
3087
+ rulesWithMatches: number;
3088
+ /**
3089
+ * Total number of matches across all rules
3090
+ */
3091
+ totalMatches: number;
3092
+ /**
3093
+ * Average confidence score across all matches
3094
+ */
3095
+ averageConfidence: number;
3096
+ /**
3097
+ * Per-rule statistics
3098
+ */
3099
+ ruleStats: Array<{
3100
+ ruleId?: string;
3101
+ ruleName?: string;
3102
+ matchCount?: number;
3103
+ averageConfidence?: number;
3104
+ }>;
3105
+ };
3106
+ /**
3107
+ * Statistics time period
3108
+ */
3109
+ type period = '7d' | '30d' | '90d';
3110
+ type UpdateTransactionRuleDto = {
3111
+ name?: string;
3112
+ description?: string;
3113
+ narrationKeywords?: Array<unknown[]>;
3114
+ payeeKeywords?: Array<unknown[]>;
3115
+ categoryKeywords?: Array<unknown[]>;
3116
+ /**
3117
+ * Payment method keywords (e.g., HuaBei, YuEBao)
3118
+ */
3119
+ methodKeywords?: Array<unknown[]>;
3120
+ /**
3121
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
3122
+ */
3123
+ categoryAccount?: string;
3124
+ matchLogic?: 'OR' | 'AND';
3125
+ /**
3126
+ * Minimum transaction amount (inclusive)
3127
+ */
3128
+ amountMin?: number;
3129
+ /**
3130
+ * Maximum transaction amount (inclusive)
3131
+ */
3132
+ amountMax?: number;
3133
+ priority?: number;
3134
+ /**
3135
+ * Enable or disable the rule
3136
+ */
3137
+ enabled?: boolean;
3138
+ additionalTags?: Array<unknown[]>;
3139
+ additionalMetadata?: {
3140
+ [key: string]: unknown;
3141
+ };
3142
+ };
3143
+ type TestRuleDto = {
3144
+ narration: string;
3145
+ payee?: string;
3146
+ categoryAccount?: string;
3147
+ amount?: number;
3148
+ currency?: string;
3149
+ };
3150
+ type TestRuleResponseDto = {
3151
+ /**
3152
+ * Rule ID that was tested
3153
+ */
3154
+ ruleId: string;
3155
+ /**
3156
+ * Whether the rule matched the test data
3157
+ */
3158
+ matches: boolean;
3159
+ /**
3160
+ * Match confidence score (0-1)
3161
+ */
3162
+ confidence: number;
3163
+ /**
3164
+ * Details of which fields matched
3165
+ */
3166
+ matchDetails: {
3167
+ [key: string]: unknown;
3168
+ };
3169
+ };
3170
+ type CategoryCatalogEntryDto = {
3171
+ /**
3172
+ * Category slug (single source-of-truth)
3173
+ */
3174
+ slug: string;
3175
+ /**
3176
+ * Display scenario group (maps to frontend picker _scenario)
3177
+ */
3178
+ scenario: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3179
+ /**
3180
+ * Lucide icon name
3181
+ */
3182
+ icon: string;
3183
+ /**
3184
+ * Applicable regions ('*' = all, 'cn' = CN-only)
3185
+ */
3186
+ regions: Array<string>;
3187
+ };
3188
+ /**
3189
+ * Display scenario group (maps to frontend picker _scenario)
3190
+ */
3191
+ type scenario = 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3192
+ type CategoryCatalogListResponseDto = {
3193
+ /**
3194
+ * Category entries (region-scoped, query-filtered)
3195
+ */
3196
+ items: Array<CategoryCatalogEntryDto>;
3197
+ /**
3198
+ * Total category entries for the region (before query filtering)
3199
+ */
3200
+ total: number;
3201
+ /**
3202
+ * Region code
3203
+ */
3204
+ region: string;
3205
+ };
3206
+ type CreateBeanEventDto = {
3207
+ /**
3208
+ * Life event date (ISO 8601)
3209
+ */
3210
+ date: string;
3211
+ /**
3212
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
3213
+ */
3214
+ type: string;
3215
+ /**
3216
+ * Life event description. Empty string is a VALID value (distinct from absence).
3217
+ */
3218
+ description: string;
3219
+ /**
3220
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
3221
+ */
3222
+ meta?: {
3223
+ [key: string]: unknown;
3224
+ };
3225
+ };
3226
+ type EventResponseDto = {
3227
+ /**
3228
+ * Unique identifier
3229
+ */
3230
+ id: string;
2833
3231
  /**
2834
3232
  * User ID (owner of the life event)
2835
3233
  */
@@ -3289,13 +3687,13 @@ type ProviderSyncConfigDto = {
3289
3687
  */
3290
3688
  defaultCurrency: string;
3291
3689
  /**
3292
- * Default expense account for the second posting
3690
+ * Default expense account for the second posting. Omit when no real default exists; the pipeline routes to Review via the Uncategorized sentinel (#618).
3293
3691
  */
3294
- defaultExpenseAccount: string;
3692
+ defaultExpenseAccount?: string;
3295
3693
  /**
3296
- * Default income account for the second posting
3694
+ * Default income account for the second posting. Omit when no real default exists; the pipeline routes to Review via the Uncategorized sentinel (#618).
3297
3695
  */
3298
- defaultIncomeAccount: string;
3696
+ defaultIncomeAccount?: string;
3299
3697
  /**
3300
3698
  * Filter pending transactions
3301
3699
  */
@@ -3392,11 +3790,85 @@ type ExternalAccountLinkListResponseDto = {
3392
3790
  };
3393
3791
  type ParserTelemetryReportDto = unknown;
3394
3792
  type UncoveredFormatMissDto = unknown;
3793
+ type ClientParsedDataDto = {
3794
+ /**
3795
+ * Transaction amount
3796
+ */
3797
+ amount?: number;
3798
+ /**
3799
+ * Currency code
3800
+ */
3801
+ currency?: string;
3802
+ /**
3803
+ * Transaction date (ISO 8601)
3804
+ */
3805
+ date?: string;
3806
+ /**
3807
+ * Payee/merchant name
3808
+ */
3809
+ payee?: string;
3810
+ /**
3811
+ * Transaction narration
3812
+ */
3813
+ narration?: string;
3814
+ /**
3815
+ * Category slug
3816
+ */
3817
+ category?: string;
3818
+ /**
3819
+ * Income type
3820
+ */
3821
+ incomeType?: string;
3822
+ /**
3823
+ * Income source
3824
+ */
3825
+ incomeSource?: string;
3826
+ /**
3827
+ * Security symbol code (e.g., 600519, AAPL)
3828
+ */
3829
+ symbol?: string;
3830
+ /**
3831
+ * Quantity of shares/units
3832
+ */
3833
+ quantity?: number;
3834
+ /**
3835
+ * Unit price per share/unit
3836
+ */
3837
+ price?: number;
3838
+ /**
3839
+ * Investment action
3840
+ */
3841
+ investmentAction?: 'buy' | 'sell';
3842
+ /**
3843
+ * Payment source: asset (default) or liability (credit card)
3844
+ */
3845
+ paymentSource?: 'asset' | 'liability';
3846
+ /**
3847
+ * Liability account hint (CreditCard/Huabei/Baitiao)
3848
+ */
3849
+ liabilityHint?: string;
3850
+ /**
3851
+ * Display-only warning from the prior response; accepted but ignored.
3852
+ */
3853
+ warning?: string;
3854
+ };
3855
+ /**
3856
+ * Investment action
3857
+ */
3858
+ type investmentAction = 'buy' | 'sell';
3859
+ /**
3860
+ * Payment source: asset (default) or liability (credit card)
3861
+ */
3862
+ type paymentSource = 'asset' | 'liability';
3395
3863
  type ProcessNlpDto = {
3396
3864
  /**
3397
- * Natural language text describing a transaction (Chinese)
3865
+ * Natural language text describing a transaction. Optional when `confirm` is true (structured confirm); otherwise required.
3866
+ */
3867
+ message?: string;
3868
+ /**
3869
+ * Structured confirm signal — bypasses NL confirm-word matching when true. Send parsedData field edits alongside. The NL word-list path is the fallback.
3398
3870
  */
3399
- message: string;
3871
+ confirm?: boolean;
3400
3872
  /**
3401
3873
  * Session ID for multi-turn conversation (auto-generated if not provided)
3402
3874
  */
@@ -3404,9 +3876,15 @@ type ProcessNlpDto = {
3404
3876
  /**
3405
3877
  * Parsed data from previous NLP response for session recovery. Send back the parsedData received in confirm_payee/confirm responses.
3406
3878
  */
3407
- parsedData?: {
3408
- [key: string]: unknown;
3409
- };
3879
+ parsedData?: ClientParsedDataDto;
3880
+ /**
3881
+ * 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.
3882
+ */
3883
+ selectedRuleId?: string;
3884
+ /**
3885
+ * confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i].path, or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
3886
+ */
3887
+ selectedAccount?: string;
3410
3888
  };
3411
3889
  type NlpTransactionInfoDto = {
3412
3890
  /**
@@ -3500,14 +3978,6 @@ type NlpParsedDataDto = {
3500
3978
  */
3501
3979
  warning?: string;
3502
3980
  };
3503
- /**
3504
- * Investment action
3505
- */
3506
- type investmentAction = 'buy' | 'sell';
3507
- /**
3508
- * Payment source: asset (default) or liability (credit card)
3509
- */
3510
- type paymentSource = 'asset' | 'liability';
3511
3981
  type NlpSourceTransactionDto = {
3512
3982
  /**
3513
3983
  * Transaction date (ISO format)
@@ -3634,19 +4104,29 @@ type NlpRuleConfirmationDataDto = {
3634
4104
  */
3635
4105
  reasons: Array<string>;
3636
4106
  };
4107
+ type NlpAccountCandidateDto = {
4108
+ /**
4109
+ * Canonical beancount account path (echo back on selection)
4110
+ */
4111
+ path: string;
4112
+ /**
4113
+ * Localized display name (ADR-0114 read-time projection, user locale)
4114
+ */
4115
+ name: string;
4116
+ };
3637
4117
  type NlpAccountConfirmationDataDto = {
3638
4118
  /**
3639
4119
  * The invalid account name
3640
4120
  */
3641
4121
  invalidAccount: string;
3642
4122
  /**
3643
- * Suggested replacement account
4123
+ * Suggested replacement account (omitted when no clear candidate)
3644
4124
  */
3645
- suggestedAccount: string;
4125
+ suggestedAccount?: string;
3646
4126
  /**
3647
- * Similar accounts for user selection
4127
+ * Similar accounts for user selection (path + localized name, #680)
3648
4128
  */
3649
- similarAccounts: Array<string>;
4129
+ similarAccounts: Array<NlpAccountCandidateDto>;
3650
4130
  /**
3651
4131
  * Error message explaining the issue
3652
4132
  */
@@ -3764,7 +4244,7 @@ type NlpSuggestedAccountDto = {
3764
4244
  */
3765
4245
  account: string;
3766
4246
  /**
3767
- * Confidence score for this suggestion (0-1)
4247
+ * Confidence score for this suggestion (0-1). Present = predicted (confirm/confirm_rule/confirm_account); omitted = actual persisted account (created). (#586)
3768
4248
  */
3769
4249
  confidence?: number;
3770
4250
  };
@@ -3780,21 +4260,21 @@ type NlpSuggestedAccountsDto = {
3780
4260
  };
3781
4261
  type NlpDefaultAccountsDto = {
3782
4262
  /**
3783
- * Default asset account
4263
+ * Default OPEN asset account (MRU when multiple), or null when none/ambiguous
3784
4264
  */
3785
- asset: string;
4265
+ asset: string | null;
3786
4266
  /**
3787
- * Default expense account
4267
+ * Default OPEN expense account (MRU when multiple), or null when none/ambiguous
3788
4268
  */
3789
- expense: string;
4269
+ expense: string | null;
3790
4270
  /**
3791
- * Default income account
4271
+ * Default OPEN income account (MRU when multiple), or null when none/ambiguous
3792
4272
  */
3793
- income: string;
4273
+ income: string | null;
3794
4274
  /**
3795
- * Default liability account
4275
+ * Default OPEN liability account (MRU when multiple), or null when none/ambiguous
3796
4276
  */
3797
- liability: string;
4277
+ liability: string | null;
3798
4278
  };
3799
4279
  type NlpResponseDto = {
3800
4280
  /**
@@ -3804,7 +4284,7 @@ type NlpResponseDto = {
3804
4284
  /**
3805
4285
  * Action taken or requested
3806
4286
  */
3807
- action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4287
+ action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3808
4288
  /**
3809
4289
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3810
4290
  */
@@ -3812,7 +4292,7 @@ type NlpResponseDto = {
3812
4292
  /**
3813
4293
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
3814
4294
  */
3815
- assetSubType?: 'transfer' | 'banking' | 'investment';
4295
+ assetSubType?: 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
3816
4296
  /**
3817
4297
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
3818
4298
  */
@@ -3893,11 +4373,11 @@ type NlpResponseDto = {
3893
4373
  */
3894
4374
  recurringSuggestion?: RecurringSuggestionDto;
3895
4375
  /**
3896
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4376
+ * 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.
3897
4377
  */
3898
4378
  suggestedAccounts?: NlpSuggestedAccountsDto;
3899
4379
  /**
3900
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4380
+ * Default fallback accounts for the user/region (#586). v1 returns universal constants; per-user personalization is planned.
3901
4381
  */
3902
4382
  defaultAccounts?: NlpDefaultAccountsDto;
3903
4383
  };
@@ -3908,7 +4388,7 @@ type status4 = 'success' | 'pending' | 'error';
3908
4388
  /**
3909
4389
  * Action taken or requested
3910
4390
  */
3911
- type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4391
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3912
4392
  /**
3913
4393
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3914
4394
  */
@@ -3916,7 +4396,7 @@ type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
3916
4396
  /**
3917
4397
  * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
3918
4398
  */
3919
- type assetSubType = 'transfer' | 'banking' | 'investment';
4399
+ type assetSubType = 'transfer' | 'banking' | 'investment' | 'lend' | 'lend_collect';
3920
4400
  /**
3921
4401
  * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
3922
4402
  */
@@ -3925,6 +4405,116 @@ type liabilitySubType = 'borrow' | 'repay';
3925
4405
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3926
4406
  */
3927
4407
  type equitySubType = 'opening' | 'adjustment';
4408
+ type PlatformListItemDto = {
4409
+ /**
4410
+ * Global platform ID
4411
+ */
4412
+ id: string;
4413
+ /**
4414
+ * Platform name
4415
+ */
4416
+ name: string;
4417
+ /**
4418
+ * Platform URL
4419
+ */
4420
+ url: string;
4421
+ /**
4422
+ * Platform type
4423
+ */
4424
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4425
+ /**
4426
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4427
+ */
4428
+ canonical: string;
4429
+ /**
4430
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4431
+ */
4432
+ suggestedSegment: string;
4433
+ /**
4434
+ * Logo URL
4435
+ */
4436
+ logoUrl: string | null;
4437
+ /**
4438
+ * ISO 3166-1 alpha-2 (UPPERCASE); null = global platform
4439
+ */
4440
+ countryCode: string | null;
4441
+ /**
4442
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank). null = no region-aware suggestion; fall back to type.
4443
+ */
4444
+ category: string | null;
4445
+ /**
4446
+ * Whether user has accounts using this platform
4447
+ */
4448
+ isBound: boolean;
4449
+ };
4450
+ /**
4451
+ * Platform type
4452
+ */
4453
+ type type4 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4454
+ type PlatformMatchResultDto = {
4455
+ /**
4456
+ * Global platform ID
4457
+ */
4458
+ id: string;
4459
+ /**
4460
+ * Platform name (e.g., "ICBC")
4461
+ */
4462
+ name: string;
4463
+ /**
4464
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4465
+ */
4466
+ canonical: string;
4467
+ /**
4468
+ * Platform type
4469
+ */
4470
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4471
+ /**
4472
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4473
+ */
4474
+ suggestedSegment: string;
4475
+ /**
4476
+ * Logo URL
4477
+ */
4478
+ logoUrl: string | null;
4479
+ /**
4480
+ * ISO 3166-1 alpha-2 (UPPERCASE); null = global platform
4481
+ */
4482
+ countryCode: string | null;
4483
+ /**
4484
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank). null = no region-aware suggestion; fall back to type.
4485
+ */
4486
+ category: string | null;
4487
+ /**
4488
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4489
+ */
4490
+ matchType: 'exact' | 'prefix' | 'substring';
4491
+ };
4492
+ /**
4493
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4494
+ */
4495
+ type matchType = 'exact' | 'prefix' | 'substring';
4496
+ type PlatformMatchResponseDto = {
4497
+ /**
4498
+ * Ranked matches, best tier first (at most 10 rows)
4499
+ */
4500
+ platforms: Array<PlatformMatchResultDto>;
4501
+ /**
4502
+ * Overall match quality — top row's tier, or 'none' when no hits
4503
+ */
4504
+ matchType: 'none' | 'exact' | 'prefix' | 'substring';
4505
+ /**
4506
+ * Total matches before LIMIT (truncation transparency)
4507
+ */
4508
+ total: number;
4509
+ /**
4510
+ * true when total > platforms.length (more matches exist)
4511
+ */
4512
+ hasMore: boolean;
4513
+ };
4514
+ /**
4515
+ * Overall match quality — top row's tier, or 'none' when no hits
4516
+ */
4517
+ type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
3928
4518
  type CreatePlatformDto = {
3929
4519
  /**
3930
4520
  * Platform name
@@ -3955,10 +4545,6 @@ type CreatePlatformDto = {
3955
4545
  */
3956
4546
  isActive?: boolean;
3957
4547
  };
3958
- /**
3959
- * Platform type
3960
- */
3961
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3962
4548
  type UpdatePlatformDto = {
3963
4549
  /**
3964
4550
  * Platform name
@@ -4243,10 +4829,6 @@ type AssetClassGroupDto = {
4243
4829
  */
4244
4830
  convertedBalance?: string;
4245
4831
  };
4246
- /**
4247
- * Asset class name
4248
- */
4249
- type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
4250
4832
  type AssetClassSummaryDto = {
4251
4833
  /**
4252
4834
  * Total number of accounts
@@ -4615,194 +5197,239 @@ type HoldingPnlWarningDto = {
4615
5197
  /**
4616
5198
  * Warning type
4617
5199
  */
4618
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5200
+ type type5 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4619
5201
  type HoldingPnlResponseDto = {
4620
- asOfDate: string;
4621
- baseCurrency: string;
4622
- /**
4623
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4624
- */
4625
- method: 'average' | 'FIFO';
4626
- rows: Array<HoldingPnlRowDto>;
4627
- warnings: Array<HoldingPnlWarningDto>;
4628
- };
4629
- /**
4630
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4631
- */
4632
- type method = 'average' | 'FIFO';
4633
- type CurrencyBalanceDto = {
4634
- /**
4635
- * ISO 4217 currency code
4636
- */
4637
- currency: string;
4638
- /**
4639
- * Balance amount
4640
- */
4641
- balance: string;
4642
- };
4643
- type TimeSeriesPointDto = {
4644
- /**
4645
- * Date in YYYY-MM-DD format
4646
- */
4647
- date: string;
4648
- /**
4649
- * Value at this date (in base currency)
4650
- */
4651
- value: string;
4652
- /**
4653
- * Change from previous point
4654
- */
4655
- change?: {
4656
- [key: string]: unknown;
4657
- };
5202
+ asOfDate: string;
5203
+ baseCurrency: string;
4658
5204
  /**
4659
- * Total assets at this date (in base currency)
5205
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4660
5206
  */
4661
- assets?: string;
5207
+ method: 'average' | 'FIFO';
5208
+ rows: Array<HoldingPnlRowDto>;
5209
+ warnings: Array<HoldingPnlWarningDto>;
5210
+ };
5211
+ /**
5212
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
5213
+ */
5214
+ type method = 'average' | 'FIFO';
5215
+ type AnonymousLoginDto = {
4662
5216
  /**
4663
- * Total liabilities at this date (in base currency)
5217
+ * Access token for anonymous login
4664
5218
  */
4665
- liabilities?: string;
5219
+ accessToken: string;
5220
+ };
5221
+ type AnonymousLoginResponseDto = {
4666
5222
  /**
4667
- * Multi-currency breakdown for this point
5223
+ * JWT auth token
4668
5224
  */
4669
- byCurrency?: Array<CurrencyBalanceDto>;
5225
+ authToken: string;
4670
5226
  };
4671
- type TrendSummaryDto = {
5227
+ type ParserContributionMetaDto = {
4672
5228
  /**
4673
- * Value at start of period
5229
+ * Institution slug (lowercase kebab-case)
4674
5230
  */
4675
- startValue: string;
5231
+ institution: string;
5232
+ region: 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5233
+ accountType: 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5234
+ format: 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5235
+ institutionDisplayName?: string;
5236
+ encoding?: string;
4676
5237
  /**
4677
- * Value at end of period
5238
+ * CSV delimiter character: ",", ";", "\t" or "|"
4678
5239
  */
4679
- endValue: string;
5240
+ delimiter?: string;
4680
5241
  /**
4681
- * Total change over period
5242
+ * Header row count; the client omits the field when it is 1
4682
5243
  */
4683
- totalChange: string;
5244
+ headerRows?: number;
5245
+ notes?: string;
5246
+ };
5247
+ type region = 'cn' | 'us' | 'de' | 'fr' | 'gb' | 'hk' | 'jp' | 'sg' | 'au' | 'ca' | 'other';
5248
+ type accountType = 'checking' | 'savings' | 'credit' | 'debit' | 'investment';
5249
+ type format = 'csv' | 'xlsx' | 'pdf' | 'ofx' | 'qif';
5250
+ type ParserContributionSamplesDto = {
4684
5251
  /**
4685
- * Total change percentage
5252
+ * Client-sanitized sample rows (key = column name, value = cell)
4686
5253
  */
4687
- totalChangePercentage: string;
5254
+ rows: Array<{
5255
+ [key: string]: unknown;
5256
+ }>;
5257
+ rawHeaders?: Array<string>;
4688
5258
  };
4689
- type MultiCurrencyPointDto = {
5259
+ type FieldHintDto = {
5260
+ columnName: string;
4690
5261
  /**
4691
- * Date in YYYY-MM-DD format
5262
+ * Date format, e.g. yyyy-MM-dd HH:mm
4692
5263
  */
5264
+ format?: string;
5265
+ signConvention?: 'negative-expense' | 'positive-expense' | 'separate-columns';
5266
+ creditColumn?: string;
5267
+ debitColumn?: string;
5268
+ };
5269
+ type signConvention = 'negative-expense' | 'positive-expense' | 'separate-columns';
5270
+ type ParserContributionFieldHintsDto = {
5271
+ date: FieldHintDto;
5272
+ amount: FieldHintDto;
5273
+ description?: FieldHintDto;
5274
+ balance?: FieldHintDto;
5275
+ payee?: FieldHintDto;
5276
+ reference?: FieldHintDto;
5277
+ category?: FieldHintDto;
5278
+ };
5279
+ type ExpectedTransactionDto = {
4693
5280
  date: string;
4694
- /**
4695
- * Balances by currency
4696
- */
4697
- byCurrency: Array<CurrencyBalanceDto>;
5281
+ amount: number;
5282
+ description: string;
5283
+ payee?: string;
5284
+ category?: string;
4698
5285
  };
4699
- type PortfolioTrendsResponseDto = {
4700
- /**
4701
- * Time series data points
4702
- */
4703
- series: Array<TimeSeriesPointDto>;
4704
- /**
4705
- * Period summary
4706
- */
4707
- summary: TrendSummaryDto;
5286
+ type ParserContributionExamplesDto = {
5287
+ expectedTransactions: Array<ExpectedTransactionDto>;
5288
+ };
5289
+ type ParserContributionRequestDto = {
5290
+ meta: ParserContributionMetaDto;
5291
+ samples: ParserContributionSamplesDto;
5292
+ fieldHints: ParserContributionFieldHintsDto;
4708
5293
  /**
4709
- * Period requested
5294
+ * Omitted entirely by the client when empty
4710
5295
  */
4711
- period: string;
5296
+ examples?: ParserContributionExamplesDto;
5297
+ };
5298
+ type ParserContributionRelayResponseDto = {
5299
+ issueUrl: string;
5300
+ issueNumber: number;
5301
+ };
5302
+ type SymbolSearchResultDto = {
5303
+ symbol: string;
5304
+ name?: {
5305
+ [key: string]: unknown;
5306
+ } | null;
5307
+ exchange?: {
5308
+ [key: string]: unknown;
5309
+ } | null;
4712
5310
  /**
4713
- * Data granularity
5311
+ * OpenBB asset_type (e.g. stock, etf)
4714
5312
  */
4715
- granularity: string;
5313
+ assetType?: {
5314
+ [key: string]: unknown;
5315
+ } | null;
4716
5316
  /**
4717
- * Base currency for converted values
5317
+ * IGN asset class (region.types.ts ASSET_CLASSES)
4718
5318
  */
4719
- currency: string;
5319
+ assetClass?: {
5320
+ [key: string]: unknown;
5321
+ } | null;
4720
5322
  /**
4721
- * Multi-currency time series (each point has currency breakdown)
5323
+ * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
4722
5324
  */
4723
- byCurrency?: Array<MultiCurrencyPointDto>;
5325
+ assetSubClass?: {
5326
+ [key: string]: unknown;
5327
+ } | null;
4724
5328
  /**
4725
- * Exchange rate warnings
5329
+ * Trading currency (extra_data or inferred from exchange)
4726
5330
  */
4727
- warnings?: Array<ExchangeRateWarningDto>;
5331
+ currency?: {
5332
+ [key: string]: unknown;
5333
+ } | null;
4728
5334
  };
4729
- type CashFlowPointDto = {
4730
- /**
4731
- * Month key (YYYY-MM)
4732
- */
4733
- month: string;
5335
+ type SymbolQuoteDto = {
5336
+ symbol?: string;
5337
+ name?: {
5338
+ [key: string]: unknown;
5339
+ } | null;
5340
+ exchange?: {
5341
+ [key: string]: unknown;
5342
+ } | null;
4734
5343
  /**
4735
- * Income in base currency (absolute, converted)
5344
+ * OpenBB asset_type
4736
5345
  */
4737
- income: string;
5346
+ assetType?: {
5347
+ [key: string]: unknown;
5348
+ } | null;
4738
5349
  /**
4739
- * Expense in base currency (absolute, converted)
5350
+ * IGN asset class
4740
5351
  */
4741
- expense: string;
5352
+ assetClass?: {
5353
+ [key: string]: unknown;
5354
+ } | null;
4742
5355
  /**
4743
- * netSavings = income − expense (savings positive)
5356
+ * IGN asset sub-class
4744
5357
  */
4745
- netSavings: string;
4746
- };
4747
- type CashFlowTrendSummaryDto = {
5358
+ assetSubClass?: {
5359
+ [key: string]: unknown;
5360
+ } | null;
4748
5361
  /**
4749
- * Total income across the period
5362
+ * Trading currency (extra_data or inferred from exchange)
4750
5363
  */
4751
- totalIncome: string;
5364
+ currency?: {
5365
+ [key: string]: unknown;
5366
+ } | null;
4752
5367
  /**
4753
- * Total expense across the period
5368
+ * Latest price (Decimal string)
4754
5369
  */
4755
- totalExpense: string;
5370
+ price?: {
5371
+ [key: string]: unknown;
5372
+ } | null;
4756
5373
  /**
4757
- * income expense across the period
5374
+ * Date the price was observed (ISO yyyy-MM-dd)
4758
5375
  */
4759
- totalNetSavings: string;
5376
+ priceDate?: {
5377
+ [key: string]: unknown;
5378
+ } | null;
4760
5379
  /**
4761
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
5380
+ * 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.
4762
5381
  */
4763
- averageMonthlyNetSavings: string;
4764
- };
4765
- type CashFlowTrendsResponseDto = {
5382
+ changePercent?: {
5383
+ [key: string]: unknown;
5384
+ } | null;
4766
5385
  /**
4767
- * Monthly cash-flow series (fixed N-month window, zero-filled)
5386
+ * Previous close (Decimal string)
4768
5387
  */
4769
- series: Array<CashFlowPointDto>;
5388
+ prevClose?: {
5389
+ [key: string]: unknown;
5390
+ } | null;
4770
5391
  /**
4771
- * Period totals
5392
+ * Day open (Decimal string)
4772
5393
  */
4773
- summary: CashFlowTrendSummaryDto;
5394
+ open?: {
5395
+ [key: string]: unknown;
5396
+ } | null;
4774
5397
  /**
4775
- * Period requested
5398
+ * Day high (Decimal string)
4776
5399
  */
4777
- period: string;
5400
+ high?: {
5401
+ [key: string]: unknown;
5402
+ } | null;
4778
5403
  /**
4779
- * Data granularity (v1 returns month buckets)
5404
+ * Day low (Decimal string)
4780
5405
  */
4781
- granularity: string;
5406
+ low?: {
5407
+ [key: string]: unknown;
5408
+ } | null;
4782
5409
  /**
4783
- * Base currency for converted values
5410
+ * Day volume (Decimal string)
4784
5411
  */
4785
- currency: string;
5412
+ volume?: {
5413
+ [key: string]: unknown;
5414
+ } | null;
4786
5415
  /**
4787
- * Exchange rate warnings (e.g. missing rate for a currency)
5416
+ * 52-week high (Decimal string)
4788
5417
  */
4789
- warnings?: Array<ExchangeRateWarningDto>;
4790
- };
4791
- type GenerateSnapshotBody = unknown;
4792
- type GenerateSnapshotResponse = unknown;
4793
- type BackfillSnapshotsBody = unknown;
4794
- type BackfillSnapshotsResponse = unknown;
4795
- type AnonymousLoginDto = {
5418
+ yearHigh?: {
5419
+ [key: string]: unknown;
5420
+ } | null;
4796
5421
  /**
4797
- * Access token for anonymous login
5422
+ * 52-week low (Decimal string)
4798
5423
  */
4799
- accessToken: string;
5424
+ yearLow?: {
5425
+ [key: string]: unknown;
5426
+ } | null;
4800
5427
  };
4801
5428
  type AccountControllerCreateData = {
4802
5429
  /**
4803
5430
  * Region code for tenant context
4804
5431
  */
4805
- region: 'cn' | 'us' | 'de' | 'gb';
5432
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4806
5433
  requestBody: CreateAccountDto;
4807
5434
  };
4808
5435
  type AccountControllerCreateResponse = AccountResponseDto;
@@ -4822,7 +5449,7 @@ type AccountControllerFindAllData = {
4822
5449
  /**
4823
5450
  * Region code for tenant context
4824
5451
  */
4825
- region: 'cn' | 'us' | 'de' | 'gb';
5452
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4826
5453
  /**
4827
5454
  * Search term for account path
4828
5455
  */
@@ -4845,7 +5472,7 @@ type AccountControllerFindOneData = {
4845
5472
  /**
4846
5473
  * Region code for tenant context
4847
5474
  */
4848
- region: 'cn' | 'us' | 'de' | 'gb';
5475
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4849
5476
  };
4850
5477
  type AccountControllerFindOneResponse = AccountResponseDto;
4851
5478
  type AccountControllerUpdateData = {
@@ -4856,7 +5483,7 @@ type AccountControllerUpdateData = {
4856
5483
  /**
4857
5484
  * Region code for tenant context
4858
5485
  */
4859
- region: 'cn' | 'us' | 'de' | 'gb';
5486
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4860
5487
  requestBody: UpdateAccountDto;
4861
5488
  };
4862
5489
  type AccountControllerUpdateResponse = AccountResponseDto;
@@ -4868,7 +5495,7 @@ type AccountControllerDeleteData = {
4868
5495
  /**
4869
5496
  * Region code for tenant context
4870
5497
  */
4871
- region: 'cn' | 'us' | 'de' | 'gb';
5498
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4872
5499
  };
4873
5500
  type AccountControllerDeleteResponse = void;
4874
5501
  type AccountControllerCloseData = {
@@ -4879,7 +5506,7 @@ type AccountControllerCloseData = {
4879
5506
  /**
4880
5507
  * Region code for tenant context
4881
5508
  */
4882
- region: 'cn' | 'us' | 'de' | 'gb';
5509
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4883
5510
  requestBody: CloseAccountDto;
4884
5511
  };
4885
5512
  type AccountControllerCloseResponse = AccountResponseDto;
@@ -4891,15 +5518,27 @@ type AccountControllerReopenData = {
4891
5518
  /**
4892
5519
  * Region code for tenant context
4893
5520
  */
4894
- region: 'cn' | 'us' | 'de' | 'gb';
5521
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4895
5522
  requestBody: ReopenAccountDto;
4896
5523
  };
4897
5524
  type AccountControllerReopenResponse = AccountResponseDto;
5525
+ type AccountControllerAddOpeningBalanceData = {
5526
+ /**
5527
+ * Account UUID
5528
+ */
5529
+ id: string;
5530
+ /**
5531
+ * Region code for tenant context
5532
+ */
5533
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5534
+ requestBody: CreateOpeningBalanceDto;
5535
+ };
5536
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4898
5537
  type AccountStandardsControllerGetTemplatesData = {
4899
5538
  /**
4900
5539
  * Region code (cn, us, de)
4901
5540
  */
4902
- region: 'cn' | 'us' | 'de' | 'gb';
5541
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4903
5542
  /**
4904
5543
  * Search term for path or description
4905
5544
  */
@@ -4918,21 +5557,21 @@ type AccountStandardsControllerGetTemplateMetadataData = {
4918
5557
  /**
4919
5558
  * Region code for tenant context
4920
5559
  */
4921
- region: 'cn' | 'us' | 'de' | 'gb';
5560
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4922
5561
  };
4923
5562
  type AccountStandardsControllerGetTemplateMetadataResponse = TemplateMetadataResponseDto;
4924
5563
  type AccountStandardsControllerGetRegionsData = {
4925
5564
  /**
4926
5565
  * Region code for tenant context
4927
5566
  */
4928
- region: 'cn' | 'us' | 'de' | 'gb';
5567
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4929
5568
  };
4930
5569
  type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
4931
5570
  type TransactionControllerCreateData = {
4932
5571
  /**
4933
5572
  * Region code for tenant context
4934
5573
  */
4935
- region: 'cn' | 'us' | 'de' | 'gb';
5574
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4936
5575
  /**
4937
5576
  * Transaction data with postings
4938
5577
  */
@@ -4945,7 +5584,7 @@ type TransactionControllerListData = {
4945
5584
  */
4946
5585
  accountId?: string;
4947
5586
  /**
4948
- * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5587
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
4949
5588
  */
4950
5589
  category?: string;
4951
5590
  /**
@@ -4956,6 +5595,10 @@ type TransactionControllerListData = {
4956
5595
  * Filter by end date (inclusive), format: YYYY-MM-DD
4957
5596
  */
4958
5597
  dateTo?: string;
5598
+ /**
5599
+ * Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
5600
+ */
5601
+ flow?: 'income' | 'expense';
4959
5602
  /**
4960
5603
  * Number of items per page (1-100, default: 20)
4961
5604
  */
@@ -4967,22 +5610,22 @@ type TransactionControllerListData = {
4967
5610
  /**
4968
5611
  * Region code for tenant context
4969
5612
  */
4970
- region: 'cn' | 'us' | 'de' | 'gb';
5613
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4971
5614
  /**
4972
5615
  * Search in narration and payee fields (max 200 chars)
4973
5616
  */
4974
5617
  search?: string;
4975
5618
  /**
4976
- * Filter by transaction status
5619
+ * Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
4977
5620
  */
4978
- status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
5621
+ status?: 'ACTIVE' | 'VOIDED' | 'SUPERSEDED' | 'ALL';
4979
5622
  };
4980
5623
  type TransactionControllerListResponse = TransactionListResponseDto;
4981
5624
  type TransactionControllerCreateBatchData = {
4982
5625
  /**
4983
5626
  * Region code for tenant context
4984
5627
  */
4985
- region: 'cn' | 'us' | 'de' | 'gb';
5628
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4986
5629
  requestBody: BatchCreateTransactionDto;
4987
5630
  };
4988
5631
  type TransactionControllerCreateBatchResponse = BatchTransactionResponseDto;
@@ -4994,7 +5637,7 @@ type TransactionControllerCorrectData = {
4994
5637
  /**
4995
5638
  * Region code for tenant context
4996
5639
  */
4997
- region: 'cn' | 'us' | 'de' | 'gb';
5640
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4998
5641
  requestBody: CorrectTransactionDto;
4999
5642
  };
5000
5643
  type TransactionControllerCorrectResponse = TransactionDetailDto;
@@ -5010,7 +5653,7 @@ type TransactionControllerSuggestTagsData = {
5010
5653
  /**
5011
5654
  * Region code for tenant context
5012
5655
  */
5013
- region: 'cn' | 'us' | 'de' | 'gb';
5656
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5014
5657
  /**
5015
5658
  * usage (default) or name
5016
5659
  */
@@ -5025,7 +5668,7 @@ type TransactionControllerGetDetailData = {
5025
5668
  /**
5026
5669
  * Region code for tenant context
5027
5670
  */
5028
- region: 'cn' | 'us' | 'de' | 'gb';
5671
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5029
5672
  };
5030
5673
  type TransactionControllerGetDetailResponse = TransactionDetailDto;
5031
5674
  type TransactionControllerUpdateData = {
@@ -5036,7 +5679,7 @@ type TransactionControllerUpdateData = {
5036
5679
  /**
5037
5680
  * Region code for tenant context
5038
5681
  */
5039
- region: 'cn' | 'us' | 'de' | 'gb';
5682
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5040
5683
  /**
5041
5684
  * Fields to update (all optional)
5042
5685
  */
@@ -5051,7 +5694,7 @@ type TransactionControllerDeleteData = {
5051
5694
  /**
5052
5695
  * Region code for tenant context
5053
5696
  */
5054
- region: 'cn' | 'us' | 'de' | 'gb';
5697
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5055
5698
  };
5056
5699
  type TransactionControllerDeleteResponse = void;
5057
5700
  type BalanceControllerGetBalanceData = {
@@ -5070,14 +5713,14 @@ type BalanceControllerGetBalanceData = {
5070
5713
  /**
5071
5714
  * Region code for tenant context
5072
5715
  */
5073
- region: 'cn' | 'us' | 'de' | 'gb';
5716
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5074
5717
  };
5075
5718
  type BalanceControllerGetBalanceResponse = BalanceResponseDto;
5076
5719
  type BalanceControllerGetMultiCurrencyBalanceData = {
5077
5720
  /**
5078
5721
  * Region code for tenant context
5079
5722
  */
5080
- region: 'cn' | 'us' | 'de' | 'gb';
5723
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5081
5724
  };
5082
5725
  type BalanceControllerGetMultiCurrencyBalanceResponse = MultiCurrencyBalanceResponseDto;
5083
5726
  type ReviewControllerFindAllData = {
@@ -5096,7 +5739,7 @@ type ReviewControllerFindAllData = {
5096
5739
  /**
5097
5740
  * Region code for tenant context
5098
5741
  */
5099
- region: 'cn' | 'us' | 'de' | 'gb';
5742
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5100
5743
  /**
5101
5744
  * Sort order
5102
5745
  */
@@ -5111,7 +5754,7 @@ type ReviewControllerGetStatsData = {
5111
5754
  /**
5112
5755
  * Region code for tenant context
5113
5756
  */
5114
- region: 'cn' | 'us' | 'de' | 'gb';
5757
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5115
5758
  };
5116
5759
  type ReviewControllerGetStatsResponse = ReviewStatsDto;
5117
5760
  type ReviewControllerFindOneData = {
@@ -5122,7 +5765,7 @@ type ReviewControllerFindOneData = {
5122
5765
  /**
5123
5766
  * Region code for tenant context
5124
5767
  */
5125
- region: 'cn' | 'us' | 'de' | 'gb';
5768
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5126
5769
  };
5127
5770
  type ReviewControllerFindOneResponse = ReviewDetailDto;
5128
5771
  type ReviewControllerResolveData = {
@@ -5133,7 +5776,7 @@ type ReviewControllerResolveData = {
5133
5776
  /**
5134
5777
  * Region code for tenant context
5135
5778
  */
5136
- region: 'cn' | 'us' | 'de' | 'gb';
5779
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5137
5780
  requestBody: ResolveReviewDto;
5138
5781
  };
5139
5782
  type ReviewControllerResolveResponse = ResolveResultDto;
@@ -5145,14 +5788,14 @@ type ReviewControllerUndoData = {
5145
5788
  /**
5146
5789
  * Region code for tenant context
5147
5790
  */
5148
- region: 'cn' | 'us' | 'de' | 'gb';
5791
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5149
5792
  };
5150
5793
  type ReviewControllerUndoResponse = UndoResultDto;
5151
5794
  type ReviewControllerBatchResolveData = {
5152
5795
  /**
5153
5796
  * Region code for tenant context
5154
5797
  */
5155
- region: 'cn' | 'us' | 'de' | 'gb';
5798
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5156
5799
  /**
5157
5800
  * Batch resolution request containing review IDs and action
5158
5801
  */
@@ -5297,7 +5940,7 @@ type CommodityControllerCreateData = {
5297
5940
  /**
5298
5941
  * Region code for tenant context
5299
5942
  */
5300
- region: 'cn' | 'us' | 'de' | 'gb';
5943
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5301
5944
  requestBody: CreateCommodityDto;
5302
5945
  };
5303
5946
  type CommodityControllerCreateResponse = CommodityResponseDto;
@@ -5305,7 +5948,7 @@ type CommodityControllerFindAllData = {
5305
5948
  /**
5306
5949
  * Region code for tenant context
5307
5950
  */
5308
- region: 'cn' | 'us' | 'de' | 'gb';
5951
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5309
5952
  /**
5310
5953
  * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
5311
5954
  */
@@ -5320,7 +5963,7 @@ type CommodityControllerFindOneData = {
5320
5963
  /**
5321
5964
  * Region code for tenant context
5322
5965
  */
5323
- region: 'cn' | 'us' | 'de' | 'gb';
5966
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5324
5967
  /**
5325
5968
  * Commodity symbol
5326
5969
  */
@@ -5331,7 +5974,7 @@ type CommodityControllerUpdateData = {
5331
5974
  /**
5332
5975
  * Region code for tenant context
5333
5976
  */
5334
- region: 'cn' | 'us' | 'de' | 'gb';
5977
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5335
5978
  requestBody: UpdateCommodityDto;
5336
5979
  /**
5337
5980
  * Commodity symbol
@@ -5343,7 +5986,7 @@ type CommodityControllerDeleteData = {
5343
5986
  /**
5344
5987
  * Region code for tenant context
5345
5988
  */
5346
- region: 'cn' | 'us' | 'de' | 'gb';
5989
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5347
5990
  /**
5348
5991
  * Commodity symbol
5349
5992
  */
@@ -5354,7 +5997,7 @@ type CommodityControllerGetOrCreateData = {
5354
5997
  /**
5355
5998
  * Region code for tenant context
5356
5999
  */
5357
- region: 'cn' | 'us' | 'de' | 'gb';
6000
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5358
6001
  /**
5359
6002
  * Commodity symbol
5360
6003
  */
@@ -5365,14 +6008,14 @@ type CommodityControllerBulkCreateData = {
5365
6008
  /**
5366
6009
  * Region code for tenant context
5367
6010
  */
5368
- region: 'cn' | 'us' | 'de' | 'gb';
6011
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5369
6012
  };
5370
6013
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5371
6014
  type PriceControllerCreateData = {
5372
6015
  /**
5373
6016
  * Region code for tenant context
5374
6017
  */
5375
- region: 'cn' | 'us' | 'de' | 'gb';
6018
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5376
6019
  requestBody: CreateBeanPriceDto;
5377
6020
  };
5378
6021
  type PriceControllerCreateResponse = PriceResponseDto;
@@ -5404,7 +6047,7 @@ type PriceControllerFindAllData = {
5404
6047
  /**
5405
6048
  * Region code for tenant context
5406
6049
  */
5407
- region: 'cn' | 'us' | 'de' | 'gb';
6050
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5408
6051
  /**
5409
6052
  * Search term for currency or quoteCurrency (case-insensitive partial match)
5410
6053
  */
@@ -5419,7 +6062,7 @@ type PriceControllerFindOneData = {
5419
6062
  /**
5420
6063
  * Region code for tenant context
5421
6064
  */
5422
- region: 'cn' | 'us' | 'de' | 'gb';
6065
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5423
6066
  };
5424
6067
  type PriceControllerFindOneResponse = PriceResponseDto;
5425
6068
  type PriceControllerUpdateData = {
@@ -5430,7 +6073,7 @@ type PriceControllerUpdateData = {
5430
6073
  /**
5431
6074
  * Region code for tenant context
5432
6075
  */
5433
- region: 'cn' | 'us' | 'de' | 'gb';
6076
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5434
6077
  requestBody: UpdateBeanPriceDto;
5435
6078
  };
5436
6079
  type PriceControllerUpdateResponse = PriceResponseDto;
@@ -5442,14 +6085,14 @@ type PriceControllerDeleteData = {
5442
6085
  /**
5443
6086
  * Region code for tenant context
5444
6087
  */
5445
- region: 'cn' | 'us' | 'de' | 'gb';
6088
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5446
6089
  };
5447
6090
  type PriceControllerDeleteResponse = void;
5448
6091
  type PriceControllerBulkCreateData = {
5449
6092
  /**
5450
6093
  * Region code for tenant context
5451
6094
  */
5452
- region: 'cn' | 'us' | 'de' | 'gb';
6095
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5453
6096
  requestBody: Array<string>;
5454
6097
  };
5455
6098
  type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
@@ -5457,7 +6100,7 @@ type RecurringRuleControllerCreateData = {
5457
6100
  /**
5458
6101
  * Region code for tenant context
5459
6102
  */
5460
- region: 'cn' | 'us' | 'de' | 'gb';
6103
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5461
6104
  requestBody: CreateRecurringRuleDto;
5462
6105
  };
5463
6106
  type RecurringRuleControllerCreateResponse = RecurringRuleResponseDto;
@@ -5477,14 +6120,14 @@ type RecurringRuleControllerFindAllData = {
5477
6120
  /**
5478
6121
  * Region code for tenant context
5479
6122
  */
5480
- region: 'cn' | 'us' | 'de' | 'gb';
6123
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5481
6124
  };
5482
6125
  type RecurringRuleControllerFindAllResponse = Array<RecurringRuleResponseDto>;
5483
6126
  type RecurringRuleControllerCreateFromTransactionData = {
5484
6127
  /**
5485
6128
  * Region code for tenant context
5486
6129
  */
5487
- region: 'cn' | 'us' | 'de' | 'gb';
6130
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5488
6131
  requestBody: CreateRuleFromTransactionDto;
5489
6132
  /**
5490
6133
  * Source transaction ID
@@ -5500,7 +6143,7 @@ type RecurringRuleControllerFindOneData = {
5500
6143
  /**
5501
6144
  * Region code for tenant context
5502
6145
  */
5503
- region: 'cn' | 'us' | 'de' | 'gb';
6146
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5504
6147
  };
5505
6148
  type RecurringRuleControllerFindOneResponse = RecurringRuleResponseDto;
5506
6149
  type RecurringRuleControllerUpdateData = {
@@ -5511,7 +6154,7 @@ type RecurringRuleControllerUpdateData = {
5511
6154
  /**
5512
6155
  * Region code for tenant context
5513
6156
  */
5514
- region: 'cn' | 'us' | 'de' | 'gb';
6157
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5515
6158
  requestBody: UpdateRecurringRuleDto;
5516
6159
  };
5517
6160
  type RecurringRuleControllerUpdateResponse = RecurringRuleResponseDto;
@@ -5523,7 +6166,7 @@ type RecurringRuleControllerDeleteData = {
5523
6166
  /**
5524
6167
  * Region code for tenant context
5525
6168
  */
5526
- region: 'cn' | 'us' | 'de' | 'gb';
6169
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5527
6170
  };
5528
6171
  type RecurringRuleControllerDeleteResponse = void;
5529
6172
  type RecurringRuleControllerGetWithStatsData = {
@@ -5534,7 +6177,7 @@ type RecurringRuleControllerGetWithStatsData = {
5534
6177
  /**
5535
6178
  * Region code for tenant context
5536
6179
  */
5537
- region: 'cn' | 'us' | 'de' | 'gb';
6180
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5538
6181
  };
5539
6182
  type RecurringRuleControllerGetWithStatsResponse = RecurringRuleWithStatsResponseDto;
5540
6183
  type ExpectedTransactionControllerFindAllData = {
@@ -5545,7 +6188,7 @@ type ExpectedTransactionControllerFindAllData = {
5545
6188
  /**
5546
6189
  * Region code for tenant context
5547
6190
  */
5548
- region: 'cn' | 'us' | 'de' | 'gb';
6191
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5549
6192
  /**
5550
6193
  * Filter by recurring rule ID
5551
6194
  */
@@ -5564,7 +6207,7 @@ type ExpectedTransactionControllerFindOverdueData = {
5564
6207
  /**
5565
6208
  * Region code for tenant context
5566
6209
  */
5567
- region: 'cn' | 'us' | 'de' | 'gb';
6210
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5568
6211
  };
5569
6212
  type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
5570
6213
  type ExpectedTransactionControllerFindOneData = {
@@ -5575,7 +6218,7 @@ type ExpectedTransactionControllerFindOneData = {
5575
6218
  /**
5576
6219
  * Region code for tenant context
5577
6220
  */
5578
- region: 'cn' | 'us' | 'de' | 'gb';
6221
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5579
6222
  };
5580
6223
  type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
5581
6224
  type ExpectedTransactionControllerSkipData = {
@@ -5586,7 +6229,7 @@ type ExpectedTransactionControllerSkipData = {
5586
6229
  /**
5587
6230
  * Region code for tenant context
5588
6231
  */
5589
- region: 'cn' | 'us' | 'de' | 'gb';
6232
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5590
6233
  };
5591
6234
  type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
5592
6235
  type ExpectedTransactionControllerUndoSkipData = {
@@ -5597,7 +6240,7 @@ type ExpectedTransactionControllerUndoSkipData = {
5597
6240
  /**
5598
6241
  * Region code for tenant context
5599
6242
  */
5600
- region: 'cn' | 'us' | 'de' | 'gb';
6243
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5601
6244
  };
5602
6245
  type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5603
6246
  type ExpectedTransactionControllerConfirmMatchData = {
@@ -5608,7 +6251,7 @@ type ExpectedTransactionControllerConfirmMatchData = {
5608
6251
  /**
5609
6252
  * Region code for tenant context
5610
6253
  */
5611
- region: 'cn' | 'us' | 'de' | 'gb';
6254
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5612
6255
  requestBody: ConfirmMatchDto;
5613
6256
  };
5614
6257
  type ExpectedTransactionControllerConfirmMatchResponse = unknown;
@@ -5618,39 +6261,153 @@ type ExpectedTransactionControllerUnmatchData = {
5618
6261
  */
5619
6262
  id: string;
5620
6263
  /**
5621
- * Region code for tenant context
6264
+ * Region code for tenant context
6265
+ */
6266
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6267
+ };
6268
+ type ExpectedTransactionControllerUnmatchResponse = unknown;
6269
+ type ExpectedTransactionControllerEnterNowData = {
6270
+ /**
6271
+ * Expected transaction ID
6272
+ */
6273
+ id: string;
6274
+ /**
6275
+ * Region code for tenant context
6276
+ */
6277
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6278
+ requestBody: EnterNowDto;
6279
+ };
6280
+ type ExpectedTransactionControllerEnterNowResponse = unknown;
6281
+ type ForecastControllerGetForecastData = {
6282
+ /**
6283
+ * Number of months to forecast (1-12, default 3)
6284
+ */
6285
+ months?: number;
6286
+ /**
6287
+ * Region code for tenant context
6288
+ */
6289
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6290
+ };
6291
+ type ForecastControllerGetForecastResponse = ForecastResponseDto;
6292
+ type ReportingControllerGetPortfolioTrendsData = {
6293
+ /**
6294
+ * Data granularity
6295
+ */
6296
+ granularity?: 'day' | 'week' | 'month';
6297
+ /**
6298
+ * Time period
6299
+ */
6300
+ period?: '1m' | '3m' | '6m' | '1y';
6301
+ /**
6302
+ * Region code for tenant context
6303
+ */
6304
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6305
+ };
6306
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6307
+ type ReportingControllerGetCashFlowTrendsData = {
6308
+ /**
6309
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6310
+ */
6311
+ granularity?: 'day' | 'week' | 'month';
6312
+ /**
6313
+ * Time period
6314
+ */
6315
+ period?: '1m' | '3m' | '6m' | '1y';
6316
+ /**
6317
+ * Region code for tenant context
6318
+ */
6319
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6320
+ };
6321
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6322
+ type ReportingControllerGenerateSnapshotData = {
6323
+ /**
6324
+ * Region code for tenant context
6325
+ */
6326
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6327
+ /**
6328
+ * Optional date (defaults to today)
6329
+ */
6330
+ requestBody: GenerateSnapshotBody;
6331
+ };
6332
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6333
+ type ReportingControllerBackfillSnapshotsData = {
6334
+ /**
6335
+ * Region code for tenant context
6336
+ */
6337
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6338
+ requestBody: BackfillSnapshotsBody;
6339
+ };
6340
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6341
+ type UserControllerDeleteOwnUserData = {
6342
+ requestBody: DeleteOwnUserDto;
6343
+ };
6344
+ type UserControllerDeleteOwnUserResponse = void;
6345
+ type UserControllerGetUserData = {
6346
+ acceptLanguage: string;
6347
+ };
6348
+ type UserControllerGetUserResponse = UserResponseDto;
6349
+ type UserControllerSignupUserData = {
6350
+ requestBody: SignupDto;
6351
+ };
6352
+ type UserControllerSignupUserResponse = SignupResponseDto;
6353
+ type UserControllerDeleteUserData = {
6354
+ /**
6355
+ * User ID to delete
6356
+ */
6357
+ id: string;
6358
+ };
6359
+ type UserControllerDeleteUserResponse = void;
6360
+ type UserControllerGetUserInfoData = {
6361
+ /**
6362
+ * User ID
5622
6363
  */
5623
- region: 'cn' | 'us' | 'de' | 'gb';
6364
+ id: string;
5624
6365
  };
5625
- type ExpectedTransactionControllerUnmatchResponse = unknown;
5626
- type ExpectedTransactionControllerEnterNowData = {
6366
+ type UserControllerGetUserInfoResponse = unknown;
6367
+ type UserControllerUpdateUserSettingData = {
6368
+ requestBody: UpdateUserSettingDto;
6369
+ };
6370
+ type UserControllerUpdateUserSettingResponse = unknown;
6371
+ type UserControllerGetAllUserSettingsByPageData = {
5627
6372
  /**
5628
- * Expected transaction ID
6373
+ * Page number
5629
6374
  */
5630
- id: string;
6375
+ pageNo: number;
5631
6376
  /**
5632
- * Region code for tenant context
6377
+ * Page size
5633
6378
  */
5634
- region: 'cn' | 'us' | 'de' | 'gb';
5635
- requestBody: EnterNowDto;
6379
+ pageSize: number;
5636
6380
  };
5637
- type ExpectedTransactionControllerEnterNowResponse = unknown;
5638
- type ForecastControllerGetForecastData = {
6381
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6382
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6383
+ type PropertyControllerGetAllResponse = unknown;
6384
+ type PropertyControllerGetByKeyData = {
5639
6385
  /**
5640
- * Number of months to forecast (1-12, default 3)
6386
+ * Property key
5641
6387
  */
5642
- months?: number;
6388
+ key: string;
6389
+ };
6390
+ type PropertyControllerGetByKeyResponse = unknown;
6391
+ type PropertyControllerUpdateData = {
5643
6392
  /**
5644
- * Region code for tenant context
6393
+ * Property key
5645
6394
  */
5646
- region: 'cn' | 'us' | 'de' | 'gb';
6395
+ key: string;
6396
+ requestBody: UpdatePropertyDto;
5647
6397
  };
5648
- type ForecastControllerGetForecastResponse = ForecastResponseDto;
6398
+ type PropertyControllerUpdateResponse = unknown;
6399
+ type PropertyControllerDeleteData = {
6400
+ /**
6401
+ * Property key
6402
+ */
6403
+ key: string;
6404
+ };
6405
+ type PropertyControllerDeleteResponse = void;
5649
6406
  type TransactionRuleControllerCreateData = {
5650
6407
  /**
5651
6408
  * Region code for tenant context
5652
6409
  */
5653
- region: 'cn' | 'us' | 'de' | 'gb';
6410
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5654
6411
  requestBody: CreateTransactionRuleDto;
5655
6412
  };
5656
6413
  type TransactionRuleControllerCreateResponse = TransactionRuleResponseDto;
@@ -5678,14 +6435,14 @@ type TransactionRuleControllerListData = {
5678
6435
  /**
5679
6436
  * Region code for tenant context
5680
6437
  */
5681
- region: 'cn' | 'us' | 'de' | 'gb';
6438
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5682
6439
  };
5683
6440
  type TransactionRuleControllerListResponse = TransactionRuleListResponseDto;
5684
6441
  type TransactionRuleControllerValidateData = {
5685
6442
  /**
5686
6443
  * Region code for tenant context
5687
6444
  */
5688
- region: 'cn' | 'us' | 'de' | 'gb';
6445
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5689
6446
  requestBody: ValidateRuleDto;
5690
6447
  };
5691
6448
  type TransactionRuleControllerValidateResponse = ValidateRuleResponseDto;
@@ -5693,7 +6450,7 @@ type TransactionRuleControllerBulkCreateData = {
5693
6450
  /**
5694
6451
  * Region code for tenant context
5695
6452
  */
5696
- region: 'cn' | 'us' | 'de' | 'gb';
6453
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5697
6454
  requestBody: BulkCreateRulesDto;
5698
6455
  };
5699
6456
  type TransactionRuleControllerBulkCreateResponse = BulkCreateRulesResponseDto;
@@ -5705,7 +6462,7 @@ type TransactionRuleControllerExportData = {
5705
6462
  /**
5706
6463
  * Region code for tenant context
5707
6464
  */
5708
- region: 'cn' | 'us' | 'de' | 'gb';
6465
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5709
6466
  };
5710
6467
  type TransactionRuleControllerExportResponse = ExportRulesResponseDto;
5711
6468
  type TransactionRuleControllerGetStatisticsData = {
@@ -5716,14 +6473,14 @@ type TransactionRuleControllerGetStatisticsData = {
5716
6473
  /**
5717
6474
  * Region code for tenant context
5718
6475
  */
5719
- region: 'cn' | 'us' | 'de' | 'gb';
6476
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5720
6477
  };
5721
6478
  type TransactionRuleControllerGetStatisticsResponse = RuleStatisticsResponseDto;
5722
6479
  type TransactionRuleControllerGetDetailData = {
5723
6480
  /**
5724
6481
  * Region code for tenant context
5725
6482
  */
5726
- region: 'cn' | 'us' | 'de' | 'gb';
6483
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5727
6484
  /**
5728
6485
  * Rule ID
5729
6486
  */
@@ -5734,7 +6491,7 @@ type TransactionRuleControllerUpdateData = {
5734
6491
  /**
5735
6492
  * Region code for tenant context
5736
6493
  */
5737
- region: 'cn' | 'us' | 'de' | 'gb';
6494
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5738
6495
  requestBody: UpdateTransactionRuleDto;
5739
6496
  /**
5740
6497
  * Rule ID to update
@@ -5746,7 +6503,7 @@ type TransactionRuleControllerDeleteData = {
5746
6503
  /**
5747
6504
  * Region code for tenant context
5748
6505
  */
5749
- region: 'cn' | 'us' | 'de' | 'gb';
6506
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5750
6507
  /**
5751
6508
  * Rule ID to delete
5752
6509
  */
@@ -5757,7 +6514,7 @@ type TransactionRuleControllerTestData = {
5757
6514
  /**
5758
6515
  * Region code for tenant context
5759
6516
  */
5760
- region: 'cn' | 'us' | 'de' | 'gb';
6517
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5761
6518
  requestBody: TestRuleDto;
5762
6519
  /**
5763
6520
  * Rule ID to test
@@ -5765,76 +6522,26 @@ type TransactionRuleControllerTestData = {
5765
6522
  ruleId: string;
5766
6523
  };
5767
6524
  type TransactionRuleControllerTestResponse = TestRuleResponseDto;
5768
- type UserControllerDeleteOwnUserData = {
5769
- requestBody: DeleteOwnUserDto;
5770
- };
5771
- type UserControllerDeleteOwnUserResponse = void;
5772
- type UserControllerGetUserData = {
5773
- acceptLanguage: string;
5774
- };
5775
- type UserControllerGetUserResponse = unknown;
5776
- type UserControllerSignupUserData = {
5777
- requestBody: SignupDto;
5778
- };
5779
- type UserControllerSignupUserResponse = unknown;
5780
- type UserControllerDeleteUserData = {
5781
- /**
5782
- * User ID to delete
5783
- */
5784
- id: string;
5785
- };
5786
- type UserControllerDeleteUserResponse = void;
5787
- type UserControllerGetUserInfoData = {
5788
- /**
5789
- * User ID
5790
- */
5791
- id: string;
5792
- };
5793
- type UserControllerGetUserInfoResponse = unknown;
5794
- type UserControllerUpdateUserSettingData = {
5795
- requestBody: UpdateUserSettingDto;
5796
- };
5797
- type UserControllerUpdateUserSettingResponse = unknown;
5798
- type UserControllerGetAllUserSettingsByPageData = {
5799
- /**
5800
- * Page number
5801
- */
5802
- pageNo: number;
5803
- /**
5804
- * Page size
5805
- */
5806
- pageSize: number;
5807
- };
5808
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
5809
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
5810
- type PropertyControllerGetAllResponse = unknown;
5811
- type PropertyControllerGetByKeyData = {
6525
+ type CategoryCatalogControllerListData = {
5812
6526
  /**
5813
- * Property key
6527
+ * Region code for tenant context
5814
6528
  */
5815
- key: string;
5816
- };
5817
- type PropertyControllerGetByKeyResponse = unknown;
5818
- type PropertyControllerUpdateData = {
6529
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5819
6530
  /**
5820
- * Property key
6531
+ * Filter by routeBearing (entity-router route() consumes it)
5821
6532
  */
5822
- key: string;
5823
- requestBody: UpdatePropertyDto;
5824
- };
5825
- type PropertyControllerUpdateResponse = unknown;
5826
- type PropertyControllerDeleteData = {
6533
+ routeBearing?: boolean;
5827
6534
  /**
5828
- * Property key
6535
+ * Filter by scenario
5829
6536
  */
5830
- key: string;
6537
+ scenario?: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
5831
6538
  };
5832
- type PropertyControllerDeleteResponse = void;
6539
+ type CategoryCatalogControllerListResponse = CategoryCatalogListResponseDto;
5833
6540
  type EventControllerCreateData = {
5834
6541
  /**
5835
6542
  * Region code for tenant context (decorative for life events)
5836
6543
  */
5837
- region: 'cn' | 'us' | 'de' | 'gb';
6544
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5838
6545
  requestBody: CreateBeanEventDto;
5839
6546
  };
5840
6547
  type EventControllerCreateResponse = EventResponseDto;
@@ -5858,7 +6565,7 @@ type EventControllerFindAllData = {
5858
6565
  /**
5859
6566
  * Region code for tenant context (decorative for life events)
5860
6567
  */
5861
- region: 'cn' | 'us' | 'de' | 'gb';
6568
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5862
6569
  /**
5863
6570
  * Filter life events to this date (ISO 8601 format)
5864
6571
  */
@@ -5877,7 +6584,7 @@ type EventControllerFindOneData = {
5877
6584
  /**
5878
6585
  * Region code for tenant context (decorative for life events)
5879
6586
  */
5880
- region: 'cn' | 'us' | 'de' | 'gb';
6587
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5881
6588
  };
5882
6589
  type EventControllerFindOneResponse = EventResponseDto;
5883
6590
  type EventControllerUpdateData = {
@@ -5888,7 +6595,7 @@ type EventControllerUpdateData = {
5888
6595
  /**
5889
6596
  * Region code for tenant context (decorative for life events)
5890
6597
  */
5891
- region: 'cn' | 'us' | 'de' | 'gb';
6598
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5892
6599
  requestBody: UpdateBeanEventDto;
5893
6600
  };
5894
6601
  type EventControllerUpdateResponse = EventResponseDto;
@@ -5900,7 +6607,7 @@ type EventControllerDeleteData = {
5900
6607
  /**
5901
6608
  * Region code for tenant context (decorative for life events)
5902
6609
  */
5903
- region: 'cn' | 'us' | 'de' | 'gb';
6610
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5904
6611
  };
5905
6612
  type EventControllerDeleteResponse = void;
5906
6613
  type EventControllerGetSliceData = {
@@ -5913,14 +6620,14 @@ type EventControllerGetSliceData = {
5913
6620
  /**
5914
6621
  * Region code for tenant context (decorative for life events)
5915
6622
  */
5916
- region: 'cn' | 'us' | 'de' | 'gb';
6623
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5917
6624
  };
5918
6625
  type EventControllerGetSliceResponse = unknown;
5919
6626
  type OnboardingControllerBootstrapData = {
5920
6627
  /**
5921
6628
  * Region code for tenant context
5922
6629
  */
5923
- region: 'cn' | 'us' | 'de' | 'gb';
6630
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5924
6631
  requestBody: OnboardingDto;
5925
6632
  };
5926
6633
  type OnboardingControllerBootstrapResponse = unknown;
@@ -5928,7 +6635,7 @@ type ReconciliationControllerComputeData = {
5928
6635
  /**
5929
6636
  * Region code for tenant context (decorative for reconciliation)
5930
6637
  */
5931
- region: 'cn' | 'us' | 'de' | 'gb';
6638
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5932
6639
  requestBody: ComputeReconciliationDto;
5933
6640
  };
5934
6641
  type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
@@ -5936,7 +6643,7 @@ type ReconciliationControllerAssertData = {
5936
6643
  /**
5937
6644
  * Region code for tenant context (decorative for reconciliation)
5938
6645
  */
5939
- region: 'cn' | 'us' | 'de' | 'gb';
6646
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5940
6647
  requestBody: AssertReconciliationDto;
5941
6648
  };
5942
6649
  type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
@@ -5944,7 +6651,7 @@ type ReconciliationControllerPadData = {
5944
6651
  /**
5945
6652
  * Region code for tenant context (decorative for reconciliation)
5946
6653
  */
5947
- region: 'cn' | 'us' | 'de' | 'gb';
6654
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5948
6655
  requestBody: PadReconciliationDto;
5949
6656
  };
5950
6657
  type ReconciliationControllerPadResponse = PadResultDto;
@@ -5956,7 +6663,7 @@ type ReconciliationControllerHistoryData = {
5956
6663
  /**
5957
6664
  * Region code for tenant context (decorative for reconciliation)
5958
6665
  */
5959
- region: 'cn' | 'us' | 'de' | 'gb';
6666
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5960
6667
  };
5961
6668
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
5962
6669
  type ExportControllerExportBeancountResponse = unknown;
@@ -5968,7 +6675,7 @@ type FileImportControllerImportFileData = {
5968
6675
  /**
5969
6676
  * Region code for tenant context
5970
6677
  */
5971
- region: 'cn' | 'us' | 'de' | 'gb';
6678
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5972
6679
  };
5973
6680
  type FileImportControllerImportFileResponse = ImportResultDto;
5974
6681
  type FileImportControllerIdentifyFileData = {
@@ -5979,7 +6686,7 @@ type FileImportControllerIdentifyFileData = {
5979
6686
  /**
5980
6687
  * Region code for tenant context
5981
6688
  */
5982
- region: 'cn' | 'us' | 'de' | 'gb';
6689
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5983
6690
  };
5984
6691
  type FileImportControllerIdentifyFileResponse = IdentifyResultDto;
5985
6692
  type FileImportControllerImportBeancountData = {
@@ -5990,7 +6697,7 @@ type FileImportControllerImportBeancountData = {
5990
6697
  /**
5991
6698
  * Region code for tenant context
5992
6699
  */
5993
- region: 'cn' | 'us' | 'de' | 'gb';
6700
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5994
6701
  };
5995
6702
  type FileImportControllerImportBeancountResponse = {
5996
6703
  imported?: number;
@@ -6009,7 +6716,7 @@ type ImporterConfigControllerGetConfigData = {
6009
6716
  /**
6010
6717
  * Region code for tenant context
6011
6718
  */
6012
- region: 'cn' | 'us' | 'de' | 'gb';
6719
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6013
6720
  };
6014
6721
  type ImporterConfigControllerGetConfigResponse = ImporterConfigDto;
6015
6722
  type ImporterConfigControllerUpdateConfigData = {
@@ -6020,7 +6727,7 @@ type ImporterConfigControllerUpdateConfigData = {
6020
6727
  /**
6021
6728
  * Region code for tenant context
6022
6729
  */
6023
- region: 'cn' | 'us' | 'de' | 'gb';
6730
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6024
6731
  /**
6025
6732
  * Partial configuration update. Only provided fields will be updated.
6026
6733
  */
@@ -6035,7 +6742,7 @@ type ImporterConfigControllerResetConfigData = {
6035
6742
  /**
6036
6743
  * Region code for tenant context
6037
6744
  */
6038
- region: 'cn' | 'us' | 'de' | 'gb';
6745
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6039
6746
  };
6040
6747
  type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
6041
6748
  type ProviderSyncControllerSyncData = {
@@ -6046,7 +6753,7 @@ type ProviderSyncControllerSyncData = {
6046
6753
  /**
6047
6754
  * Region code for tenant context
6048
6755
  */
6049
- region: 'cn' | 'us' | 'de' | 'gb';
6756
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6050
6757
  requestBody: ProviderSyncDto;
6051
6758
  };
6052
6759
  type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
@@ -6054,7 +6761,7 @@ type ProviderSyncControllerGetSupportedProvidersData = {
6054
6761
  /**
6055
6762
  * Region code for tenant context
6056
6763
  */
6057
- region: 'cn' | 'us' | 'de' | 'gb';
6764
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6058
6765
  };
6059
6766
  type ProviderSyncControllerGetSupportedProvidersResponse = SupportedProvidersResponseDto;
6060
6767
  type ProviderSyncControllerIsProviderSupportedData = {
@@ -6065,14 +6772,14 @@ type ProviderSyncControllerIsProviderSupportedData = {
6065
6772
  /**
6066
6773
  * Region code for tenant context
6067
6774
  */
6068
- region: 'cn' | 'us' | 'de' | 'gb';
6775
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6069
6776
  };
6070
6777
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6071
6778
  type ExternalAccountLinkControllerCreateData = {
6072
6779
  /**
6073
6780
  * Region code for tenant context
6074
6781
  */
6075
- region: 'cn' | 'us' | 'de' | 'gb';
6782
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6076
6783
  requestBody: CreateExternalAccountLinkDto;
6077
6784
  };
6078
6785
  type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
@@ -6081,7 +6788,7 @@ type ExternalAccountLinkControllerFindAllData = {
6081
6788
  /**
6082
6789
  * Region code for tenant context
6083
6790
  */
6084
- region: 'cn' | 'us' | 'de' | 'gb';
6791
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6085
6792
  };
6086
6793
  type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6087
6794
  type ExternalAccountLinkControllerFindOneData = {
@@ -6089,7 +6796,7 @@ type ExternalAccountLinkControllerFindOneData = {
6089
6796
  /**
6090
6797
  * Region code for tenant context
6091
6798
  */
6092
- region: 'cn' | 'us' | 'de' | 'gb';
6799
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6093
6800
  };
6094
6801
  type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6095
6802
  type ExternalAccountLinkControllerRemoveData = {
@@ -6097,14 +6804,14 @@ type ExternalAccountLinkControllerRemoveData = {
6097
6804
  /**
6098
6805
  * Region code for tenant context
6099
6806
  */
6100
- region: 'cn' | 'us' | 'de' | 'gb';
6807
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6101
6808
  };
6102
6809
  type ExternalAccountLinkControllerRemoveResponse = void;
6103
6810
  type TelemetryControllerReportTelemetryData = {
6104
6811
  /**
6105
6812
  * Region code for tenant context
6106
6813
  */
6107
- region: 'cn' | 'us' | 'de' | 'gb';
6814
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6108
6815
  requestBody: ParserTelemetryReportDto;
6109
6816
  };
6110
6817
  type TelemetryControllerReportTelemetryResponse = unknown;
@@ -6112,7 +6819,7 @@ type TelemetryControllerReportCoverageMissData = {
6112
6819
  /**
6113
6820
  * Region code for tenant context
6114
6821
  */
6115
- region: 'cn' | 'us' | 'de' | 'gb';
6822
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6116
6823
  requestBody: UncoveredFormatMissDto;
6117
6824
  };
6118
6825
  type TelemetryControllerReportCoverageMissResponse = unknown;
@@ -6120,7 +6827,7 @@ type TelemetryControllerGetCoverageMetricsData = {
6120
6827
  /**
6121
6828
  * Region code for tenant context
6122
6829
  */
6123
- region: 'cn' | 'us' | 'de' | 'gb';
6830
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6124
6831
  /**
6125
6832
  * Top-N uncovered formats (default 10)
6126
6833
  */
@@ -6131,7 +6838,7 @@ type NlpControllerProcessNaturalLanguageData = {
6131
6838
  /**
6132
6839
  * Region code for tenant context
6133
6840
  */
6134
- region: 'cn' | 'us' | 'de' | 'gb';
6841
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6135
6842
  /**
6136
6843
  * Natural language transaction input with optional session ID
6137
6844
  */
@@ -6142,7 +6849,7 @@ type NlpControllerClearSessionData = {
6142
6849
  /**
6143
6850
  * Region code for tenant context
6144
6851
  */
6145
- region: 'cn' | 'us' | 'de' | 'gb';
6852
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6146
6853
  /**
6147
6854
  * Specific session ID to clear (defaults to user session)
6148
6855
  */
@@ -6153,7 +6860,7 @@ type NlpControllerGetSessionData = {
6153
6860
  /**
6154
6861
  * Region code for tenant context
6155
6862
  */
6156
- region: 'cn' | 'us' | 'de' | 'gb';
6863
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6157
6864
  /**
6158
6865
  * Specific session ID to get (defaults to user session)
6159
6866
  */
@@ -6165,18 +6872,24 @@ type PlatformControllerCreateData = {
6165
6872
  requestBody: CreatePlatformDto;
6166
6873
  };
6167
6874
  type PlatformControllerCreateResponse = unknown;
6168
- type PlatformControllerGetPlatformListResponse = unknown;
6875
+ type PlatformControllerGetPlatformListData = {
6876
+ /**
6877
+ * Region code (ISO 3166-1 alpha-2) that biases within-type-bucket ordering (local-region platforms first). Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
6878
+ */
6879
+ region?: string;
6880
+ };
6881
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6169
6882
  type PlatformControllerMatchPlatformsData = {
6170
6883
  /**
6171
6884
  * Search query — Chinese name, English name, or abbreviation
6172
6885
  */
6173
6886
  q: string;
6174
6887
  /**
6175
- * Region code for category override lookup
6888
+ * Region code (ISO 3166-1 alpha-2) that biases within-tier ordering (local-region platforms first); also the intended categoryOverrides key. Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
6176
6889
  */
6177
6890
  region?: string;
6178
6891
  };
6179
- type PlatformControllerMatchPlatformsResponse = unknown;
6892
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6180
6893
  type PlatformControllerUpdateData = {
6181
6894
  /**
6182
6895
  * Platform ID
@@ -6200,7 +6913,7 @@ type DashboardControllerGetNetWorthData = {
6200
6913
  /**
6201
6914
  * Region code for tenant context
6202
6915
  */
6203
- region: 'cn' | 'us' | 'de' | 'gb';
6916
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6204
6917
  };
6205
6918
  type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
6206
6919
  type DashboardControllerGetAccountsData = {
@@ -6219,7 +6932,7 @@ type DashboardControllerGetAccountsData = {
6219
6932
  /**
6220
6933
  * Region code for tenant context
6221
6934
  */
6222
- region: 'cn' | 'us' | 'de' | 'gb';
6935
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6223
6936
  };
6224
6937
  type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6225
6938
  type DashboardControllerGetCashFlowData = {
@@ -6230,7 +6943,7 @@ type DashboardControllerGetCashFlowData = {
6230
6943
  /**
6231
6944
  * Region code for tenant context
6232
6945
  */
6233
- region: 'cn' | 'us' | 'de' | 'gb';
6946
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6234
6947
  };
6235
6948
  type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
6236
6949
  type DashboardControllerGetExpensesData = {
@@ -6249,7 +6962,7 @@ type DashboardControllerGetExpensesData = {
6249
6962
  /**
6250
6963
  * Region code for tenant context
6251
6964
  */
6252
- region: 'cn' | 'us' | 'de' | 'gb';
6965
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6253
6966
  };
6254
6967
  type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6255
6968
  type HoldingPnlControllerGetHoldingPnlData = {
@@ -6268,63 +6981,22 @@ type HoldingPnlControllerGetHoldingPnlData = {
6268
6981
  /**
6269
6982
  * Region code for tenant context
6270
6983
  */
6271
- region: 'cn' | 'us' | 'de' | 'gb';
6984
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6272
6985
  };
6273
6986
  type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
6274
- type ReportingControllerGetPortfolioTrendsData = {
6275
- /**
6276
- * Data granularity
6277
- */
6278
- granularity?: 'day' | 'week' | 'month';
6279
- /**
6280
- * Time period
6281
- */
6282
- period?: '1m' | '3m' | '6m' | '1y';
6283
- /**
6284
- * Region code for tenant context
6285
- */
6286
- region: 'cn' | 'us' | 'de' | 'gb';
6287
- };
6288
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6289
- type ReportingControllerGetCashFlowTrendsData = {
6290
- /**
6291
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
6292
- */
6293
- granularity?: 'day' | 'week' | 'month';
6294
- /**
6295
- * Time period
6296
- */
6297
- period?: '1m' | '3m' | '6m' | '1y';
6298
- /**
6299
- * Region code for tenant context
6300
- */
6301
- region: 'cn' | 'us' | 'de' | 'gb';
6302
- };
6303
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6304
- type ReportingControllerGenerateSnapshotData = {
6305
- /**
6306
- * Region code for tenant context
6307
- */
6308
- region: 'cn' | 'us' | 'de' | 'gb';
6309
- /**
6310
- * Optional date (defaults to today)
6311
- */
6312
- requestBody: GenerateSnapshotBody;
6313
- };
6314
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6315
- type ReportingControllerBackfillSnapshotsData = {
6316
- /**
6317
- * Region code for tenant context
6318
- */
6319
- region: 'cn' | 'us' | 'de' | 'gb';
6320
- requestBody: BackfillSnapshotsBody;
6321
- };
6322
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6323
6987
  type ApiKeysControllerCreateApiKeyResponse = unknown;
6324
6988
  type AuthControllerAccessTokenLoginData = {
6325
6989
  requestBody: AnonymousLoginDto;
6326
6990
  };
6327
- type AuthControllerAccessTokenLoginResponse = unknown;
6991
+ type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
6992
+ type ParserContributionControllerCreateData = {
6993
+ /**
6994
+ * Region code for tenant context (routing only; the institution region rides in the payload meta)
6995
+ */
6996
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6997
+ requestBody: ParserContributionRequestDto;
6998
+ };
6999
+ type ParserContributionControllerCreateResponse = ParserContributionRelayResponseDto;
6328
7000
  type CacheControllerFlushCacheResponse = unknown;
6329
7001
  type ExchangeRateControllerGetExchangeRateData = {
6330
7002
  /**
@@ -6351,6 +7023,29 @@ type HealthControllerResetCircuitBreakerData = {
6351
7023
  type HealthControllerResetCircuitBreakerResponse = unknown;
6352
7024
  type HealthControllerGetMetricsResponse = unknown;
6353
7025
  type InfoControllerGetInfoResponse = unknown;
7026
+ type SymbolControllerSearchData = {
7027
+ /**
7028
+ * Filter by OpenBB asset_type (e.g. stock, etf)
7029
+ */
7030
+ assetType?: string;
7031
+ /**
7032
+ * Filter by exchange code (e.g. US, HK, SS, SZ)
7033
+ */
7034
+ exchange?: string;
7035
+ /**
7036
+ * Maximum number of results (clamped 1..50)
7037
+ */
7038
+ limit?: number;
7039
+ /**
7040
+ * Search term — matched against symbol and instrument name. Empty string returns [].
7041
+ */
7042
+ q: string;
7043
+ };
7044
+ type SymbolControllerSearchResponse = Array<SymbolSearchResultDto>;
7045
+ type SymbolControllerGetQuoteData = {
7046
+ symbol: string;
7047
+ };
7048
+ type SymbolControllerGetQuoteResponse = SymbolQuoteDto;
6354
7049
  type $OpenApiTs = {
6355
7050
  '/api/v1/{region}/bean/accounts': {
6356
7051
  post: {
@@ -6415,7 +7110,7 @@ type $OpenApiTs = {
6415
7110
  */
6416
7111
  404: unknown;
6417
7112
  /**
6418
- * Account has transactions and cannot be deleted
7113
+ * Account has active transactions and cannot be deleted
6419
7114
  */
6420
7115
  409: unknown;
6421
7116
  };
@@ -6459,6 +7154,25 @@ type $OpenApiTs = {
6459
7154
  };
6460
7155
  };
6461
7156
  };
7157
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
7158
+ post: {
7159
+ req: AccountControllerAddOpeningBalanceData;
7160
+ res: {
7161
+ /**
7162
+ * Opening-balance transaction created
7163
+ */
7164
+ 201: OpeningBalanceResultDto;
7165
+ /**
7166
+ * Account not found
7167
+ */
7168
+ 404: unknown;
7169
+ /**
7170
+ * An opening balance already exists for this account
7171
+ */
7172
+ 409: unknown;
7173
+ };
7174
+ };
7175
+ };
6462
7176
  '/api/v1/{region}/bean/account-standards': {
6463
7177
  get: {
6464
7178
  req: AccountStandardsControllerGetTemplatesData;
@@ -7395,403 +8109,486 @@ type $OpenApiTs = {
7395
8109
  req: ForecastControllerGetForecastData;
7396
8110
  res: {
7397
8111
  /**
7398
- * Forecast retrieved successfully
8112
+ * Forecast retrieved successfully
8113
+ */
8114
+ 200: ForecastResponseDto;
8115
+ };
8116
+ };
8117
+ };
8118
+ '/api/v1/{region}/reporting/portfolio/trends': {
8119
+ get: {
8120
+ req: ReportingControllerGetPortfolioTrendsData;
8121
+ res: {
8122
+ /**
8123
+ * Trends retrieved successfully
8124
+ */
8125
+ 200: PortfolioTrendsResponseDto;
8126
+ /**
8127
+ * User not authenticated
8128
+ */
8129
+ 401: unknown;
8130
+ };
8131
+ };
8132
+ };
8133
+ '/api/v1/{region}/reporting/cash-flow/trends': {
8134
+ get: {
8135
+ req: ReportingControllerGetCashFlowTrendsData;
8136
+ res: {
8137
+ /**
8138
+ * Cash-flow trends retrieved successfully
8139
+ */
8140
+ 200: CashFlowTrendsResponseDto;
8141
+ /**
8142
+ * User not authenticated
8143
+ */
8144
+ 401: unknown;
8145
+ };
8146
+ };
8147
+ };
8148
+ '/api/v1/{region}/reporting/snapshots/generate': {
8149
+ post: {
8150
+ req: ReportingControllerGenerateSnapshotData;
8151
+ res: {
8152
+ /**
8153
+ * Snapshot generated successfully
8154
+ */
8155
+ 200: GenerateSnapshotResponse;
8156
+ /**
8157
+ * Invalid date format
8158
+ */
8159
+ 400: unknown;
8160
+ /**
8161
+ * User not authenticated
8162
+ */
8163
+ 401: unknown;
8164
+ };
8165
+ };
8166
+ };
8167
+ '/api/v1/{region}/reporting/snapshots/backfill': {
8168
+ post: {
8169
+ req: ReportingControllerBackfillSnapshotsData;
8170
+ res: {
8171
+ /**
8172
+ * Backfill completed successfully
8173
+ */
8174
+ 200: BackfillSnapshotsResponse;
8175
+ /**
8176
+ * Invalid date format or range
8177
+ */
8178
+ 400: unknown;
8179
+ /**
8180
+ * User not authenticated
8181
+ */
8182
+ 401: unknown;
8183
+ /**
8184
+ * Backfill already in progress for this user
7399
8185
  */
7400
- 200: ForecastResponseDto;
8186
+ 409: unknown;
7401
8187
  };
7402
8188
  };
7403
8189
  };
7404
- '/api/v1/{region}/bean/transaction-rules': {
7405
- post: {
7406
- req: TransactionRuleControllerCreateData;
8190
+ '/api/v1/users': {
8191
+ delete: {
8192
+ req: UserControllerDeleteOwnUserData;
7407
8193
  res: {
7408
8194
  /**
7409
- * Rule updated successfully (upsert mode)
7410
- */
7411
- 200: TransactionRuleResponseDto;
7412
- /**
7413
- * Validation failed
7414
- */
7415
- 400: ApiProblemResponseDto;
7416
- /**
7417
- * Unauthorized
8195
+ * User deleted successfully
7418
8196
  */
7419
- 401: ApiProblemResponseDto;
8197
+ 204: void;
7420
8198
  /**
7421
- * Resource conflict - another process is updating this rule
8199
+ * Invalid access token
7422
8200
  */
7423
- 409: ApiProblemResponseDto;
8201
+ 403: unknown;
7424
8202
  };
7425
8203
  };
7426
8204
  get: {
7427
- req: TransactionRuleControllerListData;
8205
+ req: UserControllerGetUserData;
7428
8206
  res: {
7429
8207
  /**
7430
- * List of rules
7431
- */
7432
- 200: TransactionRuleListResponseDto;
7433
- /**
7434
- * Unauthorized
8208
+ * User retrieved successfully
7435
8209
  */
7436
- 401: ApiProblemResponseDto;
8210
+ 200: UserResponseDto;
7437
8211
  };
7438
8212
  };
7439
- };
7440
- '/api/v1/{region}/bean/transaction-rules/validate': {
7441
8213
  post: {
7442
- req: TransactionRuleControllerValidateData;
8214
+ req: UserControllerSignupUserData;
7443
8215
  res: {
7444
8216
  /**
7445
- * Validation result
8217
+ * User created successfully
7446
8218
  */
7447
- 200: ValidateRuleResponseDto;
8219
+ 201: SignupResponseDto;
7448
8220
  /**
7449
- * Validation failed
8221
+ * Invalid Turnstile token (when Turnstile is enabled)
7450
8222
  */
7451
- 400: ApiProblemResponseDto;
8223
+ 400: unknown;
7452
8224
  /**
7453
- * Unauthorized
8225
+ * User signup is disabled
7454
8226
  */
7455
- 401: ApiProblemResponseDto;
8227
+ 403: unknown;
7456
8228
  };
7457
8229
  };
7458
8230
  };
7459
- '/api/v1/{region}/bean/transaction-rules/bulk': {
7460
- post: {
7461
- req: TransactionRuleControllerBulkCreateData;
8231
+ '/api/v1/users/{id}': {
8232
+ delete: {
8233
+ req: UserControllerDeleteUserData;
7462
8234
  res: {
7463
8235
  /**
7464
- * Bulk create completed
7465
- */
7466
- 201: BulkCreateRulesResponseDto;
7467
- /**
7468
- * Invalid bulk create data
8236
+ * User deleted successfully
7469
8237
  */
7470
- 400: ApiProblemResponseDto;
8238
+ 204: void;
7471
8239
  /**
7472
- * Unauthorized
8240
+ * Cannot delete own account or insufficient permissions
7473
8241
  */
7474
- 401: ApiProblemResponseDto;
8242
+ 403: unknown;
7475
8243
  };
7476
8244
  };
7477
8245
  };
7478
- '/api/v1/{region}/bean/transaction-rules/export/{format}': {
8246
+ '/api/v1/users/{id}/info': {
7479
8247
  get: {
7480
- req: TransactionRuleControllerExportData;
8248
+ req: UserControllerGetUserInfoData;
7481
8249
  res: {
7482
8250
  /**
7483
- * Exported rules
7484
- */
7485
- 200: ExportRulesResponseDto;
7486
- /**
7487
- * Unsupported format
8251
+ * User info retrieved successfully
7488
8252
  */
7489
- 400: ApiProblemResponseDto;
8253
+ 200: unknown;
7490
8254
  /**
7491
- * Unauthorized
8255
+ * Cannot access other user info without admin permission
7492
8256
  */
7493
- 401: ApiProblemResponseDto;
8257
+ 403: unknown;
7494
8258
  };
7495
8259
  };
7496
8260
  };
7497
- '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7498
- get: {
7499
- req: TransactionRuleControllerGetStatisticsData;
8261
+ '/api/v1/users/setting': {
8262
+ put: {
8263
+ req: UserControllerUpdateUserSettingData;
7500
8264
  res: {
7501
8265
  /**
7502
- * Rule statistics
8266
+ * Settings updated successfully
7503
8267
  */
7504
- 200: RuleStatisticsResponseDto;
8268
+ 200: unknown;
7505
8269
  /**
7506
- * Unauthorized
8270
+ * Insufficient permissions
7507
8271
  */
7508
- 401: ApiProblemResponseDto;
8272
+ 403: unknown;
7509
8273
  };
7510
8274
  };
7511
8275
  };
7512
- '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
8276
+ '/api/v1/users/settings-by-page': {
7513
8277
  get: {
7514
- req: TransactionRuleControllerGetDetailData;
8278
+ req: UserControllerGetAllUserSettingsByPageData;
7515
8279
  res: {
7516
8280
  /**
7517
- * Rule details
7518
- */
7519
- 200: TransactionRuleResponseDto;
7520
- /**
7521
- * Unauthorized
7522
- */
7523
- 401: ApiProblemResponseDto;
7524
- /**
7525
- * Forbidden - not owner of rule
7526
- */
7527
- 403: ApiProblemResponseDto;
7528
- /**
7529
- * Rule not found
8281
+ * Settings list retrieved successfully
7530
8282
  */
7531
- 404: ApiProblemResponseDto;
8283
+ 200: unknown;
7532
8284
  };
7533
8285
  };
7534
- put: {
7535
- req: TransactionRuleControllerUpdateData;
8286
+ };
8287
+ '/api/v1/users/asset-liability-summary': {
8288
+ get: {
7536
8289
  res: {
7537
8290
  /**
7538
- * Rule updated successfully
8291
+ * Summary retrieved successfully
7539
8292
  */
7540
- 200: TransactionRuleResponseDto;
8293
+ 200: unknown;
8294
+ };
8295
+ };
8296
+ };
8297
+ '/api/v1/admin/properties': {
8298
+ get: {
8299
+ res: {
7541
8300
  /**
7542
- * Validation failed
8301
+ * Properties retrieved successfully
7543
8302
  */
7544
- 400: ApiProblemResponseDto;
8303
+ 200: unknown;
7545
8304
  /**
7546
8305
  * Unauthorized
7547
8306
  */
7548
- 401: ApiProblemResponseDto;
7549
- /**
7550
- * Forbidden - not owner of rule
7551
- */
7552
- 403: ApiProblemResponseDto;
7553
- /**
7554
- * Rule not found
7555
- */
7556
- 404: ApiProblemResponseDto;
8307
+ 401: unknown;
7557
8308
  /**
7558
- * Resource conflict - rule is being modified by another process
8309
+ * Forbidden - insufficient permissions
7559
8310
  */
7560
- 409: ApiProblemResponseDto;
8311
+ 403: unknown;
7561
8312
  };
7562
8313
  };
7563
- delete: {
7564
- req: TransactionRuleControllerDeleteData;
8314
+ };
8315
+ '/api/v1/admin/properties/{key}': {
8316
+ get: {
8317
+ req: PropertyControllerGetByKeyData;
7565
8318
  res: {
7566
8319
  /**
7567
- * Rule deleted successfully
8320
+ * Property retrieved successfully
7568
8321
  */
7569
- 204: void;
8322
+ 200: unknown;
7570
8323
  /**
7571
8324
  * Unauthorized
7572
8325
  */
7573
- 401: ApiProblemResponseDto;
7574
- /**
7575
- * Forbidden - not owner of rule
7576
- */
7577
- 403: ApiProblemResponseDto;
8326
+ 401: unknown;
7578
8327
  /**
7579
- * Rule not found
8328
+ * Forbidden - insufficient permissions
7580
8329
  */
7581
- 404: ApiProblemResponseDto;
8330
+ 403: unknown;
7582
8331
  /**
7583
- * Resource conflict - rule is being modified by another process
8332
+ * Property not found
7584
8333
  */
7585
- 409: ApiProblemResponseDto;
8334
+ 404: unknown;
7586
8335
  };
7587
8336
  };
7588
- };
7589
- '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
7590
- post: {
7591
- req: TransactionRuleControllerTestData;
8337
+ put: {
8338
+ req: PropertyControllerUpdateData;
7592
8339
  res: {
7593
8340
  /**
7594
- * Test result
8341
+ * Property updated successfully
7595
8342
  */
7596
- 200: TestRuleResponseDto;
8343
+ 200: unknown;
7597
8344
  /**
7598
8345
  * Unauthorized
7599
8346
  */
7600
- 401: ApiProblemResponseDto;
7601
- /**
7602
- * Forbidden - not owner of rule
7603
- */
7604
- 403: ApiProblemResponseDto;
8347
+ 401: unknown;
7605
8348
  /**
7606
- * Rule not found
8349
+ * Forbidden - insufficient permissions
7607
8350
  */
7608
- 404: ApiProblemResponseDto;
8351
+ 403: unknown;
7609
8352
  };
7610
8353
  };
7611
- };
7612
- '/api/v1/users': {
7613
8354
  delete: {
7614
- req: UserControllerDeleteOwnUserData;
8355
+ req: PropertyControllerDeleteData;
7615
8356
  res: {
7616
8357
  /**
7617
- * User deleted successfully
8358
+ * Property deleted successfully
7618
8359
  */
7619
8360
  204: void;
7620
8361
  /**
7621
- * Invalid access token
8362
+ * Unauthorized
8363
+ */
8364
+ 401: unknown;
8365
+ /**
8366
+ * Forbidden - insufficient permissions
7622
8367
  */
7623
8368
  403: unknown;
7624
- };
7625
- };
7626
- get: {
7627
- req: UserControllerGetUserData;
7628
- res: {
7629
8369
  /**
7630
- * User retrieved successfully
8370
+ * Property not found
7631
8371
  */
7632
- 200: unknown;
8372
+ 404: unknown;
7633
8373
  };
7634
8374
  };
8375
+ };
8376
+ '/api/v1/{region}/bean/transaction-rules': {
7635
8377
  post: {
7636
- req: UserControllerSignupUserData;
8378
+ req: TransactionRuleControllerCreateData;
7637
8379
  res: {
7638
8380
  /**
7639
- * User created successfully
8381
+ * Rule updated successfully (upsert mode)
7640
8382
  */
7641
- 201: unknown;
8383
+ 200: TransactionRuleResponseDto;
7642
8384
  /**
7643
- * Invalid Turnstile token (when Turnstile is enabled)
8385
+ * Validation failed
7644
8386
  */
7645
- 400: unknown;
8387
+ 400: ApiProblemResponseDto;
7646
8388
  /**
7647
- * User signup is disabled
8389
+ * Unauthorized
7648
8390
  */
7649
- 403: unknown;
8391
+ 401: ApiProblemResponseDto;
8392
+ /**
8393
+ * Resource conflict - another process is updating this rule
8394
+ */
8395
+ 409: ApiProblemResponseDto;
7650
8396
  };
7651
8397
  };
7652
- };
7653
- '/api/v1/users/{id}': {
7654
- delete: {
7655
- req: UserControllerDeleteUserData;
8398
+ get: {
8399
+ req: TransactionRuleControllerListData;
7656
8400
  res: {
7657
8401
  /**
7658
- * User deleted successfully
8402
+ * List of rules
7659
8403
  */
7660
- 204: void;
8404
+ 200: TransactionRuleListResponseDto;
7661
8405
  /**
7662
- * Cannot delete own account or insufficient permissions
8406
+ * Unauthorized
7663
8407
  */
7664
- 403: unknown;
8408
+ 401: ApiProblemResponseDto;
7665
8409
  };
7666
8410
  };
7667
8411
  };
7668
- '/api/v1/users/{id}/info': {
7669
- get: {
7670
- req: UserControllerGetUserInfoData;
8412
+ '/api/v1/{region}/bean/transaction-rules/validate': {
8413
+ post: {
8414
+ req: TransactionRuleControllerValidateData;
7671
8415
  res: {
7672
8416
  /**
7673
- * User info retrieved successfully
8417
+ * Validation result
7674
8418
  */
7675
- 200: unknown;
8419
+ 200: ValidateRuleResponseDto;
7676
8420
  /**
7677
- * Cannot access other user info without admin permission
8421
+ * Validation failed
7678
8422
  */
7679
- 403: unknown;
8423
+ 400: ApiProblemResponseDto;
8424
+ /**
8425
+ * Unauthorized
8426
+ */
8427
+ 401: ApiProblemResponseDto;
7680
8428
  };
7681
8429
  };
7682
8430
  };
7683
- '/api/v1/users/setting': {
7684
- put: {
7685
- req: UserControllerUpdateUserSettingData;
8431
+ '/api/v1/{region}/bean/transaction-rules/bulk': {
8432
+ post: {
8433
+ req: TransactionRuleControllerBulkCreateData;
7686
8434
  res: {
7687
8435
  /**
7688
- * Settings updated successfully
8436
+ * Bulk create completed
7689
8437
  */
7690
- 200: unknown;
8438
+ 201: BulkCreateRulesResponseDto;
7691
8439
  /**
7692
- * Insufficient permissions
8440
+ * Invalid bulk create data
7693
8441
  */
7694
- 403: unknown;
8442
+ 400: ApiProblemResponseDto;
8443
+ /**
8444
+ * Unauthorized
8445
+ */
8446
+ 401: ApiProblemResponseDto;
7695
8447
  };
7696
8448
  };
7697
8449
  };
7698
- '/api/v1/users/settings-by-page': {
8450
+ '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7699
8451
  get: {
7700
- req: UserControllerGetAllUserSettingsByPageData;
8452
+ req: TransactionRuleControllerExportData;
7701
8453
  res: {
7702
8454
  /**
7703
- * Settings list retrieved successfully
8455
+ * Exported rules
7704
8456
  */
7705
- 200: unknown;
8457
+ 200: ExportRulesResponseDto;
8458
+ /**
8459
+ * Unsupported format
8460
+ */
8461
+ 400: ApiProblemResponseDto;
8462
+ /**
8463
+ * Unauthorized
8464
+ */
8465
+ 401: ApiProblemResponseDto;
7706
8466
  };
7707
8467
  };
7708
8468
  };
7709
- '/api/v1/users/asset-liability-summary': {
8469
+ '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7710
8470
  get: {
8471
+ req: TransactionRuleControllerGetStatisticsData;
7711
8472
  res: {
7712
8473
  /**
7713
- * Summary retrieved successfully
8474
+ * Rule statistics
7714
8475
  */
7715
- 200: unknown;
8476
+ 200: RuleStatisticsResponseDto;
8477
+ /**
8478
+ * Unauthorized
8479
+ */
8480
+ 401: ApiProblemResponseDto;
7716
8481
  };
7717
8482
  };
7718
8483
  };
7719
- '/api/v1/admin/properties': {
8484
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7720
8485
  get: {
8486
+ req: TransactionRuleControllerGetDetailData;
7721
8487
  res: {
7722
8488
  /**
7723
- * Properties retrieved successfully
8489
+ * Rule details
7724
8490
  */
7725
- 200: unknown;
8491
+ 200: TransactionRuleResponseDto;
7726
8492
  /**
7727
8493
  * Unauthorized
7728
8494
  */
7729
- 401: unknown;
8495
+ 401: ApiProblemResponseDto;
7730
8496
  /**
7731
- * Forbidden - insufficient permissions
8497
+ * Forbidden - not owner of rule
7732
8498
  */
7733
- 403: unknown;
8499
+ 403: ApiProblemResponseDto;
8500
+ /**
8501
+ * Rule not found
8502
+ */
8503
+ 404: ApiProblemResponseDto;
7734
8504
  };
7735
8505
  };
7736
- };
7737
- '/api/v1/admin/properties/{key}': {
7738
- get: {
7739
- req: PropertyControllerGetByKeyData;
8506
+ put: {
8507
+ req: TransactionRuleControllerUpdateData;
7740
8508
  res: {
7741
8509
  /**
7742
- * Property retrieved successfully
8510
+ * Rule updated successfully
7743
8511
  */
7744
- 200: unknown;
8512
+ 200: TransactionRuleResponseDto;
8513
+ /**
8514
+ * Validation failed
8515
+ */
8516
+ 400: ApiProblemResponseDto;
7745
8517
  /**
7746
8518
  * Unauthorized
7747
8519
  */
7748
- 401: unknown;
8520
+ 401: ApiProblemResponseDto;
7749
8521
  /**
7750
- * Forbidden - insufficient permissions
8522
+ * Forbidden - not owner of rule
7751
8523
  */
7752
- 403: unknown;
8524
+ 403: ApiProblemResponseDto;
7753
8525
  /**
7754
- * Property not found
8526
+ * Rule not found
7755
8527
  */
7756
- 404: unknown;
8528
+ 404: ApiProblemResponseDto;
8529
+ /**
8530
+ * Resource conflict - rule is being modified by another process
8531
+ */
8532
+ 409: ApiProblemResponseDto;
7757
8533
  };
7758
8534
  };
7759
- put: {
7760
- req: PropertyControllerUpdateData;
8535
+ delete: {
8536
+ req: TransactionRuleControllerDeleteData;
7761
8537
  res: {
7762
8538
  /**
7763
- * Property updated successfully
8539
+ * Rule deleted successfully
7764
8540
  */
7765
- 200: unknown;
8541
+ 204: void;
7766
8542
  /**
7767
8543
  * Unauthorized
7768
8544
  */
7769
- 401: unknown;
8545
+ 401: ApiProblemResponseDto;
7770
8546
  /**
7771
- * Forbidden - insufficient permissions
8547
+ * Forbidden - not owner of rule
7772
8548
  */
7773
- 403: unknown;
8549
+ 403: ApiProblemResponseDto;
8550
+ /**
8551
+ * Rule not found
8552
+ */
8553
+ 404: ApiProblemResponseDto;
8554
+ /**
8555
+ * Resource conflict - rule is being modified by another process
8556
+ */
8557
+ 409: ApiProblemResponseDto;
7774
8558
  };
7775
8559
  };
7776
- delete: {
7777
- req: PropertyControllerDeleteData;
8560
+ };
8561
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8562
+ post: {
8563
+ req: TransactionRuleControllerTestData;
7778
8564
  res: {
7779
8565
  /**
7780
- * Property deleted successfully
8566
+ * Test result
7781
8567
  */
7782
- 204: void;
8568
+ 200: TestRuleResponseDto;
7783
8569
  /**
7784
8570
  * Unauthorized
7785
8571
  */
7786
- 401: unknown;
8572
+ 401: ApiProblemResponseDto;
7787
8573
  /**
7788
- * Forbidden - insufficient permissions
8574
+ * Forbidden - not owner of rule
7789
8575
  */
7790
- 403: unknown;
8576
+ 403: ApiProblemResponseDto;
7791
8577
  /**
7792
- * Property not found
8578
+ * Rule not found
7793
8579
  */
7794
- 404: unknown;
8580
+ 404: ApiProblemResponseDto;
8581
+ };
8582
+ };
8583
+ };
8584
+ '/api/v1/{region}/bean/categories': {
8585
+ get: {
8586
+ req: CategoryCatalogControllerListData;
8587
+ res: {
8588
+ /**
8589
+ * Category catalog retrieved successfully
8590
+ */
8591
+ 200: CategoryCatalogListResponseDto;
7795
8592
  };
7796
8593
  };
7797
8594
  };
@@ -8334,11 +9131,12 @@ type $OpenApiTs = {
8334
9131
  };
8335
9132
  '/api/v1/bean/platforms/list': {
8336
9133
  get: {
9134
+ req: PlatformControllerGetPlatformListData;
8337
9135
  res: {
8338
9136
  /**
8339
9137
  * List of platforms with user binding status
8340
9138
  */
8341
- 200: unknown;
9139
+ 200: Array<PlatformListItemDto>;
8342
9140
  };
8343
9141
  };
8344
9142
  };
@@ -8347,9 +9145,9 @@ type $OpenApiTs = {
8347
9145
  req: PlatformControllerMatchPlatformsData;
8348
9146
  res: {
8349
9147
  /**
8350
- * List of matching platforms with suggested segment names
9148
+ * Matching platforms with overall match type and truncation flag
8351
9149
  */
8352
- 200: unknown;
9150
+ 200: PlatformMatchResponseDto;
8353
9151
  };
8354
9152
  };
8355
9153
  };
@@ -8468,104 +9266,63 @@ type $OpenApiTs = {
8468
9266
  };
8469
9267
  };
8470
9268
  };
8471
- '/api/v1/{region}/reporting/portfolio/trends': {
8472
- get: {
8473
- req: ReportingControllerGetPortfolioTrendsData;
8474
- res: {
8475
- /**
8476
- * Trends retrieved successfully
8477
- */
8478
- 200: PortfolioTrendsResponseDto;
8479
- /**
8480
- * User not authenticated
8481
- */
8482
- 401: unknown;
8483
- };
8484
- };
8485
- };
8486
- '/api/v1/{region}/reporting/cash-flow/trends': {
8487
- get: {
8488
- req: ReportingControllerGetCashFlowTrendsData;
9269
+ '/api/v1/auth/api-keys': {
9270
+ post: {
8489
9271
  res: {
8490
9272
  /**
8491
- * Cash-flow trends retrieved successfully
9273
+ * API key created successfully
8492
9274
  */
8493
- 200: CashFlowTrendsResponseDto;
9275
+ 201: unknown;
8494
9276
  /**
8495
- * User not authenticated
9277
+ * Insufficient permissions to create API key
8496
9278
  */
8497
- 401: unknown;
9279
+ 403: unknown;
8498
9280
  };
8499
9281
  };
8500
9282
  };
8501
- '/api/v1/{region}/reporting/snapshots/generate': {
9283
+ '/api/v1/auth/sessions/anonymous': {
8502
9284
  post: {
8503
- req: ReportingControllerGenerateSnapshotData;
9285
+ req: AuthControllerAccessTokenLoginData;
8504
9286
  res: {
8505
9287
  /**
8506
- * Snapshot generated successfully
8507
- */
8508
- 200: GenerateSnapshotResponse;
8509
- /**
8510
- * Invalid date format
9288
+ * Login successful
8511
9289
  */
8512
- 400: unknown;
9290
+ 200: AnonymousLoginResponseDto;
8513
9291
  /**
8514
- * User not authenticated
9292
+ * Invalid access token
8515
9293
  */
8516
9294
  401: unknown;
8517
9295
  };
8518
9296
  };
8519
9297
  };
8520
- '/api/v1/{region}/reporting/snapshots/backfill': {
9298
+ '/api/v1/{region}/community/parser-contributions': {
8521
9299
  post: {
8522
- req: ReportingControllerBackfillSnapshotsData;
9300
+ req: ParserContributionControllerCreateData;
8523
9301
  res: {
8524
9302
  /**
8525
- * Backfill completed successfully
8526
- */
8527
- 200: BackfillSnapshotsResponse;
8528
- /**
8529
- * Invalid date format or range
8530
- */
8531
- 400: unknown;
8532
- /**
8533
- * User not authenticated
9303
+ * Issue created by the bot
8534
9304
  */
8535
- 401: unknown;
9305
+ 201: ParserContributionRelayResponseDto;
8536
9306
  /**
8537
- * Backfill already in progress for this user
9307
+ * Unauthorized
8538
9308
  */
8539
- 409: unknown;
8540
- };
8541
- };
8542
- };
8543
- '/api/v1/auth/api-keys': {
8544
- post: {
8545
- res: {
9309
+ 401: ApiProblemResponseDto;
8546
9310
  /**
8547
- * API key created successfully
9311
+ * Validation failed (institution slug, empty samples, row/cell size limits)
8548
9312
  */
8549
- 201: unknown;
9313
+ 422: ApiProblemResponseDto;
8550
9314
  /**
8551
- * Insufficient permissions to create API key
9315
+ * Rate limited (5 submissions per user per hour)
8552
9316
  */
8553
- 403: unknown;
8554
- };
8555
- };
8556
- };
8557
- '/api/v1/auth/sessions/anonymous': {
8558
- post: {
8559
- req: AuthControllerAccessTokenLoginData;
8560
- res: {
9317
+ 429: ApiProblemResponseDto;
8561
9318
  /**
8562
- * Login successful
9319
+ * Relay not configured on this deployment — clients fall back to the clipboard flow
8563
9320
  */
8564
- 200: unknown;
9321
+ 501: ApiProblemResponseDto;
8565
9322
  /**
8566
- * Invalid access token
9323
+ * GitHub bot failure (upstream), safe to retry
8567
9324
  */
8568
- 401: unknown;
9325
+ 502: ApiProblemResponseDto;
8569
9326
  };
8570
9327
  };
8571
9328
  };
@@ -8708,6 +9465,32 @@ type $OpenApiTs = {
8708
9465
  };
8709
9466
  };
8710
9467
  };
9468
+ '/api/v1/market/symbols/search': {
9469
+ get: {
9470
+ req: SymbolControllerSearchData;
9471
+ res: {
9472
+ /**
9473
+ * Ranked search results
9474
+ */
9475
+ 200: Array<SymbolSearchResultDto>;
9476
+ };
9477
+ };
9478
+ };
9479
+ '/api/v1/market/symbols/{symbol}/quote': {
9480
+ get: {
9481
+ req: SymbolControllerGetQuoteData;
9482
+ res: {
9483
+ /**
9484
+ * Symbol quote
9485
+ */
9486
+ 200: SymbolQuoteDto;
9487
+ /**
9488
+ * Symbol not found in the openbb catalog
9489
+ */
9490
+ 404: unknown;
9491
+ };
9492
+ };
9493
+ };
8711
9494
  };
8712
9495
 
8713
9496
  declare class BeanAccountsService {
@@ -8759,7 +9542,7 @@ declare class BeanAccountsService {
8759
9542
  static accountControllerUpdate(data: AccountControllerUpdateData): CancelablePromise<AccountControllerUpdateResponse>;
8760
9543
  /**
8761
9544
  * Delete account
8762
- * Deletes an account (only if no transactions)
9545
+ * Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
8763
9546
  * @param data The data for the request.
8764
9547
  * @param data.id Account UUID
8765
9548
  * @param data.region Region code for tenant context
@@ -8789,6 +9572,17 @@ declare class BeanAccountsService {
8789
9572
  * @throws ApiError
8790
9573
  */
8791
9574
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
9575
+ /**
9576
+ * Post an opening-balance transaction
9577
+ * 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.
9578
+ * @param data The data for the request.
9579
+ * @param data.id Account UUID
9580
+ * @param data.region Region code for tenant context
9581
+ * @param data.requestBody
9582
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
9583
+ * @throws ApiError
9584
+ */
9585
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
8792
9586
  }
8793
9587
  declare class BeanTransactionsService {
8794
9588
  /**
@@ -8811,10 +9605,11 @@ declare class BeanTransactionsService {
8811
9605
  * @param data.offset Number of items to skip (default: 0)
8812
9606
  * @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
8813
9607
  * @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
8814
- * @param data.status Filter by transaction status
9608
+ * @param data.status Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
8815
9609
  * @param data.search Search in narration and payee fields (max 200 chars)
8816
9610
  * @param data.accountId Filter by account ID (transactions with postings to this account)
8817
- * @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
9611
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
9612
+ * @param data.flow Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
8818
9613
  * @returns TransactionListResponseDto Transaction list
8819
9614
  * @throws ApiError
8820
9615
  */
@@ -9120,4 +9915,4 @@ type OpenAPIConfig = {
9120
9915
  };
9121
9916
  declare const OpenAPI: OpenAPIConfig;
9122
9917
 
9123
- 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 ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, 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 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 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 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 SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type 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 assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type method, type mode, type paymentSource, type period, type provider, 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 };
9918
+ 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 CategoryCatalogControllerListData, type CategoryCatalogControllerListResponse, type CategoryCatalogEntryDto, type CategoryCatalogListResponseDto, type CategoryGroupDto, type ClientParsedDataDto, 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 ExpectedTransactionDto, 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 FieldHintDto, 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 NlpAccountCandidateDto, 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 ParserContributionControllerCreateData, type ParserContributionControllerCreateResponse, type ParserContributionExamplesDto, type ParserContributionFieldHintsDto, type ParserContributionMetaDto, type ParserContributionRelayResponseDto, type ParserContributionRequestDto, type ParserContributionSamplesDto, 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 PlatformControllerGetPlatformListData, 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 TransactionListItemDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionListViewpointDto, 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 UserResponseDto, type UserSettingsResponseDto, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type accountType, 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 flow, type format, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type productCategory, type provider, type region, type role, type scenario, type signConvention, 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 type5, type value, type viewMode };