@firela/api-types 0.0.0-canary.2b8fcbd8 → 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 +1540 -668
- package/dist/index.d.ts +1540 -668
- package/dist/index.js +5 -3
- package/dist/index.mjs +5 -3
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +1152 -406
- package/src/generated/services.gen.ts +864 -357
- package/src/generated/types.gen.ts +1687 -734
|
@@ -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
|
*/
|
|
@@ -848,6 +820,51 @@ export type flag2 =
|
|
|
848
820
|
*/
|
|
849
821
|
export type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
|
|
850
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
|
+
|
|
851
868
|
export type TransactionListResponseDto = {
|
|
852
869
|
/**
|
|
853
870
|
* List of transactions
|
|
@@ -865,6 +882,10 @@ export type TransactionListResponseDto = {
|
|
|
865
882
|
* Number of items skipped
|
|
866
883
|
*/
|
|
867
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;
|
|
868
889
|
};
|
|
869
890
|
|
|
870
891
|
export type TagSuggestionDto = {
|
|
@@ -1917,6 +1938,108 @@ export type UpdateCommodityDto = {
|
|
|
1917
1938
|
};
|
|
1918
1939
|
};
|
|
1919
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
|
+
|
|
1920
2043
|
export type CreateRecurringRuleDto = {
|
|
1921
2044
|
/**
|
|
1922
2045
|
* Rule name (unique per user)
|
|
@@ -3029,107 +3152,351 @@ export type UpdatePropertyDto = {
|
|
|
3029
3152
|
value: string;
|
|
3030
3153
|
};
|
|
3031
3154
|
|
|
3032
|
-
export type
|
|
3155
|
+
export type CreateBeanEventDto = {
|
|
3033
3156
|
/**
|
|
3034
|
-
*
|
|
3157
|
+
* Life event date (ISO 8601)
|
|
3035
3158
|
*/
|
|
3036
|
-
|
|
3037
|
-
};
|
|
3038
|
-
|
|
3039
|
-
export type ImportErrorDto = {
|
|
3159
|
+
date: string;
|
|
3040
3160
|
/**
|
|
3041
|
-
*
|
|
3161
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
3042
3162
|
*/
|
|
3043
|
-
|
|
3163
|
+
type: string;
|
|
3044
3164
|
/**
|
|
3045
|
-
*
|
|
3165
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3046
3166
|
*/
|
|
3047
|
-
|
|
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
|
+
};
|
|
3048
3174
|
};
|
|
3049
3175
|
|
|
3050
|
-
export type
|
|
3176
|
+
export type EventResponseDto = {
|
|
3051
3177
|
/**
|
|
3052
|
-
*
|
|
3178
|
+
* Unique identifier
|
|
3053
3179
|
*/
|
|
3054
|
-
|
|
3180
|
+
id: string;
|
|
3055
3181
|
/**
|
|
3056
|
-
*
|
|
3182
|
+
* User ID (owner of the life event)
|
|
3057
3183
|
*/
|
|
3058
|
-
|
|
3184
|
+
userId: string;
|
|
3059
3185
|
/**
|
|
3060
|
-
*
|
|
3186
|
+
* Life event date (ISO 8601 format)
|
|
3061
3187
|
*/
|
|
3062
|
-
|
|
3188
|
+
date: string;
|
|
3063
3189
|
/**
|
|
3064
|
-
*
|
|
3190
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3065
3191
|
*/
|
|
3066
|
-
|
|
3192
|
+
type: string;
|
|
3067
3193
|
/**
|
|
3068
|
-
*
|
|
3194
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3069
3195
|
*/
|
|
3070
|
-
|
|
3196
|
+
description: string;
|
|
3071
3197
|
/**
|
|
3072
|
-
*
|
|
3198
|
+
* Product-side metadata (free-form JSON)
|
|
3073
3199
|
*/
|
|
3074
|
-
|
|
3200
|
+
meta: {
|
|
3201
|
+
[key: string]: unknown;
|
|
3202
|
+
};
|
|
3075
3203
|
/**
|
|
3076
|
-
*
|
|
3204
|
+
* Creation timestamp
|
|
3077
3205
|
*/
|
|
3078
|
-
|
|
3206
|
+
createdAt: string;
|
|
3079
3207
|
/**
|
|
3080
|
-
*
|
|
3208
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3081
3209
|
*/
|
|
3082
|
-
|
|
3210
|
+
updatedAt: string;
|
|
3211
|
+
};
|
|
3212
|
+
|
|
3213
|
+
export type EventListResponseDto = {
|
|
3083
3214
|
/**
|
|
3084
|
-
*
|
|
3215
|
+
* List of life events
|
|
3085
3216
|
*/
|
|
3086
|
-
|
|
3087
|
-
| 'DUPLICATE'
|
|
3088
|
-
| 'PAYEE_MATCH'
|
|
3089
|
-
| 'RULE_MATCH'
|
|
3090
|
-
| 'ACCOUNT_VALIDATION'
|
|
3091
|
-
| 'PIPELINE_ERROR';
|
|
3217
|
+
items: Array<EventResponseDto>;
|
|
3092
3218
|
/**
|
|
3093
|
-
*
|
|
3219
|
+
* Total number of life events matching the query
|
|
3094
3220
|
*/
|
|
3095
|
-
|
|
3221
|
+
total: number;
|
|
3096
3222
|
};
|
|
3097
3223
|
|
|
3098
|
-
|
|
3099
|
-
* Type of branch requiring review
|
|
3100
|
-
*/
|
|
3101
|
-
export type branchType =
|
|
3102
|
-
| 'DUPLICATE'
|
|
3103
|
-
| 'PAYEE_MATCH'
|
|
3104
|
-
| 'RULE_MATCH'
|
|
3105
|
-
| 'ACCOUNT_VALIDATION'
|
|
3106
|
-
| 'PIPELINE_ERROR';
|
|
3107
|
-
|
|
3108
|
-
export type ImportResultDto = {
|
|
3224
|
+
export type UpdateBeanEventDto = {
|
|
3109
3225
|
/**
|
|
3110
|
-
*
|
|
3226
|
+
* Life event date (ISO 8601)
|
|
3111
3227
|
*/
|
|
3112
|
-
|
|
3228
|
+
date?: string;
|
|
3113
3229
|
/**
|
|
3114
|
-
*
|
|
3230
|
+
* Life event type (user-defined)
|
|
3115
3231
|
*/
|
|
3116
|
-
|
|
3232
|
+
type?: string;
|
|
3117
3233
|
/**
|
|
3118
|
-
*
|
|
3234
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3119
3235
|
*/
|
|
3120
|
-
|
|
3236
|
+
description?: string;
|
|
3121
3237
|
/**
|
|
3122
|
-
*
|
|
3238
|
+
* Product-side metadata (free-form JSON)
|
|
3123
3239
|
*/
|
|
3124
|
-
|
|
3240
|
+
meta?: {
|
|
3241
|
+
[key: string]: unknown;
|
|
3242
|
+
};
|
|
3243
|
+
};
|
|
3244
|
+
|
|
3245
|
+
export type OnboardingAccountDto = {
|
|
3125
3246
|
/**
|
|
3126
|
-
*
|
|
3247
|
+
* Account path (Assets/Liabilities only; format validated by the account service)
|
|
3127
3248
|
*/
|
|
3128
|
-
|
|
3249
|
+
path: string;
|
|
3129
3250
|
/**
|
|
3130
|
-
*
|
|
3251
|
+
* ISO 4217 currency code (3 letters)
|
|
3131
3252
|
*/
|
|
3132
|
-
|
|
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;
|
|
3480
|
+
/**
|
|
3481
|
+
* Number of failed transactions
|
|
3482
|
+
*/
|
|
3483
|
+
failed: number;
|
|
3484
|
+
/**
|
|
3485
|
+
* Number of skipped transactions (high confidence duplicates, auto-skipped)
|
|
3486
|
+
*/
|
|
3487
|
+
skipped: number;
|
|
3488
|
+
/**
|
|
3489
|
+
* Number of transactions pending review (medium confidence duplicates)
|
|
3490
|
+
*/
|
|
3491
|
+
pendingReview: number;
|
|
3492
|
+
/**
|
|
3493
|
+
* Array of error details for failed transactions
|
|
3494
|
+
*/
|
|
3495
|
+
errors: Array<ImportErrorDto>;
|
|
3496
|
+
/**
|
|
3497
|
+
* Array of transactions pending review with preview data. Contains essential information for displaying in the import preview UI.
|
|
3498
|
+
*/
|
|
3499
|
+
reviewItems?: Array<ReviewItemPreviewDto>;
|
|
3133
3500
|
/**
|
|
3134
3501
|
* Array of imported transactions (optional, for debugging)
|
|
3135
3502
|
*/
|
|
@@ -3304,115 +3671,27 @@ export type UpdateMapperDefaultsDto = {
|
|
|
3304
3671
|
/**
|
|
3305
3672
|
* Default income account (optional)
|
|
3306
3673
|
*/
|
|
3307
|
-
incomeAccount?: string;
|
|
3308
|
-
/**
|
|
3309
|
-
* 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).
|
|
3310
|
-
*/
|
|
3311
|
-
methodAccountMapping?: {
|
|
3312
|
-
[key: string]: unknown;
|
|
3313
|
-
};
|
|
3314
|
-
};
|
|
3315
|
-
|
|
3316
|
-
export type UpdateConfigDataDto = {
|
|
3317
|
-
/**
|
|
3318
|
-
* Mapper defaults configuration
|
|
3319
|
-
*/
|
|
3320
|
-
defaults?: UpdateMapperDefaultsDto;
|
|
3321
|
-
};
|
|
3322
|
-
|
|
3323
|
-
export type UpdateImporterConfigDto = {
|
|
3324
|
-
/**
|
|
3325
|
-
* Configuration data (v1 schema)
|
|
3326
|
-
*/
|
|
3327
|
-
data?: UpdateConfigDataDto;
|
|
3328
|
-
};
|
|
3329
|
-
|
|
3330
|
-
export type CreatePlatformDto = {
|
|
3331
|
-
/**
|
|
3332
|
-
* Platform name
|
|
3333
|
-
*/
|
|
3334
|
-
name: string;
|
|
3335
|
-
/**
|
|
3336
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3337
|
-
*/
|
|
3338
|
-
canonical: string;
|
|
3339
|
-
/**
|
|
3340
|
-
* Platform aliases (multi-language names for lookup)
|
|
3341
|
-
*/
|
|
3342
|
-
aliases: Array<string>;
|
|
3343
|
-
/**
|
|
3344
|
-
* Platform URL
|
|
3345
|
-
*/
|
|
3346
|
-
url: string;
|
|
3347
|
-
/**
|
|
3348
|
-
* Platform type
|
|
3349
|
-
*/
|
|
3350
|
-
type:
|
|
3351
|
-
| 'BANK'
|
|
3352
|
-
| 'BROKERAGE'
|
|
3353
|
-
| 'CRYPTO_EXCHANGE'
|
|
3354
|
-
| 'PAYMENT'
|
|
3355
|
-
| 'INVESTMENT'
|
|
3356
|
-
| 'INSURANCE'
|
|
3357
|
-
| 'OTHER';
|
|
3358
|
-
/**
|
|
3359
|
-
* Platform logo URL
|
|
3360
|
-
*/
|
|
3361
|
-
logoUrl?: string;
|
|
3362
|
-
/**
|
|
3363
|
-
* Whether the platform is active
|
|
3364
|
-
*/
|
|
3365
|
-
isActive?: boolean;
|
|
3366
|
-
};
|
|
3367
|
-
|
|
3368
|
-
/**
|
|
3369
|
-
* Platform type
|
|
3370
|
-
*/
|
|
3371
|
-
export type type3 =
|
|
3372
|
-
| 'BANK'
|
|
3373
|
-
| 'BROKERAGE'
|
|
3374
|
-
| 'CRYPTO_EXCHANGE'
|
|
3375
|
-
| 'PAYMENT'
|
|
3376
|
-
| 'INVESTMENT'
|
|
3377
|
-
| 'INSURANCE'
|
|
3378
|
-
| 'OTHER';
|
|
3379
|
-
|
|
3380
|
-
export type UpdatePlatformDto = {
|
|
3381
|
-
/**
|
|
3382
|
-
* Platform name
|
|
3383
|
-
*/
|
|
3384
|
-
name?: string;
|
|
3385
|
-
/**
|
|
3386
|
-
* Platform canonical identifier (lowercase, kebab-case)
|
|
3387
|
-
*/
|
|
3388
|
-
canonical?: string;
|
|
3389
|
-
/**
|
|
3390
|
-
* Platform aliases (multi-language names for lookup)
|
|
3391
|
-
*/
|
|
3392
|
-
aliases?: Array<string>;
|
|
3393
|
-
/**
|
|
3394
|
-
* Platform URL
|
|
3395
|
-
*/
|
|
3396
|
-
url?: string;
|
|
3397
|
-
/**
|
|
3398
|
-
* Platform type
|
|
3399
|
-
*/
|
|
3400
|
-
type?:
|
|
3401
|
-
| 'BANK'
|
|
3402
|
-
| 'BROKERAGE'
|
|
3403
|
-
| 'CRYPTO_EXCHANGE'
|
|
3404
|
-
| 'PAYMENT'
|
|
3405
|
-
| 'INVESTMENT'
|
|
3406
|
-
| 'INSURANCE'
|
|
3407
|
-
| 'OTHER';
|
|
3674
|
+
incomeAccount?: string;
|
|
3408
3675
|
/**
|
|
3409
|
-
*
|
|
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).
|
|
3410
3677
|
*/
|
|
3411
|
-
|
|
3678
|
+
methodAccountMapping?: {
|
|
3679
|
+
[key: string]: unknown;
|
|
3680
|
+
};
|
|
3681
|
+
};
|
|
3682
|
+
|
|
3683
|
+
export type UpdateConfigDataDto = {
|
|
3412
3684
|
/**
|
|
3413
|
-
*
|
|
3685
|
+
* Mapper defaults configuration
|
|
3414
3686
|
*/
|
|
3415
|
-
|
|
3687
|
+
defaults?: UpdateMapperDefaultsDto;
|
|
3688
|
+
};
|
|
3689
|
+
|
|
3690
|
+
export type UpdateImporterConfigDto = {
|
|
3691
|
+
/**
|
|
3692
|
+
* Configuration data (v1 schema)
|
|
3693
|
+
*/
|
|
3694
|
+
data?: UpdateConfigDataDto;
|
|
3416
3695
|
};
|
|
3417
3696
|
|
|
3418
3697
|
export type ProviderSyncConfigDto = {
|
|
@@ -3436,6 +3715,10 @@ export type ProviderSyncConfigDto = {
|
|
|
3436
3715
|
* Filter pending transactions
|
|
3437
3716
|
*/
|
|
3438
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;
|
|
3439
3722
|
};
|
|
3440
3723
|
|
|
3441
3724
|
export type ProviderSyncDto = {
|
|
@@ -3491,6 +3774,61 @@ export type SupportedProvidersResponseDto = {
|
|
|
3491
3774
|
providers: Array<string>;
|
|
3492
3775
|
};
|
|
3493
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
|
+
|
|
3494
3832
|
export type ParserTelemetryReportDto = unknown;
|
|
3495
3833
|
|
|
3496
3834
|
export type UncoveredFormatMissDto = unknown;
|
|
@@ -4070,15 +4408,92 @@ export type liabilitySubType = 'borrow' | 'repay';
|
|
|
4070
4408
|
*/
|
|
4071
4409
|
export type equitySubType = 'opening' | 'adjustment';
|
|
4072
4410
|
|
|
4073
|
-
export type
|
|
4411
|
+
export type CreatePlatformDto = {
|
|
4074
4412
|
/**
|
|
4075
|
-
*
|
|
4413
|
+
* Platform name
|
|
4076
4414
|
*/
|
|
4077
|
-
|
|
4415
|
+
name: string;
|
|
4078
4416
|
/**
|
|
4079
|
-
*
|
|
4417
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4080
4418
|
*/
|
|
4081
|
-
|
|
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;
|
|
4082
4497
|
};
|
|
4083
4498
|
|
|
4084
4499
|
export type NetWorthByCurrencyDto = {
|
|
@@ -4121,21 +4536,6 @@ export type ConvertedNetWorthDto = {
|
|
|
4121
4536
|
};
|
|
4122
4537
|
};
|
|
4123
4538
|
|
|
4124
|
-
export type ExchangeRateWarningDto = {
|
|
4125
|
-
/**
|
|
4126
|
-
* Warning type
|
|
4127
|
-
*/
|
|
4128
|
-
type: string;
|
|
4129
|
-
/**
|
|
4130
|
-
* Currency without exchange rate
|
|
4131
|
-
*/
|
|
4132
|
-
currency: string;
|
|
4133
|
-
/**
|
|
4134
|
-
* Total amount affected
|
|
4135
|
-
*/
|
|
4136
|
-
totalAmount: string;
|
|
4137
|
-
};
|
|
4138
|
-
|
|
4139
4539
|
export type NetWorthResponseDto = {
|
|
4140
4540
|
/**
|
|
4141
4541
|
* Total net worth (assets - liabilities, converted to base currency)
|
|
@@ -4200,6 +4600,10 @@ export type AccountItemDto = {
|
|
|
4200
4600
|
* Currency code
|
|
4201
4601
|
*/
|
|
4202
4602
|
currency: string;
|
|
4603
|
+
/**
|
|
4604
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4605
|
+
*/
|
|
4606
|
+
convertedBalance?: string;
|
|
4203
4607
|
};
|
|
4204
4608
|
|
|
4205
4609
|
export type PlatformGroupDto = {
|
|
@@ -4216,9 +4620,40 @@ export type PlatformGroupDto = {
|
|
|
4216
4620
|
*/
|
|
4217
4621
|
accounts: Array<AccountItemDto>;
|
|
4218
4622
|
/**
|
|
4219
|
-
*
|
|
4623
|
+
* FX-converted total balance in base currency
|
|
4220
4624
|
*/
|
|
4221
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;
|
|
4222
4657
|
};
|
|
4223
4658
|
|
|
4224
4659
|
export type AccountsSummaryDto = {
|
|
@@ -4230,6 +4665,14 @@ export type AccountsSummaryDto = {
|
|
|
4230
4665
|
* Total number of platforms
|
|
4231
4666
|
*/
|
|
4232
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>;
|
|
4233
4676
|
};
|
|
4234
4677
|
|
|
4235
4678
|
export type AccountsResponseDto = {
|
|
@@ -4264,6 +4707,10 @@ export type AccountItemWithAssetClassDto = {
|
|
|
4264
4707
|
* Currency code
|
|
4265
4708
|
*/
|
|
4266
4709
|
currency: string;
|
|
4710
|
+
/**
|
|
4711
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4712
|
+
*/
|
|
4713
|
+
convertedBalance?: string;
|
|
4267
4714
|
/**
|
|
4268
4715
|
* Asset class
|
|
4269
4716
|
*/
|
|
@@ -4345,25 +4792,6 @@ export type assetClass =
|
|
|
4345
4792
|
| 'REAL_ESTATE'
|
|
4346
4793
|
| 'INDEX';
|
|
4347
4794
|
|
|
4348
|
-
export type AccountExchangeRateWarningDto = {
|
|
4349
|
-
/**
|
|
4350
|
-
* Warning type
|
|
4351
|
-
*/
|
|
4352
|
-
type: string;
|
|
4353
|
-
/**
|
|
4354
|
-
* Currency without exchange rate
|
|
4355
|
-
*/
|
|
4356
|
-
currency: string;
|
|
4357
|
-
/**
|
|
4358
|
-
* Affected account paths
|
|
4359
|
-
*/
|
|
4360
|
-
accounts: Array<string>;
|
|
4361
|
-
/**
|
|
4362
|
-
* Total amount in this currency
|
|
4363
|
-
*/
|
|
4364
|
-
totalAmount: string;
|
|
4365
|
-
};
|
|
4366
|
-
|
|
4367
4795
|
export type AssetClassSummaryDto = {
|
|
4368
4796
|
/**
|
|
4369
4797
|
* Total number of accounts
|
|
@@ -4508,23 +4936,80 @@ export type CashFlowResponseDto = {
|
|
|
4508
4936
|
*/
|
|
4509
4937
|
netSavings: string;
|
|
4510
4938
|
/**
|
|
4511
|
-
* 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
|
|
4512
4997
|
*/
|
|
4513
|
-
|
|
4998
|
+
period: string;
|
|
4514
4999
|
/**
|
|
4515
|
-
* Base currency
|
|
5000
|
+
* Base currency for converted values
|
|
4516
5001
|
*/
|
|
4517
|
-
|
|
5002
|
+
baseCurrency: string;
|
|
4518
5003
|
/**
|
|
4519
|
-
*
|
|
5004
|
+
* Expense groups by functional category, sorted by converted total desc
|
|
4520
5005
|
*/
|
|
4521
|
-
|
|
5006
|
+
groups: Array<CategoryGroupDto>;
|
|
4522
5007
|
/**
|
|
4523
|
-
*
|
|
5008
|
+
* Summary statistics
|
|
4524
5009
|
*/
|
|
4525
|
-
|
|
5010
|
+
summary: ExpensesByCategorySummaryDto;
|
|
4526
5011
|
/**
|
|
4527
|
-
* Exchange rate warnings
|
|
5012
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
4528
5013
|
*/
|
|
4529
5014
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4530
5015
|
};
|
|
@@ -4724,108 +5209,6 @@ export type HoldingPnlResponseDto = {
|
|
|
4724
5209
|
*/
|
|
4725
5210
|
export type method = 'average' | 'FIFO';
|
|
4726
5211
|
|
|
4727
|
-
export type CreateBeanPriceDto = {
|
|
4728
|
-
/**
|
|
4729
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4730
|
-
*/
|
|
4731
|
-
currency: string;
|
|
4732
|
-
/**
|
|
4733
|
-
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
4734
|
-
*/
|
|
4735
|
-
quoteCurrency: string;
|
|
4736
|
-
/**
|
|
4737
|
-
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
4738
|
-
*/
|
|
4739
|
-
amount: number;
|
|
4740
|
-
/**
|
|
4741
|
-
* Price date (ISO 8601 format)
|
|
4742
|
-
*/
|
|
4743
|
-
date: string;
|
|
4744
|
-
/**
|
|
4745
|
-
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
4746
|
-
*/
|
|
4747
|
-
metadata?: {
|
|
4748
|
-
[key: string]: unknown;
|
|
4749
|
-
};
|
|
4750
|
-
};
|
|
4751
|
-
|
|
4752
|
-
export type PriceResponseDto = {
|
|
4753
|
-
/**
|
|
4754
|
-
* Unique identifier
|
|
4755
|
-
*/
|
|
4756
|
-
id: string;
|
|
4757
|
-
/**
|
|
4758
|
-
* User ID (owner of the price)
|
|
4759
|
-
*/
|
|
4760
|
-
userId: string;
|
|
4761
|
-
/**
|
|
4762
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4763
|
-
*/
|
|
4764
|
-
currency: string;
|
|
4765
|
-
/**
|
|
4766
|
-
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
4767
|
-
*/
|
|
4768
|
-
quoteCurrency: string;
|
|
4769
|
-
/**
|
|
4770
|
-
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
4771
|
-
*/
|
|
4772
|
-
amount: number;
|
|
4773
|
-
/**
|
|
4774
|
-
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
4775
|
-
*/
|
|
4776
|
-
date: string;
|
|
4777
|
-
/**
|
|
4778
|
-
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
4779
|
-
*/
|
|
4780
|
-
meta: {
|
|
4781
|
-
[key: string]: unknown;
|
|
4782
|
-
};
|
|
4783
|
-
/**
|
|
4784
|
-
* Creation timestamp
|
|
4785
|
-
*/
|
|
4786
|
-
createdAt: string;
|
|
4787
|
-
/**
|
|
4788
|
-
* Last update timestamp
|
|
4789
|
-
*/
|
|
4790
|
-
updatedAt: string;
|
|
4791
|
-
};
|
|
4792
|
-
|
|
4793
|
-
export type PriceListResponseDto = {
|
|
4794
|
-
/**
|
|
4795
|
-
* List of prices
|
|
4796
|
-
*/
|
|
4797
|
-
items: Array<PriceResponseDto>;
|
|
4798
|
-
/**
|
|
4799
|
-
* Total number of prices
|
|
4800
|
-
*/
|
|
4801
|
-
total: number;
|
|
4802
|
-
};
|
|
4803
|
-
|
|
4804
|
-
export type UpdateBeanPriceDto = {
|
|
4805
|
-
/**
|
|
4806
|
-
* Currency being priced
|
|
4807
|
-
*/
|
|
4808
|
-
currency?: string;
|
|
4809
|
-
/**
|
|
4810
|
-
* Quote currency (pricing currency)
|
|
4811
|
-
*/
|
|
4812
|
-
quoteCurrency?: string;
|
|
4813
|
-
/**
|
|
4814
|
-
* Price amount (MUST be >= 0 per Beancount spec)
|
|
4815
|
-
*/
|
|
4816
|
-
amount?: number;
|
|
4817
|
-
/**
|
|
4818
|
-
* Price date (ISO 8601 format)
|
|
4819
|
-
*/
|
|
4820
|
-
date?: string;
|
|
4821
|
-
/**
|
|
4822
|
-
* Metadata
|
|
4823
|
-
*/
|
|
4824
|
-
metadata?: {
|
|
4825
|
-
[key: string]: unknown;
|
|
4826
|
-
};
|
|
4827
|
-
};
|
|
4828
|
-
|
|
4829
5212
|
export type CurrencyBalanceDto = {
|
|
4830
5213
|
/**
|
|
4831
5214
|
* ISO 4217 currency code
|
|
@@ -4852,6 +5235,14 @@ export type TimeSeriesPointDto = {
|
|
|
4852
5235
|
change?: {
|
|
4853
5236
|
[key: string]: unknown;
|
|
4854
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;
|
|
4855
5246
|
/**
|
|
4856
5247
|
* Multi-currency breakdown for this point
|
|
4857
5248
|
*/
|
|
@@ -4919,6 +5310,71 @@ export type PortfolioTrendsResponseDto = {
|
|
|
4919
5310
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4920
5311
|
};
|
|
4921
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
|
+
|
|
4922
5378
|
export type GenerateSnapshotBody = unknown;
|
|
4923
5379
|
|
|
4924
5380
|
export type GenerateSnapshotResponse = unknown;
|
|
@@ -4962,7 +5418,7 @@ export type AccountControllerFindAllData = {
|
|
|
4962
5418
|
*/
|
|
4963
5419
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
4964
5420
|
/**
|
|
4965
|
-
* Search term for path
|
|
5421
|
+
* Search term for account path
|
|
4966
5422
|
*/
|
|
4967
5423
|
search?: string;
|
|
4968
5424
|
/**
|
|
@@ -5105,6 +5561,10 @@ export type TransactionControllerListData = {
|
|
|
5105
5561
|
* Filter by account ID (transactions with postings to this account)
|
|
5106
5562
|
*/
|
|
5107
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;
|
|
5108
5568
|
/**
|
|
5109
5569
|
* Filter by start date (inclusive), format: YYYY-MM-DD
|
|
5110
5570
|
*/
|
|
@@ -5229,7 +5689,7 @@ export type TransactionControllerDeleteResponse = void;
|
|
|
5229
5689
|
|
|
5230
5690
|
export type BalanceControllerGetBalanceData = {
|
|
5231
5691
|
/**
|
|
5232
|
-
* Account name (e.g., "Assets:
|
|
5692
|
+
* Account name (e.g., "Assets:Checking")
|
|
5233
5693
|
*/
|
|
5234
5694
|
account: string;
|
|
5235
5695
|
/**
|
|
@@ -5539,97 +5999,194 @@ export type PayeeProfileAdminControllerUnverifyData = {
|
|
|
5539
5999
|
id: string;
|
|
5540
6000
|
};
|
|
5541
6001
|
|
|
5542
|
-
export type PayeeProfileAdminControllerUnverifyResponse =
|
|
5543
|
-
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>;
|
|
5544
6093
|
|
|
5545
|
-
export type
|
|
6094
|
+
export type PriceControllerCreateData = {
|
|
5546
6095
|
/**
|
|
5547
6096
|
* Region code for tenant context
|
|
5548
6097
|
*/
|
|
5549
6098
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5550
|
-
requestBody:
|
|
6099
|
+
requestBody: CreateBeanPriceDto;
|
|
5551
6100
|
};
|
|
5552
6101
|
|
|
5553
|
-
export type
|
|
6102
|
+
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
5554
6103
|
|
|
5555
|
-
export type
|
|
6104
|
+
export type PriceControllerFindAllData = {
|
|
5556
6105
|
/**
|
|
5557
|
-
*
|
|
6106
|
+
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
5558
6107
|
*/
|
|
5559
|
-
|
|
6108
|
+
currency?: string;
|
|
5560
6109
|
/**
|
|
5561
|
-
*
|
|
6110
|
+
* Filter prices from this date (ISO 8601 format)
|
|
5562
6111
|
*/
|
|
5563
|
-
|
|
6112
|
+
dateFrom?: string;
|
|
5564
6113
|
/**
|
|
5565
|
-
* Filter
|
|
6114
|
+
* Filter prices to this date (ISO 8601 format)
|
|
5566
6115
|
*/
|
|
5567
|
-
|
|
5568
|
-
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
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;
|
|
5573
6129
|
/**
|
|
5574
6130
|
* Region code for tenant context
|
|
5575
6131
|
*/
|
|
5576
6132
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5577
6133
|
/**
|
|
5578
|
-
*
|
|
6134
|
+
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
5579
6135
|
*/
|
|
5580
|
-
|
|
6136
|
+
search?: string;
|
|
5581
6137
|
};
|
|
5582
6138
|
|
|
5583
|
-
export type
|
|
6139
|
+
export type PriceControllerFindAllResponse = PriceListResponseDto;
|
|
5584
6140
|
|
|
5585
|
-
export type
|
|
6141
|
+
export type PriceControllerFindOneData = {
|
|
5586
6142
|
/**
|
|
5587
|
-
*
|
|
6143
|
+
* Price ID
|
|
5588
6144
|
*/
|
|
5589
|
-
|
|
5590
|
-
requestBody: UpdateCommodityDto;
|
|
6145
|
+
id: string;
|
|
5591
6146
|
/**
|
|
5592
|
-
*
|
|
6147
|
+
* Region code for tenant context
|
|
5593
6148
|
*/
|
|
5594
|
-
|
|
6149
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5595
6150
|
};
|
|
5596
6151
|
|
|
5597
|
-
export type
|
|
6152
|
+
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
5598
6153
|
|
|
5599
|
-
export type
|
|
6154
|
+
export type PriceControllerUpdateData = {
|
|
5600
6155
|
/**
|
|
5601
|
-
*
|
|
6156
|
+
* Price ID
|
|
5602
6157
|
*/
|
|
5603
|
-
|
|
6158
|
+
id: string;
|
|
5604
6159
|
/**
|
|
5605
|
-
*
|
|
6160
|
+
* Region code for tenant context
|
|
5606
6161
|
*/
|
|
5607
|
-
|
|
6162
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6163
|
+
requestBody: UpdateBeanPriceDto;
|
|
5608
6164
|
};
|
|
5609
6165
|
|
|
5610
|
-
export type
|
|
6166
|
+
export type PriceControllerUpdateResponse = PriceResponseDto;
|
|
5611
6167
|
|
|
5612
|
-
export type
|
|
6168
|
+
export type PriceControllerDeleteData = {
|
|
5613
6169
|
/**
|
|
5614
|
-
*
|
|
6170
|
+
* Price ID
|
|
5615
6171
|
*/
|
|
5616
|
-
|
|
6172
|
+
id: string;
|
|
5617
6173
|
/**
|
|
5618
|
-
*
|
|
6174
|
+
* Region code for tenant context
|
|
5619
6175
|
*/
|
|
5620
|
-
|
|
6176
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5621
6177
|
};
|
|
5622
6178
|
|
|
5623
|
-
export type
|
|
6179
|
+
export type PriceControllerDeleteResponse = void;
|
|
5624
6180
|
|
|
5625
|
-
export type
|
|
6181
|
+
export type PriceControllerBulkCreateData = {
|
|
5626
6182
|
/**
|
|
5627
6183
|
* Region code for tenant context
|
|
5628
6184
|
*/
|
|
5629
6185
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6186
|
+
requestBody: Array<string>;
|
|
5630
6187
|
};
|
|
5631
6188
|
|
|
5632
|
-
export type
|
|
6189
|
+
export type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
|
|
5633
6190
|
|
|
5634
6191
|
export type RecurringRuleControllerCreateData = {
|
|
5635
6192
|
/**
|
|
@@ -6096,6 +6653,159 @@ export type PropertyControllerDeleteData = {
|
|
|
6096
6653
|
|
|
6097
6654
|
export type PropertyControllerDeleteResponse = void;
|
|
6098
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
|
+
|
|
6099
6809
|
export type ExportControllerExportBeancountResponse = unknown;
|
|
6100
6810
|
|
|
6101
6811
|
export type FileImportControllerImportFileData = {
|
|
@@ -6188,92 +6898,93 @@ export type ImporterConfigControllerResetConfigData = {
|
|
|
6188
6898
|
|
|
6189
6899
|
export type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
|
|
6190
6900
|
|
|
6191
|
-
export type
|
|
6192
|
-
|
|
6193
|
-
export type PlatformControllerCreateData = {
|
|
6194
|
-
requestBody: CreatePlatformDto;
|
|
6195
|
-
};
|
|
6196
|
-
|
|
6197
|
-
export type PlatformControllerCreateResponse = unknown;
|
|
6198
|
-
|
|
6199
|
-
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
6200
|
-
|
|
6201
|
-
export type PlatformControllerMatchPlatformsData = {
|
|
6901
|
+
export type ProviderSyncControllerSyncData = {
|
|
6202
6902
|
/**
|
|
6203
|
-
*
|
|
6903
|
+
* Provider name
|
|
6204
6904
|
*/
|
|
6205
|
-
|
|
6905
|
+
providerName:
|
|
6906
|
+
| 'plaid'
|
|
6907
|
+
| 'teller'
|
|
6908
|
+
| 'truelayer'
|
|
6909
|
+
| 'gocardless'
|
|
6910
|
+
| 'simplefin'
|
|
6911
|
+
| 'yodlee'
|
|
6912
|
+
| 'beancount-direct'
|
|
6913
|
+
| 'parsed-bill';
|
|
6206
6914
|
/**
|
|
6207
|
-
* Region code for
|
|
6915
|
+
* Region code for tenant context
|
|
6208
6916
|
*/
|
|
6209
|
-
region
|
|
6917
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6918
|
+
requestBody: ProviderSyncDto;
|
|
6210
6919
|
};
|
|
6211
6920
|
|
|
6212
|
-
export type
|
|
6921
|
+
export type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
|
|
6213
6922
|
|
|
6214
|
-
export type
|
|
6923
|
+
export type ProviderSyncControllerGetSupportedProvidersData = {
|
|
6215
6924
|
/**
|
|
6216
|
-
*
|
|
6925
|
+
* Region code for tenant context
|
|
6217
6926
|
*/
|
|
6218
|
-
|
|
6219
|
-
requestBody: UpdatePlatformDto;
|
|
6927
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6220
6928
|
};
|
|
6221
6929
|
|
|
6222
|
-
export type
|
|
6930
|
+
export type ProviderSyncControllerGetSupportedProvidersResponse =
|
|
6931
|
+
SupportedProvidersResponseDto;
|
|
6223
6932
|
|
|
6224
|
-
export type
|
|
6933
|
+
export type ProviderSyncControllerIsProviderSupportedData = {
|
|
6225
6934
|
/**
|
|
6226
|
-
*
|
|
6935
|
+
* Provider name to check
|
|
6227
6936
|
*/
|
|
6228
|
-
|
|
6229
|
-
};
|
|
6230
|
-
|
|
6231
|
-
export type PlatformControllerDeleteResponse = void;
|
|
6232
|
-
|
|
6233
|
-
export type ProviderSyncControllerSyncData = {
|
|
6937
|
+
providerName: string;
|
|
6234
6938
|
/**
|
|
6235
|
-
*
|
|
6939
|
+
* Region code for tenant context
|
|
6236
6940
|
*/
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
| 'yodlee'
|
|
6244
|
-
| 'beancount-direct'
|
|
6245
|
-
| 'parsed-bill';
|
|
6941
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6942
|
+
};
|
|
6943
|
+
|
|
6944
|
+
export type ProviderSyncControllerIsProviderSupportedResponse = unknown;
|
|
6945
|
+
|
|
6946
|
+
export type ExternalAccountLinkControllerCreateData = {
|
|
6246
6947
|
/**
|
|
6247
6948
|
* Region code for tenant context
|
|
6248
6949
|
*/
|
|
6249
6950
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6250
|
-
requestBody:
|
|
6951
|
+
requestBody: CreateExternalAccountLinkDto;
|
|
6251
6952
|
};
|
|
6252
6953
|
|
|
6253
|
-
export type
|
|
6954
|
+
export type ExternalAccountLinkControllerCreateResponse =
|
|
6955
|
+
ExternalAccountLinkResponseDto;
|
|
6254
6956
|
|
|
6255
|
-
export type
|
|
6957
|
+
export type ExternalAccountLinkControllerFindAllData = {
|
|
6958
|
+
provider: string;
|
|
6256
6959
|
/**
|
|
6257
6960
|
* Region code for tenant context
|
|
6258
6961
|
*/
|
|
6259
6962
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6260
6963
|
};
|
|
6261
6964
|
|
|
6262
|
-
export type
|
|
6263
|
-
|
|
6965
|
+
export type ExternalAccountLinkControllerFindAllResponse =
|
|
6966
|
+
ExternalAccountLinkListResponseDto;
|
|
6264
6967
|
|
|
6265
|
-
export type
|
|
6968
|
+
export type ExternalAccountLinkControllerFindOneData = {
|
|
6969
|
+
id: string;
|
|
6266
6970
|
/**
|
|
6267
|
-
*
|
|
6971
|
+
* Region code for tenant context
|
|
6268
6972
|
*/
|
|
6269
|
-
|
|
6973
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6974
|
+
};
|
|
6975
|
+
|
|
6976
|
+
export type ExternalAccountLinkControllerFindOneResponse =
|
|
6977
|
+
ExternalAccountLinkResponseDto;
|
|
6978
|
+
|
|
6979
|
+
export type ExternalAccountLinkControllerRemoveData = {
|
|
6980
|
+
id: string;
|
|
6270
6981
|
/**
|
|
6271
6982
|
* Region code for tenant context
|
|
6272
6983
|
*/
|
|
6273
6984
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6274
6985
|
};
|
|
6275
6986
|
|
|
6276
|
-
export type
|
|
6987
|
+
export type ExternalAccountLinkControllerRemoveResponse = void;
|
|
6277
6988
|
|
|
6278
6989
|
export type TelemetryControllerReportTelemetryData = {
|
|
6279
6990
|
/**
|
|
@@ -6347,6 +7058,48 @@ export type NlpControllerGetSessionData = {
|
|
|
6347
7058
|
|
|
6348
7059
|
export type NlpControllerGetSessionResponse = unknown;
|
|
6349
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
|
+
|
|
6350
7103
|
export type DashboardControllerGetNetWorthData = {
|
|
6351
7104
|
/**
|
|
6352
7105
|
* Date for balance calculation (ISO 8601 format)
|
|
@@ -6401,127 +7154,70 @@ export type DashboardControllerGetCashFlowData = {
|
|
|
6401
7154
|
|
|
6402
7155
|
export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
|
|
6403
7156
|
|
|
6404
|
-
export type
|
|
6405
|
-
/**
|
|
6406
|
-
* Scope to a single account
|
|
6407
|
-
*/
|
|
6408
|
-
accountId?: string;
|
|
6409
|
-
/**
|
|
6410
|
-
* As-of date (ISO 8601), defaults to today
|
|
6411
|
-
*/
|
|
6412
|
-
asOf?: string;
|
|
6413
|
-
/**
|
|
6414
|
-
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6415
|
-
*/
|
|
6416
|
-
method?: 'FIFO' | 'average';
|
|
6417
|
-
/**
|
|
6418
|
-
* Region code for tenant context
|
|
6419
|
-
*/
|
|
6420
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6421
|
-
};
|
|
6422
|
-
|
|
6423
|
-
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6424
|
-
|
|
6425
|
-
export type PriceControllerCreateData = {
|
|
6426
|
-
/**
|
|
6427
|
-
* Region code for tenant context
|
|
6428
|
-
*/
|
|
6429
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6430
|
-
requestBody: CreateBeanPriceDto;
|
|
6431
|
-
};
|
|
6432
|
-
|
|
6433
|
-
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
6434
|
-
|
|
6435
|
-
export type PriceControllerFindAllData = {
|
|
6436
|
-
/**
|
|
6437
|
-
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
6438
|
-
*/
|
|
6439
|
-
currency?: string;
|
|
7157
|
+
export type DashboardControllerGetExpensesData = {
|
|
6440
7158
|
/**
|
|
6441
|
-
*
|
|
6442
|
-
*/
|
|
6443
|
-
dateFrom?: string;
|
|
6444
|
-
/**
|
|
6445
|
-
* Filter prices to this date (ISO 8601 format)
|
|
6446
|
-
*/
|
|
6447
|
-
dateTo?: string;
|
|
6448
|
-
/**
|
|
6449
|
-
* Number of items per page (default: 20, max: 100)
|
|
7159
|
+
* Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
6450
7160
|
*/
|
|
6451
|
-
|
|
7161
|
+
flow?: 'expense' | 'income';
|
|
6452
7162
|
/**
|
|
6453
|
-
*
|
|
7163
|
+
* Grouping strategy
|
|
6454
7164
|
*/
|
|
6455
|
-
|
|
7165
|
+
groupBy?: 'category';
|
|
6456
7166
|
/**
|
|
6457
|
-
*
|
|
7167
|
+
* Time window (1m = current calendar month)
|
|
6458
7168
|
*/
|
|
6459
|
-
|
|
7169
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6460
7170
|
/**
|
|
6461
7171
|
* Region code for tenant context
|
|
6462
7172
|
*/
|
|
6463
7173
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6464
|
-
/**
|
|
6465
|
-
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
6466
|
-
*/
|
|
6467
|
-
search?: string;
|
|
6468
7174
|
};
|
|
6469
7175
|
|
|
6470
|
-
export type
|
|
7176
|
+
export type DashboardControllerGetExpensesResponse =
|
|
7177
|
+
ExpensesByCategoryResponseDto;
|
|
6471
7178
|
|
|
6472
|
-
export type
|
|
7179
|
+
export type HoldingPnlControllerGetHoldingPnlData = {
|
|
6473
7180
|
/**
|
|
6474
|
-
*
|
|
7181
|
+
* Scope to a single account
|
|
6475
7182
|
*/
|
|
6476
|
-
|
|
7183
|
+
accountId?: string;
|
|
6477
7184
|
/**
|
|
6478
|
-
*
|
|
7185
|
+
* As-of date (ISO 8601), defaults to today
|
|
6479
7186
|
*/
|
|
6480
|
-
|
|
6481
|
-
};
|
|
6482
|
-
|
|
6483
|
-
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
6484
|
-
|
|
6485
|
-
export type PriceControllerUpdateData = {
|
|
7187
|
+
asOf?: string;
|
|
6486
7188
|
/**
|
|
6487
|
-
*
|
|
7189
|
+
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6488
7190
|
*/
|
|
6489
|
-
|
|
7191
|
+
method?: 'FIFO' | 'average';
|
|
6490
7192
|
/**
|
|
6491
7193
|
* Region code for tenant context
|
|
6492
7194
|
*/
|
|
6493
7195
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6494
|
-
requestBody: UpdateBeanPriceDto;
|
|
6495
7196
|
};
|
|
6496
7197
|
|
|
6497
|
-
export type
|
|
7198
|
+
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6498
7199
|
|
|
6499
|
-
export type
|
|
7200
|
+
export type ReportingControllerGetPortfolioTrendsData = {
|
|
6500
7201
|
/**
|
|
6501
|
-
*
|
|
7202
|
+
* Data granularity
|
|
6502
7203
|
*/
|
|
6503
|
-
|
|
7204
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6504
7205
|
/**
|
|
6505
|
-
*
|
|
7206
|
+
* Time period
|
|
6506
7207
|
*/
|
|
6507
|
-
|
|
6508
|
-
};
|
|
6509
|
-
|
|
6510
|
-
export type PriceControllerDeleteResponse = void;
|
|
6511
|
-
|
|
6512
|
-
export type PriceControllerBulkCreateData = {
|
|
7208
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6513
7209
|
/**
|
|
6514
7210
|
* Region code for tenant context
|
|
6515
7211
|
*/
|
|
6516
7212
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6517
|
-
requestBody: Array<string>;
|
|
6518
7213
|
};
|
|
6519
7214
|
|
|
6520
|
-
export type
|
|
7215
|
+
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
7216
|
+
PortfolioTrendsResponseDto;
|
|
6521
7217
|
|
|
6522
|
-
export type
|
|
7218
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6523
7219
|
/**
|
|
6524
|
-
* Data granularity
|
|
7220
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6525
7221
|
*/
|
|
6526
7222
|
granularity?: 'day' | 'week' | 'month';
|
|
6527
7223
|
/**
|
|
@@ -6534,8 +7230,8 @@ export type ReportingControllerGetPortfolioTrendsData = {
|
|
|
6534
7230
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6535
7231
|
};
|
|
6536
7232
|
|
|
6537
|
-
export type
|
|
6538
|
-
|
|
7233
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
7234
|
+
CashFlowTrendsResponseDto;
|
|
6539
7235
|
|
|
6540
7236
|
export type ReportingControllerGenerateSnapshotData = {
|
|
6541
7237
|
/**
|
|
@@ -7262,65 +7958,149 @@ export type $OpenApiTs = {
|
|
|
7262
7958
|
req: CommodityControllerFindOneData;
|
|
7263
7959
|
res: {
|
|
7264
7960
|
/**
|
|
7265
|
-
* 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
|
|
7266
8057
|
*/
|
|
7267
|
-
200:
|
|
8058
|
+
200: PriceResponseDto;
|
|
7268
8059
|
/**
|
|
7269
|
-
*
|
|
8060
|
+
* Price not found
|
|
7270
8061
|
*/
|
|
7271
|
-
404:
|
|
8062
|
+
404: unknown;
|
|
7272
8063
|
};
|
|
7273
8064
|
};
|
|
7274
8065
|
put: {
|
|
7275
|
-
req:
|
|
8066
|
+
req: PriceControllerUpdateData;
|
|
7276
8067
|
res: {
|
|
7277
8068
|
/**
|
|
7278
|
-
*
|
|
8069
|
+
* Price updated successfully
|
|
7279
8070
|
*/
|
|
7280
|
-
200:
|
|
8071
|
+
200: PriceResponseDto;
|
|
7281
8072
|
/**
|
|
7282
|
-
*
|
|
8073
|
+
* Price not found
|
|
7283
8074
|
*/
|
|
7284
|
-
|
|
8075
|
+
404: unknown;
|
|
7285
8076
|
/**
|
|
7286
|
-
*
|
|
8077
|
+
* Updated price conflicts with existing price
|
|
7287
8078
|
*/
|
|
7288
|
-
|
|
8079
|
+
409: unknown;
|
|
7289
8080
|
};
|
|
7290
8081
|
};
|
|
7291
8082
|
delete: {
|
|
7292
|
-
req:
|
|
8083
|
+
req: PriceControllerDeleteData;
|
|
7293
8084
|
res: {
|
|
7294
8085
|
/**
|
|
7295
|
-
*
|
|
8086
|
+
* Price deleted successfully
|
|
7296
8087
|
*/
|
|
7297
8088
|
204: void;
|
|
7298
8089
|
/**
|
|
7299
|
-
*
|
|
7300
|
-
*/
|
|
7301
|
-
404: ApiProblemResponseDto;
|
|
7302
|
-
};
|
|
7303
|
-
};
|
|
7304
|
-
};
|
|
7305
|
-
'/api/v1/{region}/bean/commodities/{symbol}/ensure': {
|
|
7306
|
-
post: {
|
|
7307
|
-
req: CommodityControllerGetOrCreateData;
|
|
7308
|
-
res: {
|
|
7309
|
-
/**
|
|
7310
|
-
* Commodity retrieved or created
|
|
8090
|
+
* Price not found
|
|
7311
8091
|
*/
|
|
7312
|
-
|
|
8092
|
+
404: unknown;
|
|
7313
8093
|
};
|
|
7314
8094
|
};
|
|
7315
8095
|
};
|
|
7316
|
-
'/api/v1/{region}/bean/
|
|
8096
|
+
'/api/v1/{region}/bean/prices/bulk': {
|
|
7317
8097
|
post: {
|
|
7318
|
-
req:
|
|
8098
|
+
req: PriceControllerBulkCreateData;
|
|
7319
8099
|
res: {
|
|
7320
8100
|
/**
|
|
7321
|
-
*
|
|
8101
|
+
* Prices created successfully
|
|
7322
8102
|
*/
|
|
7323
|
-
201: Array<
|
|
8103
|
+
201: Array<PriceResponseDto>;
|
|
7324
8104
|
};
|
|
7325
8105
|
};
|
|
7326
8106
|
};
|
|
@@ -7968,6 +8748,181 @@ export type $OpenApiTs = {
|
|
|
7968
8748
|
};
|
|
7969
8749
|
};
|
|
7970
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
|
+
};
|
|
7971
8926
|
'/api/v1/{region}/bean/export/beancount': {
|
|
7972
8927
|
get: {
|
|
7973
8928
|
res: {
|
|
@@ -8052,141 +9007,69 @@ export type $OpenApiTs = {
|
|
|
8052
9007
|
* Beancount file imported successfully
|
|
8053
9008
|
*/
|
|
8054
9009
|
200: {
|
|
8055
|
-
imported?: number;
|
|
8056
|
-
skipped?: number;
|
|
8057
|
-
failed?: number;
|
|
8058
|
-
accountsCreated?: number;
|
|
8059
|
-
errors?: Array<{
|
|
8060
|
-
[key: string]: unknown;
|
|
8061
|
-
}>;
|
|
8062
|
-
};
|
|
8063
|
-
/**
|
|
8064
|
-
* Bad request - invalid file or no file uploaded
|
|
8065
|
-
*/
|
|
8066
|
-
400: ApiProblemResponseDto;
|
|
8067
|
-
};
|
|
8068
|
-
};
|
|
8069
|
-
};
|
|
8070
|
-
'/api/v1/{region}/bean/import/config/{importerId}': {
|
|
8071
|
-
get: {
|
|
8072
|
-
req: ImporterConfigControllerGetConfigData;
|
|
8073
|
-
res: {
|
|
8074
|
-
/**
|
|
8075
|
-
* Configuration retrieved successfully
|
|
8076
|
-
*/
|
|
8077
|
-
200: ImporterConfigDto;
|
|
8078
|
-
/**
|
|
8079
|
-
* Invalid input - Unsupported importer
|
|
8080
|
-
*/
|
|
8081
|
-
400: ApiProblemResponseDto;
|
|
8082
|
-
/**
|
|
8083
|
-
* Unauthorized - Authentication required
|
|
8084
|
-
*/
|
|
8085
|
-
401: ApiProblemResponseDto;
|
|
8086
|
-
};
|
|
8087
|
-
};
|
|
8088
|
-
put: {
|
|
8089
|
-
req: ImporterConfigControllerUpdateConfigData;
|
|
8090
|
-
res: {
|
|
8091
|
-
/**
|
|
8092
|
-
* Configuration updated successfully
|
|
8093
|
-
*/
|
|
8094
|
-
200: ImporterConfigDto;
|
|
8095
|
-
/**
|
|
8096
|
-
* Invalid input - Validation failed
|
|
8097
|
-
*/
|
|
8098
|
-
400: ApiProblemResponseDto;
|
|
8099
|
-
/**
|
|
8100
|
-
* Configuration not found
|
|
8101
|
-
*/
|
|
8102
|
-
404: ApiProblemResponseDto;
|
|
8103
|
-
};
|
|
8104
|
-
};
|
|
8105
|
-
};
|
|
8106
|
-
'/api/v1/{region}/bean/import/config/{importerId}/reset': {
|
|
8107
|
-
post: {
|
|
8108
|
-
req: ImporterConfigControllerResetConfigData;
|
|
8109
|
-
res: {
|
|
8110
|
-
/**
|
|
8111
|
-
* Configuration reset successfully
|
|
8112
|
-
*/
|
|
8113
|
-
200: ImporterConfigDto;
|
|
8114
|
-
/**
|
|
8115
|
-
* Invalid input - Unsupported importer
|
|
8116
|
-
*/
|
|
8117
|
-
400: ApiProblemResponseDto;
|
|
8118
|
-
};
|
|
8119
|
-
};
|
|
8120
|
-
};
|
|
8121
|
-
'/api/v1/bean/platforms': {
|
|
8122
|
-
get: {
|
|
8123
|
-
res: {
|
|
8124
|
-
/**
|
|
8125
|
-
* List of platforms with binding and account counts
|
|
8126
|
-
*/
|
|
8127
|
-
200: unknown;
|
|
8128
|
-
};
|
|
8129
|
-
};
|
|
8130
|
-
post: {
|
|
8131
|
-
req: PlatformControllerCreateData;
|
|
8132
|
-
res: {
|
|
8133
|
-
/**
|
|
8134
|
-
* Platform created successfully
|
|
8135
|
-
*/
|
|
8136
|
-
201: unknown;
|
|
9010
|
+
imported?: number;
|
|
9011
|
+
skipped?: number;
|
|
9012
|
+
failed?: number;
|
|
9013
|
+
accountsCreated?: number;
|
|
9014
|
+
errors?: Array<{
|
|
9015
|
+
[key: string]: unknown;
|
|
9016
|
+
}>;
|
|
9017
|
+
};
|
|
8137
9018
|
/**
|
|
8138
|
-
*
|
|
9019
|
+
* Bad request - invalid file or no file uploaded
|
|
8139
9020
|
*/
|
|
8140
|
-
|
|
9021
|
+
400: ApiProblemResponseDto;
|
|
8141
9022
|
};
|
|
8142
9023
|
};
|
|
8143
9024
|
};
|
|
8144
|
-
'/api/v1/bean/
|
|
9025
|
+
'/api/v1/{region}/bean/import/config/{importerId}': {
|
|
8145
9026
|
get: {
|
|
9027
|
+
req: ImporterConfigControllerGetConfigData;
|
|
8146
9028
|
res: {
|
|
8147
9029
|
/**
|
|
8148
|
-
*
|
|
9030
|
+
* Configuration retrieved successfully
|
|
8149
9031
|
*/
|
|
8150
|
-
200:
|
|
8151
|
-
};
|
|
8152
|
-
};
|
|
8153
|
-
};
|
|
8154
|
-
'/api/v1/bean/platforms/match': {
|
|
8155
|
-
get: {
|
|
8156
|
-
req: PlatformControllerMatchPlatformsData;
|
|
8157
|
-
res: {
|
|
9032
|
+
200: ImporterConfigDto;
|
|
8158
9033
|
/**
|
|
8159
|
-
*
|
|
9034
|
+
* Invalid input - Unsupported importer
|
|
8160
9035
|
*/
|
|
8161
|
-
|
|
9036
|
+
400: ApiProblemResponseDto;
|
|
9037
|
+
/**
|
|
9038
|
+
* Unauthorized - Authentication required
|
|
9039
|
+
*/
|
|
9040
|
+
401: ApiProblemResponseDto;
|
|
8162
9041
|
};
|
|
8163
9042
|
};
|
|
8164
|
-
};
|
|
8165
|
-
'/api/v1/bean/platforms/{id}': {
|
|
8166
9043
|
put: {
|
|
8167
|
-
req:
|
|
9044
|
+
req: ImporterConfigControllerUpdateConfigData;
|
|
8168
9045
|
res: {
|
|
8169
9046
|
/**
|
|
8170
|
-
*
|
|
9047
|
+
* Configuration updated successfully
|
|
8171
9048
|
*/
|
|
8172
|
-
200:
|
|
9049
|
+
200: ImporterConfigDto;
|
|
8173
9050
|
/**
|
|
8174
|
-
*
|
|
9051
|
+
* Invalid input - Validation failed
|
|
8175
9052
|
*/
|
|
8176
|
-
|
|
9053
|
+
400: ApiProblemResponseDto;
|
|
9054
|
+
/**
|
|
9055
|
+
* Configuration not found
|
|
9056
|
+
*/
|
|
9057
|
+
404: ApiProblemResponseDto;
|
|
8177
9058
|
};
|
|
8178
9059
|
};
|
|
8179
|
-
|
|
8180
|
-
|
|
9060
|
+
};
|
|
9061
|
+
'/api/v1/{region}/bean/import/config/{importerId}/reset': {
|
|
9062
|
+
post: {
|
|
9063
|
+
req: ImporterConfigControllerResetConfigData;
|
|
8181
9064
|
res: {
|
|
8182
9065
|
/**
|
|
8183
|
-
*
|
|
9066
|
+
* Configuration reset successfully
|
|
8184
9067
|
*/
|
|
8185
|
-
|
|
9068
|
+
200: ImporterConfigDto;
|
|
8186
9069
|
/**
|
|
8187
|
-
*
|
|
9070
|
+
* Invalid input - Unsupported importer
|
|
8188
9071
|
*/
|
|
8189
|
-
|
|
9072
|
+
400: ApiProblemResponseDto;
|
|
8190
9073
|
};
|
|
8191
9074
|
};
|
|
8192
9075
|
};
|
|
@@ -8243,6 +9126,54 @@ export type $OpenApiTs = {
|
|
|
8243
9126
|
};
|
|
8244
9127
|
};
|
|
8245
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
|
+
};
|
|
8246
9177
|
'/api/v1/{region}/bean/import/parser-telemetry': {
|
|
8247
9178
|
post: {
|
|
8248
9179
|
req: TelemetryControllerReportTelemetryData;
|
|
@@ -8331,6 +9262,78 @@ export type $OpenApiTs = {
|
|
|
8331
9262
|
};
|
|
8332
9263
|
};
|
|
8333
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
|
+
};
|
|
8334
9337
|
'/api/v1/{region}/dashboard/net-worth': {
|
|
8335
9338
|
get: {
|
|
8336
9339
|
req: DashboardControllerGetNetWorthData;
|
|
@@ -8383,16 +9386,16 @@ export type $OpenApiTs = {
|
|
|
8383
9386
|
};
|
|
8384
9387
|
};
|
|
8385
9388
|
};
|
|
8386
|
-
'/api/v1/{region}/
|
|
9389
|
+
'/api/v1/{region}/dashboard/expenses': {
|
|
8387
9390
|
get: {
|
|
8388
|
-
req:
|
|
9391
|
+
req: DashboardControllerGetExpensesData;
|
|
8389
9392
|
res: {
|
|
8390
9393
|
/**
|
|
8391
|
-
*
|
|
9394
|
+
* Expenses retrieved successfully
|
|
8392
9395
|
*/
|
|
8393
|
-
200:
|
|
9396
|
+
200: ExpensesByCategoryResponseDto;
|
|
8394
9397
|
/**
|
|
8395
|
-
* Invalid
|
|
9398
|
+
* Invalid groupBy or period
|
|
8396
9399
|
*/
|
|
8397
9400
|
400: unknown;
|
|
8398
9401
|
/**
|
|
@@ -8402,98 +9405,48 @@ export type $OpenApiTs = {
|
|
|
8402
9405
|
};
|
|
8403
9406
|
};
|
|
8404
9407
|
};
|
|
8405
|
-
'/api/v1/{region}/
|
|
8406
|
-
|
|
8407
|
-
req:
|
|
9408
|
+
'/api/v1/{region}/investment/holdings/pnl': {
|
|
9409
|
+
get: {
|
|
9410
|
+
req: HoldingPnlControllerGetHoldingPnlData;
|
|
8408
9411
|
res: {
|
|
8409
9412
|
/**
|
|
8410
|
-
*
|
|
8411
|
-
*/
|
|
8412
|
-
201: PriceResponseDto;
|
|
8413
|
-
/**
|
|
8414
|
-
* Currency or quoteCurrency commodity not found
|
|
9413
|
+
* Holding P&L retrieved successfully
|
|
8415
9414
|
*/
|
|
8416
|
-
|
|
9415
|
+
200: HoldingPnlResponseDto;
|
|
8417
9416
|
/**
|
|
8418
|
-
*
|
|
9417
|
+
* Invalid asOf format/value/future date, invalid accountId format, or unsupported method
|
|
8419
9418
|
*/
|
|
8420
|
-
|
|
8421
|
-
};
|
|
8422
|
-
};
|
|
8423
|
-
get: {
|
|
8424
|
-
req: PriceControllerFindAllData;
|
|
8425
|
-
res: {
|
|
9419
|
+
400: unknown;
|
|
8426
9420
|
/**
|
|
8427
|
-
*
|
|
9421
|
+
* User not authenticated
|
|
8428
9422
|
*/
|
|
8429
|
-
|
|
9423
|
+
401: unknown;
|
|
8430
9424
|
};
|
|
8431
9425
|
};
|
|
8432
9426
|
};
|
|
8433
|
-
'/api/v1/{region}/
|
|
9427
|
+
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
8434
9428
|
get: {
|
|
8435
|
-
req:
|
|
8436
|
-
res: {
|
|
8437
|
-
/**
|
|
8438
|
-
* Price retrieved successfully
|
|
8439
|
-
*/
|
|
8440
|
-
200: PriceResponseDto;
|
|
8441
|
-
/**
|
|
8442
|
-
* Price not found
|
|
8443
|
-
*/
|
|
8444
|
-
404: unknown;
|
|
8445
|
-
};
|
|
8446
|
-
};
|
|
8447
|
-
put: {
|
|
8448
|
-
req: PriceControllerUpdateData;
|
|
8449
|
-
res: {
|
|
8450
|
-
/**
|
|
8451
|
-
* Price updated successfully
|
|
8452
|
-
*/
|
|
8453
|
-
200: PriceResponseDto;
|
|
8454
|
-
/**
|
|
8455
|
-
* Price not found
|
|
8456
|
-
*/
|
|
8457
|
-
404: unknown;
|
|
8458
|
-
/**
|
|
8459
|
-
* Updated price conflicts with existing price
|
|
8460
|
-
*/
|
|
8461
|
-
409: unknown;
|
|
8462
|
-
};
|
|
8463
|
-
};
|
|
8464
|
-
delete: {
|
|
8465
|
-
req: PriceControllerDeleteData;
|
|
9429
|
+
req: ReportingControllerGetPortfolioTrendsData;
|
|
8466
9430
|
res: {
|
|
8467
9431
|
/**
|
|
8468
|
-
*
|
|
8469
|
-
*/
|
|
8470
|
-
204: void;
|
|
8471
|
-
/**
|
|
8472
|
-
* Price not found
|
|
9432
|
+
* Trends retrieved successfully
|
|
8473
9433
|
*/
|
|
8474
|
-
|
|
8475
|
-
};
|
|
8476
|
-
};
|
|
8477
|
-
};
|
|
8478
|
-
'/api/v1/{region}/bean/prices/bulk': {
|
|
8479
|
-
post: {
|
|
8480
|
-
req: PriceControllerBulkCreateData;
|
|
8481
|
-
res: {
|
|
9434
|
+
200: PortfolioTrendsResponseDto;
|
|
8482
9435
|
/**
|
|
8483
|
-
*
|
|
9436
|
+
* User not authenticated
|
|
8484
9437
|
*/
|
|
8485
|
-
|
|
9438
|
+
401: unknown;
|
|
8486
9439
|
};
|
|
8487
9440
|
};
|
|
8488
9441
|
};
|
|
8489
|
-
'/api/v1/{region}/reporting/
|
|
9442
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
8490
9443
|
get: {
|
|
8491
|
-
req:
|
|
9444
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
8492
9445
|
res: {
|
|
8493
9446
|
/**
|
|
8494
|
-
*
|
|
9447
|
+
* Cash-flow trends retrieved successfully
|
|
8495
9448
|
*/
|
|
8496
|
-
200:
|
|
9449
|
+
200: CashFlowTrendsResponseDto;
|
|
8497
9450
|
/**
|
|
8498
9451
|
* User not authenticated
|
|
8499
9452
|
*/
|