@firela/api-types 0.0.0-canary.a85ace93 → 0.0.0-canary.a90ce0e4
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 +1542 -530
- package/dist/index.d.ts +1542 -530
- package/dist/index.js +31 -3
- package/dist/index.mjs +31 -3
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +1411 -497
- package/src/generated/services.gen.ts +881 -343
- package/src/generated/types.gen.ts +1751 -660
|
@@ -6,13 +6,9 @@ export type CreateAccountDto = {
|
|
|
6
6
|
*/
|
|
7
7
|
path: string;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Account open date (server defaults to today)
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Account open date
|
|
14
|
-
*/
|
|
15
|
-
openDate: string;
|
|
11
|
+
openDate?: string;
|
|
16
12
|
/**
|
|
17
13
|
* Allowed currencies (null = no restriction)
|
|
18
14
|
*/
|
|
@@ -36,18 +32,14 @@ export type CreateAccountDto = {
|
|
|
36
32
|
* Whether this is a custom (user-created) account
|
|
37
33
|
*/
|
|
38
34
|
isCustom?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* i18n key for display name (overrides template)
|
|
41
|
-
*/
|
|
42
|
-
i18nKey?: string;
|
|
43
35
|
/**
|
|
44
36
|
* Icon identifier (overrides template)
|
|
45
37
|
*/
|
|
46
38
|
icon?: string;
|
|
47
39
|
/**
|
|
48
|
-
*
|
|
40
|
+
* Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
|
|
49
41
|
*/
|
|
50
|
-
|
|
42
|
+
openDirectiveMeta?: {
|
|
51
43
|
[key: string]: unknown;
|
|
52
44
|
};
|
|
53
45
|
/**
|
|
@@ -77,10 +69,6 @@ export type AccountResponseDto = {
|
|
|
77
69
|
* Account path (hierarchical, colon-separated)
|
|
78
70
|
*/
|
|
79
71
|
path: string;
|
|
80
|
-
/**
|
|
81
|
-
* Display name distinguishing multiple accounts at the same path
|
|
82
|
-
*/
|
|
83
|
-
displayName: string;
|
|
84
72
|
/**
|
|
85
73
|
* Account type (root segment)
|
|
86
74
|
*/
|
|
@@ -121,17 +109,17 @@ export type AccountResponseDto = {
|
|
|
121
109
|
*/
|
|
122
110
|
isCustom: boolean;
|
|
123
111
|
/**
|
|
124
|
-
*
|
|
112
|
+
* Localized display name (ADR-0114, read-time projection)
|
|
125
113
|
*/
|
|
126
|
-
|
|
114
|
+
displayName?: string;
|
|
127
115
|
/**
|
|
128
116
|
* Icon identifier
|
|
129
117
|
*/
|
|
130
118
|
icon?: string;
|
|
131
119
|
/**
|
|
132
|
-
*
|
|
120
|
+
* Open directive metadata (ADR-0115 Decision 9)
|
|
133
121
|
*/
|
|
134
|
-
|
|
122
|
+
openDirectiveMeta?: {
|
|
135
123
|
[key: string]: unknown;
|
|
136
124
|
};
|
|
137
125
|
/**
|
|
@@ -178,10 +166,6 @@ export type AccountListResponseDto = {
|
|
|
178
166
|
};
|
|
179
167
|
|
|
180
168
|
export type UpdateAccountDto = {
|
|
181
|
-
/**
|
|
182
|
-
* Display name to distinguish accounts at the same path
|
|
183
|
-
*/
|
|
184
|
-
displayName?: string;
|
|
185
169
|
/**
|
|
186
170
|
* Allowed currencies (null = no restriction)
|
|
187
171
|
*/
|
|
@@ -197,18 +181,14 @@ export type UpdateAccountDto = {
|
|
|
197
181
|
| 'STRICT'
|
|
198
182
|
| 'STRICT_WITH_SIZE'
|
|
199
183
|
| 'NONE';
|
|
200
|
-
/**
|
|
201
|
-
* i18n key for display name
|
|
202
|
-
*/
|
|
203
|
-
i18nKey?: string;
|
|
204
184
|
/**
|
|
205
185
|
* Icon identifier
|
|
206
186
|
*/
|
|
207
187
|
icon?: string;
|
|
208
188
|
/**
|
|
209
|
-
*
|
|
189
|
+
* Open directive metadata (merged with existing; NOT an opening-balance amount)
|
|
210
190
|
*/
|
|
211
|
-
|
|
191
|
+
openDirectiveMeta?: {
|
|
212
192
|
[key: string]: unknown;
|
|
213
193
|
};
|
|
214
194
|
/**
|
|
@@ -237,6 +217,28 @@ export type ReopenAccountDto = {
|
|
|
237
217
|
reopenDate?: string;
|
|
238
218
|
};
|
|
239
219
|
|
|
220
|
+
export type CreateOpeningBalanceDto = {
|
|
221
|
+
/**
|
|
222
|
+
* Opening balance amount (non-negative)
|
|
223
|
+
*/
|
|
224
|
+
amount: number;
|
|
225
|
+
/**
|
|
226
|
+
* Currency code
|
|
227
|
+
*/
|
|
228
|
+
currency: string;
|
|
229
|
+
/**
|
|
230
|
+
* Opening-balance date (defaults to now)
|
|
231
|
+
*/
|
|
232
|
+
date?: string;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
export type OpeningBalanceResultDto = {
|
|
236
|
+
/**
|
|
237
|
+
* Created opening-balance transaction id.
|
|
238
|
+
*/
|
|
239
|
+
transactionId: string;
|
|
240
|
+
};
|
|
241
|
+
|
|
240
242
|
export type AccountStandardResponseDto = {
|
|
241
243
|
/**
|
|
242
244
|
* Account path (hierarchical, colon-separated)
|
|
@@ -246,10 +248,6 @@ export type AccountStandardResponseDto = {
|
|
|
246
248
|
* Account type in Beancount hierarchy
|
|
247
249
|
*/
|
|
248
250
|
type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
|
|
249
|
-
/**
|
|
250
|
-
* i18n key for localized display name
|
|
251
|
-
*/
|
|
252
|
-
i18nKey: string;
|
|
253
251
|
/**
|
|
254
252
|
* Short localized display name
|
|
255
253
|
*/
|
|
@@ -284,10 +282,6 @@ export type AccountStandardListResponseDto = {
|
|
|
284
282
|
};
|
|
285
283
|
|
|
286
284
|
export type TemplateMetadataDto = {
|
|
287
|
-
/**
|
|
288
|
-
* Whether this path can be extended
|
|
289
|
-
*/
|
|
290
|
-
extendable: boolean;
|
|
291
285
|
/**
|
|
292
286
|
* Root account type
|
|
293
287
|
*/
|
|
@@ -316,6 +310,53 @@ export type RegionsMetadataResponseDto = {
|
|
|
316
310
|
regions: Array<RegionInfoDto>;
|
|
317
311
|
};
|
|
318
312
|
|
|
313
|
+
export type CostSpecDto = {
|
|
314
|
+
/**
|
|
315
|
+
* Cost specification mode (mirrors engine CostSpec)
|
|
316
|
+
*/
|
|
317
|
+
mode: 'per-unit' | 'total' | 'date' | 'label' | 'auto';
|
|
318
|
+
/**
|
|
319
|
+
* Per-unit cost (required when mode is "per-unit")
|
|
320
|
+
*/
|
|
321
|
+
numberPerUnit?: string;
|
|
322
|
+
/**
|
|
323
|
+
* Total cost for all units (required when mode is "total")
|
|
324
|
+
*/
|
|
325
|
+
totalNumber?: string;
|
|
326
|
+
/**
|
|
327
|
+
* Cost currency (required in all modes)
|
|
328
|
+
*/
|
|
329
|
+
currency: string;
|
|
330
|
+
/**
|
|
331
|
+
* Lot acquisition date, ISO 8601 (required when mode is "date")
|
|
332
|
+
*/
|
|
333
|
+
date?: string;
|
|
334
|
+
/**
|
|
335
|
+
* Lot label (required when mode is "label"; optional tag in buy modes)
|
|
336
|
+
*/
|
|
337
|
+
label?: string;
|
|
338
|
+
/**
|
|
339
|
+
* Merge lots for AVERAGE booking (mode: auto)
|
|
340
|
+
*/
|
|
341
|
+
merge?: boolean;
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Cost specification mode (mirrors engine CostSpec)
|
|
346
|
+
*/
|
|
347
|
+
export type mode = 'per-unit' | 'total' | 'date' | 'label' | 'auto';
|
|
348
|
+
|
|
349
|
+
export type AmountDto = {
|
|
350
|
+
/**
|
|
351
|
+
* Amount as decimal string (max 15 integer + 15 decimal digits)
|
|
352
|
+
*/
|
|
353
|
+
number: string;
|
|
354
|
+
/**
|
|
355
|
+
* Currency/commodity code
|
|
356
|
+
*/
|
|
357
|
+
currency: string;
|
|
358
|
+
};
|
|
359
|
+
|
|
319
360
|
export type CreatePostingDto = {
|
|
320
361
|
/**
|
|
321
362
|
* Account name in Beancount format (must start with uppercase, colon-separated)
|
|
@@ -335,6 +376,14 @@ export type CreatePostingDto = {
|
|
|
335
376
|
meta?: {
|
|
336
377
|
[key: string]: unknown;
|
|
337
378
|
};
|
|
379
|
+
/**
|
|
380
|
+
* Cost basis (Beancount `{...}`). Maps to engine costSpec. Required for commodity holdings so they carry a monetary weight that can balance.
|
|
381
|
+
*/
|
|
382
|
+
cost?: CostSpecDto;
|
|
383
|
+
/**
|
|
384
|
+
* Price annotation (Beancount `@...`). Maps to engine price. Used for valuation; cost takes priority for balance weight.
|
|
385
|
+
*/
|
|
386
|
+
price?: AmountDto;
|
|
338
387
|
};
|
|
339
388
|
|
|
340
389
|
export type CreateTransactionDto = {
|
|
@@ -387,6 +436,25 @@ export type CreateTransactionDto = {
|
|
|
387
436
|
*/
|
|
388
437
|
export type flag = '*' | '!';
|
|
389
438
|
|
|
439
|
+
export type CostDetailDto = {
|
|
440
|
+
/**
|
|
441
|
+
* Per-unit cost basis (mirrors engine Cost.number)
|
|
442
|
+
*/
|
|
443
|
+
number?: string;
|
|
444
|
+
/**
|
|
445
|
+
* Cost currency
|
|
446
|
+
*/
|
|
447
|
+
currency?: string;
|
|
448
|
+
/**
|
|
449
|
+
* Lot acquisition date (ISO yyyy-mm-dd)
|
|
450
|
+
*/
|
|
451
|
+
date?: string;
|
|
452
|
+
/**
|
|
453
|
+
* Lot label
|
|
454
|
+
*/
|
|
455
|
+
label?: string;
|
|
456
|
+
};
|
|
457
|
+
|
|
390
458
|
export type PostingResponseDto = {
|
|
391
459
|
/**
|
|
392
460
|
* Account name
|
|
@@ -400,6 +468,10 @@ export type PostingResponseDto = {
|
|
|
400
468
|
* Currency
|
|
401
469
|
*/
|
|
402
470
|
currency?: string;
|
|
471
|
+
/**
|
|
472
|
+
* Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
|
|
473
|
+
*/
|
|
474
|
+
cost?: CostDetailDto;
|
|
403
475
|
};
|
|
404
476
|
|
|
405
477
|
export type RecurringSuggestionDto = {
|
|
@@ -643,6 +715,10 @@ export type PostingDetailDto = {
|
|
|
643
715
|
* Cost date
|
|
644
716
|
*/
|
|
645
717
|
costDate?: string;
|
|
718
|
+
/**
|
|
719
|
+
* Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
|
|
720
|
+
*/
|
|
721
|
+
cost?: CostDetailDto;
|
|
646
722
|
/**
|
|
647
723
|
* Price amount
|
|
648
724
|
*/
|
|
@@ -766,6 +842,51 @@ export type flag2 =
|
|
|
766
842
|
*/
|
|
767
843
|
export type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
|
|
768
844
|
|
|
845
|
+
export type BalanceByCurrencyDto = {
|
|
846
|
+
/**
|
|
847
|
+
* ISO 4217 currency code
|
|
848
|
+
*/
|
|
849
|
+
currency: string;
|
|
850
|
+
/**
|
|
851
|
+
* Balance amount
|
|
852
|
+
*/
|
|
853
|
+
balance: string;
|
|
854
|
+
};
|
|
855
|
+
|
|
856
|
+
export type ExchangeRateWarningDto = {
|
|
857
|
+
/**
|
|
858
|
+
* Warning type
|
|
859
|
+
*/
|
|
860
|
+
type: string;
|
|
861
|
+
/**
|
|
862
|
+
* Currency without exchange rate
|
|
863
|
+
*/
|
|
864
|
+
currency: string;
|
|
865
|
+
/**
|
|
866
|
+
* Total amount affected
|
|
867
|
+
*/
|
|
868
|
+
totalAmount: string;
|
|
869
|
+
};
|
|
870
|
+
|
|
871
|
+
export type TransactionListSummaryDto = {
|
|
872
|
+
/**
|
|
873
|
+
* Partial converted total in base currency (rated currencies only, raw Beancount sign). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
|
|
874
|
+
*/
|
|
875
|
+
totalAmount: string;
|
|
876
|
+
/**
|
|
877
|
+
* Base currency (ISO 4217)
|
|
878
|
+
*/
|
|
879
|
+
currency: string;
|
|
880
|
+
/**
|
|
881
|
+
* Raw (unconverted) balance per currency
|
|
882
|
+
*/
|
|
883
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
884
|
+
/**
|
|
885
|
+
* Currencies missing an FX rate (omitted when empty)
|
|
886
|
+
*/
|
|
887
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
888
|
+
};
|
|
889
|
+
|
|
769
890
|
export type TransactionListResponseDto = {
|
|
770
891
|
/**
|
|
771
892
|
* List of transactions
|
|
@@ -783,6 +904,10 @@ export type TransactionListResponseDto = {
|
|
|
783
904
|
* Number of items skipped
|
|
784
905
|
*/
|
|
785
906
|
offset: number;
|
|
907
|
+
/**
|
|
908
|
+
* Amount summary for the full filtered set (#514). Present only when the request has a single account OR category viewpoint; omitted for search-only / plain-list / dual-perspective requests.
|
|
909
|
+
*/
|
|
910
|
+
summary?: TransactionListSummaryDto;
|
|
786
911
|
};
|
|
787
912
|
|
|
788
913
|
export type TagSuggestionDto = {
|
|
@@ -1242,17 +1367,17 @@ export type ResolveResultDto = {
|
|
|
1242
1367
|
[key: string]: string;
|
|
1243
1368
|
};
|
|
1244
1369
|
/**
|
|
1245
|
-
* Resolution ID for undo
|
|
1370
|
+
* Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
|
|
1246
1371
|
*/
|
|
1247
|
-
resolutionId
|
|
1372
|
+
resolutionId?: string;
|
|
1248
1373
|
/**
|
|
1249
1374
|
* Whether this decision can be undone
|
|
1250
1375
|
*/
|
|
1251
|
-
canUndo
|
|
1376
|
+
canUndo?: boolean;
|
|
1252
1377
|
/**
|
|
1253
1378
|
* Deadline for undo (24h from resolution)
|
|
1254
1379
|
*/
|
|
1255
|
-
undoDeadline
|
|
1380
|
+
undoDeadline?: string;
|
|
1256
1381
|
/**
|
|
1257
1382
|
* Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
|
|
1258
1383
|
*/
|
|
@@ -1835,6 +1960,108 @@ export type UpdateCommodityDto = {
|
|
|
1835
1960
|
};
|
|
1836
1961
|
};
|
|
1837
1962
|
|
|
1963
|
+
export type CreateBeanPriceDto = {
|
|
1964
|
+
/**
|
|
1965
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1966
|
+
*/
|
|
1967
|
+
currency: string;
|
|
1968
|
+
/**
|
|
1969
|
+
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
1970
|
+
*/
|
|
1971
|
+
quoteCurrency: string;
|
|
1972
|
+
/**
|
|
1973
|
+
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
1974
|
+
*/
|
|
1975
|
+
amount: number;
|
|
1976
|
+
/**
|
|
1977
|
+
* Price date (ISO 8601 format)
|
|
1978
|
+
*/
|
|
1979
|
+
date: string;
|
|
1980
|
+
/**
|
|
1981
|
+
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
1982
|
+
*/
|
|
1983
|
+
metadata?: {
|
|
1984
|
+
[key: string]: unknown;
|
|
1985
|
+
};
|
|
1986
|
+
};
|
|
1987
|
+
|
|
1988
|
+
export type PriceResponseDto = {
|
|
1989
|
+
/**
|
|
1990
|
+
* Unique identifier
|
|
1991
|
+
*/
|
|
1992
|
+
id: string;
|
|
1993
|
+
/**
|
|
1994
|
+
* User ID (owner of the price)
|
|
1995
|
+
*/
|
|
1996
|
+
userId: string;
|
|
1997
|
+
/**
|
|
1998
|
+
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
1999
|
+
*/
|
|
2000
|
+
currency: string;
|
|
2001
|
+
/**
|
|
2002
|
+
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
2003
|
+
*/
|
|
2004
|
+
quoteCurrency: string;
|
|
2005
|
+
/**
|
|
2006
|
+
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
2007
|
+
*/
|
|
2008
|
+
amount: number;
|
|
2009
|
+
/**
|
|
2010
|
+
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
2011
|
+
*/
|
|
2012
|
+
date: string;
|
|
2013
|
+
/**
|
|
2014
|
+
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
2015
|
+
*/
|
|
2016
|
+
meta: {
|
|
2017
|
+
[key: string]: unknown;
|
|
2018
|
+
};
|
|
2019
|
+
/**
|
|
2020
|
+
* Creation timestamp
|
|
2021
|
+
*/
|
|
2022
|
+
createdAt: string;
|
|
2023
|
+
/**
|
|
2024
|
+
* Last update timestamp
|
|
2025
|
+
*/
|
|
2026
|
+
updatedAt: string;
|
|
2027
|
+
};
|
|
2028
|
+
|
|
2029
|
+
export type PriceListResponseDto = {
|
|
2030
|
+
/**
|
|
2031
|
+
* List of prices
|
|
2032
|
+
*/
|
|
2033
|
+
items: Array<PriceResponseDto>;
|
|
2034
|
+
/**
|
|
2035
|
+
* Total number of prices
|
|
2036
|
+
*/
|
|
2037
|
+
total: number;
|
|
2038
|
+
};
|
|
2039
|
+
|
|
2040
|
+
export type UpdateBeanPriceDto = {
|
|
2041
|
+
/**
|
|
2042
|
+
* Currency being priced
|
|
2043
|
+
*/
|
|
2044
|
+
currency?: string;
|
|
2045
|
+
/**
|
|
2046
|
+
* Quote currency (pricing currency)
|
|
2047
|
+
*/
|
|
2048
|
+
quoteCurrency?: string;
|
|
2049
|
+
/**
|
|
2050
|
+
* Price amount (MUST be >= 0 per Beancount spec)
|
|
2051
|
+
*/
|
|
2052
|
+
amount?: number;
|
|
2053
|
+
/**
|
|
2054
|
+
* Price date (ISO 8601 format)
|
|
2055
|
+
*/
|
|
2056
|
+
date?: string;
|
|
2057
|
+
/**
|
|
2058
|
+
* Metadata
|
|
2059
|
+
*/
|
|
2060
|
+
metadata?: {
|
|
2061
|
+
[key: string]: unknown;
|
|
2062
|
+
};
|
|
2063
|
+
};
|
|
2064
|
+
|
|
1838
2065
|
export type CreateRecurringRuleDto = {
|
|
1839
2066
|
/**
|
|
1840
2067
|
* Rule name (unique per user)
|
|
@@ -2947,29 +3174,273 @@ export type UpdatePropertyDto = {
|
|
|
2947
3174
|
value: string;
|
|
2948
3175
|
};
|
|
2949
3176
|
|
|
2950
|
-
export type
|
|
3177
|
+
export type CreateBeanEventDto = {
|
|
2951
3178
|
/**
|
|
2952
|
-
*
|
|
3179
|
+
* Life event date (ISO 8601)
|
|
2953
3180
|
*/
|
|
2954
|
-
|
|
2955
|
-
};
|
|
2956
|
-
|
|
2957
|
-
export type ImportErrorDto = {
|
|
3181
|
+
date: string;
|
|
2958
3182
|
/**
|
|
2959
|
-
*
|
|
3183
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
2960
3184
|
*/
|
|
2961
|
-
|
|
3185
|
+
type: string;
|
|
2962
3186
|
/**
|
|
2963
|
-
*
|
|
3187
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
2964
3188
|
*/
|
|
2965
|
-
|
|
3189
|
+
description: string;
|
|
3190
|
+
/**
|
|
3191
|
+
* Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
|
|
3192
|
+
*/
|
|
3193
|
+
meta?: {
|
|
3194
|
+
[key: string]: unknown;
|
|
3195
|
+
};
|
|
2966
3196
|
};
|
|
2967
3197
|
|
|
2968
|
-
export type
|
|
3198
|
+
export type EventResponseDto = {
|
|
2969
3199
|
/**
|
|
2970
|
-
*
|
|
3200
|
+
* Unique identifier
|
|
2971
3201
|
*/
|
|
2972
|
-
|
|
3202
|
+
id: string;
|
|
3203
|
+
/**
|
|
3204
|
+
* User ID (owner of the life event)
|
|
3205
|
+
*/
|
|
3206
|
+
userId: string;
|
|
3207
|
+
/**
|
|
3208
|
+
* Life event date (ISO 8601 format)
|
|
3209
|
+
*/
|
|
3210
|
+
date: string;
|
|
3211
|
+
/**
|
|
3212
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3213
|
+
*/
|
|
3214
|
+
type: string;
|
|
3215
|
+
/**
|
|
3216
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3217
|
+
*/
|
|
3218
|
+
description: string;
|
|
3219
|
+
/**
|
|
3220
|
+
* Product-side metadata (free-form JSON)
|
|
3221
|
+
*/
|
|
3222
|
+
meta: {
|
|
3223
|
+
[key: string]: unknown;
|
|
3224
|
+
};
|
|
3225
|
+
/**
|
|
3226
|
+
* Creation timestamp
|
|
3227
|
+
*/
|
|
3228
|
+
createdAt: string;
|
|
3229
|
+
/**
|
|
3230
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3231
|
+
*/
|
|
3232
|
+
updatedAt: string;
|
|
3233
|
+
};
|
|
3234
|
+
|
|
3235
|
+
export type EventListResponseDto = {
|
|
3236
|
+
/**
|
|
3237
|
+
* List of life events
|
|
3238
|
+
*/
|
|
3239
|
+
items: Array<EventResponseDto>;
|
|
3240
|
+
/**
|
|
3241
|
+
* Total number of life events matching the query
|
|
3242
|
+
*/
|
|
3243
|
+
total: number;
|
|
3244
|
+
};
|
|
3245
|
+
|
|
3246
|
+
export type UpdateBeanEventDto = {
|
|
3247
|
+
/**
|
|
3248
|
+
* Life event date (ISO 8601)
|
|
3249
|
+
*/
|
|
3250
|
+
date?: string;
|
|
3251
|
+
/**
|
|
3252
|
+
* Life event type (user-defined)
|
|
3253
|
+
*/
|
|
3254
|
+
type?: string;
|
|
3255
|
+
/**
|
|
3256
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3257
|
+
*/
|
|
3258
|
+
description?: string;
|
|
3259
|
+
/**
|
|
3260
|
+
* Product-side metadata (free-form JSON)
|
|
3261
|
+
*/
|
|
3262
|
+
meta?: {
|
|
3263
|
+
[key: string]: unknown;
|
|
3264
|
+
};
|
|
3265
|
+
};
|
|
3266
|
+
|
|
3267
|
+
export type OnboardingAccountDto = {
|
|
3268
|
+
/**
|
|
3269
|
+
* Account path (Assets/Liabilities only; format validated by the account service)
|
|
3270
|
+
*/
|
|
3271
|
+
path: string;
|
|
3272
|
+
/**
|
|
3273
|
+
* ISO 4217 currency code (3 letters)
|
|
3274
|
+
*/
|
|
3275
|
+
currency: string;
|
|
3276
|
+
/**
|
|
3277
|
+
* Opening balance as a non-negative Decimal string (e.g. "1000.00")
|
|
3278
|
+
*/
|
|
3279
|
+
openingBalance?: string;
|
|
3280
|
+
/**
|
|
3281
|
+
* Platform ID to bind the account to (references Platform.id); omit for unbound
|
|
3282
|
+
*/
|
|
3283
|
+
platformId?: string;
|
|
3284
|
+
};
|
|
3285
|
+
|
|
3286
|
+
export type OnboardingDto = {
|
|
3287
|
+
/**
|
|
3288
|
+
* Asset/Liability accounts to register with opening balances
|
|
3289
|
+
*/
|
|
3290
|
+
accounts?: Array<OnboardingAccountDto>;
|
|
3291
|
+
/**
|
|
3292
|
+
* Skip asset registration; only bootstrap the core account set
|
|
3293
|
+
*/
|
|
3294
|
+
skipAssetRegistration?: boolean;
|
|
3295
|
+
};
|
|
3296
|
+
|
|
3297
|
+
export type ActualBalanceDto = {
|
|
3298
|
+
/**
|
|
3299
|
+
* Actual balance amount as a decimal string (preserves precision for tolerance inference).
|
|
3300
|
+
*/
|
|
3301
|
+
amount: string;
|
|
3302
|
+
/**
|
|
3303
|
+
* Currency code (ISO 4217 or commodity ticker).
|
|
3304
|
+
*/
|
|
3305
|
+
ccy: string;
|
|
3306
|
+
};
|
|
3307
|
+
|
|
3308
|
+
export type ComputeReconciliationDto = {
|
|
3309
|
+
/**
|
|
3310
|
+
* BeanAccount id to reconcile.
|
|
3311
|
+
*/
|
|
3312
|
+
accountId: string;
|
|
3313
|
+
/**
|
|
3314
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3315
|
+
*/
|
|
3316
|
+
asOfDate: string;
|
|
3317
|
+
/**
|
|
3318
|
+
* Actual balance from the external statement.
|
|
3319
|
+
*/
|
|
3320
|
+
actualBalance: ActualBalanceDto;
|
|
3321
|
+
};
|
|
3322
|
+
|
|
3323
|
+
export type ReconciliationComputeResultDto = {
|
|
3324
|
+
accountId: string;
|
|
3325
|
+
asOfDate: string;
|
|
3326
|
+
/**
|
|
3327
|
+
* System-computed book balance (decimal string).
|
|
3328
|
+
*/
|
|
3329
|
+
bookBalance: string;
|
|
3330
|
+
/**
|
|
3331
|
+
* User-entered actual balance (decimal string).
|
|
3332
|
+
*/
|
|
3333
|
+
actualBalance: string;
|
|
3334
|
+
currency: string;
|
|
3335
|
+
/**
|
|
3336
|
+
* Diff = book − actual (decimal string).
|
|
3337
|
+
*/
|
|
3338
|
+
diff: string;
|
|
3339
|
+
/**
|
|
3340
|
+
* Applied tolerance (decimal string).
|
|
3341
|
+
*/
|
|
3342
|
+
tolerance: string;
|
|
3343
|
+
/**
|
|
3344
|
+
* true when |diff| ≤ tolerance.
|
|
3345
|
+
*/
|
|
3346
|
+
withinTolerance: boolean;
|
|
3347
|
+
/**
|
|
3348
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3349
|
+
*/
|
|
3350
|
+
suggestedAction: 'assert' | 'pad';
|
|
3351
|
+
};
|
|
3352
|
+
|
|
3353
|
+
/**
|
|
3354
|
+
* Suggested next action: assert when within tolerance, pad otherwise.
|
|
3355
|
+
*/
|
|
3356
|
+
export type suggestedAction = 'assert' | 'pad';
|
|
3357
|
+
|
|
3358
|
+
export type AssertReconciliationDto = {
|
|
3359
|
+
/**
|
|
3360
|
+
* BeanAccount id to reconcile.
|
|
3361
|
+
*/
|
|
3362
|
+
accountId: string;
|
|
3363
|
+
/**
|
|
3364
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3365
|
+
*/
|
|
3366
|
+
asOfDate: string;
|
|
3367
|
+
/**
|
|
3368
|
+
* Actual balance from the external statement.
|
|
3369
|
+
*/
|
|
3370
|
+
actualBalance: ActualBalanceDto;
|
|
3371
|
+
/**
|
|
3372
|
+
* Optional explicit tolerance override. Omit to infer from amount precision (Beancount default).
|
|
3373
|
+
*/
|
|
3374
|
+
tolerance?: string;
|
|
3375
|
+
};
|
|
3376
|
+
|
|
3377
|
+
export type ReconciliationRecordDto = {
|
|
3378
|
+
id: string;
|
|
3379
|
+
accountId: string;
|
|
3380
|
+
date: string;
|
|
3381
|
+
/**
|
|
3382
|
+
* Asserted (actual) amount.
|
|
3383
|
+
*/
|
|
3384
|
+
amount: string;
|
|
3385
|
+
currency: string;
|
|
3386
|
+
tolerance?: string;
|
|
3387
|
+
/**
|
|
3388
|
+
* book − actual.
|
|
3389
|
+
*/
|
|
3390
|
+
diffAmount?: string;
|
|
3391
|
+
diffCurrency?: string;
|
|
3392
|
+
createdAt: string;
|
|
3393
|
+
};
|
|
3394
|
+
|
|
3395
|
+
export type PadReconciliationDto = {
|
|
3396
|
+
/**
|
|
3397
|
+
* BeanAccount id to reconcile.
|
|
3398
|
+
*/
|
|
3399
|
+
accountId: string;
|
|
3400
|
+
/**
|
|
3401
|
+
* Assertion date (ISO 8601, e.g. "2026-07-24").
|
|
3402
|
+
*/
|
|
3403
|
+
asOfDate: string;
|
|
3404
|
+
/**
|
|
3405
|
+
* Actual balance from the external statement.
|
|
3406
|
+
*/
|
|
3407
|
+
actualBalance: ActualBalanceDto;
|
|
3408
|
+
/**
|
|
3409
|
+
* Pad source account. Defaults to Equity:Opening-Balances (official Beancount convention).
|
|
3410
|
+
*/
|
|
3411
|
+
sourceAccount?: string;
|
|
3412
|
+
};
|
|
3413
|
+
|
|
3414
|
+
export type PadResultDto = {
|
|
3415
|
+
/**
|
|
3416
|
+
* Created pad adjusting transaction id.
|
|
3417
|
+
*/
|
|
3418
|
+
transactionId: string;
|
|
3419
|
+
};
|
|
3420
|
+
|
|
3421
|
+
export type FileImportDto = {
|
|
3422
|
+
/**
|
|
3423
|
+
* Bill file to import (CSV, PDF, OFX, etc.)
|
|
3424
|
+
*/
|
|
3425
|
+
file: Blob | File;
|
|
3426
|
+
};
|
|
3427
|
+
|
|
3428
|
+
export type ImportErrorDto = {
|
|
3429
|
+
/**
|
|
3430
|
+
* Index of failed transaction in the file
|
|
3431
|
+
*/
|
|
3432
|
+
index: number;
|
|
3433
|
+
/**
|
|
3434
|
+
* Error message
|
|
3435
|
+
*/
|
|
3436
|
+
error: string;
|
|
3437
|
+
};
|
|
3438
|
+
|
|
3439
|
+
export type ReviewItemPreviewDto = {
|
|
3440
|
+
/**
|
|
3441
|
+
* Index in the import batch (for tracking)
|
|
3442
|
+
*/
|
|
3443
|
+
index: number;
|
|
2973
3444
|
/**
|
|
2974
3445
|
* Transaction date (ISO format)
|
|
2975
3446
|
*/
|
|
@@ -3245,168 +3716,139 @@ export type UpdateImporterConfigDto = {
|
|
|
3245
3716
|
data?: UpdateConfigDataDto;
|
|
3246
3717
|
};
|
|
3247
3718
|
|
|
3248
|
-
export type
|
|
3249
|
-
/**
|
|
3250
|
-
* Platform name
|
|
3251
|
-
*/
|
|
3252
|
-
name: string;
|
|
3719
|
+
export type ProviderSyncConfigDto = {
|
|
3253
3720
|
/**
|
|
3254
|
-
*
|
|
3721
|
+
* Source account for the first posting
|
|
3255
3722
|
*/
|
|
3256
|
-
|
|
3723
|
+
sourceAccount: string;
|
|
3257
3724
|
/**
|
|
3258
|
-
*
|
|
3725
|
+
* Default currency for transactions
|
|
3259
3726
|
*/
|
|
3260
|
-
|
|
3727
|
+
defaultCurrency: string;
|
|
3261
3728
|
/**
|
|
3262
|
-
*
|
|
3729
|
+
* Default expense account for the second posting
|
|
3263
3730
|
*/
|
|
3264
|
-
|
|
3731
|
+
defaultExpenseAccount: string;
|
|
3265
3732
|
/**
|
|
3266
|
-
*
|
|
3733
|
+
* Default income account for the second posting
|
|
3267
3734
|
*/
|
|
3268
|
-
|
|
3269
|
-
| 'BANK'
|
|
3270
|
-
| 'BROKERAGE'
|
|
3271
|
-
| 'CRYPTO_EXCHANGE'
|
|
3272
|
-
| 'PAYMENT'
|
|
3273
|
-
| 'INVESTMENT'
|
|
3274
|
-
| 'INSURANCE'
|
|
3275
|
-
| 'OTHER';
|
|
3735
|
+
defaultIncomeAccount: string;
|
|
3276
3736
|
/**
|
|
3277
|
-
*
|
|
3737
|
+
* Filter pending transactions
|
|
3278
3738
|
*/
|
|
3279
|
-
|
|
3739
|
+
filterPending?: boolean;
|
|
3280
3740
|
/**
|
|
3281
|
-
*
|
|
3741
|
+
* External account ID for per-batch providers (e.g. GoCardless). Overrides sourceAccount when an ExternalAccountLink mapping exists.
|
|
3282
3742
|
*/
|
|
3283
|
-
|
|
3743
|
+
externalAccountId?: string;
|
|
3284
3744
|
};
|
|
3285
3745
|
|
|
3286
|
-
|
|
3287
|
-
* Platform type
|
|
3288
|
-
*/
|
|
3289
|
-
export type type3 =
|
|
3290
|
-
| 'BANK'
|
|
3291
|
-
| 'BROKERAGE'
|
|
3292
|
-
| 'CRYPTO_EXCHANGE'
|
|
3293
|
-
| 'PAYMENT'
|
|
3294
|
-
| 'INVESTMENT'
|
|
3295
|
-
| 'INSURANCE'
|
|
3296
|
-
| 'OTHER';
|
|
3297
|
-
|
|
3298
|
-
export type UpdatePlatformDto = {
|
|
3746
|
+
export type ProviderSyncDto = {
|
|
3299
3747
|
/**
|
|
3300
|
-
*
|
|
3748
|
+
* Provider name (already in URL path, optional here for reference)
|
|
3301
3749
|
*/
|
|
3302
|
-
|
|
3750
|
+
provider?: string;
|
|
3303
3751
|
/**
|
|
3304
|
-
*
|
|
3752
|
+
* Unique sync identifier for idempotency
|
|
3305
3753
|
*/
|
|
3306
|
-
|
|
3754
|
+
syncId?: string;
|
|
3307
3755
|
/**
|
|
3308
|
-
*
|
|
3756
|
+
* Provider sync configuration
|
|
3309
3757
|
*/
|
|
3310
|
-
|
|
3758
|
+
config: ProviderSyncConfigDto;
|
|
3311
3759
|
/**
|
|
3312
|
-
*
|
|
3760
|
+
* Raw transactions from provider
|
|
3313
3761
|
*/
|
|
3314
|
-
|
|
3762
|
+
transactions: unknown[];
|
|
3763
|
+
};
|
|
3764
|
+
|
|
3765
|
+
export type ProviderSyncResponseDto = {
|
|
3315
3766
|
/**
|
|
3316
|
-
*
|
|
3767
|
+
* Number of transactions successfully imported
|
|
3317
3768
|
*/
|
|
3318
|
-
|
|
3319
|
-
| 'BANK'
|
|
3320
|
-
| 'BROKERAGE'
|
|
3321
|
-
| 'CRYPTO_EXCHANGE'
|
|
3322
|
-
| 'PAYMENT'
|
|
3323
|
-
| 'INVESTMENT'
|
|
3324
|
-
| 'INSURANCE'
|
|
3325
|
-
| 'OTHER';
|
|
3769
|
+
imported: number;
|
|
3326
3770
|
/**
|
|
3327
|
-
*
|
|
3771
|
+
* Number of transactions skipped (duplicates)
|
|
3328
3772
|
*/
|
|
3329
|
-
|
|
3773
|
+
skipped: number;
|
|
3330
3774
|
/**
|
|
3331
|
-
*
|
|
3775
|
+
* Number of transactions pending review
|
|
3332
3776
|
*/
|
|
3333
|
-
|
|
3334
|
-
};
|
|
3335
|
-
|
|
3336
|
-
export type ProviderSyncConfigDto = {
|
|
3337
|
-
/**
|
|
3338
|
-
* Source account for the first posting
|
|
3339
|
-
*/
|
|
3340
|
-
sourceAccount: string;
|
|
3341
|
-
/**
|
|
3342
|
-
* Default currency for transactions
|
|
3343
|
-
*/
|
|
3344
|
-
defaultCurrency: string;
|
|
3777
|
+
pendingReview: number;
|
|
3345
3778
|
/**
|
|
3346
|
-
*
|
|
3779
|
+
* Number of transactions that failed to import
|
|
3347
3780
|
*/
|
|
3348
|
-
|
|
3781
|
+
failed: number;
|
|
3349
3782
|
/**
|
|
3350
|
-
*
|
|
3783
|
+
* IDs of successfully imported transactions
|
|
3351
3784
|
*/
|
|
3352
|
-
|
|
3785
|
+
importedTransactionIds?: Array<string>;
|
|
3353
3786
|
/**
|
|
3354
|
-
*
|
|
3787
|
+
* IDs of review items created for branched transactions
|
|
3355
3788
|
*/
|
|
3356
|
-
|
|
3789
|
+
reviewItemIds?: Array<string>;
|
|
3357
3790
|
};
|
|
3358
3791
|
|
|
3359
|
-
export type
|
|
3360
|
-
/**
|
|
3361
|
-
* Provider name (already in URL path, optional here for reference)
|
|
3362
|
-
*/
|
|
3363
|
-
provider?: string;
|
|
3364
|
-
/**
|
|
3365
|
-
* Unique sync identifier for idempotency
|
|
3366
|
-
*/
|
|
3367
|
-
syncId?: string;
|
|
3368
|
-
/**
|
|
3369
|
-
* Provider sync configuration
|
|
3370
|
-
*/
|
|
3371
|
-
config: ProviderSyncConfigDto;
|
|
3792
|
+
export type SupportedProvidersResponseDto = {
|
|
3372
3793
|
/**
|
|
3373
|
-
*
|
|
3794
|
+
* List of supported provider names
|
|
3374
3795
|
*/
|
|
3375
|
-
|
|
3796
|
+
providers: Array<string>;
|
|
3376
3797
|
};
|
|
3377
3798
|
|
|
3378
|
-
export type
|
|
3379
|
-
/**
|
|
3380
|
-
* Number of transactions successfully imported
|
|
3381
|
-
*/
|
|
3382
|
-
imported: number;
|
|
3383
|
-
/**
|
|
3384
|
-
* Number of transactions skipped (duplicates)
|
|
3385
|
-
*/
|
|
3386
|
-
skipped: number;
|
|
3387
|
-
/**
|
|
3388
|
-
* Number of transactions pending review
|
|
3389
|
-
*/
|
|
3390
|
-
pendingReview: number;
|
|
3799
|
+
export type CreateExternalAccountLinkDto = {
|
|
3391
3800
|
/**
|
|
3392
|
-
*
|
|
3801
|
+
* Open Banking provider (whitelist)
|
|
3393
3802
|
*/
|
|
3394
|
-
|
|
3803
|
+
provider:
|
|
3804
|
+
| 'plaid'
|
|
3805
|
+
| 'teller'
|
|
3806
|
+
| 'truelayer'
|
|
3807
|
+
| 'gocardless'
|
|
3808
|
+
| 'simplefin'
|
|
3809
|
+
| 'yodlee'
|
|
3810
|
+
| 'beancount-direct'
|
|
3811
|
+
| 'parsed-bill';
|
|
3395
3812
|
/**
|
|
3396
|
-
*
|
|
3813
|
+
* External account ID from the provider
|
|
3397
3814
|
*/
|
|
3398
|
-
|
|
3815
|
+
externalAccountId: string;
|
|
3399
3816
|
/**
|
|
3400
|
-
*
|
|
3817
|
+
* Target BeanAccount ID (must belong to the JWT user)
|
|
3401
3818
|
*/
|
|
3402
|
-
|
|
3819
|
+
beanAccountId: string;
|
|
3403
3820
|
};
|
|
3404
3821
|
|
|
3405
|
-
|
|
3822
|
+
/**
|
|
3823
|
+
* Open Banking provider (whitelist)
|
|
3824
|
+
*/
|
|
3825
|
+
export type provider =
|
|
3826
|
+
| 'plaid'
|
|
3827
|
+
| 'teller'
|
|
3828
|
+
| 'truelayer'
|
|
3829
|
+
| 'gocardless'
|
|
3830
|
+
| 'simplefin'
|
|
3831
|
+
| 'yodlee'
|
|
3832
|
+
| 'beancount-direct'
|
|
3833
|
+
| 'parsed-bill';
|
|
3834
|
+
|
|
3835
|
+
export type ExternalAccountLinkResponseDto = {
|
|
3836
|
+
id: string;
|
|
3837
|
+
provider: string;
|
|
3838
|
+
externalAccountId: string;
|
|
3839
|
+
beanAccountId: string;
|
|
3840
|
+
isActive: boolean;
|
|
3841
|
+
createdAt: string;
|
|
3842
|
+
updatedAt: string;
|
|
3843
|
+
};
|
|
3844
|
+
|
|
3845
|
+
export type ExternalAccountLinkListResponseDto = {
|
|
3846
|
+
items: Array<ExternalAccountLinkResponseDto>;
|
|
3847
|
+
total: number;
|
|
3406
3848
|
/**
|
|
3407
|
-
*
|
|
3849
|
+
* Filter by provider (query param)
|
|
3408
3850
|
*/
|
|
3409
|
-
|
|
3851
|
+
provider?: string;
|
|
3410
3852
|
};
|
|
3411
3853
|
|
|
3412
3854
|
export type ParserTelemetryReportDto = unknown;
|
|
@@ -3988,15 +4430,92 @@ export type liabilitySubType = 'borrow' | 'repay';
|
|
|
3988
4430
|
*/
|
|
3989
4431
|
export type equitySubType = 'opening' | 'adjustment';
|
|
3990
4432
|
|
|
3991
|
-
export type
|
|
4433
|
+
export type CreatePlatformDto = {
|
|
3992
4434
|
/**
|
|
3993
|
-
*
|
|
4435
|
+
* Platform name
|
|
3994
4436
|
*/
|
|
3995
|
-
|
|
4437
|
+
name: string;
|
|
3996
4438
|
/**
|
|
3997
|
-
*
|
|
4439
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
3998
4440
|
*/
|
|
3999
|
-
|
|
4441
|
+
canonical: string;
|
|
4442
|
+
/**
|
|
4443
|
+
* Platform aliases (multi-language names for lookup)
|
|
4444
|
+
*/
|
|
4445
|
+
aliases: Array<string>;
|
|
4446
|
+
/**
|
|
4447
|
+
* Platform URL
|
|
4448
|
+
*/
|
|
4449
|
+
url: string;
|
|
4450
|
+
/**
|
|
4451
|
+
* Platform type
|
|
4452
|
+
*/
|
|
4453
|
+
type:
|
|
4454
|
+
| 'BANK'
|
|
4455
|
+
| 'BROKERAGE'
|
|
4456
|
+
| 'CRYPTO_EXCHANGE'
|
|
4457
|
+
| 'PAYMENT'
|
|
4458
|
+
| 'INVESTMENT'
|
|
4459
|
+
| 'INSURANCE'
|
|
4460
|
+
| 'OTHER';
|
|
4461
|
+
/**
|
|
4462
|
+
* Platform logo URL
|
|
4463
|
+
*/
|
|
4464
|
+
logoUrl?: string;
|
|
4465
|
+
/**
|
|
4466
|
+
* Whether the platform is active
|
|
4467
|
+
*/
|
|
4468
|
+
isActive?: boolean;
|
|
4469
|
+
};
|
|
4470
|
+
|
|
4471
|
+
/**
|
|
4472
|
+
* Platform type
|
|
4473
|
+
*/
|
|
4474
|
+
export type type3 =
|
|
4475
|
+
| 'BANK'
|
|
4476
|
+
| 'BROKERAGE'
|
|
4477
|
+
| 'CRYPTO_EXCHANGE'
|
|
4478
|
+
| 'PAYMENT'
|
|
4479
|
+
| 'INVESTMENT'
|
|
4480
|
+
| 'INSURANCE'
|
|
4481
|
+
| 'OTHER';
|
|
4482
|
+
|
|
4483
|
+
export type UpdatePlatformDto = {
|
|
4484
|
+
/**
|
|
4485
|
+
* Platform name
|
|
4486
|
+
*/
|
|
4487
|
+
name?: string;
|
|
4488
|
+
/**
|
|
4489
|
+
* Platform canonical identifier (lowercase, kebab-case)
|
|
4490
|
+
*/
|
|
4491
|
+
canonical?: string;
|
|
4492
|
+
/**
|
|
4493
|
+
* Platform aliases (multi-language names for lookup)
|
|
4494
|
+
*/
|
|
4495
|
+
aliases?: Array<string>;
|
|
4496
|
+
/**
|
|
4497
|
+
* Platform URL
|
|
4498
|
+
*/
|
|
4499
|
+
url?: string;
|
|
4500
|
+
/**
|
|
4501
|
+
* Platform type
|
|
4502
|
+
*/
|
|
4503
|
+
type?:
|
|
4504
|
+
| 'BANK'
|
|
4505
|
+
| 'BROKERAGE'
|
|
4506
|
+
| 'CRYPTO_EXCHANGE'
|
|
4507
|
+
| 'PAYMENT'
|
|
4508
|
+
| 'INVESTMENT'
|
|
4509
|
+
| 'INSURANCE'
|
|
4510
|
+
| 'OTHER';
|
|
4511
|
+
/**
|
|
4512
|
+
* Platform logo URL
|
|
4513
|
+
*/
|
|
4514
|
+
logoUrl?: string;
|
|
4515
|
+
/**
|
|
4516
|
+
* Whether the platform is active
|
|
4517
|
+
*/
|
|
4518
|
+
isActive?: boolean;
|
|
4000
4519
|
};
|
|
4001
4520
|
|
|
4002
4521
|
export type NetWorthByCurrencyDto = {
|
|
@@ -4039,21 +4558,6 @@ export type ConvertedNetWorthDto = {
|
|
|
4039
4558
|
};
|
|
4040
4559
|
};
|
|
4041
4560
|
|
|
4042
|
-
export type ExchangeRateWarningDto = {
|
|
4043
|
-
/**
|
|
4044
|
-
* Warning type
|
|
4045
|
-
*/
|
|
4046
|
-
type: string;
|
|
4047
|
-
/**
|
|
4048
|
-
* Currency without exchange rate
|
|
4049
|
-
*/
|
|
4050
|
-
currency: string;
|
|
4051
|
-
/**
|
|
4052
|
-
* Total amount affected
|
|
4053
|
-
*/
|
|
4054
|
-
totalAmount: string;
|
|
4055
|
-
};
|
|
4056
|
-
|
|
4057
4561
|
export type NetWorthResponseDto = {
|
|
4058
4562
|
/**
|
|
4059
4563
|
* Total net worth (assets - liabilities, converted to base currency)
|
|
@@ -4118,6 +4622,10 @@ export type AccountItemDto = {
|
|
|
4118
4622
|
* Currency code
|
|
4119
4623
|
*/
|
|
4120
4624
|
currency: string;
|
|
4625
|
+
/**
|
|
4626
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4627
|
+
*/
|
|
4628
|
+
convertedBalance?: string;
|
|
4121
4629
|
};
|
|
4122
4630
|
|
|
4123
4631
|
export type PlatformGroupDto = {
|
|
@@ -4134,9 +4642,40 @@ export type PlatformGroupDto = {
|
|
|
4134
4642
|
*/
|
|
4135
4643
|
accounts: Array<AccountItemDto>;
|
|
4136
4644
|
/**
|
|
4137
|
-
*
|
|
4645
|
+
* FX-converted total balance in base currency
|
|
4138
4646
|
*/
|
|
4139
4647
|
totalBalance: string;
|
|
4648
|
+
/**
|
|
4649
|
+
* Raw (unconverted) balances grouped by currency
|
|
4650
|
+
*/
|
|
4651
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4652
|
+
/**
|
|
4653
|
+
* Converted balance in base currency (omitted when no currency is convertible)
|
|
4654
|
+
*/
|
|
4655
|
+
convertedBalance?: string;
|
|
4656
|
+
/**
|
|
4657
|
+
* Share of the grand converted total (0-100); 0 when grand total is 0
|
|
4658
|
+
*/
|
|
4659
|
+
sharePct: number;
|
|
4660
|
+
};
|
|
4661
|
+
|
|
4662
|
+
export type AccountExchangeRateWarningDto = {
|
|
4663
|
+
/**
|
|
4664
|
+
* Warning type
|
|
4665
|
+
*/
|
|
4666
|
+
type: string;
|
|
4667
|
+
/**
|
|
4668
|
+
* Currency without exchange rate
|
|
4669
|
+
*/
|
|
4670
|
+
currency: string;
|
|
4671
|
+
/**
|
|
4672
|
+
* Affected account paths
|
|
4673
|
+
*/
|
|
4674
|
+
accounts: Array<string>;
|
|
4675
|
+
/**
|
|
4676
|
+
* Total amount in this currency
|
|
4677
|
+
*/
|
|
4678
|
+
totalAmount: string;
|
|
4140
4679
|
};
|
|
4141
4680
|
|
|
4142
4681
|
export type AccountsSummaryDto = {
|
|
@@ -4148,6 +4687,14 @@ export type AccountsSummaryDto = {
|
|
|
4148
4687
|
* Total number of platforms
|
|
4149
4688
|
*/
|
|
4150
4689
|
totalPlatforms: number;
|
|
4690
|
+
/**
|
|
4691
|
+
* Base currency for conversion
|
|
4692
|
+
*/
|
|
4693
|
+
baseCurrency: string;
|
|
4694
|
+
/**
|
|
4695
|
+
* Per-account exchange rate warnings
|
|
4696
|
+
*/
|
|
4697
|
+
warnings?: Array<AccountExchangeRateWarningDto>;
|
|
4151
4698
|
};
|
|
4152
4699
|
|
|
4153
4700
|
export type AccountsResponseDto = {
|
|
@@ -4182,6 +4729,10 @@ export type AccountItemWithAssetClassDto = {
|
|
|
4182
4729
|
* Currency code
|
|
4183
4730
|
*/
|
|
4184
4731
|
currency: string;
|
|
4732
|
+
/**
|
|
4733
|
+
* FX-converted balance in base currency; omitted when not convertible
|
|
4734
|
+
*/
|
|
4735
|
+
convertedBalance?: string;
|
|
4185
4736
|
/**
|
|
4186
4737
|
* Asset class
|
|
4187
4738
|
*/
|
|
@@ -4263,25 +4814,6 @@ export type assetClass =
|
|
|
4263
4814
|
| 'REAL_ESTATE'
|
|
4264
4815
|
| 'INDEX';
|
|
4265
4816
|
|
|
4266
|
-
export type AccountExchangeRateWarningDto = {
|
|
4267
|
-
/**
|
|
4268
|
-
* Warning type
|
|
4269
|
-
*/
|
|
4270
|
-
type: string;
|
|
4271
|
-
/**
|
|
4272
|
-
* Currency without exchange rate
|
|
4273
|
-
*/
|
|
4274
|
-
currency: string;
|
|
4275
|
-
/**
|
|
4276
|
-
* Affected account paths
|
|
4277
|
-
*/
|
|
4278
|
-
accounts: Array<string>;
|
|
4279
|
-
/**
|
|
4280
|
-
* Total amount in this currency
|
|
4281
|
-
*/
|
|
4282
|
-
totalAmount: string;
|
|
4283
|
-
};
|
|
4284
|
-
|
|
4285
4817
|
export type AssetClassSummaryDto = {
|
|
4286
4818
|
/**
|
|
4287
4819
|
* Total number of accounts
|
|
@@ -4447,26 +4979,83 @@ export type CashFlowResponseDto = {
|
|
|
4447
4979
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4448
4980
|
};
|
|
4449
4981
|
|
|
4450
|
-
export type
|
|
4982
|
+
export type CategoryGroupDto = {
|
|
4451
4983
|
/**
|
|
4452
|
-
*
|
|
4984
|
+
* Functional category (account-path Group segment); regional and universal account paths merge under it
|
|
4453
4985
|
*/
|
|
4454
|
-
|
|
4986
|
+
category: string;
|
|
4455
4987
|
/**
|
|
4456
|
-
*
|
|
4988
|
+
* Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
|
|
4457
4989
|
*/
|
|
4458
|
-
|
|
4990
|
+
totalExpense: string;
|
|
4459
4991
|
/**
|
|
4460
|
-
*
|
|
4992
|
+
* Share of grand total (0-100); 0 when grand total is 0
|
|
4461
4993
|
*/
|
|
4462
|
-
|
|
4463
|
-
[key: string]: unknown;
|
|
4464
|
-
} | null;
|
|
4465
|
-
};
|
|
4466
|
-
|
|
4467
|
-
export type CurrentPriceDto = {
|
|
4994
|
+
sharePct: number;
|
|
4468
4995
|
/**
|
|
4469
|
-
*
|
|
4996
|
+
* Raw (unconverted) expense per currency
|
|
4997
|
+
*/
|
|
4998
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4999
|
+
/**
|
|
5000
|
+
* Converted total in base currency (omitted when FX missing for all currencies in this category)
|
|
5001
|
+
*/
|
|
5002
|
+
convertedBalance?: string;
|
|
5003
|
+
};
|
|
5004
|
+
|
|
5005
|
+
export type ExpensesByCategorySummaryDto = {
|
|
5006
|
+
/**
|
|
5007
|
+
* Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
|
|
5008
|
+
*/
|
|
5009
|
+
totalExpense: string;
|
|
5010
|
+
/**
|
|
5011
|
+
* Number of categories
|
|
5012
|
+
*/
|
|
5013
|
+
categoryCount: number;
|
|
5014
|
+
};
|
|
5015
|
+
|
|
5016
|
+
export type ExpensesByCategoryResponseDto = {
|
|
5017
|
+
/**
|
|
5018
|
+
* Period requested
|
|
5019
|
+
*/
|
|
5020
|
+
period: string;
|
|
5021
|
+
/**
|
|
5022
|
+
* Base currency for converted values
|
|
5023
|
+
*/
|
|
5024
|
+
baseCurrency: string;
|
|
5025
|
+
/**
|
|
5026
|
+
* Expense groups by functional category, sorted by converted total desc
|
|
5027
|
+
*/
|
|
5028
|
+
groups: Array<CategoryGroupDto>;
|
|
5029
|
+
/**
|
|
5030
|
+
* Summary statistics
|
|
5031
|
+
*/
|
|
5032
|
+
summary: ExpensesByCategorySummaryDto;
|
|
5033
|
+
/**
|
|
5034
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
5035
|
+
*/
|
|
5036
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5037
|
+
};
|
|
5038
|
+
|
|
5039
|
+
export type MonetaryDto = {
|
|
5040
|
+
/**
|
|
5041
|
+
* Amount (Decimal string)
|
|
5042
|
+
*/
|
|
5043
|
+
amount: string;
|
|
5044
|
+
/**
|
|
5045
|
+
* ISO 4217 currency
|
|
5046
|
+
*/
|
|
5047
|
+
currency: string;
|
|
5048
|
+
/**
|
|
5049
|
+
* Converted to user base currency (Decimal string)
|
|
5050
|
+
*/
|
|
5051
|
+
baseCcyEquivalent?: {
|
|
5052
|
+
[key: string]: unknown;
|
|
5053
|
+
} | null;
|
|
5054
|
+
};
|
|
5055
|
+
|
|
5056
|
+
export type CurrentPriceDto = {
|
|
5057
|
+
/**
|
|
5058
|
+
* Price amount (Decimal string)
|
|
4470
5059
|
*/
|
|
4471
5060
|
amount: string;
|
|
4472
5061
|
/**
|
|
@@ -4642,108 +5231,6 @@ export type HoldingPnlResponseDto = {
|
|
|
4642
5231
|
*/
|
|
4643
5232
|
export type method = 'average' | 'FIFO';
|
|
4644
5233
|
|
|
4645
|
-
export type CreateBeanPriceDto = {
|
|
4646
|
-
/**
|
|
4647
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4648
|
-
*/
|
|
4649
|
-
currency: string;
|
|
4650
|
-
/**
|
|
4651
|
-
* Quote currency (pricing currency, e.g., CNY, EUR)
|
|
4652
|
-
*/
|
|
4653
|
-
quoteCurrency: string;
|
|
4654
|
-
/**
|
|
4655
|
-
* Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
|
|
4656
|
-
*/
|
|
4657
|
-
amount: number;
|
|
4658
|
-
/**
|
|
4659
|
-
* Price date (ISO 8601 format)
|
|
4660
|
-
*/
|
|
4661
|
-
date: string;
|
|
4662
|
-
/**
|
|
4663
|
-
* Metadata (validated by Zod schema, max field lengths enforced)
|
|
4664
|
-
*/
|
|
4665
|
-
metadata?: {
|
|
4666
|
-
[key: string]: unknown;
|
|
4667
|
-
};
|
|
4668
|
-
};
|
|
4669
|
-
|
|
4670
|
-
export type PriceResponseDto = {
|
|
4671
|
-
/**
|
|
4672
|
-
* Unique identifier
|
|
4673
|
-
*/
|
|
4674
|
-
id: string;
|
|
4675
|
-
/**
|
|
4676
|
-
* User ID (owner of the price)
|
|
4677
|
-
*/
|
|
4678
|
-
userId: string;
|
|
4679
|
-
/**
|
|
4680
|
-
* Currency being priced (e.g., USD, AAPL, BTC)
|
|
4681
|
-
*/
|
|
4682
|
-
currency: string;
|
|
4683
|
-
/**
|
|
4684
|
-
* Quote currency (pricing currency, e.g., USD, CNY)
|
|
4685
|
-
*/
|
|
4686
|
-
quoteCurrency: string;
|
|
4687
|
-
/**
|
|
4688
|
-
* Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
|
|
4689
|
-
*/
|
|
4690
|
-
amount: number;
|
|
4691
|
-
/**
|
|
4692
|
-
* Price date (ISO 8601 format). Represents the date this price was valid.
|
|
4693
|
-
*/
|
|
4694
|
-
date: string;
|
|
4695
|
-
/**
|
|
4696
|
-
* Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
|
|
4697
|
-
*/
|
|
4698
|
-
meta: {
|
|
4699
|
-
[key: string]: unknown;
|
|
4700
|
-
};
|
|
4701
|
-
/**
|
|
4702
|
-
* Creation timestamp
|
|
4703
|
-
*/
|
|
4704
|
-
createdAt: string;
|
|
4705
|
-
/**
|
|
4706
|
-
* Last update timestamp
|
|
4707
|
-
*/
|
|
4708
|
-
updatedAt: string;
|
|
4709
|
-
};
|
|
4710
|
-
|
|
4711
|
-
export type PriceListResponseDto = {
|
|
4712
|
-
/**
|
|
4713
|
-
* List of prices
|
|
4714
|
-
*/
|
|
4715
|
-
items: Array<PriceResponseDto>;
|
|
4716
|
-
/**
|
|
4717
|
-
* Total number of prices
|
|
4718
|
-
*/
|
|
4719
|
-
total: number;
|
|
4720
|
-
};
|
|
4721
|
-
|
|
4722
|
-
export type UpdateBeanPriceDto = {
|
|
4723
|
-
/**
|
|
4724
|
-
* Currency being priced
|
|
4725
|
-
*/
|
|
4726
|
-
currency?: string;
|
|
4727
|
-
/**
|
|
4728
|
-
* Quote currency (pricing currency)
|
|
4729
|
-
*/
|
|
4730
|
-
quoteCurrency?: string;
|
|
4731
|
-
/**
|
|
4732
|
-
* Price amount (MUST be >= 0 per Beancount spec)
|
|
4733
|
-
*/
|
|
4734
|
-
amount?: number;
|
|
4735
|
-
/**
|
|
4736
|
-
* Price date (ISO 8601 format)
|
|
4737
|
-
*/
|
|
4738
|
-
date?: string;
|
|
4739
|
-
/**
|
|
4740
|
-
* Metadata
|
|
4741
|
-
*/
|
|
4742
|
-
metadata?: {
|
|
4743
|
-
[key: string]: unknown;
|
|
4744
|
-
};
|
|
4745
|
-
};
|
|
4746
|
-
|
|
4747
5234
|
export type CurrencyBalanceDto = {
|
|
4748
5235
|
/**
|
|
4749
5236
|
* ISO 4217 currency code
|
|
@@ -4770,6 +5257,14 @@ export type TimeSeriesPointDto = {
|
|
|
4770
5257
|
change?: {
|
|
4771
5258
|
[key: string]: unknown;
|
|
4772
5259
|
};
|
|
5260
|
+
/**
|
|
5261
|
+
* Total assets at this date (in base currency)
|
|
5262
|
+
*/
|
|
5263
|
+
assets?: string;
|
|
5264
|
+
/**
|
|
5265
|
+
* Total liabilities at this date (in base currency)
|
|
5266
|
+
*/
|
|
5267
|
+
liabilities?: string;
|
|
4773
5268
|
/**
|
|
4774
5269
|
* Multi-currency breakdown for this point
|
|
4775
5270
|
*/
|
|
@@ -4837,6 +5332,71 @@ export type PortfolioTrendsResponseDto = {
|
|
|
4837
5332
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4838
5333
|
};
|
|
4839
5334
|
|
|
5335
|
+
export type CashFlowPointDto = {
|
|
5336
|
+
/**
|
|
5337
|
+
* Month key (YYYY-MM)
|
|
5338
|
+
*/
|
|
5339
|
+
month: string;
|
|
5340
|
+
/**
|
|
5341
|
+
* Income in base currency (absolute, converted)
|
|
5342
|
+
*/
|
|
5343
|
+
income: string;
|
|
5344
|
+
/**
|
|
5345
|
+
* Expense in base currency (absolute, converted)
|
|
5346
|
+
*/
|
|
5347
|
+
expense: string;
|
|
5348
|
+
/**
|
|
5349
|
+
* netSavings = income − expense (savings positive)
|
|
5350
|
+
*/
|
|
5351
|
+
netSavings: string;
|
|
5352
|
+
};
|
|
5353
|
+
|
|
5354
|
+
export type CashFlowTrendSummaryDto = {
|
|
5355
|
+
/**
|
|
5356
|
+
* Total income across the period
|
|
5357
|
+
*/
|
|
5358
|
+
totalIncome: string;
|
|
5359
|
+
/**
|
|
5360
|
+
* Total expense across the period
|
|
5361
|
+
*/
|
|
5362
|
+
totalExpense: string;
|
|
5363
|
+
/**
|
|
5364
|
+
* income − expense across the period
|
|
5365
|
+
*/
|
|
5366
|
+
totalNetSavings: string;
|
|
5367
|
+
/**
|
|
5368
|
+
* totalNetSavings divided by the window length (N months, incl. zero-filled)
|
|
5369
|
+
*/
|
|
5370
|
+
averageMonthlyNetSavings: string;
|
|
5371
|
+
};
|
|
5372
|
+
|
|
5373
|
+
export type CashFlowTrendsResponseDto = {
|
|
5374
|
+
/**
|
|
5375
|
+
* Monthly cash-flow series (fixed N-month window, zero-filled)
|
|
5376
|
+
*/
|
|
5377
|
+
series: Array<CashFlowPointDto>;
|
|
5378
|
+
/**
|
|
5379
|
+
* Period totals
|
|
5380
|
+
*/
|
|
5381
|
+
summary: CashFlowTrendSummaryDto;
|
|
5382
|
+
/**
|
|
5383
|
+
* Period requested
|
|
5384
|
+
*/
|
|
5385
|
+
period: string;
|
|
5386
|
+
/**
|
|
5387
|
+
* Data granularity (v1 returns month buckets)
|
|
5388
|
+
*/
|
|
5389
|
+
granularity: string;
|
|
5390
|
+
/**
|
|
5391
|
+
* Base currency for converted values
|
|
5392
|
+
*/
|
|
5393
|
+
currency: string;
|
|
5394
|
+
/**
|
|
5395
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
5396
|
+
*/
|
|
5397
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5398
|
+
};
|
|
5399
|
+
|
|
4840
5400
|
export type GenerateSnapshotBody = unknown;
|
|
4841
5401
|
|
|
4842
5402
|
export type GenerateSnapshotResponse = unknown;
|
|
@@ -4880,7 +5440,7 @@ export type AccountControllerFindAllData = {
|
|
|
4880
5440
|
*/
|
|
4881
5441
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
4882
5442
|
/**
|
|
4883
|
-
* Search term for path
|
|
5443
|
+
* Search term for account path
|
|
4884
5444
|
*/
|
|
4885
5445
|
search?: string;
|
|
4886
5446
|
/**
|
|
@@ -4963,6 +5523,21 @@ export type AccountControllerReopenData = {
|
|
|
4963
5523
|
|
|
4964
5524
|
export type AccountControllerReopenResponse = AccountResponseDto;
|
|
4965
5525
|
|
|
5526
|
+
export type AccountControllerAddOpeningBalanceData = {
|
|
5527
|
+
/**
|
|
5528
|
+
* Account UUID
|
|
5529
|
+
*/
|
|
5530
|
+
id: string;
|
|
5531
|
+
/**
|
|
5532
|
+
* Region code for tenant context
|
|
5533
|
+
*/
|
|
5534
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5535
|
+
requestBody: CreateOpeningBalanceDto;
|
|
5536
|
+
};
|
|
5537
|
+
|
|
5538
|
+
export type AccountControllerAddOpeningBalanceResponse =
|
|
5539
|
+
OpeningBalanceResultDto;
|
|
5540
|
+
|
|
4966
5541
|
export type AccountStandardsControllerGetTemplatesData = {
|
|
4967
5542
|
/**
|
|
4968
5543
|
* Region code (cn, us, de)
|
|
@@ -5023,6 +5598,10 @@ export type TransactionControllerListData = {
|
|
|
5023
5598
|
* Filter by account ID (transactions with postings to this account)
|
|
5024
5599
|
*/
|
|
5025
5600
|
accountId?: string;
|
|
5601
|
+
/**
|
|
5602
|
+
* Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
|
|
5603
|
+
*/
|
|
5604
|
+
category?: string;
|
|
5026
5605
|
/**
|
|
5027
5606
|
* Filter by start date (inclusive), format: YYYY-MM-DD
|
|
5028
5607
|
*/
|
|
@@ -5147,7 +5726,7 @@ export type TransactionControllerDeleteResponse = void;
|
|
|
5147
5726
|
|
|
5148
5727
|
export type BalanceControllerGetBalanceData = {
|
|
5149
5728
|
/**
|
|
5150
|
-
* Account name (e.g., "Assets:
|
|
5729
|
+
* Account name (e.g., "Assets:Checking")
|
|
5151
5730
|
*/
|
|
5152
5731
|
account: string;
|
|
5153
5732
|
/**
|
|
@@ -5549,46 +6128,143 @@ export type CommodityControllerBulkCreateData = {
|
|
|
5549
6128
|
|
|
5550
6129
|
export type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
|
|
5551
6130
|
|
|
5552
|
-
export type
|
|
6131
|
+
export type PriceControllerCreateData = {
|
|
5553
6132
|
/**
|
|
5554
6133
|
* Region code for tenant context
|
|
5555
6134
|
*/
|
|
5556
6135
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5557
|
-
requestBody:
|
|
6136
|
+
requestBody: CreateBeanPriceDto;
|
|
5558
6137
|
};
|
|
5559
6138
|
|
|
5560
|
-
export type
|
|
6139
|
+
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
5561
6140
|
|
|
5562
|
-
export type
|
|
6141
|
+
export type PriceControllerFindAllData = {
|
|
5563
6142
|
/**
|
|
5564
|
-
* Filter by
|
|
6143
|
+
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
5565
6144
|
*/
|
|
5566
|
-
|
|
6145
|
+
currency?: string;
|
|
5567
6146
|
/**
|
|
5568
|
-
* Filter
|
|
6147
|
+
* Filter prices from this date (ISO 8601 format)
|
|
5569
6148
|
*/
|
|
5570
|
-
|
|
6149
|
+
dateFrom?: string;
|
|
5571
6150
|
/**
|
|
5572
|
-
* Filter
|
|
6151
|
+
* Filter prices to this date (ISO 8601 format)
|
|
5573
6152
|
*/
|
|
5574
|
-
|
|
6153
|
+
dateTo?: string;
|
|
5575
6154
|
/**
|
|
5576
|
-
*
|
|
6155
|
+
* Number of items per page (default: 20, max: 100)
|
|
5577
6156
|
*/
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
6157
|
+
limit?: number;
|
|
6158
|
+
/**
|
|
6159
|
+
* Page number for pagination (default: 1)
|
|
6160
|
+
*/
|
|
6161
|
+
page?: number;
|
|
6162
|
+
/**
|
|
6163
|
+
* Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
6164
|
+
*/
|
|
6165
|
+
quoteCurrency?: string;
|
|
5585
6166
|
/**
|
|
5586
6167
|
* Region code for tenant context
|
|
5587
6168
|
*/
|
|
5588
6169
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
5589
|
-
requestBody: CreateRuleFromTransactionDto;
|
|
5590
6170
|
/**
|
|
5591
|
-
*
|
|
6171
|
+
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
6172
|
+
*/
|
|
6173
|
+
search?: string;
|
|
6174
|
+
};
|
|
6175
|
+
|
|
6176
|
+
export type PriceControllerFindAllResponse = PriceListResponseDto;
|
|
6177
|
+
|
|
6178
|
+
export type PriceControllerFindOneData = {
|
|
6179
|
+
/**
|
|
6180
|
+
* Price ID
|
|
6181
|
+
*/
|
|
6182
|
+
id: string;
|
|
6183
|
+
/**
|
|
6184
|
+
* Region code for tenant context
|
|
6185
|
+
*/
|
|
6186
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6187
|
+
};
|
|
6188
|
+
|
|
6189
|
+
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
6190
|
+
|
|
6191
|
+
export type PriceControllerUpdateData = {
|
|
6192
|
+
/**
|
|
6193
|
+
* Price ID
|
|
6194
|
+
*/
|
|
6195
|
+
id: string;
|
|
6196
|
+
/**
|
|
6197
|
+
* Region code for tenant context
|
|
6198
|
+
*/
|
|
6199
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6200
|
+
requestBody: UpdateBeanPriceDto;
|
|
6201
|
+
};
|
|
6202
|
+
|
|
6203
|
+
export type PriceControllerUpdateResponse = PriceResponseDto;
|
|
6204
|
+
|
|
6205
|
+
export type PriceControllerDeleteData = {
|
|
6206
|
+
/**
|
|
6207
|
+
* Price ID
|
|
6208
|
+
*/
|
|
6209
|
+
id: string;
|
|
6210
|
+
/**
|
|
6211
|
+
* Region code for tenant context
|
|
6212
|
+
*/
|
|
6213
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6214
|
+
};
|
|
6215
|
+
|
|
6216
|
+
export type PriceControllerDeleteResponse = void;
|
|
6217
|
+
|
|
6218
|
+
export type PriceControllerBulkCreateData = {
|
|
6219
|
+
/**
|
|
6220
|
+
* Region code for tenant context
|
|
6221
|
+
*/
|
|
6222
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6223
|
+
requestBody: Array<string>;
|
|
6224
|
+
};
|
|
6225
|
+
|
|
6226
|
+
export type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
|
|
6227
|
+
|
|
6228
|
+
export type RecurringRuleControllerCreateData = {
|
|
6229
|
+
/**
|
|
6230
|
+
* Region code for tenant context
|
|
6231
|
+
*/
|
|
6232
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6233
|
+
requestBody: CreateRecurringRuleDto;
|
|
6234
|
+
};
|
|
6235
|
+
|
|
6236
|
+
export type RecurringRuleControllerCreateResponse = RecurringRuleResponseDto;
|
|
6237
|
+
|
|
6238
|
+
export type RecurringRuleControllerFindAllData = {
|
|
6239
|
+
/**
|
|
6240
|
+
* Filter by frequency (WEEKLY, MONTHLY, etc.)
|
|
6241
|
+
*/
|
|
6242
|
+
frequency?: string;
|
|
6243
|
+
/**
|
|
6244
|
+
* Filter by autoCreate enabled
|
|
6245
|
+
*/
|
|
6246
|
+
hasAutoCreate?: boolean;
|
|
6247
|
+
/**
|
|
6248
|
+
* Filter by active status
|
|
6249
|
+
*/
|
|
6250
|
+
isActive?: boolean;
|
|
6251
|
+
/**
|
|
6252
|
+
* Region code for tenant context
|
|
6253
|
+
*/
|
|
6254
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6255
|
+
};
|
|
6256
|
+
|
|
6257
|
+
export type RecurringRuleControllerFindAllResponse =
|
|
6258
|
+
Array<RecurringRuleResponseDto>;
|
|
6259
|
+
|
|
6260
|
+
export type RecurringRuleControllerCreateFromTransactionData = {
|
|
6261
|
+
/**
|
|
6262
|
+
* Region code for tenant context
|
|
6263
|
+
*/
|
|
6264
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6265
|
+
requestBody: CreateRuleFromTransactionDto;
|
|
6266
|
+
/**
|
|
6267
|
+
* Source transaction ID
|
|
5592
6268
|
*/
|
|
5593
6269
|
transactionId: string;
|
|
5594
6270
|
};
|
|
@@ -6014,6 +6690,159 @@ export type PropertyControllerDeleteData = {
|
|
|
6014
6690
|
|
|
6015
6691
|
export type PropertyControllerDeleteResponse = void;
|
|
6016
6692
|
|
|
6693
|
+
export type EventControllerCreateData = {
|
|
6694
|
+
/**
|
|
6695
|
+
* Region code for tenant context (decorative for life events)
|
|
6696
|
+
*/
|
|
6697
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6698
|
+
requestBody: CreateBeanEventDto;
|
|
6699
|
+
};
|
|
6700
|
+
|
|
6701
|
+
export type EventControllerCreateResponse = EventResponseDto;
|
|
6702
|
+
|
|
6703
|
+
export type EventControllerFindAllData = {
|
|
6704
|
+
/**
|
|
6705
|
+
* Filter life events from this date (ISO 8601 format)
|
|
6706
|
+
*/
|
|
6707
|
+
from?: string;
|
|
6708
|
+
/**
|
|
6709
|
+
* Number of items per page (default: 20, max: 100)
|
|
6710
|
+
*/
|
|
6711
|
+
limit?: number;
|
|
6712
|
+
/**
|
|
6713
|
+
* Page number for pagination (default: 1)
|
|
6714
|
+
*/
|
|
6715
|
+
page?: number;
|
|
6716
|
+
/**
|
|
6717
|
+
* Search term for description (case-insensitive partial match)
|
|
6718
|
+
*/
|
|
6719
|
+
q?: string;
|
|
6720
|
+
/**
|
|
6721
|
+
* Region code for tenant context (decorative for life events)
|
|
6722
|
+
*/
|
|
6723
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6724
|
+
/**
|
|
6725
|
+
* Filter life events to this date (ISO 8601 format)
|
|
6726
|
+
*/
|
|
6727
|
+
to?: string;
|
|
6728
|
+
/**
|
|
6729
|
+
* Filter by life event type (exact match)
|
|
6730
|
+
*/
|
|
6731
|
+
type?: string;
|
|
6732
|
+
};
|
|
6733
|
+
|
|
6734
|
+
export type EventControllerFindAllResponse = EventListResponseDto;
|
|
6735
|
+
|
|
6736
|
+
export type EventControllerFindOneData = {
|
|
6737
|
+
/**
|
|
6738
|
+
* Life event ID
|
|
6739
|
+
*/
|
|
6740
|
+
id: string;
|
|
6741
|
+
/**
|
|
6742
|
+
* Region code for tenant context (decorative for life events)
|
|
6743
|
+
*/
|
|
6744
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6745
|
+
};
|
|
6746
|
+
|
|
6747
|
+
export type EventControllerFindOneResponse = EventResponseDto;
|
|
6748
|
+
|
|
6749
|
+
export type EventControllerUpdateData = {
|
|
6750
|
+
/**
|
|
6751
|
+
* Life event ID
|
|
6752
|
+
*/
|
|
6753
|
+
id: string;
|
|
6754
|
+
/**
|
|
6755
|
+
* Region code for tenant context (decorative for life events)
|
|
6756
|
+
*/
|
|
6757
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6758
|
+
requestBody: UpdateBeanEventDto;
|
|
6759
|
+
};
|
|
6760
|
+
|
|
6761
|
+
export type EventControllerUpdateResponse = EventResponseDto;
|
|
6762
|
+
|
|
6763
|
+
export type EventControllerDeleteData = {
|
|
6764
|
+
/**
|
|
6765
|
+
* Life event ID
|
|
6766
|
+
*/
|
|
6767
|
+
id: string;
|
|
6768
|
+
/**
|
|
6769
|
+
* Region code for tenant context (decorative for life events)
|
|
6770
|
+
*/
|
|
6771
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6772
|
+
};
|
|
6773
|
+
|
|
6774
|
+
export type EventControllerDeleteResponse = void;
|
|
6775
|
+
|
|
6776
|
+
export type EventControllerGetSliceData = {
|
|
6777
|
+
accountPattern: string;
|
|
6778
|
+
granularity: string;
|
|
6779
|
+
/**
|
|
6780
|
+
* Life event ID
|
|
6781
|
+
*/
|
|
6782
|
+
id: string;
|
|
6783
|
+
/**
|
|
6784
|
+
* Region code for tenant context (decorative for life events)
|
|
6785
|
+
*/
|
|
6786
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6787
|
+
};
|
|
6788
|
+
|
|
6789
|
+
export type EventControllerGetSliceResponse = unknown;
|
|
6790
|
+
|
|
6791
|
+
export type OnboardingControllerBootstrapData = {
|
|
6792
|
+
/**
|
|
6793
|
+
* Region code for tenant context
|
|
6794
|
+
*/
|
|
6795
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6796
|
+
requestBody: OnboardingDto;
|
|
6797
|
+
};
|
|
6798
|
+
|
|
6799
|
+
export type OnboardingControllerBootstrapResponse = unknown;
|
|
6800
|
+
|
|
6801
|
+
export type ReconciliationControllerComputeData = {
|
|
6802
|
+
/**
|
|
6803
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6804
|
+
*/
|
|
6805
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6806
|
+
requestBody: ComputeReconciliationDto;
|
|
6807
|
+
};
|
|
6808
|
+
|
|
6809
|
+
export type ReconciliationControllerComputeResponse =
|
|
6810
|
+
ReconciliationComputeResultDto;
|
|
6811
|
+
|
|
6812
|
+
export type ReconciliationControllerAssertData = {
|
|
6813
|
+
/**
|
|
6814
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6815
|
+
*/
|
|
6816
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6817
|
+
requestBody: AssertReconciliationDto;
|
|
6818
|
+
};
|
|
6819
|
+
|
|
6820
|
+
export type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
|
|
6821
|
+
|
|
6822
|
+
export type ReconciliationControllerPadData = {
|
|
6823
|
+
/**
|
|
6824
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6825
|
+
*/
|
|
6826
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6827
|
+
requestBody: PadReconciliationDto;
|
|
6828
|
+
};
|
|
6829
|
+
|
|
6830
|
+
export type ReconciliationControllerPadResponse = PadResultDto;
|
|
6831
|
+
|
|
6832
|
+
export type ReconciliationControllerHistoryData = {
|
|
6833
|
+
/**
|
|
6834
|
+
* BeanAccount id
|
|
6835
|
+
*/
|
|
6836
|
+
accountId: string;
|
|
6837
|
+
/**
|
|
6838
|
+
* Region code for tenant context (decorative for reconciliation)
|
|
6839
|
+
*/
|
|
6840
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6841
|
+
};
|
|
6842
|
+
|
|
6843
|
+
export type ReconciliationControllerHistoryResponse =
|
|
6844
|
+
Array<ReconciliationRecordDto>;
|
|
6845
|
+
|
|
6017
6846
|
export type ExportControllerExportBeancountResponse = unknown;
|
|
6018
6847
|
|
|
6019
6848
|
export type FileImportControllerImportFileData = {
|
|
@@ -6106,48 +6935,6 @@ export type ImporterConfigControllerResetConfigData = {
|
|
|
6106
6935
|
|
|
6107
6936
|
export type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
|
|
6108
6937
|
|
|
6109
|
-
export type PlatformControllerFindAllResponse = unknown;
|
|
6110
|
-
|
|
6111
|
-
export type PlatformControllerCreateData = {
|
|
6112
|
-
requestBody: CreatePlatformDto;
|
|
6113
|
-
};
|
|
6114
|
-
|
|
6115
|
-
export type PlatformControllerCreateResponse = unknown;
|
|
6116
|
-
|
|
6117
|
-
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
6118
|
-
|
|
6119
|
-
export type PlatformControllerMatchPlatformsData = {
|
|
6120
|
-
/**
|
|
6121
|
-
* Search query — Chinese name, English name, or abbreviation
|
|
6122
|
-
*/
|
|
6123
|
-
q: string;
|
|
6124
|
-
/**
|
|
6125
|
-
* Region code for category override lookup
|
|
6126
|
-
*/
|
|
6127
|
-
region?: string;
|
|
6128
|
-
};
|
|
6129
|
-
|
|
6130
|
-
export type PlatformControllerMatchPlatformsResponse = unknown;
|
|
6131
|
-
|
|
6132
|
-
export type PlatformControllerUpdateData = {
|
|
6133
|
-
/**
|
|
6134
|
-
* Platform ID
|
|
6135
|
-
*/
|
|
6136
|
-
id: string;
|
|
6137
|
-
requestBody: UpdatePlatformDto;
|
|
6138
|
-
};
|
|
6139
|
-
|
|
6140
|
-
export type PlatformControllerUpdateResponse = unknown;
|
|
6141
|
-
|
|
6142
|
-
export type PlatformControllerDeleteData = {
|
|
6143
|
-
/**
|
|
6144
|
-
* Platform ID
|
|
6145
|
-
*/
|
|
6146
|
-
id: string;
|
|
6147
|
-
};
|
|
6148
|
-
|
|
6149
|
-
export type PlatformControllerDeleteResponse = void;
|
|
6150
|
-
|
|
6151
6938
|
export type ProviderSyncControllerSyncData = {
|
|
6152
6939
|
/**
|
|
6153
6940
|
* Provider name
|
|
@@ -6193,47 +6980,90 @@ export type ProviderSyncControllerIsProviderSupportedData = {
|
|
|
6193
6980
|
|
|
6194
6981
|
export type ProviderSyncControllerIsProviderSupportedResponse = unknown;
|
|
6195
6982
|
|
|
6196
|
-
export type
|
|
6983
|
+
export type ExternalAccountLinkControllerCreateData = {
|
|
6197
6984
|
/**
|
|
6198
6985
|
* Region code for tenant context
|
|
6199
6986
|
*/
|
|
6200
6987
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6201
|
-
requestBody:
|
|
6988
|
+
requestBody: CreateExternalAccountLinkDto;
|
|
6202
6989
|
};
|
|
6203
6990
|
|
|
6204
|
-
export type
|
|
6991
|
+
export type ExternalAccountLinkControllerCreateResponse =
|
|
6992
|
+
ExternalAccountLinkResponseDto;
|
|
6205
6993
|
|
|
6206
|
-
export type
|
|
6994
|
+
export type ExternalAccountLinkControllerFindAllData = {
|
|
6995
|
+
provider: string;
|
|
6207
6996
|
/**
|
|
6208
6997
|
* Region code for tenant context
|
|
6209
6998
|
*/
|
|
6210
6999
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6211
|
-
requestBody: UncoveredFormatMissDto;
|
|
6212
7000
|
};
|
|
6213
7001
|
|
|
6214
|
-
export type
|
|
7002
|
+
export type ExternalAccountLinkControllerFindAllResponse =
|
|
7003
|
+
ExternalAccountLinkListResponseDto;
|
|
6215
7004
|
|
|
6216
|
-
export type
|
|
7005
|
+
export type ExternalAccountLinkControllerFindOneData = {
|
|
7006
|
+
id: string;
|
|
6217
7007
|
/**
|
|
6218
7008
|
* Region code for tenant context
|
|
6219
7009
|
*/
|
|
6220
7010
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6221
|
-
/**
|
|
6222
|
-
* Top-N uncovered formats (default 10)
|
|
6223
|
-
*/
|
|
6224
|
-
topN?: unknown;
|
|
6225
7011
|
};
|
|
6226
7012
|
|
|
6227
|
-
export type
|
|
7013
|
+
export type ExternalAccountLinkControllerFindOneResponse =
|
|
7014
|
+
ExternalAccountLinkResponseDto;
|
|
6228
7015
|
|
|
6229
|
-
export type
|
|
7016
|
+
export type ExternalAccountLinkControllerRemoveData = {
|
|
7017
|
+
id: string;
|
|
6230
7018
|
/**
|
|
6231
7019
|
* Region code for tenant context
|
|
6232
7020
|
*/
|
|
6233
7021
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
7022
|
+
};
|
|
7023
|
+
|
|
7024
|
+
export type ExternalAccountLinkControllerRemoveResponse = void;
|
|
7025
|
+
|
|
7026
|
+
export type TelemetryControllerReportTelemetryData = {
|
|
7027
|
+
/**
|
|
7028
|
+
* Region code for tenant context
|
|
7029
|
+
*/
|
|
7030
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7031
|
+
requestBody: ParserTelemetryReportDto;
|
|
7032
|
+
};
|
|
7033
|
+
|
|
7034
|
+
export type TelemetryControllerReportTelemetryResponse = unknown;
|
|
7035
|
+
|
|
7036
|
+
export type TelemetryControllerReportCoverageMissData = {
|
|
7037
|
+
/**
|
|
7038
|
+
* Region code for tenant context
|
|
7039
|
+
*/
|
|
7040
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7041
|
+
requestBody: UncoveredFormatMissDto;
|
|
7042
|
+
};
|
|
7043
|
+
|
|
7044
|
+
export type TelemetryControllerReportCoverageMissResponse = unknown;
|
|
7045
|
+
|
|
7046
|
+
export type TelemetryControllerGetCoverageMetricsData = {
|
|
7047
|
+
/**
|
|
7048
|
+
* Region code for tenant context
|
|
7049
|
+
*/
|
|
7050
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7051
|
+
/**
|
|
7052
|
+
* Top-N uncovered formats (default 10)
|
|
7053
|
+
*/
|
|
7054
|
+
topN?: unknown;
|
|
7055
|
+
};
|
|
7056
|
+
|
|
7057
|
+
export type TelemetryControllerGetCoverageMetricsResponse = unknown;
|
|
7058
|
+
|
|
7059
|
+
export type NlpControllerProcessNaturalLanguageData = {
|
|
7060
|
+
/**
|
|
7061
|
+
* Region code for tenant context
|
|
7062
|
+
*/
|
|
7063
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7064
|
+
/**
|
|
7065
|
+
* Natural language transaction input with optional session ID
|
|
7066
|
+
*/
|
|
6237
7067
|
requestBody: ProcessNlpDto;
|
|
6238
7068
|
};
|
|
6239
7069
|
|
|
@@ -6265,6 +7095,48 @@ export type NlpControllerGetSessionData = {
|
|
|
6265
7095
|
|
|
6266
7096
|
export type NlpControllerGetSessionResponse = unknown;
|
|
6267
7097
|
|
|
7098
|
+
export type PlatformControllerFindAllResponse = unknown;
|
|
7099
|
+
|
|
7100
|
+
export type PlatformControllerCreateData = {
|
|
7101
|
+
requestBody: CreatePlatformDto;
|
|
7102
|
+
};
|
|
7103
|
+
|
|
7104
|
+
export type PlatformControllerCreateResponse = unknown;
|
|
7105
|
+
|
|
7106
|
+
export type PlatformControllerGetPlatformListResponse = unknown;
|
|
7107
|
+
|
|
7108
|
+
export type PlatformControllerMatchPlatformsData = {
|
|
7109
|
+
/**
|
|
7110
|
+
* Search query — Chinese name, English name, or abbreviation
|
|
7111
|
+
*/
|
|
7112
|
+
q: string;
|
|
7113
|
+
/**
|
|
7114
|
+
* Region code for category override lookup
|
|
7115
|
+
*/
|
|
7116
|
+
region?: string;
|
|
7117
|
+
};
|
|
7118
|
+
|
|
7119
|
+
export type PlatformControllerMatchPlatformsResponse = unknown;
|
|
7120
|
+
|
|
7121
|
+
export type PlatformControllerUpdateData = {
|
|
7122
|
+
/**
|
|
7123
|
+
* Platform ID
|
|
7124
|
+
*/
|
|
7125
|
+
id: string;
|
|
7126
|
+
requestBody: UpdatePlatformDto;
|
|
7127
|
+
};
|
|
7128
|
+
|
|
7129
|
+
export type PlatformControllerUpdateResponse = unknown;
|
|
7130
|
+
|
|
7131
|
+
export type PlatformControllerDeleteData = {
|
|
7132
|
+
/**
|
|
7133
|
+
* Platform ID
|
|
7134
|
+
*/
|
|
7135
|
+
id: string;
|
|
7136
|
+
};
|
|
7137
|
+
|
|
7138
|
+
export type PlatformControllerDeleteResponse = void;
|
|
7139
|
+
|
|
6268
7140
|
export type DashboardControllerGetNetWorthData = {
|
|
6269
7141
|
/**
|
|
6270
7142
|
* Date for balance calculation (ISO 8601 format)
|
|
@@ -6319,127 +7191,70 @@ export type DashboardControllerGetCashFlowData = {
|
|
|
6319
7191
|
|
|
6320
7192
|
export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
|
|
6321
7193
|
|
|
6322
|
-
export type
|
|
6323
|
-
/**
|
|
6324
|
-
* Scope to a single account
|
|
6325
|
-
*/
|
|
6326
|
-
accountId?: string;
|
|
6327
|
-
/**
|
|
6328
|
-
* As-of date (ISO 8601), defaults to today
|
|
6329
|
-
*/
|
|
6330
|
-
asOf?: string;
|
|
6331
|
-
/**
|
|
6332
|
-
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6333
|
-
*/
|
|
6334
|
-
method?: 'FIFO' | 'average';
|
|
6335
|
-
/**
|
|
6336
|
-
* Region code for tenant context
|
|
6337
|
-
*/
|
|
6338
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6339
|
-
};
|
|
6340
|
-
|
|
6341
|
-
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6342
|
-
|
|
6343
|
-
export type PriceControllerCreateData = {
|
|
6344
|
-
/**
|
|
6345
|
-
* Region code for tenant context
|
|
6346
|
-
*/
|
|
6347
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6348
|
-
requestBody: CreateBeanPriceDto;
|
|
6349
|
-
};
|
|
6350
|
-
|
|
6351
|
-
export type PriceControllerCreateResponse = PriceResponseDto;
|
|
6352
|
-
|
|
6353
|
-
export type PriceControllerFindAllData = {
|
|
6354
|
-
/**
|
|
6355
|
-
* Filter by currency (e.g., BTC, AAPL, USD)
|
|
6356
|
-
*/
|
|
6357
|
-
currency?: string;
|
|
6358
|
-
/**
|
|
6359
|
-
* Filter prices from this date (ISO 8601 format)
|
|
6360
|
-
*/
|
|
6361
|
-
dateFrom?: string;
|
|
6362
|
-
/**
|
|
6363
|
-
* Filter prices to this date (ISO 8601 format)
|
|
6364
|
-
*/
|
|
6365
|
-
dateTo?: string;
|
|
7194
|
+
export type DashboardControllerGetExpensesData = {
|
|
6366
7195
|
/**
|
|
6367
|
-
*
|
|
7196
|
+
* Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
6368
7197
|
*/
|
|
6369
|
-
|
|
7198
|
+
flow?: 'expense' | 'income';
|
|
6370
7199
|
/**
|
|
6371
|
-
*
|
|
7200
|
+
* Grouping strategy
|
|
6372
7201
|
*/
|
|
6373
|
-
|
|
7202
|
+
groupBy?: 'category';
|
|
6374
7203
|
/**
|
|
6375
|
-
*
|
|
7204
|
+
* Time window (1m = current calendar month)
|
|
6376
7205
|
*/
|
|
6377
|
-
|
|
7206
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6378
7207
|
/**
|
|
6379
7208
|
* Region code for tenant context
|
|
6380
7209
|
*/
|
|
6381
7210
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6382
|
-
/**
|
|
6383
|
-
* Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
6384
|
-
*/
|
|
6385
|
-
search?: string;
|
|
6386
7211
|
};
|
|
6387
7212
|
|
|
6388
|
-
export type
|
|
7213
|
+
export type DashboardControllerGetExpensesResponse =
|
|
7214
|
+
ExpensesByCategoryResponseDto;
|
|
6389
7215
|
|
|
6390
|
-
export type
|
|
7216
|
+
export type HoldingPnlControllerGetHoldingPnlData = {
|
|
6391
7217
|
/**
|
|
6392
|
-
*
|
|
7218
|
+
* Scope to a single account
|
|
6393
7219
|
*/
|
|
6394
|
-
|
|
7220
|
+
accountId?: string;
|
|
6395
7221
|
/**
|
|
6396
|
-
*
|
|
7222
|
+
* As-of date (ISO 8601), defaults to today
|
|
6397
7223
|
*/
|
|
6398
|
-
|
|
6399
|
-
};
|
|
6400
|
-
|
|
6401
|
-
export type PriceControllerFindOneResponse = PriceResponseDto;
|
|
6402
|
-
|
|
6403
|
-
export type PriceControllerUpdateData = {
|
|
7224
|
+
asOf?: string;
|
|
6404
7225
|
/**
|
|
6405
|
-
*
|
|
7226
|
+
* Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
6406
7227
|
*/
|
|
6407
|
-
|
|
7228
|
+
method?: 'FIFO' | 'average';
|
|
6408
7229
|
/**
|
|
6409
7230
|
* Region code for tenant context
|
|
6410
7231
|
*/
|
|
6411
7232
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6412
|
-
requestBody: UpdateBeanPriceDto;
|
|
6413
7233
|
};
|
|
6414
7234
|
|
|
6415
|
-
export type
|
|
7235
|
+
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
6416
7236
|
|
|
6417
|
-
export type
|
|
7237
|
+
export type ReportingControllerGetPortfolioTrendsData = {
|
|
6418
7238
|
/**
|
|
6419
|
-
*
|
|
7239
|
+
* Data granularity
|
|
6420
7240
|
*/
|
|
6421
|
-
|
|
7241
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6422
7242
|
/**
|
|
6423
|
-
*
|
|
7243
|
+
* Time period
|
|
6424
7244
|
*/
|
|
6425
|
-
|
|
6426
|
-
};
|
|
6427
|
-
|
|
6428
|
-
export type PriceControllerDeleteResponse = void;
|
|
6429
|
-
|
|
6430
|
-
export type PriceControllerBulkCreateData = {
|
|
7245
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6431
7246
|
/**
|
|
6432
7247
|
* Region code for tenant context
|
|
6433
7248
|
*/
|
|
6434
7249
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6435
|
-
requestBody: Array<string>;
|
|
6436
7250
|
};
|
|
6437
7251
|
|
|
6438
|
-
export type
|
|
7252
|
+
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
7253
|
+
PortfolioTrendsResponseDto;
|
|
6439
7254
|
|
|
6440
|
-
export type
|
|
7255
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6441
7256
|
/**
|
|
6442
|
-
* Data granularity
|
|
7257
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6443
7258
|
*/
|
|
6444
7259
|
granularity?: 'day' | 'week' | 'month';
|
|
6445
7260
|
/**
|
|
@@ -6452,8 +7267,8 @@ export type ReportingControllerGetPortfolioTrendsData = {
|
|
|
6452
7267
|
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6453
7268
|
};
|
|
6454
7269
|
|
|
6455
|
-
export type
|
|
6456
|
-
|
|
7270
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
7271
|
+
CashFlowTrendsResponseDto;
|
|
6457
7272
|
|
|
6458
7273
|
export type ReportingControllerGenerateSnapshotData = {
|
|
6459
7274
|
/**
|
|
@@ -6634,6 +7449,25 @@ export type $OpenApiTs = {
|
|
|
6634
7449
|
};
|
|
6635
7450
|
};
|
|
6636
7451
|
};
|
|
7452
|
+
'/api/v1/{region}/bean/accounts/{id}/opening-balance': {
|
|
7453
|
+
post: {
|
|
7454
|
+
req: AccountControllerAddOpeningBalanceData;
|
|
7455
|
+
res: {
|
|
7456
|
+
/**
|
|
7457
|
+
* Opening-balance transaction created
|
|
7458
|
+
*/
|
|
7459
|
+
201: OpeningBalanceResultDto;
|
|
7460
|
+
/**
|
|
7461
|
+
* Account not found
|
|
7462
|
+
*/
|
|
7463
|
+
404: unknown;
|
|
7464
|
+
/**
|
|
7465
|
+
* An opening balance already exists for this account
|
|
7466
|
+
*/
|
|
7467
|
+
409: unknown;
|
|
7468
|
+
};
|
|
7469
|
+
};
|
|
7470
|
+
};
|
|
6637
7471
|
'/api/v1/{region}/bean/account-standards': {
|
|
6638
7472
|
get: {
|
|
6639
7473
|
req: AccountStandardsControllerGetTemplatesData;
|
|
@@ -7242,63 +8076,147 @@ export type $OpenApiTs = {
|
|
|
7242
8076
|
};
|
|
7243
8077
|
};
|
|
7244
8078
|
};
|
|
7245
|
-
'/api/v1/{region}/bean/
|
|
8079
|
+
'/api/v1/{region}/bean/prices': {
|
|
7246
8080
|
post: {
|
|
7247
|
-
req:
|
|
8081
|
+
req: PriceControllerCreateData;
|
|
7248
8082
|
res: {
|
|
7249
8083
|
/**
|
|
7250
|
-
*
|
|
8084
|
+
* Price created successfully
|
|
7251
8085
|
*/
|
|
7252
|
-
201:
|
|
8086
|
+
201: PriceResponseDto;
|
|
7253
8087
|
/**
|
|
7254
|
-
*
|
|
8088
|
+
* Currency or quoteCurrency commodity not found
|
|
7255
8089
|
*/
|
|
7256
|
-
|
|
8090
|
+
404: unknown;
|
|
7257
8091
|
/**
|
|
7258
|
-
*
|
|
8092
|
+
* Price already exists for this currency pair and date
|
|
7259
8093
|
*/
|
|
7260
8094
|
409: unknown;
|
|
7261
8095
|
};
|
|
7262
8096
|
};
|
|
7263
8097
|
get: {
|
|
7264
|
-
req:
|
|
8098
|
+
req: PriceControllerFindAllData;
|
|
7265
8099
|
res: {
|
|
7266
8100
|
/**
|
|
7267
|
-
*
|
|
8101
|
+
* Prices retrieved successfully
|
|
7268
8102
|
*/
|
|
7269
|
-
200:
|
|
8103
|
+
200: PriceListResponseDto;
|
|
7270
8104
|
};
|
|
7271
8105
|
};
|
|
7272
8106
|
};
|
|
7273
|
-
'/api/v1/{region}/bean/
|
|
7274
|
-
|
|
7275
|
-
req:
|
|
8107
|
+
'/api/v1/{region}/bean/prices/{id}': {
|
|
8108
|
+
get: {
|
|
8109
|
+
req: PriceControllerFindOneData;
|
|
7276
8110
|
res: {
|
|
7277
8111
|
/**
|
|
7278
|
-
*
|
|
7279
|
-
*/
|
|
7280
|
-
201: RecurringRuleResponseDto;
|
|
7281
|
-
/**
|
|
7282
|
-
* Transaction not found
|
|
8112
|
+
* Price retrieved successfully
|
|
7283
8113
|
*/
|
|
7284
|
-
|
|
8114
|
+
200: PriceResponseDto;
|
|
7285
8115
|
/**
|
|
7286
|
-
*
|
|
8116
|
+
* Price not found
|
|
7287
8117
|
*/
|
|
7288
|
-
|
|
8118
|
+
404: unknown;
|
|
7289
8119
|
};
|
|
7290
8120
|
};
|
|
7291
|
-
|
|
7292
|
-
|
|
7293
|
-
get: {
|
|
7294
|
-
req: RecurringRuleControllerFindOneData;
|
|
8121
|
+
put: {
|
|
8122
|
+
req: PriceControllerUpdateData;
|
|
7295
8123
|
res: {
|
|
7296
8124
|
/**
|
|
7297
|
-
*
|
|
8125
|
+
* Price updated successfully
|
|
7298
8126
|
*/
|
|
7299
|
-
200:
|
|
8127
|
+
200: PriceResponseDto;
|
|
7300
8128
|
/**
|
|
7301
|
-
*
|
|
8129
|
+
* Price not found
|
|
8130
|
+
*/
|
|
8131
|
+
404: unknown;
|
|
8132
|
+
/**
|
|
8133
|
+
* Updated price conflicts with existing price
|
|
8134
|
+
*/
|
|
8135
|
+
409: unknown;
|
|
8136
|
+
};
|
|
8137
|
+
};
|
|
8138
|
+
delete: {
|
|
8139
|
+
req: PriceControllerDeleteData;
|
|
8140
|
+
res: {
|
|
8141
|
+
/**
|
|
8142
|
+
* Price deleted successfully
|
|
8143
|
+
*/
|
|
8144
|
+
204: void;
|
|
8145
|
+
/**
|
|
8146
|
+
* Price not found
|
|
8147
|
+
*/
|
|
8148
|
+
404: unknown;
|
|
8149
|
+
};
|
|
8150
|
+
};
|
|
8151
|
+
};
|
|
8152
|
+
'/api/v1/{region}/bean/prices/bulk': {
|
|
8153
|
+
post: {
|
|
8154
|
+
req: PriceControllerBulkCreateData;
|
|
8155
|
+
res: {
|
|
8156
|
+
/**
|
|
8157
|
+
* Prices created successfully
|
|
8158
|
+
*/
|
|
8159
|
+
201: Array<PriceResponseDto>;
|
|
8160
|
+
};
|
|
8161
|
+
};
|
|
8162
|
+
};
|
|
8163
|
+
'/api/v1/{region}/bean/recurring-rules': {
|
|
8164
|
+
post: {
|
|
8165
|
+
req: RecurringRuleControllerCreateData;
|
|
8166
|
+
res: {
|
|
8167
|
+
/**
|
|
8168
|
+
* Rule created successfully
|
|
8169
|
+
*/
|
|
8170
|
+
201: RecurringRuleResponseDto;
|
|
8171
|
+
/**
|
|
8172
|
+
* Invalid input data (e.g., autoCreate without accounts)
|
|
8173
|
+
*/
|
|
8174
|
+
400: unknown;
|
|
8175
|
+
/**
|
|
8176
|
+
* Rule with same name already exists
|
|
8177
|
+
*/
|
|
8178
|
+
409: unknown;
|
|
8179
|
+
};
|
|
8180
|
+
};
|
|
8181
|
+
get: {
|
|
8182
|
+
req: RecurringRuleControllerFindAllData;
|
|
8183
|
+
res: {
|
|
8184
|
+
/**
|
|
8185
|
+
* Rules retrieved successfully
|
|
8186
|
+
*/
|
|
8187
|
+
200: Array<RecurringRuleResponseDto>;
|
|
8188
|
+
};
|
|
8189
|
+
};
|
|
8190
|
+
};
|
|
8191
|
+
'/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}': {
|
|
8192
|
+
post: {
|
|
8193
|
+
req: RecurringRuleControllerCreateFromTransactionData;
|
|
8194
|
+
res: {
|
|
8195
|
+
/**
|
|
8196
|
+
* Rule created successfully
|
|
8197
|
+
*/
|
|
8198
|
+
201: RecurringRuleResponseDto;
|
|
8199
|
+
/**
|
|
8200
|
+
* Transaction not found
|
|
8201
|
+
*/
|
|
8202
|
+
404: ApiProblemResponseDto;
|
|
8203
|
+
/**
|
|
8204
|
+
* Rule with same name already exists or transaction already linked
|
|
8205
|
+
*/
|
|
8206
|
+
409: ApiProblemResponseDto;
|
|
8207
|
+
};
|
|
8208
|
+
};
|
|
8209
|
+
};
|
|
8210
|
+
'/api/v1/{region}/bean/recurring-rules/{id}': {
|
|
8211
|
+
get: {
|
|
8212
|
+
req: RecurringRuleControllerFindOneData;
|
|
8213
|
+
res: {
|
|
8214
|
+
/**
|
|
8215
|
+
* Rule retrieved successfully
|
|
8216
|
+
*/
|
|
8217
|
+
200: RecurringRuleResponseDto;
|
|
8218
|
+
/**
|
|
8219
|
+
* Rule not found
|
|
7302
8220
|
*/
|
|
7303
8221
|
404: unknown;
|
|
7304
8222
|
};
|
|
@@ -7886,6 +8804,181 @@ export type $OpenApiTs = {
|
|
|
7886
8804
|
};
|
|
7887
8805
|
};
|
|
7888
8806
|
};
|
|
8807
|
+
'/api/v1/{region}/bean/events': {
|
|
8808
|
+
post: {
|
|
8809
|
+
req: EventControllerCreateData;
|
|
8810
|
+
res: {
|
|
8811
|
+
/**
|
|
8812
|
+
* Life event created successfully
|
|
8813
|
+
*/
|
|
8814
|
+
201: EventResponseDto;
|
|
8815
|
+
/**
|
|
8816
|
+
* Life event already exists for this (userId, type, date) combination
|
|
8817
|
+
*/
|
|
8818
|
+
409: unknown;
|
|
8819
|
+
};
|
|
8820
|
+
};
|
|
8821
|
+
get: {
|
|
8822
|
+
req: EventControllerFindAllData;
|
|
8823
|
+
res: {
|
|
8824
|
+
/**
|
|
8825
|
+
* Life events retrieved successfully
|
|
8826
|
+
*/
|
|
8827
|
+
200: EventListResponseDto;
|
|
8828
|
+
};
|
|
8829
|
+
};
|
|
8830
|
+
};
|
|
8831
|
+
'/api/v1/{region}/bean/events/{id}': {
|
|
8832
|
+
get: {
|
|
8833
|
+
req: EventControllerFindOneData;
|
|
8834
|
+
res: {
|
|
8835
|
+
/**
|
|
8836
|
+
* Life event retrieved successfully
|
|
8837
|
+
*/
|
|
8838
|
+
200: EventResponseDto;
|
|
8839
|
+
/**
|
|
8840
|
+
* Life event not found
|
|
8841
|
+
*/
|
|
8842
|
+
404: unknown;
|
|
8843
|
+
};
|
|
8844
|
+
};
|
|
8845
|
+
put: {
|
|
8846
|
+
req: EventControllerUpdateData;
|
|
8847
|
+
res: {
|
|
8848
|
+
/**
|
|
8849
|
+
* Life event updated successfully
|
|
8850
|
+
*/
|
|
8851
|
+
200: EventResponseDto;
|
|
8852
|
+
/**
|
|
8853
|
+
* If-Match header is not a valid ISO 8601 date
|
|
8854
|
+
*/
|
|
8855
|
+
400: unknown;
|
|
8856
|
+
/**
|
|
8857
|
+
* Life event not found
|
|
8858
|
+
*/
|
|
8859
|
+
404: unknown;
|
|
8860
|
+
/**
|
|
8861
|
+
* Updated event conflicts with an existing (userId, type, date) combination
|
|
8862
|
+
*/
|
|
8863
|
+
409: unknown;
|
|
8864
|
+
/**
|
|
8865
|
+
* If-Match precondition failed (updatedAt mismatch)
|
|
8866
|
+
*/
|
|
8867
|
+
412: unknown;
|
|
8868
|
+
};
|
|
8869
|
+
};
|
|
8870
|
+
delete: {
|
|
8871
|
+
req: EventControllerDeleteData;
|
|
8872
|
+
res: {
|
|
8873
|
+
/**
|
|
8874
|
+
* Life event deleted successfully
|
|
8875
|
+
*/
|
|
8876
|
+
204: void;
|
|
8877
|
+
/**
|
|
8878
|
+
* Life event not found
|
|
8879
|
+
*/
|
|
8880
|
+
404: unknown;
|
|
8881
|
+
};
|
|
8882
|
+
};
|
|
8883
|
+
};
|
|
8884
|
+
'/api/v1/{region}/bean/events/{id}/slice': {
|
|
8885
|
+
get: {
|
|
8886
|
+
req: EventControllerGetSliceData;
|
|
8887
|
+
res: {
|
|
8888
|
+
/**
|
|
8889
|
+
* Time-series sliced by the life event range
|
|
8890
|
+
*/
|
|
8891
|
+
200: unknown;
|
|
8892
|
+
/**
|
|
8893
|
+
* accountPattern query param is empty
|
|
8894
|
+
*/
|
|
8895
|
+
400: unknown;
|
|
8896
|
+
/**
|
|
8897
|
+
* Life event not found
|
|
8898
|
+
*/
|
|
8899
|
+
404: unknown;
|
|
8900
|
+
};
|
|
8901
|
+
};
|
|
8902
|
+
};
|
|
8903
|
+
'/api/v1/{region}/bean/onboarding': {
|
|
8904
|
+
post: {
|
|
8905
|
+
req: OnboardingControllerBootstrapData;
|
|
8906
|
+
res: {
|
|
8907
|
+
/**
|
|
8908
|
+
* Onboarding bootstrap result.
|
|
8909
|
+
*/
|
|
8910
|
+
201: unknown;
|
|
8911
|
+
/**
|
|
8912
|
+
* Invalid region/account path/duplicate paths.
|
|
8913
|
+
*/
|
|
8914
|
+
422: unknown;
|
|
8915
|
+
};
|
|
8916
|
+
};
|
|
8917
|
+
};
|
|
8918
|
+
'/api/v1/{region}/bean/reconciliations': {
|
|
8919
|
+
post: {
|
|
8920
|
+
req: ReconciliationControllerComputeData;
|
|
8921
|
+
res: {
|
|
8922
|
+
/**
|
|
8923
|
+
* Reconciliation preview
|
|
8924
|
+
*/
|
|
8925
|
+
200: ReconciliationComputeResultDto;
|
|
8926
|
+
/**
|
|
8927
|
+
* Account not found
|
|
8928
|
+
*/
|
|
8929
|
+
404: unknown;
|
|
8930
|
+
};
|
|
8931
|
+
};
|
|
8932
|
+
};
|
|
8933
|
+
'/api/v1/{region}/bean/reconciliations/assert': {
|
|
8934
|
+
post: {
|
|
8935
|
+
req: ReconciliationControllerAssertData;
|
|
8936
|
+
res: {
|
|
8937
|
+
/**
|
|
8938
|
+
* Balance assertion recorded
|
|
8939
|
+
*/
|
|
8940
|
+
201: ReconciliationRecordDto;
|
|
8941
|
+
/**
|
|
8942
|
+
* Account not found
|
|
8943
|
+
*/
|
|
8944
|
+
404: unknown;
|
|
8945
|
+
};
|
|
8946
|
+
};
|
|
8947
|
+
};
|
|
8948
|
+
'/api/v1/{region}/bean/reconciliations/pad': {
|
|
8949
|
+
post: {
|
|
8950
|
+
req: ReconciliationControllerPadData;
|
|
8951
|
+
res: {
|
|
8952
|
+
/**
|
|
8953
|
+
* Pad adjusting entry generated
|
|
8954
|
+
*/
|
|
8955
|
+
201: PadResultDto;
|
|
8956
|
+
/**
|
|
8957
|
+
* Book already within tolerance — no pad needed
|
|
8958
|
+
*/
|
|
8959
|
+
400: unknown;
|
|
8960
|
+
/**
|
|
8961
|
+
* Account not found
|
|
8962
|
+
*/
|
|
8963
|
+
404: unknown;
|
|
8964
|
+
};
|
|
8965
|
+
};
|
|
8966
|
+
};
|
|
8967
|
+
'/api/v1/{region}/bean/accounts/{accountId}/reconciliations': {
|
|
8968
|
+
get: {
|
|
8969
|
+
req: ReconciliationControllerHistoryData;
|
|
8970
|
+
res: {
|
|
8971
|
+
/**
|
|
8972
|
+
* Reconciliation history
|
|
8973
|
+
*/
|
|
8974
|
+
200: Array<ReconciliationRecordDto>;
|
|
8975
|
+
/**
|
|
8976
|
+
* Account not found
|
|
8977
|
+
*/
|
|
8978
|
+
404: unknown;
|
|
8979
|
+
};
|
|
8980
|
+
};
|
|
8981
|
+
};
|
|
7889
8982
|
'/api/v1/{region}/bean/export/beancount': {
|
|
7890
8983
|
get: {
|
|
7891
8984
|
res: {
|
|
@@ -8036,128 +9129,104 @@ export type $OpenApiTs = {
|
|
|
8036
9129
|
};
|
|
8037
9130
|
};
|
|
8038
9131
|
};
|
|
8039
|
-
'/api/v1/bean/
|
|
8040
|
-
|
|
9132
|
+
'/api/v1/{region}/bean/import/provider/{providerName}/sync': {
|
|
9133
|
+
post: {
|
|
9134
|
+
req: ProviderSyncControllerSyncData;
|
|
8041
9135
|
res: {
|
|
8042
9136
|
/**
|
|
8043
|
-
*
|
|
9137
|
+
* Sync completed successfully
|
|
8044
9138
|
*/
|
|
8045
|
-
200:
|
|
8046
|
-
};
|
|
8047
|
-
};
|
|
8048
|
-
post: {
|
|
8049
|
-
req: PlatformControllerCreateData;
|
|
8050
|
-
res: {
|
|
9139
|
+
200: ProviderSyncResponseDto;
|
|
8051
9140
|
/**
|
|
8052
|
-
*
|
|
9141
|
+
* Invalid request data
|
|
8053
9142
|
*/
|
|
8054
|
-
|
|
9143
|
+
400: unknown;
|
|
8055
9144
|
/**
|
|
8056
|
-
*
|
|
9145
|
+
* Missing or invalid authentication
|
|
8057
9146
|
*/
|
|
8058
|
-
|
|
8059
|
-
};
|
|
8060
|
-
};
|
|
8061
|
-
};
|
|
8062
|
-
'/api/v1/bean/platforms/list': {
|
|
8063
|
-
get: {
|
|
8064
|
-
res: {
|
|
9147
|
+
401: unknown;
|
|
8065
9148
|
/**
|
|
8066
|
-
*
|
|
9149
|
+
* Provider not supported
|
|
8067
9150
|
*/
|
|
8068
|
-
|
|
9151
|
+
404: unknown;
|
|
8069
9152
|
};
|
|
8070
9153
|
};
|
|
8071
9154
|
};
|
|
8072
|
-
'/api/v1/bean/
|
|
9155
|
+
'/api/v1/{region}/bean/import/provider/supported': {
|
|
8073
9156
|
get: {
|
|
8074
|
-
req:
|
|
9157
|
+
req: ProviderSyncControllerGetSupportedProvidersData;
|
|
8075
9158
|
res: {
|
|
8076
9159
|
/**
|
|
8077
|
-
* List of
|
|
9160
|
+
* List of supported providers
|
|
8078
9161
|
*/
|
|
8079
|
-
200:
|
|
9162
|
+
200: SupportedProvidersResponseDto;
|
|
9163
|
+
/**
|
|
9164
|
+
* Missing or invalid authentication
|
|
9165
|
+
*/
|
|
9166
|
+
401: unknown;
|
|
8080
9167
|
};
|
|
8081
9168
|
};
|
|
8082
9169
|
};
|
|
8083
|
-
'/api/v1/bean/
|
|
8084
|
-
|
|
8085
|
-
req:
|
|
9170
|
+
'/api/v1/{region}/bean/import/provider/{providerName}/supported': {
|
|
9171
|
+
get: {
|
|
9172
|
+
req: ProviderSyncControllerIsProviderSupportedData;
|
|
8086
9173
|
res: {
|
|
8087
9174
|
/**
|
|
8088
|
-
*
|
|
9175
|
+
* Provider support status
|
|
8089
9176
|
*/
|
|
8090
9177
|
200: unknown;
|
|
8091
9178
|
/**
|
|
8092
|
-
*
|
|
9179
|
+
* Missing or invalid authentication
|
|
8093
9180
|
*/
|
|
8094
|
-
|
|
9181
|
+
401: unknown;
|
|
8095
9182
|
};
|
|
8096
9183
|
};
|
|
8097
|
-
|
|
8098
|
-
|
|
9184
|
+
};
|
|
9185
|
+
'/api/v1/{region}/bean/external-account-links': {
|
|
9186
|
+
post: {
|
|
9187
|
+
req: ExternalAccountLinkControllerCreateData;
|
|
8099
9188
|
res: {
|
|
8100
9189
|
/**
|
|
8101
|
-
*
|
|
9190
|
+
* Link created.
|
|
8102
9191
|
*/
|
|
8103
|
-
|
|
9192
|
+
201: ExternalAccountLinkResponseDto;
|
|
8104
9193
|
/**
|
|
8105
|
-
*
|
|
9194
|
+
* beanAccountId not owned, or an active link already exists.
|
|
8106
9195
|
*/
|
|
8107
|
-
|
|
9196
|
+
422: unknown;
|
|
8108
9197
|
};
|
|
8109
9198
|
};
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
post: {
|
|
8113
|
-
req: ProviderSyncControllerSyncData;
|
|
9199
|
+
get: {
|
|
9200
|
+
req: ExternalAccountLinkControllerFindAllData;
|
|
8114
9201
|
res: {
|
|
8115
9202
|
/**
|
|
8116
|
-
*
|
|
9203
|
+
* Links retrieved.
|
|
8117
9204
|
*/
|
|
8118
|
-
200:
|
|
8119
|
-
/**
|
|
8120
|
-
* Invalid request data
|
|
8121
|
-
*/
|
|
8122
|
-
400: unknown;
|
|
8123
|
-
/**
|
|
8124
|
-
* Missing or invalid authentication
|
|
8125
|
-
*/
|
|
8126
|
-
401: unknown;
|
|
8127
|
-
/**
|
|
8128
|
-
* Provider not supported
|
|
8129
|
-
*/
|
|
8130
|
-
404: unknown;
|
|
9205
|
+
200: ExternalAccountLinkListResponseDto;
|
|
8131
9206
|
};
|
|
8132
9207
|
};
|
|
8133
9208
|
};
|
|
8134
|
-
'/api/v1/{region}/bean/
|
|
9209
|
+
'/api/v1/{region}/bean/external-account-links/{id}': {
|
|
8135
9210
|
get: {
|
|
8136
|
-
req:
|
|
9211
|
+
req: ExternalAccountLinkControllerFindOneData;
|
|
8137
9212
|
res: {
|
|
8138
9213
|
/**
|
|
8139
|
-
*
|
|
9214
|
+
* Link retrieved.
|
|
8140
9215
|
*/
|
|
8141
|
-
200:
|
|
9216
|
+
200: ExternalAccountLinkResponseDto;
|
|
8142
9217
|
/**
|
|
8143
|
-
*
|
|
9218
|
+
* Link not found or not owned by the user.
|
|
8144
9219
|
*/
|
|
8145
|
-
|
|
9220
|
+
422: unknown;
|
|
8146
9221
|
};
|
|
8147
9222
|
};
|
|
8148
|
-
|
|
8149
|
-
|
|
8150
|
-
get: {
|
|
8151
|
-
req: ProviderSyncControllerIsProviderSupportedData;
|
|
9223
|
+
delete: {
|
|
9224
|
+
req: ExternalAccountLinkControllerRemoveData;
|
|
8152
9225
|
res: {
|
|
8153
9226
|
/**
|
|
8154
|
-
*
|
|
9227
|
+
* Link soft-deleted; historical transactions are unaffected.
|
|
8155
9228
|
*/
|
|
8156
|
-
|
|
8157
|
-
/**
|
|
8158
|
-
* Missing or invalid authentication
|
|
8159
|
-
*/
|
|
8160
|
-
401: unknown;
|
|
9229
|
+
204: void;
|
|
8161
9230
|
};
|
|
8162
9231
|
};
|
|
8163
9232
|
};
|
|
@@ -8249,6 +9318,78 @@ export type $OpenApiTs = {
|
|
|
8249
9318
|
};
|
|
8250
9319
|
};
|
|
8251
9320
|
};
|
|
9321
|
+
'/api/v1/bean/platforms': {
|
|
9322
|
+
get: {
|
|
9323
|
+
res: {
|
|
9324
|
+
/**
|
|
9325
|
+
* List of platforms with binding and account counts
|
|
9326
|
+
*/
|
|
9327
|
+
200: unknown;
|
|
9328
|
+
};
|
|
9329
|
+
};
|
|
9330
|
+
post: {
|
|
9331
|
+
req: PlatformControllerCreateData;
|
|
9332
|
+
res: {
|
|
9333
|
+
/**
|
|
9334
|
+
* Platform created successfully
|
|
9335
|
+
*/
|
|
9336
|
+
201: unknown;
|
|
9337
|
+
/**
|
|
9338
|
+
* Platform already exists
|
|
9339
|
+
*/
|
|
9340
|
+
409: unknown;
|
|
9341
|
+
};
|
|
9342
|
+
};
|
|
9343
|
+
};
|
|
9344
|
+
'/api/v1/bean/platforms/list': {
|
|
9345
|
+
get: {
|
|
9346
|
+
res: {
|
|
9347
|
+
/**
|
|
9348
|
+
* List of platforms with user binding status
|
|
9349
|
+
*/
|
|
9350
|
+
200: unknown;
|
|
9351
|
+
};
|
|
9352
|
+
};
|
|
9353
|
+
};
|
|
9354
|
+
'/api/v1/bean/platforms/match': {
|
|
9355
|
+
get: {
|
|
9356
|
+
req: PlatformControllerMatchPlatformsData;
|
|
9357
|
+
res: {
|
|
9358
|
+
/**
|
|
9359
|
+
* List of matching platforms with suggested segment names
|
|
9360
|
+
*/
|
|
9361
|
+
200: unknown;
|
|
9362
|
+
};
|
|
9363
|
+
};
|
|
9364
|
+
};
|
|
9365
|
+
'/api/v1/bean/platforms/{id}': {
|
|
9366
|
+
put: {
|
|
9367
|
+
req: PlatformControllerUpdateData;
|
|
9368
|
+
res: {
|
|
9369
|
+
/**
|
|
9370
|
+
* Platform updated successfully
|
|
9371
|
+
*/
|
|
9372
|
+
200: unknown;
|
|
9373
|
+
/**
|
|
9374
|
+
* Platform not found
|
|
9375
|
+
*/
|
|
9376
|
+
404: unknown;
|
|
9377
|
+
};
|
|
9378
|
+
};
|
|
9379
|
+
delete: {
|
|
9380
|
+
req: PlatformControllerDeleteData;
|
|
9381
|
+
res: {
|
|
9382
|
+
/**
|
|
9383
|
+
* Platform deleted successfully
|
|
9384
|
+
*/
|
|
9385
|
+
204: void;
|
|
9386
|
+
/**
|
|
9387
|
+
* Platform not found
|
|
9388
|
+
*/
|
|
9389
|
+
404: unknown;
|
|
9390
|
+
};
|
|
9391
|
+
};
|
|
9392
|
+
};
|
|
8252
9393
|
'/api/v1/{region}/dashboard/net-worth': {
|
|
8253
9394
|
get: {
|
|
8254
9395
|
req: DashboardControllerGetNetWorthData;
|
|
@@ -8301,16 +9442,16 @@ export type $OpenApiTs = {
|
|
|
8301
9442
|
};
|
|
8302
9443
|
};
|
|
8303
9444
|
};
|
|
8304
|
-
'/api/v1/{region}/
|
|
9445
|
+
'/api/v1/{region}/dashboard/expenses': {
|
|
8305
9446
|
get: {
|
|
8306
|
-
req:
|
|
9447
|
+
req: DashboardControllerGetExpensesData;
|
|
8307
9448
|
res: {
|
|
8308
9449
|
/**
|
|
8309
|
-
*
|
|
9450
|
+
* Expenses retrieved successfully
|
|
8310
9451
|
*/
|
|
8311
|
-
200:
|
|
9452
|
+
200: ExpensesByCategoryResponseDto;
|
|
8312
9453
|
/**
|
|
8313
|
-
* Invalid
|
|
9454
|
+
* Invalid groupBy or period
|
|
8314
9455
|
*/
|
|
8315
9456
|
400: unknown;
|
|
8316
9457
|
/**
|
|
@@ -8320,98 +9461,48 @@ export type $OpenApiTs = {
|
|
|
8320
9461
|
};
|
|
8321
9462
|
};
|
|
8322
9463
|
};
|
|
8323
|
-
'/api/v1/{region}/
|
|
8324
|
-
|
|
8325
|
-
req:
|
|
9464
|
+
'/api/v1/{region}/investment/holdings/pnl': {
|
|
9465
|
+
get: {
|
|
9466
|
+
req: HoldingPnlControllerGetHoldingPnlData;
|
|
8326
9467
|
res: {
|
|
8327
9468
|
/**
|
|
8328
|
-
*
|
|
8329
|
-
*/
|
|
8330
|
-
201: PriceResponseDto;
|
|
8331
|
-
/**
|
|
8332
|
-
* Currency or quoteCurrency commodity not found
|
|
9469
|
+
* Holding P&L retrieved successfully
|
|
8333
9470
|
*/
|
|
8334
|
-
|
|
9471
|
+
200: HoldingPnlResponseDto;
|
|
8335
9472
|
/**
|
|
8336
|
-
*
|
|
9473
|
+
* Invalid asOf format/value/future date, invalid accountId format, or unsupported method
|
|
8337
9474
|
*/
|
|
8338
|
-
|
|
8339
|
-
};
|
|
8340
|
-
};
|
|
8341
|
-
get: {
|
|
8342
|
-
req: PriceControllerFindAllData;
|
|
8343
|
-
res: {
|
|
9475
|
+
400: unknown;
|
|
8344
9476
|
/**
|
|
8345
|
-
*
|
|
9477
|
+
* User not authenticated
|
|
8346
9478
|
*/
|
|
8347
|
-
|
|
9479
|
+
401: unknown;
|
|
8348
9480
|
};
|
|
8349
9481
|
};
|
|
8350
9482
|
};
|
|
8351
|
-
'/api/v1/{region}/
|
|
9483
|
+
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
8352
9484
|
get: {
|
|
8353
|
-
req:
|
|
8354
|
-
res: {
|
|
8355
|
-
/**
|
|
8356
|
-
* Price retrieved successfully
|
|
8357
|
-
*/
|
|
8358
|
-
200: PriceResponseDto;
|
|
8359
|
-
/**
|
|
8360
|
-
* Price not found
|
|
8361
|
-
*/
|
|
8362
|
-
404: unknown;
|
|
8363
|
-
};
|
|
8364
|
-
};
|
|
8365
|
-
put: {
|
|
8366
|
-
req: PriceControllerUpdateData;
|
|
8367
|
-
res: {
|
|
8368
|
-
/**
|
|
8369
|
-
* Price updated successfully
|
|
8370
|
-
*/
|
|
8371
|
-
200: PriceResponseDto;
|
|
8372
|
-
/**
|
|
8373
|
-
* Price not found
|
|
8374
|
-
*/
|
|
8375
|
-
404: unknown;
|
|
8376
|
-
/**
|
|
8377
|
-
* Updated price conflicts with existing price
|
|
8378
|
-
*/
|
|
8379
|
-
409: unknown;
|
|
8380
|
-
};
|
|
8381
|
-
};
|
|
8382
|
-
delete: {
|
|
8383
|
-
req: PriceControllerDeleteData;
|
|
9485
|
+
req: ReportingControllerGetPortfolioTrendsData;
|
|
8384
9486
|
res: {
|
|
8385
9487
|
/**
|
|
8386
|
-
*
|
|
8387
|
-
*/
|
|
8388
|
-
204: void;
|
|
8389
|
-
/**
|
|
8390
|
-
* Price not found
|
|
9488
|
+
* Trends retrieved successfully
|
|
8391
9489
|
*/
|
|
8392
|
-
|
|
8393
|
-
};
|
|
8394
|
-
};
|
|
8395
|
-
};
|
|
8396
|
-
'/api/v1/{region}/bean/prices/bulk': {
|
|
8397
|
-
post: {
|
|
8398
|
-
req: PriceControllerBulkCreateData;
|
|
8399
|
-
res: {
|
|
9490
|
+
200: PortfolioTrendsResponseDto;
|
|
8400
9491
|
/**
|
|
8401
|
-
*
|
|
9492
|
+
* User not authenticated
|
|
8402
9493
|
*/
|
|
8403
|
-
|
|
9494
|
+
401: unknown;
|
|
8404
9495
|
};
|
|
8405
9496
|
};
|
|
8406
9497
|
};
|
|
8407
|
-
'/api/v1/{region}/reporting/
|
|
9498
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
8408
9499
|
get: {
|
|
8409
|
-
req:
|
|
9500
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
8410
9501
|
res: {
|
|
8411
9502
|
/**
|
|
8412
|
-
*
|
|
9503
|
+
* Cash-flow trends retrieved successfully
|
|
8413
9504
|
*/
|
|
8414
|
-
200:
|
|
9505
|
+
200: CashFlowTrendsResponseDto;
|
|
8415
9506
|
/**
|
|
8416
9507
|
* User not authenticated
|
|
8417
9508
|
*/
|