@firela/api-types 0.0.0-canary.2b8fcbd8 → 0.0.0-canary.2d71872c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1623 -655
- package/dist/index.d.ts +1623 -655
- package/dist/index.js +31 -3
- package/dist/index.mjs +31 -3
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +1427 -586
- package/src/generated/services.gen.ts +881 -343
- package/src/generated/types.gen.ts +1761 -709
|
@@ -6,13 +6,9 @@ export type CreateAccountDto = {
|
|
|
6
6
|
*/
|
|
7
7
|
path: string;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Account open date (server defaults to today)
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Account open date
|
|
14
|
-
*/
|
|
15
|
-
openDate: string;
|
|
11
|
+
openDate?: string;
|
|
16
12
|
/**
|
|
17
13
|
* Allowed currencies (null = no restriction)
|
|
18
14
|
*/
|
|
@@ -36,18 +32,14 @@ export type CreateAccountDto = {
|
|
|
36
32
|
* Whether this is a custom (user-created) account
|
|
37
33
|
*/
|
|
38
34
|
isCustom?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* i18n key for display name (overrides template)
|
|
41
|
-
*/
|
|
42
|
-
i18nKey?: string;
|
|
43
35
|
/**
|
|
44
36
|
* Icon identifier (overrides template)
|
|
45
37
|
*/
|
|
46
38
|
icon?: string;
|
|
47
39
|
/**
|
|
48
|
-
*
|
|
40
|
+
* Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
|
|
49
41
|
*/
|
|
50
|
-
|
|
42
|
+
openDirectiveMeta?: {
|
|
51
43
|
[key: string]: unknown;
|
|
52
44
|
};
|
|
53
45
|
/**
|
|
@@ -77,10 +69,6 @@ export type AccountResponseDto = {
|
|
|
77
69
|
* Account path (hierarchical, colon-separated)
|
|
78
70
|
*/
|
|
79
71
|
path: string;
|
|
80
|
-
/**
|
|
81
|
-
* Display name distinguishing multiple accounts at the same path
|
|
82
|
-
*/
|
|
83
|
-
displayName: string;
|
|
84
72
|
/**
|
|
85
73
|
* Account type (root segment)
|
|
86
74
|
*/
|
|
@@ -121,17 +109,17 @@ export type AccountResponseDto = {
|
|
|
121
109
|
*/
|
|
122
110
|
isCustom: boolean;
|
|
123
111
|
/**
|
|
124
|
-
*
|
|
112
|
+
* Localized display name (ADR-0114, read-time projection)
|
|
125
113
|
*/
|
|
126
|
-
|
|
114
|
+
displayName?: string;
|
|
127
115
|
/**
|
|
128
116
|
* Icon identifier
|
|
129
117
|
*/
|
|
130
118
|
icon?: string;
|
|
131
119
|
/**
|
|
132
|
-
*
|
|
120
|
+
* Open directive metadata (ADR-0115 Decision 9)
|
|
133
121
|
*/
|
|
134
|
-
|
|
122
|
+
openDirectiveMeta?: {
|
|
135
123
|
[key: string]: unknown;
|
|
136
124
|
};
|
|
137
125
|
/**
|
|
@@ -178,10 +166,6 @@ export type AccountListResponseDto = {
|
|
|
178
166
|
};
|
|
179
167
|
|
|
180
168
|
export type UpdateAccountDto = {
|
|
181
|
-
/**
|
|
182
|
-
* Display name to distinguish accounts at the same path
|
|
183
|
-
*/
|
|
184
|
-
displayName?: string;
|
|
185
169
|
/**
|
|
186
170
|
* Allowed currencies (null = no restriction)
|
|
187
171
|
*/
|
|
@@ -197,18 +181,14 @@ export type UpdateAccountDto = {
|
|
|
197
181
|
| 'STRICT'
|
|
198
182
|
| 'STRICT_WITH_SIZE'
|
|
199
183
|
| 'NONE';
|
|
200
|
-
/**
|
|
201
|
-
* i18n key for display name
|
|
202
|
-
*/
|
|
203
|
-
i18nKey?: string;
|
|
204
184
|
/**
|
|
205
185
|
* Icon identifier
|
|
206
186
|
*/
|
|
207
187
|
icon?: string;
|
|
208
188
|
/**
|
|
209
|
-
*
|
|
189
|
+
* Open directive metadata (merged with existing; NOT an opening-balance amount)
|
|
210
190
|
*/
|
|
211
|
-
|
|
191
|
+
openDirectiveMeta?: {
|
|
212
192
|
[key: string]: unknown;
|
|
213
193
|
};
|
|
214
194
|
/**
|
|
@@ -237,6 +217,28 @@ export type ReopenAccountDto = {
|
|
|
237
217
|
reopenDate?: string;
|
|
238
218
|
};
|
|
239
219
|
|
|
220
|
+
export type CreateOpeningBalanceDto = {
|
|
221
|
+
/**
|
|
222
|
+
* Opening balance amount (non-negative)
|
|
223
|
+
*/
|
|
224
|
+
amount: number;
|
|
225
|
+
/**
|
|
226
|
+
* Currency code
|
|
227
|
+
*/
|
|
228
|
+
currency: string;
|
|
229
|
+
/**
|
|
230
|
+
* Opening-balance date (defaults to now)
|
|
231
|
+
*/
|
|
232
|
+
date?: string;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
export type OpeningBalanceResultDto = {
|
|
236
|
+
/**
|
|
237
|
+
* Created opening-balance transaction id.
|
|
238
|
+
*/
|
|
239
|
+
transactionId: string;
|
|
240
|
+
};
|
|
241
|
+
|
|
240
242
|
export type AccountStandardResponseDto = {
|
|
241
243
|
/**
|
|
242
244
|
* Account path (hierarchical, colon-separated)
|
|
@@ -246,10 +248,6 @@ export type AccountStandardResponseDto = {
|
|
|
246
248
|
* Account type in Beancount hierarchy
|
|
247
249
|
*/
|
|
248
250
|
type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
|
|
249
|
-
/**
|
|
250
|
-
* i18n key for localized display name
|
|
251
|
-
*/
|
|
252
|
-
i18nKey: string;
|
|
253
251
|
/**
|
|
254
252
|
* Short localized display name
|
|
255
253
|
*/
|
|
@@ -284,10 +282,6 @@ export type AccountStandardListResponseDto = {
|
|
|
284
282
|
};
|
|
285
283
|
|
|
286
284
|
export type TemplateMetadataDto = {
|
|
287
|
-
/**
|
|
288
|
-
* Whether this path can be extended
|
|
289
|
-
*/
|
|
290
|
-
extendable: boolean;
|
|
291
285
|
/**
|
|
292
286
|
* Root account type
|
|
293
287
|
*/
|
|
@@ -848,6 +842,51 @@ export type flag2 =
|
|
|
848
842
|
*/
|
|
849
843
|
export type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
|
|
850
844
|
|
|
845
|
+
export type BalanceByCurrencyDto = {
|
|
846
|
+
/**
|
|
847
|
+
* ISO 4217 currency code
|
|
848
|
+
*/
|
|
849
|
+
currency: string;
|
|
850
|
+
/**
|
|
851
|
+
* Balance amount
|
|
852
|
+
*/
|
|
853
|
+
balance: string;
|
|
854
|
+
};
|
|
855
|
+
|
|
856
|
+
export type ExchangeRateWarningDto = {
|
|
857
|
+
/**
|
|
858
|
+
* Warning type
|
|
859
|
+
*/
|
|
860
|
+
type: string;
|
|
861
|
+
/**
|
|
862
|
+
* Currency without exchange rate
|
|
863
|
+
*/
|
|
864
|
+
currency: string;
|
|
865
|
+
/**
|
|
866
|
+
* Total amount affected
|
|
867
|
+
*/
|
|
868
|
+
totalAmount: string;
|
|
869
|
+
};
|
|
870
|
+
|
|
871
|
+
export type TransactionListSummaryDto = {
|
|
872
|
+
/**
|
|
873
|
+
* 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.
|
|
874
|
+
*/
|
|
875
|
+
totalAmount: string;
|
|
876
|
+
/**
|
|
877
|
+
* Base currency (ISO 4217)
|
|
878
|
+
*/
|
|
879
|
+
currency: string;
|
|
880
|
+
/**
|
|
881
|
+
* Raw (unconverted) balance per currency
|
|
882
|
+
*/
|
|
883
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
884
|
+
/**
|
|
885
|
+
* Currencies missing an FX rate (omitted when empty)
|
|
886
|
+
*/
|
|
887
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
888
|
+
};
|
|
889
|
+
|
|
851
890
|
export type TransactionListResponseDto = {
|
|
852
891
|
/**
|
|
853
892
|
* List of transactions
|
|
@@ -865,6 +904,10 @@ export type TransactionListResponseDto = {
|
|
|
865
904
|
* Number of items skipped
|
|
866
905
|
*/
|
|
867
906
|
offset: number;
|
|
907
|
+
/**
|
|
908
|
+
* 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.
|
|
909
|
+
*/
|
|
910
|
+
summary?: TransactionListSummaryDto;
|
|
868
911
|
};
|
|
869
912
|
|
|
870
913
|
export type TagSuggestionDto = {
|
|
@@ -1917,6 +1960,108 @@ export type UpdateCommodityDto = {
|
|
|
1917
1960
|
};
|
|
1918
1961
|
};
|
|
1919
1962
|
|
|
1963
|
+
export type CreateBeanPriceDto = {
|
|
1964
|
+
/**
|
|
1965
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1966
|
+
*/
|
|
1967
|
+
currency: string;
|
|
1968
|
+
/**
|
|
1969
|
+
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
1970
|
+
*/
|
|
1971
|
+
quoteCurrency: string;
|
|
1972
|
+
/**
|
|
1973
|
+
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
1974
|
+
*/
|
|
1975
|
+
amount: number;
|
|
1976
|
+
/**
|
|
1977
|
+
* Price date (ISO 8601 format)
|
|
1978
|
+
*/
|
|
1979
|
+
date: string;
|
|
1980
|
+
/**
|
|
1981
|
+
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
1982
|
+
*/
|
|
1983
|
+
metadata?: {
|
|
1984
|
+
[key: string]: unknown;
|
|
1985
|
+
};
|
|
1986
|
+
};
|
|
1987
|
+
|
|
1988
|
+
export type PriceResponseDto = {
|
|
1989
|
+
/**
|
|
1990
|
+
* Unique identifier
|
|
1991
|
+
*/
|
|
1992
|
+
id: string;
|
|
1993
|
+
/**
|
|
1994
|
+
* User ID (owner of the price)
|
|
1995
|
+
*/
|
|
1996
|
+
userId: string;
|
|
1997
|
+
/**
|
|
1998
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1999
|
+
*/
|
|
2000
|
+
currency: string;
|
|
2001
|
+
/**
|
|
2002
|
+
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
2003
|
+
*/
|
|
2004
|
+
quoteCurrency: string;
|
|
2005
|
+
/**
|
|
2006
|
+
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
2007
|
+
*/
|
|
2008
|
+
amount: number;
|
|
2009
|
+
/**
|
|
2010
|
+
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
2011
|
+
*/
|
|
2012
|
+
date: string;
|
|
2013
|
+
/**
|
|
2014
|
+
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
2015
|
+
*/
|
|
2016
|
+
meta: {
|
|
2017
|
+
[key: string]: unknown;
|
|
2018
|
+
};
|
|
2019
|
+
/**
|
|
2020
|
+
* Creation timestamp
|
|
2021
|
+
*/
|
|
2022
|
+
createdAt: string;
|
|
2023
|
+
/**
|
|
2024
|
+
* Last update timestamp
|
|
2025
|
+
*/
|
|
2026
|
+
updatedAt: string;
|
|
2027
|
+
};
|
|
2028
|
+
|
|
2029
|
+
export type PriceListResponseDto = {
|
|
2030
|
+
/**
|
|
2031
|
+
* List of prices
|
|
2032
|
+
*/
|
|
2033
|
+
items: Array<PriceResponseDto>;
|
|
2034
|
+
/**
|
|
2035
|
+
* Total number of prices
|
|
2036
|
+
*/
|
|
2037
|
+
total: number;
|
|
2038
|
+
};
|
|
2039
|
+
|
|
2040
|
+
export type UpdateBeanPriceDto = {
|
|
2041
|
+
/**
|
|
2042
|
+
* Currency being priced
|
|
2043
|
+
*/
|
|
2044
|
+
currency?: string;
|
|
2045
|
+
/**
|
|
2046
|
+
* Quote currency (pricing currency)
|
|
2047
|
+
*/
|
|
2048
|
+
quoteCurrency?: string;
|
|
2049
|
+
/**
|
|
2050
|
+
* Price amount (MUST be >= 0 per Beancount spec)
|
|
2051
|
+
*/
|
|
2052
|
+
amount?: number;
|
|
2053
|
+
/**
|
|
2054
|
+
* Price date (ISO 8601 format)
|
|
2055
|
+
*/
|
|
2056
|
+
date?: string;
|
|
2057
|
+
/**
|
|
2058
|
+
* Metadata
|
|
2059
|
+
*/
|
|
2060
|
+
metadata?: {
|
|
2061
|
+
[key: string]: unknown;
|
|
2062
|
+
};
|
|
2063
|
+
};
|
|
2064
|
+
|
|
1920
2065
|
export type CreateRecurringRuleDto = {
|
|
1921
2066
|
/**
|
|
1922
2067
|
* Rule name (unique per user)
|
|
@@ -3029,85 +3174,329 @@ export type UpdatePropertyDto = {
|
|
|
3029
3174
|
value: string;
|
|
3030
3175
|
};
|
|
3031
3176
|
|
|
3032
|
-
export type
|
|
3177
|
+
export type CreateBeanEventDto = {
|
|
3033
3178
|
/**
|
|
3034
|
-
*
|
|
3179
|
+
* Life event date (ISO 8601)
|
|
3035
3180
|
*/
|
|
3036
|
-
|
|
3037
|
-
};
|
|
3038
|
-
|
|
3039
|
-
export type ImportErrorDto = {
|
|
3181
|
+
date: string;
|
|
3040
3182
|
/**
|
|
3041
|
-
*
|
|
3183
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
3042
3184
|
*/
|
|
3043
|
-
|
|
3185
|
+
type: string;
|
|
3044
3186
|
/**
|
|
3045
|
-
*
|
|
3187
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3046
3188
|
*/
|
|
3047
|
-
|
|
3189
|
+
description: string;
|
|
3190
|
+
/**
|
|
3191
|
+
* Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
|
|
3192
|
+
*/
|
|
3193
|
+
meta?: {
|
|
3194
|
+
[key: string]: unknown;
|
|
3195
|
+
};
|
|
3048
3196
|
};
|
|
3049
3197
|
|
|
3050
|
-
export type
|
|
3198
|
+
export type EventResponseDto = {
|
|
3051
3199
|
/**
|
|
3052
|
-
*
|
|
3200
|
+
* Unique identifier
|
|
3053
3201
|
*/
|
|
3054
|
-
|
|
3202
|
+
id: string;
|
|
3055
3203
|
/**
|
|
3056
|
-
*
|
|
3204
|
+
* User ID (owner of the life event)
|
|
3057
3205
|
*/
|
|
3058
|
-
|
|
3206
|
+
userId: string;
|
|
3059
3207
|
/**
|
|
3060
|
-
*
|
|
3208
|
+
* Life event date (ISO 8601 format)
|
|
3061
3209
|
*/
|
|
3062
|
-
|
|
3210
|
+
date: string;
|
|
3063
3211
|
/**
|
|
3064
|
-
*
|
|
3212
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3065
3213
|
*/
|
|
3066
|
-
|
|
3214
|
+
type: string;
|
|
3067
3215
|
/**
|
|
3068
|
-
*
|
|
3216
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3069
3217
|
*/
|
|
3070
|
-
|
|
3218
|
+
description: string;
|
|
3071
3219
|
/**
|
|
3072
|
-
*
|
|
3220
|
+
* Product-side metadata (free-form JSON)
|
|
3073
3221
|
*/
|
|
3074
|
-
|
|
3222
|
+
meta: {
|
|
3223
|
+
[key: string]: unknown;
|
|
3224
|
+
};
|
|
3075
3225
|
/**
|
|
3076
|
-
*
|
|
3226
|
+
* Creation timestamp
|
|
3077
3227
|
*/
|
|
3078
|
-
|
|
3228
|
+
createdAt: string;
|
|
3079
3229
|
/**
|
|
3080
|
-
*
|
|
3230
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3081
3231
|
*/
|
|
3082
|
-
|
|
3232
|
+
updatedAt: string;
|
|
3233
|
+
};
|
|
3234
|
+
|
|
3235
|
+
export type EventListResponseDto = {
|
|
3083
3236
|
/**
|
|
3084
|
-
*
|
|
3237
|
+
* List of life events
|
|
3085
3238
|
*/
|
|
3086
|
-
|
|
3087
|
-
| 'DUPLICATE'
|
|
3088
|
-
| 'PAYEE_MATCH'
|
|
3089
|
-
| 'RULE_MATCH'
|
|
3090
|
-
| 'ACCOUNT_VALIDATION'
|
|
3091
|
-
| 'PIPELINE_ERROR';
|
|
3239
|
+
items: Array<EventResponseDto>;
|
|
3092
3240
|
/**
|
|
3093
|
-
*
|
|
3241
|
+
* Total number of life events matching the query
|
|
3094
3242
|
*/
|
|
3095
|
-
|
|
3243
|
+
total: number;
|
|
3096
3244
|
};
|
|
3097
3245
|
|
|
3098
|
-
|
|
3099
|
-
* Type of branch requiring review
|
|
3100
|
-
*/
|
|
3101
|
-
export type branchType =
|
|
3102
|
-
| 'DUPLICATE'
|
|
3103
|
-
| 'PAYEE_MATCH'
|
|
3104
|
-
| 'RULE_MATCH'
|
|
3105
|
-
| 'ACCOUNT_VALIDATION'
|
|
3106
|
-
| 'PIPELINE_ERROR';
|
|
3107
|
-
|
|
3108
|
-
export type ImportResultDto = {
|
|
3246
|
+
export type UpdateBeanEventDto = {
|
|
3109
3247
|
/**
|
|
3110
|
-
*
|
|
3248
|
+
* Life event date (ISO 8601)
|
|
3249
|
+
*/
|
|
3250
|
+
date?: string;
|
|
3251
|
+
/**
|
|
3252
|
+
* Life event type (user-defined)
|
|
3253
|
+
*/
|
|
3254
|
+
type?: string;
|
|
3255
|
+
/**
|
|
3256
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3257
|
+
*/
|
|
3258
|
+
description?: string;
|
|
3259
|
+
/**
|
|
3260
|
+
* Product-side metadata (free-form JSON)
|
|
3261
|
+
*/
|
|
3262
|
+
meta?: {
|
|
3263
|
+
[key: string]: unknown;
|
|
3264
|
+
};
|
|
3265
|
+
};
|
|
3266
|
+
|
|
3267
|
+
export type OnboardingAccountDto = {
|
|
3268
|
+
/**
|
|
3269
|
+
* Account path (Assets/Liabilities only; format validated by the account service)
|
|
3270
|
+
*/
|
|
3271
|
+
path: string;
|
|
3272
|
+
/**
|
|
3273
|
+
* ISO 4217 currency code (3 letters)
|
|
3274
|
+
*/
|
|
3275
|
+
currency: string;
|
|
3276
|
+
/**
|
|
3277
|
+
* Opening balance as a non-negative Decimal string (e.g. "1000.00")
|
|
3278
|
+
*/
|
|
3279
|
+
openingBalance?: string;
|
|
3280
|
+
/**
|
|
3281
|
+
* Platform ID to bind the account to (references Platform.id); omit for unbound
|
|
3282
|
+
*/
|
|
3283
|
+
platformId?: string;
|
|
3284
|
+
};
|
|
3285
|
+
|
|
3286
|
+
export type OnboardingDto = {
|
|
3287
|
+
/**
|
|
3288
|
+
* Asset/Liability accounts to register with opening balances
|
|
3289
|
+
*/
|
|
3290
|
+
accounts?: Array<OnboardingAccountDto>;
|
|
3291
|
+
/**
|
|
3292
|
+
* Skip asset registration; only bootstrap the core account set
|
|
3293
|
+
*/
|
|
3294
|
+
skipAssetRegistration?: boolean;
|
|
3295
|
+
};
|
|
3296
|
+
|
|
3297
|
+
export type ActualBalanceDto = {
|
|
3298
|
+
/**
|
|
3299
|
+
* Actual balance amount as a decimal string (preserves precision for tolerance inference).
|
|
3300
|
+
*/
|
|
3301
|
+
amount: string;
|
|
3302
|
+
/**
|
|
3303
|
+
* Currency code (ISO 4217 or commodity ticker).
|
|
3304
|
+
*/
|
|
3305
|
+
ccy: string;
|
|
3306
|
+
};
|
|
3307
|
+
|
|
3308
|
+
export type ComputeReconciliationDto = {
|
|
3309
|
+
/**
|
|
3310
|
+
* BeanAccount id to reconcile.
|
|
3311
|
+
*/
|
|
3312
|
+
accountId: string;
|
|
3313
|
+
/**
|
|
3314
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3315
|
+
*/
|
|
3316
|
+
asOfDate: string;
|
|
3317
|
+
/**
|
|
3318
|
+
* Actual balance from the external statement.
|
|
3319
|
+
*/
|
|
3320
|
+
actualBalance: ActualBalanceDto;
|
|
3321
|
+
};
|
|
3322
|
+
|
|
3323
|
+
export type ReconciliationComputeResultDto = {
|
|
3324
|
+
accountId: string;
|
|
3325
|
+
asOfDate: string;
|
|
3326
|
+
/**
|
|
3327
|
+
* System-computed book balance (decimal string).
|
|
3328
|
+
*/
|
|
3329
|
+
bookBalance: string;
|
|
3330
|
+
/**
|
|
3331
|
+
* User-entered actual balance (decimal string).
|
|
3332
|
+
*/
|
|
3333
|
+
actualBalance: string;
|
|
3334
|
+
currency: string;
|
|
3335
|
+
/**
|
|
3336
|
+
* Diff = book − actual (decimal string).
|
|
3337
|
+
*/
|
|
3338
|
+
diff: string;
|
|
3339
|
+
/**
|
|
3340
|
+
* Applied tolerance (decimal string).
|
|
3341
|
+
*/
|
|
3342
|
+
tolerance: string;
|
|
3343
|
+
/**
|
|
3344
|
+
* true when |diff| ≤ tolerance.
|
|
3345
|
+
*/
|
|
3346
|
+
withinTolerance: boolean;
|
|
3347
|
+
/**
|
|
3348
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3349
|
+
*/
|
|
3350
|
+
suggestedAction: 'assert' | 'pad';
|
|
3351
|
+
};
|
|
3352
|
+
|
|
3353
|
+
/**
|
|
3354
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3355
|
+
*/
|
|
3356
|
+
export type suggestedAction = 'assert' | 'pad';
|
|
3357
|
+
|
|
3358
|
+
export type AssertReconciliationDto = {
|
|
3359
|
+
/**
|
|
3360
|
+
* BeanAccount id to reconcile.
|
|
3361
|
+
*/
|
|
3362
|
+
accountId: string;
|
|
3363
|
+
/**
|
|
3364
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3365
|
+
*/
|
|
3366
|
+
asOfDate: string;
|
|
3367
|
+
/**
|
|
3368
|
+
* Actual balance from the external statement.
|
|
3369
|
+
*/
|
|
3370
|
+
actualBalance: ActualBalanceDto;
|
|
3371
|
+
/**
|
|
3372
|
+
* Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
|
|
3373
|
+
*/
|
|
3374
|
+
tolerance?: string;
|
|
3375
|
+
};
|
|
3376
|
+
|
|
3377
|
+
export type ReconciliationRecordDto = {
|
|
3378
|
+
id: string;
|
|
3379
|
+
accountId: string;
|
|
3380
|
+
date: string;
|
|
3381
|
+
/**
|
|
3382
|
+
* Asserted (actual) amount.
|
|
3383
|
+
*/
|
|
3384
|
+
amount: string;
|
|
3385
|
+
currency: string;
|
|
3386
|
+
tolerance?: string;
|
|
3387
|
+
/**
|
|
3388
|
+
* book − actual.
|
|
3389
|
+
*/
|
|
3390
|
+
diffAmount?: string;
|
|
3391
|
+
diffCurrency?: string;
|
|
3392
|
+
createdAt: string;
|
|
3393
|
+
};
|
|
3394
|
+
|
|
3395
|
+
export type PadReconciliationDto = {
|
|
3396
|
+
/**
|
|
3397
|
+
* BeanAccount id to reconcile.
|
|
3398
|
+
*/
|
|
3399
|
+
accountId: string;
|
|
3400
|
+
/**
|
|
3401
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3402
|
+
*/
|
|
3403
|
+
asOfDate: string;
|
|
3404
|
+
/**
|
|
3405
|
+
* Actual balance from the external statement.
|
|
3406
|
+
*/
|
|
3407
|
+
actualBalance: ActualBalanceDto;
|
|
3408
|
+
/**
|
|
3409
|
+
* Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
|
|
3410
|
+
*/
|
|
3411
|
+
sourceAccount?: string;
|
|
3412
|
+
};
|
|
3413
|
+
|
|
3414
|
+
export type PadResultDto = {
|
|
3415
|
+
/**
|
|
3416
|
+
* Created pad adjusting transaction id.
|
|
3417
|
+
*/
|
|
3418
|
+
transactionId: string;
|
|
3419
|
+
};
|
|
3420
|
+
|
|
3421
|
+
export type FileImportDto = {
|
|
3422
|
+
/**
|
|
3423
|
+
* Bill file to import (CSV, PDF, OFX, etc.)
|
|
3424
|
+
*/
|
|
3425
|
+
file: Blob | File;
|
|
3426
|
+
};
|
|
3427
|
+
|
|
3428
|
+
export type ImportErrorDto = {
|
|
3429
|
+
/**
|
|
3430
|
+
* Index of failed transaction in the file
|
|
3431
|
+
*/
|
|
3432
|
+
index: number;
|
|
3433
|
+
/**
|
|
3434
|
+
* Error message
|
|
3435
|
+
*/
|
|
3436
|
+
error: string;
|
|
3437
|
+
};
|
|
3438
|
+
|
|
3439
|
+
export type ReviewItemPreviewDto = {
|
|
3440
|
+
/**
|
|
3441
|
+
* Index in the import batch (for tracking)
|
|
3442
|
+
*/
|
|
3443
|
+
index: number;
|
|
3444
|
+
/**
|
|
3445
|
+
* Transaction date (ISO format)
|
|
3446
|
+
*/
|
|
3447
|
+
date: string;
|
|
3448
|
+
/**
|
|
3449
|
+
* Transaction amount (absolute value)
|
|
3450
|
+
*/
|
|
3451
|
+
amount?: number;
|
|
3452
|
+
/**
|
|
3453
|
+
* Currency code
|
|
3454
|
+
*/
|
|
3455
|
+
currency?: string;
|
|
3456
|
+
/**
|
|
3457
|
+
* Transaction narration/description
|
|
3458
|
+
*/
|
|
3459
|
+
narration: string;
|
|
3460
|
+
/**
|
|
3461
|
+
* Payee name
|
|
3462
|
+
*/
|
|
3463
|
+
payee?: string;
|
|
3464
|
+
/**
|
|
3465
|
+
* Inferred category from rule matching
|
|
3466
|
+
*/
|
|
3467
|
+
category?: string;
|
|
3468
|
+
/**
|
|
3469
|
+
* Confidence score for the match (0-1)
|
|
3470
|
+
*/
|
|
3471
|
+
confidence?: number;
|
|
3472
|
+
/**
|
|
3473
|
+
* Type of branch requiring review
|
|
3474
|
+
*/
|
|
3475
|
+
branchType?:
|
|
3476
|
+
| 'DUPLICATE'
|
|
3477
|
+
| 'PAYEE_MATCH'
|
|
3478
|
+
| 'RULE_MATCH'
|
|
3479
|
+
| 'ACCOUNT_VALIDATION'
|
|
3480
|
+
| 'PIPELINE_ERROR';
|
|
3481
|
+
/**
|
|
3482
|
+
* Human-readable reasons for requiring review
|
|
3483
|
+
*/
|
|
3484
|
+
reasons?: Array<string>;
|
|
3485
|
+
};
|
|
3486
|
+
|
|
3487
|
+
/**
|
|
3488
|
+
* Type of branch requiring review
|
|
3489
|
+
*/
|
|
3490
|
+
export type branchType =
|
|
3491
|
+
| 'DUPLICATE'
|
|
3492
|
+
| 'PAYEE_MATCH'
|
|
3493
|
+
| 'RULE_MATCH'
|
|
3494
|
+
| 'ACCOUNT_VALIDATION'
|
|
3495
|
+
| 'PIPELINE_ERROR';
|
|
3496
|
+
|
|
3497
|
+
export type ImportResultDto = {
|
|
3498
|
+
/**
|
|
3499
|
+
* Number of successfully imported transactions
|
|
3111
3500
|
*/
|
|
3112
3501
|
imported: number;
|
|
3113
3502
|
/**
|
|
@@ -3327,94 +3716,6 @@ export type UpdateImporterConfigDto = {
|
|
|
3327
3716
|
data?: UpdateConfigDataDto;
|
|
3328
3717
|
};
|
|
3329
3718
|
|
|
3330
|
-
export type CreatePlatformDto = {
|
|
3331
|
-
/**
|
|
3332
|
-
* Platform name
|
|
3333
|
-
*/
|
|
3334
|
-
name: string;
|
|
3335
|
-
/**
|
|
3336
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3337
|
-
*/
|
|
3338
|
-
canonical: string;
|
|
3339
|
-
/**
|
|
3340
|
-
* Platform aliases (multi-language names for lookup)
|
|
3341
|
-
*/
|
|
3342
|
-
aliases: Array<string>;
|
|
3343
|
-
/**
|
|
3344
|
-
* Platform URL
|
|
3345
|
-
*/
|
|
3346
|
-
url: string;
|
|
3347
|
-
/**
|
|
3348
|
-
* Platform type
|
|
3349
|
-
*/
|
|
3350
|
-
type:
|
|
3351
|
-
| 'BANK'
|
|
3352
|
-
| 'BROKERAGE'
|
|
3353
|
-
| 'CRYPTO_EXCHANGE'
|
|
3354
|
-
| 'PAYMENT'
|
|
3355
|
-
| 'INVESTMENT'
|
|
3356
|
-
| 'INSURANCE'
|
|
3357
|
-
| 'OTHER';
|
|
3358
|
-
/**
|
|
3359
|
-
* Platform logo URL
|
|
3360
|
-
*/
|
|
3361
|
-
logoUrl?: string;
|
|
3362
|
-
/**
|
|
3363
|
-
* Whether the platform is active
|
|
3364
|
-
*/
|
|
3365
|
-
isActive?: boolean;
|
|
3366
|
-
};
|
|
3367
|
-
|
|
3368
|
-
/**
|
|
3369
|
-
* Platform type
|
|
3370
|
-
*/
|
|
3371
|
-
export type type3 =
|
|
3372
|
-
| 'BANK'
|
|
3373
|
-
| 'BROKERAGE'
|
|
3374
|
-
| 'CRYPTO_EXCHANGE'
|
|
3375
|
-
| 'PAYMENT'
|
|
3376
|
-
| 'INVESTMENT'
|
|
3377
|
-
| 'INSURANCE'
|
|
3378
|
-
| 'OTHER';
|
|
3379
|
-
|
|
3380
|
-
export type UpdatePlatformDto = {
|
|
3381
|
-
/**
|
|
3382
|
-
* Platform name
|
|
3383
|
-
*/
|
|
3384
|
-
name?: string;
|
|
3385
|
-
/**
|
|
3386
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3387
|
-
*/
|
|
3388
|
-
canonical?: string;
|
|
3389
|
-
/**
|
|
3390
|
-
* Platform aliases (multi-language names for lookup)
|
|
3391
|
-
*/
|
|
3392
|
-
aliases?: Array<string>;
|
|
3393
|
-
/**
|
|
3394
|
-
* Platform URL
|
|
3395
|
-
*/
|
|
3396
|
-
url?: string;
|
|
3397
|
-
/**
|
|
3398
|
-
* Platform type
|
|
3399
|
-
*/
|
|
3400
|
-
type?:
|
|
3401
|
-
| 'BANK'
|
|
3402
|
-
| 'BROKERAGE'
|
|
3403
|
-
| 'CRYPTO_EXCHANGE'
|
|
3404
|
-
| 'PAYMENT'
|
|
3405
|
-
| 'INVESTMENT'
|
|
3406
|
-
| 'INSURANCE'
|
|
3407
|
-
| 'OTHER';
|
|
3408
|
-
/**
|
|
3409
|
-
* Platform logo URL
|
|
3410
|
-
*/
|
|
3411
|
-
logoUrl?: string;
|
|
3412
|
-
/**
|
|
3413
|
-
* Whether the platform is active
|
|
3414
|
-
*/
|
|
3415
|
-
isActive?: boolean;
|
|
3416
|
-
};
|
|
3417
|
-
|
|
3418
3719
|
export type ProviderSyncConfigDto = {
|
|
3419
3720
|
/**
|
|
3420
3721
|
* Source account for the first posting
|
|
@@ -3436,6 +3737,10 @@ export type ProviderSyncConfigDto = {
|
|
|
3436
3737
|
* Filter pending transactions
|
|
3437
3738
|
*/
|
|
3438
3739
|
filterPending?: boolean;
|
|
3740
|
+
/**
|
|
3741
|
+
* External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
|
|
3742
|
+
*/
|
|
3743
|
+
externalAccountId?: string;
|
|
3439
3744
|
};
|
|
3440
3745
|
|
|
3441
3746
|
export type ProviderSyncDto = {
|
|
@@ -3475,20 +3780,75 @@ export type ProviderSyncResponseDto = {
|
|
|
3475
3780
|
*/
|
|
3476
3781
|
failed: number;
|
|
3477
3782
|
/**
|
|
3478
|
-
* IDs of successfully imported transactions
|
|
3783
|
+
* IDs of successfully imported transactions
|
|
3784
|
+
*/
|
|
3785
|
+
importedTransactionIds?: Array<string>;
|
|
3786
|
+
/**
|
|
3787
|
+
* IDs of review items created for branched transactions
|
|
3788
|
+
*/
|
|
3789
|
+
reviewItemIds?: Array<string>;
|
|
3790
|
+
};
|
|
3791
|
+
|
|
3792
|
+
export type SupportedProvidersResponseDto = {
|
|
3793
|
+
/**
|
|
3794
|
+
* List of supported provider names
|
|
3795
|
+
*/
|
|
3796
|
+
providers: Array<string>;
|
|
3797
|
+
};
|
|
3798
|
+
|
|
3799
|
+
export type CreateExternalAccountLinkDto = {
|
|
3800
|
+
/**
|
|
3801
|
+
* Open Banking provider (whitelist)
|
|
3802
|
+
*/
|
|
3803
|
+
provider:
|
|
3804
|
+
| 'plaid'
|
|
3805
|
+
| 'teller'
|
|
3806
|
+
| 'truelayer'
|
|
3807
|
+
| 'gocardless'
|
|
3808
|
+
| 'simplefin'
|
|
3809
|
+
| 'yodlee'
|
|
3810
|
+
| 'beancount-direct'
|
|
3811
|
+
| 'parsed-bill';
|
|
3812
|
+
/**
|
|
3813
|
+
* External account ID from the provider
|
|
3479
3814
|
*/
|
|
3480
|
-
|
|
3815
|
+
externalAccountId: string;
|
|
3481
3816
|
/**
|
|
3482
|
-
*
|
|
3817
|
+
* Target BeanAccount ID (must belong to the JWT user)
|
|
3483
3818
|
*/
|
|
3484
|
-
|
|
3819
|
+
beanAccountId: string;
|
|
3485
3820
|
};
|
|
3486
3821
|
|
|
3487
|
-
|
|
3822
|
+
/**
|
|
3823
|
+
* Open Banking provider (whitelist)
|
|
3824
|
+
*/
|
|
3825
|
+
export type provider =
|
|
3826
|
+
| 'plaid'
|
|
3827
|
+
| 'teller'
|
|
3828
|
+
| 'truelayer'
|
|
3829
|
+
| 'gocardless'
|
|
3830
|
+
| 'simplefin'
|
|
3831
|
+
| 'yodlee'
|
|
3832
|
+
| 'beancount-direct'
|
|
3833
|
+
| 'parsed-bill';
|
|
3834
|
+
|
|
3835
|
+
export type ExternalAccountLinkResponseDto = {
|
|
3836
|
+
id: string;
|
|
3837
|
+
provider: string;
|
|
3838
|
+
externalAccountId: string;
|
|
3839
|
+
beanAccountId: string;
|
|
3840
|
+
isActive: boolean;
|
|
3841
|
+
createdAt: string;
|
|
3842
|
+
updatedAt: string;
|
|
3843
|
+
};
|
|
3844
|
+
|
|
3845
|
+
export type ExternalAccountLinkListResponseDto = {
|
|
3846
|
+
items: Array<ExternalAccountLinkResponseDto>;
|
|
3847
|
+
total: number;
|
|
3488
3848
|
/**
|
|
3489
|
-
*
|
|
3849
|
+
* Filter by provider (query param)
|
|
3490
3850
|
*/
|
|
3491
|
-
|
|
3851
|
+
provider?: string;
|
|
3492
3852
|
};
|
|
3493
3853
|
|
|
3494
3854
|
export type ParserTelemetryReportDto = unknown;
|
|
@@ -4070,15 +4430,134 @@ export type liabilitySubType = 'borrow' | 'repay';
|
|
|
4070
4430
|
*/
|
|
4071
4431
|
export type equitySubType = 'opening' | 'adjustment';
|
|
4072
4432
|
|
|
4073
|
-
export type
|
|
4433
|
+
export type PlatformListItemDto = {
|
|
4074
4434
|
/**
|
|
4075
|
-
*
|
|
4435
|
+
* Global platform ID
|
|
4076
4436
|
*/
|
|
4077
|
-
|
|
4437
|
+
id: string;
|
|
4078
4438
|
/**
|
|
4079
|
-
*
|
|
4439
|
+
* Platform name
|
|
4080
4440
|
*/
|
|
4081
|
-
|
|
4441
|
+
name: string;
|
|
4442
|
+
/**
|
|
4443
|
+
* Platform URL
|
|
4444
|
+
*/
|
|
4445
|
+
url: string;
|
|
4446
|
+
/**
|
|
4447
|
+
* Platform type
|
|
4448
|
+
*/
|
|
4449
|
+
type:
|
|
4450
|
+
| 'BANK'
|
|
4451
|
+
| 'BROKERAGE'
|
|
4452
|
+
| 'CRYPTO_EXCHANGE'
|
|
4453
|
+
| 'PAYMENT'
|
|
4454
|
+
| 'INVESTMENT'
|
|
4455
|
+
| 'INSURANCE'
|
|
4456
|
+
| 'OTHER';
|
|
4457
|
+
/**
|
|
4458
|
+
* Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
|
|
4459
|
+
*/
|
|
4460
|
+
canonical: string;
|
|
4461
|
+
/**
|
|
4462
|
+
* Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
|
|
4463
|
+
*/
|
|
4464
|
+
suggestedSegment: string;
|
|
4465
|
+
/**
|
|
4466
|
+
* Logo URL
|
|
4467
|
+
*/
|
|
4468
|
+
logoUrl: string | null;
|
|
4469
|
+
/**
|
|
4470
|
+
* Whether user has accounts using this platform
|
|
4471
|
+
*/
|
|
4472
|
+
isBound: boolean;
|
|
4473
|
+
};
|
|
4474
|
+
|
|
4475
|
+
/**
|
|
4476
|
+
* Platform type
|
|
4477
|
+
*/
|
|
4478
|
+
export type type3 =
|
|
4479
|
+
| 'BANK'
|
|
4480
|
+
| 'BROKERAGE'
|
|
4481
|
+
| 'CRYPTO_EXCHANGE'
|
|
4482
|
+
| 'PAYMENT'
|
|
4483
|
+
| 'INVESTMENT'
|
|
4484
|
+
| 'INSURANCE'
|
|
4485
|
+
| 'OTHER';
|
|
4486
|
+
|
|
4487
|
+
export type CreatePlatformDto = {
|
|
4488
|
+
/**
|
|
4489
|
+
* Platform name
|
|
4490
|
+
*/
|
|
4491
|
+
name: string;
|
|
4492
|
+
/**
|
|
4493
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4494
|
+
*/
|
|
4495
|
+
canonical: string;
|
|
4496
|
+
/**
|
|
4497
|
+
* Platform aliases (multi-language names for lookup)
|
|
4498
|
+
*/
|
|
4499
|
+
aliases: Array<string>;
|
|
4500
|
+
/**
|
|
4501
|
+
* Platform URL
|
|
4502
|
+
*/
|
|
4503
|
+
url: string;
|
|
4504
|
+
/**
|
|
4505
|
+
* Platform type
|
|
4506
|
+
*/
|
|
4507
|
+
type:
|
|
4508
|
+
| 'BANK'
|
|
4509
|
+
| 'BROKERAGE'
|
|
4510
|
+
| 'CRYPTO_EXCHANGE'
|
|
4511
|
+
| 'PAYMENT'
|
|
4512
|
+
| 'INVESTMENT'
|
|
4513
|
+
| 'INSURANCE'
|
|
4514
|
+
| 'OTHER';
|
|
4515
|
+
/**
|
|
4516
|
+
* Platform logo URL
|
|
4517
|
+
*/
|
|
4518
|
+
logoUrl?: string;
|
|
4519
|
+
/**
|
|
4520
|
+
* Whether the platform is active
|
|
4521
|
+
*/
|
|
4522
|
+
isActive?: boolean;
|
|
4523
|
+
};
|
|
4524
|
+
|
|
4525
|
+
export type UpdatePlatformDto = {
|
|
4526
|
+
/**
|
|
4527
|
+
* Platform name
|
|
4528
|
+
*/
|
|
4529
|
+
name?: string;
|
|
4530
|
+
/**
|
|
4531
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4532
|
+
*/
|
|
4533
|
+
canonical?: string;
|
|
4534
|
+
/**
|
|
4535
|
+
* Platform aliases (multi-language names for lookup)
|
|
4536
|
+
*/
|
|
4537
|
+
aliases?: Array<string>;
|
|
4538
|
+
/**
|
|
4539
|
+
* Platform URL
|
|
4540
|
+
*/
|
|
4541
|
+
url?: string;
|
|
4542
|
+
/**
|
|
4543
|
+
* Platform type
|
|
4544
|
+
*/
|
|
4545
|
+
type?:
|
|
4546
|
+
| 'BANK'
|
|
4547
|
+
| 'BROKERAGE'
|
|
4548
|
+
| 'CRYPTO_EXCHANGE'
|
|
4549
|
+
| 'PAYMENT'
|
|
4550
|
+
| 'INVESTMENT'
|
|
4551
|
+
| 'INSURANCE'
|
|
4552
|
+
| 'OTHER';
|
|
4553
|
+
/**
|
|
4554
|
+
* Platform logo URL
|
|
4555
|
+
*/
|
|
4556
|
+
logoUrl?: string;
|
|
4557
|
+
/**
|
|
4558
|
+
* Whether the platform is active
|
|
4559
|
+
*/
|
|
4560
|
+
isActive?: boolean;
|
|
4082
4561
|
};
|
|
4083
4562
|
|
|
4084
4563
|
export type NetWorthByCurrencyDto = {
|
|
@@ -4121,21 +4600,6 @@ export type ConvertedNetWorthDto = {
|
|
|
4121
4600
|
};
|
|
4122
4601
|
};
|
|
4123
4602
|
|
|
4124
|
-
export type ExchangeRateWarningDto = {
|
|
4125
|
-
/**
|
|
4126
|
-
* Warning type
|
|
4127
|
-
*/
|
|
4128
|
-
type: string;
|
|
4129
|
-
/**
|
|
4130
|
-
* Currency without exchange rate
|
|
4131
|
-
*/
|
|
4132
|
-
currency: string;
|
|
4133
|
-
/**
|
|
4134
|
-
* Total amount affected
|
|
4135
|
-
*/
|
|
4136
|
-
totalAmount: string;
|
|
4137
|
-
};
|
|
4138
|
-
|
|
4139
4603
|
export type NetWorthResponseDto = {
|
|
4140
4604
|
/**
|
|
4141
4605
|
* Total net worth (assets - liabilities, converted to base currency)
|
|
@@ -4200,6 +4664,10 @@ export type AccountItemDto = {
|
|
|
4200
4664
|
* Currency code
|
|
4201
4665
|
*/
|
|
4202
4666
|
currency: string;
|
|
4667
|
+
/**
|
|
4668
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4669
|
+
*/
|
|
4670
|
+
convertedBalance?: string;
|
|
4203
4671
|
};
|
|
4204
4672
|
|
|
4205
4673
|
export type PlatformGroupDto = {
|
|
@@ -4216,9 +4684,40 @@ export type PlatformGroupDto = {
|
|
|
4216
4684
|
*/
|
|
4217
4685
|
accounts: Array<AccountItemDto>;
|
|
4218
4686
|
/**
|
|
4219
|
-
*
|
|
4687
|
+
* FX-converted total balance in base currency
|
|
4220
4688
|
*/
|
|
4221
4689
|
totalBalance: string;
|
|
4690
|
+
/**
|
|
4691
|
+
* Raw (unconverted) balances grouped by currency
|
|
4692
|
+
*/
|
|
4693
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4694
|
+
/**
|
|
4695
|
+
* Converted balance in base currency (omitted when no currency is convertible)
|
|
4696
|
+
*/
|
|
4697
|
+
convertedBalance?: string;
|
|
4698
|
+
/**
|
|
4699
|
+
* Share of the grand converted total (0-100); 0 when grand total is 0
|
|
4700
|
+
*/
|
|
4701
|
+
sharePct: number;
|
|
4702
|
+
};
|
|
4703
|
+
|
|
4704
|
+
export type AccountExchangeRateWarningDto = {
|
|
4705
|
+
/**
|
|
4706
|
+
* Warning type
|
|
4707
|
+
*/
|
|
4708
|
+
type: string;
|
|
4709
|
+
/**
|
|
4710
|
+
* Currency without exchange rate
|
|
4711
|
+
*/
|
|
4712
|
+
currency: string;
|
|
4713
|
+
/**
|
|
4714
|
+
* Affected account paths
|
|
4715
|
+
*/
|
|
4716
|
+
accounts: Array<string>;
|
|
4717
|
+
/**
|
|
4718
|
+
* Total amount in this currency
|
|
4719
|
+
*/
|
|
4720
|
+
totalAmount: string;
|
|
4222
4721
|
};
|
|
4223
4722
|
|
|
4224
4723
|
export type AccountsSummaryDto = {
|
|
@@ -4230,6 +4729,14 @@ export type AccountsSummaryDto = {
|
|
|
4230
4729
|
* Total number of platforms
|
|
4231
4730
|
*/
|
|
4232
4731
|
totalPlatforms: number;
|
|
4732
|
+
/**
|
|
4733
|
+
* Base currency for conversion
|
|
4734
|
+
*/
|
|
4735
|
+
baseCurrency: string;
|
|
4736
|
+
/**
|
|
4737
|
+
* Per-account exchange rate warnings
|
|
4738
|
+
*/
|
|
4739
|
+
warnings?: Array<AccountExchangeRateWarningDto>;
|
|
4233
4740
|
};
|
|
4234
4741
|
|
|
4235
4742
|
export type AccountsResponseDto = {
|
|
@@ -4264,6 +4771,10 @@ export type AccountItemWithAssetClassDto = {
|
|
|
4264
4771
|
* Currency code
|
|
4265
4772
|
*/
|
|
4266
4773
|
currency: string;
|
|
4774
|
+
/**
|
|
4775
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4776
|
+
*/
|
|
4777
|
+
convertedBalance?: string;
|
|
4267
4778
|
/**
|
|
4268
4779
|
* Asset class
|
|
4269
4780
|
*/
|
|
@@ -4345,25 +4856,6 @@ export type assetClass =
|
|
|
4345
4856
|
| 'REAL_ESTATE'
|
|
4346
4857
|
| 'INDEX';
|
|
4347
4858
|
|
|
4348
|
-
export type AccountExchangeRateWarningDto = {
|
|
4349
|
-
/**
|
|
4350
|
-
* Warning type
|
|
4351
|
-
*/
|
|
4352
|
-
type: string;
|
|
4353
|
-
/**
|
|
4354
|
-
* Currency without exchange rate
|
|
4355
|
-
*/
|
|
4356
|
-
currency: string;
|
|
4357
|
-
/**
|
|
4358
|
-
* Affected account paths
|
|
4359
|
-
*/
|
|
4360
|
-
accounts: Array<string>;
|
|
4361
|
-
/**
|
|
4362
|
-
* Total amount in this currency
|
|
4363
|
-
*/
|
|
4364
|
-
totalAmount: string;
|
|
4365
|
-
};
|
|
4366
|
-
|
|
4367
4859
|
export type AssetClassSummaryDto = {
|
|
4368
4860
|
/**
|
|
4369
4861
|
* Total number of accounts
|
|
@@ -4520,11 +5012,68 @@ export type CashFlowResponseDto = {
|
|
|
4520
5012
|
*/
|
|
4521
5013
|
byCurrency?: CashFlowByCurrencyDto;
|
|
4522
5014
|
/**
|
|
4523
|
-
* Converted values in base currency
|
|
5015
|
+
* Converted values in base currency
|
|
5016
|
+
*/
|
|
5017
|
+
converted?: ConvertedCashFlowDto;
|
|
5018
|
+
/**
|
|
5019
|
+
* Exchange rate warnings
|
|
5020
|
+
*/
|
|
5021
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5022
|
+
};
|
|
5023
|
+
|
|
5024
|
+
export type CategoryGroupDto = {
|
|
5025
|
+
/**
|
|
5026
|
+
* Functional category (account-path Group segment); regional and universal account paths merge under it
|
|
5027
|
+
*/
|
|
5028
|
+
category: string;
|
|
5029
|
+
/**
|
|
5030
|
+
* Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
|
|
5031
|
+
*/
|
|
5032
|
+
totalExpense: string;
|
|
5033
|
+
/**
|
|
5034
|
+
* Share of grand total (0-100); 0 when grand total is 0
|
|
5035
|
+
*/
|
|
5036
|
+
sharePct: number;
|
|
5037
|
+
/**
|
|
5038
|
+
* Raw (unconverted) expense per currency
|
|
5039
|
+
*/
|
|
5040
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
5041
|
+
/**
|
|
5042
|
+
* Converted total in base currency (omitted when FX missing for all currencies in this category)
|
|
5043
|
+
*/
|
|
5044
|
+
convertedBalance?: string;
|
|
5045
|
+
};
|
|
5046
|
+
|
|
5047
|
+
export type ExpensesByCategorySummaryDto = {
|
|
5048
|
+
/**
|
|
5049
|
+
* Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
|
|
5050
|
+
*/
|
|
5051
|
+
totalExpense: string;
|
|
5052
|
+
/**
|
|
5053
|
+
* Number of categories
|
|
5054
|
+
*/
|
|
5055
|
+
categoryCount: number;
|
|
5056
|
+
};
|
|
5057
|
+
|
|
5058
|
+
export type ExpensesByCategoryResponseDto = {
|
|
5059
|
+
/**
|
|
5060
|
+
* Period requested
|
|
5061
|
+
*/
|
|
5062
|
+
period: string;
|
|
5063
|
+
/**
|
|
5064
|
+
* Base currency for converted values
|
|
5065
|
+
*/
|
|
5066
|
+
baseCurrency: string;
|
|
5067
|
+
/**
|
|
5068
|
+
* Expense groups by functional category, sorted by converted total desc
|
|
5069
|
+
*/
|
|
5070
|
+
groups: Array<CategoryGroupDto>;
|
|
5071
|
+
/**
|
|
5072
|
+
* Summary statistics
|
|
4524
5073
|
*/
|
|
4525
|
-
|
|
5074
|
+
summary: ExpensesByCategorySummaryDto;
|
|
4526
5075
|
/**
|
|
4527
|
-
* Exchange rate warnings
|
|
5076
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
4528
5077
|
*/
|
|
4529
5078
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4530
5079
|
};
|
|
@@ -4724,108 +5273,6 @@ export type HoldingPnlResponseDto = {
|
|
|
4724
5273
|
*/
|
|
4725
5274
|
export type method = 'average' | 'FIFO';
|
|
4726
5275
|
|
|
4727
|
-
export type CreateBeanPriceDto = {
|
|
4728
|
-
/**
|
|
4729
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4730
|
-
*/
|
|
4731
|
-
currency: string;
|
|
4732
|
-
/**
|
|
4733
|
-
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
4734
|
-
*/
|
|
4735
|
-
quoteCurrency: string;
|
|
4736
|
-
/**
|
|
4737
|
-
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
4738
|
-
*/
|
|
4739
|
-
amount: number;
|
|
4740
|
-
/**
|
|
4741
|
-
* Price date (ISO 8601 format)
|
|
4742
|
-
*/
|
|
4743
|
-
date: string;
|
|
4744
|
-
/**
|
|
4745
|
-
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
4746
|
-
*/
|
|
4747
|
-
metadata?: {
|
|
4748
|
-
[key: string]: unknown;
|
|
4749
|
-
};
|
|
4750
|
-
};
|
|
4751
|
-
|
|
4752
|
-
export type PriceResponseDto = {
|
|
4753
|
-
/**
|
|
4754
|
-
* Unique identifier
|
|
4755
|
-
*/
|
|
4756
|
-
id: string;
|
|
4757
|
-
/**
|
|
4758
|
-
* User ID (owner of the price)
|
|
4759
|
-
*/
|
|
4760
|
-
userId: string;
|
|
4761
|
-
/**
|
|
4762
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4763
|
-
*/
|
|
4764
|
-
currency: string;
|
|
4765
|
-
/**
|
|
4766
|
-
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
4767
|
-
*/
|
|
4768
|
-
quoteCurrency: string;
|
|
4769
|
-
/**
|
|
4770
|
-
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
4771
|
-
*/
|
|
4772
|
-
amount: number;
|
|
4773
|
-
/**
|
|
4774
|
-
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
4775
|
-
*/
|
|
4776
|
-
date: string;
|
|
4777
|
-
/**
|
|
4778
|
-
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
4779
|
-
*/
|
|
4780
|
-
meta: {
|
|
4781
|
-
[key: string]: unknown;
|
|
4782
|
-
};
|
|
4783
|
-
/**
|
|
4784
|
-
* Creation timestamp
|
|
4785
|
-
*/
|
|
4786
|
-
createdAt: string;
|
|
4787
|
-
/**
|
|
4788
|
-
* Last update timestamp
|
|
4789
|
-
*/
|
|
4790
|
-
updatedAt: string;
|
|
4791
|
-
};
|
|
4792
|
-
|
|
4793
|
-
export type PriceListResponseDto = {
|
|
4794
|
-
/**
|
|
4795
|
-
* List of prices
|
|
4796
|
-
*/
|
|
4797
|
-
items: Array<PriceResponseDto>;
|
|
4798
|
-
/**
|
|
4799
|
-
* Total number of prices
|
|
4800
|
-
*/
|
|
4801
|
-
total: number;
|
|
4802
|
-
};
|
|
4803
|
-
|
|
4804
|
-
export type UpdateBeanPriceDto = {
|
|
4805
|
-
/**
|
|
4806
|
-
* Currency being priced
|
|
4807
|
-
*/
|
|
4808
|
-
currency?: string;
|
|
4809
|
-
/**
|
|
4810
|
-
* Quote currency (pricing currency)
|
|
4811
|
-
*/
|
|
4812
|
-
quoteCurrency?: string;
|
|
4813
|
-
/**
|
|
4814
|
-
* Price amount (MUST be >= 0 per Beancount spec)
|
|
4815
|
-
*/
|
|
4816
|
-
amount?: number;
|
|
4817
|
-
/**
|
|
4818
|
-
* Price date (ISO 8601 format)
|
|
4819
|
-
*/
|
|
4820
|
-
date?: string;
|
|
4821
|
-
/**
|
|
4822
|
-
* Metadata
|
|
4823
|
-
*/
|
|
4824
|
-
metadata?: {
|
|
4825
|
-
[key: string]: unknown;
|
|
4826
|
-
};
|
|
4827
|
-
};
|
|
4828
|
-
|
|
4829
5276
|
export type CurrencyBalanceDto = {
|
|
4830
5277
|
/**
|
|
4831
5278
|
* ISO 4217 currency code
|
|
@@ -4852,6 +5299,14 @@ export type TimeSeriesPointDto = {
|
|
|
4852
5299
|
change?: {
|
|
4853
5300
|
[key: string]: unknown;
|
|
4854
5301
|
};
|
|
5302
|
+
/**
|
|
5303
|
+
* Total assets at this date (in base currency)
|
|
5304
|
+
*/
|
|
5305
|
+
assets?: string;
|
|
5306
|
+
/**
|
|
5307
|
+
* Total liabilities at this date (in base currency)
|
|
5308
|
+
*/
|
|
5309
|
+
liabilities?: string;
|
|
4855
5310
|
/**
|
|
4856
5311
|
* Multi-currency breakdown for this point
|
|
4857
5312
|
*/
|
|
@@ -4919,6 +5374,71 @@ export type PortfolioTrendsResponseDto = {
|
|
|
4919
5374
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4920
5375
|
};
|
|
4921
5376
|
|
|
5377
|
+
export type CashFlowPointDto = {
|
|
5378
|
+
/**
|
|
5379
|
+
* Month key (YYYY-MM)
|
|
5380
|
+
*/
|
|
5381
|
+
month: string;
|
|
5382
|
+
/**
|
|
5383
|
+
* Income in base currency (absolute, converted)
|
|
5384
|
+
*/
|
|
5385
|
+
income: string;
|
|
5386
|
+
/**
|
|
5387
|
+
* Expense in base currency (absolute, converted)
|
|
5388
|
+
*/
|
|
5389
|
+
expense: string;
|
|
5390
|
+
/**
|
|
5391
|
+
* netSavings = income − expense (savings positive)
|
|
5392
|
+
*/
|
|
5393
|
+
netSavings: string;
|
|
5394
|
+
};
|
|
5395
|
+
|
|
5396
|
+
export type CashFlowTrendSummaryDto = {
|
|
5397
|
+
/**
|
|
5398
|
+
* Total income across the period
|
|
5399
|
+
*/
|
|
5400
|
+
totalIncome: string;
|
|
5401
|
+
/**
|
|
5402
|
+
* Total expense across the period
|
|
5403
|
+
*/
|
|
5404
|
+
totalExpense: string;
|
|
5405
|
+
/**
|
|
5406
|
+
* income − expense across the period
|
|
5407
|
+
*/
|
|
5408
|
+
totalNetSavings: string;
|
|
5409
|
+
/**
|
|
5410
|
+
* totalNetSavings divided by the window length (N months, incl. zero-filled)
|
|
5411
|
+
*/
|
|
5412
|
+
averageMonthlyNetSavings: string;
|
|
5413
|
+
};
|
|
5414
|
+
|
|
5415
|
+
export type CashFlowTrendsResponseDto = {
|
|
5416
|
+
/**
|
|
5417
|
+
* Monthly cash-flow series (fixed N-month window, zero-filled)
|
|
5418
|
+
*/
|
|
5419
|
+
series: Array<CashFlowPointDto>;
|
|
5420
|
+
/**
|
|
5421
|
+
* Period totals
|
|
5422
|
+
*/
|
|
5423
|
+
summary: CashFlowTrendSummaryDto;
|
|
5424
|
+
/**
|
|
5425
|
+
* Period requested
|
|
5426
|
+
*/
|
|
5427
|
+
period: string;
|
|
5428
|
+
/**
|
|
5429
|
+
* Data granularity (v1 returns month buckets)
|
|
5430
|
+
*/
|
|
5431
|
+
granularity: string;
|
|
5432
|
+
/**
|
|
5433
|
+
* Base currency for converted values
|
|
5434
|
+
*/
|
|
5435
|
+
currency: string;
|
|
5436
|
+
/**
|
|
5437
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
5438
|
+
*/
|
|
5439
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5440
|
+
};
|
|
5441
|
+
|
|
4922
5442
|
export type GenerateSnapshotBody = unknown;
|
|
4923
5443
|
|
|
4924
5444
|
export type GenerateSnapshotResponse = unknown;
|
|
@@ -4962,7 +5482,7 @@ export type AccountControllerFindAllData = {
|
|
|
4962
5482
|
*/
|
|
4963
5483
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
4964
5484
|
/**
|
|
4965
|
-
* Search term for path
|
|
5485
|
+
* Search term for account path
|
|
4966
5486
|
*/
|
|
4967
5487
|
search?: string;
|
|
4968
5488
|
/**
|
|
@@ -5045,6 +5565,21 @@ export type AccountControllerReopenData = {
|
|
|
5045
5565
|
|
|
5046
5566
|
export type AccountControllerReopenResponse = AccountResponseDto;
|
|
5047
5567
|
|
|
5568
|
+
export type AccountControllerAddOpeningBalanceData = {
|
|
5569
|
+
/**
|
|
5570
|
+
* Account UUID
|
|
5571
|
+
*/
|
|
5572
|
+
id: string;
|
|
5573
|
+
/**
|
|
5574
|
+
* Region code for tenant context
|
|
5575
|
+
*/
|
|
5576
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5577
|
+
requestBody: CreateOpeningBalanceDto;
|
|
5578
|
+
};
|
|
5579
|
+
|
|
5580
|
+
export type AccountControllerAddOpeningBalanceResponse =
|
|
5581
|
+
OpeningBalanceResultDto;
|
|
5582
|
+
|
|
5048
5583
|
export type AccountStandardsControllerGetTemplatesData = {
|
|
5049
5584
|
/**
|
|
5050
5585
|
* Region code (cn, us, de)
|
|
@@ -5105,6 +5640,10 @@ export type TransactionControllerListData = {
|
|
|
5105
5640
|
* Filter by account ID (transactions with postings to this account)
|
|
5106
5641
|
*/
|
|
5107
5642
|
accountId?: string;
|
|
5643
|
+
/**
|
|
5644
|
+
* Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
|
|
5645
|
+
*/
|
|
5646
|
+
category?: string;
|
|
5108
5647
|
/**
|
|
5109
5648
|
* Filter by start date (inclusive), format: YYYY-MM-DD
|
|
5110
5649
|
*/
|
|
@@ -5229,7 +5768,7 @@ export type TransactionControllerDeleteResponse = void;
|
|
|
5229
5768
|
|
|
5230
5769
|
export type BalanceControllerGetBalanceData = {
|
|
5231
5770
|
/**
|
|
5232
|
-
* Account name (e.g., "Assets:
|
|
5771
|
+
* Account name (e.g., "Assets:Checking")
|
|
5233
5772
|
*/
|
|
5234
5773
|
account: string;
|
|
5235
5774
|
/**
|
|
@@ -5542,94 +6081,191 @@ export type PayeeProfileAdminControllerUnverifyData = {
|
|
|
5542
6081
|
export type PayeeProfileAdminControllerUnverifyResponse =
|
|
5543
6082
|
PayeeProfileResponseDto;
|
|
5544
6083
|
|
|
5545
|
-
export type CommodityControllerCreateData = {
|
|
6084
|
+
export type CommodityControllerCreateData = {
|
|
6085
|
+
/**
|
|
6086
|
+
* Region code for tenant context
|
|
6087
|
+
*/
|
|
6088
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6089
|
+
requestBody: CreateCommodityDto;
|
|
6090
|
+
};
|
|
6091
|
+
|
|
6092
|
+
export type CommodityControllerCreateResponse = CommodityResponseDto;
|
|
6093
|
+
|
|
6094
|
+
export type CommodityControllerFindAllData = {
|
|
6095
|
+
/**
|
|
6096
|
+
* Region code for tenant context
|
|
6097
|
+
*/
|
|
6098
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6099
|
+
/**
|
|
6100
|
+
* Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
|
|
6101
|
+
*/
|
|
6102
|
+
search?: string;
|
|
6103
|
+
/**
|
|
6104
|
+
* Filter by exact symbol match
|
|
6105
|
+
*/
|
|
6106
|
+
symbol?: string;
|
|
6107
|
+
};
|
|
6108
|
+
|
|
6109
|
+
export type CommodityControllerFindAllResponse = CommodityListResponseDto;
|
|
6110
|
+
|
|
6111
|
+
export type CommodityControllerFindOneData = {
|
|
6112
|
+
/**
|
|
6113
|
+
* Region code for tenant context
|
|
6114
|
+
*/
|
|
6115
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6116
|
+
/**
|
|
6117
|
+
* Commodity symbol
|
|
6118
|
+
*/
|
|
6119
|
+
symbol: string;
|
|
6120
|
+
};
|
|
6121
|
+
|
|
6122
|
+
export type CommodityControllerFindOneResponse = CommodityResponseDto;
|
|
6123
|
+
|
|
6124
|
+
export type CommodityControllerUpdateData = {
|
|
6125
|
+
/**
|
|
6126
|
+
* Region code for tenant context
|
|
6127
|
+
*/
|
|
6128
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6129
|
+
requestBody: UpdateCommodityDto;
|
|
6130
|
+
/**
|
|
6131
|
+
* Commodity symbol
|
|
6132
|
+
*/
|
|
6133
|
+
symbol: string;
|
|
6134
|
+
};
|
|
6135
|
+
|
|
6136
|
+
export type CommodityControllerUpdateResponse = CommodityResponseDto;
|
|
6137
|
+
|
|
6138
|
+
export type CommodityControllerDeleteData = {
|
|
6139
|
+
/**
|
|
6140
|
+
* Region code for tenant context
|
|
6141
|
+
*/
|
|
6142
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6143
|
+
/**
|
|
6144
|
+
* Commodity symbol
|
|
6145
|
+
*/
|
|
6146
|
+
symbol: string;
|
|
6147
|
+
};
|
|
6148
|
+
|
|
6149
|
+
export type CommodityControllerDeleteResponse = void;
|
|
6150
|
+
|
|
6151
|
+
export type CommodityControllerGetOrCreateData = {
|
|
6152
|
+
/**
|
|
6153
|
+
* Region code for tenant context
|
|
6154
|
+
*/
|
|
6155
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6156
|
+
/**
|
|
6157
|
+
* Commodity symbol
|
|
6158
|
+
*/
|
|
6159
|
+
symbol: string;
|
|
6160
|
+
};
|
|
6161
|
+
|
|
6162
|
+
export type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
|
|
6163
|
+
|
|
6164
|
+
export type CommodityControllerBulkCreateData = {
|
|
6165
|
+
/**
|
|
6166
|
+
* Region code for tenant context
|
|
6167
|
+
*/
|
|
6168
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6169
|
+
};
|
|
6170
|
+
|
|
6171
|
+
export type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
|
|
6172
|
+
|
|
6173
|
+
export type PriceControllerCreateData = {
|
|
5546
6174
|
/**
|
|
5547
6175
|
* Region code for tenant context
|
|
5548
6176
|
*/
|
|
5549
6177
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5550
|
-
requestBody:
|
|
6178
|
+
requestBody: CreateBeanPriceDto;
|
|
5551
6179
|
};
|
|
5552
6180
|
|
|
5553
|
-
export type
|
|
6181
|
+
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
5554
6182
|
|
|
5555
|
-
export type
|
|
6183
|
+
export type PriceControllerFindAllData = {
|
|
5556
6184
|
/**
|
|
5557
|
-
*
|
|
6185
|
+
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
5558
6186
|
*/
|
|
5559
|
-
|
|
6187
|
+
currency?: string;
|
|
5560
6188
|
/**
|
|
5561
|
-
*
|
|
6189
|
+
* Filter prices from this date (ISO 8601 format)
|
|
5562
6190
|
*/
|
|
5563
|
-
|
|
6191
|
+
dateFrom?: string;
|
|
5564
6192
|
/**
|
|
5565
|
-
* Filter
|
|
6193
|
+
* Filter prices to this date (ISO 8601 format)
|
|
5566
6194
|
*/
|
|
5567
|
-
|
|
5568
|
-
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
6195
|
+
dateTo?: string;
|
|
6196
|
+
/**
|
|
6197
|
+
* Number of items per page (default: 20, max: 100)
|
|
6198
|
+
*/
|
|
6199
|
+
limit?: number;
|
|
6200
|
+
/**
|
|
6201
|
+
* Page number for pagination (default: 1)
|
|
6202
|
+
*/
|
|
6203
|
+
page?: number;
|
|
6204
|
+
/**
|
|
6205
|
+
* Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
6206
|
+
*/
|
|
6207
|
+
quoteCurrency?: string;
|
|
5573
6208
|
/**
|
|
5574
6209
|
* Region code for tenant context
|
|
5575
6210
|
*/
|
|
5576
6211
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5577
6212
|
/**
|
|
5578
|
-
*
|
|
6213
|
+
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
5579
6214
|
*/
|
|
5580
|
-
|
|
6215
|
+
search?: string;
|
|
5581
6216
|
};
|
|
5582
6217
|
|
|
5583
|
-
export type
|
|
6218
|
+
export type PriceControllerFindAllResponse = PriceListResponseDto;
|
|
5584
6219
|
|
|
5585
|
-
export type
|
|
6220
|
+
export type PriceControllerFindOneData = {
|
|
5586
6221
|
/**
|
|
5587
|
-
*
|
|
6222
|
+
* Price ID
|
|
5588
6223
|
*/
|
|
5589
|
-
|
|
5590
|
-
requestBody: UpdateCommodityDto;
|
|
6224
|
+
id: string;
|
|
5591
6225
|
/**
|
|
5592
|
-
*
|
|
6226
|
+
* Region code for tenant context
|
|
5593
6227
|
*/
|
|
5594
|
-
|
|
6228
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5595
6229
|
};
|
|
5596
6230
|
|
|
5597
|
-
export type
|
|
6231
|
+
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
5598
6232
|
|
|
5599
|
-
export type
|
|
6233
|
+
export type PriceControllerUpdateData = {
|
|
5600
6234
|
/**
|
|
5601
|
-
*
|
|
6235
|
+
* Price ID
|
|
5602
6236
|
*/
|
|
5603
|
-
|
|
6237
|
+
id: string;
|
|
5604
6238
|
/**
|
|
5605
|
-
*
|
|
6239
|
+
* Region code for tenant context
|
|
5606
6240
|
*/
|
|
5607
|
-
|
|
6241
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6242
|
+
requestBody: UpdateBeanPriceDto;
|
|
5608
6243
|
};
|
|
5609
6244
|
|
|
5610
|
-
export type
|
|
6245
|
+
export type PriceControllerUpdateResponse = PriceResponseDto;
|
|
5611
6246
|
|
|
5612
|
-
export type
|
|
6247
|
+
export type PriceControllerDeleteData = {
|
|
5613
6248
|
/**
|
|
5614
|
-
*
|
|
6249
|
+
* Price ID
|
|
5615
6250
|
*/
|
|
5616
|
-
|
|
6251
|
+
id: string;
|
|
5617
6252
|
/**
|
|
5618
|
-
*
|
|
6253
|
+
* Region code for tenant context
|
|
5619
6254
|
*/
|
|
5620
|
-
|
|
6255
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5621
6256
|
};
|
|
5622
6257
|
|
|
5623
|
-
export type
|
|
6258
|
+
export type PriceControllerDeleteResponse = void;
|
|
5624
6259
|
|
|
5625
|
-
export type
|
|
6260
|
+
export type PriceControllerBulkCreateData = {
|
|
5626
6261
|
/**
|
|
5627
6262
|
* Region code for tenant context
|
|
5628
6263
|
*/
|
|
5629
6264
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6265
|
+
requestBody: Array<string>;
|
|
5630
6266
|
};
|
|
5631
6267
|
|
|
5632
|
-
export type
|
|
6268
|
+
export type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
|
|
5633
6269
|
|
|
5634
6270
|
export type RecurringRuleControllerCreateData = {
|
|
5635
6271
|
/**
|
|
@@ -6096,6 +6732,159 @@ export type PropertyControllerDeleteData = {
|
|
|
6096
6732
|
|
|
6097
6733
|
export type PropertyControllerDeleteResponse = void;
|
|
6098
6734
|
|
|
6735
|
+
export type EventControllerCreateData = {
|
|
6736
|
+
/**
|
|
6737
|
+
* Region code for tenant context (decorative for life events)
|
|
6738
|
+
*/
|
|
6739
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6740
|
+
requestBody: CreateBeanEventDto;
|
|
6741
|
+
};
|
|
6742
|
+
|
|
6743
|
+
export type EventControllerCreateResponse = EventResponseDto;
|
|
6744
|
+
|
|
6745
|
+
export type EventControllerFindAllData = {
|
|
6746
|
+
/**
|
|
6747
|
+
* Filter life events from this date (ISO 8601 format)
|
|
6748
|
+
*/
|
|
6749
|
+
from?: string;
|
|
6750
|
+
/**
|
|
6751
|
+
* Number of items per page (default: 20, max: 100)
|
|
6752
|
+
*/
|
|
6753
|
+
limit?: number;
|
|
6754
|
+
/**
|
|
6755
|
+
* Page number for pagination (default: 1)
|
|
6756
|
+
*/
|
|
6757
|
+
page?: number;
|
|
6758
|
+
/**
|
|
6759
|
+
* Search term for description (case-insensitive partial match)
|
|
6760
|
+
*/
|
|
6761
|
+
q?: string;
|
|
6762
|
+
/**
|
|
6763
|
+
* Region code for tenant context (decorative for life events)
|
|
6764
|
+
*/
|
|
6765
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6766
|
+
/**
|
|
6767
|
+
* Filter life events to this date (ISO 8601 format)
|
|
6768
|
+
*/
|
|
6769
|
+
to?: string;
|
|
6770
|
+
/**
|
|
6771
|
+
* Filter by life event type (exact match)
|
|
6772
|
+
*/
|
|
6773
|
+
type?: string;
|
|
6774
|
+
};
|
|
6775
|
+
|
|
6776
|
+
export type EventControllerFindAllResponse = EventListResponseDto;
|
|
6777
|
+
|
|
6778
|
+
export type EventControllerFindOneData = {
|
|
6779
|
+
/**
|
|
6780
|
+
* Life event ID
|
|
6781
|
+
*/
|
|
6782
|
+
id: string;
|
|
6783
|
+
/**
|
|
6784
|
+
* Region code for tenant context (decorative for life events)
|
|
6785
|
+
*/
|
|
6786
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6787
|
+
};
|
|
6788
|
+
|
|
6789
|
+
export type EventControllerFindOneResponse = EventResponseDto;
|
|
6790
|
+
|
|
6791
|
+
export type EventControllerUpdateData = {
|
|
6792
|
+
/**
|
|
6793
|
+
* Life event ID
|
|
6794
|
+
*/
|
|
6795
|
+
id: string;
|
|
6796
|
+
/**
|
|
6797
|
+
* Region code for tenant context (decorative for life events)
|
|
6798
|
+
*/
|
|
6799
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6800
|
+
requestBody: UpdateBeanEventDto;
|
|
6801
|
+
};
|
|
6802
|
+
|
|
6803
|
+
export type EventControllerUpdateResponse = EventResponseDto;
|
|
6804
|
+
|
|
6805
|
+
export type EventControllerDeleteData = {
|
|
6806
|
+
/**
|
|
6807
|
+
* Life event ID
|
|
6808
|
+
*/
|
|
6809
|
+
id: string;
|
|
6810
|
+
/**
|
|
6811
|
+
* Region code for tenant context (decorative for life events)
|
|
6812
|
+
*/
|
|
6813
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6814
|
+
};
|
|
6815
|
+
|
|
6816
|
+
export type EventControllerDeleteResponse = void;
|
|
6817
|
+
|
|
6818
|
+
export type EventControllerGetSliceData = {
|
|
6819
|
+
accountPattern: string;
|
|
6820
|
+
granularity: string;
|
|
6821
|
+
/**
|
|
6822
|
+
* Life event ID
|
|
6823
|
+
*/
|
|
6824
|
+
id: string;
|
|
6825
|
+
/**
|
|
6826
|
+
* Region code for tenant context (decorative for life events)
|
|
6827
|
+
*/
|
|
6828
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6829
|
+
};
|
|
6830
|
+
|
|
6831
|
+
export type EventControllerGetSliceResponse = unknown;
|
|
6832
|
+
|
|
6833
|
+
export type OnboardingControllerBootstrapData = {
|
|
6834
|
+
/**
|
|
6835
|
+
* Region code for tenant context
|
|
6836
|
+
*/
|
|
6837
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6838
|
+
requestBody: OnboardingDto;
|
|
6839
|
+
};
|
|
6840
|
+
|
|
6841
|
+
export type OnboardingControllerBootstrapResponse = unknown;
|
|
6842
|
+
|
|
6843
|
+
export type ReconciliationControllerComputeData = {
|
|
6844
|
+
/**
|
|
6845
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6846
|
+
*/
|
|
6847
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6848
|
+
requestBody: ComputeReconciliationDto;
|
|
6849
|
+
};
|
|
6850
|
+
|
|
6851
|
+
export type ReconciliationControllerComputeResponse =
|
|
6852
|
+
ReconciliationComputeResultDto;
|
|
6853
|
+
|
|
6854
|
+
export type ReconciliationControllerAssertData = {
|
|
6855
|
+
/**
|
|
6856
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6857
|
+
*/
|
|
6858
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6859
|
+
requestBody: AssertReconciliationDto;
|
|
6860
|
+
};
|
|
6861
|
+
|
|
6862
|
+
export type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
|
|
6863
|
+
|
|
6864
|
+
export type ReconciliationControllerPadData = {
|
|
6865
|
+
/**
|
|
6866
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6867
|
+
*/
|
|
6868
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6869
|
+
requestBody: PadReconciliationDto;
|
|
6870
|
+
};
|
|
6871
|
+
|
|
6872
|
+
export type ReconciliationControllerPadResponse = PadResultDto;
|
|
6873
|
+
|
|
6874
|
+
export type ReconciliationControllerHistoryData = {
|
|
6875
|
+
/**
|
|
6876
|
+
* BeanAccount id
|
|
6877
|
+
*/
|
|
6878
|
+
accountId: string;
|
|
6879
|
+
/**
|
|
6880
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6881
|
+
*/
|
|
6882
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6883
|
+
};
|
|
6884
|
+
|
|
6885
|
+
export type ReconciliationControllerHistoryResponse =
|
|
6886
|
+
Array<ReconciliationRecordDto>;
|
|
6887
|
+
|
|
6099
6888
|
export type ExportControllerExportBeancountResponse = unknown;
|
|
6100
6889
|
|
|
6101
6890
|
export type FileImportControllerImportFileData = {
|
|
@@ -6188,48 +6977,6 @@ export type ImporterConfigControllerResetConfigData = {
|
|
|
6188
6977
|
|
|
6189
6978
|
export type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
|
|
6190
6979
|
|
|
6191
|
-
export type PlatformControllerFindAllResponse = unknown;
|
|
6192
|
-
|
|
6193
|
-
export type PlatformControllerCreateData = {
|
|
6194
|
-
requestBody: CreatePlatformDto;
|
|
6195
|
-
};
|
|
6196
|
-
|
|
6197
|
-
export type PlatformControllerCreateResponse = unknown;
|
|
6198
|
-
|
|
6199
|
-
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
6200
|
-
|
|
6201
|
-
export type PlatformControllerMatchPlatformsData = {
|
|
6202
|
-
/**
|
|
6203
|
-
* Search query — Chinese name, English name, or abbreviation
|
|
6204
|
-
*/
|
|
6205
|
-
q: string;
|
|
6206
|
-
/**
|
|
6207
|
-
* Region code for category override lookup
|
|
6208
|
-
*/
|
|
6209
|
-
region?: string;
|
|
6210
|
-
};
|
|
6211
|
-
|
|
6212
|
-
export type PlatformControllerMatchPlatformsResponse = unknown;
|
|
6213
|
-
|
|
6214
|
-
export type PlatformControllerUpdateData = {
|
|
6215
|
-
/**
|
|
6216
|
-
* Platform ID
|
|
6217
|
-
*/
|
|
6218
|
-
id: string;
|
|
6219
|
-
requestBody: UpdatePlatformDto;
|
|
6220
|
-
};
|
|
6221
|
-
|
|
6222
|
-
export type PlatformControllerUpdateResponse = unknown;
|
|
6223
|
-
|
|
6224
|
-
export type PlatformControllerDeleteData = {
|
|
6225
|
-
/**
|
|
6226
|
-
* Platform ID
|
|
6227
|
-
*/
|
|
6228
|
-
id: string;
|
|
6229
|
-
};
|
|
6230
|
-
|
|
6231
|
-
export type PlatformControllerDeleteResponse = void;
|
|
6232
|
-
|
|
6233
6980
|
export type ProviderSyncControllerSyncData = {
|
|
6234
6981
|
/**
|
|
6235
6982
|
* Provider name
|
|
@@ -6273,7 +7020,50 @@ export type ProviderSyncControllerIsProviderSupportedData = {
|
|
|
6273
7020
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6274
7021
|
};
|
|
6275
7022
|
|
|
6276
|
-
export type ProviderSyncControllerIsProviderSupportedResponse = unknown;
|
|
7023
|
+
export type ProviderSyncControllerIsProviderSupportedResponse = unknown;
|
|
7024
|
+
|
|
7025
|
+
export type ExternalAccountLinkControllerCreateData = {
|
|
7026
|
+
/**
|
|
7027
|
+
* Region code for tenant context
|
|
7028
|
+
*/
|
|
7029
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7030
|
+
requestBody: CreateExternalAccountLinkDto;
|
|
7031
|
+
};
|
|
7032
|
+
|
|
7033
|
+
export type ExternalAccountLinkControllerCreateResponse =
|
|
7034
|
+
ExternalAccountLinkResponseDto;
|
|
7035
|
+
|
|
7036
|
+
export type ExternalAccountLinkControllerFindAllData = {
|
|
7037
|
+
provider: string;
|
|
7038
|
+
/**
|
|
7039
|
+
* Region code for tenant context
|
|
7040
|
+
*/
|
|
7041
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7042
|
+
};
|
|
7043
|
+
|
|
7044
|
+
export type ExternalAccountLinkControllerFindAllResponse =
|
|
7045
|
+
ExternalAccountLinkListResponseDto;
|
|
7046
|
+
|
|
7047
|
+
export type ExternalAccountLinkControllerFindOneData = {
|
|
7048
|
+
id: string;
|
|
7049
|
+
/**
|
|
7050
|
+
* Region code for tenant context
|
|
7051
|
+
*/
|
|
7052
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7053
|
+
};
|
|
7054
|
+
|
|
7055
|
+
export type ExternalAccountLinkControllerFindOneResponse =
|
|
7056
|
+
ExternalAccountLinkResponseDto;
|
|
7057
|
+
|
|
7058
|
+
export type ExternalAccountLinkControllerRemoveData = {
|
|
7059
|
+
id: string;
|
|
7060
|
+
/**
|
|
7061
|
+
* Region code for tenant context
|
|
7062
|
+
*/
|
|
7063
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7064
|
+
};
|
|
7065
|
+
|
|
7066
|
+
export type ExternalAccountLinkControllerRemoveResponse = void;
|
|
6277
7067
|
|
|
6278
7068
|
export type TelemetryControllerReportTelemetryData = {
|
|
6279
7069
|
/**
|
|
@@ -6347,6 +7137,49 @@ export type NlpControllerGetSessionData = {
|
|
|
6347
7137
|
|
|
6348
7138
|
export type NlpControllerGetSessionResponse = unknown;
|
|
6349
7139
|
|
|
7140
|
+
export type PlatformControllerFindAllResponse = unknown;
|
|
7141
|
+
|
|
7142
|
+
export type PlatformControllerCreateData = {
|
|
7143
|
+
requestBody: CreatePlatformDto;
|
|
7144
|
+
};
|
|
7145
|
+
|
|
7146
|
+
export type PlatformControllerCreateResponse = unknown;
|
|
7147
|
+
|
|
7148
|
+
export type PlatformControllerGetPlatformListResponse =
|
|
7149
|
+
Array<PlatformListItemDto>;
|
|
7150
|
+
|
|
7151
|
+
export type PlatformControllerMatchPlatformsData = {
|
|
7152
|
+
/**
|
|
7153
|
+
* Search query — Chinese name, English name, or abbreviation
|
|
7154
|
+
*/
|
|
7155
|
+
q: string;
|
|
7156
|
+
/**
|
|
7157
|
+
* Region code for category override lookup
|
|
7158
|
+
*/
|
|
7159
|
+
region?: string;
|
|
7160
|
+
};
|
|
7161
|
+
|
|
7162
|
+
export type PlatformControllerMatchPlatformsResponse = unknown;
|
|
7163
|
+
|
|
7164
|
+
export type PlatformControllerUpdateData = {
|
|
7165
|
+
/**
|
|
7166
|
+
* Platform ID
|
|
7167
|
+
*/
|
|
7168
|
+
id: string;
|
|
7169
|
+
requestBody: UpdatePlatformDto;
|
|
7170
|
+
};
|
|
7171
|
+
|
|
7172
|
+
export type PlatformControllerUpdateResponse = unknown;
|
|
7173
|
+
|
|
7174
|
+
export type PlatformControllerDeleteData = {
|
|
7175
|
+
/**
|
|
7176
|
+
* Platform ID
|
|
7177
|
+
*/
|
|
7178
|
+
id: string;
|
|
7179
|
+
};
|
|
7180
|
+
|
|
7181
|
+
export type PlatformControllerDeleteResponse = void;
|
|
7182
|
+
|
|
6350
7183
|
export type DashboardControllerGetNetWorthData = {
|
|
6351
7184
|
/**
|
|
6352
7185
|
* Date for balance calculation (ISO 8601 format)
|
|
@@ -6401,127 +7234,70 @@ export type DashboardControllerGetCashFlowData = {
|
|
|
6401
7234
|
|
|
6402
7235
|
export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
|
|
6403
7236
|
|
|
6404
|
-
export type
|
|
6405
|
-
/**
|
|
6406
|
-
* Scope to a single account
|
|
6407
|
-
*/
|
|
6408
|
-
accountId?: string;
|
|
6409
|
-
/**
|
|
6410
|
-
* As-of date (ISO 8601), defaults to today
|
|
6411
|
-
*/
|
|
6412
|
-
asOf?: string;
|
|
6413
|
-
/**
|
|
6414
|
-
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6415
|
-
*/
|
|
6416
|
-
method?: 'FIFO' | 'average';
|
|
6417
|
-
/**
|
|
6418
|
-
* Region code for tenant context
|
|
6419
|
-
*/
|
|
6420
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6421
|
-
};
|
|
6422
|
-
|
|
6423
|
-
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6424
|
-
|
|
6425
|
-
export type PriceControllerCreateData = {
|
|
6426
|
-
/**
|
|
6427
|
-
* Region code for tenant context
|
|
6428
|
-
*/
|
|
6429
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6430
|
-
requestBody: CreateBeanPriceDto;
|
|
6431
|
-
};
|
|
6432
|
-
|
|
6433
|
-
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
6434
|
-
|
|
6435
|
-
export type PriceControllerFindAllData = {
|
|
6436
|
-
/**
|
|
6437
|
-
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
6438
|
-
*/
|
|
6439
|
-
currency?: string;
|
|
6440
|
-
/**
|
|
6441
|
-
* Filter prices from this date (ISO 8601 format)
|
|
6442
|
-
*/
|
|
6443
|
-
dateFrom?: string;
|
|
6444
|
-
/**
|
|
6445
|
-
* Filter prices to this date (ISO 8601 format)
|
|
6446
|
-
*/
|
|
6447
|
-
dateTo?: string;
|
|
7237
|
+
export type DashboardControllerGetExpensesData = {
|
|
6448
7238
|
/**
|
|
6449
|
-
*
|
|
7239
|
+
* Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
6450
7240
|
*/
|
|
6451
|
-
|
|
7241
|
+
flow?: 'expense' | 'income';
|
|
6452
7242
|
/**
|
|
6453
|
-
*
|
|
7243
|
+
* Grouping strategy
|
|
6454
7244
|
*/
|
|
6455
|
-
|
|
7245
|
+
groupBy?: 'category';
|
|
6456
7246
|
/**
|
|
6457
|
-
*
|
|
7247
|
+
* Time window (1m = current calendar month)
|
|
6458
7248
|
*/
|
|
6459
|
-
|
|
7249
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6460
7250
|
/**
|
|
6461
7251
|
* Region code for tenant context
|
|
6462
7252
|
*/
|
|
6463
7253
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6464
|
-
/**
|
|
6465
|
-
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
6466
|
-
*/
|
|
6467
|
-
search?: string;
|
|
6468
7254
|
};
|
|
6469
7255
|
|
|
6470
|
-
export type
|
|
7256
|
+
export type DashboardControllerGetExpensesResponse =
|
|
7257
|
+
ExpensesByCategoryResponseDto;
|
|
6471
7258
|
|
|
6472
|
-
export type
|
|
7259
|
+
export type HoldingPnlControllerGetHoldingPnlData = {
|
|
6473
7260
|
/**
|
|
6474
|
-
*
|
|
7261
|
+
* Scope to a single account
|
|
6475
7262
|
*/
|
|
6476
|
-
|
|
7263
|
+
accountId?: string;
|
|
6477
7264
|
/**
|
|
6478
|
-
*
|
|
7265
|
+
* As-of date (ISO 8601), defaults to today
|
|
6479
7266
|
*/
|
|
6480
|
-
|
|
6481
|
-
};
|
|
6482
|
-
|
|
6483
|
-
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
6484
|
-
|
|
6485
|
-
export type PriceControllerUpdateData = {
|
|
7267
|
+
asOf?: string;
|
|
6486
7268
|
/**
|
|
6487
|
-
*
|
|
7269
|
+
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6488
7270
|
*/
|
|
6489
|
-
|
|
7271
|
+
method?: 'FIFO' | 'average';
|
|
6490
7272
|
/**
|
|
6491
7273
|
* Region code for tenant context
|
|
6492
7274
|
*/
|
|
6493
7275
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6494
|
-
requestBody: UpdateBeanPriceDto;
|
|
6495
7276
|
};
|
|
6496
7277
|
|
|
6497
|
-
export type
|
|
7278
|
+
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6498
7279
|
|
|
6499
|
-
export type
|
|
7280
|
+
export type ReportingControllerGetPortfolioTrendsData = {
|
|
6500
7281
|
/**
|
|
6501
|
-
*
|
|
7282
|
+
* Data granularity
|
|
6502
7283
|
*/
|
|
6503
|
-
|
|
7284
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6504
7285
|
/**
|
|
6505
|
-
*
|
|
7286
|
+
* Time period
|
|
6506
7287
|
*/
|
|
6507
|
-
|
|
6508
|
-
};
|
|
6509
|
-
|
|
6510
|
-
export type PriceControllerDeleteResponse = void;
|
|
6511
|
-
|
|
6512
|
-
export type PriceControllerBulkCreateData = {
|
|
7288
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6513
7289
|
/**
|
|
6514
7290
|
* Region code for tenant context
|
|
6515
7291
|
*/
|
|
6516
7292
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6517
|
-
requestBody: Array<string>;
|
|
6518
7293
|
};
|
|
6519
7294
|
|
|
6520
|
-
export type
|
|
7295
|
+
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
7296
|
+
PortfolioTrendsResponseDto;
|
|
6521
7297
|
|
|
6522
|
-
export type
|
|
7298
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6523
7299
|
/**
|
|
6524
|
-
* Data granularity
|
|
7300
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6525
7301
|
*/
|
|
6526
7302
|
granularity?: 'day' | 'week' | 'month';
|
|
6527
7303
|
/**
|
|
@@ -6534,8 +7310,8 @@ export type ReportingControllerGetPortfolioTrendsData = {
|
|
|
6534
7310
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6535
7311
|
};
|
|
6536
7312
|
|
|
6537
|
-
export type
|
|
6538
|
-
|
|
7313
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
7314
|
+
CashFlowTrendsResponseDto;
|
|
6539
7315
|
|
|
6540
7316
|
export type ReportingControllerGenerateSnapshotData = {
|
|
6541
7317
|
/**
|
|
@@ -6716,6 +7492,25 @@ export type $OpenApiTs = {
|
|
|
6716
7492
|
};
|
|
6717
7493
|
};
|
|
6718
7494
|
};
|
|
7495
|
+
'/api/v1/{region}/bean/accounts/{id}/opening-balance': {
|
|
7496
|
+
post: {
|
|
7497
|
+
req: AccountControllerAddOpeningBalanceData;
|
|
7498
|
+
res: {
|
|
7499
|
+
/**
|
|
7500
|
+
* Opening-balance transaction created
|
|
7501
|
+
*/
|
|
7502
|
+
201: OpeningBalanceResultDto;
|
|
7503
|
+
/**
|
|
7504
|
+
* Account not found
|
|
7505
|
+
*/
|
|
7506
|
+
404: unknown;
|
|
7507
|
+
/**
|
|
7508
|
+
* An opening balance already exists for this account
|
|
7509
|
+
*/
|
|
7510
|
+
409: unknown;
|
|
7511
|
+
};
|
|
7512
|
+
};
|
|
7513
|
+
};
|
|
6719
7514
|
'/api/v1/{region}/bean/account-standards': {
|
|
6720
7515
|
get: {
|
|
6721
7516
|
req: AccountStandardsControllerGetTemplatesData;
|
|
@@ -7262,65 +8057,149 @@ export type $OpenApiTs = {
|
|
|
7262
8057
|
req: CommodityControllerFindOneData;
|
|
7263
8058
|
res: {
|
|
7264
8059
|
/**
|
|
7265
|
-
* Commodity retrieved successfully
|
|
8060
|
+
* Commodity retrieved successfully
|
|
8061
|
+
*/
|
|
8062
|
+
200: CommodityResponseDto;
|
|
8063
|
+
/**
|
|
8064
|
+
* Commodity not found
|
|
8065
|
+
*/
|
|
8066
|
+
404: ApiProblemResponseDto;
|
|
8067
|
+
};
|
|
8068
|
+
};
|
|
8069
|
+
put: {
|
|
8070
|
+
req: CommodityControllerUpdateData;
|
|
8071
|
+
res: {
|
|
8072
|
+
/**
|
|
8073
|
+
* Commodity updated successfully
|
|
8074
|
+
*/
|
|
8075
|
+
200: CommodityResponseDto;
|
|
8076
|
+
/**
|
|
8077
|
+
* Invalid input data
|
|
8078
|
+
*/
|
|
8079
|
+
400: ApiProblemResponseDto;
|
|
8080
|
+
/**
|
|
8081
|
+
* Commodity not found
|
|
8082
|
+
*/
|
|
8083
|
+
404: ApiProblemResponseDto;
|
|
8084
|
+
};
|
|
8085
|
+
};
|
|
8086
|
+
delete: {
|
|
8087
|
+
req: CommodityControllerDeleteData;
|
|
8088
|
+
res: {
|
|
8089
|
+
/**
|
|
8090
|
+
* Commodity deleted successfully
|
|
8091
|
+
*/
|
|
8092
|
+
204: void;
|
|
8093
|
+
/**
|
|
8094
|
+
* Commodity not found
|
|
8095
|
+
*/
|
|
8096
|
+
404: ApiProblemResponseDto;
|
|
8097
|
+
};
|
|
8098
|
+
};
|
|
8099
|
+
};
|
|
8100
|
+
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
8101
|
+
post: {
|
|
8102
|
+
req: CommodityControllerGetOrCreateData;
|
|
8103
|
+
res: {
|
|
8104
|
+
/**
|
|
8105
|
+
* Commodity retrieved or created
|
|
8106
|
+
*/
|
|
8107
|
+
200: CommodityResponseDto;
|
|
8108
|
+
};
|
|
8109
|
+
};
|
|
8110
|
+
};
|
|
8111
|
+
'/api/v1/{region}/bean/commodities/bulk': {
|
|
8112
|
+
post: {
|
|
8113
|
+
req: CommodityControllerBulkCreateData;
|
|
8114
|
+
res: {
|
|
8115
|
+
/**
|
|
8116
|
+
* Commodities created successfully
|
|
8117
|
+
*/
|
|
8118
|
+
201: Array<CommodityResponseDto>;
|
|
8119
|
+
};
|
|
8120
|
+
};
|
|
8121
|
+
};
|
|
8122
|
+
'/api/v1/{region}/bean/prices': {
|
|
8123
|
+
post: {
|
|
8124
|
+
req: PriceControllerCreateData;
|
|
8125
|
+
res: {
|
|
8126
|
+
/**
|
|
8127
|
+
* Price created successfully
|
|
8128
|
+
*/
|
|
8129
|
+
201: PriceResponseDto;
|
|
8130
|
+
/**
|
|
8131
|
+
* Currency or quoteCurrency commodity not found
|
|
8132
|
+
*/
|
|
8133
|
+
404: unknown;
|
|
8134
|
+
/**
|
|
8135
|
+
* Price already exists for this currency pair and date
|
|
8136
|
+
*/
|
|
8137
|
+
409: unknown;
|
|
8138
|
+
};
|
|
8139
|
+
};
|
|
8140
|
+
get: {
|
|
8141
|
+
req: PriceControllerFindAllData;
|
|
8142
|
+
res: {
|
|
8143
|
+
/**
|
|
8144
|
+
* Prices retrieved successfully
|
|
8145
|
+
*/
|
|
8146
|
+
200: PriceListResponseDto;
|
|
8147
|
+
};
|
|
8148
|
+
};
|
|
8149
|
+
};
|
|
8150
|
+
'/api/v1/{region}/bean/prices/{id}': {
|
|
8151
|
+
get: {
|
|
8152
|
+
req: PriceControllerFindOneData;
|
|
8153
|
+
res: {
|
|
8154
|
+
/**
|
|
8155
|
+
* Price retrieved successfully
|
|
7266
8156
|
*/
|
|
7267
|
-
200:
|
|
8157
|
+
200: PriceResponseDto;
|
|
7268
8158
|
/**
|
|
7269
|
-
*
|
|
8159
|
+
* Price not found
|
|
7270
8160
|
*/
|
|
7271
|
-
404:
|
|
8161
|
+
404: unknown;
|
|
7272
8162
|
};
|
|
7273
8163
|
};
|
|
7274
8164
|
put: {
|
|
7275
|
-
req:
|
|
8165
|
+
req: PriceControllerUpdateData;
|
|
7276
8166
|
res: {
|
|
7277
8167
|
/**
|
|
7278
|
-
*
|
|
8168
|
+
* Price updated successfully
|
|
7279
8169
|
*/
|
|
7280
|
-
200:
|
|
8170
|
+
200: PriceResponseDto;
|
|
7281
8171
|
/**
|
|
7282
|
-
*
|
|
8172
|
+
* Price not found
|
|
7283
8173
|
*/
|
|
7284
|
-
|
|
8174
|
+
404: unknown;
|
|
7285
8175
|
/**
|
|
7286
|
-
*
|
|
8176
|
+
* Updated price conflicts with existing price
|
|
7287
8177
|
*/
|
|
7288
|
-
|
|
8178
|
+
409: unknown;
|
|
7289
8179
|
};
|
|
7290
8180
|
};
|
|
7291
8181
|
delete: {
|
|
7292
|
-
req:
|
|
8182
|
+
req: PriceControllerDeleteData;
|
|
7293
8183
|
res: {
|
|
7294
8184
|
/**
|
|
7295
|
-
*
|
|
8185
|
+
* Price deleted successfully
|
|
7296
8186
|
*/
|
|
7297
8187
|
204: void;
|
|
7298
8188
|
/**
|
|
7299
|
-
*
|
|
7300
|
-
*/
|
|
7301
|
-
404: ApiProblemResponseDto;
|
|
7302
|
-
};
|
|
7303
|
-
};
|
|
7304
|
-
};
|
|
7305
|
-
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
7306
|
-
post: {
|
|
7307
|
-
req: CommodityControllerGetOrCreateData;
|
|
7308
|
-
res: {
|
|
7309
|
-
/**
|
|
7310
|
-
* Commodity retrieved or created
|
|
8189
|
+
* Price not found
|
|
7311
8190
|
*/
|
|
7312
|
-
|
|
8191
|
+
404: unknown;
|
|
7313
8192
|
};
|
|
7314
8193
|
};
|
|
7315
8194
|
};
|
|
7316
|
-
'/api/v1/{region}/bean/
|
|
8195
|
+
'/api/v1/{region}/bean/prices/bulk': {
|
|
7317
8196
|
post: {
|
|
7318
|
-
req:
|
|
8197
|
+
req: PriceControllerBulkCreateData;
|
|
7319
8198
|
res: {
|
|
7320
8199
|
/**
|
|
7321
|
-
*
|
|
8200
|
+
* Prices created successfully
|
|
7322
8201
|
*/
|
|
7323
|
-
201: Array<
|
|
8202
|
+
201: Array<PriceResponseDto>;
|
|
7324
8203
|
};
|
|
7325
8204
|
};
|
|
7326
8205
|
};
|
|
@@ -7968,6 +8847,181 @@ export type $OpenApiTs = {
|
|
|
7968
8847
|
};
|
|
7969
8848
|
};
|
|
7970
8849
|
};
|
|
8850
|
+
'/api/v1/{region}/bean/events': {
|
|
8851
|
+
post: {
|
|
8852
|
+
req: EventControllerCreateData;
|
|
8853
|
+
res: {
|
|
8854
|
+
/**
|
|
8855
|
+
* Life event created successfully
|
|
8856
|
+
*/
|
|
8857
|
+
201: EventResponseDto;
|
|
8858
|
+
/**
|
|
8859
|
+
* Life event already exists for this (userId, type, date) combination
|
|
8860
|
+
*/
|
|
8861
|
+
409: unknown;
|
|
8862
|
+
};
|
|
8863
|
+
};
|
|
8864
|
+
get: {
|
|
8865
|
+
req: EventControllerFindAllData;
|
|
8866
|
+
res: {
|
|
8867
|
+
/**
|
|
8868
|
+
* Life events retrieved successfully
|
|
8869
|
+
*/
|
|
8870
|
+
200: EventListResponseDto;
|
|
8871
|
+
};
|
|
8872
|
+
};
|
|
8873
|
+
};
|
|
8874
|
+
'/api/v1/{region}/bean/events/{id}': {
|
|
8875
|
+
get: {
|
|
8876
|
+
req: EventControllerFindOneData;
|
|
8877
|
+
res: {
|
|
8878
|
+
/**
|
|
8879
|
+
* Life event retrieved successfully
|
|
8880
|
+
*/
|
|
8881
|
+
200: EventResponseDto;
|
|
8882
|
+
/**
|
|
8883
|
+
* Life event not found
|
|
8884
|
+
*/
|
|
8885
|
+
404: unknown;
|
|
8886
|
+
};
|
|
8887
|
+
};
|
|
8888
|
+
put: {
|
|
8889
|
+
req: EventControllerUpdateData;
|
|
8890
|
+
res: {
|
|
8891
|
+
/**
|
|
8892
|
+
* Life event updated successfully
|
|
8893
|
+
*/
|
|
8894
|
+
200: EventResponseDto;
|
|
8895
|
+
/**
|
|
8896
|
+
* If-Match header is not a valid ISO 8601 date
|
|
8897
|
+
*/
|
|
8898
|
+
400: unknown;
|
|
8899
|
+
/**
|
|
8900
|
+
* Life event not found
|
|
8901
|
+
*/
|
|
8902
|
+
404: unknown;
|
|
8903
|
+
/**
|
|
8904
|
+
* Updated event conflicts with an existing (userId, type, date) combination
|
|
8905
|
+
*/
|
|
8906
|
+
409: unknown;
|
|
8907
|
+
/**
|
|
8908
|
+
* If-Match precondition failed (updatedAt mismatch)
|
|
8909
|
+
*/
|
|
8910
|
+
412: unknown;
|
|
8911
|
+
};
|
|
8912
|
+
};
|
|
8913
|
+
delete: {
|
|
8914
|
+
req: EventControllerDeleteData;
|
|
8915
|
+
res: {
|
|
8916
|
+
/**
|
|
8917
|
+
* Life event deleted successfully
|
|
8918
|
+
*/
|
|
8919
|
+
204: void;
|
|
8920
|
+
/**
|
|
8921
|
+
* Life event not found
|
|
8922
|
+
*/
|
|
8923
|
+
404: unknown;
|
|
8924
|
+
};
|
|
8925
|
+
};
|
|
8926
|
+
};
|
|
8927
|
+
'/api/v1/{region}/bean/events/{id}/slice': {
|
|
8928
|
+
get: {
|
|
8929
|
+
req: EventControllerGetSliceData;
|
|
8930
|
+
res: {
|
|
8931
|
+
/**
|
|
8932
|
+
* Time-series sliced by the life event range
|
|
8933
|
+
*/
|
|
8934
|
+
200: unknown;
|
|
8935
|
+
/**
|
|
8936
|
+
* accountPattern query param is empty
|
|
8937
|
+
*/
|
|
8938
|
+
400: unknown;
|
|
8939
|
+
/**
|
|
8940
|
+
* Life event not found
|
|
8941
|
+
*/
|
|
8942
|
+
404: unknown;
|
|
8943
|
+
};
|
|
8944
|
+
};
|
|
8945
|
+
};
|
|
8946
|
+
'/api/v1/{region}/bean/onboarding': {
|
|
8947
|
+
post: {
|
|
8948
|
+
req: OnboardingControllerBootstrapData;
|
|
8949
|
+
res: {
|
|
8950
|
+
/**
|
|
8951
|
+
* Onboarding bootstrap result.
|
|
8952
|
+
*/
|
|
8953
|
+
201: unknown;
|
|
8954
|
+
/**
|
|
8955
|
+
* Invalid region/account path/duplicate paths.
|
|
8956
|
+
*/
|
|
8957
|
+
422: unknown;
|
|
8958
|
+
};
|
|
8959
|
+
};
|
|
8960
|
+
};
|
|
8961
|
+
'/api/v1/{region}/bean/reconciliations': {
|
|
8962
|
+
post: {
|
|
8963
|
+
req: ReconciliationControllerComputeData;
|
|
8964
|
+
res: {
|
|
8965
|
+
/**
|
|
8966
|
+
* Reconciliation preview
|
|
8967
|
+
*/
|
|
8968
|
+
200: ReconciliationComputeResultDto;
|
|
8969
|
+
/**
|
|
8970
|
+
* Account not found
|
|
8971
|
+
*/
|
|
8972
|
+
404: unknown;
|
|
8973
|
+
};
|
|
8974
|
+
};
|
|
8975
|
+
};
|
|
8976
|
+
'/api/v1/{region}/bean/reconciliations/assert': {
|
|
8977
|
+
post: {
|
|
8978
|
+
req: ReconciliationControllerAssertData;
|
|
8979
|
+
res: {
|
|
8980
|
+
/**
|
|
8981
|
+
* Balance assertion recorded
|
|
8982
|
+
*/
|
|
8983
|
+
201: ReconciliationRecordDto;
|
|
8984
|
+
/**
|
|
8985
|
+
* Account not found
|
|
8986
|
+
*/
|
|
8987
|
+
404: unknown;
|
|
8988
|
+
};
|
|
8989
|
+
};
|
|
8990
|
+
};
|
|
8991
|
+
'/api/v1/{region}/bean/reconciliations/pad': {
|
|
8992
|
+
post: {
|
|
8993
|
+
req: ReconciliationControllerPadData;
|
|
8994
|
+
res: {
|
|
8995
|
+
/**
|
|
8996
|
+
* Pad adjusting entry generated
|
|
8997
|
+
*/
|
|
8998
|
+
201: PadResultDto;
|
|
8999
|
+
/**
|
|
9000
|
+
* Book already within tolerance — no pad needed
|
|
9001
|
+
*/
|
|
9002
|
+
400: unknown;
|
|
9003
|
+
/**
|
|
9004
|
+
* Account not found
|
|
9005
|
+
*/
|
|
9006
|
+
404: unknown;
|
|
9007
|
+
};
|
|
9008
|
+
};
|
|
9009
|
+
};
|
|
9010
|
+
'/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
|
|
9011
|
+
get: {
|
|
9012
|
+
req: ReconciliationControllerHistoryData;
|
|
9013
|
+
res: {
|
|
9014
|
+
/**
|
|
9015
|
+
* Reconciliation history
|
|
9016
|
+
*/
|
|
9017
|
+
200: Array<ReconciliationRecordDto>;
|
|
9018
|
+
/**
|
|
9019
|
+
* Account not found
|
|
9020
|
+
*/
|
|
9021
|
+
404: unknown;
|
|
9022
|
+
};
|
|
9023
|
+
};
|
|
9024
|
+
};
|
|
7971
9025
|
'/api/v1/{region}/bean/export/beancount': {
|
|
7972
9026
|
get: {
|
|
7973
9027
|
res: {
|
|
@@ -8051,142 +9105,70 @@ export type $OpenApiTs = {
|
|
|
8051
9105
|
/**
|
|
8052
9106
|
* Beancount file imported successfully
|
|
8053
9107
|
*/
|
|
8054
|
-
200: {
|
|
8055
|
-
imported?: number;
|
|
8056
|
-
skipped?: number;
|
|
8057
|
-
failed?: number;
|
|
8058
|
-
accountsCreated?: number;
|
|
8059
|
-
errors?: Array<{
|
|
8060
|
-
[key: string]: unknown;
|
|
8061
|
-
}>;
|
|
8062
|
-
};
|
|
8063
|
-
/**
|
|
8064
|
-
* Bad request - invalid file or no file uploaded
|
|
8065
|
-
*/
|
|
8066
|
-
400: ApiProblemResponseDto;
|
|
8067
|
-
};
|
|
8068
|
-
};
|
|
8069
|
-
};
|
|
8070
|
-
'/api/v1/{region}/bean/import/config/{importerId}': {
|
|
8071
|
-
get: {
|
|
8072
|
-
req: ImporterConfigControllerGetConfigData;
|
|
8073
|
-
res: {
|
|
8074
|
-
/**
|
|
8075
|
-
* Configuration retrieved successfully
|
|
8076
|
-
*/
|
|
8077
|
-
200: ImporterConfigDto;
|
|
8078
|
-
/**
|
|
8079
|
-
* Invalid input - Unsupported importer
|
|
8080
|
-
*/
|
|
8081
|
-
400: ApiProblemResponseDto;
|
|
8082
|
-
/**
|
|
8083
|
-
* Unauthorized - Authentication required
|
|
8084
|
-
*/
|
|
8085
|
-
401: ApiProblemResponseDto;
|
|
8086
|
-
};
|
|
8087
|
-
};
|
|
8088
|
-
put: {
|
|
8089
|
-
req: ImporterConfigControllerUpdateConfigData;
|
|
8090
|
-
res: {
|
|
8091
|
-
/**
|
|
8092
|
-
* Configuration updated successfully
|
|
8093
|
-
*/
|
|
8094
|
-
200: ImporterConfigDto;
|
|
8095
|
-
/**
|
|
8096
|
-
* Invalid input - Validation failed
|
|
8097
|
-
*/
|
|
8098
|
-
400: ApiProblemResponseDto;
|
|
8099
|
-
/**
|
|
8100
|
-
* Configuration not found
|
|
8101
|
-
*/
|
|
8102
|
-
404: ApiProblemResponseDto;
|
|
8103
|
-
};
|
|
8104
|
-
};
|
|
8105
|
-
};
|
|
8106
|
-
'/api/v1/{region}/bean/import/config/{importerId}/reset': {
|
|
8107
|
-
post: {
|
|
8108
|
-
req: ImporterConfigControllerResetConfigData;
|
|
8109
|
-
res: {
|
|
8110
|
-
/**
|
|
8111
|
-
* Configuration reset successfully
|
|
8112
|
-
*/
|
|
8113
|
-
200: ImporterConfigDto;
|
|
8114
|
-
/**
|
|
8115
|
-
* Invalid input - Unsupported importer
|
|
8116
|
-
*/
|
|
8117
|
-
400: ApiProblemResponseDto;
|
|
8118
|
-
};
|
|
8119
|
-
};
|
|
8120
|
-
};
|
|
8121
|
-
'/api/v1/bean/platforms': {
|
|
8122
|
-
get: {
|
|
8123
|
-
res: {
|
|
8124
|
-
/**
|
|
8125
|
-
* List of platforms with binding and account counts
|
|
8126
|
-
*/
|
|
8127
|
-
200: unknown;
|
|
8128
|
-
};
|
|
8129
|
-
};
|
|
8130
|
-
post: {
|
|
8131
|
-
req: PlatformControllerCreateData;
|
|
8132
|
-
res: {
|
|
8133
|
-
/**
|
|
8134
|
-
* Platform created successfully
|
|
8135
|
-
*/
|
|
8136
|
-
201: unknown;
|
|
9108
|
+
200: {
|
|
9109
|
+
imported?: number;
|
|
9110
|
+
skipped?: number;
|
|
9111
|
+
failed?: number;
|
|
9112
|
+
accountsCreated?: number;
|
|
9113
|
+
errors?: Array<{
|
|
9114
|
+
[key: string]: unknown;
|
|
9115
|
+
}>;
|
|
9116
|
+
};
|
|
8137
9117
|
/**
|
|
8138
|
-
*
|
|
9118
|
+
* Bad request - invalid file or no file uploaded
|
|
8139
9119
|
*/
|
|
8140
|
-
|
|
9120
|
+
400: ApiProblemResponseDto;
|
|
8141
9121
|
};
|
|
8142
9122
|
};
|
|
8143
9123
|
};
|
|
8144
|
-
'/api/v1/bean/
|
|
9124
|
+
'/api/v1/{region}/bean/import/config/{importerId}': {
|
|
8145
9125
|
get: {
|
|
9126
|
+
req: ImporterConfigControllerGetConfigData;
|
|
8146
9127
|
res: {
|
|
8147
9128
|
/**
|
|
8148
|
-
*
|
|
9129
|
+
* Configuration retrieved successfully
|
|
8149
9130
|
*/
|
|
8150
|
-
200:
|
|
8151
|
-
};
|
|
8152
|
-
};
|
|
8153
|
-
};
|
|
8154
|
-
'/api/v1/bean/platforms/match': {
|
|
8155
|
-
get: {
|
|
8156
|
-
req: PlatformControllerMatchPlatformsData;
|
|
8157
|
-
res: {
|
|
9131
|
+
200: ImporterConfigDto;
|
|
8158
9132
|
/**
|
|
8159
|
-
*
|
|
9133
|
+
* Invalid input - Unsupported importer
|
|
8160
9134
|
*/
|
|
8161
|
-
|
|
9135
|
+
400: ApiProblemResponseDto;
|
|
9136
|
+
/**
|
|
9137
|
+
* Unauthorized - Authentication required
|
|
9138
|
+
*/
|
|
9139
|
+
401: ApiProblemResponseDto;
|
|
8162
9140
|
};
|
|
8163
9141
|
};
|
|
8164
|
-
};
|
|
8165
|
-
'/api/v1/bean/platforms/{id}': {
|
|
8166
9142
|
put: {
|
|
8167
|
-
req:
|
|
9143
|
+
req: ImporterConfigControllerUpdateConfigData;
|
|
8168
9144
|
res: {
|
|
8169
9145
|
/**
|
|
8170
|
-
*
|
|
9146
|
+
* Configuration updated successfully
|
|
8171
9147
|
*/
|
|
8172
|
-
200:
|
|
9148
|
+
200: ImporterConfigDto;
|
|
8173
9149
|
/**
|
|
8174
|
-
*
|
|
9150
|
+
* Invalid input - Validation failed
|
|
8175
9151
|
*/
|
|
8176
|
-
|
|
9152
|
+
400: ApiProblemResponseDto;
|
|
9153
|
+
/**
|
|
9154
|
+
* Configuration not found
|
|
9155
|
+
*/
|
|
9156
|
+
404: ApiProblemResponseDto;
|
|
8177
9157
|
};
|
|
8178
9158
|
};
|
|
8179
|
-
|
|
8180
|
-
|
|
9159
|
+
};
|
|
9160
|
+
'/api/v1/{region}/bean/import/config/{importerId}/reset': {
|
|
9161
|
+
post: {
|
|
9162
|
+
req: ImporterConfigControllerResetConfigData;
|
|
8181
9163
|
res: {
|
|
8182
9164
|
/**
|
|
8183
|
-
*
|
|
9165
|
+
* Configuration reset successfully
|
|
8184
9166
|
*/
|
|
8185
|
-
|
|
9167
|
+
200: ImporterConfigDto;
|
|
8186
9168
|
/**
|
|
8187
|
-
*
|
|
9169
|
+
* Invalid input - Unsupported importer
|
|
8188
9170
|
*/
|
|
8189
|
-
|
|
9171
|
+
400: ApiProblemResponseDto;
|
|
8190
9172
|
};
|
|
8191
9173
|
};
|
|
8192
9174
|
};
|
|
@@ -8243,6 +9225,54 @@ export type $OpenApiTs = {
|
|
|
8243
9225
|
};
|
|
8244
9226
|
};
|
|
8245
9227
|
};
|
|
9228
|
+
'/api/v1/{region}/bean/external-account-links': {
|
|
9229
|
+
post: {
|
|
9230
|
+
req: ExternalAccountLinkControllerCreateData;
|
|
9231
|
+
res: {
|
|
9232
|
+
/**
|
|
9233
|
+
* Link created.
|
|
9234
|
+
*/
|
|
9235
|
+
201: ExternalAccountLinkResponseDto;
|
|
9236
|
+
/**
|
|
9237
|
+
* beanAccountId not owned, or an active link already exists.
|
|
9238
|
+
*/
|
|
9239
|
+
422: unknown;
|
|
9240
|
+
};
|
|
9241
|
+
};
|
|
9242
|
+
get: {
|
|
9243
|
+
req: ExternalAccountLinkControllerFindAllData;
|
|
9244
|
+
res: {
|
|
9245
|
+
/**
|
|
9246
|
+
* Links retrieved.
|
|
9247
|
+
*/
|
|
9248
|
+
200: ExternalAccountLinkListResponseDto;
|
|
9249
|
+
};
|
|
9250
|
+
};
|
|
9251
|
+
};
|
|
9252
|
+
'/api/v1/{region}/bean/external-account-links/{id}': {
|
|
9253
|
+
get: {
|
|
9254
|
+
req: ExternalAccountLinkControllerFindOneData;
|
|
9255
|
+
res: {
|
|
9256
|
+
/**
|
|
9257
|
+
* Link retrieved.
|
|
9258
|
+
*/
|
|
9259
|
+
200: ExternalAccountLinkResponseDto;
|
|
9260
|
+
/**
|
|
9261
|
+
* Link not found or not owned by the user.
|
|
9262
|
+
*/
|
|
9263
|
+
422: unknown;
|
|
9264
|
+
};
|
|
9265
|
+
};
|
|
9266
|
+
delete: {
|
|
9267
|
+
req: ExternalAccountLinkControllerRemoveData;
|
|
9268
|
+
res: {
|
|
9269
|
+
/**
|
|
9270
|
+
* Link soft-deleted; historical transactions are unaffected.
|
|
9271
|
+
*/
|
|
9272
|
+
204: void;
|
|
9273
|
+
};
|
|
9274
|
+
};
|
|
9275
|
+
};
|
|
8246
9276
|
'/api/v1/{region}/bean/import/parser-telemetry': {
|
|
8247
9277
|
post: {
|
|
8248
9278
|
req: TelemetryControllerReportTelemetryData;
|
|
@@ -8331,6 +9361,78 @@ export type $OpenApiTs = {
|
|
|
8331
9361
|
};
|
|
8332
9362
|
};
|
|
8333
9363
|
};
|
|
9364
|
+
'/api/v1/bean/platforms': {
|
|
9365
|
+
get: {
|
|
9366
|
+
res: {
|
|
9367
|
+
/**
|
|
9368
|
+
* List of platforms with binding and account counts
|
|
9369
|
+
*/
|
|
9370
|
+
200: unknown;
|
|
9371
|
+
};
|
|
9372
|
+
};
|
|
9373
|
+
post: {
|
|
9374
|
+
req: PlatformControllerCreateData;
|
|
9375
|
+
res: {
|
|
9376
|
+
/**
|
|
9377
|
+
* Platform created successfully
|
|
9378
|
+
*/
|
|
9379
|
+
201: unknown;
|
|
9380
|
+
/**
|
|
9381
|
+
* Platform already exists
|
|
9382
|
+
*/
|
|
9383
|
+
409: unknown;
|
|
9384
|
+
};
|
|
9385
|
+
};
|
|
9386
|
+
};
|
|
9387
|
+
'/api/v1/bean/platforms/list': {
|
|
9388
|
+
get: {
|
|
9389
|
+
res: {
|
|
9390
|
+
/**
|
|
9391
|
+
* List of platforms with user binding status
|
|
9392
|
+
*/
|
|
9393
|
+
200: Array<PlatformListItemDto>;
|
|
9394
|
+
};
|
|
9395
|
+
};
|
|
9396
|
+
};
|
|
9397
|
+
'/api/v1/bean/platforms/match': {
|
|
9398
|
+
get: {
|
|
9399
|
+
req: PlatformControllerMatchPlatformsData;
|
|
9400
|
+
res: {
|
|
9401
|
+
/**
|
|
9402
|
+
* List of matching platforms with suggested segment names
|
|
9403
|
+
*/
|
|
9404
|
+
200: unknown;
|
|
9405
|
+
};
|
|
9406
|
+
};
|
|
9407
|
+
};
|
|
9408
|
+
'/api/v1/bean/platforms/{id}': {
|
|
9409
|
+
put: {
|
|
9410
|
+
req: PlatformControllerUpdateData;
|
|
9411
|
+
res: {
|
|
9412
|
+
/**
|
|
9413
|
+
* Platform updated successfully
|
|
9414
|
+
*/
|
|
9415
|
+
200: unknown;
|
|
9416
|
+
/**
|
|
9417
|
+
* Platform not found
|
|
9418
|
+
*/
|
|
9419
|
+
404: unknown;
|
|
9420
|
+
};
|
|
9421
|
+
};
|
|
9422
|
+
delete: {
|
|
9423
|
+
req: PlatformControllerDeleteData;
|
|
9424
|
+
res: {
|
|
9425
|
+
/**
|
|
9426
|
+
* Platform deleted successfully
|
|
9427
|
+
*/
|
|
9428
|
+
204: void;
|
|
9429
|
+
/**
|
|
9430
|
+
* Platform not found
|
|
9431
|
+
*/
|
|
9432
|
+
404: unknown;
|
|
9433
|
+
};
|
|
9434
|
+
};
|
|
9435
|
+
};
|
|
8334
9436
|
'/api/v1/{region}/dashboard/net-worth': {
|
|
8335
9437
|
get: {
|
|
8336
9438
|
req: DashboardControllerGetNetWorthData;
|
|
@@ -8383,16 +9485,16 @@ export type $OpenApiTs = {
|
|
|
8383
9485
|
};
|
|
8384
9486
|
};
|
|
8385
9487
|
};
|
|
8386
|
-
'/api/v1/{region}/
|
|
9488
|
+
'/api/v1/{region}/dashboard/expenses': {
|
|
8387
9489
|
get: {
|
|
8388
|
-
req:
|
|
9490
|
+
req: DashboardControllerGetExpensesData;
|
|
8389
9491
|
res: {
|
|
8390
9492
|
/**
|
|
8391
|
-
*
|
|
9493
|
+
* Expenses retrieved successfully
|
|
8392
9494
|
*/
|
|
8393
|
-
200:
|
|
9495
|
+
200: ExpensesByCategoryResponseDto;
|
|
8394
9496
|
/**
|
|
8395
|
-
* Invalid
|
|
9497
|
+
* Invalid groupBy or period
|
|
8396
9498
|
*/
|
|
8397
9499
|
400: unknown;
|
|
8398
9500
|
/**
|
|
@@ -8402,98 +9504,48 @@ export type $OpenApiTs = {
|
|
|
8402
9504
|
};
|
|
8403
9505
|
};
|
|
8404
9506
|
};
|
|
8405
|
-
'/api/v1/{region}/
|
|
8406
|
-
|
|
8407
|
-
req:
|
|
9507
|
+
'/api/v1/{region}/investment/holdings/pnl': {
|
|
9508
|
+
get: {
|
|
9509
|
+
req: HoldingPnlControllerGetHoldingPnlData;
|
|
8408
9510
|
res: {
|
|
8409
9511
|
/**
|
|
8410
|
-
*
|
|
8411
|
-
*/
|
|
8412
|
-
201: PriceResponseDto;
|
|
8413
|
-
/**
|
|
8414
|
-
* Currency or quoteCurrency commodity not found
|
|
9512
|
+
* Holding P&L retrieved successfully
|
|
8415
9513
|
*/
|
|
8416
|
-
|
|
9514
|
+
200: HoldingPnlResponseDto;
|
|
8417
9515
|
/**
|
|
8418
|
-
*
|
|
9516
|
+
* Invalid asOf format/value/future date, invalid accountId format, or unsupported method
|
|
8419
9517
|
*/
|
|
8420
|
-
|
|
8421
|
-
};
|
|
8422
|
-
};
|
|
8423
|
-
get: {
|
|
8424
|
-
req: PriceControllerFindAllData;
|
|
8425
|
-
res: {
|
|
9518
|
+
400: unknown;
|
|
8426
9519
|
/**
|
|
8427
|
-
*
|
|
9520
|
+
* User not authenticated
|
|
8428
9521
|
*/
|
|
8429
|
-
|
|
9522
|
+
401: unknown;
|
|
8430
9523
|
};
|
|
8431
9524
|
};
|
|
8432
9525
|
};
|
|
8433
|
-
'/api/v1/{region}/
|
|
9526
|
+
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
8434
9527
|
get: {
|
|
8435
|
-
req:
|
|
8436
|
-
res: {
|
|
8437
|
-
/**
|
|
8438
|
-
* Price retrieved successfully
|
|
8439
|
-
*/
|
|
8440
|
-
200: PriceResponseDto;
|
|
8441
|
-
/**
|
|
8442
|
-
* Price not found
|
|
8443
|
-
*/
|
|
8444
|
-
404: unknown;
|
|
8445
|
-
};
|
|
8446
|
-
};
|
|
8447
|
-
put: {
|
|
8448
|
-
req: PriceControllerUpdateData;
|
|
8449
|
-
res: {
|
|
8450
|
-
/**
|
|
8451
|
-
* Price updated successfully
|
|
8452
|
-
*/
|
|
8453
|
-
200: PriceResponseDto;
|
|
8454
|
-
/**
|
|
8455
|
-
* Price not found
|
|
8456
|
-
*/
|
|
8457
|
-
404: unknown;
|
|
8458
|
-
/**
|
|
8459
|
-
* Updated price conflicts with existing price
|
|
8460
|
-
*/
|
|
8461
|
-
409: unknown;
|
|
8462
|
-
};
|
|
8463
|
-
};
|
|
8464
|
-
delete: {
|
|
8465
|
-
req: PriceControllerDeleteData;
|
|
9528
|
+
req: ReportingControllerGetPortfolioTrendsData;
|
|
8466
9529
|
res: {
|
|
8467
9530
|
/**
|
|
8468
|
-
*
|
|
8469
|
-
*/
|
|
8470
|
-
204: void;
|
|
8471
|
-
/**
|
|
8472
|
-
* Price not found
|
|
9531
|
+
* Trends retrieved successfully
|
|
8473
9532
|
*/
|
|
8474
|
-
|
|
8475
|
-
};
|
|
8476
|
-
};
|
|
8477
|
-
};
|
|
8478
|
-
'/api/v1/{region}/bean/prices/bulk': {
|
|
8479
|
-
post: {
|
|
8480
|
-
req: PriceControllerBulkCreateData;
|
|
8481
|
-
res: {
|
|
9533
|
+
200: PortfolioTrendsResponseDto;
|
|
8482
9534
|
/**
|
|
8483
|
-
*
|
|
9535
|
+
* User not authenticated
|
|
8484
9536
|
*/
|
|
8485
|
-
|
|
9537
|
+
401: unknown;
|
|
8486
9538
|
};
|
|
8487
9539
|
};
|
|
8488
9540
|
};
|
|
8489
|
-
'/api/v1/{region}/reporting/
|
|
9541
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
8490
9542
|
get: {
|
|
8491
|
-
req:
|
|
9543
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
8492
9544
|
res: {
|
|
8493
9545
|
/**
|
|
8494
|
-
*
|
|
9546
|
+
* Cash-flow trends retrieved successfully
|
|
8495
9547
|
*/
|
|
8496
|
-
200:
|
|
9548
|
+
200: CashFlowTrendsResponseDto;
|
|
8497
9549
|
/**
|
|
8498
9550
|
* User not authenticated
|
|
8499
9551
|
*/
|