@firela/api-types 0.0.0-canary.b1a4abae → 0.0.0-canary.b7a10435

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
  /**
@@ -1172,17 +1210,17 @@ type ResolveResultDto = {
1172
1210
  [key: string]: string;
1173
1211
  };
1174
1212
  /**
1175
- * Resolution ID for undo
1213
+ * Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
1176
1214
  */
1177
- resolutionId: string;
1215
+ resolutionId?: string;
1178
1216
  /**
1179
1217
  * Whether this decision can be undone
1180
1218
  */
1181
- canUndo: boolean;
1219
+ canUndo?: boolean;
1182
1220
  /**
1183
1221
  * Deadline for undo (24h from resolution)
1184
1222
  */
1185
- undoDeadline: string;
1223
+ undoDeadline?: string;
1186
1224
  /**
1187
1225
  * Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
1188
1226
  */
@@ -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 = {
@@ -3568,51 +3909,195 @@ type NlpResponseDto = {
3568
3909
  */
3569
3910
  recurringMatch?: RecurringMatchInfoDto;
3570
3911
  /**
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.
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 PlatformMatchResultDto = {
3987
+ /**
3988
+ * Global platform ID
3989
+ */
3990
+ id: string;
3991
+ /**
3992
+ * Platform name (e.g., "ICBC")
3993
+ */
3994
+ name: string;
3995
+ /**
3996
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
3997
+ */
3998
+ canonical: string;
3999
+ /**
4000
+ * Platform type
4001
+ */
4002
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4003
+ /**
4004
+ * Suggested path segment — canonical, already in ACCOUNT_RE format
4005
+ */
4006
+ suggestedSegment: string;
4007
+ /**
4008
+ * Logo URL
4009
+ */
4010
+ logoUrl: string | null;
4011
+ /**
4012
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4013
+ */
4014
+ matchType: 'exact' | 'prefix' | 'substring';
4015
+ };
4016
+ /**
4017
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4018
+ */
4019
+ type matchType = 'exact' | 'prefix' | 'substring';
4020
+ type PlatformMatchResponseDto = {
4021
+ /**
4022
+ * Ranked matches, best tier first (at most 10 rows)
4023
+ */
4024
+ platforms: Array<PlatformMatchResultDto>;
4025
+ /**
4026
+ * Overall match quality — top row's tier, or 'none' when no hits
4027
+ */
4028
+ matchType: 'none' | 'exact' | 'prefix' | 'substring';
4029
+ /**
4030
+ * Total matches before LIMIT (truncation transparency)
4031
+ */
4032
+ total: number;
4033
+ /**
4034
+ * true when total > platforms.length (more matches exist)
4035
+ */
4036
+ hasMore: boolean;
4037
+ };
4038
+ /**
4039
+ * Overall match quality — top row's tier, or 'none' when no hits
4040
+ */
4041
+ type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
4042
+ type CreatePlatformDto = {
4043
+ /**
4044
+ * Platform name
4045
+ */
4046
+ name: string;
4047
+ /**
4048
+ * Platform canonical identifier (lowercase, kebab-case)
4049
+ */
4050
+ canonical: string;
4051
+ /**
4052
+ * Platform aliases (multi-language names for lookup)
4053
+ */
4054
+ aliases: Array<string>;
4055
+ /**
4056
+ * Platform URL
4057
+ */
4058
+ url: string;
4059
+ /**
4060
+ * Platform type
4061
+ */
4062
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4063
+ /**
4064
+ * Platform logo URL
4065
+ */
4066
+ logoUrl?: string;
4067
+ /**
4068
+ * Whether the platform is active
4069
+ */
4070
+ isActive?: boolean;
4071
+ };
4072
+ type UpdatePlatformDto = {
4073
+ /**
4074
+ * Platform name
4075
+ */
4076
+ name?: string;
4077
+ /**
4078
+ * Platform canonical identifier (lowercase, kebab-case)
4079
+ */
4080
+ canonical?: string;
4081
+ /**
4082
+ * Platform aliases (multi-language names for lookup)
3572
4083
  */
3573
- recurringSuggestion?: RecurringSuggestionDto;
4084
+ aliases?: Array<string>;
3574
4085
  /**
3575
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4086
+ * Platform URL
3576
4087
  */
3577
- suggestedAccounts?: NlpSuggestedAccountsDto;
4088
+ url?: string;
3578
4089
  /**
3579
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4090
+ * Platform type
3580
4091
  */
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 = {
4092
+ type?: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3608
4093
  /**
3609
- * ISO 4217 currency code
4094
+ * Platform logo URL
3610
4095
  */
3611
- currency: string;
4096
+ logoUrl?: string;
3612
4097
  /**
3613
- * Balance amount
4098
+ * Whether the platform is active
3614
4099
  */
3615
- balance: string;
4100
+ isActive?: boolean;
3616
4101
  };
3617
4102
  type NetWorthByCurrencyDto = {
3618
4103
  /**
@@ -3652,20 +4137,6 @@ type ConvertedNetWorthDto = {
3652
4137
  [key: string]: unknown;
3653
4138
  };
3654
4139
  };
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
4140
  type NetWorthResponseDto = {
3670
4141
  /**
3671
4142
  * Total net worth (assets - liabilities, converted to base currency)
@@ -3729,6 +4200,10 @@ type AccountItemDto = {
3729
4200
  * Currency code
3730
4201
  */
3731
4202
  currency: string;
4203
+ /**
4204
+ * FX-converted balance in base currency; omitted when not convertible
4205
+ */
4206
+ convertedBalance?: string;
3732
4207
  };
3733
4208
  type PlatformGroupDto = {
3734
4209
  /**
@@ -3744,9 +4219,39 @@ type PlatformGroupDto = {
3744
4219
  */
3745
4220
  accounts: Array<AccountItemDto>;
3746
4221
  /**
3747
- * Total balance across all accounts in platform
4222
+ * FX-converted total balance in base currency
3748
4223
  */
3749
4224
  totalBalance: string;
4225
+ /**
4226
+ * Raw (unconverted) balances grouped by currency
4227
+ */
4228
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4229
+ /**
4230
+ * Converted balance in base currency (omitted when no currency is convertible)
4231
+ */
4232
+ convertedBalance?: string;
4233
+ /**
4234
+ * Share of the grand converted total (0-100); 0 when grand total is 0
4235
+ */
4236
+ sharePct: number;
4237
+ };
4238
+ type AccountExchangeRateWarningDto = {
4239
+ /**
4240
+ * Warning type
4241
+ */
4242
+ type: string;
4243
+ /**
4244
+ * Currency without exchange rate
4245
+ */
4246
+ currency: string;
4247
+ /**
4248
+ * Affected account paths
4249
+ */
4250
+ accounts: Array<string>;
4251
+ /**
4252
+ * Total amount in this currency
4253
+ */
4254
+ totalAmount: string;
3750
4255
  };
3751
4256
  type AccountsSummaryDto = {
3752
4257
  /**
@@ -3757,6 +4262,14 @@ type AccountsSummaryDto = {
3757
4262
  * Total number of platforms
3758
4263
  */
3759
4264
  totalPlatforms: number;
4265
+ /**
4266
+ * Base currency for conversion
4267
+ */
4268
+ baseCurrency: string;
4269
+ /**
4270
+ * Per-account exchange rate warnings
4271
+ */
4272
+ warnings?: Array<AccountExchangeRateWarningDto>;
3760
4273
  };
3761
4274
  type AccountsResponseDto = {
3762
4275
  /**
@@ -3789,6 +4302,10 @@ type AccountItemWithAssetClassDto = {
3789
4302
  * Currency code
3790
4303
  */
3791
4304
  currency: string;
4305
+ /**
4306
+ * FX-converted balance in base currency; omitted when not convertible
4307
+ */
4308
+ convertedBalance?: string;
3792
4309
  /**
3793
4310
  * Asset class
3794
4311
  */
@@ -3840,24 +4357,6 @@ type AssetClassGroupDto = {
3840
4357
  * Asset class name
3841
4358
  */
3842
4359
  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
4360
  type AssetClassSummaryDto = {
3862
4361
  /**
3863
4362
  * Total number of accounts
@@ -4016,6 +4515,60 @@ type CashFlowResponseDto = {
4016
4515
  */
4017
4516
  warnings?: Array<ExchangeRateWarningDto>;
4018
4517
  };
4518
+ type CategoryGroupDto = {
4519
+ /**
4520
+ * Functional category (account-path Group segment); regional and universal account paths merge under it
4521
+ */
4522
+ category: string;
4523
+ /**
4524
+ * Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
4525
+ */
4526
+ totalExpense: string;
4527
+ /**
4528
+ * Share of grand total (0-100); 0 when grand total is 0
4529
+ */
4530
+ sharePct: number;
4531
+ /**
4532
+ * Raw (unconverted) expense per currency
4533
+ */
4534
+ balanceByCurrency: Array<BalanceByCurrencyDto>;
4535
+ /**
4536
+ * Converted total in base currency (omitted when FX missing for all currencies in this category)
4537
+ */
4538
+ convertedBalance?: string;
4539
+ };
4540
+ type ExpensesByCategorySummaryDto = {
4541
+ /**
4542
+ * Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
4543
+ */
4544
+ totalExpense: string;
4545
+ /**
4546
+ * Number of categories
4547
+ */
4548
+ categoryCount: number;
4549
+ };
4550
+ type ExpensesByCategoryResponseDto = {
4551
+ /**
4552
+ * Period requested
4553
+ */
4554
+ period: string;
4555
+ /**
4556
+ * Base currency for converted values
4557
+ */
4558
+ baseCurrency: string;
4559
+ /**
4560
+ * Expense groups by functional category, sorted by converted total desc
4561
+ */
4562
+ groups: Array<CategoryGroupDto>;
4563
+ /**
4564
+ * Summary statistics
4565
+ */
4566
+ summary: ExpensesByCategorySummaryDto;
4567
+ /**
4568
+ * Exchange rate warnings (e.g. missing rate for a currency)
4569
+ */
4570
+ warnings?: Array<ExchangeRateWarningDto>;
4571
+ };
4019
4572
  type MonetaryDto = {
4020
4573
  /**
4021
4574
  * Amount (Decimal string)
@@ -4181,110 +4734,12 @@ type HoldingPnlResponseDto = {
4181
4734
  */
4182
4735
  method: 'average' | 'FIFO';
4183
4736
  rows: Array<HoldingPnlRowDto>;
4184
- warnings: Array<HoldingPnlWarningDto>;
4185
- };
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
- };
4737
+ warnings: Array<HoldingPnlWarningDto>;
4287
4738
  };
4739
+ /**
4740
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4741
+ */
4742
+ type method = 'average' | 'FIFO';
4288
4743
  type CurrencyBalanceDto = {
4289
4744
  /**
4290
4745
  * ISO 4217 currency code
@@ -4310,6 +4765,14 @@ type TimeSeriesPointDto = {
4310
4765
  change?: {
4311
4766
  [key: string]: unknown;
4312
4767
  };
4768
+ /**
4769
+ * Total assets at this date (in base currency)
4770
+ */
4771
+ assets?: string;
4772
+ /**
4773
+ * Total liabilities at this date (in base currency)
4774
+ */
4775
+ liabilities?: string;
4313
4776
  /**
4314
4777
  * Multi-currency breakdown for this point
4315
4778
  */
@@ -4373,6 +4836,68 @@ type PortfolioTrendsResponseDto = {
4373
4836
  */
4374
4837
  warnings?: Array<ExchangeRateWarningDto>;
4375
4838
  };
4839
+ type CashFlowPointDto = {
4840
+ /**
4841
+ * Month key (YYYY-MM)
4842
+ */
4843
+ month: string;
4844
+ /**
4845
+ * Income in base currency (absolute, converted)
4846
+ */
4847
+ income: string;
4848
+ /**
4849
+ * Expense in base currency (absolute, converted)
4850
+ */
4851
+ expense: string;
4852
+ /**
4853
+ * netSavings = income − expense (savings positive)
4854
+ */
4855
+ netSavings: string;
4856
+ };
4857
+ type CashFlowTrendSummaryDto = {
4858
+ /**
4859
+ * Total income across the period
4860
+ */
4861
+ totalIncome: string;
4862
+ /**
4863
+ * Total expense across the period
4864
+ */
4865
+ totalExpense: string;
4866
+ /**
4867
+ * income − expense across the period
4868
+ */
4869
+ totalNetSavings: string;
4870
+ /**
4871
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
4872
+ */
4873
+ averageMonthlyNetSavings: string;
4874
+ };
4875
+ type CashFlowTrendsResponseDto = {
4876
+ /**
4877
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
4878
+ */
4879
+ series: Array<CashFlowPointDto>;
4880
+ /**
4881
+ * Period totals
4882
+ */
4883
+ summary: CashFlowTrendSummaryDto;
4884
+ /**
4885
+ * Period requested
4886
+ */
4887
+ period: string;
4888
+ /**
4889
+ * Data granularity (v1 returns month buckets)
4890
+ */
4891
+ granularity: string;
4892
+ /**
4893
+ * Base currency for converted values
4894
+ */
4895
+ currency: string;
4896
+ /**
4897
+ * Exchange rate warnings (e.g. missing rate for a currency)
4898
+ */
4899
+ warnings?: Array<ExchangeRateWarningDto>;
4900
+ };
4376
4901
  type GenerateSnapshotBody = unknown;
4377
4902
  type GenerateSnapshotResponse = unknown;
4378
4903
  type BackfillSnapshotsBody = unknown;
@@ -4409,7 +4934,7 @@ type AccountControllerFindAllData = {
4409
4934
  */
4410
4935
  region: 'cn' | 'us' | 'de' | 'gb';
4411
4936
  /**
4412
- * Search term for path or i18nKey
4937
+ * Search term for account path
4413
4938
  */
4414
4939
  search?: string;
4415
4940
  /**
@@ -4480,6 +5005,18 @@ type AccountControllerReopenData = {
4480
5005
  requestBody: ReopenAccountDto;
4481
5006
  };
4482
5007
  type AccountControllerReopenResponse = AccountResponseDto;
5008
+ type AccountControllerAddOpeningBalanceData = {
5009
+ /**
5010
+ * Account UUID
5011
+ */
5012
+ id: string;
5013
+ /**
5014
+ * Region code for tenant context
5015
+ */
5016
+ region: 'cn' | 'us' | 'de' | 'gb';
5017
+ requestBody: CreateOpeningBalanceDto;
5018
+ };
5019
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4483
5020
  type AccountStandardsControllerGetTemplatesData = {
4484
5021
  /**
4485
5022
  * Region code (cn, us, de)
@@ -4529,6 +5066,10 @@ type TransactionControllerListData = {
4529
5066
  * Filter by account ID (transactions with postings to this account)
4530
5067
  */
4531
5068
  accountId?: string;
5069
+ /**
5070
+ * Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
5071
+ */
5072
+ category?: string;
4532
5073
  /**
4533
5074
  * Filter by start date (inclusive), format: YYYY-MM-DD
4534
5075
  */
@@ -4637,7 +5178,7 @@ type TransactionControllerDeleteData = {
4637
5178
  type TransactionControllerDeleteResponse = void;
4638
5179
  type BalanceControllerGetBalanceData = {
4639
5180
  /**
4640
- * Account name (e.g., "Assets:Bank:Checking")
5181
+ * Account name (e.g., "Assets:Checking")
4641
5182
  */
4642
5183
  account: string;
4643
5184
  /**
@@ -4949,6 +5490,91 @@ type CommodityControllerBulkCreateData = {
4949
5490
  region: 'cn' | 'us' | 'de' | 'gb';
4950
5491
  };
4951
5492
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5493
+ type PriceControllerCreateData = {
5494
+ /**
5495
+ * Region code for tenant context
5496
+ */
5497
+ region: 'cn' | 'us' | 'de' | 'gb';
5498
+ requestBody: CreateBeanPriceDto;
5499
+ };
5500
+ type PriceControllerCreateResponse = PriceResponseDto;
5501
+ type PriceControllerFindAllData = {
5502
+ /**
5503
+ * Filter by currency (e.g., BTC, AAPL, USD)
5504
+ */
5505
+ currency?: string;
5506
+ /**
5507
+ * Filter prices from this date (ISO 8601 format)
5508
+ */
5509
+ dateFrom?: string;
5510
+ /**
5511
+ * Filter prices to this date (ISO 8601 format)
5512
+ */
5513
+ dateTo?: string;
5514
+ /**
5515
+ * Number of items per page (default: 20, max: 100)
5516
+ */
5517
+ limit?: number;
5518
+ /**
5519
+ * Page number for pagination (default: 1)
5520
+ */
5521
+ page?: number;
5522
+ /**
5523
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
5524
+ */
5525
+ quoteCurrency?: string;
5526
+ /**
5527
+ * Region code for tenant context
5528
+ */
5529
+ region: 'cn' | 'us' | 'de' | 'gb';
5530
+ /**
5531
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
5532
+ */
5533
+ search?: string;
5534
+ };
5535
+ type PriceControllerFindAllResponse = PriceListResponseDto;
5536
+ type PriceControllerFindOneData = {
5537
+ /**
5538
+ * Price ID
5539
+ */
5540
+ id: string;
5541
+ /**
5542
+ * Region code for tenant context
5543
+ */
5544
+ region: 'cn' | 'us' | 'de' | 'gb';
5545
+ };
5546
+ type PriceControllerFindOneResponse = PriceResponseDto;
5547
+ type PriceControllerUpdateData = {
5548
+ /**
5549
+ * Price ID
5550
+ */
5551
+ id: string;
5552
+ /**
5553
+ * Region code for tenant context
5554
+ */
5555
+ region: 'cn' | 'us' | 'de' | 'gb';
5556
+ requestBody: UpdateBeanPriceDto;
5557
+ };
5558
+ type PriceControllerUpdateResponse = PriceResponseDto;
5559
+ type PriceControllerDeleteData = {
5560
+ /**
5561
+ * Price ID
5562
+ */
5563
+ id: string;
5564
+ /**
5565
+ * Region code for tenant context
5566
+ */
5567
+ region: 'cn' | 'us' | 'de' | 'gb';
5568
+ };
5569
+ type PriceControllerDeleteResponse = void;
5570
+ type PriceControllerBulkCreateData = {
5571
+ /**
5572
+ * Region code for tenant context
5573
+ */
5574
+ region: 'cn' | 'us' | 'de' | 'gb';
5575
+ requestBody: Array<string>;
5576
+ };
5577
+ type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
4952
5578
  type RecurringRuleControllerCreateData = {
4953
5579
  /**
4954
5580
  * Region code for tenant context
@@ -5326,6 +5952,135 @@ type PropertyControllerDeleteData = {
5326
5952
  key: string;
5327
5953
  };
5328
5954
  type PropertyControllerDeleteResponse = void;
5955
+ type EventControllerCreateData = {
5956
+ /**
5957
+ * Region code for tenant context (decorative for life events)
5958
+ */
5959
+ region: 'cn' | 'us' | 'de' | 'gb';
5960
+ requestBody: CreateBeanEventDto;
5961
+ };
5962
+ type EventControllerCreateResponse = EventResponseDto;
5963
+ type EventControllerFindAllData = {
5964
+ /**
5965
+ * Filter life events from this date (ISO 8601 format)
5966
+ */
5967
+ from?: string;
5968
+ /**
5969
+ * Number of items per page (default: 20, max: 100)
5970
+ */
5971
+ limit?: number;
5972
+ /**
5973
+ * Page number for pagination (default: 1)
5974
+ */
5975
+ page?: number;
5976
+ /**
5977
+ * Search term for description (case-insensitive partial match)
5978
+ */
5979
+ q?: string;
5980
+ /**
5981
+ * Region code for tenant context (decorative for life events)
5982
+ */
5983
+ region: 'cn' | 'us' | 'de' | 'gb';
5984
+ /**
5985
+ * Filter life events to this date (ISO 8601 format)
5986
+ */
5987
+ to?: string;
5988
+ /**
5989
+ * Filter by life event type (exact match)
5990
+ */
5991
+ type?: string;
5992
+ };
5993
+ type EventControllerFindAllResponse = EventListResponseDto;
5994
+ type EventControllerFindOneData = {
5995
+ /**
5996
+ * Life event ID
5997
+ */
5998
+ id: string;
5999
+ /**
6000
+ * Region code for tenant context (decorative for life events)
6001
+ */
6002
+ region: 'cn' | 'us' | 'de' | 'gb';
6003
+ };
6004
+ type EventControllerFindOneResponse = EventResponseDto;
6005
+ type EventControllerUpdateData = {
6006
+ /**
6007
+ * Life event ID
6008
+ */
6009
+ id: string;
6010
+ /**
6011
+ * Region code for tenant context (decorative for life events)
6012
+ */
6013
+ region: 'cn' | 'us' | 'de' | 'gb';
6014
+ requestBody: UpdateBeanEventDto;
6015
+ };
6016
+ type EventControllerUpdateResponse = EventResponseDto;
6017
+ type EventControllerDeleteData = {
6018
+ /**
6019
+ * Life event ID
6020
+ */
6021
+ id: string;
6022
+ /**
6023
+ * Region code for tenant context (decorative for life events)
6024
+ */
6025
+ region: 'cn' | 'us' | 'de' | 'gb';
6026
+ };
6027
+ type EventControllerDeleteResponse = void;
6028
+ type EventControllerGetSliceData = {
6029
+ accountPattern: string;
6030
+ granularity: string;
6031
+ /**
6032
+ * Life event ID
6033
+ */
6034
+ id: string;
6035
+ /**
6036
+ * Region code for tenant context (decorative for life events)
6037
+ */
6038
+ region: 'cn' | 'us' | 'de' | 'gb';
6039
+ };
6040
+ type EventControllerGetSliceResponse = unknown;
6041
+ type OnboardingControllerBootstrapData = {
6042
+ /**
6043
+ * Region code for tenant context
6044
+ */
6045
+ region: 'cn' | 'us' | 'de' | 'gb';
6046
+ requestBody: OnboardingDto;
6047
+ };
6048
+ type OnboardingControllerBootstrapResponse = unknown;
6049
+ type ReconciliationControllerComputeData = {
6050
+ /**
6051
+ * Region code for tenant context (decorative for reconciliation)
6052
+ */
6053
+ region: 'cn' | 'us' | 'de' | 'gb';
6054
+ requestBody: ComputeReconciliationDto;
6055
+ };
6056
+ type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
6057
+ type ReconciliationControllerAssertData = {
6058
+ /**
6059
+ * Region code for tenant context (decorative for reconciliation)
6060
+ */
6061
+ region: 'cn' | 'us' | 'de' | 'gb';
6062
+ requestBody: AssertReconciliationDto;
6063
+ };
6064
+ type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
6065
+ type ReconciliationControllerPadData = {
6066
+ /**
6067
+ * Region code for tenant context (decorative for reconciliation)
6068
+ */
6069
+ region: 'cn' | 'us' | 'de' | 'gb';
6070
+ requestBody: PadReconciliationDto;
6071
+ };
6072
+ type ReconciliationControllerPadResponse = PadResultDto;
6073
+ type ReconciliationControllerHistoryData = {
6074
+ /**
6075
+ * BeanAccount id
6076
+ */
6077
+ accountId: string;
6078
+ /**
6079
+ * Region code for tenant context (decorative for reconciliation)
6080
+ */
6081
+ region: 'cn' | 'us' | 'de' | 'gb';
6082
+ };
6083
+ type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
5329
6084
  type ExportControllerExportBeancountResponse = unknown;
5330
6085
  type FileImportControllerImportFileData = {
5331
6086
  /**
@@ -5402,41 +6157,9 @@ type ImporterConfigControllerResetConfigData = {
5402
6157
  /**
5403
6158
  * Region code for tenant context
5404
6159
  */
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;
6160
+ region: 'cn' | 'us' | 'de' | 'gb';
5438
6161
  };
5439
- type PlatformControllerDeleteResponse = void;
6162
+ type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
5440
6163
  type ProviderSyncControllerSyncData = {
5441
6164
  /**
5442
6165
  * Provider name
@@ -5467,6 +6190,38 @@ type ProviderSyncControllerIsProviderSupportedData = {
5467
6190
  region: 'cn' | 'us' | 'de' | 'gb';
5468
6191
  };
5469
6192
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6193
+ type ExternalAccountLinkControllerCreateData = {
6194
+ /**
6195
+ * Region code for tenant context
6196
+ */
6197
+ region: 'cn' | 'us' | 'de' | 'gb';
6198
+ requestBody: CreateExternalAccountLinkDto;
6199
+ };
6200
+ type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
6201
+ type ExternalAccountLinkControllerFindAllData = {
6202
+ provider: string;
6203
+ /**
6204
+ * Region code for tenant context
6205
+ */
6206
+ region: 'cn' | 'us' | 'de' | 'gb';
6207
+ };
6208
+ type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6209
+ type ExternalAccountLinkControllerFindOneData = {
6210
+ id: string;
6211
+ /**
6212
+ * Region code for tenant context
6213
+ */
6214
+ region: 'cn' | 'us' | 'de' | 'gb';
6215
+ };
6216
+ type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6217
+ type ExternalAccountLinkControllerRemoveData = {
6218
+ id: string;
6219
+ /**
6220
+ * Region code for tenant context
6221
+ */
6222
+ region: 'cn' | 'us' | 'de' | 'gb';
6223
+ };
6224
+ type ExternalAccountLinkControllerRemoveResponse = void;
5470
6225
  type TelemetryControllerReportTelemetryData = {
5471
6226
  /**
5472
6227
  * Region code for tenant context
@@ -5527,6 +6282,38 @@ type NlpControllerGetSessionData = {
5527
6282
  sessionId?: string;
5528
6283
  };
5529
6284
  type NlpControllerGetSessionResponse = unknown;
6285
+ type PlatformControllerFindAllResponse = unknown;
6286
+ type PlatformControllerCreateData = {
6287
+ requestBody: CreatePlatformDto;
6288
+ };
6289
+ type PlatformControllerCreateResponse = unknown;
6290
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6291
+ type PlatformControllerMatchPlatformsData = {
6292
+ /**
6293
+ * Search query — Chinese name, English name, or abbreviation
6294
+ */
6295
+ q: string;
6296
+ /**
6297
+ * Region code for category override lookup
6298
+ */
6299
+ region?: string;
6300
+ };
6301
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6302
+ type PlatformControllerUpdateData = {
6303
+ /**
6304
+ * Platform ID
6305
+ */
6306
+ id: string;
6307
+ requestBody: UpdatePlatformDto;
6308
+ };
6309
+ type PlatformControllerUpdateResponse = unknown;
6310
+ type PlatformControllerDeleteData = {
6311
+ /**
6312
+ * Platform ID
6313
+ */
6314
+ id: string;
6315
+ };
6316
+ type PlatformControllerDeleteResponse = void;
5530
6317
  type DashboardControllerGetNetWorthData = {
5531
6318
  /**
5532
6319
  * Date for balance calculation (ISO 8601 format)
@@ -5568,113 +6355,62 @@ type DashboardControllerGetCashFlowData = {
5568
6355
  region: 'cn' | 'us' | 'de' | 'gb';
5569
6356
  };
5570
6357
  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;
6358
+ type DashboardControllerGetExpensesData = {
5580
6359
  /**
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;
5611
- /**
5612
- * Number of items per page (default: 20, max: 100)
6360
+ * Account root to aggregate (expense → ^Expenses:, income → ^Income:)
5613
6361
  */
5614
- limit?: number;
6362
+ flow?: 'expense' | 'income';
5615
6363
  /**
5616
- * Page number for pagination (default: 1)
6364
+ * Grouping strategy
5617
6365
  */
5618
- page?: number;
6366
+ groupBy?: 'category';
5619
6367
  /**
5620
- * Filter by quote currency (pricing currency, e.g., USD, CNY)
6368
+ * Time window (1m = current calendar month)
5621
6369
  */
5622
- quoteCurrency?: string;
6370
+ period?: '1m' | '3m' | '6m' | '1y';
5623
6371
  /**
5624
6372
  * Region code for tenant context
5625
6373
  */
5626
6374
  region: 'cn' | 'us' | 'de' | 'gb';
5627
- /**
5628
- * Search term for currency or quoteCurrency (case-insensitive partial match)
5629
- */
5630
- search?: string;
5631
6375
  };
5632
- type PriceControllerFindAllResponse = PriceListResponseDto;
5633
- type PriceControllerFindOneData = {
6376
+ type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6377
+ type HoldingPnlControllerGetHoldingPnlData = {
5634
6378
  /**
5635
- * Price ID
6379
+ * Scope to a single account
5636
6380
  */
5637
- id: string;
6381
+ accountId?: string;
5638
6382
  /**
5639
- * Region code for tenant context
6383
+ * As-of date (ISO 8601), defaults to today
5640
6384
  */
5641
- region: 'cn' | 'us' | 'de' | 'gb';
5642
- };
5643
- type PriceControllerFindOneResponse = PriceResponseDto;
5644
- type PriceControllerUpdateData = {
6385
+ asOf?: string;
5645
6386
  /**
5646
- * Price ID
6387
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
5647
6388
  */
5648
- id: string;
6389
+ method?: 'FIFO' | 'average';
5649
6390
  /**
5650
6391
  * Region code for tenant context
5651
6392
  */
5652
6393
  region: 'cn' | 'us' | 'de' | 'gb';
5653
- requestBody: UpdateBeanPriceDto;
5654
6394
  };
5655
- type PriceControllerUpdateResponse = PriceResponseDto;
5656
- type PriceControllerDeleteData = {
6395
+ type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
6396
+ type ReportingControllerGetPortfolioTrendsData = {
5657
6397
  /**
5658
- * Price ID
6398
+ * Data granularity
5659
6399
  */
5660
- id: string;
6400
+ granularity?: 'day' | 'week' | 'month';
5661
6401
  /**
5662
- * Region code for tenant context
6402
+ * Time period
5663
6403
  */
5664
- region: 'cn' | 'us' | 'de' | 'gb';
5665
- };
5666
- type PriceControllerDeleteResponse = void;
5667
- type PriceControllerBulkCreateData = {
6404
+ period?: '1m' | '3m' | '6m' | '1y';
5668
6405
  /**
5669
6406
  * Region code for tenant context
5670
6407
  */
5671
6408
  region: 'cn' | 'us' | 'de' | 'gb';
5672
- requestBody: Array<string>;
5673
6409
  };
5674
- type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
5675
- type ReportingControllerGetPortfolioTrendsData = {
6410
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6411
+ type ReportingControllerGetCashFlowTrendsData = {
5676
6412
  /**
5677
- * Data granularity
6413
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5678
6414
  */
5679
6415
  granularity?: 'day' | 'week' | 'month';
5680
6416
  /**
@@ -5686,7 +6422,7 @@ type ReportingControllerGetPortfolioTrendsData = {
5686
6422
  */
5687
6423
  region: 'cn' | 'us' | 'de' | 'gb';
5688
6424
  };
5689
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6425
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5690
6426
  type ReportingControllerGenerateSnapshotData = {
5691
6427
  /**
5692
6428
  * Region code for tenant context
@@ -5845,6 +6581,25 @@ type $OpenApiTs = {
5845
6581
  };
5846
6582
  };
5847
6583
  };
6584
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6585
+ post: {
6586
+ req: AccountControllerAddOpeningBalanceData;
6587
+ res: {
6588
+ /**
6589
+ * Opening-balance transaction created
6590
+ */
6591
+ 201: OpeningBalanceResultDto;
6592
+ /**
6593
+ * Account not found
6594
+ */
6595
+ 404: unknown;
6596
+ /**
6597
+ * An opening balance already exists for this account
6598
+ */
6599
+ 409: unknown;
6600
+ };
6601
+ };
6602
+ };
5848
6603
  '/api/v1/{region}/bean/account-standards': {
5849
6604
  get: {
5850
6605
  req: AccountStandardsControllerGetTemplatesData;
@@ -6386,70 +7141,154 @@ type $OpenApiTs = {
6386
7141
  };
6387
7142
  };
6388
7143
  };
6389
- '/api/v1/{region}/bean/commodities/{symbol}': {
7144
+ '/api/v1/{region}/bean/commodities/{symbol}': {
7145
+ get: {
7146
+ req: CommodityControllerFindOneData;
7147
+ res: {
7148
+ /**
7149
+ * Commodity retrieved successfully
7150
+ */
7151
+ 200: CommodityResponseDto;
7152
+ /**
7153
+ * Commodity not found
7154
+ */
7155
+ 404: ApiProblemResponseDto;
7156
+ };
7157
+ };
7158
+ put: {
7159
+ req: CommodityControllerUpdateData;
7160
+ res: {
7161
+ /**
7162
+ * Commodity updated successfully
7163
+ */
7164
+ 200: CommodityResponseDto;
7165
+ /**
7166
+ * Invalid input data
7167
+ */
7168
+ 400: ApiProblemResponseDto;
7169
+ /**
7170
+ * Commodity not found
7171
+ */
7172
+ 404: ApiProblemResponseDto;
7173
+ };
7174
+ };
7175
+ delete: {
7176
+ req: CommodityControllerDeleteData;
7177
+ res: {
7178
+ /**
7179
+ * Commodity deleted successfully
7180
+ */
7181
+ 204: void;
7182
+ /**
7183
+ * Commodity not found
7184
+ */
7185
+ 404: ApiProblemResponseDto;
7186
+ };
7187
+ };
7188
+ };
7189
+ '/api/v1/{region}/bean/commodities/{symbol}/ensure': {
7190
+ post: {
7191
+ req: CommodityControllerGetOrCreateData;
7192
+ res: {
7193
+ /**
7194
+ * Commodity retrieved or created
7195
+ */
7196
+ 200: CommodityResponseDto;
7197
+ };
7198
+ };
7199
+ };
7200
+ '/api/v1/{region}/bean/commodities/bulk': {
7201
+ post: {
7202
+ req: CommodityControllerBulkCreateData;
7203
+ res: {
7204
+ /**
7205
+ * Commodities created successfully
7206
+ */
7207
+ 201: Array<CommodityResponseDto>;
7208
+ };
7209
+ };
7210
+ };
7211
+ '/api/v1/{region}/bean/prices': {
7212
+ post: {
7213
+ req: PriceControllerCreateData;
7214
+ res: {
7215
+ /**
7216
+ * Price created successfully
7217
+ */
7218
+ 201: PriceResponseDto;
7219
+ /**
7220
+ * Currency or quoteCurrency commodity not found
7221
+ */
7222
+ 404: unknown;
7223
+ /**
7224
+ * Price already exists for this currency pair and date
7225
+ */
7226
+ 409: unknown;
7227
+ };
7228
+ };
7229
+ get: {
7230
+ req: PriceControllerFindAllData;
7231
+ res: {
7232
+ /**
7233
+ * Prices retrieved successfully
7234
+ */
7235
+ 200: PriceListResponseDto;
7236
+ };
7237
+ };
7238
+ };
7239
+ '/api/v1/{region}/bean/prices/{id}': {
6390
7240
  get: {
6391
- req: CommodityControllerFindOneData;
7241
+ req: PriceControllerFindOneData;
6392
7242
  res: {
6393
7243
  /**
6394
- * Commodity retrieved successfully
7244
+ * Price retrieved successfully
6395
7245
  */
6396
- 200: CommodityResponseDto;
7246
+ 200: PriceResponseDto;
6397
7247
  /**
6398
- * Commodity not found
7248
+ * Price not found
6399
7249
  */
6400
- 404: ApiProblemResponseDto;
7250
+ 404: unknown;
6401
7251
  };
6402
7252
  };
6403
7253
  put: {
6404
- req: CommodityControllerUpdateData;
7254
+ req: PriceControllerUpdateData;
6405
7255
  res: {
6406
7256
  /**
6407
- * Commodity updated successfully
7257
+ * Price updated successfully
6408
7258
  */
6409
- 200: CommodityResponseDto;
7259
+ 200: PriceResponseDto;
6410
7260
  /**
6411
- * Invalid input data
7261
+ * Price not found
6412
7262
  */
6413
- 400: ApiProblemResponseDto;
7263
+ 404: unknown;
6414
7264
  /**
6415
- * Commodity not found
7265
+ * Updated price conflicts with existing price
6416
7266
  */
6417
- 404: ApiProblemResponseDto;
7267
+ 409: unknown;
6418
7268
  };
6419
7269
  };
6420
7270
  delete: {
6421
- req: CommodityControllerDeleteData;
7271
+ req: PriceControllerDeleteData;
6422
7272
  res: {
6423
7273
  /**
6424
- * Commodity deleted successfully
7274
+ * Price deleted successfully
6425
7275
  */
6426
7276
  204: void;
6427
7277
  /**
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
7278
+ * Price not found
6440
7279
  */
6441
- 200: CommodityResponseDto;
7280
+ 404: unknown;
6442
7281
  };
6443
7282
  };
6444
7283
  };
6445
- '/api/v1/{region}/bean/commodities/bulk': {
7284
+ '/api/v1/{region}/bean/prices/bulk': {
6446
7285
  post: {
6447
- req: CommodityControllerBulkCreateData;
7286
+ req: PriceControllerBulkCreateData;
6448
7287
  res: {
6449
7288
  /**
6450
- * Commodities created successfully
7289
+ * Prices created successfully
6451
7290
  */
6452
- 201: Array<CommodityResponseDto>;
7291
+ 201: Array<PriceResponseDto>;
6453
7292
  };
6454
7293
  };
6455
7294
  };
@@ -7097,6 +7936,181 @@ type $OpenApiTs = {
7097
7936
  };
7098
7937
  };
7099
7938
  };
7939
+ '/api/v1/{region}/bean/events': {
7940
+ post: {
7941
+ req: EventControllerCreateData;
7942
+ res: {
7943
+ /**
7944
+ * Life event created successfully
7945
+ */
7946
+ 201: EventResponseDto;
7947
+ /**
7948
+ * Life event already exists for this (userId, type, date) combination
7949
+ */
7950
+ 409: unknown;
7951
+ };
7952
+ };
7953
+ get: {
7954
+ req: EventControllerFindAllData;
7955
+ res: {
7956
+ /**
7957
+ * Life events retrieved successfully
7958
+ */
7959
+ 200: EventListResponseDto;
7960
+ };
7961
+ };
7962
+ };
7963
+ '/api/v1/{region}/bean/events/{id}': {
7964
+ get: {
7965
+ req: EventControllerFindOneData;
7966
+ res: {
7967
+ /**
7968
+ * Life event retrieved successfully
7969
+ */
7970
+ 200: EventResponseDto;
7971
+ /**
7972
+ * Life event not found
7973
+ */
7974
+ 404: unknown;
7975
+ };
7976
+ };
7977
+ put: {
7978
+ req: EventControllerUpdateData;
7979
+ res: {
7980
+ /**
7981
+ * Life event updated successfully
7982
+ */
7983
+ 200: EventResponseDto;
7984
+ /**
7985
+ * If-Match header is not a valid ISO 8601 date
7986
+ */
7987
+ 400: unknown;
7988
+ /**
7989
+ * Life event not found
7990
+ */
7991
+ 404: unknown;
7992
+ /**
7993
+ * Updated event conflicts with an existing (userId, type, date) combination
7994
+ */
7995
+ 409: unknown;
7996
+ /**
7997
+ * If-Match precondition failed (updatedAt mismatch)
7998
+ */
7999
+ 412: unknown;
8000
+ };
8001
+ };
8002
+ delete: {
8003
+ req: EventControllerDeleteData;
8004
+ res: {
8005
+ /**
8006
+ * Life event deleted successfully
8007
+ */
8008
+ 204: void;
8009
+ /**
8010
+ * Life event not found
8011
+ */
8012
+ 404: unknown;
8013
+ };
8014
+ };
8015
+ };
8016
+ '/api/v1/{region}/bean/events/{id}/slice': {
8017
+ get: {
8018
+ req: EventControllerGetSliceData;
8019
+ res: {
8020
+ /**
8021
+ * Time-series sliced by the life event range
8022
+ */
8023
+ 200: unknown;
8024
+ /**
8025
+ * accountPattern query param is empty
8026
+ */
8027
+ 400: unknown;
8028
+ /**
8029
+ * Life event not found
8030
+ */
8031
+ 404: unknown;
8032
+ };
8033
+ };
8034
+ };
8035
+ '/api/v1/{region}/bean/onboarding': {
8036
+ post: {
8037
+ req: OnboardingControllerBootstrapData;
8038
+ res: {
8039
+ /**
8040
+ * Onboarding bootstrap result.
8041
+ */
8042
+ 201: unknown;
8043
+ /**
8044
+ * Invalid region/account path/duplicate paths.
8045
+ */
8046
+ 422: unknown;
8047
+ };
8048
+ };
8049
+ };
8050
+ '/api/v1/{region}/bean/reconciliations': {
8051
+ post: {
8052
+ req: ReconciliationControllerComputeData;
8053
+ res: {
8054
+ /**
8055
+ * Reconciliation preview
8056
+ */
8057
+ 200: ReconciliationComputeResultDto;
8058
+ /**
8059
+ * Account not found
8060
+ */
8061
+ 404: unknown;
8062
+ };
8063
+ };
8064
+ };
8065
+ '/api/v1/{region}/bean/reconciliations/assert': {
8066
+ post: {
8067
+ req: ReconciliationControllerAssertData;
8068
+ res: {
8069
+ /**
8070
+ * Balance assertion recorded
8071
+ */
8072
+ 201: ReconciliationRecordDto;
8073
+ /**
8074
+ * Account not found
8075
+ */
8076
+ 404: unknown;
8077
+ };
8078
+ };
8079
+ };
8080
+ '/api/v1/{region}/bean/reconciliations/pad': {
8081
+ post: {
8082
+ req: ReconciliationControllerPadData;
8083
+ res: {
8084
+ /**
8085
+ * Pad adjusting entry generated
8086
+ */
8087
+ 201: PadResultDto;
8088
+ /**
8089
+ * Book already within tolerance — no pad needed
8090
+ */
8091
+ 400: unknown;
8092
+ /**
8093
+ * Account not found
8094
+ */
8095
+ 404: unknown;
8096
+ };
8097
+ };
8098
+ };
8099
+ '/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
8100
+ get: {
8101
+ req: ReconciliationControllerHistoryData;
8102
+ res: {
8103
+ /**
8104
+ * Reconciliation history
8105
+ */
8106
+ 200: Array<ReconciliationRecordDto>;
8107
+ /**
8108
+ * Account not found
8109
+ */
8110
+ 404: unknown;
8111
+ };
8112
+ };
8113
+ };
7100
8114
  '/api/v1/{region}/bean/export/beancount': {
7101
8115
  get: {
7102
8116
  res: {
@@ -7184,138 +8198,66 @@ type $OpenApiTs = {
7184
8198
  imported?: number;
7185
8199
  skipped?: number;
7186
8200
  failed?: number;
7187
- accountsCreated?: number;
7188
- errors?: Array<{
7189
- [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;
8201
+ accountsCreated?: number;
8202
+ errors?: Array<{
8203
+ [key: string]: unknown;
8204
+ }>;
8205
+ };
7266
8206
  /**
7267
- * Platform already exists
8207
+ * Bad request - invalid file or no file uploaded
7268
8208
  */
7269
- 409: unknown;
8209
+ 400: ApiProblemResponseDto;
7270
8210
  };
7271
8211
  };
7272
8212
  };
7273
- '/api/v1/bean/platforms/list': {
8213
+ '/api/v1/{region}/bean/import/config/{importerId}': {
7274
8214
  get: {
8215
+ req: ImporterConfigControllerGetConfigData;
7275
8216
  res: {
7276
8217
  /**
7277
- * List of platforms with user binding status
8218
+ * Configuration retrieved successfully
7278
8219
  */
7279
- 200: unknown;
7280
- };
7281
- };
7282
- };
7283
- '/api/v1/bean/platforms/match': {
7284
- get: {
7285
- req: PlatformControllerMatchPlatformsData;
7286
- res: {
8220
+ 200: ImporterConfigDto;
8221
+ /**
8222
+ * Invalid input - Unsupported importer
8223
+ */
8224
+ 400: ApiProblemResponseDto;
7287
8225
  /**
7288
- * List of matching platforms with suggested segment names
8226
+ * Unauthorized - Authentication required
7289
8227
  */
7290
- 200: unknown;
8228
+ 401: ApiProblemResponseDto;
7291
8229
  };
7292
8230
  };
7293
- };
7294
- '/api/v1/bean/platforms/{id}': {
7295
8231
  put: {
7296
- req: PlatformControllerUpdateData;
8232
+ req: ImporterConfigControllerUpdateConfigData;
7297
8233
  res: {
7298
8234
  /**
7299
- * Platform updated successfully
8235
+ * Configuration updated successfully
7300
8236
  */
7301
- 200: unknown;
8237
+ 200: ImporterConfigDto;
7302
8238
  /**
7303
- * Platform not found
8239
+ * Invalid input - Validation failed
7304
8240
  */
7305
- 404: unknown;
8241
+ 400: ApiProblemResponseDto;
8242
+ /**
8243
+ * Configuration not found
8244
+ */
8245
+ 404: ApiProblemResponseDto;
7306
8246
  };
7307
8247
  };
7308
- delete: {
7309
- req: PlatformControllerDeleteData;
8248
+ };
8249
+ '/api/v1/{region}/bean/import/config/{importerId}/reset': {
8250
+ post: {
8251
+ req: ImporterConfigControllerResetConfigData;
7310
8252
  res: {
7311
8253
  /**
7312
- * Platform deleted successfully
8254
+ * Configuration reset successfully
7313
8255
  */
7314
- 204: void;
8256
+ 200: ImporterConfigDto;
7315
8257
  /**
7316
- * Platform not found
8258
+ * Invalid input - Unsupported importer
7317
8259
  */
7318
- 404: unknown;
8260
+ 400: ApiProblemResponseDto;
7319
8261
  };
7320
8262
  };
7321
8263
  };
@@ -7372,6 +8314,54 @@ type $OpenApiTs = {
7372
8314
  };
7373
8315
  };
7374
8316
  };
8317
+ '/api/v1/{region}/bean/external-account-links': {
8318
+ post: {
8319
+ req: ExternalAccountLinkControllerCreateData;
8320
+ res: {
8321
+ /**
8322
+ * Link created.
8323
+ */
8324
+ 201: ExternalAccountLinkResponseDto;
8325
+ /**
8326
+ * beanAccountId not owned, or an active link already exists.
8327
+ */
8328
+ 422: unknown;
8329
+ };
8330
+ };
8331
+ get: {
8332
+ req: ExternalAccountLinkControllerFindAllData;
8333
+ res: {
8334
+ /**
8335
+ * Links retrieved.
8336
+ */
8337
+ 200: ExternalAccountLinkListResponseDto;
8338
+ };
8339
+ };
8340
+ };
8341
+ '/api/v1/{region}/bean/external-account-links/{id}': {
8342
+ get: {
8343
+ req: ExternalAccountLinkControllerFindOneData;
8344
+ res: {
8345
+ /**
8346
+ * Link retrieved.
8347
+ */
8348
+ 200: ExternalAccountLinkResponseDto;
8349
+ /**
8350
+ * Link not found or not owned by the user.
8351
+ */
8352
+ 422: unknown;
8353
+ };
8354
+ };
8355
+ delete: {
8356
+ req: ExternalAccountLinkControllerRemoveData;
8357
+ res: {
8358
+ /**
8359
+ * Link soft-deleted; historical transactions are unaffected.
8360
+ */
8361
+ 204: void;
8362
+ };
8363
+ };
8364
+ };
7375
8365
  '/api/v1/{region}/bean/import/parser-telemetry': {
7376
8366
  post: {
7377
8367
  req: TelemetryControllerReportTelemetryData;
@@ -7460,6 +8450,78 @@ type $OpenApiTs = {
7460
8450
  };
7461
8451
  };
7462
8452
  };
8453
+ '/api/v1/bean/platforms': {
8454
+ get: {
8455
+ res: {
8456
+ /**
8457
+ * List of platforms with binding and account counts
8458
+ */
8459
+ 200: unknown;
8460
+ };
8461
+ };
8462
+ post: {
8463
+ req: PlatformControllerCreateData;
8464
+ res: {
8465
+ /**
8466
+ * Platform created successfully
8467
+ */
8468
+ 201: unknown;
8469
+ /**
8470
+ * Platform already exists
8471
+ */
8472
+ 409: unknown;
8473
+ };
8474
+ };
8475
+ };
8476
+ '/api/v1/bean/platforms/list': {
8477
+ get: {
8478
+ res: {
8479
+ /**
8480
+ * List of platforms with user binding status
8481
+ */
8482
+ 200: Array<PlatformListItemDto>;
8483
+ };
8484
+ };
8485
+ };
8486
+ '/api/v1/bean/platforms/match': {
8487
+ get: {
8488
+ req: PlatformControllerMatchPlatformsData;
8489
+ res: {
8490
+ /**
8491
+ * Matching platforms with overall match type and truncation flag
8492
+ */
8493
+ 200: PlatformMatchResponseDto;
8494
+ };
8495
+ };
8496
+ };
8497
+ '/api/v1/bean/platforms/{id}': {
8498
+ put: {
8499
+ req: PlatformControllerUpdateData;
8500
+ res: {
8501
+ /**
8502
+ * Platform updated successfully
8503
+ */
8504
+ 200: unknown;
8505
+ /**
8506
+ * Platform not found
8507
+ */
8508
+ 404: unknown;
8509
+ };
8510
+ };
8511
+ delete: {
8512
+ req: PlatformControllerDeleteData;
8513
+ res: {
8514
+ /**
8515
+ * Platform deleted successfully
8516
+ */
8517
+ 204: void;
8518
+ /**
8519
+ * Platform not found
8520
+ */
8521
+ 404: unknown;
8522
+ };
8523
+ };
8524
+ };
7463
8525
  '/api/v1/{region}/dashboard/net-worth': {
7464
8526
  get: {
7465
8527
  req: DashboardControllerGetNetWorthData;
@@ -7509,16 +8571,16 @@ type $OpenApiTs = {
7509
8571
  };
7510
8572
  };
7511
8573
  };
7512
- '/api/v1/{region}/investment/holdings/pnl': {
8574
+ '/api/v1/{region}/dashboard/expenses': {
7513
8575
  get: {
7514
- req: HoldingPnlControllerGetHoldingPnlData;
8576
+ req: DashboardControllerGetExpensesData;
7515
8577
  res: {
7516
8578
  /**
7517
- * Holding P&L retrieved successfully
8579
+ * Expenses retrieved successfully
7518
8580
  */
7519
- 200: HoldingPnlResponseDto;
8581
+ 200: ExpensesByCategoryResponseDto;
7520
8582
  /**
7521
- * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8583
+ * Invalid groupBy or period
7522
8584
  */
7523
8585
  400: unknown;
7524
8586
  /**
@@ -7528,98 +8590,48 @@ type $OpenApiTs = {
7528
8590
  };
7529
8591
  };
7530
8592
  };
7531
- '/api/v1/{region}/bean/prices': {
7532
- post: {
7533
- req: PriceControllerCreateData;
8593
+ '/api/v1/{region}/investment/holdings/pnl': {
8594
+ get: {
8595
+ req: HoldingPnlControllerGetHoldingPnlData;
7534
8596
  res: {
7535
8597
  /**
7536
- * Price created successfully
7537
- */
7538
- 201: PriceResponseDto;
7539
- /**
7540
- * Currency or quoteCurrency commodity not found
8598
+ * Holding P&L retrieved successfully
7541
8599
  */
7542
- 404: unknown;
8600
+ 200: HoldingPnlResponseDto;
7543
8601
  /**
7544
- * Price already exists for this currency pair and date
8602
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
7545
8603
  */
7546
- 409: unknown;
7547
- };
7548
- };
7549
- get: {
7550
- req: PriceControllerFindAllData;
7551
- res: {
8604
+ 400: unknown;
7552
8605
  /**
7553
- * Prices retrieved successfully
8606
+ * User not authenticated
7554
8607
  */
7555
- 200: PriceListResponseDto;
8608
+ 401: unknown;
7556
8609
  };
7557
8610
  };
7558
8611
  };
7559
- '/api/v1/{region}/bean/prices/{id}': {
8612
+ '/api/v1/{region}/reporting/portfolio/trends': {
7560
8613
  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;
8614
+ req: ReportingControllerGetPortfolioTrendsData;
7592
8615
  res: {
7593
8616
  /**
7594
- * Price deleted successfully
7595
- */
7596
- 204: void;
7597
- /**
7598
- * Price not found
8617
+ * Trends retrieved successfully
7599
8618
  */
7600
- 404: unknown;
7601
- };
7602
- };
7603
- };
7604
- '/api/v1/{region}/bean/prices/bulk': {
7605
- post: {
7606
- req: PriceControllerBulkCreateData;
7607
- res: {
8619
+ 200: PortfolioTrendsResponseDto;
7608
8620
  /**
7609
- * Prices created successfully
8621
+ * User not authenticated
7610
8622
  */
7611
- 201: Array<PriceResponseDto>;
8623
+ 401: unknown;
7612
8624
  };
7613
8625
  };
7614
8626
  };
7615
- '/api/v1/{region}/reporting/portfolio/trends': {
8627
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7616
8628
  get: {
7617
- req: ReportingControllerGetPortfolioTrendsData;
8629
+ req: ReportingControllerGetCashFlowTrendsData;
7618
8630
  res: {
7619
8631
  /**
7620
- * Trends retrieved successfully
8632
+ * Cash-flow trends retrieved successfully
7621
8633
  */
7622
- 200: PortfolioTrendsResponseDto;
8634
+ 200: CashFlowTrendsResponseDto;
7623
8635
  /**
7624
8636
  * User not authenticated
7625
8637
  */
@@ -7858,7 +8870,7 @@ declare class BeanAccountsService {
7858
8870
  * @param data.type Filter by account type
7859
8871
  * @param data.status Filter by status
7860
8872
  * @param data.isCustom Filter by custom (user-created) accounts only
7861
- * @param data.search Search term for path or i18nKey
8873
+ * @param data.search Search term for account path
7862
8874
  * @param data.limit Maximum number of results
7863
8875
  * @param data.offset Number of results to skip
7864
8876
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -7918,6 +8930,17 @@ declare class BeanAccountsService {
7918
8930
  * @throws ApiError
7919
8931
  */
7920
8932
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
8933
+ /**
8934
+ * Post an opening-balance transaction
8935
+ * 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.
8936
+ * @param data The data for the request.
8937
+ * @param data.id Account UUID
8938
+ * @param data.region Region code for tenant context
8939
+ * @param data.requestBody
8940
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
8941
+ * @throws ApiError
8942
+ */
8943
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
7921
8944
  }
7922
8945
  declare class BeanTransactionsService {
7923
8946
  /**
@@ -7943,6 +8966,7 @@ declare class BeanTransactionsService {
7943
8966
  * @param data.status Filter by transaction status
7944
8967
  * @param data.search Search in narration and payee fields (max 200 chars)
7945
8968
  * @param data.accountId Filter by account ID (transactions with postings to this account)
8969
+ * @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
8970
  * @returns TransactionListResponseDto Transaction list
7947
8971
  * @throws ApiError
7948
8972
  */
@@ -8018,7 +9042,7 @@ declare class BeanBalancesService {
8018
9042
  * Query account balance
8019
9043
  * Calculate account balance at a specific date for a single currency
8020
9044
  * @param data The data for the request.
8021
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
9045
+ * @param data.account Account name (e.g., "Assets:Checking")
8022
9046
  * @param data.region Region code for tenant context
8023
9047
  * @param data.date Date to calculate balance at (ISO 8601 format)
8024
9048
  * @param data.currency Currency to query (e.g., "USD", "CNY")
@@ -8248,4 +9272,4 @@ type OpenAPIConfig = {
8248
9272
  };
8249
9273
  declare const OpenAPI: OpenAPIConfig;
8250
9274
 
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 };
9275
+ 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 PlatformMatchResponseDto, type PlatformMatchResultDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type 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 matchType, type matchType2, 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 };