@firela/api-types 0.0.0-canary.614ff760 → 0.0.0-canary.63a53b7d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -27,13 +27,9 @@ type CreateAccountDto = {
27
27
  */
28
28
  path: string;
29
29
  /**
30
- * Display name to distinguish accounts at the same path (default: "")
30
+ * Account open date (server defaults to today)
31
31
  */
32
- displayName?: string;
33
- /**
34
- * Account open date
35
- */
36
- openDate: string;
32
+ openDate?: string;
37
33
  /**
38
34
  * Allowed currencies (null = no restriction)
39
35
  */
@@ -50,18 +46,14 @@ type CreateAccountDto = {
50
46
  * Whether this is a custom (user-created) account
51
47
  */
52
48
  isCustom?: boolean;
53
- /**
54
- * i18n key for display name (overrides template)
55
- */
56
- i18nKey?: string;
57
49
  /**
58
50
  * Icon identifier (overrides template)
59
51
  */
60
52
  icon?: string;
61
53
  /**
62
- * Additional metadata
54
+ * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
63
55
  */
64
- openMeta?: {
56
+ openDirectiveMeta?: {
65
57
  [key: string]: unknown;
66
58
  };
67
59
  /**
@@ -82,10 +74,6 @@ type AccountResponseDto = {
82
74
  * Account path (hierarchical, colon-separated)
83
75
  */
84
76
  path: string;
85
- /**
86
- * Display name distinguishing multiple accounts at the same path
87
- */
88
- displayName: string;
89
77
  /**
90
78
  * Account type (root segment)
91
79
  */
@@ -119,17 +107,17 @@ type AccountResponseDto = {
119
107
  */
120
108
  isCustom: boolean;
121
109
  /**
122
- * i18n key for display name
110
+ * Localized display name (ADR-0114, read-time projection)
123
111
  */
124
- i18nKey?: string;
112
+ displayName?: string;
125
113
  /**
126
114
  * Icon identifier
127
115
  */
128
116
  icon?: string;
129
117
  /**
130
- * Account metadata
118
+ * Open directive metadata (ADR-0115 Decision 9)
131
119
  */
132
- openMeta?: {
120
+ openDirectiveMeta?: {
133
121
  [key: string]: unknown;
134
122
  };
135
123
  /**
@@ -172,10 +160,6 @@ type AccountListResponseDto = {
172
160
  total: number;
173
161
  };
174
162
  type UpdateAccountDto = {
175
- /**
176
- * Display name to distinguish accounts at the same path
177
- */
178
- displayName?: string;
179
163
  /**
180
164
  * Allowed currencies (null = no restriction)
181
165
  */
@@ -184,18 +168,14 @@ type UpdateAccountDto = {
184
168
  * Booking method for cost basis
185
169
  */
186
170
  bookingMethod?: 'FIFO' | 'LIFO' | 'HIFO' | 'AVERAGE' | 'STRICT' | 'STRICT_WITH_SIZE' | 'NONE';
187
- /**
188
- * i18n key for display name
189
- */
190
- i18nKey?: string;
191
171
  /**
192
172
  * Icon identifier
193
173
  */
194
174
  icon?: string;
195
175
  /**
196
- * Additional metadata (merged with existing)
176
+ * Open directive metadata (merged with existing; NOT an opening-balance amount)
197
177
  */
198
- openMeta?: {
178
+ openDirectiveMeta?: {
199
179
  [key: string]: unknown;
200
180
  };
201
181
  /**
@@ -221,6 +201,26 @@ type ReopenAccountDto = {
221
201
  */
222
202
  reopenDate?: string;
223
203
  };
204
+ type CreateOpeningBalanceDto = {
205
+ /**
206
+ * Opening balance amount (non-negative)
207
+ */
208
+ amount: number;
209
+ /**
210
+ * Currency code
211
+ */
212
+ currency: string;
213
+ /**
214
+ * Opening-balance date (defaults to now)
215
+ */
216
+ date?: string;
217
+ };
218
+ type OpeningBalanceResultDto = {
219
+ /**
220
+ * Created opening-balance transaction id.
221
+ */
222
+ transactionId: string;
223
+ };
224
224
  type AccountStandardResponseDto = {
225
225
  /**
226
226
  * Account path (hierarchical, colon-separated)
@@ -230,10 +230,6 @@ type AccountStandardResponseDto = {
230
230
  * Account type in Beancount hierarchy
231
231
  */
232
232
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
233
- /**
234
- * i18n key for localized display name
235
- */
236
- i18nKey: string;
237
233
  /**
238
234
  * Short localized display name
239
235
  */
@@ -266,10 +262,6 @@ type AccountStandardListResponseDto = {
266
262
  region: string;
267
263
  };
268
264
  type TemplateMetadataDto = {
269
- /**
270
- * Whether this path can be extended
271
- */
272
- extendable: boolean;
273
265
  /**
274
266
  * Root account type
275
267
  */
@@ -293,6 +285,50 @@ type RegionInfoDto = {
293
285
  type RegionsMetadataResponseDto = {
294
286
  regions: Array<RegionInfoDto>;
295
287
  };
288
+ type CostSpecDto = {
289
+ /**
290
+ * Cost specification mode (mirrors engine CostSpec)
291
+ */
292
+ mode: 'per-unit' | 'total' | 'date' | 'label' | 'auto';
293
+ /**
294
+ * Per-unit cost (required when mode is "per-unit")
295
+ */
296
+ numberPerUnit?: string;
297
+ /**
298
+ * Total cost for all units (required when mode is "total")
299
+ */
300
+ totalNumber?: string;
301
+ /**
302
+ * Cost currency (required in all modes)
303
+ */
304
+ currency: string;
305
+ /**
306
+ * Lot acquisition date, ISO 8601 (required when mode is "date")
307
+ */
308
+ date?: string;
309
+ /**
310
+ * Lot label (required when mode is "label"; optional tag in buy modes)
311
+ */
312
+ label?: string;
313
+ /**
314
+ * Merge lots for AVERAGE booking (mode: auto)
315
+ */
316
+ merge?: boolean;
317
+ };
318
+ /**
319
+ * Cost specification mode (mirrors engine CostSpec)
320
+ */
321
+ type mode = 'per-unit' | 'total' | 'date' | 'label' | 'auto';
322
+ type AmountDto = {
323
+ /**
324
+ * Amount as decimal string (max 15 integer + 15 decimal digits)
325
+ */
326
+ number: string;
327
+ /**
328
+ * Currency/commodity code
329
+ */
330
+ currency: string;
331
+ };
296
332
  type CreatePostingDto = {
297
333
  /**
298
334
  * Account name in Beancount format (must start with uppercase, colon-separated)
@@ -312,6 +348,14 @@ type CreatePostingDto = {
312
348
  meta?: {
313
349
  [key: string]: unknown;
314
350
  };
351
+ /**
352
+ * Cost basis (Beancount `{...}`). Maps to engine costSpec. Required for commodity holdings so they carry a monetary weight that can balance.
353
+ */
354
+ cost?: CostSpecDto;
355
+ /**
356
+ * Price annotation (Beancount `@...`). Maps to engine price. Used for valuation; cost takes priority for balance weight.
357
+ */
358
+ price?: AmountDto;
315
359
  };
316
360
  type CreateTransactionDto = {
317
361
  /**
@@ -361,6 +405,24 @@ type CreateTransactionDto = {
361
405
  * Transaction flag: * (cleared), ! (pending)
362
406
  */
363
407
  type flag = '*' | '!';
408
+ type CostDetailDto = {
409
+ /**
410
+ * Per-unit cost basis (mirrors engine Cost.number)
411
+ */
412
+ number?: string;
413
+ /**
414
+ * Cost currency
415
+ */
416
+ currency?: string;
417
+ /**
418
+ * Lot acquisition date (ISO yyyy-mm-dd)
419
+ */
420
+ date?: string;
421
+ /**
422
+ * Lot label
423
+ */
424
+ label?: string;
425
+ };
364
426
  type PostingResponseDto = {
365
427
  /**
366
428
  * Account name
@@ -374,6 +436,10 @@ type PostingResponseDto = {
374
436
  * Currency
375
437
  */
376
438
  currency?: string;
439
+ /**
440
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
441
+ */
442
+ cost?: CostDetailDto;
377
443
  };
378
444
  type RecurringSuggestionDto = {
379
445
  /**
@@ -571,9 +637,9 @@ type PostingDetailDto = {
571
637
  */
572
638
  accountId: string;
573
639
  /**
574
- * Account name
640
+ * Fully-qualified Beancount account path
575
641
  */
576
- accountName: string;
642
+ account: string;
577
643
  /**
578
644
  * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
579
645
  */
@@ -594,6 +660,10 @@ type PostingDetailDto = {
594
660
  * Cost date
595
661
  */
596
662
  costDate?: string;
663
+ /**
664
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
665
+ */
666
+ cost?: CostDetailDto;
597
667
  /**
598
668
  * Price amount
599
669
  */
@@ -701,6 +771,48 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
701
771
  * Transaction status
702
772
  */
703
773
  type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
774
+ type BalanceByCurrencyDto = {
775
+ /**
776
+ * ISO 4217 currency code
777
+ */
778
+ currency: string;
779
+ /**
780
+ * Balance amount
781
+ */
782
+ balance: string;
783
+ };
784
+ type ExchangeRateWarningDto = {
785
+ /**
786
+ * Warning type
787
+ */
788
+ type: string;
789
+ /**
790
+ * Currency without exchange rate
791
+ */
792
+ currency: string;
793
+ /**
794
+ * Total amount affected
795
+ */
796
+ totalAmount: string;
797
+ };
798
+ type TransactionListSummaryDto = {
799
+ /**
800
+ * 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.
801
+ */
802
+ totalAmount: string;
803
+ /**
804
+ * Base currency (ISO 4217)
805
+ */
806
+ currency: string;
807
+ /**
808
+ * Raw (unconverted) balance per currency
809
+ */
810
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
811
+ /**
812
+ * Currencies missing an FX rate (omitted when empty)
813
+ */
814
+ warnings?: Array<ExchangeRateWarningDto>;
815
+ };
704
816
  type TransactionListResponseDto = {
705
817
  /**
706
818
  * List of transactions
@@ -718,6 +830,10 @@ type TransactionListResponseDto = {
718
830
  * Number of items skipped
719
831
  */
720
832
  offset: number;
833
+ /**
834
+ * 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.
835
+ */
836
+ summary?: TransactionListSummaryDto;
721
837
  };
722
838
  type TagSuggestionDto = {
723
839
  /**
@@ -1094,17 +1210,17 @@ type ResolveResultDto = {
1094
1210
  [key: string]: string;
1095
1211
  };
1096
1212
  /**
1097
- * Resolution ID for undo
1213
+ * Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
1098
1214
  */
1099
- resolutionId: string;
1215
+ resolutionId?: string;
1100
1216
  /**
1101
1217
  * Whether this decision can be undone
1102
1218
  */
1103
- canUndo: boolean;
1219
+ canUndo?: boolean;
1104
1220
  /**
1105
1221
  * Deadline for undo (24h from resolution)
1106
1222
  */
1107
- undoDeadline: string;
1223
+ undoDeadline?: string;
1108
1224
  /**
1109
1225
  * Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
1110
1226
  */
@@ -1564,6 +1680,104 @@ type UpdateCommodityDto = {
1564
1680
  [key: string]: unknown;
1565
1681
  };
1566
1682
  };
1683
+ type CreateBeanPriceDto = {
1684
+ /**
1685
+ * Currency being priced (e.g., USD, AAPL, BTC)
1686
+ */
1687
+ currency: string;
1688
+ /**
1689
+ * Quote currency (pricing currency, e.g., CNY, EUR)
1690
+ */
1691
+ quoteCurrency: string;
1692
+ /**
1693
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
1694
+ */
1695
+ amount: number;
1696
+ /**
1697
+ * Price date (ISO 8601 format)
1698
+ */
1699
+ date: string;
1700
+ /**
1701
+ * Metadata (validated by Zod schema, max field lengths enforced)
1702
+ */
1703
+ metadata?: {
1704
+ [key: string]: unknown;
1705
+ };
1706
+ };
1707
+ type PriceResponseDto = {
1708
+ /**
1709
+ * Unique identifier
1710
+ */
1711
+ id: string;
1712
+ /**
1713
+ * User ID (owner of the price)
1714
+ */
1715
+ userId: string;
1716
+ /**
1717
+ * Currency being priced (e.g., USD, AAPL, BTC)
1718
+ */
1719
+ currency: string;
1720
+ /**
1721
+ * Quote currency (pricing currency, e.g., USD, CNY)
1722
+ */
1723
+ quoteCurrency: string;
1724
+ /**
1725
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
1726
+ */
1727
+ amount: number;
1728
+ /**
1729
+ * Price date (ISO 8601 format). Represents the date this price was valid.
1730
+ */
1731
+ date: string;
1732
+ /**
1733
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
1734
+ */
1735
+ meta: {
1736
+ [key: string]: unknown;
1737
+ };
1738
+ /**
1739
+ * Creation timestamp
1740
+ */
1741
+ createdAt: string;
1742
+ /**
1743
+ * Last update timestamp
1744
+ */
1745
+ updatedAt: string;
1746
+ };
1747
+ type PriceListResponseDto = {
1748
+ /**
1749
+ * List of prices
1750
+ */
1751
+ items: Array<PriceResponseDto>;
1752
+ /**
1753
+ * Total number of prices
1754
+ */
1755
+ total: number;
1756
+ };
1757
+ type UpdateBeanPriceDto = {
1758
+ /**
1759
+ * Currency being priced
1760
+ */
1761
+ currency?: string;
1762
+ /**
1763
+ * Quote currency (pricing currency)
1764
+ */
1765
+ quoteCurrency?: string;
1766
+ /**
1767
+ * Price amount (MUST be >= 0 per Beancount spec)
1768
+ */
1769
+ amount?: number;
1770
+ /**
1771
+ * Price date (ISO 8601 format)
1772
+ */
1773
+ date?: string;
1774
+ /**
1775
+ * Metadata
1776
+ */
1777
+ metadata?: {
1778
+ [key: string]: unknown;
1779
+ };
1780
+ };
1567
1781
  type CreateRecurringRuleDto = {
1568
1782
  /**
1569
1783
  * Rule name (unique per user)
@@ -2611,73 +2825,303 @@ type UpdatePropertyDto = {
2611
2825
  */
2612
2826
  value: string;
2613
2827
  };
2614
- type FileImportDto = {
2828
+ type CreateBeanEventDto = {
2615
2829
  /**
2616
- * Bill file to import (CSV, PDF, OFX, etc.)
2830
+ * Life event date (ISO 8601)
2617
2831
  */
2618
- file: Blob | File;
2619
- };
2620
- type ImportErrorDto = {
2832
+ date: string;
2621
2833
  /**
2622
- * Index of failed transaction in the file
2834
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
2623
2835
  */
2624
- index: number;
2836
+ type: string;
2625
2837
  /**
2626
- * Error message
2838
+ * Life event description. Empty string is a VALID value (distinct from absence).
2627
2839
  */
2628
- error: string;
2840
+ description: string;
2841
+ /**
2842
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
2843
+ */
2844
+ meta?: {
2845
+ [key: string]: unknown;
2846
+ };
2629
2847
  };
2630
- type ReviewItemPreviewDto = {
2848
+ type EventResponseDto = {
2631
2849
  /**
2632
- * Index in the import batch (for tracking)
2850
+ * Unique identifier
2633
2851
  */
2634
- index: number;
2852
+ id: string;
2635
2853
  /**
2636
- * Transaction date (ISO format)
2854
+ * User ID (owner of the life event)
2637
2855
  */
2638
- date: string;
2856
+ userId: string;
2639
2857
  /**
2640
- * Transaction amount (absolute value)
2858
+ * Life event date (ISO 8601 format)
2641
2859
  */
2642
- amount?: number;
2860
+ date: string;
2643
2861
  /**
2644
- * Currency code
2862
+ * Life event type (user-defined, e.g., "employer", "location")
2645
2863
  */
2646
- currency?: string;
2864
+ type: string;
2647
2865
  /**
2648
- * Transaction narration/description
2866
+ * Life event description. May be an empty string (a valid value distinct from absence).
2649
2867
  */
2650
- narration: string;
2868
+ description: string;
2651
2869
  /**
2652
- * Payee name
2870
+ * Product-side metadata (free-form JSON)
2653
2871
  */
2654
- payee?: string;
2872
+ meta: {
2873
+ [key: string]: unknown;
2874
+ };
2655
2875
  /**
2656
- * Inferred category from rule matching
2876
+ * Creation timestamp
2657
2877
  */
2658
- category?: string;
2878
+ createdAt: string;
2659
2879
  /**
2660
- * Confidence score for the match (0-1)
2880
+ * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
2661
2881
  */
2662
- confidence?: number;
2882
+ updatedAt: string;
2883
+ };
2884
+ type EventListResponseDto = {
2663
2885
  /**
2664
- * Type of branch requiring review
2886
+ * List of life events
2665
2887
  */
2666
- branchType?: 'DUPLICATE' | 'PAYEE_MATCH' | 'RULE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
2888
+ items: Array<EventResponseDto>;
2667
2889
  /**
2668
- * Human-readable reasons for requiring review
2890
+ * Total number of life events matching the query
2669
2891
  */
2670
- reasons?: Array<string>;
2892
+ total: number;
2671
2893
  };
2672
- /**
2673
- * Type of branch requiring review
2674
- */
2675
- type branchType = 'DUPLICATE' | 'PAYEE_MATCH' | 'RULE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
2676
- type ImportResultDto = {
2894
+ type UpdateBeanEventDto = {
2677
2895
  /**
2678
- * Number of successfully imported transactions
2896
+ * Life event date (ISO 8601)
2679
2897
  */
2680
- imported: number;
2898
+ date?: string;
2899
+ /**
2900
+ * Life event type (user-defined)
2901
+ */
2902
+ type?: string;
2903
+ /**
2904
+ * Life event description. Empty string is a VALID value (distinct from absence).
2905
+ */
2906
+ description?: string;
2907
+ /**
2908
+ * Product-side metadata (free-form JSON)
2909
+ */
2910
+ meta?: {
2911
+ [key: string]: unknown;
2912
+ };
2913
+ };
2914
+ type OnboardingAccountDto = {
2915
+ /**
2916
+ * Account path (Assets/Liabilities only; format validated by the account service)
2917
+ */
2918
+ path: string;
2919
+ /**
2920
+ * ISO 4217 currency code (3 letters)
2921
+ */
2922
+ currency: string;
2923
+ /**
2924
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
2925
+ */
2926
+ openingBalance?: string;
2927
+ /**
2928
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
2929
+ */
2930
+ platformId?: string;
2931
+ };
2932
+ type OnboardingDto = {
2933
+ /**
2934
+ * Asset/Liability accounts to register with opening balances
2935
+ */
2936
+ accounts?: Array<OnboardingAccountDto>;
2937
+ /**
2938
+ * Skip asset registration; only bootstrap the core account set
2939
+ */
2940
+ skipAssetRegistration?: boolean;
2941
+ };
2942
+ type ActualBalanceDto = {
2943
+ /**
2944
+ * Actual balance amount as a decimal string (preserves precision for tolerance inference).
2945
+ */
2946
+ amount: string;
2947
+ /**
2948
+ * Currency code (ISO 4217 or commodity ticker).
2949
+ */
2950
+ ccy: string;
2951
+ };
2952
+ type ComputeReconciliationDto = {
2953
+ /**
2954
+ * BeanAccount id to reconcile.
2955
+ */
2956
+ accountId: string;
2957
+ /**
2958
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
2959
+ */
2960
+ asOfDate: string;
2961
+ /**
2962
+ * Actual balance from the external statement.
2963
+ */
2964
+ actualBalance: ActualBalanceDto;
2965
+ };
2966
+ type ReconciliationComputeResultDto = {
2967
+ accountId: string;
2968
+ asOfDate: string;
2969
+ /**
2970
+ * System-computed book balance (decimal string).
2971
+ */
2972
+ bookBalance: string;
2973
+ /**
2974
+ * User-entered actual balance (decimal string).
2975
+ */
2976
+ actualBalance: string;
2977
+ currency: string;
2978
+ /**
2979
+ * Diff = book − actual (decimal string).
2980
+ */
2981
+ diff: string;
2982
+ /**
2983
+ * Applied tolerance (decimal string).
2984
+ */
2985
+ tolerance: string;
2986
+ /**
2987
+ * true when |diff| ≤ tolerance.
2988
+ */
2989
+ withinTolerance: boolean;
2990
+ /**
2991
+ * Suggested next action: assert when within tolerance, pad otherwise.
2992
+ */
2993
+ suggestedAction: 'assert' | 'pad';
2994
+ };
2995
+ /**
2996
+ * Suggested next action: assert when within tolerance, pad otherwise.
2997
+ */
2998
+ type suggestedAction = 'assert' | 'pad';
2999
+ type AssertReconciliationDto = {
3000
+ /**
3001
+ * BeanAccount id to reconcile.
3002
+ */
3003
+ accountId: string;
3004
+ /**
3005
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3006
+ */
3007
+ asOfDate: string;
3008
+ /**
3009
+ * Actual balance from the external statement.
3010
+ */
3011
+ actualBalance: ActualBalanceDto;
3012
+ /**
3013
+ * Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
3014
+ */
3015
+ tolerance?: string;
3016
+ };
3017
+ type ReconciliationRecordDto = {
3018
+ id: string;
3019
+ accountId: string;
3020
+ date: string;
3021
+ /**
3022
+ * Asserted (actual) amount.
3023
+ */
3024
+ amount: string;
3025
+ currency: string;
3026
+ tolerance?: string;
3027
+ /**
3028
+ * book − actual.
3029
+ */
3030
+ diffAmount?: string;
3031
+ diffCurrency?: string;
3032
+ createdAt: string;
3033
+ };
3034
+ type PadReconciliationDto = {
3035
+ /**
3036
+ * BeanAccount id to reconcile.
3037
+ */
3038
+ accountId: string;
3039
+ /**
3040
+ * Assertion date (ISO 8601, e.g. "2026-07-24").
3041
+ */
3042
+ asOfDate: string;
3043
+ /**
3044
+ * Actual balance from the external statement.
3045
+ */
3046
+ actualBalance: ActualBalanceDto;
3047
+ /**
3048
+ * Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
3049
+ */
3050
+ sourceAccount?: string;
3051
+ };
3052
+ type PadResultDto = {
3053
+ /**
3054
+ * Created pad adjusting transaction id.
3055
+ */
3056
+ transactionId: string;
3057
+ };
3058
+ type FileImportDto = {
3059
+ /**
3060
+ * Bill file to import (CSV, PDF, OFX, etc.)
3061
+ */
3062
+ file: Blob | File;
3063
+ };
3064
+ type ImportErrorDto = {
3065
+ /**
3066
+ * Index of failed transaction in the file
3067
+ */
3068
+ index: number;
3069
+ /**
3070
+ * Error message
3071
+ */
3072
+ error: string;
3073
+ };
3074
+ type ReviewItemPreviewDto = {
3075
+ /**
3076
+ * Index in the import batch (for tracking)
3077
+ */
3078
+ index: number;
3079
+ /**
3080
+ * Transaction date (ISO format)
3081
+ */
3082
+ date: string;
3083
+ /**
3084
+ * Transaction amount (absolute value)
3085
+ */
3086
+ amount?: number;
3087
+ /**
3088
+ * Currency code
3089
+ */
3090
+ currency?: string;
3091
+ /**
3092
+ * Transaction narration/description
3093
+ */
3094
+ narration: string;
3095
+ /**
3096
+ * Payee name
3097
+ */
3098
+ payee?: string;
3099
+ /**
3100
+ * Inferred category from rule matching
3101
+ */
3102
+ category?: string;
3103
+ /**
3104
+ * Confidence score for the match (0-1)
3105
+ */
3106
+ confidence?: number;
3107
+ /**
3108
+ * Type of branch requiring review
3109
+ */
3110
+ branchType?: 'DUPLICATE' | 'PAYEE_MATCH' | 'RULE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
3111
+ /**
3112
+ * Human-readable reasons for requiring review
3113
+ */
3114
+ reasons?: Array<string>;
3115
+ };
3116
+ /**
3117
+ * Type of branch requiring review
3118
+ */
3119
+ type branchType = 'DUPLICATE' | 'PAYEE_MATCH' | 'RULE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
3120
+ type ImportResultDto = {
3121
+ /**
3122
+ * Number of successfully imported transactions
3123
+ */
3124
+ imported: number;
2681
3125
  /**
2682
3126
  * Number of failed transactions
2683
3127
  */
@@ -2855,70 +3299,6 @@ type UpdateImporterConfigDto = {
2855
3299
  */
2856
3300
  data?: UpdateConfigDataDto;
2857
3301
  };
2858
- type CreatePlatformDto = {
2859
- /**
2860
- * Platform name
2861
- */
2862
- name: string;
2863
- /**
2864
- * Platform canonical identifier (lowercase, kebab-case)
2865
- */
2866
- canonical: string;
2867
- /**
2868
- * Platform aliases (multi-language names for lookup)
2869
- */
2870
- aliases: Array<string>;
2871
- /**
2872
- * Platform URL
2873
- */
2874
- url: string;
2875
- /**
2876
- * Platform type
2877
- */
2878
- type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2879
- /**
2880
- * Platform logo URL
2881
- */
2882
- logoUrl?: string;
2883
- /**
2884
- * Whether the platform is active
2885
- */
2886
- isActive?: boolean;
2887
- };
2888
- /**
2889
- * Platform type
2890
- */
2891
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2892
- type UpdatePlatformDto = {
2893
- /**
2894
- * Platform name
2895
- */
2896
- name?: string;
2897
- /**
2898
- * Platform canonical identifier (lowercase, kebab-case)
2899
- */
2900
- canonical?: string;
2901
- /**
2902
- * Platform aliases (multi-language names for lookup)
2903
- */
2904
- aliases?: Array<string>;
2905
- /**
2906
- * Platform URL
2907
- */
2908
- url?: string;
2909
- /**
2910
- * Platform type
2911
- */
2912
- type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2913
- /**
2914
- * Platform logo URL
2915
- */
2916
- logoUrl?: string;
2917
- /**
2918
- * Whether the platform is active
2919
- */
2920
- isActive?: boolean;
2921
- };
2922
3302
  type ProviderSyncConfigDto = {
2923
3303
  /**
2924
3304
  * Source account for the first posting
@@ -2940,6 +3320,10 @@ type ProviderSyncConfigDto = {
2940
3320
  * Filter pending transactions
2941
3321
  */
2942
3322
  filterPending?: boolean;
3323
+ /**
3324
+ * External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
3325
+ */
3326
+ externalAccountId?: string;
2943
3327
  };
2944
3328
  type ProviderSyncDto = {
2945
3329
  /**
@@ -2991,7 +3375,43 @@ type SupportedProvidersResponseDto = {
2991
3375
  */
2992
3376
  providers: Array<string>;
2993
3377
  };
3378
+ type CreateExternalAccountLinkDto = {
3379
+ /**
3380
+ * Open Banking provider (whitelist)
3381
+ */
3382
+ provider: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3383
+ /**
3384
+ * External account ID from the provider
3385
+ */
3386
+ externalAccountId: string;
3387
+ /**
3388
+ * Target BeanAccount ID (must belong to the JWT user)
3389
+ */
3390
+ beanAccountId: string;
3391
+ };
3392
+ /**
3393
+ * Open Banking provider (whitelist)
3394
+ */
3395
+ type provider = 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
3396
+ type ExternalAccountLinkResponseDto = {
3397
+ id: string;
3398
+ provider: string;
3399
+ externalAccountId: string;
3400
+ beanAccountId: string;
3401
+ isActive: boolean;
3402
+ createdAt: string;
3403
+ updatedAt: string;
3404
+ };
3405
+ type ExternalAccountLinkListResponseDto = {
3406
+ items: Array<ExternalAccountLinkResponseDto>;
3407
+ total: number;
3408
+ /**
3409
+ * Filter by provider (query param)
3410
+ */
3411
+ provider?: string;
3412
+ };
2994
3413
  type ParserTelemetryReportDto = unknown;
3414
+ type UncoveredFormatMissDto = unknown;
2995
3415
  type ProcessNlpDto = {
2996
3416
  /**
2997
3417
  * Natural language text describing a transaction (Chinese)
@@ -3525,15 +3945,69 @@ type liabilitySubType = 'borrow' | 'repay';
3525
3945
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3526
3946
  */
3527
3947
  type equitySubType = 'opening' | 'adjustment';
3528
- type BalanceByCurrencyDto = {
3948
+ type CreatePlatformDto = {
3529
3949
  /**
3530
- * ISO 4217 currency code
3950
+ * Platform name
3531
3951
  */
3532
- currency: string;
3952
+ name: string;
3533
3953
  /**
3534
- * Balance amount
3954
+ * Platform canonical identifier (lowercase, kebab-case)
3535
3955
  */
3536
- balance: string;
3956
+ canonical: string;
3957
+ /**
3958
+ * Platform aliases (multi-language names for lookup)
3959
+ */
3960
+ aliases: Array<string>;
3961
+ /**
3962
+ * Platform URL
3963
+ */
3964
+ url: string;
3965
+ /**
3966
+ * Platform type
3967
+ */
3968
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3969
+ /**
3970
+ * Platform logo URL
3971
+ */
3972
+ logoUrl?: string;
3973
+ /**
3974
+ * Whether the platform is active
3975
+ */
3976
+ isActive?: boolean;
3977
+ };
3978
+ /**
3979
+ * Platform type
3980
+ */
3981
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3982
+ type UpdatePlatformDto = {
3983
+ /**
3984
+ * Platform name
3985
+ */
3986
+ name?: string;
3987
+ /**
3988
+ * Platform canonical identifier (lowercase, kebab-case)
3989
+ */
3990
+ canonical?: string;
3991
+ /**
3992
+ * Platform aliases (multi-language names for lookup)
3993
+ */
3994
+ aliases?: Array<string>;
3995
+ /**
3996
+ * Platform URL
3997
+ */
3998
+ url?: string;
3999
+ /**
4000
+ * Platform type
4001
+ */
4002
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4003
+ /**
4004
+ * Platform logo URL
4005
+ */
4006
+ logoUrl?: string;
4007
+ /**
4008
+ * Whether the platform is active
4009
+ */
4010
+ isActive?: boolean;
3537
4011
  };
3538
4012
  type NetWorthByCurrencyDto = {
3539
4013
  /**
@@ -3573,20 +4047,6 @@ type ConvertedNetWorthDto = {
3573
4047
  [key: string]: unknown;
3574
4048
  };
3575
4049
  };
3576
- type ExchangeRateWarningDto = {
3577
- /**
3578
- * Warning type
3579
- */
3580
- type: string;
3581
- /**
3582
- * Currency without exchange rate
3583
- */
3584
- currency: string;
3585
- /**
3586
- * Total amount affected
3587
- */
3588
- totalAmount: string;
3589
- };
3590
4050
  type NetWorthResponseDto = {
3591
4051
  /**
3592
4052
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3650,6 +4110,10 @@ type AccountItemDto = {
3650
4110
  * Currency code
3651
4111
  */
3652
4112
  currency: string;
4113
+ /**
4114
+ * FX-converted balance in base currency; omitted when not convertible
4115
+ */
4116
+ convertedBalance?: string;
3653
4117
  };
3654
4118
  type PlatformGroupDto = {
3655
4119
  /**
@@ -3665,9 +4129,39 @@ type PlatformGroupDto = {
3665
4129
  */
3666
4130
  accounts: Array<AccountItemDto>;
3667
4131
  /**
3668
- * Total balance across all accounts in platform
4132
+ * FX-converted total balance in base currency
3669
4133
  */
3670
4134
  totalBalance: string;
4135
+ /**
4136
+ * Raw (unconverted) balances grouped by currency
4137
+ */
4138
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4139
+ /**
4140
+ * Converted balance in base currency (omitted when no currency is convertible)
4141
+ */
4142
+ convertedBalance?: string;
4143
+ /**
4144
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4145
+ */
4146
+ sharePct: number;
4147
+ };
4148
+ type AccountExchangeRateWarningDto = {
4149
+ /**
4150
+ * Warning type
4151
+ */
4152
+ type: string;
4153
+ /**
4154
+ * Currency without exchange rate
4155
+ */
4156
+ currency: string;
4157
+ /**
4158
+ * Affected account paths
4159
+ */
4160
+ accounts: Array<string>;
4161
+ /**
4162
+ * Total amount in this currency
4163
+ */
4164
+ totalAmount: string;
3671
4165
  };
3672
4166
  type AccountsSummaryDto = {
3673
4167
  /**
@@ -3678,6 +4172,14 @@ type AccountsSummaryDto = {
3678
4172
  * Total number of platforms
3679
4173
  */
3680
4174
  totalPlatforms: number;
4175
+ /**
4176
+ * Base currency for conversion
4177
+ */
4178
+ baseCurrency: string;
4179
+ /**
4180
+ * Per-account exchange rate warnings
4181
+ */
4182
+ warnings?: Array<AccountExchangeRateWarningDto>;
3681
4183
  };
3682
4184
  type AccountsResponseDto = {
3683
4185
  /**
@@ -3710,6 +4212,10 @@ type AccountItemWithAssetClassDto = {
3710
4212
  * Currency code
3711
4213
  */
3712
4214
  currency: string;
4215
+ /**
4216
+ * FX-converted balance in base currency; omitted when not convertible
4217
+ */
4218
+ convertedBalance?: string;
3713
4219
  /**
3714
4220
  * Asset class
3715
4221
  */
@@ -3726,7 +4232,15 @@ type AccountItemWithAssetClassDto = {
3726
4232
  * Risk level
3727
4233
  */
3728
4234
  riskLevel?: string;
4235
+ /**
4236
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4237
+ */
4238
+ source?: 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
3729
4239
  };
4240
+ /**
4241
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4242
+ */
4243
+ type source2 = 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
3730
4244
  type AssetClassGroupDto = {
3731
4245
  /**
3732
4246
  * Asset class name
@@ -3753,24 +4267,6 @@ type AssetClassGroupDto = {
3753
4267
  * Asset class name
3754
4268
  */
3755
4269
  type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
3756
- type AccountExchangeRateWarningDto = {
3757
- /**
3758
- * Warning type
3759
- */
3760
- type: string;
3761
- /**
3762
- * Currency without exchange rate
3763
- */
3764
- currency: string;
3765
- /**
3766
- * Affected account paths
3767
- */
3768
- accounts: Array<string>;
3769
- /**
3770
- * Total amount in this currency
3771
- */
3772
- totalAmount: string;
3773
- };
3774
4270
  type AssetClassSummaryDto = {
3775
4271
  /**
3776
4272
  * Total number of accounts
@@ -3788,6 +4284,12 @@ type AssetClassSummaryDto = {
3788
4284
  * Exchange rate warnings
3789
4285
  */
3790
4286
  warnings?: Array<AccountExchangeRateWarningDto>;
4287
+ /**
4288
+ * ADR-0105 §4 fallback provenance stats (holding level only). valueRatio is the grey-area share of total converted value; count is the number of source=FALLBACK holdings.
4289
+ */
4290
+ fallback?: {
4291
+ [key: string]: unknown;
4292
+ };
3791
4293
  };
3792
4294
  type AssetClassAccountsResponseDto = {
3793
4295
  /**
@@ -3798,6 +4300,54 @@ type AssetClassAccountsResponseDto = {
3798
4300
  * Summary statistics
3799
4301
  */
3800
4302
  summary: AssetClassSummaryDto;
4303
+ /**
4304
+ * ADR-0105 §6 holding-level grey-area bucket (source=FALLBACK holdings peeled out of groups). Present only for groupBy=holdingAssetClass when FALLBACK holdings exist.
4305
+ */
4306
+ uncategorized?: AssetClassGroupDto;
4307
+ };
4308
+ type HoldingAssetClassAccountSliceDto = {
4309
+ /**
4310
+ * Account ID
4311
+ */
4312
+ accountId: string;
4313
+ /**
4314
+ * Full account path
4315
+ */
4316
+ accountPath: string;
4317
+ /**
4318
+ * Currency of the holding with the largest converted base value; undefined when no holding is convertible
4319
+ */
4320
+ accountCurrency?: string;
4321
+ /**
4322
+ * Account's market value in base currency (Σ converted holdings; grey bucket included)
4323
+ */
4324
+ marketValueBase: string;
4325
+ /**
4326
+ * Share of the global total (0-100). 0 when globalTotal is zero (no NaN/Infinity).
4327
+ */
4328
+ shareOfTotalPct: number;
4329
+ /**
4330
+ * Per-account asset-class breakdown
4331
+ */
4332
+ groups: Array<AssetClassGroupDto>;
4333
+ /**
4334
+ * Per-account grey bucket (source=FALLBACK holdings, incl. broker cash)
4335
+ */
4336
+ uncategorized?: AssetClassGroupDto;
4337
+ /**
4338
+ * Every holding row for this account (account ID in each row’s `id` field)
4339
+ */
4340
+ holdings: Array<AccountItemWithAssetClassDto>;
4341
+ };
4342
+ type HoldingAssetClassCrossAccountResponseDto = {
4343
+ /**
4344
+ * Merged cross-account holding aggregation
4345
+ */
4346
+ global: AssetClassAccountsResponseDto;
4347
+ /**
4348
+ * Per-account slices
4349
+ */
4350
+ byAccount: Array<HoldingAssetClassAccountSliceDto>;
3801
4351
  };
3802
4352
  type CashFlowByCurrencyDto = {
3803
4353
  /**
@@ -3875,6 +4425,231 @@ type CashFlowResponseDto = {
3875
4425
  */
3876
4426
  warnings?: Array<ExchangeRateWarningDto>;
3877
4427
  };
4428
+ type CategoryGroupDto = {
4429
+ /**
4430
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4431
+ */
4432
+ category: string;
4433
+ /**
4434
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4435
+ */
4436
+ totalExpense: string;
4437
+ /**
4438
+ * Share of grand total (0-100); 0 when grand total is 0
4439
+ */
4440
+ sharePct: number;
4441
+ /**
4442
+ * Raw (unconverted) expense per currency
4443
+ */
4444
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4445
+ /**
4446
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4447
+ */
4448
+ convertedBalance?: string;
4449
+ };
4450
+ type ExpensesByCategorySummaryDto = {
4451
+ /**
4452
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4453
+ */
4454
+ totalExpense: string;
4455
+ /**
4456
+ * Number of categories
4457
+ */
4458
+ categoryCount: number;
4459
+ };
4460
+ type ExpensesByCategoryResponseDto = {
4461
+ /**
4462
+ * Period requested
4463
+ */
4464
+ period: string;
4465
+ /**
4466
+ * Base currency for converted values
4467
+ */
4468
+ baseCurrency: string;
4469
+ /**
4470
+ * Expense groups by functional category, sorted by converted total desc
4471
+ */
4472
+ groups: Array<CategoryGroupDto>;
4473
+ /**
4474
+ * Summary statistics
4475
+ */
4476
+ summary: ExpensesByCategorySummaryDto;
4477
+ /**
4478
+ * Exchange rate warnings (e.g. missing rate for a currency)
4479
+ */
4480
+ warnings?: Array<ExchangeRateWarningDto>;
4481
+ };
4482
+ type MonetaryDto = {
4483
+ /**
4484
+ * Amount (Decimal string)
4485
+ */
4486
+ amount: string;
4487
+ /**
4488
+ * ISO 4217 currency
4489
+ */
4490
+ currency: string;
4491
+ /**
4492
+ * Converted to user base currency (Decimal string)
4493
+ */
4494
+ baseCcyEquivalent?: {
4495
+ [key: string]: unknown;
4496
+ } | null;
4497
+ };
4498
+ type CurrentPriceDto = {
4499
+ /**
4500
+ * Price amount (Decimal string)
4501
+ */
4502
+ amount: string;
4503
+ /**
4504
+ * Price currency (ISO 4217)
4505
+ */
4506
+ currency: string;
4507
+ /**
4508
+ * Price date (ISO 8601)
4509
+ */
4510
+ date: string;
4511
+ /**
4512
+ * Price source
4513
+ */
4514
+ source: 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4515
+ };
4516
+ /**
4517
+ * Price source
4518
+ */
4519
+ type source3 = 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4520
+ type FxRateDto = {
4521
+ from: string;
4522
+ to: string;
4523
+ /**
4524
+ * FX rate (Decimal string)
4525
+ */
4526
+ rate: string;
4527
+ /**
4528
+ * Rate date (ISO 8601)
4529
+ */
4530
+ date: string;
4531
+ };
4532
+ type HoldingPnlRowDto = {
4533
+ /**
4534
+ * Account UUID
4535
+ */
4536
+ accountId: string;
4537
+ /**
4538
+ * Full account path
4539
+ */
4540
+ accountPath: string;
4541
+ /**
4542
+ * Account settlement currency (ISO 4217), from cost currency
4543
+ */
4544
+ accountCcy?: {
4545
+ [key: string]: unknown;
4546
+ } | null;
4547
+ /**
4548
+ * Broker type derived from Platform.type
4549
+ */
4550
+ brokerType?: {
4551
+ [key: string]: unknown;
4552
+ } | null;
4553
+ /**
4554
+ * Commodity symbol
4555
+ */
4556
+ symbol: string;
4557
+ /**
4558
+ * Chart segment token (libs/common resolver)
4559
+ */
4560
+ chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4561
+ assetClass: string;
4562
+ assetSubClass?: {
4563
+ [key: string]: unknown;
4564
+ } | null;
4565
+ /**
4566
+ * Net held units (Decimal string)
4567
+ */
4568
+ units: string;
4569
+ /**
4570
+ * Average cost per unit; null when cost currency conflicts or no cost
4571
+ */
4572
+ averageCostPerUnit?: MonetaryDto | null;
4573
+ /**
4574
+ * Cost basis of held units
4575
+ */
4576
+ costBasis?: MonetaryDto | null;
4577
+ /**
4578
+ * Market value at asOf price
4579
+ */
4580
+ marketValue?: MonetaryDto | null;
4581
+ /**
4582
+ * Price used for market value
4583
+ */
4584
+ currentPrice?: CurrentPriceDto | null;
4585
+ /**
4586
+ * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4587
+ */
4588
+ unrealizedPnlBase?: {
4589
+ [key: string]: unknown;
4590
+ } | null;
4591
+ /**
4592
+ * Unrealized P&L % (Decimal string)
4593
+ */
4594
+ unrealizedPnlPct?: {
4595
+ [key: string]: unknown;
4596
+ } | null;
4597
+ /**
4598
+ * Historical FX rate applied to cost basis
4599
+ */
4600
+ costFxRate?: FxRateDto | null;
4601
+ /**
4602
+ * FX rate applied to market value
4603
+ */
4604
+ marketFxRate?: FxRateDto | null;
4605
+ /**
4606
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4607
+ */
4608
+ pctOfInvestedAssets?: {
4609
+ [key: string]: unknown;
4610
+ } | null;
4611
+ /**
4612
+ * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
4613
+ */
4614
+ realizedPnl?: MonetaryDto | null;
4615
+ };
4616
+ /**
4617
+ * Chart segment token (libs/common resolver)
4618
+ */
4619
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4620
+ type HoldingPnlWarningDto = {
4621
+ /**
4622
+ * Warning type
4623
+ */
4624
+ type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4625
+ symbol?: {
4626
+ [key: string]: unknown;
4627
+ } | null;
4628
+ accountId?: {
4629
+ [key: string]: unknown;
4630
+ } | null;
4631
+ currency?: {
4632
+ [key: string]: unknown;
4633
+ } | null;
4634
+ };
4635
+ /**
4636
+ * Warning type
4637
+ */
4638
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4639
+ type HoldingPnlResponseDto = {
4640
+ asOfDate: string;
4641
+ baseCurrency: string;
4642
+ /**
4643
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4644
+ */
4645
+ method: 'average' | 'FIFO';
4646
+ rows: Array<HoldingPnlRowDto>;
4647
+ warnings: Array<HoldingPnlWarningDto>;
4648
+ };
4649
+ /**
4650
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4651
+ */
4652
+ type method = 'average' | 'FIFO';
3878
4653
  type CurrencyBalanceDto = {
3879
4654
  /**
3880
4655
  * ISO 4217 currency code
@@ -3900,6 +4675,14 @@ type TimeSeriesPointDto = {
3900
4675
  change?: {
3901
4676
  [key: string]: unknown;
3902
4677
  };
4678
+ /**
4679
+ * Total assets at this date (in base currency)
4680
+ */
4681
+ assets?: string;
4682
+ /**
4683
+ * Total liabilities at this date (in base currency)
4684
+ */
4685
+ liabilities?: string;
3903
4686
  /**
3904
4687
  * Multi-currency breakdown for this point
3905
4688
  */
@@ -3935,19 +4718,85 @@ type MultiCurrencyPointDto = {
3935
4718
  };
3936
4719
  type PortfolioTrendsResponseDto = {
3937
4720
  /**
3938
- * Time series data points
4721
+ * Time series data points
4722
+ */
4723
+ series: Array<TimeSeriesPointDto>;
4724
+ /**
4725
+ * Period summary
4726
+ */
4727
+ summary: TrendSummaryDto;
4728
+ /**
4729
+ * Period requested
4730
+ */
4731
+ period: string;
4732
+ /**
4733
+ * Data granularity
4734
+ */
4735
+ granularity: string;
4736
+ /**
4737
+ * Base currency for converted values
4738
+ */
4739
+ currency: string;
4740
+ /**
4741
+ * Multi-currency time series (each point has currency breakdown)
4742
+ */
4743
+ byCurrency?: Array<MultiCurrencyPointDto>;
4744
+ /**
4745
+ * Exchange rate warnings
4746
+ */
4747
+ warnings?: Array<ExchangeRateWarningDto>;
4748
+ };
4749
+ type CashFlowPointDto = {
4750
+ /**
4751
+ * Month key (YYYY-MM)
4752
+ */
4753
+ month: string;
4754
+ /**
4755
+ * Income in base currency (absolute, converted)
4756
+ */
4757
+ income: string;
4758
+ /**
4759
+ * Expense in base currency (absolute, converted)
4760
+ */
4761
+ expense: string;
4762
+ /**
4763
+ * netSavings = income − expense (savings positive)
4764
+ */
4765
+ netSavings: string;
4766
+ };
4767
+ type CashFlowTrendSummaryDto = {
4768
+ /**
4769
+ * Total income across the period
4770
+ */
4771
+ totalIncome: string;
4772
+ /**
4773
+ * Total expense across the period
4774
+ */
4775
+ totalExpense: string;
4776
+ /**
4777
+ * income − expense across the period
4778
+ */
4779
+ totalNetSavings: string;
4780
+ /**
4781
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
4782
+ */
4783
+ averageMonthlyNetSavings: string;
4784
+ };
4785
+ type CashFlowTrendsResponseDto = {
4786
+ /**
4787
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
3939
4788
  */
3940
- series: Array<TimeSeriesPointDto>;
4789
+ series: Array<CashFlowPointDto>;
3941
4790
  /**
3942
- * Period summary
4791
+ * Period totals
3943
4792
  */
3944
- summary: TrendSummaryDto;
4793
+ summary: CashFlowTrendSummaryDto;
3945
4794
  /**
3946
4795
  * Period requested
3947
4796
  */
3948
4797
  period: string;
3949
4798
  /**
3950
- * Data granularity
4799
+ * Data granularity (v1 returns month buckets)
3951
4800
  */
3952
4801
  granularity: string;
3953
4802
  /**
@@ -3955,11 +4804,7 @@ type PortfolioTrendsResponseDto = {
3955
4804
  */
3956
4805
  currency: string;
3957
4806
  /**
3958
- * Multi-currency time series (each point has currency breakdown)
3959
- */
3960
- byCurrency?: Array<MultiCurrencyPointDto>;
3961
- /**
3962
- * Exchange rate warnings
4807
+ * Exchange rate warnings (e.g. missing rate for a currency)
3963
4808
  */
3964
4809
  warnings?: Array<ExchangeRateWarningDto>;
3965
4810
  };
@@ -3999,7 +4844,7 @@ type AccountControllerFindAllData = {
3999
4844
  */
4000
4845
  region: 'cn' | 'us' | 'de' | 'gb';
4001
4846
  /**
4002
- * Search term for path or i18nKey
4847
+ * Search term for account path
4003
4848
  */
4004
4849
  search?: string;
4005
4850
  /**
@@ -4070,6 +4915,18 @@ type AccountControllerReopenData = {
4070
4915
  requestBody: ReopenAccountDto;
4071
4916
  };
4072
4917
  type AccountControllerReopenResponse = AccountResponseDto;
4918
+ type AccountControllerAddOpeningBalanceData = {
4919
+ /**
4920
+ * Account UUID
4921
+ */
4922
+ id: string;
4923
+ /**
4924
+ * Region code for tenant context
4925
+ */
4926
+ region: 'cn' | 'us' | 'de' | 'gb';
4927
+ requestBody: CreateOpeningBalanceDto;
4928
+ };
4929
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4073
4930
  type AccountStandardsControllerGetTemplatesData = {
4074
4931
  /**
4075
4932
  * Region code (cn, us, de)
@@ -4119,6 +4976,10 @@ type TransactionControllerListData = {
4119
4976
  * Filter by account ID (transactions with postings to this account)
4120
4977
  */
4121
4978
  accountId?: string;
4979
+ /**
4980
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
4981
+ */
4982
+ category?: string;
4122
4983
  /**
4123
4984
  * Filter by start date (inclusive), format: YYYY-MM-DD
4124
4985
  */
@@ -4227,7 +5088,7 @@ type TransactionControllerDeleteData = {
4227
5088
  type TransactionControllerDeleteResponse = void;
4228
5089
  type BalanceControllerGetBalanceData = {
4229
5090
  /**
4230
- * Account name (e.g., "Assets:Bank:Checking")
5091
+ * Account name (e.g., "Assets:Checking")
4231
5092
  */
4232
5093
  account: string;
4233
5094
  /**
@@ -4539,6 +5400,91 @@ type CommodityControllerBulkCreateData = {
4539
5400
  region: 'cn' | 'us' | 'de' | 'gb';
4540
5401
  };
4541
5402
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5403
+ type PriceControllerCreateData = {
5404
+ /**
5405
+ * Region code for tenant context
5406
+ */
5407
+ region: 'cn' | 'us' | 'de' | 'gb';
5408
+ requestBody: CreateBeanPriceDto;
5409
+ };
5410
+ type PriceControllerCreateResponse = PriceResponseDto;
5411
+ type PriceControllerFindAllData = {
5412
+ /**
5413
+ * Filter by currency (e.g., BTC, AAPL, USD)
5414
+ */
5415
+ currency?: string;
5416
+ /**
5417
+ * Filter prices from this date (ISO 8601 format)
5418
+ */
5419
+ dateFrom?: string;
5420
+ /**
5421
+ * Filter prices to this date (ISO 8601 format)
5422
+ */
5423
+ dateTo?: string;
5424
+ /**
5425
+ * Number of items per page (default: 20, max: 100)
5426
+ */
5427
+ limit?: number;
5428
+ /**
5429
+ * Page number for pagination (default: 1)
5430
+ */
5431
+ page?: number;
5432
+ /**
5433
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5434
+ */
5435
+ quoteCurrency?: string;
5436
+ /**
5437
+ * Region code for tenant context
5438
+ */
5439
+ region: 'cn' | 'us' | 'de' | 'gb';
5440
+ /**
5441
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5442
+ */
5443
+ search?: string;
5444
+ };
5445
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5446
+ type PriceControllerFindOneData = {
5447
+ /**
5448
+ * Price ID
5449
+ */
5450
+ id: string;
5451
+ /**
5452
+ * Region code for tenant context
5453
+ */
5454
+ region: 'cn' | 'us' | 'de' | 'gb';
5455
+ };
5456
+ type PriceControllerFindOneResponse = PriceResponseDto;
5457
+ type PriceControllerUpdateData = {
5458
+ /**
5459
+ * Price ID
5460
+ */
5461
+ id: string;
5462
+ /**
5463
+ * Region code for tenant context
5464
+ */
5465
+ region: 'cn' | 'us' | 'de' | 'gb';
5466
+ requestBody: UpdateBeanPriceDto;
5467
+ };
5468
+ type PriceControllerUpdateResponse = PriceResponseDto;
5469
+ type PriceControllerDeleteData = {
5470
+ /**
5471
+ * Price ID
5472
+ */
5473
+ id: string;
5474
+ /**
5475
+ * Region code for tenant context
5476
+ */
5477
+ region: 'cn' | 'us' | 'de' | 'gb';
5478
+ };
5479
+ type PriceControllerDeleteResponse = void;
5480
+ type PriceControllerBulkCreateData = {
5481
+ /**
5482
+ * Region code for tenant context
5483
+ */
5484
+ region: 'cn' | 'us' | 'de' | 'gb';
5485
+ requestBody: Array<string>;
5486
+ };
5487
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
4542
5488
  type RecurringRuleControllerCreateData = {
4543
5489
  /**
4544
5490
  * Region code for tenant context
@@ -4916,6 +5862,135 @@ type PropertyControllerDeleteData = {
4916
5862
  key: string;
4917
5863
  };
4918
5864
  type PropertyControllerDeleteResponse = void;
5865
+ type EventControllerCreateData = {
5866
+ /**
5867
+ * Region code for tenant context (decorative for life events)
5868
+ */
5869
+ region: 'cn' | 'us' | 'de' | 'gb';
5870
+ requestBody: CreateBeanEventDto;
5871
+ };
5872
+ type EventControllerCreateResponse = EventResponseDto;
5873
+ type EventControllerFindAllData = {
5874
+ /**
5875
+ * Filter life events from this date (ISO 8601 format)
5876
+ */
5877
+ from?: string;
5878
+ /**
5879
+ * Number of items per page (default: 20, max: 100)
5880
+ */
5881
+ limit?: number;
5882
+ /**
5883
+ * Page number for pagination (default: 1)
5884
+ */
5885
+ page?: number;
5886
+ /**
5887
+ * Search term for description (case-insensitive partial match)
5888
+ */
5889
+ q?: string;
5890
+ /**
5891
+ * Region code for tenant context (decorative for life events)
5892
+ */
5893
+ region: 'cn' | 'us' | 'de' | 'gb';
5894
+ /**
5895
+ * Filter life events to this date (ISO 8601 format)
5896
+ */
5897
+ to?: string;
5898
+ /**
5899
+ * Filter by life event type (exact match)
5900
+ */
5901
+ type?: string;
5902
+ };
5903
+ type EventControllerFindAllResponse = EventListResponseDto;
5904
+ type EventControllerFindOneData = {
5905
+ /**
5906
+ * Life event ID
5907
+ */
5908
+ id: string;
5909
+ /**
5910
+ * Region code for tenant context (decorative for life events)
5911
+ */
5912
+ region: 'cn' | 'us' | 'de' | 'gb';
5913
+ };
5914
+ type EventControllerFindOneResponse = EventResponseDto;
5915
+ type EventControllerUpdateData = {
5916
+ /**
5917
+ * Life event ID
5918
+ */
5919
+ id: string;
5920
+ /**
5921
+ * Region code for tenant context (decorative for life events)
5922
+ */
5923
+ region: 'cn' | 'us' | 'de' | 'gb';
5924
+ requestBody: UpdateBeanEventDto;
5925
+ };
5926
+ type EventControllerUpdateResponse = EventResponseDto;
5927
+ type EventControllerDeleteData = {
5928
+ /**
5929
+ * Life event ID
5930
+ */
5931
+ id: string;
5932
+ /**
5933
+ * Region code for tenant context (decorative for life events)
5934
+ */
5935
+ region: 'cn' | 'us' | 'de' | 'gb';
5936
+ };
5937
+ type EventControllerDeleteResponse = void;
5938
+ type EventControllerGetSliceData = {
5939
+ accountPattern: string;
5940
+ granularity: string;
5941
+ /**
5942
+ * Life event ID
5943
+ */
5944
+ id: string;
5945
+ /**
5946
+ * Region code for tenant context (decorative for life events)
5947
+ */
5948
+ region: 'cn' | 'us' | 'de' | 'gb';
5949
+ };
5950
+ type EventControllerGetSliceResponse = unknown;
5951
+ type OnboardingControllerBootstrapData = {
5952
+ /**
5953
+ * Region code for tenant context
5954
+ */
5955
+ region: 'cn' | 'us' | 'de' | 'gb';
5956
+ requestBody: OnboardingDto;
5957
+ };
5958
+ type OnboardingControllerBootstrapResponse = unknown;
5959
+ type ReconciliationControllerComputeData = {
5960
+ /**
5961
+ * Region code for tenant context (decorative for reconciliation)
5962
+ */
5963
+ region: 'cn' | 'us' | 'de' | 'gb';
5964
+ requestBody: ComputeReconciliationDto;
5965
+ };
5966
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
5967
+ type ReconciliationControllerAssertData = {
5968
+ /**
5969
+ * Region code for tenant context (decorative for reconciliation)
5970
+ */
5971
+ region: 'cn' | 'us' | 'de' | 'gb';
5972
+ requestBody: AssertReconciliationDto;
5973
+ };
5974
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
5975
+ type ReconciliationControllerPadData = {
5976
+ /**
5977
+ * Region code for tenant context (decorative for reconciliation)
5978
+ */
5979
+ region: 'cn' | 'us' | 'de' | 'gb';
5980
+ requestBody: PadReconciliationDto;
5981
+ };
5982
+ type ReconciliationControllerPadResponse = PadResultDto;
5983
+ type ReconciliationControllerHistoryData = {
5984
+ /**
5985
+ * BeanAccount id
5986
+ */
5987
+ accountId: string;
5988
+ /**
5989
+ * Region code for tenant context (decorative for reconciliation)
5990
+ */
5991
+ region: 'cn' | 'us' | 'de' | 'gb';
5992
+ };
5993
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
4919
5994
  type ExportControllerExportBeancountResponse = unknown;
4920
5995
  type FileImportControllerImportFileData = {
4921
5996
  /**
@@ -4995,47 +6070,15 @@ type ImporterConfigControllerResetConfigData = {
4995
6070
  region: 'cn' | 'us' | 'de' | 'gb';
4996
6071
  };
4997
6072
  type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
4998
- type PlatformControllerFindAllResponse = unknown;
4999
- type PlatformControllerCreateData = {
5000
- requestBody: CreatePlatformDto;
5001
- };
5002
- type PlatformControllerCreateResponse = unknown;
5003
- type PlatformControllerGetPlatformListResponse = unknown;
5004
- type PlatformControllerMatchPlatformsData = {
5005
- /**
5006
- * Search query — Chinese name, English name, or abbreviation
5007
- */
5008
- q: string;
5009
- /**
5010
- * Region code for category override lookup
5011
- */
5012
- region?: string;
5013
- };
5014
- type PlatformControllerMatchPlatformsResponse = unknown;
5015
- type PlatformControllerUpdateData = {
5016
- /**
5017
- * Platform ID
5018
- */
5019
- id: string;
5020
- requestBody: UpdatePlatformDto;
5021
- };
5022
- type PlatformControllerUpdateResponse = unknown;
5023
- type PlatformControllerDeleteData = {
5024
- /**
5025
- * Platform ID
5026
- */
5027
- id: string;
5028
- };
5029
- type PlatformControllerDeleteResponse = void;
5030
6073
  type ProviderSyncControllerSyncData = {
5031
6074
  /**
5032
6075
  * Provider name
5033
6076
  */
5034
6077
  providerName: 'plaid' | 'teller' | 'truelayer' | 'gocardless' | 'simplefin' | 'yodlee' | 'beancount-direct' | 'parsed-bill';
5035
6078
  /**
5036
- * Region code
6079
+ * Region code for tenant context
5037
6080
  */
5038
- region: unknown;
6081
+ region: 'cn' | 'us' | 'de' | 'gb';
5039
6082
  requestBody: ProviderSyncDto;
5040
6083
  };
5041
6084
  type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
@@ -5057,6 +6100,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
5057
6100
  region: 'cn' | 'us' | 'de' | 'gb';
5058
6101
  };
5059
6102
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6103
+ type ExternalAccountLinkControllerCreateData = {
6104
+ /**
6105
+ * Region code for tenant context
6106
+ */
6107
+ region: 'cn' | 'us' | 'de' | 'gb';
6108
+ requestBody: CreateExternalAccountLinkDto;
6109
+ };
6110
+ type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
6111
+ type ExternalAccountLinkControllerFindAllData = {
6112
+ provider: string;
6113
+ /**
6114
+ * Region code for tenant context
6115
+ */
6116
+ region: 'cn' | 'us' | 'de' | 'gb';
6117
+ };
6118
+ type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6119
+ type ExternalAccountLinkControllerFindOneData = {
6120
+ id: string;
6121
+ /**
6122
+ * Region code for tenant context
6123
+ */
6124
+ region: 'cn' | 'us' | 'de' | 'gb';
6125
+ };
6126
+ type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6127
+ type ExternalAccountLinkControllerRemoveData = {
6128
+ id: string;
6129
+ /**
6130
+ * Region code for tenant context
6131
+ */
6132
+ region: 'cn' | 'us' | 'de' | 'gb';
6133
+ };
6134
+ type ExternalAccountLinkControllerRemoveResponse = void;
5060
6135
  type TelemetryControllerReportTelemetryData = {
5061
6136
  /**
5062
6137
  * Region code for tenant context
@@ -5065,6 +6140,25 @@ type TelemetryControllerReportTelemetryData = {
5065
6140
  requestBody: ParserTelemetryReportDto;
5066
6141
  };
5067
6142
  type TelemetryControllerReportTelemetryResponse = unknown;
6143
+ type TelemetryControllerReportCoverageMissData = {
6144
+ /**
6145
+ * Region code for tenant context
6146
+ */
6147
+ region: 'cn' | 'us' | 'de' | 'gb';
6148
+ requestBody: UncoveredFormatMissDto;
6149
+ };
6150
+ type TelemetryControllerReportCoverageMissResponse = unknown;
6151
+ type TelemetryControllerGetCoverageMetricsData = {
6152
+ /**
6153
+ * Region code for tenant context
6154
+ */
6155
+ region: 'cn' | 'us' | 'de' | 'gb';
6156
+ /**
6157
+ * Top-N uncovered formats (default 10)
6158
+ */
6159
+ topN?: unknown;
6160
+ };
6161
+ type TelemetryControllerGetCoverageMetricsResponse = unknown;
5068
6162
  type NlpControllerProcessNaturalLanguageData = {
5069
6163
  /**
5070
6164
  * Region code for tenant context
@@ -5093,11 +6187,43 @@ type NlpControllerGetSessionData = {
5093
6187
  */
5094
6188
  region: 'cn' | 'us' | 'de' | 'gb';
5095
6189
  /**
5096
- * Specific session ID to get (defaults to user session)
6190
+ * Specific session ID to get (defaults to user session)
6191
+ */
6192
+ sessionId?: string;
6193
+ };
6194
+ type NlpControllerGetSessionResponse = unknown;
6195
+ type PlatformControllerFindAllResponse = unknown;
6196
+ type PlatformControllerCreateData = {
6197
+ requestBody: CreatePlatformDto;
6198
+ };
6199
+ type PlatformControllerCreateResponse = unknown;
6200
+ type PlatformControllerGetPlatformListResponse = unknown;
6201
+ type PlatformControllerMatchPlatformsData = {
6202
+ /**
6203
+ * Search query — Chinese name, English name, or abbreviation
6204
+ */
6205
+ q: string;
6206
+ /**
6207
+ * Region code for category override lookup
6208
+ */
6209
+ region?: string;
6210
+ };
6211
+ type PlatformControllerMatchPlatformsResponse = unknown;
6212
+ type PlatformControllerUpdateData = {
6213
+ /**
6214
+ * Platform ID
6215
+ */
6216
+ id: string;
6217
+ requestBody: UpdatePlatformDto;
6218
+ };
6219
+ type PlatformControllerUpdateResponse = unknown;
6220
+ type PlatformControllerDeleteData = {
6221
+ /**
6222
+ * Platform ID
5097
6223
  */
5098
- sessionId?: string;
6224
+ id: string;
5099
6225
  };
5100
- type NlpControllerGetSessionResponse = unknown;
6226
+ type PlatformControllerDeleteResponse = void;
5101
6227
  type DashboardControllerGetNetWorthData = {
5102
6228
  /**
5103
6229
  * Date for balance calculation (ISO 8601 format)
@@ -5110,6 +6236,10 @@ type DashboardControllerGetNetWorthData = {
5110
6236
  };
5111
6237
  type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
5112
6238
  type DashboardControllerGetAccountsData = {
6239
+ /**
6240
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
6241
+ */
6242
+ accountId?: string;
5113
6243
  /**
5114
6244
  * Date for balance calculation (ISO 8601 format)
5115
6245
  */
@@ -5117,13 +6247,13 @@ type DashboardControllerGetAccountsData = {
5117
6247
  /**
5118
6248
  * Grouping strategy
5119
6249
  */
5120
- groupBy?: 'platform' | 'assetClass';
6250
+ groupBy?: 'platform' | 'assetClass' | 'holdingAssetClass' | 'holdingAssetClassByAccount';
5121
6251
  /**
5122
6252
  * Region code for tenant context
5123
6253
  */
5124
6254
  region: 'cn' | 'us' | 'de' | 'gb';
5125
6255
  };
5126
- type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto;
6256
+ type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
5127
6257
  type DashboardControllerGetCashFlowData = {
5128
6258
  /**
5129
6259
  * Period in YYYY-MM format
@@ -5135,6 +6265,44 @@ type DashboardControllerGetCashFlowData = {
5135
6265
  region: 'cn' | 'us' | 'de' | 'gb';
5136
6266
  };
5137
6267
  type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
6268
+ type DashboardControllerGetExpensesData = {
6269
+ /**
6270
+ * Account root to aggregate (expense → ^Expenses:, income → ^Income:)
6271
+ */
6272
+ flow?: 'expense' | 'income';
6273
+ /**
6274
+ * Grouping strategy
6275
+ */
6276
+ groupBy?: 'category';
6277
+ /**
6278
+ * Time window (1m = current calendar month)
6279
+ */
6280
+ period?: '1m' | '3m' | '6m' | '1y';
6281
+ /**
6282
+ * Region code for tenant context
6283
+ */
6284
+ region: 'cn' | 'us' | 'de' | 'gb';
6285
+ };
6286
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6287
+ type HoldingPnlControllerGetHoldingPnlData = {
6288
+ /**
6289
+ * Scope to a single account
6290
+ */
6291
+ accountId?: string;
6292
+ /**
6293
+ * As-of date (ISO 8601), defaults to today
6294
+ */
6295
+ asOf?: string;
6296
+ /**
6297
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
6298
+ */
6299
+ method?: 'FIFO' | 'average';
6300
+ /**
6301
+ * Region code for tenant context
6302
+ */
6303
+ region: 'cn' | 'us' | 'de' | 'gb';
6304
+ };
6305
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5138
6306
  type ReportingControllerGetPortfolioTrendsData = {
5139
6307
  /**
5140
6308
  * Data granularity
@@ -5150,6 +6318,21 @@ type ReportingControllerGetPortfolioTrendsData = {
5150
6318
  region: 'cn' | 'us' | 'de' | 'gb';
5151
6319
  };
5152
6320
  type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6321
+ type ReportingControllerGetCashFlowTrendsData = {
6322
+ /**
6323
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6324
+ */
6325
+ granularity?: 'day' | 'week' | 'month';
6326
+ /**
6327
+ * Time period
6328
+ */
6329
+ period?: '1m' | '3m' | '6m' | '1y';
6330
+ /**
6331
+ * Region code for tenant context
6332
+ */
6333
+ region: 'cn' | 'us' | 'de' | 'gb';
6334
+ };
6335
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5153
6336
  type ReportingControllerGenerateSnapshotData = {
5154
6337
  /**
5155
6338
  * Region code for tenant context
@@ -5308,6 +6491,25 @@ type $OpenApiTs = {
5308
6491
  };
5309
6492
  };
5310
6493
  };
6494
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6495
+ post: {
6496
+ req: AccountControllerAddOpeningBalanceData;
6497
+ res: {
6498
+ /**
6499
+ * Opening-balance transaction created
6500
+ */
6501
+ 201: OpeningBalanceResultDto;
6502
+ /**
6503
+ * Account not found
6504
+ */
6505
+ 404: unknown;
6506
+ /**
6507
+ * An opening balance already exists for this account
6508
+ */
6509
+ 409: unknown;
6510
+ };
6511
+ };
6512
+ };
5311
6513
  '/api/v1/{region}/bean/account-standards': {
5312
6514
  get: {
5313
6515
  req: AccountStandardsControllerGetTemplatesData;
@@ -5916,6 +7118,90 @@ type $OpenApiTs = {
5916
7118
  };
5917
7119
  };
5918
7120
  };
7121
+ '/api/v1/{region}/bean/prices': {
7122
+ post: {
7123
+ req: PriceControllerCreateData;
7124
+ res: {
7125
+ /**
7126
+ * Price created successfully
7127
+ */
7128
+ 201: PriceResponseDto;
7129
+ /**
7130
+ * Currency or quoteCurrency commodity not found
7131
+ */
7132
+ 404: unknown;
7133
+ /**
7134
+ * Price already exists for this currency pair and date
7135
+ */
7136
+ 409: unknown;
7137
+ };
7138
+ };
7139
+ get: {
7140
+ req: PriceControllerFindAllData;
7141
+ res: {
7142
+ /**
7143
+ * Prices retrieved successfully
7144
+ */
7145
+ 200: PriceListResponseDto;
7146
+ };
7147
+ };
7148
+ };
7149
+ '/api/v1/{region}/bean/prices/{id}': {
7150
+ get: {
7151
+ req: PriceControllerFindOneData;
7152
+ res: {
7153
+ /**
7154
+ * Price retrieved successfully
7155
+ */
7156
+ 200: PriceResponseDto;
7157
+ /**
7158
+ * Price not found
7159
+ */
7160
+ 404: unknown;
7161
+ };
7162
+ };
7163
+ put: {
7164
+ req: PriceControllerUpdateData;
7165
+ res: {
7166
+ /**
7167
+ * Price updated successfully
7168
+ */
7169
+ 200: PriceResponseDto;
7170
+ /**
7171
+ * Price not found
7172
+ */
7173
+ 404: unknown;
7174
+ /**
7175
+ * Updated price conflicts with existing price
7176
+ */
7177
+ 409: unknown;
7178
+ };
7179
+ };
7180
+ delete: {
7181
+ req: PriceControllerDeleteData;
7182
+ res: {
7183
+ /**
7184
+ * Price deleted successfully
7185
+ */
7186
+ 204: void;
7187
+ /**
7188
+ * Price not found
7189
+ */
7190
+ 404: unknown;
7191
+ };
7192
+ };
7193
+ };
7194
+ '/api/v1/{region}/bean/prices/bulk': {
7195
+ post: {
7196
+ req: PriceControllerBulkCreateData;
7197
+ res: {
7198
+ /**
7199
+ * Prices created successfully
7200
+ */
7201
+ 201: Array<PriceResponseDto>;
7202
+ };
7203
+ };
7204
+ };
5919
7205
  '/api/v1/{region}/bean/recurring-rules': {
5920
7206
  post: {
5921
7207
  req: RecurringRuleControllerCreateData;
@@ -6525,36 +7811,211 @@ type $OpenApiTs = {
6525
7811
  req: PropertyControllerUpdateData;
6526
7812
  res: {
6527
7813
  /**
6528
- * Property updated successfully
7814
+ * Property updated successfully
7815
+ */
7816
+ 200: unknown;
7817
+ /**
7818
+ * Unauthorized
7819
+ */
7820
+ 401: unknown;
7821
+ /**
7822
+ * Forbidden - insufficient permissions
7823
+ */
7824
+ 403: unknown;
7825
+ };
7826
+ };
7827
+ delete: {
7828
+ req: PropertyControllerDeleteData;
7829
+ res: {
7830
+ /**
7831
+ * Property deleted successfully
7832
+ */
7833
+ 204: void;
7834
+ /**
7835
+ * Unauthorized
7836
+ */
7837
+ 401: unknown;
7838
+ /**
7839
+ * Forbidden - insufficient permissions
7840
+ */
7841
+ 403: unknown;
7842
+ /**
7843
+ * Property not found
7844
+ */
7845
+ 404: unknown;
7846
+ };
7847
+ };
7848
+ };
7849
+ '/api/v1/{region}/bean/events': {
7850
+ post: {
7851
+ req: EventControllerCreateData;
7852
+ res: {
7853
+ /**
7854
+ * Life event created successfully
7855
+ */
7856
+ 201: EventResponseDto;
7857
+ /**
7858
+ * Life event already exists for this (userId, type, date) combination
7859
+ */
7860
+ 409: unknown;
7861
+ };
7862
+ };
7863
+ get: {
7864
+ req: EventControllerFindAllData;
7865
+ res: {
7866
+ /**
7867
+ * Life events retrieved successfully
7868
+ */
7869
+ 200: EventListResponseDto;
7870
+ };
7871
+ };
7872
+ };
7873
+ '/api/v1/{region}/bean/events/{id}': {
7874
+ get: {
7875
+ req: EventControllerFindOneData;
7876
+ res: {
7877
+ /**
7878
+ * Life event retrieved successfully
7879
+ */
7880
+ 200: EventResponseDto;
7881
+ /**
7882
+ * Life event not found
7883
+ */
7884
+ 404: unknown;
7885
+ };
7886
+ };
7887
+ put: {
7888
+ req: EventControllerUpdateData;
7889
+ res: {
7890
+ /**
7891
+ * Life event updated successfully
7892
+ */
7893
+ 200: EventResponseDto;
7894
+ /**
7895
+ * If-Match header is not a valid ISO 8601 date
7896
+ */
7897
+ 400: unknown;
7898
+ /**
7899
+ * Life event not found
7900
+ */
7901
+ 404: unknown;
7902
+ /**
7903
+ * Updated event conflicts with an existing (userId, type, date) combination
7904
+ */
7905
+ 409: unknown;
7906
+ /**
7907
+ * If-Match precondition failed (updatedAt mismatch)
7908
+ */
7909
+ 412: unknown;
7910
+ };
7911
+ };
7912
+ delete: {
7913
+ req: EventControllerDeleteData;
7914
+ res: {
7915
+ /**
7916
+ * Life event deleted successfully
7917
+ */
7918
+ 204: void;
7919
+ /**
7920
+ * Life event not found
7921
+ */
7922
+ 404: unknown;
7923
+ };
7924
+ };
7925
+ };
7926
+ '/api/v1/{region}/bean/events/{id}/slice': {
7927
+ get: {
7928
+ req: EventControllerGetSliceData;
7929
+ res: {
7930
+ /**
7931
+ * Time-series sliced by the life event range
7932
+ */
7933
+ 200: unknown;
7934
+ /**
7935
+ * accountPattern query param is empty
7936
+ */
7937
+ 400: unknown;
7938
+ /**
7939
+ * Life event not found
7940
+ */
7941
+ 404: unknown;
7942
+ };
7943
+ };
7944
+ };
7945
+ '/api/v1/{region}/bean/onboarding': {
7946
+ post: {
7947
+ req: OnboardingControllerBootstrapData;
7948
+ res: {
7949
+ /**
7950
+ * Onboarding bootstrap result.
7951
+ */
7952
+ 201: unknown;
7953
+ /**
7954
+ * Invalid region/account path/duplicate paths.
7955
+ */
7956
+ 422: unknown;
7957
+ };
7958
+ };
7959
+ };
7960
+ '/api/v1/{region}/bean/reconciliations': {
7961
+ post: {
7962
+ req: ReconciliationControllerComputeData;
7963
+ res: {
7964
+ /**
7965
+ * Reconciliation preview
7966
+ */
7967
+ 200: ReconciliationComputeResultDto;
7968
+ /**
7969
+ * Account not found
7970
+ */
7971
+ 404: unknown;
7972
+ };
7973
+ };
7974
+ };
7975
+ '/api/v1/{region}/bean/reconciliations/assert': {
7976
+ post: {
7977
+ req: ReconciliationControllerAssertData;
7978
+ res: {
7979
+ /**
7980
+ * Balance assertion recorded
7981
+ */
7982
+ 201: ReconciliationRecordDto;
7983
+ /**
7984
+ * Account not found
7985
+ */
7986
+ 404: unknown;
7987
+ };
7988
+ };
7989
+ };
7990
+ '/api/v1/{region}/bean/reconciliations/pad': {
7991
+ post: {
7992
+ req: ReconciliationControllerPadData;
7993
+ res: {
7994
+ /**
7995
+ * Pad adjusting entry generated
6529
7996
  */
6530
- 200: unknown;
7997
+ 201: PadResultDto;
6531
7998
  /**
6532
- * Unauthorized
7999
+ * Book already within tolerance — no pad needed
6533
8000
  */
6534
- 401: unknown;
8001
+ 400: unknown;
6535
8002
  /**
6536
- * Forbidden - insufficient permissions
8003
+ * Account not found
6537
8004
  */
6538
- 403: unknown;
8005
+ 404: unknown;
6539
8006
  };
6540
8007
  };
6541
- delete: {
6542
- req: PropertyControllerDeleteData;
8008
+ };
8009
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8010
+ get: {
8011
+ req: ReconciliationControllerHistoryData;
6543
8012
  res: {
6544
8013
  /**
6545
- * Property deleted successfully
6546
- */
6547
- 204: void;
6548
- /**
6549
- * Unauthorized
6550
- */
6551
- 401: unknown;
6552
- /**
6553
- * Forbidden - insufficient permissions
8014
+ * Reconciliation history
6554
8015
  */
6555
- 403: unknown;
8016
+ 200: Array<ReconciliationRecordDto>;
6556
8017
  /**
6557
- * Property not found
8018
+ * Account not found
6558
8019
  */
6559
8020
  404: unknown;
6560
8021
  };
@@ -6710,143 +8171,145 @@ type $OpenApiTs = {
6710
8171
  };
6711
8172
  };
6712
8173
  };
6713
- '/api/v1/bean/platforms': {
6714
- get: {
8174
+ '/api/v1/{region}/bean/import/provider/{providerName}/sync': {
8175
+ post: {
8176
+ req: ProviderSyncControllerSyncData;
6715
8177
  res: {
6716
8178
  /**
6717
- * List of platforms with binding and account counts
8179
+ * Sync completed successfully
6718
8180
  */
6719
- 200: unknown;
6720
- };
6721
- };
6722
- post: {
6723
- req: PlatformControllerCreateData;
6724
- res: {
8181
+ 200: ProviderSyncResponseDto;
6725
8182
  /**
6726
- * Platform created successfully
8183
+ * Invalid request data
6727
8184
  */
6728
- 201: unknown;
8185
+ 400: unknown;
6729
8186
  /**
6730
- * Platform already exists
8187
+ * Missing or invalid authentication
6731
8188
  */
6732
- 409: unknown;
8189
+ 401: unknown;
8190
+ /**
8191
+ * Provider not supported
8192
+ */
8193
+ 404: unknown;
6733
8194
  };
6734
8195
  };
6735
8196
  };
6736
- '/api/v1/bean/platforms/list': {
8197
+ '/api/v1/{region}/bean/import/provider/supported': {
6737
8198
  get: {
8199
+ req: ProviderSyncControllerGetSupportedProvidersData;
6738
8200
  res: {
6739
8201
  /**
6740
- * List of platforms with user binding status
8202
+ * List of supported providers
6741
8203
  */
6742
- 200: unknown;
8204
+ 200: SupportedProvidersResponseDto;
8205
+ /**
8206
+ * Missing or invalid authentication
8207
+ */
8208
+ 401: unknown;
6743
8209
  };
6744
8210
  };
6745
8211
  };
6746
- '/api/v1/bean/platforms/match': {
8212
+ '/api/v1/{region}/bean/import/provider/{providerName}/supported': {
6747
8213
  get: {
6748
- req: PlatformControllerMatchPlatformsData;
8214
+ req: ProviderSyncControllerIsProviderSupportedData;
6749
8215
  res: {
6750
8216
  /**
6751
- * List of matching platforms with suggested segment names
8217
+ * Provider support status
6752
8218
  */
6753
8219
  200: unknown;
8220
+ /**
8221
+ * Missing or invalid authentication
8222
+ */
8223
+ 401: unknown;
6754
8224
  };
6755
8225
  };
6756
8226
  };
6757
- '/api/v1/bean/platforms/{id}': {
6758
- put: {
6759
- req: PlatformControllerUpdateData;
8227
+ '/api/v1/{region}/bean/external-account-links': {
8228
+ post: {
8229
+ req: ExternalAccountLinkControllerCreateData;
6760
8230
  res: {
6761
8231
  /**
6762
- * Platform updated successfully
8232
+ * Link created.
6763
8233
  */
6764
- 200: unknown;
8234
+ 201: ExternalAccountLinkResponseDto;
6765
8235
  /**
6766
- * Platform not found
8236
+ * beanAccountId not owned, or an active link already exists.
6767
8237
  */
6768
- 404: unknown;
8238
+ 422: unknown;
6769
8239
  };
6770
8240
  };
6771
- delete: {
6772
- req: PlatformControllerDeleteData;
8241
+ get: {
8242
+ req: ExternalAccountLinkControllerFindAllData;
6773
8243
  res: {
6774
8244
  /**
6775
- * Platform deleted successfully
6776
- */
6777
- 204: void;
6778
- /**
6779
- * Platform not found
8245
+ * Links retrieved.
6780
8246
  */
6781
- 404: unknown;
8247
+ 200: ExternalAccountLinkListResponseDto;
6782
8248
  };
6783
8249
  };
6784
8250
  };
6785
- '/api/v1/{region}/bean/import/provider/{providerName}/sync': {
6786
- post: {
6787
- req: ProviderSyncControllerSyncData;
8251
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8252
+ get: {
8253
+ req: ExternalAccountLinkControllerFindOneData;
6788
8254
  res: {
6789
8255
  /**
6790
- * Sync completed successfully
6791
- */
6792
- 200: ProviderSyncResponseDto;
6793
- /**
6794
- * Invalid request data
8256
+ * Link retrieved.
6795
8257
  */
6796
- 400: unknown;
8258
+ 200: ExternalAccountLinkResponseDto;
6797
8259
  /**
6798
- * Missing or invalid authentication
8260
+ * Link not found or not owned by the user.
6799
8261
  */
6800
- 401: unknown;
8262
+ 422: unknown;
8263
+ };
8264
+ };
8265
+ delete: {
8266
+ req: ExternalAccountLinkControllerRemoveData;
8267
+ res: {
6801
8268
  /**
6802
- * Provider not supported
8269
+ * Link soft-deleted; historical transactions are unaffected.
6803
8270
  */
6804
- 404: unknown;
8271
+ 204: void;
6805
8272
  };
6806
8273
  };
6807
8274
  };
6808
- '/api/v1/{region}/bean/import/provider/supported': {
6809
- get: {
6810
- req: ProviderSyncControllerGetSupportedProvidersData;
8275
+ '/api/v1/{region}/bean/import/parser-telemetry': {
8276
+ post: {
8277
+ req: TelemetryControllerReportTelemetryData;
6811
8278
  res: {
6812
8279
  /**
6813
- * List of supported providers
8280
+ * Telemetry report received
6814
8281
  */
6815
- 200: SupportedProvidersResponseDto;
8282
+ 200: unknown;
6816
8283
  /**
6817
- * Missing or invalid authentication
8284
+ * Unauthorized
6818
8285
  */
6819
8286
  401: unknown;
6820
8287
  };
6821
8288
  };
6822
8289
  };
6823
- '/api/v1/{region}/bean/import/provider/{providerName}/supported': {
6824
- get: {
6825
- req: ProviderSyncControllerIsProviderSupportedData;
8290
+ '/api/v1/{region}/bean/import/parser-coverage-miss': {
8291
+ post: {
8292
+ req: TelemetryControllerReportCoverageMissData;
6826
8293
  res: {
6827
8294
  /**
6828
- * Provider support status
8295
+ * Coverage miss report received
6829
8296
  */
6830
8297
  200: unknown;
6831
8298
  /**
6832
- * Missing or invalid authentication
8299
+ * Unauthorized
6833
8300
  */
6834
8301
  401: unknown;
6835
8302
  };
6836
8303
  };
6837
8304
  };
6838
- '/api/v1/{region}/bean/import/parser-telemetry': {
6839
- post: {
6840
- req: TelemetryControllerReportTelemetryData;
8305
+ '/api/v1/{region}/bean/import/parser-coverage-metrics': {
8306
+ get: {
8307
+ req: TelemetryControllerGetCoverageMetricsData;
6841
8308
  res: {
6842
8309
  /**
6843
- * Telemetry report received
8310
+ * Coverage metrics
6844
8311
  */
6845
8312
  200: unknown;
6846
- /**
6847
- * Unauthorized
6848
- */
6849
- 401: unknown;
6850
8313
  };
6851
8314
  };
6852
8315
  };
@@ -6897,6 +8360,78 @@ type $OpenApiTs = {
6897
8360
  };
6898
8361
  };
6899
8362
  };
8363
+ '/api/v1/bean/platforms': {
8364
+ get: {
8365
+ res: {
8366
+ /**
8367
+ * List of platforms with binding and account counts
8368
+ */
8369
+ 200: unknown;
8370
+ };
8371
+ };
8372
+ post: {
8373
+ req: PlatformControllerCreateData;
8374
+ res: {
8375
+ /**
8376
+ * Platform created successfully
8377
+ */
8378
+ 201: unknown;
8379
+ /**
8380
+ * Platform already exists
8381
+ */
8382
+ 409: unknown;
8383
+ };
8384
+ };
8385
+ };
8386
+ '/api/v1/bean/platforms/list': {
8387
+ get: {
8388
+ res: {
8389
+ /**
8390
+ * List of platforms with user binding status
8391
+ */
8392
+ 200: unknown;
8393
+ };
8394
+ };
8395
+ };
8396
+ '/api/v1/bean/platforms/match': {
8397
+ get: {
8398
+ req: PlatformControllerMatchPlatformsData;
8399
+ res: {
8400
+ /**
8401
+ * List of matching platforms with suggested segment names
8402
+ */
8403
+ 200: unknown;
8404
+ };
8405
+ };
8406
+ };
8407
+ '/api/v1/bean/platforms/{id}': {
8408
+ put: {
8409
+ req: PlatformControllerUpdateData;
8410
+ res: {
8411
+ /**
8412
+ * Platform updated successfully
8413
+ */
8414
+ 200: unknown;
8415
+ /**
8416
+ * Platform not found
8417
+ */
8418
+ 404: unknown;
8419
+ };
8420
+ };
8421
+ delete: {
8422
+ req: PlatformControllerDeleteData;
8423
+ res: {
8424
+ /**
8425
+ * Platform deleted successfully
8426
+ */
8427
+ 204: void;
8428
+ /**
8429
+ * Platform not found
8430
+ */
8431
+ 404: unknown;
8432
+ };
8433
+ };
8434
+ };
6900
8435
  '/api/v1/{region}/dashboard/net-worth': {
6901
8436
  get: {
6902
8437
  req: DashboardControllerGetNetWorthData;
@@ -6919,7 +8454,7 @@ type $OpenApiTs = {
6919
8454
  /**
6920
8455
  * Accounts retrieved successfully. Response type depends on groupBy parameter.
6921
8456
  */
6922
- 200: AccountsResponseDto | AssetClassAccountsResponseDto;
8457
+ 200: AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6923
8458
  /**
6924
8459
  * User not authenticated
6925
8460
  */
@@ -6946,6 +8481,44 @@ type $OpenApiTs = {
6946
8481
  };
6947
8482
  };
6948
8483
  };
8484
+ '/api/v1/{region}/dashboard/expenses': {
8485
+ get: {
8486
+ req: DashboardControllerGetExpensesData;
8487
+ res: {
8488
+ /**
8489
+ * Expenses retrieved successfully
8490
+ */
8491
+ 200: ExpensesByCategoryResponseDto;
8492
+ /**
8493
+ * Invalid groupBy or period
8494
+ */
8495
+ 400: unknown;
8496
+ /**
8497
+ * User not authenticated
8498
+ */
8499
+ 401: unknown;
8500
+ };
8501
+ };
8502
+ };
8503
+ '/api/v1/{region}/investment/holdings/pnl': {
8504
+ get: {
8505
+ req: HoldingPnlControllerGetHoldingPnlData;
8506
+ res: {
8507
+ /**
8508
+ * Holding P&L retrieved successfully
8509
+ */
8510
+ 200: HoldingPnlResponseDto;
8511
+ /**
8512
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8513
+ */
8514
+ 400: unknown;
8515
+ /**
8516
+ * User not authenticated
8517
+ */
8518
+ 401: unknown;
8519
+ };
8520
+ };
8521
+ };
6949
8522
  '/api/v1/{region}/reporting/portfolio/trends': {
6950
8523
  get: {
6951
8524
  req: ReportingControllerGetPortfolioTrendsData;
@@ -6961,6 +8534,21 @@ type $OpenApiTs = {
6961
8534
  };
6962
8535
  };
6963
8536
  };
8537
+ '/api/v1/{region}/reporting/cash-flow/trends': {
8538
+ get: {
8539
+ req: ReportingControllerGetCashFlowTrendsData;
8540
+ res: {
8541
+ /**
8542
+ * Cash-flow trends retrieved successfully
8543
+ */
8544
+ 200: CashFlowTrendsResponseDto;
8545
+ /**
8546
+ * User not authenticated
8547
+ */
8548
+ 401: unknown;
8549
+ };
8550
+ };
8551
+ };
6964
8552
  '/api/v1/{region}/reporting/snapshots/generate': {
6965
8553
  post: {
6966
8554
  req: ReportingControllerGenerateSnapshotData;
@@ -7192,7 +8780,7 @@ declare class BeanAccountsService {
7192
8780
  * @param data.type Filter by account type
7193
8781
  * @param data.status Filter by status
7194
8782
  * @param data.isCustom Filter by custom (user-created) accounts only
7195
- * @param data.search Search term for path or i18nKey
8783
+ * @param data.search Search term for account path
7196
8784
  * @param data.limit Maximum number of results
7197
8785
  * @param data.offset Number of results to skip
7198
8786
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -7252,6 +8840,17 @@ declare class BeanAccountsService {
7252
8840
  * @throws ApiError
7253
8841
  */
7254
8842
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
8843
+ /**
8844
+ * Post an opening-balance transaction
8845
+ * 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.
8846
+ * @param data The data for the request.
8847
+ * @param data.id Account UUID
8848
+ * @param data.region Region code for tenant context
8849
+ * @param data.requestBody
8850
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
8851
+ * @throws ApiError
8852
+ */
8853
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
7255
8854
  }
7256
8855
  declare class BeanTransactionsService {
7257
8856
  /**
@@ -7277,6 +8876,7 @@ declare class BeanTransactionsService {
7277
8876
  * @param data.status Filter by transaction status
7278
8877
  * @param data.search Search in narration and payee fields (max 200 chars)
7279
8878
  * @param data.accountId Filter by account ID (transactions with postings to this account)
8879
+ * @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
7280
8880
  * @returns TransactionListResponseDto Transaction list
7281
8881
  * @throws ApiError
7282
8882
  */
@@ -7352,7 +8952,7 @@ declare class BeanBalancesService {
7352
8952
  * Query account balance
7353
8953
  * Calculate account balance at a specific date for a single currency
7354
8954
  * @param data The data for the request.
7355
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
8955
+ * @param data.account Account name (e.g., "Assets:Checking")
7356
8956
  * @param data.region Region code for tenant context
7357
8957
  * @param data.date Date to calculate balance at (ISO 8601 format)
7358
8958
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -7469,7 +9069,7 @@ declare class ProviderSyncService {
7469
9069
  *
7470
9070
  * @param data The data for the request.
7471
9071
  * @param data.providerName Provider name
7472
- * @param data.region Region code
9072
+ * @param data.region Region code for tenant context
7473
9073
  * @param data.requestBody
7474
9074
  * @returns ProviderSyncResponseDto Sync completed successfully
7475
9075
  * @throws ApiError
@@ -7582,4 +9182,4 @@ type OpenAPIConfig = {
7582
9182
  };
7583
9183
  declare const OpenAPI: OpenAPIConfig;
7584
9184
 
7585
- export { type $OpenApiTs, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type AmountRangeDto, type AnonymousLoginDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowResponseDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CreateAccountDto, type CreateCommodityDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, OpenAPI, type OpenAPIConfig, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UndoResultDto, type UpdateAccountDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubType, type bookingMethod, type branchType, type category, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type paymentSource, type period, type source, type status, type status2, type status3, type status4, type suggestedFrequency, type type, type type2, type type3, type value, type viewMode };
9185
+ 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 ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryGroupDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type 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 };