@firela/api-types 0.0.0-canary.2b7765ff → 0.0.0-canary.2fbeefe9
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 +1563 -665
- package/dist/index.d.ts +1563 -665
- package/dist/index.js +5 -3
- package/dist/index.mjs +5 -3
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +1314 -523
- package/src/generated/services.gen.ts +864 -357
- package/src/generated/types.gen.ts +1708 -728
|
@@ -5,10 +5,6 @@ export type CreateAccountDto = {
|
|
|
5
5
|
* Account path (hierarchical, colon-separated)
|
|
6
6
|
*/
|
|
7
7
|
path: string;
|
|
8
|
-
/**
|
|
9
|
-
* Display name to distinguish accounts at the same path (default: "")
|
|
10
|
-
*/
|
|
11
|
-
displayName?: string;
|
|
12
8
|
/**
|
|
13
9
|
* Account open date
|
|
14
10
|
*/
|
|
@@ -36,10 +32,6 @@ 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
|
*/
|
|
@@ -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,9 +109,9 @@ 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
|
*/
|
|
@@ -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,10 +181,6 @@ 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
|
*/
|
|
@@ -246,10 +226,6 @@ export type AccountStandardResponseDto = {
|
|
|
246
226
|
* Account type in Beancount hierarchy
|
|
247
227
|
*/
|
|
248
228
|
type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
|
|
249
|
-
/**
|
|
250
|
-
* i18n key for localized display name
|
|
251
|
-
*/
|
|
252
|
-
i18nKey: string;
|
|
253
229
|
/**
|
|
254
230
|
* Short localized display name
|
|
255
231
|
*/
|
|
@@ -284,10 +260,6 @@ export type AccountStandardListResponseDto = {
|
|
|
284
260
|
};
|
|
285
261
|
|
|
286
262
|
export type TemplateMetadataDto = {
|
|
287
|
-
/**
|
|
288
|
-
* Whether this path can be extended
|
|
289
|
-
*/
|
|
290
|
-
extendable: boolean;
|
|
291
263
|
/**
|
|
292
264
|
* Root account type
|
|
293
265
|
*/
|
|
@@ -442,6 +414,25 @@ export type CreateTransactionDto = {
|
|
|
442
414
|
*/
|
|
443
415
|
export type flag = '*' | '!';
|
|
444
416
|
|
|
417
|
+
export type CostDetailDto = {
|
|
418
|
+
/**
|
|
419
|
+
* Per-unit cost basis (mirrors engine Cost.number)
|
|
420
|
+
*/
|
|
421
|
+
number?: string;
|
|
422
|
+
/**
|
|
423
|
+
* Cost currency
|
|
424
|
+
*/
|
|
425
|
+
currency?: string;
|
|
426
|
+
/**
|
|
427
|
+
* Lot acquisition date (ISO yyyy-mm-dd)
|
|
428
|
+
*/
|
|
429
|
+
date?: string;
|
|
430
|
+
/**
|
|
431
|
+
* Lot label
|
|
432
|
+
*/
|
|
433
|
+
label?: string;
|
|
434
|
+
};
|
|
435
|
+
|
|
445
436
|
export type PostingResponseDto = {
|
|
446
437
|
/**
|
|
447
438
|
* Account name
|
|
@@ -455,6 +446,10 @@ export type PostingResponseDto = {
|
|
|
455
446
|
* Currency
|
|
456
447
|
*/
|
|
457
448
|
currency?: string;
|
|
449
|
+
/**
|
|
450
|
+
* Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
|
|
451
|
+
*/
|
|
452
|
+
cost?: CostDetailDto;
|
|
458
453
|
};
|
|
459
454
|
|
|
460
455
|
export type RecurringSuggestionDto = {
|
|
@@ -698,6 +693,10 @@ export type PostingDetailDto = {
|
|
|
698
693
|
* Cost date
|
|
699
694
|
*/
|
|
700
695
|
costDate?: string;
|
|
696
|
+
/**
|
|
697
|
+
* Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
|
|
698
|
+
*/
|
|
699
|
+
cost?: CostDetailDto;
|
|
701
700
|
/**
|
|
702
701
|
* Price amount
|
|
703
702
|
*/
|
|
@@ -821,6 +820,51 @@ export type flag2 =
|
|
|
821
820
|
*/
|
|
822
821
|
export type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
|
|
823
822
|
|
|
823
|
+
export type BalanceByCurrencyDto = {
|
|
824
|
+
/**
|
|
825
|
+
* ISO 4217 currency code
|
|
826
|
+
*/
|
|
827
|
+
currency: string;
|
|
828
|
+
/**
|
|
829
|
+
* Balance amount
|
|
830
|
+
*/
|
|
831
|
+
balance: string;
|
|
832
|
+
};
|
|
833
|
+
|
|
834
|
+
export type ExchangeRateWarningDto = {
|
|
835
|
+
/**
|
|
836
|
+
* Warning type
|
|
837
|
+
*/
|
|
838
|
+
type: string;
|
|
839
|
+
/**
|
|
840
|
+
* Currency without exchange rate
|
|
841
|
+
*/
|
|
842
|
+
currency: string;
|
|
843
|
+
/**
|
|
844
|
+
* Total amount affected
|
|
845
|
+
*/
|
|
846
|
+
totalAmount: string;
|
|
847
|
+
};
|
|
848
|
+
|
|
849
|
+
export type TransactionListSummaryDto = {
|
|
850
|
+
/**
|
|
851
|
+
* 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.
|
|
852
|
+
*/
|
|
853
|
+
totalAmount: string;
|
|
854
|
+
/**
|
|
855
|
+
* Base currency (ISO 4217)
|
|
856
|
+
*/
|
|
857
|
+
currency: string;
|
|
858
|
+
/**
|
|
859
|
+
* Raw (unconverted) balance per currency
|
|
860
|
+
*/
|
|
861
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
862
|
+
/**
|
|
863
|
+
* Currencies missing an FX rate (omitted when empty)
|
|
864
|
+
*/
|
|
865
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
866
|
+
};
|
|
867
|
+
|
|
824
868
|
export type TransactionListResponseDto = {
|
|
825
869
|
/**
|
|
826
870
|
* List of transactions
|
|
@@ -838,6 +882,10 @@ export type TransactionListResponseDto = {
|
|
|
838
882
|
* Number of items skipped
|
|
839
883
|
*/
|
|
840
884
|
offset: number;
|
|
885
|
+
/**
|
|
886
|
+
* 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.
|
|
887
|
+
*/
|
|
888
|
+
summary?: TransactionListSummaryDto;
|
|
841
889
|
};
|
|
842
890
|
|
|
843
891
|
export type TagSuggestionDto = {
|
|
@@ -1297,17 +1345,17 @@ export type ResolveResultDto = {
|
|
|
1297
1345
|
[key: string]: string;
|
|
1298
1346
|
};
|
|
1299
1347
|
/**
|
|
1300
|
-
* Resolution ID for undo
|
|
1348
|
+
* Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
|
|
1301
1349
|
*/
|
|
1302
|
-
resolutionId
|
|
1350
|
+
resolutionId?: string;
|
|
1303
1351
|
/**
|
|
1304
1352
|
* Whether this decision can be undone
|
|
1305
1353
|
*/
|
|
1306
|
-
canUndo
|
|
1354
|
+
canUndo?: boolean;
|
|
1307
1355
|
/**
|
|
1308
1356
|
* Deadline for undo (24h from resolution)
|
|
1309
1357
|
*/
|
|
1310
|
-
undoDeadline
|
|
1358
|
+
undoDeadline?: string;
|
|
1311
1359
|
/**
|
|
1312
1360
|
* Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
|
|
1313
1361
|
*/
|
|
@@ -1890,6 +1938,108 @@ export type UpdateCommodityDto = {
|
|
|
1890
1938
|
};
|
|
1891
1939
|
};
|
|
1892
1940
|
|
|
1941
|
+
export type CreateBeanPriceDto = {
|
|
1942
|
+
/**
|
|
1943
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1944
|
+
*/
|
|
1945
|
+
currency: string;
|
|
1946
|
+
/**
|
|
1947
|
+
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
1948
|
+
*/
|
|
1949
|
+
quoteCurrency: string;
|
|
1950
|
+
/**
|
|
1951
|
+
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
1952
|
+
*/
|
|
1953
|
+
amount: number;
|
|
1954
|
+
/**
|
|
1955
|
+
* Price date (ISO 8601 format)
|
|
1956
|
+
*/
|
|
1957
|
+
date: string;
|
|
1958
|
+
/**
|
|
1959
|
+
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
1960
|
+
*/
|
|
1961
|
+
metadata?: {
|
|
1962
|
+
[key: string]: unknown;
|
|
1963
|
+
};
|
|
1964
|
+
};
|
|
1965
|
+
|
|
1966
|
+
export type PriceResponseDto = {
|
|
1967
|
+
/**
|
|
1968
|
+
* Unique identifier
|
|
1969
|
+
*/
|
|
1970
|
+
id: string;
|
|
1971
|
+
/**
|
|
1972
|
+
* User ID (owner of the price)
|
|
1973
|
+
*/
|
|
1974
|
+
userId: string;
|
|
1975
|
+
/**
|
|
1976
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1977
|
+
*/
|
|
1978
|
+
currency: string;
|
|
1979
|
+
/**
|
|
1980
|
+
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
1981
|
+
*/
|
|
1982
|
+
quoteCurrency: string;
|
|
1983
|
+
/**
|
|
1984
|
+
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
1985
|
+
*/
|
|
1986
|
+
amount: number;
|
|
1987
|
+
/**
|
|
1988
|
+
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
1989
|
+
*/
|
|
1990
|
+
date: string;
|
|
1991
|
+
/**
|
|
1992
|
+
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
1993
|
+
*/
|
|
1994
|
+
meta: {
|
|
1995
|
+
[key: string]: unknown;
|
|
1996
|
+
};
|
|
1997
|
+
/**
|
|
1998
|
+
* Creation timestamp
|
|
1999
|
+
*/
|
|
2000
|
+
createdAt: string;
|
|
2001
|
+
/**
|
|
2002
|
+
* Last update timestamp
|
|
2003
|
+
*/
|
|
2004
|
+
updatedAt: string;
|
|
2005
|
+
};
|
|
2006
|
+
|
|
2007
|
+
export type PriceListResponseDto = {
|
|
2008
|
+
/**
|
|
2009
|
+
* List of prices
|
|
2010
|
+
*/
|
|
2011
|
+
items: Array<PriceResponseDto>;
|
|
2012
|
+
/**
|
|
2013
|
+
* Total number of prices
|
|
2014
|
+
*/
|
|
2015
|
+
total: number;
|
|
2016
|
+
};
|
|
2017
|
+
|
|
2018
|
+
export type UpdateBeanPriceDto = {
|
|
2019
|
+
/**
|
|
2020
|
+
* Currency being priced
|
|
2021
|
+
*/
|
|
2022
|
+
currency?: string;
|
|
2023
|
+
/**
|
|
2024
|
+
* Quote currency (pricing currency)
|
|
2025
|
+
*/
|
|
2026
|
+
quoteCurrency?: string;
|
|
2027
|
+
/**
|
|
2028
|
+
* Price amount (MUST be >= 0 per Beancount spec)
|
|
2029
|
+
*/
|
|
2030
|
+
amount?: number;
|
|
2031
|
+
/**
|
|
2032
|
+
* Price date (ISO 8601 format)
|
|
2033
|
+
*/
|
|
2034
|
+
date?: string;
|
|
2035
|
+
/**
|
|
2036
|
+
* Metadata
|
|
2037
|
+
*/
|
|
2038
|
+
metadata?: {
|
|
2039
|
+
[key: string]: unknown;
|
|
2040
|
+
};
|
|
2041
|
+
};
|
|
2042
|
+
|
|
1893
2043
|
export type CreateRecurringRuleDto = {
|
|
1894
2044
|
/**
|
|
1895
2045
|
* Rule name (unique per user)
|
|
@@ -3002,87 +3152,331 @@ export type UpdatePropertyDto = {
|
|
|
3002
3152
|
value: string;
|
|
3003
3153
|
};
|
|
3004
3154
|
|
|
3005
|
-
export type
|
|
3155
|
+
export type CreateBeanEventDto = {
|
|
3006
3156
|
/**
|
|
3007
|
-
*
|
|
3157
|
+
* Life event date (ISO 8601)
|
|
3008
3158
|
*/
|
|
3009
|
-
|
|
3010
|
-
};
|
|
3011
|
-
|
|
3012
|
-
export type ImportErrorDto = {
|
|
3159
|
+
date: string;
|
|
3013
3160
|
/**
|
|
3014
|
-
*
|
|
3161
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
3015
3162
|
*/
|
|
3016
|
-
|
|
3163
|
+
type: string;
|
|
3017
3164
|
/**
|
|
3018
|
-
*
|
|
3165
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3019
3166
|
*/
|
|
3020
|
-
|
|
3167
|
+
description: string;
|
|
3168
|
+
/**
|
|
3169
|
+
* Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
|
|
3170
|
+
*/
|
|
3171
|
+
meta?: {
|
|
3172
|
+
[key: string]: unknown;
|
|
3173
|
+
};
|
|
3021
3174
|
};
|
|
3022
3175
|
|
|
3023
|
-
export type
|
|
3176
|
+
export type EventResponseDto = {
|
|
3024
3177
|
/**
|
|
3025
|
-
*
|
|
3178
|
+
* Unique identifier
|
|
3026
3179
|
*/
|
|
3027
|
-
|
|
3180
|
+
id: string;
|
|
3028
3181
|
/**
|
|
3029
|
-
*
|
|
3182
|
+
* User ID (owner of the life event)
|
|
3030
3183
|
*/
|
|
3031
|
-
|
|
3184
|
+
userId: string;
|
|
3032
3185
|
/**
|
|
3033
|
-
*
|
|
3186
|
+
* Life event date (ISO 8601 format)
|
|
3034
3187
|
*/
|
|
3035
|
-
|
|
3188
|
+
date: string;
|
|
3036
3189
|
/**
|
|
3037
|
-
*
|
|
3190
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3038
3191
|
*/
|
|
3039
|
-
|
|
3192
|
+
type: string;
|
|
3040
3193
|
/**
|
|
3041
|
-
*
|
|
3194
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3042
3195
|
*/
|
|
3043
|
-
|
|
3196
|
+
description: string;
|
|
3044
3197
|
/**
|
|
3045
|
-
*
|
|
3198
|
+
* Product-side metadata (free-form JSON)
|
|
3046
3199
|
*/
|
|
3047
|
-
|
|
3200
|
+
meta: {
|
|
3201
|
+
[key: string]: unknown;
|
|
3202
|
+
};
|
|
3048
3203
|
/**
|
|
3049
|
-
*
|
|
3204
|
+
* Creation timestamp
|
|
3050
3205
|
*/
|
|
3051
|
-
|
|
3206
|
+
createdAt: string;
|
|
3052
3207
|
/**
|
|
3053
|
-
*
|
|
3208
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3054
3209
|
*/
|
|
3055
|
-
|
|
3210
|
+
updatedAt: string;
|
|
3211
|
+
};
|
|
3212
|
+
|
|
3213
|
+
export type EventListResponseDto = {
|
|
3056
3214
|
/**
|
|
3057
|
-
*
|
|
3215
|
+
* List of life events
|
|
3058
3216
|
*/
|
|
3059
|
-
|
|
3060
|
-
| 'DUPLICATE'
|
|
3061
|
-
| 'PAYEE_MATCH'
|
|
3062
|
-
| 'RULE_MATCH'
|
|
3063
|
-
| 'ACCOUNT_VALIDATION'
|
|
3064
|
-
| 'PIPELINE_ERROR';
|
|
3217
|
+
items: Array<EventResponseDto>;
|
|
3065
3218
|
/**
|
|
3066
|
-
*
|
|
3219
|
+
* Total number of life events matching the query
|
|
3067
3220
|
*/
|
|
3068
|
-
|
|
3221
|
+
total: number;
|
|
3069
3222
|
};
|
|
3070
3223
|
|
|
3071
|
-
|
|
3072
|
-
* Type of branch requiring review
|
|
3073
|
-
*/
|
|
3074
|
-
export type branchType =
|
|
3075
|
-
| 'DUPLICATE'
|
|
3076
|
-
| 'PAYEE_MATCH'
|
|
3077
|
-
| 'RULE_MATCH'
|
|
3078
|
-
| 'ACCOUNT_VALIDATION'
|
|
3079
|
-
| 'PIPELINE_ERROR';
|
|
3080
|
-
|
|
3081
|
-
export type ImportResultDto = {
|
|
3224
|
+
export type UpdateBeanEventDto = {
|
|
3082
3225
|
/**
|
|
3083
|
-
*
|
|
3226
|
+
* Life event date (ISO 8601)
|
|
3084
3227
|
*/
|
|
3085
|
-
|
|
3228
|
+
date?: string;
|
|
3229
|
+
/**
|
|
3230
|
+
* Life event type (user-defined)
|
|
3231
|
+
*/
|
|
3232
|
+
type?: string;
|
|
3233
|
+
/**
|
|
3234
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3235
|
+
*/
|
|
3236
|
+
description?: string;
|
|
3237
|
+
/**
|
|
3238
|
+
* Product-side metadata (free-form JSON)
|
|
3239
|
+
*/
|
|
3240
|
+
meta?: {
|
|
3241
|
+
[key: string]: unknown;
|
|
3242
|
+
};
|
|
3243
|
+
};
|
|
3244
|
+
|
|
3245
|
+
export type OnboardingAccountDto = {
|
|
3246
|
+
/**
|
|
3247
|
+
* Account path (Assets/Liabilities only; format validated by the account service)
|
|
3248
|
+
*/
|
|
3249
|
+
path: string;
|
|
3250
|
+
/**
|
|
3251
|
+
* ISO 4217 currency code (3 letters)
|
|
3252
|
+
*/
|
|
3253
|
+
currency: string;
|
|
3254
|
+
/**
|
|
3255
|
+
* Opening balance as a non-negative Decimal string (e.g. "1000.00")
|
|
3256
|
+
*/
|
|
3257
|
+
openingBalance?: string;
|
|
3258
|
+
/**
|
|
3259
|
+
* Platform ID to bind the account to (references Platform.id); omit for unbound
|
|
3260
|
+
*/
|
|
3261
|
+
platformId?: string;
|
|
3262
|
+
};
|
|
3263
|
+
|
|
3264
|
+
export type OnboardingDto = {
|
|
3265
|
+
/**
|
|
3266
|
+
* Asset/Liability accounts to register with opening balances
|
|
3267
|
+
*/
|
|
3268
|
+
accounts?: Array<OnboardingAccountDto>;
|
|
3269
|
+
/**
|
|
3270
|
+
* Skip asset registration; only bootstrap the core account set
|
|
3271
|
+
*/
|
|
3272
|
+
skipAssetRegistration?: boolean;
|
|
3273
|
+
};
|
|
3274
|
+
|
|
3275
|
+
export type ActualBalanceDto = {
|
|
3276
|
+
/**
|
|
3277
|
+
* Actual balance amount as a decimal string (preserves precision for tolerance inference).
|
|
3278
|
+
*/
|
|
3279
|
+
amount: string;
|
|
3280
|
+
/**
|
|
3281
|
+
* Currency code (ISO 4217 or commodity ticker).
|
|
3282
|
+
*/
|
|
3283
|
+
ccy: string;
|
|
3284
|
+
};
|
|
3285
|
+
|
|
3286
|
+
export type ComputeReconciliationDto = {
|
|
3287
|
+
/**
|
|
3288
|
+
* BeanAccount id to reconcile.
|
|
3289
|
+
*/
|
|
3290
|
+
accountId: string;
|
|
3291
|
+
/**
|
|
3292
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3293
|
+
*/
|
|
3294
|
+
asOfDate: string;
|
|
3295
|
+
/**
|
|
3296
|
+
* Actual balance from the external statement.
|
|
3297
|
+
*/
|
|
3298
|
+
actualBalance: ActualBalanceDto;
|
|
3299
|
+
};
|
|
3300
|
+
|
|
3301
|
+
export type ReconciliationComputeResultDto = {
|
|
3302
|
+
accountId: string;
|
|
3303
|
+
asOfDate: string;
|
|
3304
|
+
/**
|
|
3305
|
+
* System-computed book balance (decimal string).
|
|
3306
|
+
*/
|
|
3307
|
+
bookBalance: string;
|
|
3308
|
+
/**
|
|
3309
|
+
* User-entered actual balance (decimal string).
|
|
3310
|
+
*/
|
|
3311
|
+
actualBalance: string;
|
|
3312
|
+
currency: string;
|
|
3313
|
+
/**
|
|
3314
|
+
* Diff = book − actual (decimal string).
|
|
3315
|
+
*/
|
|
3316
|
+
diff: string;
|
|
3317
|
+
/**
|
|
3318
|
+
* Applied tolerance (decimal string).
|
|
3319
|
+
*/
|
|
3320
|
+
tolerance: string;
|
|
3321
|
+
/**
|
|
3322
|
+
* true when |diff| ≤ tolerance.
|
|
3323
|
+
*/
|
|
3324
|
+
withinTolerance: boolean;
|
|
3325
|
+
/**
|
|
3326
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3327
|
+
*/
|
|
3328
|
+
suggestedAction: 'assert' | 'pad';
|
|
3329
|
+
};
|
|
3330
|
+
|
|
3331
|
+
/**
|
|
3332
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3333
|
+
*/
|
|
3334
|
+
export type suggestedAction = 'assert' | 'pad';
|
|
3335
|
+
|
|
3336
|
+
export type AssertReconciliationDto = {
|
|
3337
|
+
/**
|
|
3338
|
+
* BeanAccount id to reconcile.
|
|
3339
|
+
*/
|
|
3340
|
+
accountId: string;
|
|
3341
|
+
/**
|
|
3342
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3343
|
+
*/
|
|
3344
|
+
asOfDate: string;
|
|
3345
|
+
/**
|
|
3346
|
+
* Actual balance from the external statement.
|
|
3347
|
+
*/
|
|
3348
|
+
actualBalance: ActualBalanceDto;
|
|
3349
|
+
/**
|
|
3350
|
+
* Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
|
|
3351
|
+
*/
|
|
3352
|
+
tolerance?: string;
|
|
3353
|
+
};
|
|
3354
|
+
|
|
3355
|
+
export type ReconciliationRecordDto = {
|
|
3356
|
+
id: string;
|
|
3357
|
+
accountId: string;
|
|
3358
|
+
date: string;
|
|
3359
|
+
/**
|
|
3360
|
+
* Asserted (actual) amount.
|
|
3361
|
+
*/
|
|
3362
|
+
amount: string;
|
|
3363
|
+
currency: string;
|
|
3364
|
+
tolerance?: string;
|
|
3365
|
+
/**
|
|
3366
|
+
* book − actual.
|
|
3367
|
+
*/
|
|
3368
|
+
diffAmount?: string;
|
|
3369
|
+
diffCurrency?: string;
|
|
3370
|
+
createdAt: string;
|
|
3371
|
+
};
|
|
3372
|
+
|
|
3373
|
+
export type PadReconciliationDto = {
|
|
3374
|
+
/**
|
|
3375
|
+
* BeanAccount id to reconcile.
|
|
3376
|
+
*/
|
|
3377
|
+
accountId: string;
|
|
3378
|
+
/**
|
|
3379
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3380
|
+
*/
|
|
3381
|
+
asOfDate: string;
|
|
3382
|
+
/**
|
|
3383
|
+
* Actual balance from the external statement.
|
|
3384
|
+
*/
|
|
3385
|
+
actualBalance: ActualBalanceDto;
|
|
3386
|
+
/**
|
|
3387
|
+
* Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
|
|
3388
|
+
*/
|
|
3389
|
+
sourceAccount?: string;
|
|
3390
|
+
};
|
|
3391
|
+
|
|
3392
|
+
export type PadResultDto = {
|
|
3393
|
+
/**
|
|
3394
|
+
* Created pad adjusting transaction id.
|
|
3395
|
+
*/
|
|
3396
|
+
transactionId: string;
|
|
3397
|
+
};
|
|
3398
|
+
|
|
3399
|
+
export type FileImportDto = {
|
|
3400
|
+
/**
|
|
3401
|
+
* Bill file to import (CSV, PDF, OFX, etc.)
|
|
3402
|
+
*/
|
|
3403
|
+
file: Blob | File;
|
|
3404
|
+
};
|
|
3405
|
+
|
|
3406
|
+
export type ImportErrorDto = {
|
|
3407
|
+
/**
|
|
3408
|
+
* Index of failed transaction in the file
|
|
3409
|
+
*/
|
|
3410
|
+
index: number;
|
|
3411
|
+
/**
|
|
3412
|
+
* Error message
|
|
3413
|
+
*/
|
|
3414
|
+
error: string;
|
|
3415
|
+
};
|
|
3416
|
+
|
|
3417
|
+
export type ReviewItemPreviewDto = {
|
|
3418
|
+
/**
|
|
3419
|
+
* Index in the import batch (for tracking)
|
|
3420
|
+
*/
|
|
3421
|
+
index: number;
|
|
3422
|
+
/**
|
|
3423
|
+
* Transaction date (ISO format)
|
|
3424
|
+
*/
|
|
3425
|
+
date: string;
|
|
3426
|
+
/**
|
|
3427
|
+
* Transaction amount (absolute value)
|
|
3428
|
+
*/
|
|
3429
|
+
amount?: number;
|
|
3430
|
+
/**
|
|
3431
|
+
* Currency code
|
|
3432
|
+
*/
|
|
3433
|
+
currency?: string;
|
|
3434
|
+
/**
|
|
3435
|
+
* Transaction narration/description
|
|
3436
|
+
*/
|
|
3437
|
+
narration: string;
|
|
3438
|
+
/**
|
|
3439
|
+
* Payee name
|
|
3440
|
+
*/
|
|
3441
|
+
payee?: string;
|
|
3442
|
+
/**
|
|
3443
|
+
* Inferred category from rule matching
|
|
3444
|
+
*/
|
|
3445
|
+
category?: string;
|
|
3446
|
+
/**
|
|
3447
|
+
* Confidence score for the match (0-1)
|
|
3448
|
+
*/
|
|
3449
|
+
confidence?: number;
|
|
3450
|
+
/**
|
|
3451
|
+
* Type of branch requiring review
|
|
3452
|
+
*/
|
|
3453
|
+
branchType?:
|
|
3454
|
+
| 'DUPLICATE'
|
|
3455
|
+
| 'PAYEE_MATCH'
|
|
3456
|
+
| 'RULE_MATCH'
|
|
3457
|
+
| 'ACCOUNT_VALIDATION'
|
|
3458
|
+
| 'PIPELINE_ERROR';
|
|
3459
|
+
/**
|
|
3460
|
+
* Human-readable reasons for requiring review
|
|
3461
|
+
*/
|
|
3462
|
+
reasons?: Array<string>;
|
|
3463
|
+
};
|
|
3464
|
+
|
|
3465
|
+
/**
|
|
3466
|
+
* Type of branch requiring review
|
|
3467
|
+
*/
|
|
3468
|
+
export type branchType =
|
|
3469
|
+
| 'DUPLICATE'
|
|
3470
|
+
| 'PAYEE_MATCH'
|
|
3471
|
+
| 'RULE_MATCH'
|
|
3472
|
+
| 'ACCOUNT_VALIDATION'
|
|
3473
|
+
| 'PIPELINE_ERROR';
|
|
3474
|
+
|
|
3475
|
+
export type ImportResultDto = {
|
|
3476
|
+
/**
|
|
3477
|
+
* Number of successfully imported transactions
|
|
3478
|
+
*/
|
|
3479
|
+
imported: number;
|
|
3086
3480
|
/**
|
|
3087
3481
|
* Number of failed transactions
|
|
3088
3482
|
*/
|
|
@@ -3277,115 +3671,27 @@ export type UpdateMapperDefaultsDto = {
|
|
|
3277
3671
|
/**
|
|
3278
3672
|
* Default income account (optional)
|
|
3279
3673
|
*/
|
|
3280
|
-
incomeAccount?: string;
|
|
3281
|
-
/**
|
|
3282
|
-
* Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
|
|
3283
|
-
*/
|
|
3284
|
-
methodAccountMapping?: {
|
|
3285
|
-
[key: string]: unknown;
|
|
3286
|
-
};
|
|
3287
|
-
};
|
|
3288
|
-
|
|
3289
|
-
export type UpdateConfigDataDto = {
|
|
3290
|
-
/**
|
|
3291
|
-
* Mapper defaults configuration
|
|
3292
|
-
*/
|
|
3293
|
-
defaults?: UpdateMapperDefaultsDto;
|
|
3294
|
-
};
|
|
3295
|
-
|
|
3296
|
-
export type UpdateImporterConfigDto = {
|
|
3297
|
-
/**
|
|
3298
|
-
* Configuration data (v1 schema)
|
|
3299
|
-
*/
|
|
3300
|
-
data?: UpdateConfigDataDto;
|
|
3301
|
-
};
|
|
3302
|
-
|
|
3303
|
-
export type CreatePlatformDto = {
|
|
3304
|
-
/**
|
|
3305
|
-
* Platform name
|
|
3306
|
-
*/
|
|
3307
|
-
name: string;
|
|
3308
|
-
/**
|
|
3309
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3310
|
-
*/
|
|
3311
|
-
canonical: string;
|
|
3312
|
-
/**
|
|
3313
|
-
* Platform aliases (multi-language names for lookup)
|
|
3314
|
-
*/
|
|
3315
|
-
aliases: Array<string>;
|
|
3316
|
-
/**
|
|
3317
|
-
* Platform URL
|
|
3318
|
-
*/
|
|
3319
|
-
url: string;
|
|
3320
|
-
/**
|
|
3321
|
-
* Platform type
|
|
3322
|
-
*/
|
|
3323
|
-
type:
|
|
3324
|
-
| 'BANK'
|
|
3325
|
-
| 'BROKERAGE'
|
|
3326
|
-
| 'CRYPTO_EXCHANGE'
|
|
3327
|
-
| 'PAYMENT'
|
|
3328
|
-
| 'INVESTMENT'
|
|
3329
|
-
| 'INSURANCE'
|
|
3330
|
-
| 'OTHER';
|
|
3331
|
-
/**
|
|
3332
|
-
* Platform logo URL
|
|
3333
|
-
*/
|
|
3334
|
-
logoUrl?: string;
|
|
3335
|
-
/**
|
|
3336
|
-
* Whether the platform is active
|
|
3337
|
-
*/
|
|
3338
|
-
isActive?: boolean;
|
|
3339
|
-
};
|
|
3340
|
-
|
|
3341
|
-
/**
|
|
3342
|
-
* Platform type
|
|
3343
|
-
*/
|
|
3344
|
-
export type type3 =
|
|
3345
|
-
| 'BANK'
|
|
3346
|
-
| 'BROKERAGE'
|
|
3347
|
-
| 'CRYPTO_EXCHANGE'
|
|
3348
|
-
| 'PAYMENT'
|
|
3349
|
-
| 'INVESTMENT'
|
|
3350
|
-
| 'INSURANCE'
|
|
3351
|
-
| 'OTHER';
|
|
3352
|
-
|
|
3353
|
-
export type UpdatePlatformDto = {
|
|
3354
|
-
/**
|
|
3355
|
-
* Platform name
|
|
3356
|
-
*/
|
|
3357
|
-
name?: string;
|
|
3358
|
-
/**
|
|
3359
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3360
|
-
*/
|
|
3361
|
-
canonical?: string;
|
|
3362
|
-
/**
|
|
3363
|
-
* Platform aliases (multi-language names for lookup)
|
|
3364
|
-
*/
|
|
3365
|
-
aliases?: Array<string>;
|
|
3366
|
-
/**
|
|
3367
|
-
* Platform URL
|
|
3368
|
-
*/
|
|
3369
|
-
url?: string;
|
|
3370
|
-
/**
|
|
3371
|
-
* Platform type
|
|
3372
|
-
*/
|
|
3373
|
-
type?:
|
|
3374
|
-
| 'BANK'
|
|
3375
|
-
| 'BROKERAGE'
|
|
3376
|
-
| 'CRYPTO_EXCHANGE'
|
|
3377
|
-
| 'PAYMENT'
|
|
3378
|
-
| 'INVESTMENT'
|
|
3379
|
-
| 'INSURANCE'
|
|
3380
|
-
| 'OTHER';
|
|
3674
|
+
incomeAccount?: string;
|
|
3381
3675
|
/**
|
|
3382
|
-
*
|
|
3676
|
+
* Payment method to source account mapping. Maps payment method keywords to Beancount account paths. Used by Alipay/WeChat importers to determine sourceAccount based on payment method (e.g., HuaBei, CreditCard).
|
|
3383
3677
|
*/
|
|
3384
|
-
|
|
3678
|
+
methodAccountMapping?: {
|
|
3679
|
+
[key: string]: unknown;
|
|
3680
|
+
};
|
|
3681
|
+
};
|
|
3682
|
+
|
|
3683
|
+
export type UpdateConfigDataDto = {
|
|
3385
3684
|
/**
|
|
3386
|
-
*
|
|
3685
|
+
* Mapper defaults configuration
|
|
3387
3686
|
*/
|
|
3388
|
-
|
|
3687
|
+
defaults?: UpdateMapperDefaultsDto;
|
|
3688
|
+
};
|
|
3689
|
+
|
|
3690
|
+
export type UpdateImporterConfigDto = {
|
|
3691
|
+
/**
|
|
3692
|
+
* Configuration data (v1 schema)
|
|
3693
|
+
*/
|
|
3694
|
+
data?: UpdateConfigDataDto;
|
|
3389
3695
|
};
|
|
3390
3696
|
|
|
3391
3697
|
export type ProviderSyncConfigDto = {
|
|
@@ -3409,6 +3715,10 @@ export type ProviderSyncConfigDto = {
|
|
|
3409
3715
|
* Filter pending transactions
|
|
3410
3716
|
*/
|
|
3411
3717
|
filterPending?: boolean;
|
|
3718
|
+
/**
|
|
3719
|
+
* External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
|
|
3720
|
+
*/
|
|
3721
|
+
externalAccountId?: string;
|
|
3412
3722
|
};
|
|
3413
3723
|
|
|
3414
3724
|
export type ProviderSyncDto = {
|
|
@@ -3464,6 +3774,61 @@ export type SupportedProvidersResponseDto = {
|
|
|
3464
3774
|
providers: Array<string>;
|
|
3465
3775
|
};
|
|
3466
3776
|
|
|
3777
|
+
export type CreateExternalAccountLinkDto = {
|
|
3778
|
+
/**
|
|
3779
|
+
* Open Banking provider (whitelist)
|
|
3780
|
+
*/
|
|
3781
|
+
provider:
|
|
3782
|
+
| 'plaid'
|
|
3783
|
+
| 'teller'
|
|
3784
|
+
| 'truelayer'
|
|
3785
|
+
| 'gocardless'
|
|
3786
|
+
| 'simplefin'
|
|
3787
|
+
| 'yodlee'
|
|
3788
|
+
| 'beancount-direct'
|
|
3789
|
+
| 'parsed-bill';
|
|
3790
|
+
/**
|
|
3791
|
+
* External account ID from the provider
|
|
3792
|
+
*/
|
|
3793
|
+
externalAccountId: string;
|
|
3794
|
+
/**
|
|
3795
|
+
* Target BeanAccount ID (must belong to the JWT user)
|
|
3796
|
+
*/
|
|
3797
|
+
beanAccountId: string;
|
|
3798
|
+
};
|
|
3799
|
+
|
|
3800
|
+
/**
|
|
3801
|
+
* Open Banking provider (whitelist)
|
|
3802
|
+
*/
|
|
3803
|
+
export type provider =
|
|
3804
|
+
| 'plaid'
|
|
3805
|
+
| 'teller'
|
|
3806
|
+
| 'truelayer'
|
|
3807
|
+
| 'gocardless'
|
|
3808
|
+
| 'simplefin'
|
|
3809
|
+
| 'yodlee'
|
|
3810
|
+
| 'beancount-direct'
|
|
3811
|
+
| 'parsed-bill';
|
|
3812
|
+
|
|
3813
|
+
export type ExternalAccountLinkResponseDto = {
|
|
3814
|
+
id: string;
|
|
3815
|
+
provider: string;
|
|
3816
|
+
externalAccountId: string;
|
|
3817
|
+
beanAccountId: string;
|
|
3818
|
+
isActive: boolean;
|
|
3819
|
+
createdAt: string;
|
|
3820
|
+
updatedAt: string;
|
|
3821
|
+
};
|
|
3822
|
+
|
|
3823
|
+
export type ExternalAccountLinkListResponseDto = {
|
|
3824
|
+
items: Array<ExternalAccountLinkResponseDto>;
|
|
3825
|
+
total: number;
|
|
3826
|
+
/**
|
|
3827
|
+
* Filter by provider (query param)
|
|
3828
|
+
*/
|
|
3829
|
+
provider?: string;
|
|
3830
|
+
};
|
|
3831
|
+
|
|
3467
3832
|
export type ParserTelemetryReportDto = unknown;
|
|
3468
3833
|
|
|
3469
3834
|
export type UncoveredFormatMissDto = unknown;
|
|
@@ -4043,15 +4408,92 @@ export type liabilitySubType = 'borrow' | 'repay';
|
|
|
4043
4408
|
*/
|
|
4044
4409
|
export type equitySubType = 'opening' | 'adjustment';
|
|
4045
4410
|
|
|
4046
|
-
export type
|
|
4411
|
+
export type CreatePlatformDto = {
|
|
4047
4412
|
/**
|
|
4048
|
-
*
|
|
4413
|
+
* Platform name
|
|
4049
4414
|
*/
|
|
4050
|
-
|
|
4415
|
+
name: string;
|
|
4051
4416
|
/**
|
|
4052
|
-
*
|
|
4417
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4053
4418
|
*/
|
|
4054
|
-
|
|
4419
|
+
canonical: string;
|
|
4420
|
+
/**
|
|
4421
|
+
* Platform aliases (multi-language names for lookup)
|
|
4422
|
+
*/
|
|
4423
|
+
aliases: Array<string>;
|
|
4424
|
+
/**
|
|
4425
|
+
* Platform URL
|
|
4426
|
+
*/
|
|
4427
|
+
url: string;
|
|
4428
|
+
/**
|
|
4429
|
+
* Platform type
|
|
4430
|
+
*/
|
|
4431
|
+
type:
|
|
4432
|
+
| 'BANK'
|
|
4433
|
+
| 'BROKERAGE'
|
|
4434
|
+
| 'CRYPTO_EXCHANGE'
|
|
4435
|
+
| 'PAYMENT'
|
|
4436
|
+
| 'INVESTMENT'
|
|
4437
|
+
| 'INSURANCE'
|
|
4438
|
+
| 'OTHER';
|
|
4439
|
+
/**
|
|
4440
|
+
* Platform logo URL
|
|
4441
|
+
*/
|
|
4442
|
+
logoUrl?: string;
|
|
4443
|
+
/**
|
|
4444
|
+
* Whether the platform is active
|
|
4445
|
+
*/
|
|
4446
|
+
isActive?: boolean;
|
|
4447
|
+
};
|
|
4448
|
+
|
|
4449
|
+
/**
|
|
4450
|
+
* Platform type
|
|
4451
|
+
*/
|
|
4452
|
+
export type type3 =
|
|
4453
|
+
| 'BANK'
|
|
4454
|
+
| 'BROKERAGE'
|
|
4455
|
+
| 'CRYPTO_EXCHANGE'
|
|
4456
|
+
| 'PAYMENT'
|
|
4457
|
+
| 'INVESTMENT'
|
|
4458
|
+
| 'INSURANCE'
|
|
4459
|
+
| 'OTHER';
|
|
4460
|
+
|
|
4461
|
+
export type UpdatePlatformDto = {
|
|
4462
|
+
/**
|
|
4463
|
+
* Platform name
|
|
4464
|
+
*/
|
|
4465
|
+
name?: string;
|
|
4466
|
+
/**
|
|
4467
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4468
|
+
*/
|
|
4469
|
+
canonical?: string;
|
|
4470
|
+
/**
|
|
4471
|
+
* Platform aliases (multi-language names for lookup)
|
|
4472
|
+
*/
|
|
4473
|
+
aliases?: Array<string>;
|
|
4474
|
+
/**
|
|
4475
|
+
* Platform URL
|
|
4476
|
+
*/
|
|
4477
|
+
url?: string;
|
|
4478
|
+
/**
|
|
4479
|
+
* Platform type
|
|
4480
|
+
*/
|
|
4481
|
+
type?:
|
|
4482
|
+
| 'BANK'
|
|
4483
|
+
| 'BROKERAGE'
|
|
4484
|
+
| 'CRYPTO_EXCHANGE'
|
|
4485
|
+
| 'PAYMENT'
|
|
4486
|
+
| 'INVESTMENT'
|
|
4487
|
+
| 'INSURANCE'
|
|
4488
|
+
| 'OTHER';
|
|
4489
|
+
/**
|
|
4490
|
+
* Platform logo URL
|
|
4491
|
+
*/
|
|
4492
|
+
logoUrl?: string;
|
|
4493
|
+
/**
|
|
4494
|
+
* Whether the platform is active
|
|
4495
|
+
*/
|
|
4496
|
+
isActive?: boolean;
|
|
4055
4497
|
};
|
|
4056
4498
|
|
|
4057
4499
|
export type NetWorthByCurrencyDto = {
|
|
@@ -4094,21 +4536,6 @@ export type ConvertedNetWorthDto = {
|
|
|
4094
4536
|
};
|
|
4095
4537
|
};
|
|
4096
4538
|
|
|
4097
|
-
export type ExchangeRateWarningDto = {
|
|
4098
|
-
/**
|
|
4099
|
-
* Warning type
|
|
4100
|
-
*/
|
|
4101
|
-
type: string;
|
|
4102
|
-
/**
|
|
4103
|
-
* Currency without exchange rate
|
|
4104
|
-
*/
|
|
4105
|
-
currency: string;
|
|
4106
|
-
/**
|
|
4107
|
-
* Total amount affected
|
|
4108
|
-
*/
|
|
4109
|
-
totalAmount: string;
|
|
4110
|
-
};
|
|
4111
|
-
|
|
4112
4539
|
export type NetWorthResponseDto = {
|
|
4113
4540
|
/**
|
|
4114
4541
|
* Total net worth (assets - liabilities, converted to base currency)
|
|
@@ -4173,6 +4600,10 @@ export type AccountItemDto = {
|
|
|
4173
4600
|
* Currency code
|
|
4174
4601
|
*/
|
|
4175
4602
|
currency: string;
|
|
4603
|
+
/**
|
|
4604
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4605
|
+
*/
|
|
4606
|
+
convertedBalance?: string;
|
|
4176
4607
|
};
|
|
4177
4608
|
|
|
4178
4609
|
export type PlatformGroupDto = {
|
|
@@ -4189,9 +4620,40 @@ export type PlatformGroupDto = {
|
|
|
4189
4620
|
*/
|
|
4190
4621
|
accounts: Array<AccountItemDto>;
|
|
4191
4622
|
/**
|
|
4192
|
-
*
|
|
4623
|
+
* FX-converted total balance in base currency
|
|
4193
4624
|
*/
|
|
4194
4625
|
totalBalance: string;
|
|
4626
|
+
/**
|
|
4627
|
+
* Raw (unconverted) balances grouped by currency
|
|
4628
|
+
*/
|
|
4629
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4630
|
+
/**
|
|
4631
|
+
* Converted balance in base currency (omitted when no currency is convertible)
|
|
4632
|
+
*/
|
|
4633
|
+
convertedBalance?: string;
|
|
4634
|
+
/**
|
|
4635
|
+
* Share of the grand converted total (0-100); 0 when grand total is 0
|
|
4636
|
+
*/
|
|
4637
|
+
sharePct: number;
|
|
4638
|
+
};
|
|
4639
|
+
|
|
4640
|
+
export type AccountExchangeRateWarningDto = {
|
|
4641
|
+
/**
|
|
4642
|
+
* Warning type
|
|
4643
|
+
*/
|
|
4644
|
+
type: string;
|
|
4645
|
+
/**
|
|
4646
|
+
* Currency without exchange rate
|
|
4647
|
+
*/
|
|
4648
|
+
currency: string;
|
|
4649
|
+
/**
|
|
4650
|
+
* Affected account paths
|
|
4651
|
+
*/
|
|
4652
|
+
accounts: Array<string>;
|
|
4653
|
+
/**
|
|
4654
|
+
* Total amount in this currency
|
|
4655
|
+
*/
|
|
4656
|
+
totalAmount: string;
|
|
4195
4657
|
};
|
|
4196
4658
|
|
|
4197
4659
|
export type AccountsSummaryDto = {
|
|
@@ -4203,6 +4665,14 @@ export type AccountsSummaryDto = {
|
|
|
4203
4665
|
* Total number of platforms
|
|
4204
4666
|
*/
|
|
4205
4667
|
totalPlatforms: number;
|
|
4668
|
+
/**
|
|
4669
|
+
* Base currency for conversion
|
|
4670
|
+
*/
|
|
4671
|
+
baseCurrency: string;
|
|
4672
|
+
/**
|
|
4673
|
+
* Per-account exchange rate warnings
|
|
4674
|
+
*/
|
|
4675
|
+
warnings?: Array<AccountExchangeRateWarningDto>;
|
|
4206
4676
|
};
|
|
4207
4677
|
|
|
4208
4678
|
export type AccountsResponseDto = {
|
|
@@ -4237,6 +4707,10 @@ export type AccountItemWithAssetClassDto = {
|
|
|
4237
4707
|
* Currency code
|
|
4238
4708
|
*/
|
|
4239
4709
|
currency: string;
|
|
4710
|
+
/**
|
|
4711
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4712
|
+
*/
|
|
4713
|
+
convertedBalance?: string;
|
|
4240
4714
|
/**
|
|
4241
4715
|
* Asset class
|
|
4242
4716
|
*/
|
|
@@ -4318,25 +4792,6 @@ export type assetClass =
|
|
|
4318
4792
|
| 'REAL_ESTATE'
|
|
4319
4793
|
| 'INDEX';
|
|
4320
4794
|
|
|
4321
|
-
export type AccountExchangeRateWarningDto = {
|
|
4322
|
-
/**
|
|
4323
|
-
* Warning type
|
|
4324
|
-
*/
|
|
4325
|
-
type: string;
|
|
4326
|
-
/**
|
|
4327
|
-
* Currency without exchange rate
|
|
4328
|
-
*/
|
|
4329
|
-
currency: string;
|
|
4330
|
-
/**
|
|
4331
|
-
* Affected account paths
|
|
4332
|
-
*/
|
|
4333
|
-
accounts: Array<string>;
|
|
4334
|
-
/**
|
|
4335
|
-
* Total amount in this currency
|
|
4336
|
-
*/
|
|
4337
|
-
totalAmount: string;
|
|
4338
|
-
};
|
|
4339
|
-
|
|
4340
4795
|
export type AssetClassSummaryDto = {
|
|
4341
4796
|
/**
|
|
4342
4797
|
* Total number of accounts
|
|
@@ -4481,23 +4936,80 @@ export type CashFlowResponseDto = {
|
|
|
4481
4936
|
*/
|
|
4482
4937
|
netSavings: string;
|
|
4483
4938
|
/**
|
|
4484
|
-
* Savings rate percentage (netSavings / income * 100)
|
|
4939
|
+
* Savings rate percentage (netSavings / income * 100)
|
|
4940
|
+
*/
|
|
4941
|
+
savingsRate: string;
|
|
4942
|
+
/**
|
|
4943
|
+
* Base currency code
|
|
4944
|
+
*/
|
|
4945
|
+
currency: string;
|
|
4946
|
+
/**
|
|
4947
|
+
* Cash flow grouped by original currency
|
|
4948
|
+
*/
|
|
4949
|
+
byCurrency?: CashFlowByCurrencyDto;
|
|
4950
|
+
/**
|
|
4951
|
+
* Converted values in base currency
|
|
4952
|
+
*/
|
|
4953
|
+
converted?: ConvertedCashFlowDto;
|
|
4954
|
+
/**
|
|
4955
|
+
* Exchange rate warnings
|
|
4956
|
+
*/
|
|
4957
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
4958
|
+
};
|
|
4959
|
+
|
|
4960
|
+
export type CategoryGroupDto = {
|
|
4961
|
+
/**
|
|
4962
|
+
* Functional category (account-path Group segment); regional and universal account paths merge under it
|
|
4963
|
+
*/
|
|
4964
|
+
category: string;
|
|
4965
|
+
/**
|
|
4966
|
+
* Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
|
|
4967
|
+
*/
|
|
4968
|
+
totalExpense: string;
|
|
4969
|
+
/**
|
|
4970
|
+
* Share of grand total (0-100); 0 when grand total is 0
|
|
4971
|
+
*/
|
|
4972
|
+
sharePct: number;
|
|
4973
|
+
/**
|
|
4974
|
+
* Raw (unconverted) expense per currency
|
|
4975
|
+
*/
|
|
4976
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4977
|
+
/**
|
|
4978
|
+
* Converted total in base currency (omitted when FX missing for all currencies in this category)
|
|
4979
|
+
*/
|
|
4980
|
+
convertedBalance?: string;
|
|
4981
|
+
};
|
|
4982
|
+
|
|
4983
|
+
export type ExpensesByCategorySummaryDto = {
|
|
4984
|
+
/**
|
|
4985
|
+
* Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
|
|
4986
|
+
*/
|
|
4987
|
+
totalExpense: string;
|
|
4988
|
+
/**
|
|
4989
|
+
* Number of categories
|
|
4990
|
+
*/
|
|
4991
|
+
categoryCount: number;
|
|
4992
|
+
};
|
|
4993
|
+
|
|
4994
|
+
export type ExpensesByCategoryResponseDto = {
|
|
4995
|
+
/**
|
|
4996
|
+
* Period requested
|
|
4485
4997
|
*/
|
|
4486
|
-
|
|
4998
|
+
period: string;
|
|
4487
4999
|
/**
|
|
4488
|
-
* Base currency
|
|
5000
|
+
* Base currency for converted values
|
|
4489
5001
|
*/
|
|
4490
|
-
|
|
5002
|
+
baseCurrency: string;
|
|
4491
5003
|
/**
|
|
4492
|
-
*
|
|
5004
|
+
* Expense groups by functional category, sorted by converted total desc
|
|
4493
5005
|
*/
|
|
4494
|
-
|
|
5006
|
+
groups: Array<CategoryGroupDto>;
|
|
4495
5007
|
/**
|
|
4496
|
-
*
|
|
5008
|
+
* Summary statistics
|
|
4497
5009
|
*/
|
|
4498
|
-
|
|
5010
|
+
summary: ExpensesByCategorySummaryDto;
|
|
4499
5011
|
/**
|
|
4500
|
-
* Exchange rate warnings
|
|
5012
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
4501
5013
|
*/
|
|
4502
5014
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4503
5015
|
};
|
|
@@ -4697,108 +5209,6 @@ export type HoldingPnlResponseDto = {
|
|
|
4697
5209
|
*/
|
|
4698
5210
|
export type method = 'average' | 'FIFO';
|
|
4699
5211
|
|
|
4700
|
-
export type CreateBeanPriceDto = {
|
|
4701
|
-
/**
|
|
4702
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4703
|
-
*/
|
|
4704
|
-
currency: string;
|
|
4705
|
-
/**
|
|
4706
|
-
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
4707
|
-
*/
|
|
4708
|
-
quoteCurrency: string;
|
|
4709
|
-
/**
|
|
4710
|
-
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
4711
|
-
*/
|
|
4712
|
-
amount: number;
|
|
4713
|
-
/**
|
|
4714
|
-
* Price date (ISO 8601 format)
|
|
4715
|
-
*/
|
|
4716
|
-
date: string;
|
|
4717
|
-
/**
|
|
4718
|
-
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
4719
|
-
*/
|
|
4720
|
-
metadata?: {
|
|
4721
|
-
[key: string]: unknown;
|
|
4722
|
-
};
|
|
4723
|
-
};
|
|
4724
|
-
|
|
4725
|
-
export type PriceResponseDto = {
|
|
4726
|
-
/**
|
|
4727
|
-
* Unique identifier
|
|
4728
|
-
*/
|
|
4729
|
-
id: string;
|
|
4730
|
-
/**
|
|
4731
|
-
* User ID (owner of the price)
|
|
4732
|
-
*/
|
|
4733
|
-
userId: string;
|
|
4734
|
-
/**
|
|
4735
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4736
|
-
*/
|
|
4737
|
-
currency: string;
|
|
4738
|
-
/**
|
|
4739
|
-
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
4740
|
-
*/
|
|
4741
|
-
quoteCurrency: string;
|
|
4742
|
-
/**
|
|
4743
|
-
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
4744
|
-
*/
|
|
4745
|
-
amount: number;
|
|
4746
|
-
/**
|
|
4747
|
-
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
4748
|
-
*/
|
|
4749
|
-
date: string;
|
|
4750
|
-
/**
|
|
4751
|
-
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
4752
|
-
*/
|
|
4753
|
-
meta: {
|
|
4754
|
-
[key: string]: unknown;
|
|
4755
|
-
};
|
|
4756
|
-
/**
|
|
4757
|
-
* Creation timestamp
|
|
4758
|
-
*/
|
|
4759
|
-
createdAt: string;
|
|
4760
|
-
/**
|
|
4761
|
-
* Last update timestamp
|
|
4762
|
-
*/
|
|
4763
|
-
updatedAt: string;
|
|
4764
|
-
};
|
|
4765
|
-
|
|
4766
|
-
export type PriceListResponseDto = {
|
|
4767
|
-
/**
|
|
4768
|
-
* List of prices
|
|
4769
|
-
*/
|
|
4770
|
-
items: Array<PriceResponseDto>;
|
|
4771
|
-
/**
|
|
4772
|
-
* Total number of prices
|
|
4773
|
-
*/
|
|
4774
|
-
total: number;
|
|
4775
|
-
};
|
|
4776
|
-
|
|
4777
|
-
export type UpdateBeanPriceDto = {
|
|
4778
|
-
/**
|
|
4779
|
-
* Currency being priced
|
|
4780
|
-
*/
|
|
4781
|
-
currency?: string;
|
|
4782
|
-
/**
|
|
4783
|
-
* Quote currency (pricing currency)
|
|
4784
|
-
*/
|
|
4785
|
-
quoteCurrency?: string;
|
|
4786
|
-
/**
|
|
4787
|
-
* Price amount (MUST be >= 0 per Beancount spec)
|
|
4788
|
-
*/
|
|
4789
|
-
amount?: number;
|
|
4790
|
-
/**
|
|
4791
|
-
* Price date (ISO 8601 format)
|
|
4792
|
-
*/
|
|
4793
|
-
date?: string;
|
|
4794
|
-
/**
|
|
4795
|
-
* Metadata
|
|
4796
|
-
*/
|
|
4797
|
-
metadata?: {
|
|
4798
|
-
[key: string]: unknown;
|
|
4799
|
-
};
|
|
4800
|
-
};
|
|
4801
|
-
|
|
4802
5212
|
export type CurrencyBalanceDto = {
|
|
4803
5213
|
/**
|
|
4804
5214
|
* ISO 4217 currency code
|
|
@@ -4825,6 +5235,14 @@ export type TimeSeriesPointDto = {
|
|
|
4825
5235
|
change?: {
|
|
4826
5236
|
[key: string]: unknown;
|
|
4827
5237
|
};
|
|
5238
|
+
/**
|
|
5239
|
+
* Total assets at this date (in base currency)
|
|
5240
|
+
*/
|
|
5241
|
+
assets?: string;
|
|
5242
|
+
/**
|
|
5243
|
+
* Total liabilities at this date (in base currency)
|
|
5244
|
+
*/
|
|
5245
|
+
liabilities?: string;
|
|
4828
5246
|
/**
|
|
4829
5247
|
* Multi-currency breakdown for this point
|
|
4830
5248
|
*/
|
|
@@ -4892,6 +5310,71 @@ export type PortfolioTrendsResponseDto = {
|
|
|
4892
5310
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4893
5311
|
};
|
|
4894
5312
|
|
|
5313
|
+
export type CashFlowPointDto = {
|
|
5314
|
+
/**
|
|
5315
|
+
* Month key (YYYY-MM)
|
|
5316
|
+
*/
|
|
5317
|
+
month: string;
|
|
5318
|
+
/**
|
|
5319
|
+
* Income in base currency (absolute, converted)
|
|
5320
|
+
*/
|
|
5321
|
+
income: string;
|
|
5322
|
+
/**
|
|
5323
|
+
* Expense in base currency (absolute, converted)
|
|
5324
|
+
*/
|
|
5325
|
+
expense: string;
|
|
5326
|
+
/**
|
|
5327
|
+
* netSavings = income − expense (savings positive)
|
|
5328
|
+
*/
|
|
5329
|
+
netSavings: string;
|
|
5330
|
+
};
|
|
5331
|
+
|
|
5332
|
+
export type CashFlowTrendSummaryDto = {
|
|
5333
|
+
/**
|
|
5334
|
+
* Total income across the period
|
|
5335
|
+
*/
|
|
5336
|
+
totalIncome: string;
|
|
5337
|
+
/**
|
|
5338
|
+
* Total expense across the period
|
|
5339
|
+
*/
|
|
5340
|
+
totalExpense: string;
|
|
5341
|
+
/**
|
|
5342
|
+
* income − expense across the period
|
|
5343
|
+
*/
|
|
5344
|
+
totalNetSavings: string;
|
|
5345
|
+
/**
|
|
5346
|
+
* totalNetSavings divided by the window length (N months, incl. zero-filled)
|
|
5347
|
+
*/
|
|
5348
|
+
averageMonthlyNetSavings: string;
|
|
5349
|
+
};
|
|
5350
|
+
|
|
5351
|
+
export type CashFlowTrendsResponseDto = {
|
|
5352
|
+
/**
|
|
5353
|
+
* Monthly cash-flow series (fixed N-month window, zero-filled)
|
|
5354
|
+
*/
|
|
5355
|
+
series: Array<CashFlowPointDto>;
|
|
5356
|
+
/**
|
|
5357
|
+
* Period totals
|
|
5358
|
+
*/
|
|
5359
|
+
summary: CashFlowTrendSummaryDto;
|
|
5360
|
+
/**
|
|
5361
|
+
* Period requested
|
|
5362
|
+
*/
|
|
5363
|
+
period: string;
|
|
5364
|
+
/**
|
|
5365
|
+
* Data granularity (v1 returns month buckets)
|
|
5366
|
+
*/
|
|
5367
|
+
granularity: string;
|
|
5368
|
+
/**
|
|
5369
|
+
* Base currency for converted values
|
|
5370
|
+
*/
|
|
5371
|
+
currency: string;
|
|
5372
|
+
/**
|
|
5373
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
5374
|
+
*/
|
|
5375
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5376
|
+
};
|
|
5377
|
+
|
|
4895
5378
|
export type GenerateSnapshotBody = unknown;
|
|
4896
5379
|
|
|
4897
5380
|
export type GenerateSnapshotResponse = unknown;
|
|
@@ -4935,7 +5418,7 @@ export type AccountControllerFindAllData = {
|
|
|
4935
5418
|
*/
|
|
4936
5419
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
4937
5420
|
/**
|
|
4938
|
-
* Search term for path
|
|
5421
|
+
* Search term for account path
|
|
4939
5422
|
*/
|
|
4940
5423
|
search?: string;
|
|
4941
5424
|
/**
|
|
@@ -5078,6 +5561,10 @@ export type TransactionControllerListData = {
|
|
|
5078
5561
|
* Filter by account ID (transactions with postings to this account)
|
|
5079
5562
|
*/
|
|
5080
5563
|
accountId?: string;
|
|
5564
|
+
/**
|
|
5565
|
+
* Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
|
|
5566
|
+
*/
|
|
5567
|
+
category?: string;
|
|
5081
5568
|
/**
|
|
5082
5569
|
* Filter by start date (inclusive), format: YYYY-MM-DD
|
|
5083
5570
|
*/
|
|
@@ -5202,7 +5689,7 @@ export type TransactionControllerDeleteResponse = void;
|
|
|
5202
5689
|
|
|
5203
5690
|
export type BalanceControllerGetBalanceData = {
|
|
5204
5691
|
/**
|
|
5205
|
-
* Account name (e.g., "Assets:
|
|
5692
|
+
* Account name (e.g., "Assets:Checking")
|
|
5206
5693
|
*/
|
|
5207
5694
|
account: string;
|
|
5208
5695
|
/**
|
|
@@ -5512,97 +5999,194 @@ export type PayeeProfileAdminControllerUnverifyData = {
|
|
|
5512
5999
|
id: string;
|
|
5513
6000
|
};
|
|
5514
6001
|
|
|
5515
|
-
export type PayeeProfileAdminControllerUnverifyResponse =
|
|
5516
|
-
PayeeProfileResponseDto;
|
|
6002
|
+
export type PayeeProfileAdminControllerUnverifyResponse =
|
|
6003
|
+
PayeeProfileResponseDto;
|
|
6004
|
+
|
|
6005
|
+
export type CommodityControllerCreateData = {
|
|
6006
|
+
/**
|
|
6007
|
+
* Region code for tenant context
|
|
6008
|
+
*/
|
|
6009
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6010
|
+
requestBody: CreateCommodityDto;
|
|
6011
|
+
};
|
|
6012
|
+
|
|
6013
|
+
export type CommodityControllerCreateResponse = CommodityResponseDto;
|
|
6014
|
+
|
|
6015
|
+
export type CommodityControllerFindAllData = {
|
|
6016
|
+
/**
|
|
6017
|
+
* Region code for tenant context
|
|
6018
|
+
*/
|
|
6019
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6020
|
+
/**
|
|
6021
|
+
* Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
|
|
6022
|
+
*/
|
|
6023
|
+
search?: string;
|
|
6024
|
+
/**
|
|
6025
|
+
* Filter by exact symbol match
|
|
6026
|
+
*/
|
|
6027
|
+
symbol?: string;
|
|
6028
|
+
};
|
|
6029
|
+
|
|
6030
|
+
export type CommodityControllerFindAllResponse = CommodityListResponseDto;
|
|
6031
|
+
|
|
6032
|
+
export type CommodityControllerFindOneData = {
|
|
6033
|
+
/**
|
|
6034
|
+
* Region code for tenant context
|
|
6035
|
+
*/
|
|
6036
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6037
|
+
/**
|
|
6038
|
+
* Commodity symbol
|
|
6039
|
+
*/
|
|
6040
|
+
symbol: string;
|
|
6041
|
+
};
|
|
6042
|
+
|
|
6043
|
+
export type CommodityControllerFindOneResponse = CommodityResponseDto;
|
|
6044
|
+
|
|
6045
|
+
export type CommodityControllerUpdateData = {
|
|
6046
|
+
/**
|
|
6047
|
+
* Region code for tenant context
|
|
6048
|
+
*/
|
|
6049
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6050
|
+
requestBody: UpdateCommodityDto;
|
|
6051
|
+
/**
|
|
6052
|
+
* Commodity symbol
|
|
6053
|
+
*/
|
|
6054
|
+
symbol: string;
|
|
6055
|
+
};
|
|
6056
|
+
|
|
6057
|
+
export type CommodityControllerUpdateResponse = CommodityResponseDto;
|
|
6058
|
+
|
|
6059
|
+
export type CommodityControllerDeleteData = {
|
|
6060
|
+
/**
|
|
6061
|
+
* Region code for tenant context
|
|
6062
|
+
*/
|
|
6063
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6064
|
+
/**
|
|
6065
|
+
* Commodity symbol
|
|
6066
|
+
*/
|
|
6067
|
+
symbol: string;
|
|
6068
|
+
};
|
|
6069
|
+
|
|
6070
|
+
export type CommodityControllerDeleteResponse = void;
|
|
6071
|
+
|
|
6072
|
+
export type CommodityControllerGetOrCreateData = {
|
|
6073
|
+
/**
|
|
6074
|
+
* Region code for tenant context
|
|
6075
|
+
*/
|
|
6076
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6077
|
+
/**
|
|
6078
|
+
* Commodity symbol
|
|
6079
|
+
*/
|
|
6080
|
+
symbol: string;
|
|
6081
|
+
};
|
|
6082
|
+
|
|
6083
|
+
export type CommodityControllerGetOrCreateResponse = CommodityResponseDto;
|
|
6084
|
+
|
|
6085
|
+
export type CommodityControllerBulkCreateData = {
|
|
6086
|
+
/**
|
|
6087
|
+
* Region code for tenant context
|
|
6088
|
+
*/
|
|
6089
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6090
|
+
};
|
|
6091
|
+
|
|
6092
|
+
export type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
|
|
5517
6093
|
|
|
5518
|
-
export type
|
|
6094
|
+
export type PriceControllerCreateData = {
|
|
5519
6095
|
/**
|
|
5520
6096
|
* Region code for tenant context
|
|
5521
6097
|
*/
|
|
5522
6098
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5523
|
-
requestBody:
|
|
6099
|
+
requestBody: CreateBeanPriceDto;
|
|
5524
6100
|
};
|
|
5525
6101
|
|
|
5526
|
-
export type
|
|
6102
|
+
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
5527
6103
|
|
|
5528
|
-
export type
|
|
6104
|
+
export type PriceControllerFindAllData = {
|
|
5529
6105
|
/**
|
|
5530
|
-
*
|
|
6106
|
+
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
5531
6107
|
*/
|
|
5532
|
-
|
|
6108
|
+
currency?: string;
|
|
5533
6109
|
/**
|
|
5534
|
-
*
|
|
6110
|
+
* Filter prices from this date (ISO 8601 format)
|
|
5535
6111
|
*/
|
|
5536
|
-
|
|
6112
|
+
dateFrom?: string;
|
|
5537
6113
|
/**
|
|
5538
|
-
* Filter
|
|
6114
|
+
* Filter prices to this date (ISO 8601 format)
|
|
5539
6115
|
*/
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5545
|
-
|
|
6116
|
+
dateTo?: string;
|
|
6117
|
+
/**
|
|
6118
|
+
* Number of items per page (default: 20, max: 100)
|
|
6119
|
+
*/
|
|
6120
|
+
limit?: number;
|
|
6121
|
+
/**
|
|
6122
|
+
* Page number for pagination (default: 1)
|
|
6123
|
+
*/
|
|
6124
|
+
page?: number;
|
|
6125
|
+
/**
|
|
6126
|
+
* Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
6127
|
+
*/
|
|
6128
|
+
quoteCurrency?: string;
|
|
5546
6129
|
/**
|
|
5547
6130
|
* Region code for tenant context
|
|
5548
6131
|
*/
|
|
5549
6132
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5550
6133
|
/**
|
|
5551
|
-
*
|
|
6134
|
+
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
5552
6135
|
*/
|
|
5553
|
-
|
|
6136
|
+
search?: string;
|
|
5554
6137
|
};
|
|
5555
6138
|
|
|
5556
|
-
export type
|
|
6139
|
+
export type PriceControllerFindAllResponse = PriceListResponseDto;
|
|
5557
6140
|
|
|
5558
|
-
export type
|
|
6141
|
+
export type PriceControllerFindOneData = {
|
|
5559
6142
|
/**
|
|
5560
|
-
*
|
|
6143
|
+
* Price ID
|
|
5561
6144
|
*/
|
|
5562
|
-
|
|
5563
|
-
requestBody: UpdateCommodityDto;
|
|
6145
|
+
id: string;
|
|
5564
6146
|
/**
|
|
5565
|
-
*
|
|
6147
|
+
* Region code for tenant context
|
|
5566
6148
|
*/
|
|
5567
|
-
|
|
6149
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5568
6150
|
};
|
|
5569
6151
|
|
|
5570
|
-
export type
|
|
6152
|
+
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
5571
6153
|
|
|
5572
|
-
export type
|
|
6154
|
+
export type PriceControllerUpdateData = {
|
|
5573
6155
|
/**
|
|
5574
|
-
*
|
|
6156
|
+
* Price ID
|
|
5575
6157
|
*/
|
|
5576
|
-
|
|
6158
|
+
id: string;
|
|
5577
6159
|
/**
|
|
5578
|
-
*
|
|
6160
|
+
* Region code for tenant context
|
|
5579
6161
|
*/
|
|
5580
|
-
|
|
6162
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6163
|
+
requestBody: UpdateBeanPriceDto;
|
|
5581
6164
|
};
|
|
5582
6165
|
|
|
5583
|
-
export type
|
|
6166
|
+
export type PriceControllerUpdateResponse = PriceResponseDto;
|
|
5584
6167
|
|
|
5585
|
-
export type
|
|
6168
|
+
export type PriceControllerDeleteData = {
|
|
5586
6169
|
/**
|
|
5587
|
-
*
|
|
6170
|
+
* Price ID
|
|
5588
6171
|
*/
|
|
5589
|
-
|
|
6172
|
+
id: string;
|
|
5590
6173
|
/**
|
|
5591
|
-
*
|
|
6174
|
+
* Region code for tenant context
|
|
5592
6175
|
*/
|
|
5593
|
-
|
|
6176
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5594
6177
|
};
|
|
5595
6178
|
|
|
5596
|
-
export type
|
|
6179
|
+
export type PriceControllerDeleteResponse = void;
|
|
5597
6180
|
|
|
5598
|
-
export type
|
|
6181
|
+
export type PriceControllerBulkCreateData = {
|
|
5599
6182
|
/**
|
|
5600
6183
|
* Region code for tenant context
|
|
5601
6184
|
*/
|
|
5602
6185
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6186
|
+
requestBody: Array<string>;
|
|
5603
6187
|
};
|
|
5604
6188
|
|
|
5605
|
-
export type
|
|
6189
|
+
export type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
|
|
5606
6190
|
|
|
5607
6191
|
export type RecurringRuleControllerCreateData = {
|
|
5608
6192
|
/**
|
|
@@ -6069,6 +6653,159 @@ export type PropertyControllerDeleteData = {
|
|
|
6069
6653
|
|
|
6070
6654
|
export type PropertyControllerDeleteResponse = void;
|
|
6071
6655
|
|
|
6656
|
+
export type EventControllerCreateData = {
|
|
6657
|
+
/**
|
|
6658
|
+
* Region code for tenant context (decorative for life events)
|
|
6659
|
+
*/
|
|
6660
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6661
|
+
requestBody: CreateBeanEventDto;
|
|
6662
|
+
};
|
|
6663
|
+
|
|
6664
|
+
export type EventControllerCreateResponse = EventResponseDto;
|
|
6665
|
+
|
|
6666
|
+
export type EventControllerFindAllData = {
|
|
6667
|
+
/**
|
|
6668
|
+
* Filter life events from this date (ISO 8601 format)
|
|
6669
|
+
*/
|
|
6670
|
+
from?: string;
|
|
6671
|
+
/**
|
|
6672
|
+
* Number of items per page (default: 20, max: 100)
|
|
6673
|
+
*/
|
|
6674
|
+
limit?: number;
|
|
6675
|
+
/**
|
|
6676
|
+
* Page number for pagination (default: 1)
|
|
6677
|
+
*/
|
|
6678
|
+
page?: number;
|
|
6679
|
+
/**
|
|
6680
|
+
* Search term for description (case-insensitive partial match)
|
|
6681
|
+
*/
|
|
6682
|
+
q?: string;
|
|
6683
|
+
/**
|
|
6684
|
+
* Region code for tenant context (decorative for life events)
|
|
6685
|
+
*/
|
|
6686
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6687
|
+
/**
|
|
6688
|
+
* Filter life events to this date (ISO 8601 format)
|
|
6689
|
+
*/
|
|
6690
|
+
to?: string;
|
|
6691
|
+
/**
|
|
6692
|
+
* Filter by life event type (exact match)
|
|
6693
|
+
*/
|
|
6694
|
+
type?: string;
|
|
6695
|
+
};
|
|
6696
|
+
|
|
6697
|
+
export type EventControllerFindAllResponse = EventListResponseDto;
|
|
6698
|
+
|
|
6699
|
+
export type EventControllerFindOneData = {
|
|
6700
|
+
/**
|
|
6701
|
+
* Life event ID
|
|
6702
|
+
*/
|
|
6703
|
+
id: string;
|
|
6704
|
+
/**
|
|
6705
|
+
* Region code for tenant context (decorative for life events)
|
|
6706
|
+
*/
|
|
6707
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6708
|
+
};
|
|
6709
|
+
|
|
6710
|
+
export type EventControllerFindOneResponse = EventResponseDto;
|
|
6711
|
+
|
|
6712
|
+
export type EventControllerUpdateData = {
|
|
6713
|
+
/**
|
|
6714
|
+
* Life event ID
|
|
6715
|
+
*/
|
|
6716
|
+
id: string;
|
|
6717
|
+
/**
|
|
6718
|
+
* Region code for tenant context (decorative for life events)
|
|
6719
|
+
*/
|
|
6720
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6721
|
+
requestBody: UpdateBeanEventDto;
|
|
6722
|
+
};
|
|
6723
|
+
|
|
6724
|
+
export type EventControllerUpdateResponse = EventResponseDto;
|
|
6725
|
+
|
|
6726
|
+
export type EventControllerDeleteData = {
|
|
6727
|
+
/**
|
|
6728
|
+
* Life event ID
|
|
6729
|
+
*/
|
|
6730
|
+
id: string;
|
|
6731
|
+
/**
|
|
6732
|
+
* Region code for tenant context (decorative for life events)
|
|
6733
|
+
*/
|
|
6734
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6735
|
+
};
|
|
6736
|
+
|
|
6737
|
+
export type EventControllerDeleteResponse = void;
|
|
6738
|
+
|
|
6739
|
+
export type EventControllerGetSliceData = {
|
|
6740
|
+
accountPattern: string;
|
|
6741
|
+
granularity: string;
|
|
6742
|
+
/**
|
|
6743
|
+
* Life event ID
|
|
6744
|
+
*/
|
|
6745
|
+
id: string;
|
|
6746
|
+
/**
|
|
6747
|
+
* Region code for tenant context (decorative for life events)
|
|
6748
|
+
*/
|
|
6749
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6750
|
+
};
|
|
6751
|
+
|
|
6752
|
+
export type EventControllerGetSliceResponse = unknown;
|
|
6753
|
+
|
|
6754
|
+
export type OnboardingControllerBootstrapData = {
|
|
6755
|
+
/**
|
|
6756
|
+
* Region code for tenant context
|
|
6757
|
+
*/
|
|
6758
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6759
|
+
requestBody: OnboardingDto;
|
|
6760
|
+
};
|
|
6761
|
+
|
|
6762
|
+
export type OnboardingControllerBootstrapResponse = unknown;
|
|
6763
|
+
|
|
6764
|
+
export type ReconciliationControllerComputeData = {
|
|
6765
|
+
/**
|
|
6766
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6767
|
+
*/
|
|
6768
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6769
|
+
requestBody: ComputeReconciliationDto;
|
|
6770
|
+
};
|
|
6771
|
+
|
|
6772
|
+
export type ReconciliationControllerComputeResponse =
|
|
6773
|
+
ReconciliationComputeResultDto;
|
|
6774
|
+
|
|
6775
|
+
export type ReconciliationControllerAssertData = {
|
|
6776
|
+
/**
|
|
6777
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6778
|
+
*/
|
|
6779
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6780
|
+
requestBody: AssertReconciliationDto;
|
|
6781
|
+
};
|
|
6782
|
+
|
|
6783
|
+
export type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
|
|
6784
|
+
|
|
6785
|
+
export type ReconciliationControllerPadData = {
|
|
6786
|
+
/**
|
|
6787
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6788
|
+
*/
|
|
6789
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6790
|
+
requestBody: PadReconciliationDto;
|
|
6791
|
+
};
|
|
6792
|
+
|
|
6793
|
+
export type ReconciliationControllerPadResponse = PadResultDto;
|
|
6794
|
+
|
|
6795
|
+
export type ReconciliationControllerHistoryData = {
|
|
6796
|
+
/**
|
|
6797
|
+
* BeanAccount id
|
|
6798
|
+
*/
|
|
6799
|
+
accountId: string;
|
|
6800
|
+
/**
|
|
6801
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6802
|
+
*/
|
|
6803
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6804
|
+
};
|
|
6805
|
+
|
|
6806
|
+
export type ReconciliationControllerHistoryResponse =
|
|
6807
|
+
Array<ReconciliationRecordDto>;
|
|
6808
|
+
|
|
6072
6809
|
export type ExportControllerExportBeancountResponse = unknown;
|
|
6073
6810
|
|
|
6074
6811
|
export type FileImportControllerImportFileData = {
|
|
@@ -6161,92 +6898,93 @@ export type ImporterConfigControllerResetConfigData = {
|
|
|
6161
6898
|
|
|
6162
6899
|
export type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
|
|
6163
6900
|
|
|
6164
|
-
export type
|
|
6165
|
-
|
|
6166
|
-
export type PlatformControllerCreateData = {
|
|
6167
|
-
requestBody: CreatePlatformDto;
|
|
6168
|
-
};
|
|
6169
|
-
|
|
6170
|
-
export type PlatformControllerCreateResponse = unknown;
|
|
6171
|
-
|
|
6172
|
-
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
6173
|
-
|
|
6174
|
-
export type PlatformControllerMatchPlatformsData = {
|
|
6901
|
+
export type ProviderSyncControllerSyncData = {
|
|
6175
6902
|
/**
|
|
6176
|
-
*
|
|
6903
|
+
* Provider name
|
|
6177
6904
|
*/
|
|
6178
|
-
|
|
6905
|
+
providerName:
|
|
6906
|
+
| 'plaid'
|
|
6907
|
+
| 'teller'
|
|
6908
|
+
| 'truelayer'
|
|
6909
|
+
| 'gocardless'
|
|
6910
|
+
| 'simplefin'
|
|
6911
|
+
| 'yodlee'
|
|
6912
|
+
| 'beancount-direct'
|
|
6913
|
+
| 'parsed-bill';
|
|
6179
6914
|
/**
|
|
6180
|
-
* Region code for
|
|
6915
|
+
* Region code for tenant context
|
|
6181
6916
|
*/
|
|
6182
|
-
region
|
|
6917
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6918
|
+
requestBody: ProviderSyncDto;
|
|
6183
6919
|
};
|
|
6184
6920
|
|
|
6185
|
-
export type
|
|
6921
|
+
export type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
|
|
6186
6922
|
|
|
6187
|
-
export type
|
|
6923
|
+
export type ProviderSyncControllerGetSupportedProvidersData = {
|
|
6188
6924
|
/**
|
|
6189
|
-
*
|
|
6925
|
+
* Region code for tenant context
|
|
6190
6926
|
*/
|
|
6191
|
-
|
|
6192
|
-
requestBody: UpdatePlatformDto;
|
|
6927
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6193
6928
|
};
|
|
6194
6929
|
|
|
6195
|
-
export type
|
|
6930
|
+
export type ProviderSyncControllerGetSupportedProvidersResponse =
|
|
6931
|
+
SupportedProvidersResponseDto;
|
|
6196
6932
|
|
|
6197
|
-
export type
|
|
6933
|
+
export type ProviderSyncControllerIsProviderSupportedData = {
|
|
6198
6934
|
/**
|
|
6199
|
-
*
|
|
6935
|
+
* Provider name to check
|
|
6200
6936
|
*/
|
|
6201
|
-
|
|
6202
|
-
};
|
|
6203
|
-
|
|
6204
|
-
export type PlatformControllerDeleteResponse = void;
|
|
6205
|
-
|
|
6206
|
-
export type ProviderSyncControllerSyncData = {
|
|
6937
|
+
providerName: string;
|
|
6207
6938
|
/**
|
|
6208
|
-
*
|
|
6939
|
+
* Region code for tenant context
|
|
6209
6940
|
*/
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
| 'yodlee'
|
|
6217
|
-
| 'beancount-direct'
|
|
6218
|
-
| 'parsed-bill';
|
|
6941
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6942
|
+
};
|
|
6943
|
+
|
|
6944
|
+
export type ProviderSyncControllerIsProviderSupportedResponse = unknown;
|
|
6945
|
+
|
|
6946
|
+
export type ExternalAccountLinkControllerCreateData = {
|
|
6219
6947
|
/**
|
|
6220
6948
|
* Region code for tenant context
|
|
6221
6949
|
*/
|
|
6222
6950
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6223
|
-
requestBody:
|
|
6951
|
+
requestBody: CreateExternalAccountLinkDto;
|
|
6224
6952
|
};
|
|
6225
6953
|
|
|
6226
|
-
export type
|
|
6954
|
+
export type ExternalAccountLinkControllerCreateResponse =
|
|
6955
|
+
ExternalAccountLinkResponseDto;
|
|
6227
6956
|
|
|
6228
|
-
export type
|
|
6957
|
+
export type ExternalAccountLinkControllerFindAllData = {
|
|
6958
|
+
provider: string;
|
|
6229
6959
|
/**
|
|
6230
6960
|
* Region code for tenant context
|
|
6231
6961
|
*/
|
|
6232
6962
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6233
6963
|
};
|
|
6234
6964
|
|
|
6235
|
-
export type
|
|
6236
|
-
|
|
6965
|
+
export type ExternalAccountLinkControllerFindAllResponse =
|
|
6966
|
+
ExternalAccountLinkListResponseDto;
|
|
6237
6967
|
|
|
6238
|
-
export type
|
|
6968
|
+
export type ExternalAccountLinkControllerFindOneData = {
|
|
6969
|
+
id: string;
|
|
6239
6970
|
/**
|
|
6240
|
-
*
|
|
6971
|
+
* Region code for tenant context
|
|
6241
6972
|
*/
|
|
6242
|
-
|
|
6973
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6974
|
+
};
|
|
6975
|
+
|
|
6976
|
+
export type ExternalAccountLinkControllerFindOneResponse =
|
|
6977
|
+
ExternalAccountLinkResponseDto;
|
|
6978
|
+
|
|
6979
|
+
export type ExternalAccountLinkControllerRemoveData = {
|
|
6980
|
+
id: string;
|
|
6243
6981
|
/**
|
|
6244
6982
|
* Region code for tenant context
|
|
6245
6983
|
*/
|
|
6246
6984
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6247
6985
|
};
|
|
6248
6986
|
|
|
6249
|
-
export type
|
|
6987
|
+
export type ExternalAccountLinkControllerRemoveResponse = void;
|
|
6250
6988
|
|
|
6251
6989
|
export type TelemetryControllerReportTelemetryData = {
|
|
6252
6990
|
/**
|
|
@@ -6320,6 +7058,48 @@ export type NlpControllerGetSessionData = {
|
|
|
6320
7058
|
|
|
6321
7059
|
export type NlpControllerGetSessionResponse = unknown;
|
|
6322
7060
|
|
|
7061
|
+
export type PlatformControllerFindAllResponse = unknown;
|
|
7062
|
+
|
|
7063
|
+
export type PlatformControllerCreateData = {
|
|
7064
|
+
requestBody: CreatePlatformDto;
|
|
7065
|
+
};
|
|
7066
|
+
|
|
7067
|
+
export type PlatformControllerCreateResponse = unknown;
|
|
7068
|
+
|
|
7069
|
+
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
7070
|
+
|
|
7071
|
+
export type PlatformControllerMatchPlatformsData = {
|
|
7072
|
+
/**
|
|
7073
|
+
* Search query — Chinese name, English name, or abbreviation
|
|
7074
|
+
*/
|
|
7075
|
+
q: string;
|
|
7076
|
+
/**
|
|
7077
|
+
* Region code for category override lookup
|
|
7078
|
+
*/
|
|
7079
|
+
region?: string;
|
|
7080
|
+
};
|
|
7081
|
+
|
|
7082
|
+
export type PlatformControllerMatchPlatformsResponse = unknown;
|
|
7083
|
+
|
|
7084
|
+
export type PlatformControllerUpdateData = {
|
|
7085
|
+
/**
|
|
7086
|
+
* Platform ID
|
|
7087
|
+
*/
|
|
7088
|
+
id: string;
|
|
7089
|
+
requestBody: UpdatePlatformDto;
|
|
7090
|
+
};
|
|
7091
|
+
|
|
7092
|
+
export type PlatformControllerUpdateResponse = unknown;
|
|
7093
|
+
|
|
7094
|
+
export type PlatformControllerDeleteData = {
|
|
7095
|
+
/**
|
|
7096
|
+
* Platform ID
|
|
7097
|
+
*/
|
|
7098
|
+
id: string;
|
|
7099
|
+
};
|
|
7100
|
+
|
|
7101
|
+
export type PlatformControllerDeleteResponse = void;
|
|
7102
|
+
|
|
6323
7103
|
export type DashboardControllerGetNetWorthData = {
|
|
6324
7104
|
/**
|
|
6325
7105
|
* Date for balance calculation (ISO 8601 format)
|
|
@@ -6374,127 +7154,70 @@ export type DashboardControllerGetCashFlowData = {
|
|
|
6374
7154
|
|
|
6375
7155
|
export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
|
|
6376
7156
|
|
|
6377
|
-
export type
|
|
6378
|
-
/**
|
|
6379
|
-
* Scope to a single account
|
|
6380
|
-
*/
|
|
6381
|
-
accountId?: string;
|
|
6382
|
-
/**
|
|
6383
|
-
* As-of date (ISO 8601), defaults to today
|
|
6384
|
-
*/
|
|
6385
|
-
asOf?: string;
|
|
6386
|
-
/**
|
|
6387
|
-
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6388
|
-
*/
|
|
6389
|
-
method?: 'FIFO' | 'average';
|
|
6390
|
-
/**
|
|
6391
|
-
* Region code for tenant context
|
|
6392
|
-
*/
|
|
6393
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6394
|
-
};
|
|
6395
|
-
|
|
6396
|
-
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6397
|
-
|
|
6398
|
-
export type PriceControllerCreateData = {
|
|
6399
|
-
/**
|
|
6400
|
-
* Region code for tenant context
|
|
6401
|
-
*/
|
|
6402
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6403
|
-
requestBody: CreateBeanPriceDto;
|
|
6404
|
-
};
|
|
6405
|
-
|
|
6406
|
-
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
6407
|
-
|
|
6408
|
-
export type PriceControllerFindAllData = {
|
|
6409
|
-
/**
|
|
6410
|
-
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
6411
|
-
*/
|
|
6412
|
-
currency?: string;
|
|
7157
|
+
export type DashboardControllerGetExpensesData = {
|
|
6413
7158
|
/**
|
|
6414
|
-
*
|
|
6415
|
-
*/
|
|
6416
|
-
dateFrom?: string;
|
|
6417
|
-
/**
|
|
6418
|
-
* Filter prices to this date (ISO 8601 format)
|
|
6419
|
-
*/
|
|
6420
|
-
dateTo?: string;
|
|
6421
|
-
/**
|
|
6422
|
-
* Number of items per page (default: 20, max: 100)
|
|
7159
|
+
* Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
6423
7160
|
*/
|
|
6424
|
-
|
|
7161
|
+
flow?: 'expense' | 'income';
|
|
6425
7162
|
/**
|
|
6426
|
-
*
|
|
7163
|
+
* Grouping strategy
|
|
6427
7164
|
*/
|
|
6428
|
-
|
|
7165
|
+
groupBy?: 'category';
|
|
6429
7166
|
/**
|
|
6430
|
-
*
|
|
7167
|
+
* Time window (1m = current calendar month)
|
|
6431
7168
|
*/
|
|
6432
|
-
|
|
7169
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6433
7170
|
/**
|
|
6434
7171
|
* Region code for tenant context
|
|
6435
7172
|
*/
|
|
6436
7173
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6437
|
-
/**
|
|
6438
|
-
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
6439
|
-
*/
|
|
6440
|
-
search?: string;
|
|
6441
7174
|
};
|
|
6442
7175
|
|
|
6443
|
-
export type
|
|
7176
|
+
export type DashboardControllerGetExpensesResponse =
|
|
7177
|
+
ExpensesByCategoryResponseDto;
|
|
6444
7178
|
|
|
6445
|
-
export type
|
|
7179
|
+
export type HoldingPnlControllerGetHoldingPnlData = {
|
|
6446
7180
|
/**
|
|
6447
|
-
*
|
|
7181
|
+
* Scope to a single account
|
|
6448
7182
|
*/
|
|
6449
|
-
|
|
7183
|
+
accountId?: string;
|
|
6450
7184
|
/**
|
|
6451
|
-
*
|
|
7185
|
+
* As-of date (ISO 8601), defaults to today
|
|
6452
7186
|
*/
|
|
6453
|
-
|
|
6454
|
-
};
|
|
6455
|
-
|
|
6456
|
-
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
6457
|
-
|
|
6458
|
-
export type PriceControllerUpdateData = {
|
|
7187
|
+
asOf?: string;
|
|
6459
7188
|
/**
|
|
6460
|
-
*
|
|
7189
|
+
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6461
7190
|
*/
|
|
6462
|
-
|
|
7191
|
+
method?: 'FIFO' | 'average';
|
|
6463
7192
|
/**
|
|
6464
7193
|
* Region code for tenant context
|
|
6465
7194
|
*/
|
|
6466
7195
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6467
|
-
requestBody: UpdateBeanPriceDto;
|
|
6468
7196
|
};
|
|
6469
7197
|
|
|
6470
|
-
export type
|
|
7198
|
+
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6471
7199
|
|
|
6472
|
-
export type
|
|
7200
|
+
export type ReportingControllerGetPortfolioTrendsData = {
|
|
6473
7201
|
/**
|
|
6474
|
-
*
|
|
7202
|
+
* Data granularity
|
|
6475
7203
|
*/
|
|
6476
|
-
|
|
7204
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6477
7205
|
/**
|
|
6478
|
-
*
|
|
7206
|
+
* Time period
|
|
6479
7207
|
*/
|
|
6480
|
-
|
|
6481
|
-
};
|
|
6482
|
-
|
|
6483
|
-
export type PriceControllerDeleteResponse = void;
|
|
6484
|
-
|
|
6485
|
-
export type PriceControllerBulkCreateData = {
|
|
7208
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6486
7209
|
/**
|
|
6487
7210
|
* Region code for tenant context
|
|
6488
7211
|
*/
|
|
6489
7212
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6490
|
-
requestBody: Array<string>;
|
|
6491
7213
|
};
|
|
6492
7214
|
|
|
6493
|
-
export type
|
|
7215
|
+
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
7216
|
+
PortfolioTrendsResponseDto;
|
|
6494
7217
|
|
|
6495
|
-
export type
|
|
7218
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6496
7219
|
/**
|
|
6497
|
-
* Data granularity
|
|
7220
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6498
7221
|
*/
|
|
6499
7222
|
granularity?: 'day' | 'week' | 'month';
|
|
6500
7223
|
/**
|
|
@@ -6507,8 +7230,8 @@ export type ReportingControllerGetPortfolioTrendsData = {
|
|
|
6507
7230
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6508
7231
|
};
|
|
6509
7232
|
|
|
6510
|
-
export type
|
|
6511
|
-
|
|
7233
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
7234
|
+
CashFlowTrendsResponseDto;
|
|
6512
7235
|
|
|
6513
7236
|
export type ReportingControllerGenerateSnapshotData = {
|
|
6514
7237
|
/**
|
|
@@ -7235,65 +7958,149 @@ export type $OpenApiTs = {
|
|
|
7235
7958
|
req: CommodityControllerFindOneData;
|
|
7236
7959
|
res: {
|
|
7237
7960
|
/**
|
|
7238
|
-
* Commodity retrieved successfully
|
|
7961
|
+
* Commodity retrieved successfully
|
|
7962
|
+
*/
|
|
7963
|
+
200: CommodityResponseDto;
|
|
7964
|
+
/**
|
|
7965
|
+
* Commodity not found
|
|
7966
|
+
*/
|
|
7967
|
+
404: ApiProblemResponseDto;
|
|
7968
|
+
};
|
|
7969
|
+
};
|
|
7970
|
+
put: {
|
|
7971
|
+
req: CommodityControllerUpdateData;
|
|
7972
|
+
res: {
|
|
7973
|
+
/**
|
|
7974
|
+
* Commodity updated successfully
|
|
7975
|
+
*/
|
|
7976
|
+
200: CommodityResponseDto;
|
|
7977
|
+
/**
|
|
7978
|
+
* Invalid input data
|
|
7979
|
+
*/
|
|
7980
|
+
400: ApiProblemResponseDto;
|
|
7981
|
+
/**
|
|
7982
|
+
* Commodity not found
|
|
7983
|
+
*/
|
|
7984
|
+
404: ApiProblemResponseDto;
|
|
7985
|
+
};
|
|
7986
|
+
};
|
|
7987
|
+
delete: {
|
|
7988
|
+
req: CommodityControllerDeleteData;
|
|
7989
|
+
res: {
|
|
7990
|
+
/**
|
|
7991
|
+
* Commodity deleted successfully
|
|
7992
|
+
*/
|
|
7993
|
+
204: void;
|
|
7994
|
+
/**
|
|
7995
|
+
* Commodity not found
|
|
7996
|
+
*/
|
|
7997
|
+
404: ApiProblemResponseDto;
|
|
7998
|
+
};
|
|
7999
|
+
};
|
|
8000
|
+
};
|
|
8001
|
+
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
8002
|
+
post: {
|
|
8003
|
+
req: CommodityControllerGetOrCreateData;
|
|
8004
|
+
res: {
|
|
8005
|
+
/**
|
|
8006
|
+
* Commodity retrieved or created
|
|
8007
|
+
*/
|
|
8008
|
+
200: CommodityResponseDto;
|
|
8009
|
+
};
|
|
8010
|
+
};
|
|
8011
|
+
};
|
|
8012
|
+
'/api/v1/{region}/bean/commodities/bulk': {
|
|
8013
|
+
post: {
|
|
8014
|
+
req: CommodityControllerBulkCreateData;
|
|
8015
|
+
res: {
|
|
8016
|
+
/**
|
|
8017
|
+
* Commodities created successfully
|
|
8018
|
+
*/
|
|
8019
|
+
201: Array<CommodityResponseDto>;
|
|
8020
|
+
};
|
|
8021
|
+
};
|
|
8022
|
+
};
|
|
8023
|
+
'/api/v1/{region}/bean/prices': {
|
|
8024
|
+
post: {
|
|
8025
|
+
req: PriceControllerCreateData;
|
|
8026
|
+
res: {
|
|
8027
|
+
/**
|
|
8028
|
+
* Price created successfully
|
|
8029
|
+
*/
|
|
8030
|
+
201: PriceResponseDto;
|
|
8031
|
+
/**
|
|
8032
|
+
* Currency or quoteCurrency commodity not found
|
|
8033
|
+
*/
|
|
8034
|
+
404: unknown;
|
|
8035
|
+
/**
|
|
8036
|
+
* Price already exists for this currency pair and date
|
|
8037
|
+
*/
|
|
8038
|
+
409: unknown;
|
|
8039
|
+
};
|
|
8040
|
+
};
|
|
8041
|
+
get: {
|
|
8042
|
+
req: PriceControllerFindAllData;
|
|
8043
|
+
res: {
|
|
8044
|
+
/**
|
|
8045
|
+
* Prices retrieved successfully
|
|
8046
|
+
*/
|
|
8047
|
+
200: PriceListResponseDto;
|
|
8048
|
+
};
|
|
8049
|
+
};
|
|
8050
|
+
};
|
|
8051
|
+
'/api/v1/{region}/bean/prices/{id}': {
|
|
8052
|
+
get: {
|
|
8053
|
+
req: PriceControllerFindOneData;
|
|
8054
|
+
res: {
|
|
8055
|
+
/**
|
|
8056
|
+
* Price retrieved successfully
|
|
7239
8057
|
*/
|
|
7240
|
-
200:
|
|
8058
|
+
200: PriceResponseDto;
|
|
7241
8059
|
/**
|
|
7242
|
-
*
|
|
8060
|
+
* Price not found
|
|
7243
8061
|
*/
|
|
7244
|
-
404:
|
|
8062
|
+
404: unknown;
|
|
7245
8063
|
};
|
|
7246
8064
|
};
|
|
7247
8065
|
put: {
|
|
7248
|
-
req:
|
|
8066
|
+
req: PriceControllerUpdateData;
|
|
7249
8067
|
res: {
|
|
7250
8068
|
/**
|
|
7251
|
-
*
|
|
8069
|
+
* Price updated successfully
|
|
7252
8070
|
*/
|
|
7253
|
-
200:
|
|
8071
|
+
200: PriceResponseDto;
|
|
7254
8072
|
/**
|
|
7255
|
-
*
|
|
8073
|
+
* Price not found
|
|
7256
8074
|
*/
|
|
7257
|
-
|
|
8075
|
+
404: unknown;
|
|
7258
8076
|
/**
|
|
7259
|
-
*
|
|
8077
|
+
* Updated price conflicts with existing price
|
|
7260
8078
|
*/
|
|
7261
|
-
|
|
8079
|
+
409: unknown;
|
|
7262
8080
|
};
|
|
7263
8081
|
};
|
|
7264
8082
|
delete: {
|
|
7265
|
-
req:
|
|
8083
|
+
req: PriceControllerDeleteData;
|
|
7266
8084
|
res: {
|
|
7267
8085
|
/**
|
|
7268
|
-
*
|
|
8086
|
+
* Price deleted successfully
|
|
7269
8087
|
*/
|
|
7270
8088
|
204: void;
|
|
7271
8089
|
/**
|
|
7272
|
-
*
|
|
7273
|
-
*/
|
|
7274
|
-
404: ApiProblemResponseDto;
|
|
7275
|
-
};
|
|
7276
|
-
};
|
|
7277
|
-
};
|
|
7278
|
-
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
7279
|
-
post: {
|
|
7280
|
-
req: CommodityControllerGetOrCreateData;
|
|
7281
|
-
res: {
|
|
7282
|
-
/**
|
|
7283
|
-
* Commodity retrieved or created
|
|
8090
|
+
* Price not found
|
|
7284
8091
|
*/
|
|
7285
|
-
|
|
8092
|
+
404: unknown;
|
|
7286
8093
|
};
|
|
7287
8094
|
};
|
|
7288
8095
|
};
|
|
7289
|
-
'/api/v1/{region}/bean/
|
|
8096
|
+
'/api/v1/{region}/bean/prices/bulk': {
|
|
7290
8097
|
post: {
|
|
7291
|
-
req:
|
|
8098
|
+
req: PriceControllerBulkCreateData;
|
|
7292
8099
|
res: {
|
|
7293
8100
|
/**
|
|
7294
|
-
*
|
|
8101
|
+
* Prices created successfully
|
|
7295
8102
|
*/
|
|
7296
|
-
201: Array<
|
|
8103
|
+
201: Array<PriceResponseDto>;
|
|
7297
8104
|
};
|
|
7298
8105
|
};
|
|
7299
8106
|
};
|
|
@@ -7941,6 +8748,181 @@ export type $OpenApiTs = {
|
|
|
7941
8748
|
};
|
|
7942
8749
|
};
|
|
7943
8750
|
};
|
|
8751
|
+
'/api/v1/{region}/bean/events': {
|
|
8752
|
+
post: {
|
|
8753
|
+
req: EventControllerCreateData;
|
|
8754
|
+
res: {
|
|
8755
|
+
/**
|
|
8756
|
+
* Life event created successfully
|
|
8757
|
+
*/
|
|
8758
|
+
201: EventResponseDto;
|
|
8759
|
+
/**
|
|
8760
|
+
* Life event already exists for this (userId, type, date) combination
|
|
8761
|
+
*/
|
|
8762
|
+
409: unknown;
|
|
8763
|
+
};
|
|
8764
|
+
};
|
|
8765
|
+
get: {
|
|
8766
|
+
req: EventControllerFindAllData;
|
|
8767
|
+
res: {
|
|
8768
|
+
/**
|
|
8769
|
+
* Life events retrieved successfully
|
|
8770
|
+
*/
|
|
8771
|
+
200: EventListResponseDto;
|
|
8772
|
+
};
|
|
8773
|
+
};
|
|
8774
|
+
};
|
|
8775
|
+
'/api/v1/{region}/bean/events/{id}': {
|
|
8776
|
+
get: {
|
|
8777
|
+
req: EventControllerFindOneData;
|
|
8778
|
+
res: {
|
|
8779
|
+
/**
|
|
8780
|
+
* Life event retrieved successfully
|
|
8781
|
+
*/
|
|
8782
|
+
200: EventResponseDto;
|
|
8783
|
+
/**
|
|
8784
|
+
* Life event not found
|
|
8785
|
+
*/
|
|
8786
|
+
404: unknown;
|
|
8787
|
+
};
|
|
8788
|
+
};
|
|
8789
|
+
put: {
|
|
8790
|
+
req: EventControllerUpdateData;
|
|
8791
|
+
res: {
|
|
8792
|
+
/**
|
|
8793
|
+
* Life event updated successfully
|
|
8794
|
+
*/
|
|
8795
|
+
200: EventResponseDto;
|
|
8796
|
+
/**
|
|
8797
|
+
* If-Match header is not a valid ISO 8601 date
|
|
8798
|
+
*/
|
|
8799
|
+
400: unknown;
|
|
8800
|
+
/**
|
|
8801
|
+
* Life event not found
|
|
8802
|
+
*/
|
|
8803
|
+
404: unknown;
|
|
8804
|
+
/**
|
|
8805
|
+
* Updated event conflicts with an existing (userId, type, date) combination
|
|
8806
|
+
*/
|
|
8807
|
+
409: unknown;
|
|
8808
|
+
/**
|
|
8809
|
+
* If-Match precondition failed (updatedAt mismatch)
|
|
8810
|
+
*/
|
|
8811
|
+
412: unknown;
|
|
8812
|
+
};
|
|
8813
|
+
};
|
|
8814
|
+
delete: {
|
|
8815
|
+
req: EventControllerDeleteData;
|
|
8816
|
+
res: {
|
|
8817
|
+
/**
|
|
8818
|
+
* Life event deleted successfully
|
|
8819
|
+
*/
|
|
8820
|
+
204: void;
|
|
8821
|
+
/**
|
|
8822
|
+
* Life event not found
|
|
8823
|
+
*/
|
|
8824
|
+
404: unknown;
|
|
8825
|
+
};
|
|
8826
|
+
};
|
|
8827
|
+
};
|
|
8828
|
+
'/api/v1/{region}/bean/events/{id}/slice': {
|
|
8829
|
+
get: {
|
|
8830
|
+
req: EventControllerGetSliceData;
|
|
8831
|
+
res: {
|
|
8832
|
+
/**
|
|
8833
|
+
* Time-series sliced by the life event range
|
|
8834
|
+
*/
|
|
8835
|
+
200: unknown;
|
|
8836
|
+
/**
|
|
8837
|
+
* accountPattern query param is empty
|
|
8838
|
+
*/
|
|
8839
|
+
400: unknown;
|
|
8840
|
+
/**
|
|
8841
|
+
* Life event not found
|
|
8842
|
+
*/
|
|
8843
|
+
404: unknown;
|
|
8844
|
+
};
|
|
8845
|
+
};
|
|
8846
|
+
};
|
|
8847
|
+
'/api/v1/{region}/bean/onboarding': {
|
|
8848
|
+
post: {
|
|
8849
|
+
req: OnboardingControllerBootstrapData;
|
|
8850
|
+
res: {
|
|
8851
|
+
/**
|
|
8852
|
+
* Onboarding bootstrap result.
|
|
8853
|
+
*/
|
|
8854
|
+
201: unknown;
|
|
8855
|
+
/**
|
|
8856
|
+
* Invalid region/account path/duplicate paths.
|
|
8857
|
+
*/
|
|
8858
|
+
422: unknown;
|
|
8859
|
+
};
|
|
8860
|
+
};
|
|
8861
|
+
};
|
|
8862
|
+
'/api/v1/{region}/bean/reconciliations': {
|
|
8863
|
+
post: {
|
|
8864
|
+
req: ReconciliationControllerComputeData;
|
|
8865
|
+
res: {
|
|
8866
|
+
/**
|
|
8867
|
+
* Reconciliation preview
|
|
8868
|
+
*/
|
|
8869
|
+
200: ReconciliationComputeResultDto;
|
|
8870
|
+
/**
|
|
8871
|
+
* Account not found
|
|
8872
|
+
*/
|
|
8873
|
+
404: unknown;
|
|
8874
|
+
};
|
|
8875
|
+
};
|
|
8876
|
+
};
|
|
8877
|
+
'/api/v1/{region}/bean/reconciliations/assert': {
|
|
8878
|
+
post: {
|
|
8879
|
+
req: ReconciliationControllerAssertData;
|
|
8880
|
+
res: {
|
|
8881
|
+
/**
|
|
8882
|
+
* Balance assertion recorded
|
|
8883
|
+
*/
|
|
8884
|
+
201: ReconciliationRecordDto;
|
|
8885
|
+
/**
|
|
8886
|
+
* Account not found
|
|
8887
|
+
*/
|
|
8888
|
+
404: unknown;
|
|
8889
|
+
};
|
|
8890
|
+
};
|
|
8891
|
+
};
|
|
8892
|
+
'/api/v1/{region}/bean/reconciliations/pad': {
|
|
8893
|
+
post: {
|
|
8894
|
+
req: ReconciliationControllerPadData;
|
|
8895
|
+
res: {
|
|
8896
|
+
/**
|
|
8897
|
+
* Pad adjusting entry generated
|
|
8898
|
+
*/
|
|
8899
|
+
201: PadResultDto;
|
|
8900
|
+
/**
|
|
8901
|
+
* Book already within tolerance — no pad needed
|
|
8902
|
+
*/
|
|
8903
|
+
400: unknown;
|
|
8904
|
+
/**
|
|
8905
|
+
* Account not found
|
|
8906
|
+
*/
|
|
8907
|
+
404: unknown;
|
|
8908
|
+
};
|
|
8909
|
+
};
|
|
8910
|
+
};
|
|
8911
|
+
'/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
|
|
8912
|
+
get: {
|
|
8913
|
+
req: ReconciliationControllerHistoryData;
|
|
8914
|
+
res: {
|
|
8915
|
+
/**
|
|
8916
|
+
* Reconciliation history
|
|
8917
|
+
*/
|
|
8918
|
+
200: Array<ReconciliationRecordDto>;
|
|
8919
|
+
/**
|
|
8920
|
+
* Account not found
|
|
8921
|
+
*/
|
|
8922
|
+
404: unknown;
|
|
8923
|
+
};
|
|
8924
|
+
};
|
|
8925
|
+
};
|
|
7944
8926
|
'/api/v1/{region}/bean/export/beancount': {
|
|
7945
8927
|
get: {
|
|
7946
8928
|
res: {
|
|
@@ -8025,141 +9007,69 @@ export type $OpenApiTs = {
|
|
|
8025
9007
|
* Beancount file imported successfully
|
|
8026
9008
|
*/
|
|
8027
9009
|
200: {
|
|
8028
|
-
imported?: number;
|
|
8029
|
-
skipped?: number;
|
|
8030
|
-
failed?: number;
|
|
8031
|
-
accountsCreated?: number;
|
|
8032
|
-
errors?: Array<{
|
|
8033
|
-
[key: string]: unknown;
|
|
8034
|
-
}>;
|
|
8035
|
-
};
|
|
8036
|
-
/**
|
|
8037
|
-
* Bad request - invalid file or no file uploaded
|
|
8038
|
-
*/
|
|
8039
|
-
400: ApiProblemResponseDto;
|
|
8040
|
-
};
|
|
8041
|
-
};
|
|
8042
|
-
};
|
|
8043
|
-
'/api/v1/{region}/bean/import/config/{importerId}': {
|
|
8044
|
-
get: {
|
|
8045
|
-
req: ImporterConfigControllerGetConfigData;
|
|
8046
|
-
res: {
|
|
8047
|
-
/**
|
|
8048
|
-
* Configuration retrieved successfully
|
|
8049
|
-
*/
|
|
8050
|
-
200: ImporterConfigDto;
|
|
8051
|
-
/**
|
|
8052
|
-
* Invalid input - Unsupported importer
|
|
8053
|
-
*/
|
|
8054
|
-
400: ApiProblemResponseDto;
|
|
8055
|
-
/**
|
|
8056
|
-
* Unauthorized - Authentication required
|
|
8057
|
-
*/
|
|
8058
|
-
401: ApiProblemResponseDto;
|
|
8059
|
-
};
|
|
8060
|
-
};
|
|
8061
|
-
put: {
|
|
8062
|
-
req: ImporterConfigControllerUpdateConfigData;
|
|
8063
|
-
res: {
|
|
8064
|
-
/**
|
|
8065
|
-
* Configuration updated successfully
|
|
8066
|
-
*/
|
|
8067
|
-
200: ImporterConfigDto;
|
|
8068
|
-
/**
|
|
8069
|
-
* Invalid input - Validation failed
|
|
8070
|
-
*/
|
|
8071
|
-
400: ApiProblemResponseDto;
|
|
8072
|
-
/**
|
|
8073
|
-
* Configuration not found
|
|
8074
|
-
*/
|
|
8075
|
-
404: ApiProblemResponseDto;
|
|
8076
|
-
};
|
|
8077
|
-
};
|
|
8078
|
-
};
|
|
8079
|
-
'/api/v1/{region}/bean/import/config/{importerId}/reset': {
|
|
8080
|
-
post: {
|
|
8081
|
-
req: ImporterConfigControllerResetConfigData;
|
|
8082
|
-
res: {
|
|
8083
|
-
/**
|
|
8084
|
-
* Configuration reset successfully
|
|
8085
|
-
*/
|
|
8086
|
-
200: ImporterConfigDto;
|
|
8087
|
-
/**
|
|
8088
|
-
* Invalid input - Unsupported importer
|
|
8089
|
-
*/
|
|
8090
|
-
400: ApiProblemResponseDto;
|
|
8091
|
-
};
|
|
8092
|
-
};
|
|
8093
|
-
};
|
|
8094
|
-
'/api/v1/bean/platforms': {
|
|
8095
|
-
get: {
|
|
8096
|
-
res: {
|
|
8097
|
-
/**
|
|
8098
|
-
* List of platforms with binding and account counts
|
|
8099
|
-
*/
|
|
8100
|
-
200: unknown;
|
|
8101
|
-
};
|
|
8102
|
-
};
|
|
8103
|
-
post: {
|
|
8104
|
-
req: PlatformControllerCreateData;
|
|
8105
|
-
res: {
|
|
8106
|
-
/**
|
|
8107
|
-
* Platform created successfully
|
|
8108
|
-
*/
|
|
8109
|
-
201: unknown;
|
|
9010
|
+
imported?: number;
|
|
9011
|
+
skipped?: number;
|
|
9012
|
+
failed?: number;
|
|
9013
|
+
accountsCreated?: number;
|
|
9014
|
+
errors?: Array<{
|
|
9015
|
+
[key: string]: unknown;
|
|
9016
|
+
}>;
|
|
9017
|
+
};
|
|
8110
9018
|
/**
|
|
8111
|
-
*
|
|
9019
|
+
* Bad request - invalid file or no file uploaded
|
|
8112
9020
|
*/
|
|
8113
|
-
|
|
9021
|
+
400: ApiProblemResponseDto;
|
|
8114
9022
|
};
|
|
8115
9023
|
};
|
|
8116
9024
|
};
|
|
8117
|
-
'/api/v1/bean/
|
|
9025
|
+
'/api/v1/{region}/bean/import/config/{importerId}': {
|
|
8118
9026
|
get: {
|
|
9027
|
+
req: ImporterConfigControllerGetConfigData;
|
|
8119
9028
|
res: {
|
|
8120
9029
|
/**
|
|
8121
|
-
*
|
|
9030
|
+
* Configuration retrieved successfully
|
|
8122
9031
|
*/
|
|
8123
|
-
200:
|
|
8124
|
-
};
|
|
8125
|
-
};
|
|
8126
|
-
};
|
|
8127
|
-
'/api/v1/bean/platforms/match': {
|
|
8128
|
-
get: {
|
|
8129
|
-
req: PlatformControllerMatchPlatformsData;
|
|
8130
|
-
res: {
|
|
9032
|
+
200: ImporterConfigDto;
|
|
8131
9033
|
/**
|
|
8132
|
-
*
|
|
9034
|
+
* Invalid input - Unsupported importer
|
|
8133
9035
|
*/
|
|
8134
|
-
|
|
9036
|
+
400: ApiProblemResponseDto;
|
|
9037
|
+
/**
|
|
9038
|
+
* Unauthorized - Authentication required
|
|
9039
|
+
*/
|
|
9040
|
+
401: ApiProblemResponseDto;
|
|
8135
9041
|
};
|
|
8136
9042
|
};
|
|
8137
|
-
};
|
|
8138
|
-
'/api/v1/bean/platforms/{id}': {
|
|
8139
9043
|
put: {
|
|
8140
|
-
req:
|
|
9044
|
+
req: ImporterConfigControllerUpdateConfigData;
|
|
8141
9045
|
res: {
|
|
8142
9046
|
/**
|
|
8143
|
-
*
|
|
9047
|
+
* Configuration updated successfully
|
|
8144
9048
|
*/
|
|
8145
|
-
200:
|
|
9049
|
+
200: ImporterConfigDto;
|
|
8146
9050
|
/**
|
|
8147
|
-
*
|
|
9051
|
+
* Invalid input - Validation failed
|
|
8148
9052
|
*/
|
|
8149
|
-
|
|
9053
|
+
400: ApiProblemResponseDto;
|
|
9054
|
+
/**
|
|
9055
|
+
* Configuration not found
|
|
9056
|
+
*/
|
|
9057
|
+
404: ApiProblemResponseDto;
|
|
8150
9058
|
};
|
|
8151
9059
|
};
|
|
8152
|
-
|
|
8153
|
-
|
|
9060
|
+
};
|
|
9061
|
+
'/api/v1/{region}/bean/import/config/{importerId}/reset': {
|
|
9062
|
+
post: {
|
|
9063
|
+
req: ImporterConfigControllerResetConfigData;
|
|
8154
9064
|
res: {
|
|
8155
9065
|
/**
|
|
8156
|
-
*
|
|
9066
|
+
* Configuration reset successfully
|
|
8157
9067
|
*/
|
|
8158
|
-
|
|
9068
|
+
200: ImporterConfigDto;
|
|
8159
9069
|
/**
|
|
8160
|
-
*
|
|
9070
|
+
* Invalid input - Unsupported importer
|
|
8161
9071
|
*/
|
|
8162
|
-
|
|
9072
|
+
400: ApiProblemResponseDto;
|
|
8163
9073
|
};
|
|
8164
9074
|
};
|
|
8165
9075
|
};
|
|
@@ -8216,6 +9126,54 @@ export type $OpenApiTs = {
|
|
|
8216
9126
|
};
|
|
8217
9127
|
};
|
|
8218
9128
|
};
|
|
9129
|
+
'/api/v1/{region}/bean/external-account-links': {
|
|
9130
|
+
post: {
|
|
9131
|
+
req: ExternalAccountLinkControllerCreateData;
|
|
9132
|
+
res: {
|
|
9133
|
+
/**
|
|
9134
|
+
* Link created.
|
|
9135
|
+
*/
|
|
9136
|
+
201: ExternalAccountLinkResponseDto;
|
|
9137
|
+
/**
|
|
9138
|
+
* beanAccountId not owned, or an active link already exists.
|
|
9139
|
+
*/
|
|
9140
|
+
422: unknown;
|
|
9141
|
+
};
|
|
9142
|
+
};
|
|
9143
|
+
get: {
|
|
9144
|
+
req: ExternalAccountLinkControllerFindAllData;
|
|
9145
|
+
res: {
|
|
9146
|
+
/**
|
|
9147
|
+
* Links retrieved.
|
|
9148
|
+
*/
|
|
9149
|
+
200: ExternalAccountLinkListResponseDto;
|
|
9150
|
+
};
|
|
9151
|
+
};
|
|
9152
|
+
};
|
|
9153
|
+
'/api/v1/{region}/bean/external-account-links/{id}': {
|
|
9154
|
+
get: {
|
|
9155
|
+
req: ExternalAccountLinkControllerFindOneData;
|
|
9156
|
+
res: {
|
|
9157
|
+
/**
|
|
9158
|
+
* Link retrieved.
|
|
9159
|
+
*/
|
|
9160
|
+
200: ExternalAccountLinkResponseDto;
|
|
9161
|
+
/**
|
|
9162
|
+
* Link not found or not owned by the user.
|
|
9163
|
+
*/
|
|
9164
|
+
422: unknown;
|
|
9165
|
+
};
|
|
9166
|
+
};
|
|
9167
|
+
delete: {
|
|
9168
|
+
req: ExternalAccountLinkControllerRemoveData;
|
|
9169
|
+
res: {
|
|
9170
|
+
/**
|
|
9171
|
+
* Link soft-deleted; historical transactions are unaffected.
|
|
9172
|
+
*/
|
|
9173
|
+
204: void;
|
|
9174
|
+
};
|
|
9175
|
+
};
|
|
9176
|
+
};
|
|
8219
9177
|
'/api/v1/{region}/bean/import/parser-telemetry': {
|
|
8220
9178
|
post: {
|
|
8221
9179
|
req: TelemetryControllerReportTelemetryData;
|
|
@@ -8304,6 +9262,78 @@ export type $OpenApiTs = {
|
|
|
8304
9262
|
};
|
|
8305
9263
|
};
|
|
8306
9264
|
};
|
|
9265
|
+
'/api/v1/bean/platforms': {
|
|
9266
|
+
get: {
|
|
9267
|
+
res: {
|
|
9268
|
+
/**
|
|
9269
|
+
* List of platforms with binding and account counts
|
|
9270
|
+
*/
|
|
9271
|
+
200: unknown;
|
|
9272
|
+
};
|
|
9273
|
+
};
|
|
9274
|
+
post: {
|
|
9275
|
+
req: PlatformControllerCreateData;
|
|
9276
|
+
res: {
|
|
9277
|
+
/**
|
|
9278
|
+
* Platform created successfully
|
|
9279
|
+
*/
|
|
9280
|
+
201: unknown;
|
|
9281
|
+
/**
|
|
9282
|
+
* Platform already exists
|
|
9283
|
+
*/
|
|
9284
|
+
409: unknown;
|
|
9285
|
+
};
|
|
9286
|
+
};
|
|
9287
|
+
};
|
|
9288
|
+
'/api/v1/bean/platforms/list': {
|
|
9289
|
+
get: {
|
|
9290
|
+
res: {
|
|
9291
|
+
/**
|
|
9292
|
+
* List of platforms with user binding status
|
|
9293
|
+
*/
|
|
9294
|
+
200: unknown;
|
|
9295
|
+
};
|
|
9296
|
+
};
|
|
9297
|
+
};
|
|
9298
|
+
'/api/v1/bean/platforms/match': {
|
|
9299
|
+
get: {
|
|
9300
|
+
req: PlatformControllerMatchPlatformsData;
|
|
9301
|
+
res: {
|
|
9302
|
+
/**
|
|
9303
|
+
* List of matching platforms with suggested segment names
|
|
9304
|
+
*/
|
|
9305
|
+
200: unknown;
|
|
9306
|
+
};
|
|
9307
|
+
};
|
|
9308
|
+
};
|
|
9309
|
+
'/api/v1/bean/platforms/{id}': {
|
|
9310
|
+
put: {
|
|
9311
|
+
req: PlatformControllerUpdateData;
|
|
9312
|
+
res: {
|
|
9313
|
+
/**
|
|
9314
|
+
* Platform updated successfully
|
|
9315
|
+
*/
|
|
9316
|
+
200: unknown;
|
|
9317
|
+
/**
|
|
9318
|
+
* Platform not found
|
|
9319
|
+
*/
|
|
9320
|
+
404: unknown;
|
|
9321
|
+
};
|
|
9322
|
+
};
|
|
9323
|
+
delete: {
|
|
9324
|
+
req: PlatformControllerDeleteData;
|
|
9325
|
+
res: {
|
|
9326
|
+
/**
|
|
9327
|
+
* Platform deleted successfully
|
|
9328
|
+
*/
|
|
9329
|
+
204: void;
|
|
9330
|
+
/**
|
|
9331
|
+
* Platform not found
|
|
9332
|
+
*/
|
|
9333
|
+
404: unknown;
|
|
9334
|
+
};
|
|
9335
|
+
};
|
|
9336
|
+
};
|
|
8307
9337
|
'/api/v1/{region}/dashboard/net-worth': {
|
|
8308
9338
|
get: {
|
|
8309
9339
|
req: DashboardControllerGetNetWorthData;
|
|
@@ -8356,16 +9386,16 @@ export type $OpenApiTs = {
|
|
|
8356
9386
|
};
|
|
8357
9387
|
};
|
|
8358
9388
|
};
|
|
8359
|
-
'/api/v1/{region}/
|
|
9389
|
+
'/api/v1/{region}/dashboard/expenses': {
|
|
8360
9390
|
get: {
|
|
8361
|
-
req:
|
|
9391
|
+
req: DashboardControllerGetExpensesData;
|
|
8362
9392
|
res: {
|
|
8363
9393
|
/**
|
|
8364
|
-
*
|
|
9394
|
+
* Expenses retrieved successfully
|
|
8365
9395
|
*/
|
|
8366
|
-
200:
|
|
9396
|
+
200: ExpensesByCategoryResponseDto;
|
|
8367
9397
|
/**
|
|
8368
|
-
* Invalid
|
|
9398
|
+
* Invalid groupBy or period
|
|
8369
9399
|
*/
|
|
8370
9400
|
400: unknown;
|
|
8371
9401
|
/**
|
|
@@ -8375,98 +9405,48 @@ export type $OpenApiTs = {
|
|
|
8375
9405
|
};
|
|
8376
9406
|
};
|
|
8377
9407
|
};
|
|
8378
|
-
'/api/v1/{region}/
|
|
8379
|
-
|
|
8380
|
-
req:
|
|
9408
|
+
'/api/v1/{region}/investment/holdings/pnl': {
|
|
9409
|
+
get: {
|
|
9410
|
+
req: HoldingPnlControllerGetHoldingPnlData;
|
|
8381
9411
|
res: {
|
|
8382
9412
|
/**
|
|
8383
|
-
*
|
|
8384
|
-
*/
|
|
8385
|
-
201: PriceResponseDto;
|
|
8386
|
-
/**
|
|
8387
|
-
* Currency or quoteCurrency commodity not found
|
|
9413
|
+
* Holding P&L retrieved successfully
|
|
8388
9414
|
*/
|
|
8389
|
-
|
|
9415
|
+
200: HoldingPnlResponseDto;
|
|
8390
9416
|
/**
|
|
8391
|
-
*
|
|
9417
|
+
* Invalid asOf format/value/future date, invalid accountId format, or unsupported method
|
|
8392
9418
|
*/
|
|
8393
|
-
|
|
8394
|
-
};
|
|
8395
|
-
};
|
|
8396
|
-
get: {
|
|
8397
|
-
req: PriceControllerFindAllData;
|
|
8398
|
-
res: {
|
|
9419
|
+
400: unknown;
|
|
8399
9420
|
/**
|
|
8400
|
-
*
|
|
9421
|
+
* User not authenticated
|
|
8401
9422
|
*/
|
|
8402
|
-
|
|
9423
|
+
401: unknown;
|
|
8403
9424
|
};
|
|
8404
9425
|
};
|
|
8405
9426
|
};
|
|
8406
|
-
'/api/v1/{region}/
|
|
9427
|
+
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
8407
9428
|
get: {
|
|
8408
|
-
req:
|
|
8409
|
-
res: {
|
|
8410
|
-
/**
|
|
8411
|
-
* Price retrieved successfully
|
|
8412
|
-
*/
|
|
8413
|
-
200: PriceResponseDto;
|
|
8414
|
-
/**
|
|
8415
|
-
* Price not found
|
|
8416
|
-
*/
|
|
8417
|
-
404: unknown;
|
|
8418
|
-
};
|
|
8419
|
-
};
|
|
8420
|
-
put: {
|
|
8421
|
-
req: PriceControllerUpdateData;
|
|
8422
|
-
res: {
|
|
8423
|
-
/**
|
|
8424
|
-
* Price updated successfully
|
|
8425
|
-
*/
|
|
8426
|
-
200: PriceResponseDto;
|
|
8427
|
-
/**
|
|
8428
|
-
* Price not found
|
|
8429
|
-
*/
|
|
8430
|
-
404: unknown;
|
|
8431
|
-
/**
|
|
8432
|
-
* Updated price conflicts with existing price
|
|
8433
|
-
*/
|
|
8434
|
-
409: unknown;
|
|
8435
|
-
};
|
|
8436
|
-
};
|
|
8437
|
-
delete: {
|
|
8438
|
-
req: PriceControllerDeleteData;
|
|
9429
|
+
req: ReportingControllerGetPortfolioTrendsData;
|
|
8439
9430
|
res: {
|
|
8440
9431
|
/**
|
|
8441
|
-
*
|
|
8442
|
-
*/
|
|
8443
|
-
204: void;
|
|
8444
|
-
/**
|
|
8445
|
-
* Price not found
|
|
9432
|
+
* Trends retrieved successfully
|
|
8446
9433
|
*/
|
|
8447
|
-
|
|
8448
|
-
};
|
|
8449
|
-
};
|
|
8450
|
-
};
|
|
8451
|
-
'/api/v1/{region}/bean/prices/bulk': {
|
|
8452
|
-
post: {
|
|
8453
|
-
req: PriceControllerBulkCreateData;
|
|
8454
|
-
res: {
|
|
9434
|
+
200: PortfolioTrendsResponseDto;
|
|
8455
9435
|
/**
|
|
8456
|
-
*
|
|
9436
|
+
* User not authenticated
|
|
8457
9437
|
*/
|
|
8458
|
-
|
|
9438
|
+
401: unknown;
|
|
8459
9439
|
};
|
|
8460
9440
|
};
|
|
8461
9441
|
};
|
|
8462
|
-
'/api/v1/{region}/reporting/
|
|
9442
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
8463
9443
|
get: {
|
|
8464
|
-
req:
|
|
9444
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
8465
9445
|
res: {
|
|
8466
9446
|
/**
|
|
8467
|
-
*
|
|
9447
|
+
* Cash-flow trends retrieved successfully
|
|
8468
9448
|
*/
|
|
8469
|
-
200:
|
|
9449
|
+
200: CashFlowTrendsResponseDto;
|
|
8470
9450
|
/**
|
|
8471
9451
|
* User not authenticated
|
|
8472
9452
|
*/
|