@firela/api-types 0.0.0-canary.2b8fcbd8 → 0.0.0-canary.2d71872c

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
  */
@@ -779,6 +771,48 @@ type flag2 = 'CLEARED' | 'PENDING' | 'PADDING' | 'SUMMARIZE' | 'TRANSFER' | 'CON
779
771
  * Transaction status
780
772
  */
781
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
+ };
782
816
  type TransactionListResponseDto = {
783
817
  /**
784
818
  * List of transactions
@@ -796,6 +830,10 @@ type TransactionListResponseDto = {
796
830
  * Number of items skipped
797
831
  */
798
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;
799
837
  };
800
838
  type TagSuggestionDto = {
801
839
  /**
@@ -1642,6 +1680,104 @@ type UpdateCommodityDto = {
1642
1680
  [key: string]: unknown;
1643
1681
  };
1644
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
+ };
1645
1781
  type CreateRecurringRuleDto = {
1646
1782
  /**
1647
1783
  * Rule name (unique per user)
@@ -2689,103 +2825,333 @@ type UpdatePropertyDto = {
2689
2825
  */
2690
2826
  value: string;
2691
2827
  };
2692
- type FileImportDto = {
2693
- /**
2694
- * Bill file to import (CSV, PDF, OFX, etc.)
2695
- */
2696
- file: Blob | File;
2697
- };
2698
- type ImportErrorDto = {
2828
+ type CreateBeanEventDto = {
2699
2829
  /**
2700
- * Index of failed transaction in the file
2830
+ * Life event date (ISO 8601)
2701
2831
  */
2702
- index: number;
2832
+ date: string;
2703
2833
  /**
2704
- * Error message
2834
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
2705
2835
  */
2706
- error: string;
2707
- };
2708
- type ReviewItemPreviewDto = {
2836
+ type: string;
2709
2837
  /**
2710
- * Index in the import batch (for tracking)
2838
+ * Life event description. Empty string is a VALID value (distinct from absence).
2711
2839
  */
2712
- index: number;
2840
+ description: string;
2713
2841
  /**
2714
- * Transaction date (ISO format)
2842
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
2715
2843
  */
2716
- date: string;
2844
+ meta?: {
2845
+ [key: string]: unknown;
2846
+ };
2847
+ };
2848
+ type EventResponseDto = {
2717
2849
  /**
2718
- * Transaction amount (absolute value)
2850
+ * Unique identifier
2719
2851
  */
2720
- amount?: number;
2852
+ id: string;
2721
2853
  /**
2722
- * Currency code
2854
+ * User ID (owner of the life event)
2723
2855
  */
2724
- currency?: string;
2856
+ userId: string;
2725
2857
  /**
2726
- * Transaction narration/description
2858
+ * Life event date (ISO 8601 format)
2727
2859
  */
2728
- narration: string;
2860
+ date: string;
2729
2861
  /**
2730
- * Payee name
2862
+ * Life event type (user-defined, e.g., "employer", "location")
2731
2863
  */
2732
- payee?: string;
2864
+ type: string;
2733
2865
  /**
2734
- * Inferred category from rule matching
2866
+ * Life event description. May be an empty string (a valid value distinct from absence).
2735
2867
  */
2736
- category?: string;
2868
+ description: string;
2737
2869
  /**
2738
- * Confidence score for the match (0-1)
2870
+ * Product-side metadata (free-form JSON)
2739
2871
  */
2740
- confidence?: number;
2872
+ meta: {
2873
+ [key: string]: unknown;
2874
+ };
2741
2875
  /**
2742
- * Type of branch requiring review
2876
+ * Creation timestamp
2743
2877
  */
2744
- branchType?: 'DUPLICATE' | 'PAYEE_MATCH' | 'RULE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
2878
+ createdAt: string;
2745
2879
  /**
2746
- * Human-readable reasons for requiring review
2880
+ * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
2747
2881
  */
2748
- reasons?: Array<string>;
2882
+ updatedAt: string;
2749
2883
  };
2750
- /**
2751
- * Type of branch requiring review
2752
- */
2753
- type branchType = 'DUPLICATE' | 'PAYEE_MATCH' | 'RULE_MATCH' | 'ACCOUNT_VALIDATION' | 'PIPELINE_ERROR';
2754
- type ImportResultDto = {
2755
- /**
2756
- * Number of successfully imported transactions
2757
- */
2758
- imported: number;
2884
+ type EventListResponseDto = {
2759
2885
  /**
2760
- * Number of failed transactions
2886
+ * List of life events
2761
2887
  */
2762
- failed: number;
2888
+ items: Array<EventResponseDto>;
2763
2889
  /**
2764
- * Number of skipped transactions (high confidence duplicates, auto-skipped)
2890
+ * Total number of life events matching the query
2765
2891
  */
2766
- skipped: number;
2892
+ total: number;
2893
+ };
2894
+ type UpdateBeanEventDto = {
2767
2895
  /**
2768
- * Number of transactions pending review (medium confidence duplicates)
2896
+ * Life event date (ISO 8601)
2769
2897
  */
2770
- pendingReview: number;
2898
+ date?: string;
2771
2899
  /**
2772
- * Array of error details for failed transactions
2900
+ * Life event type (user-defined)
2773
2901
  */
2774
- errors: Array<ImportErrorDto>;
2902
+ type?: string;
2775
2903
  /**
2776
- * Array of transactions pending review with preview data. Contains essential information for displaying in the import preview UI.
2904
+ * Life event description. Empty string is a VALID value (distinct from absence).
2777
2905
  */
2778
- reviewItems?: Array<ReviewItemPreviewDto>;
2906
+ description?: string;
2779
2907
  /**
2780
- * Array of imported transactions (optional, for debugging)
2908
+ * Product-side metadata (free-form JSON)
2781
2909
  */
2782
- transactions?: {
2910
+ meta?: {
2783
2911
  [key: string]: unknown;
2784
2912
  };
2785
2913
  };
2786
- type IdentifyResultDto = {
2914
+ type OnboardingAccountDto = {
2787
2915
  /**
2788
- * Whether the file was successfully identified
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;
3125
+ /**
3126
+ * Number of failed transactions
3127
+ */
3128
+ failed: number;
3129
+ /**
3130
+ * Number of skipped transactions (high confidence duplicates, auto-skipped)
3131
+ */
3132
+ skipped: number;
3133
+ /**
3134
+ * Number of transactions pending review (medium confidence duplicates)
3135
+ */
3136
+ pendingReview: number;
3137
+ /**
3138
+ * Array of error details for failed transactions
3139
+ */
3140
+ errors: Array<ImportErrorDto>;
3141
+ /**
3142
+ * Array of transactions pending review with preview data. Contains essential information for displaying in the import preview UI.
3143
+ */
3144
+ reviewItems?: Array<ReviewItemPreviewDto>;
3145
+ /**
3146
+ * Array of imported transactions (optional, for debugging)
3147
+ */
3148
+ transactions?: {
3149
+ [key: string]: unknown;
3150
+ };
3151
+ };
3152
+ type IdentifyResultDto = {
3153
+ /**
3154
+ * Whether the file was successfully identified
2789
3155
  */
2790
3156
  identified: boolean;
2791
3157
  /**
@@ -2933,70 +3299,6 @@ type UpdateImporterConfigDto = {
2933
3299
  */
2934
3300
  data?: UpdateConfigDataDto;
2935
3301
  };
2936
- type CreatePlatformDto = {
2937
- /**
2938
- * Platform name
2939
- */
2940
- name: string;
2941
- /**
2942
- * Platform canonical identifier (lowercase, kebab-case)
2943
- */
2944
- canonical: string;
2945
- /**
2946
- * Platform aliases (multi-language names for lookup)
2947
- */
2948
- aliases: Array<string>;
2949
- /**
2950
- * Platform URL
2951
- */
2952
- url: string;
2953
- /**
2954
- * Platform type
2955
- */
2956
- type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2957
- /**
2958
- * Platform logo URL
2959
- */
2960
- logoUrl?: string;
2961
- /**
2962
- * Whether the platform is active
2963
- */
2964
- isActive?: boolean;
2965
- };
2966
- /**
2967
- * Platform type
2968
- */
2969
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2970
- type UpdatePlatformDto = {
2971
- /**
2972
- * Platform name
2973
- */
2974
- name?: string;
2975
- /**
2976
- * Platform canonical identifier (lowercase, kebab-case)
2977
- */
2978
- canonical?: string;
2979
- /**
2980
- * Platform aliases (multi-language names for lookup)
2981
- */
2982
- aliases?: Array<string>;
2983
- /**
2984
- * Platform URL
2985
- */
2986
- url?: string;
2987
- /**
2988
- * Platform type
2989
- */
2990
- type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
2991
- /**
2992
- * Platform logo URL
2993
- */
2994
- logoUrl?: string;
2995
- /**
2996
- * Whether the platform is active
2997
- */
2998
- isActive?: boolean;
2999
- };
3000
3302
  type ProviderSyncConfigDto = {
3001
3303
  /**
3002
3304
  * Source account for the first posting
@@ -3018,6 +3320,10 @@ type ProviderSyncConfigDto = {
3018
3320
  * Filter pending transactions
3019
3321
  */
3020
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;
3021
3327
  };
3022
3328
  type ProviderSyncDto = {
3023
3329
  /**
@@ -3069,6 +3375,41 @@ type SupportedProvidersResponseDto = {
3069
3375
  */
3070
3376
  providers: Array<string>;
3071
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
+ };
3072
3413
  type ParserTelemetryReportDto = unknown;
3073
3414
  type UncoveredFormatMissDto = unknown;
3074
3415
  type ProcessNlpDto = {
@@ -3566,53 +3907,141 @@ type NlpResponseDto = {
3566
3907
  /**
3567
3908
  * Recurring transaction match info (when action is "created"). Contains match details when transaction matches a pending expected transaction.
3568
3909
  */
3569
- recurringMatch?: RecurringMatchInfoDto;
3910
+ recurringMatch?: RecurringMatchInfoDto;
3911
+ /**
3912
+ * Recurring rule creation suggestion (when action is "created"). Contains suggestion to create a recurring rule based on detected patterns. Only present when no existing rule matched and similar historical transactions were found.
3913
+ */
3914
+ recurringSuggestion?: RecurringSuggestionDto;
3915
+ /**
3916
+ * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
3917
+ */
3918
+ suggestedAccounts?: NlpSuggestedAccountsDto;
3919
+ /**
3920
+ * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
3921
+ */
3922
+ defaultAccounts?: NlpDefaultAccountsDto;
3923
+ };
3924
+ /**
3925
+ * Response status
3926
+ */
3927
+ type status4 = 'success' | 'pending' | 'error';
3928
+ /**
3929
+ * Action taken or requested
3930
+ */
3931
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
3932
+ /**
3933
+ * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3934
+ */
3935
+ type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
3936
+ /**
3937
+ * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
3938
+ */
3939
+ type assetSubType = 'transfer' | 'banking' | 'investment';
3940
+ /**
3941
+ * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
3942
+ */
3943
+ type liabilitySubType = 'borrow' | 'repay';
3944
+ /**
3945
+ * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3946
+ */
3947
+ type equitySubType = 'opening' | 'adjustment';
3948
+ type PlatformListItemDto = {
3949
+ /**
3950
+ * Global platform ID
3951
+ */
3952
+ id: string;
3953
+ /**
3954
+ * Platform name
3955
+ */
3956
+ name: string;
3957
+ /**
3958
+ * Platform URL
3959
+ */
3960
+ url: string;
3961
+ /**
3962
+ * Platform type
3963
+ */
3964
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3965
+ /**
3966
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
3967
+ */
3968
+ canonical: string;
3969
+ /**
3970
+ * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
3971
+ */
3972
+ suggestedSegment: string;
3973
+ /**
3974
+ * Logo URL
3975
+ */
3976
+ logoUrl: string | null;
3977
+ /**
3978
+ * Whether user has accounts using this platform
3979
+ */
3980
+ isBound: boolean;
3981
+ };
3982
+ /**
3983
+ * Platform type
3984
+ */
3985
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3986
+ type CreatePlatformDto = {
3987
+ /**
3988
+ * Platform name
3989
+ */
3990
+ name: string;
3991
+ /**
3992
+ * Platform canonical identifier (lowercase, kebab-case)
3993
+ */
3994
+ canonical: string;
3995
+ /**
3996
+ * Platform aliases (multi-language names for lookup)
3997
+ */
3998
+ aliases: Array<string>;
3999
+ /**
4000
+ * Platform URL
4001
+ */
4002
+ url: string;
4003
+ /**
4004
+ * Platform type
4005
+ */
4006
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4007
+ /**
4008
+ * Platform logo URL
4009
+ */
4010
+ logoUrl?: string;
4011
+ /**
4012
+ * Whether the platform is active
4013
+ */
4014
+ isActive?: boolean;
4015
+ };
4016
+ type UpdatePlatformDto = {
4017
+ /**
4018
+ * Platform name
4019
+ */
4020
+ name?: string;
4021
+ /**
4022
+ * Platform canonical identifier (lowercase, kebab-case)
4023
+ */
4024
+ canonical?: string;
3570
4025
  /**
3571
- * Recurring rule creation suggestion (when action is "created"). Contains suggestion to create a recurring rule based on detected patterns. Only present when no existing rule matched and similar historical transactions were found.
4026
+ * Platform aliases (multi-language names for lookup)
3572
4027
  */
3573
- recurringSuggestion?: RecurringSuggestionDto;
4028
+ aliases?: Array<string>;
3574
4029
  /**
3575
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4030
+ * Platform URL
3576
4031
  */
3577
- suggestedAccounts?: NlpSuggestedAccountsDto;
4032
+ url?: string;
3578
4033
  /**
3579
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4034
+ * Platform type
3580
4035
  */
3581
- defaultAccounts?: NlpDefaultAccountsDto;
3582
- };
3583
- /**
3584
- * Response status
3585
- */
3586
- type status4 = 'success' | 'pending' | 'error';
3587
- /**
3588
- * Action taken or requested
3589
- */
3590
- type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
3591
- /**
3592
- * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3593
- */
3594
- type intent = 'expense' | 'asset' | 'income' | 'liability' | 'equity';
3595
- /**
3596
- * Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.
3597
- */
3598
- type assetSubType = 'transfer' | 'banking' | 'investment';
3599
- /**
3600
- * Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).
3601
- */
3602
- type liabilitySubType = 'borrow' | 'repay';
3603
- /**
3604
- * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3605
- */
3606
- type equitySubType = 'opening' | 'adjustment';
3607
- type BalanceByCurrencyDto = {
4036
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3608
4037
  /**
3609
- * ISO 4217 currency code
4038
+ * Platform logo URL
3610
4039
  */
3611
- currency: string;
4040
+ logoUrl?: string;
3612
4041
  /**
3613
- * Balance amount
4042
+ * Whether the platform is active
3614
4043
  */
3615
- balance: string;
4044
+ isActive?: boolean;
3616
4045
  };
3617
4046
  type NetWorthByCurrencyDto = {
3618
4047
  /**
@@ -3652,20 +4081,6 @@ type ConvertedNetWorthDto = {
3652
4081
  [key: string]: unknown;
3653
4082
  };
3654
4083
  };
3655
- type ExchangeRateWarningDto = {
3656
- /**
3657
- * Warning type
3658
- */
3659
- type: string;
3660
- /**
3661
- * Currency without exchange rate
3662
- */
3663
- currency: string;
3664
- /**
3665
- * Total amount affected
3666
- */
3667
- totalAmount: string;
3668
- };
3669
4084
  type NetWorthResponseDto = {
3670
4085
  /**
3671
4086
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3729,6 +4144,10 @@ type AccountItemDto = {
3729
4144
  * Currency code
3730
4145
  */
3731
4146
  currency: string;
4147
+ /**
4148
+ * FX-converted balance in base currency; omitted when not convertible
4149
+ */
4150
+ convertedBalance?: string;
3732
4151
  };
3733
4152
  type PlatformGroupDto = {
3734
4153
  /**
@@ -3744,9 +4163,39 @@ type PlatformGroupDto = {
3744
4163
  */
3745
4164
  accounts: Array<AccountItemDto>;
3746
4165
  /**
3747
- * Total balance across all accounts in platform
4166
+ * FX-converted total balance in base currency
3748
4167
  */
3749
4168
  totalBalance: string;
4169
+ /**
4170
+ * Raw (unconverted) balances grouped by currency
4171
+ */
4172
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4173
+ /**
4174
+ * Converted balance in base currency (omitted when no currency is convertible)
4175
+ */
4176
+ convertedBalance?: string;
4177
+ /**
4178
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4179
+ */
4180
+ sharePct: number;
4181
+ };
4182
+ type AccountExchangeRateWarningDto = {
4183
+ /**
4184
+ * Warning type
4185
+ */
4186
+ type: string;
4187
+ /**
4188
+ * Currency without exchange rate
4189
+ */
4190
+ currency: string;
4191
+ /**
4192
+ * Affected account paths
4193
+ */
4194
+ accounts: Array<string>;
4195
+ /**
4196
+ * Total amount in this currency
4197
+ */
4198
+ totalAmount: string;
3750
4199
  };
3751
4200
  type AccountsSummaryDto = {
3752
4201
  /**
@@ -3757,6 +4206,14 @@ type AccountsSummaryDto = {
3757
4206
  * Total number of platforms
3758
4207
  */
3759
4208
  totalPlatforms: number;
4209
+ /**
4210
+ * Base currency for conversion
4211
+ */
4212
+ baseCurrency: string;
4213
+ /**
4214
+ * Per-account exchange rate warnings
4215
+ */
4216
+ warnings?: Array<AccountExchangeRateWarningDto>;
3760
4217
  };
3761
4218
  type AccountsResponseDto = {
3762
4219
  /**
@@ -3789,6 +4246,10 @@ type AccountItemWithAssetClassDto = {
3789
4246
  * Currency code
3790
4247
  */
3791
4248
  currency: string;
4249
+ /**
4250
+ * FX-converted balance in base currency; omitted when not convertible
4251
+ */
4252
+ convertedBalance?: string;
3792
4253
  /**
3793
4254
  * Asset class
3794
4255
  */
@@ -3840,24 +4301,6 @@ type AssetClassGroupDto = {
3840
4301
  * Asset class name
3841
4302
  */
3842
4303
  type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
3843
- type AccountExchangeRateWarningDto = {
3844
- /**
3845
- * Warning type
3846
- */
3847
- type: string;
3848
- /**
3849
- * Currency without exchange rate
3850
- */
3851
- currency: string;
3852
- /**
3853
- * Affected account paths
3854
- */
3855
- accounts: Array<string>;
3856
- /**
3857
- * Total amount in this currency
3858
- */
3859
- totalAmount: string;
3860
- };
3861
4304
  type AssetClassSummaryDto = {
3862
4305
  /**
3863
4306
  * Total number of accounts
@@ -4016,6 +4459,60 @@ type CashFlowResponseDto = {
4016
4459
  */
4017
4460
  warnings?: Array<ExchangeRateWarningDto>;
4018
4461
  };
4462
+ type CategoryGroupDto = {
4463
+ /**
4464
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4465
+ */
4466
+ category: string;
4467
+ /**
4468
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4469
+ */
4470
+ totalExpense: string;
4471
+ /**
4472
+ * Share of grand total (0-100); 0 when grand total is 0
4473
+ */
4474
+ sharePct: number;
4475
+ /**
4476
+ * Raw (unconverted) expense per currency
4477
+ */
4478
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4479
+ /**
4480
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4481
+ */
4482
+ convertedBalance?: string;
4483
+ };
4484
+ type ExpensesByCategorySummaryDto = {
4485
+ /**
4486
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4487
+ */
4488
+ totalExpense: string;
4489
+ /**
4490
+ * Number of categories
4491
+ */
4492
+ categoryCount: number;
4493
+ };
4494
+ type ExpensesByCategoryResponseDto = {
4495
+ /**
4496
+ * Period requested
4497
+ */
4498
+ period: string;
4499
+ /**
4500
+ * Base currency for converted values
4501
+ */
4502
+ baseCurrency: string;
4503
+ /**
4504
+ * Expense groups by functional category, sorted by converted total desc
4505
+ */
4506
+ groups: Array<CategoryGroupDto>;
4507
+ /**
4508
+ * Summary statistics
4509
+ */
4510
+ summary: ExpensesByCategorySummaryDto;
4511
+ /**
4512
+ * Exchange rate warnings (e.g. missing rate for a currency)
4513
+ */
4514
+ warnings?: Array<ExchangeRateWarningDto>;
4515
+ };
4019
4516
  type MonetaryDto = {
4020
4517
  /**
4021
4518
  * Amount (Decimal string)
@@ -4183,108 +4680,10 @@ type HoldingPnlResponseDto = {
4183
4680
  rows: Array<HoldingPnlRowDto>;
4184
4681
  warnings: Array<HoldingPnlWarningDto>;
4185
4682
  };
4186
- /**
4187
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4188
- */
4189
- type method = 'average' | 'FIFO';
4190
- type CreateBeanPriceDto = {
4191
- /**
4192
- * Currency being priced (e.g., USD, AAPL, BTC)
4193
- */
4194
- currency: string;
4195
- /**
4196
- * Quote currency (pricing currency, e.g., CNY, EUR)
4197
- */
4198
- quoteCurrency: string;
4199
- /**
4200
- * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
4201
- */
4202
- amount: number;
4203
- /**
4204
- * Price date (ISO 8601 format)
4205
- */
4206
- date: string;
4207
- /**
4208
- * Metadata (validated by Zod schema, max field lengths enforced)
4209
- */
4210
- metadata?: {
4211
- [key: string]: unknown;
4212
- };
4213
- };
4214
- type PriceResponseDto = {
4215
- /**
4216
- * Unique identifier
4217
- */
4218
- id: string;
4219
- /**
4220
- * User ID (owner of the price)
4221
- */
4222
- userId: string;
4223
- /**
4224
- * Currency being priced (e.g., USD, AAPL, BTC)
4225
- */
4226
- currency: string;
4227
- /**
4228
- * Quote currency (pricing currency, e.g., USD, CNY)
4229
- */
4230
- quoteCurrency: string;
4231
- /**
4232
- * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
4233
- */
4234
- amount: number;
4235
- /**
4236
- * Price date (ISO 8601 format). Represents the date this price was valid.
4237
- */
4238
- date: string;
4239
- /**
4240
- * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
4241
- */
4242
- meta: {
4243
- [key: string]: unknown;
4244
- };
4245
- /**
4246
- * Creation timestamp
4247
- */
4248
- createdAt: string;
4249
- /**
4250
- * Last update timestamp
4251
- */
4252
- updatedAt: string;
4253
- };
4254
- type PriceListResponseDto = {
4255
- /**
4256
- * List of prices
4257
- */
4258
- items: Array<PriceResponseDto>;
4259
- /**
4260
- * Total number of prices
4261
- */
4262
- total: number;
4263
- };
4264
- type UpdateBeanPriceDto = {
4265
- /**
4266
- * Currency being priced
4267
- */
4268
- currency?: string;
4269
- /**
4270
- * Quote currency (pricing currency)
4271
- */
4272
- quoteCurrency?: string;
4273
- /**
4274
- * Price amount (MUST be >= 0 per Beancount spec)
4275
- */
4276
- amount?: number;
4277
- /**
4278
- * Price date (ISO 8601 format)
4279
- */
4280
- date?: string;
4281
- /**
4282
- * Metadata
4283
- */
4284
- metadata?: {
4285
- [key: string]: unknown;
4286
- };
4287
- };
4683
+ /**
4684
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4685
+ */
4686
+ type method = 'average' | 'FIFO';
4288
4687
  type CurrencyBalanceDto = {
4289
4688
  /**
4290
4689
  * ISO 4217 currency code
@@ -4310,6 +4709,14 @@ type TimeSeriesPointDto = {
4310
4709
  change?: {
4311
4710
  [key: string]: unknown;
4312
4711
  };
4712
+ /**
4713
+ * Total assets at this date (in base currency)
4714
+ */
4715
+ assets?: string;
4716
+ /**
4717
+ * Total liabilities at this date (in base currency)
4718
+ */
4719
+ liabilities?: string;
4313
4720
  /**
4314
4721
  * Multi-currency breakdown for this point
4315
4722
  */
@@ -4373,6 +4780,68 @@ type PortfolioTrendsResponseDto = {
4373
4780
  */
4374
4781
  warnings?: Array<ExchangeRateWarningDto>;
4375
4782
  };
4783
+ type CashFlowPointDto = {
4784
+ /**
4785
+ * Month key (YYYY-MM)
4786
+ */
4787
+ month: string;
4788
+ /**
4789
+ * Income in base currency (absolute, converted)
4790
+ */
4791
+ income: string;
4792
+ /**
4793
+ * Expense in base currency (absolute, converted)
4794
+ */
4795
+ expense: string;
4796
+ /**
4797
+ * netSavings = income − expense (savings positive)
4798
+ */
4799
+ netSavings: string;
4800
+ };
4801
+ type CashFlowTrendSummaryDto = {
4802
+ /**
4803
+ * Total income across the period
4804
+ */
4805
+ totalIncome: string;
4806
+ /**
4807
+ * Total expense across the period
4808
+ */
4809
+ totalExpense: string;
4810
+ /**
4811
+ * income − expense across the period
4812
+ */
4813
+ totalNetSavings: string;
4814
+ /**
4815
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
4816
+ */
4817
+ averageMonthlyNetSavings: string;
4818
+ };
4819
+ type CashFlowTrendsResponseDto = {
4820
+ /**
4821
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
4822
+ */
4823
+ series: Array<CashFlowPointDto>;
4824
+ /**
4825
+ * Period totals
4826
+ */
4827
+ summary: CashFlowTrendSummaryDto;
4828
+ /**
4829
+ * Period requested
4830
+ */
4831
+ period: string;
4832
+ /**
4833
+ * Data granularity (v1 returns month buckets)
4834
+ */
4835
+ granularity: string;
4836
+ /**
4837
+ * Base currency for converted values
4838
+ */
4839
+ currency: string;
4840
+ /**
4841
+ * Exchange rate warnings (e.g. missing rate for a currency)
4842
+ */
4843
+ warnings?: Array<ExchangeRateWarningDto>;
4844
+ };
4376
4845
  type GenerateSnapshotBody = unknown;
4377
4846
  type GenerateSnapshotResponse = unknown;
4378
4847
  type BackfillSnapshotsBody = unknown;
@@ -4409,7 +4878,7 @@ type AccountControllerFindAllData = {
4409
4878
  */
4410
4879
  region: 'cn' | 'us' | 'de' | 'gb';
4411
4880
  /**
4412
- * Search term for path or i18nKey
4881
+ * Search term for account path
4413
4882
  */
4414
4883
  search?: string;
4415
4884
  /**
@@ -4480,6 +4949,18 @@ type AccountControllerReopenData = {
4480
4949
  requestBody: ReopenAccountDto;
4481
4950
  };
4482
4951
  type AccountControllerReopenResponse = AccountResponseDto;
4952
+ type AccountControllerAddOpeningBalanceData = {
4953
+ /**
4954
+ * Account UUID
4955
+ */
4956
+ id: string;
4957
+ /**
4958
+ * Region code for tenant context
4959
+ */
4960
+ region: 'cn' | 'us' | 'de' | 'gb';
4961
+ requestBody: CreateOpeningBalanceDto;
4962
+ };
4963
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4483
4964
  type AccountStandardsControllerGetTemplatesData = {
4484
4965
  /**
4485
4966
  * Region code (cn, us, de)
@@ -4529,6 +5010,10 @@ type TransactionControllerListData = {
4529
5010
  * Filter by account ID (transactions with postings to this account)
4530
5011
  */
4531
5012
  accountId?: string;
5013
+ /**
5014
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5015
+ */
5016
+ category?: string;
4532
5017
  /**
4533
5018
  * Filter by start date (inclusive), format: YYYY-MM-DD
4534
5019
  */
@@ -4637,7 +5122,7 @@ type TransactionControllerDeleteData = {
4637
5122
  type TransactionControllerDeleteResponse = void;
4638
5123
  type BalanceControllerGetBalanceData = {
4639
5124
  /**
4640
- * Account name (e.g., "Assets:Bank:Checking")
5125
+ * Account name (e.g., "Assets:Checking")
4641
5126
  */
4642
5127
  account: string;
4643
5128
  /**
@@ -4949,6 +5434,91 @@ type CommodityControllerBulkCreateData = {
4949
5434
  region: 'cn' | 'us' | 'de' | 'gb';
4950
5435
  };
4951
5436
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5437
+ type PriceControllerCreateData = {
5438
+ /**
5439
+ * Region code for tenant context
5440
+ */
5441
+ region: 'cn' | 'us' | 'de' | 'gb';
5442
+ requestBody: CreateBeanPriceDto;
5443
+ };
5444
+ type PriceControllerCreateResponse = PriceResponseDto;
5445
+ type PriceControllerFindAllData = {
5446
+ /**
5447
+ * Filter by currency (e.g., BTC, AAPL, USD)
5448
+ */
5449
+ currency?: string;
5450
+ /**
5451
+ * Filter prices from this date (ISO 8601 format)
5452
+ */
5453
+ dateFrom?: string;
5454
+ /**
5455
+ * Filter prices to this date (ISO 8601 format)
5456
+ */
5457
+ dateTo?: string;
5458
+ /**
5459
+ * Number of items per page (default: 20, max: 100)
5460
+ */
5461
+ limit?: number;
5462
+ /**
5463
+ * Page number for pagination (default: 1)
5464
+ */
5465
+ page?: number;
5466
+ /**
5467
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5468
+ */
5469
+ quoteCurrency?: string;
5470
+ /**
5471
+ * Region code for tenant context
5472
+ */
5473
+ region: 'cn' | 'us' | 'de' | 'gb';
5474
+ /**
5475
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5476
+ */
5477
+ search?: string;
5478
+ };
5479
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5480
+ type PriceControllerFindOneData = {
5481
+ /**
5482
+ * Price ID
5483
+ */
5484
+ id: string;
5485
+ /**
5486
+ * Region code for tenant context
5487
+ */
5488
+ region: 'cn' | 'us' | 'de' | 'gb';
5489
+ };
5490
+ type PriceControllerFindOneResponse = PriceResponseDto;
5491
+ type PriceControllerUpdateData = {
5492
+ /**
5493
+ * Price ID
5494
+ */
5495
+ id: string;
5496
+ /**
5497
+ * Region code for tenant context
5498
+ */
5499
+ region: 'cn' | 'us' | 'de' | 'gb';
5500
+ requestBody: UpdateBeanPriceDto;
5501
+ };
5502
+ type PriceControllerUpdateResponse = PriceResponseDto;
5503
+ type PriceControllerDeleteData = {
5504
+ /**
5505
+ * Price ID
5506
+ */
5507
+ id: string;
5508
+ /**
5509
+ * Region code for tenant context
5510
+ */
5511
+ region: 'cn' | 'us' | 'de' | 'gb';
5512
+ };
5513
+ type PriceControllerDeleteResponse = void;
5514
+ type PriceControllerBulkCreateData = {
5515
+ /**
5516
+ * Region code for tenant context
5517
+ */
5518
+ region: 'cn' | 'us' | 'de' | 'gb';
5519
+ requestBody: Array<string>;
5520
+ };
5521
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
4952
5522
  type RecurringRuleControllerCreateData = {
4953
5523
  /**
4954
5524
  * Region code for tenant context
@@ -5326,6 +5896,135 @@ type PropertyControllerDeleteData = {
5326
5896
  key: string;
5327
5897
  };
5328
5898
  type PropertyControllerDeleteResponse = void;
5899
+ type EventControllerCreateData = {
5900
+ /**
5901
+ * Region code for tenant context (decorative for life events)
5902
+ */
5903
+ region: 'cn' | 'us' | 'de' | 'gb';
5904
+ requestBody: CreateBeanEventDto;
5905
+ };
5906
+ type EventControllerCreateResponse = EventResponseDto;
5907
+ type EventControllerFindAllData = {
5908
+ /**
5909
+ * Filter life events from this date (ISO 8601 format)
5910
+ */
5911
+ from?: string;
5912
+ /**
5913
+ * Number of items per page (default: 20, max: 100)
5914
+ */
5915
+ limit?: number;
5916
+ /**
5917
+ * Page number for pagination (default: 1)
5918
+ */
5919
+ page?: number;
5920
+ /**
5921
+ * Search term for description (case-insensitive partial match)
5922
+ */
5923
+ q?: string;
5924
+ /**
5925
+ * Region code for tenant context (decorative for life events)
5926
+ */
5927
+ region: 'cn' | 'us' | 'de' | 'gb';
5928
+ /**
5929
+ * Filter life events to this date (ISO 8601 format)
5930
+ */
5931
+ to?: string;
5932
+ /**
5933
+ * Filter by life event type (exact match)
5934
+ */
5935
+ type?: string;
5936
+ };
5937
+ type EventControllerFindAllResponse = EventListResponseDto;
5938
+ type EventControllerFindOneData = {
5939
+ /**
5940
+ * Life event ID
5941
+ */
5942
+ id: string;
5943
+ /**
5944
+ * Region code for tenant context (decorative for life events)
5945
+ */
5946
+ region: 'cn' | 'us' | 'de' | 'gb';
5947
+ };
5948
+ type EventControllerFindOneResponse = EventResponseDto;
5949
+ type EventControllerUpdateData = {
5950
+ /**
5951
+ * Life event ID
5952
+ */
5953
+ id: string;
5954
+ /**
5955
+ * Region code for tenant context (decorative for life events)
5956
+ */
5957
+ region: 'cn' | 'us' | 'de' | 'gb';
5958
+ requestBody: UpdateBeanEventDto;
5959
+ };
5960
+ type EventControllerUpdateResponse = EventResponseDto;
5961
+ type EventControllerDeleteData = {
5962
+ /**
5963
+ * Life event ID
5964
+ */
5965
+ id: string;
5966
+ /**
5967
+ * Region code for tenant context (decorative for life events)
5968
+ */
5969
+ region: 'cn' | 'us' | 'de' | 'gb';
5970
+ };
5971
+ type EventControllerDeleteResponse = void;
5972
+ type EventControllerGetSliceData = {
5973
+ accountPattern: string;
5974
+ granularity: string;
5975
+ /**
5976
+ * Life event ID
5977
+ */
5978
+ id: string;
5979
+ /**
5980
+ * Region code for tenant context (decorative for life events)
5981
+ */
5982
+ region: 'cn' | 'us' | 'de' | 'gb';
5983
+ };
5984
+ type EventControllerGetSliceResponse = unknown;
5985
+ type OnboardingControllerBootstrapData = {
5986
+ /**
5987
+ * Region code for tenant context
5988
+ */
5989
+ region: 'cn' | 'us' | 'de' | 'gb';
5990
+ requestBody: OnboardingDto;
5991
+ };
5992
+ type OnboardingControllerBootstrapResponse = unknown;
5993
+ type ReconciliationControllerComputeData = {
5994
+ /**
5995
+ * Region code for tenant context (decorative for reconciliation)
5996
+ */
5997
+ region: 'cn' | 'us' | 'de' | 'gb';
5998
+ requestBody: ComputeReconciliationDto;
5999
+ };
6000
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
6001
+ type ReconciliationControllerAssertData = {
6002
+ /**
6003
+ * Region code for tenant context (decorative for reconciliation)
6004
+ */
6005
+ region: 'cn' | 'us' | 'de' | 'gb';
6006
+ requestBody: AssertReconciliationDto;
6007
+ };
6008
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
6009
+ type ReconciliationControllerPadData = {
6010
+ /**
6011
+ * Region code for tenant context (decorative for reconciliation)
6012
+ */
6013
+ region: 'cn' | 'us' | 'de' | 'gb';
6014
+ requestBody: PadReconciliationDto;
6015
+ };
6016
+ type ReconciliationControllerPadResponse = PadResultDto;
6017
+ type ReconciliationControllerHistoryData = {
6018
+ /**
6019
+ * BeanAccount id
6020
+ */
6021
+ accountId: string;
6022
+ /**
6023
+ * Region code for tenant context (decorative for reconciliation)
6024
+ */
6025
+ region: 'cn' | 'us' | 'de' | 'gb';
6026
+ };
6027
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
5329
6028
  type ExportControllerExportBeancountResponse = unknown;
5330
6029
  type FileImportControllerImportFileData = {
5331
6030
  /**
@@ -5402,41 +6101,9 @@ type ImporterConfigControllerResetConfigData = {
5402
6101
  /**
5403
6102
  * Region code for tenant context
5404
6103
  */
5405
- region: 'cn' | 'us' | 'de' | 'gb';
5406
- };
5407
- type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
5408
- type PlatformControllerFindAllResponse = unknown;
5409
- type PlatformControllerCreateData = {
5410
- requestBody: CreatePlatformDto;
5411
- };
5412
- type PlatformControllerCreateResponse = unknown;
5413
- type PlatformControllerGetPlatformListResponse = unknown;
5414
- type PlatformControllerMatchPlatformsData = {
5415
- /**
5416
- * Search query — Chinese name, English name, or abbreviation
5417
- */
5418
- q: string;
5419
- /**
5420
- * Region code for category override lookup
5421
- */
5422
- region?: string;
5423
- };
5424
- type PlatformControllerMatchPlatformsResponse = unknown;
5425
- type PlatformControllerUpdateData = {
5426
- /**
5427
- * Platform ID
5428
- */
5429
- id: string;
5430
- requestBody: UpdatePlatformDto;
5431
- };
5432
- type PlatformControllerUpdateResponse = unknown;
5433
- type PlatformControllerDeleteData = {
5434
- /**
5435
- * Platform ID
5436
- */
5437
- id: string;
6104
+ region: 'cn' | 'us' | 'de' | 'gb';
5438
6105
  };
5439
- type PlatformControllerDeleteResponse = void;
6106
+ type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
5440
6107
  type ProviderSyncControllerSyncData = {
5441
6108
  /**
5442
6109
  * Provider name
@@ -5467,6 +6134,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
5467
6134
  region: 'cn' | 'us' | 'de' | 'gb';
5468
6135
  };
5469
6136
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6137
+ type ExternalAccountLinkControllerCreateData = {
6138
+ /**
6139
+ * Region code for tenant context
6140
+ */
6141
+ region: 'cn' | 'us' | 'de' | 'gb';
6142
+ requestBody: CreateExternalAccountLinkDto;
6143
+ };
6144
+ type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
6145
+ type ExternalAccountLinkControllerFindAllData = {
6146
+ provider: string;
6147
+ /**
6148
+ * Region code for tenant context
6149
+ */
6150
+ region: 'cn' | 'us' | 'de' | 'gb';
6151
+ };
6152
+ type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6153
+ type ExternalAccountLinkControllerFindOneData = {
6154
+ id: string;
6155
+ /**
6156
+ * Region code for tenant context
6157
+ */
6158
+ region: 'cn' | 'us' | 'de' | 'gb';
6159
+ };
6160
+ type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6161
+ type ExternalAccountLinkControllerRemoveData = {
6162
+ id: string;
6163
+ /**
6164
+ * Region code for tenant context
6165
+ */
6166
+ region: 'cn' | 'us' | 'de' | 'gb';
6167
+ };
6168
+ type ExternalAccountLinkControllerRemoveResponse = void;
5470
6169
  type TelemetryControllerReportTelemetryData = {
5471
6170
  /**
5472
6171
  * Region code for tenant context
@@ -5527,6 +6226,38 @@ type NlpControllerGetSessionData = {
5527
6226
  sessionId?: string;
5528
6227
  };
5529
6228
  type NlpControllerGetSessionResponse = unknown;
6229
+ type PlatformControllerFindAllResponse = unknown;
6230
+ type PlatformControllerCreateData = {
6231
+ requestBody: CreatePlatformDto;
6232
+ };
6233
+ type PlatformControllerCreateResponse = unknown;
6234
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6235
+ type PlatformControllerMatchPlatformsData = {
6236
+ /**
6237
+ * Search query — Chinese name, English name, or abbreviation
6238
+ */
6239
+ q: string;
6240
+ /**
6241
+ * Region code for category override lookup
6242
+ */
6243
+ region?: string;
6244
+ };
6245
+ type PlatformControllerMatchPlatformsResponse = unknown;
6246
+ type PlatformControllerUpdateData = {
6247
+ /**
6248
+ * Platform ID
6249
+ */
6250
+ id: string;
6251
+ requestBody: UpdatePlatformDto;
6252
+ };
6253
+ type PlatformControllerUpdateResponse = unknown;
6254
+ type PlatformControllerDeleteData = {
6255
+ /**
6256
+ * Platform ID
6257
+ */
6258
+ id: string;
6259
+ };
6260
+ type PlatformControllerDeleteResponse = void;
5530
6261
  type DashboardControllerGetNetWorthData = {
5531
6262
  /**
5532
6263
  * Date for balance calculation (ISO 8601 format)
@@ -5568,113 +6299,62 @@ type DashboardControllerGetCashFlowData = {
5568
6299
  region: 'cn' | 'us' | 'de' | 'gb';
5569
6300
  };
5570
6301
  type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
5571
- type HoldingPnlControllerGetHoldingPnlData = {
5572
- /**
5573
- * Scope to a single account
5574
- */
5575
- accountId?: string;
5576
- /**
5577
- * As-of date (ISO 8601), defaults to today
5578
- */
5579
- asOf?: string;
5580
- /**
5581
- * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
5582
- */
5583
- method?: 'FIFO' | 'average';
5584
- /**
5585
- * Region code for tenant context
5586
- */
5587
- region: 'cn' | 'us' | 'de' | 'gb';
5588
- };
5589
- type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
5590
- type PriceControllerCreateData = {
5591
- /**
5592
- * Region code for tenant context
5593
- */
5594
- region: 'cn' | 'us' | 'de' | 'gb';
5595
- requestBody: CreateBeanPriceDto;
5596
- };
5597
- type PriceControllerCreateResponse = PriceResponseDto;
5598
- type PriceControllerFindAllData = {
5599
- /**
5600
- * Filter by currency (e.g., BTC, AAPL, USD)
5601
- */
5602
- currency?: string;
5603
- /**
5604
- * Filter prices from this date (ISO 8601 format)
5605
- */
5606
- dateFrom?: string;
5607
- /**
5608
- * Filter prices to this date (ISO 8601 format)
5609
- */
5610
- dateTo?: string;
6302
+ type DashboardControllerGetExpensesData = {
5611
6303
  /**
5612
- * Number of items per page (default: 20, max: 100)
6304
+ * Account root to aggregate (expense ^Expenses:, income → ^Income:)
5613
6305
  */
5614
- limit?: number;
6306
+ flow?: 'expense' | 'income';
5615
6307
  /**
5616
- * Page number for pagination (default: 1)
6308
+ * Grouping strategy
5617
6309
  */
5618
- page?: number;
6310
+ groupBy?: 'category';
5619
6311
  /**
5620
- * Filter by quote currency (pricing currency, e.g., USD, CNY)
6312
+ * Time window (1m = current calendar month)
5621
6313
  */
5622
- quoteCurrency?: string;
6314
+ period?: '1m' | '3m' | '6m' | '1y';
5623
6315
  /**
5624
6316
  * Region code for tenant context
5625
6317
  */
5626
6318
  region: 'cn' | 'us' | 'de' | 'gb';
5627
- /**
5628
- * Search term for currency or quoteCurrency (case-insensitive partial match)
5629
- */
5630
- search?: string;
5631
6319
  };
5632
- type PriceControllerFindAllResponse = PriceListResponseDto;
5633
- type PriceControllerFindOneData = {
6320
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6321
+ type HoldingPnlControllerGetHoldingPnlData = {
5634
6322
  /**
5635
- * Price ID
6323
+ * Scope to a single account
5636
6324
  */
5637
- id: string;
6325
+ accountId?: string;
5638
6326
  /**
5639
- * Region code for tenant context
6327
+ * As-of date (ISO 8601), defaults to today
5640
6328
  */
5641
- region: 'cn' | 'us' | 'de' | 'gb';
5642
- };
5643
- type PriceControllerFindOneResponse = PriceResponseDto;
5644
- type PriceControllerUpdateData = {
6329
+ asOf?: string;
5645
6330
  /**
5646
- * Price ID
6331
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
5647
6332
  */
5648
- id: string;
6333
+ method?: 'FIFO' | 'average';
5649
6334
  /**
5650
6335
  * Region code for tenant context
5651
6336
  */
5652
6337
  region: 'cn' | 'us' | 'de' | 'gb';
5653
- requestBody: UpdateBeanPriceDto;
5654
6338
  };
5655
- type PriceControllerUpdateResponse = PriceResponseDto;
5656
- type PriceControllerDeleteData = {
6339
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
6340
+ type ReportingControllerGetPortfolioTrendsData = {
5657
6341
  /**
5658
- * Price ID
6342
+ * Data granularity
5659
6343
  */
5660
- id: string;
6344
+ granularity?: 'day' | 'week' | 'month';
5661
6345
  /**
5662
- * Region code for tenant context
6346
+ * Time period
5663
6347
  */
5664
- region: 'cn' | 'us' | 'de' | 'gb';
5665
- };
5666
- type PriceControllerDeleteResponse = void;
5667
- type PriceControllerBulkCreateData = {
6348
+ period?: '1m' | '3m' | '6m' | '1y';
5668
6349
  /**
5669
6350
  * Region code for tenant context
5670
6351
  */
5671
6352
  region: 'cn' | 'us' | 'de' | 'gb';
5672
- requestBody: Array<string>;
5673
6353
  };
5674
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
5675
- type ReportingControllerGetPortfolioTrendsData = {
6354
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6355
+ type ReportingControllerGetCashFlowTrendsData = {
5676
6356
  /**
5677
- * Data granularity
6357
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5678
6358
  */
5679
6359
  granularity?: 'day' | 'week' | 'month';
5680
6360
  /**
@@ -5686,7 +6366,7 @@ type ReportingControllerGetPortfolioTrendsData = {
5686
6366
  */
5687
6367
  region: 'cn' | 'us' | 'de' | 'gb';
5688
6368
  };
5689
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6369
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5690
6370
  type ReportingControllerGenerateSnapshotData = {
5691
6371
  /**
5692
6372
  * Region code for tenant context
@@ -5845,6 +6525,25 @@ type $OpenApiTs = {
5845
6525
  };
5846
6526
  };
5847
6527
  };
6528
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6529
+ post: {
6530
+ req: AccountControllerAddOpeningBalanceData;
6531
+ res: {
6532
+ /**
6533
+ * Opening-balance transaction created
6534
+ */
6535
+ 201: OpeningBalanceResultDto;
6536
+ /**
6537
+ * Account not found
6538
+ */
6539
+ 404: unknown;
6540
+ /**
6541
+ * An opening balance already exists for this account
6542
+ */
6543
+ 409: unknown;
6544
+ };
6545
+ };
6546
+ };
5848
6547
  '/api/v1/{region}/bean/account-standards': {
5849
6548
  get: {
5850
6549
  req: AccountStandardsControllerGetTemplatesData;
@@ -6382,74 +7081,158 @@ type $OpenApiTs = {
6382
7081
  /**
6383
7082
  * Commodities retrieved successfully
6384
7083
  */
6385
- 200: CommodityListResponseDto;
7084
+ 200: CommodityListResponseDto;
7085
+ };
7086
+ };
7087
+ };
7088
+ '/api/v1/{region}/bean/commodities/{symbol}': {
7089
+ get: {
7090
+ req: CommodityControllerFindOneData;
7091
+ res: {
7092
+ /**
7093
+ * Commodity retrieved successfully
7094
+ */
7095
+ 200: CommodityResponseDto;
7096
+ /**
7097
+ * Commodity not found
7098
+ */
7099
+ 404: ApiProblemResponseDto;
7100
+ };
7101
+ };
7102
+ put: {
7103
+ req: CommodityControllerUpdateData;
7104
+ res: {
7105
+ /**
7106
+ * Commodity updated successfully
7107
+ */
7108
+ 200: CommodityResponseDto;
7109
+ /**
7110
+ * Invalid input data
7111
+ */
7112
+ 400: ApiProblemResponseDto;
7113
+ /**
7114
+ * Commodity not found
7115
+ */
7116
+ 404: ApiProblemResponseDto;
7117
+ };
7118
+ };
7119
+ delete: {
7120
+ req: CommodityControllerDeleteData;
7121
+ res: {
7122
+ /**
7123
+ * Commodity deleted successfully
7124
+ */
7125
+ 204: void;
7126
+ /**
7127
+ * Commodity not found
7128
+ */
7129
+ 404: ApiProblemResponseDto;
7130
+ };
7131
+ };
7132
+ };
7133
+ '/api/v1/{region}/bean/commodities/{symbol}/ensure': {
7134
+ post: {
7135
+ req: CommodityControllerGetOrCreateData;
7136
+ res: {
7137
+ /**
7138
+ * Commodity retrieved or created
7139
+ */
7140
+ 200: CommodityResponseDto;
7141
+ };
7142
+ };
7143
+ };
7144
+ '/api/v1/{region}/bean/commodities/bulk': {
7145
+ post: {
7146
+ req: CommodityControllerBulkCreateData;
7147
+ res: {
7148
+ /**
7149
+ * Commodities created successfully
7150
+ */
7151
+ 201: Array<CommodityResponseDto>;
7152
+ };
7153
+ };
7154
+ };
7155
+ '/api/v1/{region}/bean/prices': {
7156
+ post: {
7157
+ req: PriceControllerCreateData;
7158
+ res: {
7159
+ /**
7160
+ * Price created successfully
7161
+ */
7162
+ 201: PriceResponseDto;
7163
+ /**
7164
+ * Currency or quoteCurrency commodity not found
7165
+ */
7166
+ 404: unknown;
7167
+ /**
7168
+ * Price already exists for this currency pair and date
7169
+ */
7170
+ 409: unknown;
7171
+ };
7172
+ };
7173
+ get: {
7174
+ req: PriceControllerFindAllData;
7175
+ res: {
7176
+ /**
7177
+ * Prices retrieved successfully
7178
+ */
7179
+ 200: PriceListResponseDto;
6386
7180
  };
6387
7181
  };
6388
7182
  };
6389
- '/api/v1/{region}/bean/commodities/{symbol}': {
7183
+ '/api/v1/{region}/bean/prices/{id}': {
6390
7184
  get: {
6391
- req: CommodityControllerFindOneData;
7185
+ req: PriceControllerFindOneData;
6392
7186
  res: {
6393
7187
  /**
6394
- * Commodity retrieved successfully
7188
+ * Price retrieved successfully
6395
7189
  */
6396
- 200: CommodityResponseDto;
7190
+ 200: PriceResponseDto;
6397
7191
  /**
6398
- * Commodity not found
7192
+ * Price not found
6399
7193
  */
6400
- 404: ApiProblemResponseDto;
7194
+ 404: unknown;
6401
7195
  };
6402
7196
  };
6403
7197
  put: {
6404
- req: CommodityControllerUpdateData;
7198
+ req: PriceControllerUpdateData;
6405
7199
  res: {
6406
7200
  /**
6407
- * Commodity updated successfully
7201
+ * Price updated successfully
6408
7202
  */
6409
- 200: CommodityResponseDto;
7203
+ 200: PriceResponseDto;
6410
7204
  /**
6411
- * Invalid input data
7205
+ * Price not found
6412
7206
  */
6413
- 400: ApiProblemResponseDto;
7207
+ 404: unknown;
6414
7208
  /**
6415
- * Commodity not found
7209
+ * Updated price conflicts with existing price
6416
7210
  */
6417
- 404: ApiProblemResponseDto;
7211
+ 409: unknown;
6418
7212
  };
6419
7213
  };
6420
7214
  delete: {
6421
- req: CommodityControllerDeleteData;
7215
+ req: PriceControllerDeleteData;
6422
7216
  res: {
6423
7217
  /**
6424
- * Commodity deleted successfully
7218
+ * Price deleted successfully
6425
7219
  */
6426
7220
  204: void;
6427
7221
  /**
6428
- * Commodity not found
6429
- */
6430
- 404: ApiProblemResponseDto;
6431
- };
6432
- };
6433
- };
6434
- '/api/v1/{region}/bean/commodities/{symbol}/ensure': {
6435
- post: {
6436
- req: CommodityControllerGetOrCreateData;
6437
- res: {
6438
- /**
6439
- * Commodity retrieved or created
7222
+ * Price not found
6440
7223
  */
6441
- 200: CommodityResponseDto;
7224
+ 404: unknown;
6442
7225
  };
6443
7226
  };
6444
7227
  };
6445
- '/api/v1/{region}/bean/commodities/bulk': {
7228
+ '/api/v1/{region}/bean/prices/bulk': {
6446
7229
  post: {
6447
- req: CommodityControllerBulkCreateData;
7230
+ req: PriceControllerBulkCreateData;
6448
7231
  res: {
6449
7232
  /**
6450
- * Commodities created successfully
7233
+ * Prices created successfully
6451
7234
  */
6452
- 201: Array<CommodityResponseDto>;
7235
+ 201: Array<PriceResponseDto>;
6453
7236
  };
6454
7237
  };
6455
7238
  };
@@ -7097,6 +7880,181 @@ type $OpenApiTs = {
7097
7880
  };
7098
7881
  };
7099
7882
  };
7883
+ '/api/v1/{region}/bean/events': {
7884
+ post: {
7885
+ req: EventControllerCreateData;
7886
+ res: {
7887
+ /**
7888
+ * Life event created successfully
7889
+ */
7890
+ 201: EventResponseDto;
7891
+ /**
7892
+ * Life event already exists for this (userId, type, date) combination
7893
+ */
7894
+ 409: unknown;
7895
+ };
7896
+ };
7897
+ get: {
7898
+ req: EventControllerFindAllData;
7899
+ res: {
7900
+ /**
7901
+ * Life events retrieved successfully
7902
+ */
7903
+ 200: EventListResponseDto;
7904
+ };
7905
+ };
7906
+ };
7907
+ '/api/v1/{region}/bean/events/{id}': {
7908
+ get: {
7909
+ req: EventControllerFindOneData;
7910
+ res: {
7911
+ /**
7912
+ * Life event retrieved successfully
7913
+ */
7914
+ 200: EventResponseDto;
7915
+ /**
7916
+ * Life event not found
7917
+ */
7918
+ 404: unknown;
7919
+ };
7920
+ };
7921
+ put: {
7922
+ req: EventControllerUpdateData;
7923
+ res: {
7924
+ /**
7925
+ * Life event updated successfully
7926
+ */
7927
+ 200: EventResponseDto;
7928
+ /**
7929
+ * If-Match header is not a valid ISO 8601 date
7930
+ */
7931
+ 400: unknown;
7932
+ /**
7933
+ * Life event not found
7934
+ */
7935
+ 404: unknown;
7936
+ /**
7937
+ * Updated event conflicts with an existing (userId, type, date) combination
7938
+ */
7939
+ 409: unknown;
7940
+ /**
7941
+ * If-Match precondition failed (updatedAt mismatch)
7942
+ */
7943
+ 412: unknown;
7944
+ };
7945
+ };
7946
+ delete: {
7947
+ req: EventControllerDeleteData;
7948
+ res: {
7949
+ /**
7950
+ * Life event deleted successfully
7951
+ */
7952
+ 204: void;
7953
+ /**
7954
+ * Life event not found
7955
+ */
7956
+ 404: unknown;
7957
+ };
7958
+ };
7959
+ };
7960
+ '/api/v1/{region}/bean/events/{id}/slice': {
7961
+ get: {
7962
+ req: EventControllerGetSliceData;
7963
+ res: {
7964
+ /**
7965
+ * Time-series sliced by the life event range
7966
+ */
7967
+ 200: unknown;
7968
+ /**
7969
+ * accountPattern query param is empty
7970
+ */
7971
+ 400: unknown;
7972
+ /**
7973
+ * Life event not found
7974
+ */
7975
+ 404: unknown;
7976
+ };
7977
+ };
7978
+ };
7979
+ '/api/v1/{region}/bean/onboarding': {
7980
+ post: {
7981
+ req: OnboardingControllerBootstrapData;
7982
+ res: {
7983
+ /**
7984
+ * Onboarding bootstrap result.
7985
+ */
7986
+ 201: unknown;
7987
+ /**
7988
+ * Invalid region/account path/duplicate paths.
7989
+ */
7990
+ 422: unknown;
7991
+ };
7992
+ };
7993
+ };
7994
+ '/api/v1/{region}/bean/reconciliations': {
7995
+ post: {
7996
+ req: ReconciliationControllerComputeData;
7997
+ res: {
7998
+ /**
7999
+ * Reconciliation preview
8000
+ */
8001
+ 200: ReconciliationComputeResultDto;
8002
+ /**
8003
+ * Account not found
8004
+ */
8005
+ 404: unknown;
8006
+ };
8007
+ };
8008
+ };
8009
+ '/api/v1/{region}/bean/reconciliations/assert': {
8010
+ post: {
8011
+ req: ReconciliationControllerAssertData;
8012
+ res: {
8013
+ /**
8014
+ * Balance assertion recorded
8015
+ */
8016
+ 201: ReconciliationRecordDto;
8017
+ /**
8018
+ * Account not found
8019
+ */
8020
+ 404: unknown;
8021
+ };
8022
+ };
8023
+ };
8024
+ '/api/v1/{region}/bean/reconciliations/pad': {
8025
+ post: {
8026
+ req: ReconciliationControllerPadData;
8027
+ res: {
8028
+ /**
8029
+ * Pad adjusting entry generated
8030
+ */
8031
+ 201: PadResultDto;
8032
+ /**
8033
+ * Book already within tolerance — no pad needed
8034
+ */
8035
+ 400: unknown;
8036
+ /**
8037
+ * Account not found
8038
+ */
8039
+ 404: unknown;
8040
+ };
8041
+ };
8042
+ };
8043
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8044
+ get: {
8045
+ req: ReconciliationControllerHistoryData;
8046
+ res: {
8047
+ /**
8048
+ * Reconciliation history
8049
+ */
8050
+ 200: Array<ReconciliationRecordDto>;
8051
+ /**
8052
+ * Account not found
8053
+ */
8054
+ 404: unknown;
8055
+ };
8056
+ };
8057
+ };
7100
8058
  '/api/v1/{region}/bean/export/beancount': {
7101
8059
  get: {
7102
8060
  res: {
@@ -7187,135 +8145,63 @@ type $OpenApiTs = {
7187
8145
  accountsCreated?: number;
7188
8146
  errors?: Array<{
7189
8147
  [key: string]: unknown;
7190
- }>;
7191
- };
7192
- /**
7193
- * Bad request - invalid file or no file uploaded
7194
- */
7195
- 400: ApiProblemResponseDto;
7196
- };
7197
- };
7198
- };
7199
- '/api/v1/{region}/bean/import/config/{importerId}': {
7200
- get: {
7201
- req: ImporterConfigControllerGetConfigData;
7202
- res: {
7203
- /**
7204
- * Configuration retrieved successfully
7205
- */
7206
- 200: ImporterConfigDto;
7207
- /**
7208
- * Invalid input - Unsupported importer
7209
- */
7210
- 400: ApiProblemResponseDto;
7211
- /**
7212
- * Unauthorized - Authentication required
7213
- */
7214
- 401: ApiProblemResponseDto;
7215
- };
7216
- };
7217
- put: {
7218
- req: ImporterConfigControllerUpdateConfigData;
7219
- res: {
7220
- /**
7221
- * Configuration updated successfully
7222
- */
7223
- 200: ImporterConfigDto;
7224
- /**
7225
- * Invalid input - Validation failed
7226
- */
7227
- 400: ApiProblemResponseDto;
7228
- /**
7229
- * Configuration not found
7230
- */
7231
- 404: ApiProblemResponseDto;
7232
- };
7233
- };
7234
- };
7235
- '/api/v1/{region}/bean/import/config/{importerId}/reset': {
7236
- post: {
7237
- req: ImporterConfigControllerResetConfigData;
7238
- res: {
7239
- /**
7240
- * Configuration reset successfully
7241
- */
7242
- 200: ImporterConfigDto;
7243
- /**
7244
- * Invalid input - Unsupported importer
7245
- */
7246
- 400: ApiProblemResponseDto;
7247
- };
7248
- };
7249
- };
7250
- '/api/v1/bean/platforms': {
7251
- get: {
7252
- res: {
7253
- /**
7254
- * List of platforms with binding and account counts
7255
- */
7256
- 200: unknown;
7257
- };
7258
- };
7259
- post: {
7260
- req: PlatformControllerCreateData;
7261
- res: {
7262
- /**
7263
- * Platform created successfully
7264
- */
7265
- 201: unknown;
8148
+ }>;
8149
+ };
7266
8150
  /**
7267
- * Platform already exists
8151
+ * Bad request - invalid file or no file uploaded
7268
8152
  */
7269
- 409: unknown;
8153
+ 400: ApiProblemResponseDto;
7270
8154
  };
7271
8155
  };
7272
8156
  };
7273
- '/api/v1/bean/platforms/list': {
8157
+ '/api/v1/{region}/bean/import/config/{importerId}': {
7274
8158
  get: {
8159
+ req: ImporterConfigControllerGetConfigData;
7275
8160
  res: {
7276
8161
  /**
7277
- * List of platforms with user binding status
8162
+ * Configuration retrieved successfully
7278
8163
  */
7279
- 200: unknown;
7280
- };
7281
- };
7282
- };
7283
- '/api/v1/bean/platforms/match': {
7284
- get: {
7285
- req: PlatformControllerMatchPlatformsData;
7286
- res: {
8164
+ 200: ImporterConfigDto;
7287
8165
  /**
7288
- * List of matching platforms with suggested segment names
8166
+ * Invalid input - Unsupported importer
7289
8167
  */
7290
- 200: unknown;
8168
+ 400: ApiProblemResponseDto;
8169
+ /**
8170
+ * Unauthorized - Authentication required
8171
+ */
8172
+ 401: ApiProblemResponseDto;
7291
8173
  };
7292
8174
  };
7293
- };
7294
- '/api/v1/bean/platforms/{id}': {
7295
8175
  put: {
7296
- req: PlatformControllerUpdateData;
8176
+ req: ImporterConfigControllerUpdateConfigData;
7297
8177
  res: {
7298
8178
  /**
7299
- * Platform updated successfully
8179
+ * Configuration updated successfully
7300
8180
  */
7301
- 200: unknown;
8181
+ 200: ImporterConfigDto;
7302
8182
  /**
7303
- * Platform not found
8183
+ * Invalid input - Validation failed
7304
8184
  */
7305
- 404: unknown;
8185
+ 400: ApiProblemResponseDto;
8186
+ /**
8187
+ * Configuration not found
8188
+ */
8189
+ 404: ApiProblemResponseDto;
7306
8190
  };
7307
8191
  };
7308
- delete: {
7309
- req: PlatformControllerDeleteData;
8192
+ };
8193
+ '/api/v1/{region}/bean/import/config/{importerId}/reset': {
8194
+ post: {
8195
+ req: ImporterConfigControllerResetConfigData;
7310
8196
  res: {
7311
8197
  /**
7312
- * Platform deleted successfully
8198
+ * Configuration reset successfully
7313
8199
  */
7314
- 204: void;
8200
+ 200: ImporterConfigDto;
7315
8201
  /**
7316
- * Platform not found
8202
+ * Invalid input - Unsupported importer
7317
8203
  */
7318
- 404: unknown;
8204
+ 400: ApiProblemResponseDto;
7319
8205
  };
7320
8206
  };
7321
8207
  };
@@ -7372,6 +8258,54 @@ type $OpenApiTs = {
7372
8258
  };
7373
8259
  };
7374
8260
  };
8261
+ '/api/v1/{region}/bean/external-account-links': {
8262
+ post: {
8263
+ req: ExternalAccountLinkControllerCreateData;
8264
+ res: {
8265
+ /**
8266
+ * Link created.
8267
+ */
8268
+ 201: ExternalAccountLinkResponseDto;
8269
+ /**
8270
+ * beanAccountId not owned, or an active link already exists.
8271
+ */
8272
+ 422: unknown;
8273
+ };
8274
+ };
8275
+ get: {
8276
+ req: ExternalAccountLinkControllerFindAllData;
8277
+ res: {
8278
+ /**
8279
+ * Links retrieved.
8280
+ */
8281
+ 200: ExternalAccountLinkListResponseDto;
8282
+ };
8283
+ };
8284
+ };
8285
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8286
+ get: {
8287
+ req: ExternalAccountLinkControllerFindOneData;
8288
+ res: {
8289
+ /**
8290
+ * Link retrieved.
8291
+ */
8292
+ 200: ExternalAccountLinkResponseDto;
8293
+ /**
8294
+ * Link not found or not owned by the user.
8295
+ */
8296
+ 422: unknown;
8297
+ };
8298
+ };
8299
+ delete: {
8300
+ req: ExternalAccountLinkControllerRemoveData;
8301
+ res: {
8302
+ /**
8303
+ * Link soft-deleted; historical transactions are unaffected.
8304
+ */
8305
+ 204: void;
8306
+ };
8307
+ };
8308
+ };
7375
8309
  '/api/v1/{region}/bean/import/parser-telemetry': {
7376
8310
  post: {
7377
8311
  req: TelemetryControllerReportTelemetryData;
@@ -7460,6 +8394,78 @@ type $OpenApiTs = {
7460
8394
  };
7461
8395
  };
7462
8396
  };
8397
+ '/api/v1/bean/platforms': {
8398
+ get: {
8399
+ res: {
8400
+ /**
8401
+ * List of platforms with binding and account counts
8402
+ */
8403
+ 200: unknown;
8404
+ };
8405
+ };
8406
+ post: {
8407
+ req: PlatformControllerCreateData;
8408
+ res: {
8409
+ /**
8410
+ * Platform created successfully
8411
+ */
8412
+ 201: unknown;
8413
+ /**
8414
+ * Platform already exists
8415
+ */
8416
+ 409: unknown;
8417
+ };
8418
+ };
8419
+ };
8420
+ '/api/v1/bean/platforms/list': {
8421
+ get: {
8422
+ res: {
8423
+ /**
8424
+ * List of platforms with user binding status
8425
+ */
8426
+ 200: Array<PlatformListItemDto>;
8427
+ };
8428
+ };
8429
+ };
8430
+ '/api/v1/bean/platforms/match': {
8431
+ get: {
8432
+ req: PlatformControllerMatchPlatformsData;
8433
+ res: {
8434
+ /**
8435
+ * List of matching platforms with suggested segment names
8436
+ */
8437
+ 200: unknown;
8438
+ };
8439
+ };
8440
+ };
8441
+ '/api/v1/bean/platforms/{id}': {
8442
+ put: {
8443
+ req: PlatformControllerUpdateData;
8444
+ res: {
8445
+ /**
8446
+ * Platform updated successfully
8447
+ */
8448
+ 200: unknown;
8449
+ /**
8450
+ * Platform not found
8451
+ */
8452
+ 404: unknown;
8453
+ };
8454
+ };
8455
+ delete: {
8456
+ req: PlatformControllerDeleteData;
8457
+ res: {
8458
+ /**
8459
+ * Platform deleted successfully
8460
+ */
8461
+ 204: void;
8462
+ /**
8463
+ * Platform not found
8464
+ */
8465
+ 404: unknown;
8466
+ };
8467
+ };
8468
+ };
7463
8469
  '/api/v1/{region}/dashboard/net-worth': {
7464
8470
  get: {
7465
8471
  req: DashboardControllerGetNetWorthData;
@@ -7509,16 +8515,16 @@ type $OpenApiTs = {
7509
8515
  };
7510
8516
  };
7511
8517
  };
7512
- '/api/v1/{region}/investment/holdings/pnl': {
8518
+ '/api/v1/{region}/dashboard/expenses': {
7513
8519
  get: {
7514
- req: HoldingPnlControllerGetHoldingPnlData;
8520
+ req: DashboardControllerGetExpensesData;
7515
8521
  res: {
7516
8522
  /**
7517
- * Holding P&L retrieved successfully
8523
+ * Expenses retrieved successfully
7518
8524
  */
7519
- 200: HoldingPnlResponseDto;
8525
+ 200: ExpensesByCategoryResponseDto;
7520
8526
  /**
7521
- * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8527
+ * Invalid groupBy or period
7522
8528
  */
7523
8529
  400: unknown;
7524
8530
  /**
@@ -7528,98 +8534,48 @@ type $OpenApiTs = {
7528
8534
  };
7529
8535
  };
7530
8536
  };
7531
- '/api/v1/{region}/bean/prices': {
7532
- post: {
7533
- req: PriceControllerCreateData;
8537
+ '/api/v1/{region}/investment/holdings/pnl': {
8538
+ get: {
8539
+ req: HoldingPnlControllerGetHoldingPnlData;
7534
8540
  res: {
7535
8541
  /**
7536
- * Price created successfully
7537
- */
7538
- 201: PriceResponseDto;
7539
- /**
7540
- * Currency or quoteCurrency commodity not found
8542
+ * Holding P&L retrieved successfully
7541
8543
  */
7542
- 404: unknown;
8544
+ 200: HoldingPnlResponseDto;
7543
8545
  /**
7544
- * Price already exists for this currency pair and date
8546
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
7545
8547
  */
7546
- 409: unknown;
7547
- };
7548
- };
7549
- get: {
7550
- req: PriceControllerFindAllData;
7551
- res: {
8548
+ 400: unknown;
7552
8549
  /**
7553
- * Prices retrieved successfully
8550
+ * User not authenticated
7554
8551
  */
7555
- 200: PriceListResponseDto;
8552
+ 401: unknown;
7556
8553
  };
7557
8554
  };
7558
8555
  };
7559
- '/api/v1/{region}/bean/prices/{id}': {
8556
+ '/api/v1/{region}/reporting/portfolio/trends': {
7560
8557
  get: {
7561
- req: PriceControllerFindOneData;
7562
- res: {
7563
- /**
7564
- * Price retrieved successfully
7565
- */
7566
- 200: PriceResponseDto;
7567
- /**
7568
- * Price not found
7569
- */
7570
- 404: unknown;
7571
- };
7572
- };
7573
- put: {
7574
- req: PriceControllerUpdateData;
7575
- res: {
7576
- /**
7577
- * Price updated successfully
7578
- */
7579
- 200: PriceResponseDto;
7580
- /**
7581
- * Price not found
7582
- */
7583
- 404: unknown;
7584
- /**
7585
- * Updated price conflicts with existing price
7586
- */
7587
- 409: unknown;
7588
- };
7589
- };
7590
- delete: {
7591
- req: PriceControllerDeleteData;
8558
+ req: ReportingControllerGetPortfolioTrendsData;
7592
8559
  res: {
7593
8560
  /**
7594
- * Price deleted successfully
7595
- */
7596
- 204: void;
7597
- /**
7598
- * Price not found
8561
+ * Trends retrieved successfully
7599
8562
  */
7600
- 404: unknown;
7601
- };
7602
- };
7603
- };
7604
- '/api/v1/{region}/bean/prices/bulk': {
7605
- post: {
7606
- req: PriceControllerBulkCreateData;
7607
- res: {
8563
+ 200: PortfolioTrendsResponseDto;
7608
8564
  /**
7609
- * Prices created successfully
8565
+ * User not authenticated
7610
8566
  */
7611
- 201: Array<PriceResponseDto>;
8567
+ 401: unknown;
7612
8568
  };
7613
8569
  };
7614
8570
  };
7615
- '/api/v1/{region}/reporting/portfolio/trends': {
8571
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7616
8572
  get: {
7617
- req: ReportingControllerGetPortfolioTrendsData;
8573
+ req: ReportingControllerGetCashFlowTrendsData;
7618
8574
  res: {
7619
8575
  /**
7620
- * Trends retrieved successfully
8576
+ * Cash-flow trends retrieved successfully
7621
8577
  */
7622
- 200: PortfolioTrendsResponseDto;
8578
+ 200: CashFlowTrendsResponseDto;
7623
8579
  /**
7624
8580
  * User not authenticated
7625
8581
  */
@@ -7858,7 +8814,7 @@ declare class BeanAccountsService {
7858
8814
  * @param data.type Filter by account type
7859
8815
  * @param data.status Filter by status
7860
8816
  * @param data.isCustom Filter by custom (user-created) accounts only
7861
- * @param data.search Search term for path or i18nKey
8817
+ * @param data.search Search term for account path
7862
8818
  * @param data.limit Maximum number of results
7863
8819
  * @param data.offset Number of results to skip
7864
8820
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -7918,6 +8874,17 @@ declare class BeanAccountsService {
7918
8874
  * @throws ApiError
7919
8875
  */
7920
8876
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
8877
+ /**
8878
+ * Post an opening-balance transaction
8879
+ * 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.
8880
+ * @param data The data for the request.
8881
+ * @param data.id Account UUID
8882
+ * @param data.region Region code for tenant context
8883
+ * @param data.requestBody
8884
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
8885
+ * @throws ApiError
8886
+ */
8887
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
7921
8888
  }
7922
8889
  declare class BeanTransactionsService {
7923
8890
  /**
@@ -7943,6 +8910,7 @@ declare class BeanTransactionsService {
7943
8910
  * @param data.status Filter by transaction status
7944
8911
  * @param data.search Search in narration and payee fields (max 200 chars)
7945
8912
  * @param data.accountId Filter by account ID (transactions with postings to this account)
8913
+ * @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
7946
8914
  * @returns TransactionListResponseDto Transaction list
7947
8915
  * @throws ApiError
7948
8916
  */
@@ -8018,7 +8986,7 @@ declare class BeanBalancesService {
8018
8986
  * Query account balance
8019
8987
  * Calculate account balance at a specific date for a single currency
8020
8988
  * @param data The data for the request.
8021
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
8989
+ * @param data.account Account name (e.g., "Assets:Checking")
8022
8990
  * @param data.region Region code for tenant context
8023
8991
  * @param data.date Date to calculate balance at (ISO 8601 format)
8024
8992
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -8248,4 +9216,4 @@ type OpenAPIConfig = {
8248
9216
  };
8249
9217
  declare const OpenAPI: OpenAPIConfig;
8250
9218
 
8251
- export { type $OpenApiTs, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type 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 CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, OpenAPI, type OpenAPIConfig, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type method, type mode, type paymentSource, type period, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };
9219
+ 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 PlatformListItemDto, 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 };